From 137aa0eaa57b336790c6165bb198fa5eebbc6429 Mon Sep 17 00:00:00 2001 From: Alexey Boriskin Date: Tue, 5 Feb 2013 18:26:33 +0400 Subject: [PATCH 01/60] Fixed failing test: fabric.util.loadImage --- src/node.js | 57 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/src/node.js b/src/node.js index 0cfaa7c9..ad83df6d 100644 --- a/src/node.js +++ b/src/node.js @@ -14,20 +14,12 @@ /** @private */ function request(url, encoding, callback) { var oURL = URL.parse(url), - client = HTTP.createClient(oURL.port, oURL.hostname), - req = client.request('GET', oURL.pathname, { 'host': oURL.hostname }); - - client.addListener('error', function(err) { - if (err.errno === process.ECONNREFUSED) { - fabric.log('ECONNREFUSED: connection refused to ' + client.host + ':' + client.port); - } - else { - fabric.log(err.message); - } - }); - - req.end(); - req.on('response', function (response) { + req = HTTP.request({ + hostname: oURL.hostname, + port: oURL.port, + path: oURL.pathname, + method: 'GET' + }, function(res){ var body = ""; if (encoding) { response.setEncoding(encoding); @@ -41,21 +33,46 @@ } }); }); + + req.on('error', function(err) { + if (err.errno === process.ECONNREFUSED) { + fabric.log('ECONNREFUSED: connection refused to ' + oURL.hostname + ':' + oURL.port); + } + else { + fabric.log(err.message); + } + }); + } + function request_fs(url, callback){ + var fs = require('fs'), + stream = fs.createReadStream(url), + body = ''; + stream.on('data', function(chunk){ + body += chunk; + }); + stream.on('end', function(){ + callback(body); + }); + }; fabric.util.loadImage = function(url, callback, context) { + var createImageAndCallBack = function(data){ + img.src = new Buffer(data, 'binary'); + // preserving original url, which seems to be lost in node-canvas + img._src = url; + callback && callback.call(context, img); + }; var img = new Image(); if (url && url.indexOf('data') === 0) { img.src = img._src = url; callback && callback.call(context, img); } + else if (url && url.indexOf('http') !== 0) { + request_fs(url, createImageAndCallBack); + } else if (url) { - request(url, 'binary', function(body) { - img.src = new Buffer(body, 'binary'); - // preserving original url, which seems to be lost in node-canvas - img._src = url; - callback && callback.call(context, img); - }); + request(url, 'binary', createImageAndCallBack); } }; From 97fa81aa77c513690944881b644b67c759a5e3f1 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 11 Feb 2013 13:21:33 +0100 Subject: [PATCH 02/60] Fix polygon boundaries. Closes #416 --- src/polygon.class.js | 29 ++++++++++++++++------------- src/polyline.class.js | 11 ++++++----- test/unit/polygon.js | 12 +++++++++--- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/polygon.class.js b/src/polygon.class.js index e3b30379..b11352cb 100644 --- a/src/polygon.class.js +++ b/src/polygon.class.js @@ -32,20 +32,21 @@ * @method initialize * @param {Array} points Array of points * @param {Object} [options] Options object + * @param {Boolean} Whether points offsetting should be skipped * @return {fabric.Polygon} thisArg */ - initialize: function(points, options) { + initialize: function(points, options, skipOffset) { options = options || { }; this.points = points; this.callSuper('initialize', options); - this._calcDimensions(); + this._calcDimensions(skipOffset); }, /** * @private * @method _calcDimensions */ - _calcDimensions: function() { + _calcDimensions: function(skipOffset) { var points = this.points, minX = min(points, 'x'), @@ -56,17 +57,19 @@ this.width = (maxX - minX) || 1; this.height = (maxY - minY) || 1; - // var halfWidth = this.width / 2, - // halfHeight = this.height / 2; - - // change points to offset polygon into a bounding box - // this.points.forEach(function(p) { - // p.x -= halfWidth; - // p.y -= halfHeight; - // }, this); - this.minX = minX; this.minY = minY; + + if (skipOffset) return; + + var halfWidth = this.width / 2, + halfHeight = this.height / 2; + + // change points to offset polygon into a bounding box + this.points.forEach(function(p) { + p.x -= halfWidth; + p.y -= halfHeight; + }, this); }, /** @@ -164,7 +167,7 @@ points[i].y -= (options.height / 2) || 0; } - return new fabric.Polygon(points, extend(parsedAttributes, options)); + return new fabric.Polygon(points, extend(parsedAttributes, options), true); }; /** diff --git a/src/polyline.class.js b/src/polyline.class.js index b725491f..88adae2d 100644 --- a/src/polyline.class.js +++ b/src/polyline.class.js @@ -29,21 +29,22 @@ * @method initialize * @param {Array} points array of points * @param {Object} [options] Options object + * @param {Boolean} Whether points offsetting should be skipped * @return {Object} thisArg */ - initialize: function(points, options) { + initialize: function(points, options, skipOffset) { options = options || { }; this.set('points', points); this.callSuper('initialize', options); - this._calcDimensions(); + this._calcDimensions(skipOffset); }, /** * @private * @method _calcDimensions */ - _calcDimensions: function() { - return fabric.Polygon.prototype._calcDimensions.call(this); + _calcDimensions: function(skipOffset) { + return fabric.Polygon.prototype._calcDimensions.call(this, skipOffset); }, /** @@ -138,7 +139,7 @@ points[i].y -= (options.height / 2) || 0; } - return new fabric.Polyline(points, fabric.util.object.extend(parsedAttributes, options)); + return new fabric.Polyline(points, fabric.util.object.extend(parsedAttributes, options), true); }; /** diff --git a/test/unit/polygon.js b/test/unit/polygon.js index 4761e98b..f82bc64b 100644 --- a/test/unit/polygon.js +++ b/test/unit/polygon.js @@ -83,7 +83,13 @@ var polygon = fabric.Polygon.fromElement(elPolygon); ok(polygon instanceof fabric.Polygon); - deepEqual(REFERENCE_OBJECT, polygon.toObject()); + + var expected = fabric.util.object.extend( + fabric.util.object.clone(REFERENCE_OBJECT), { + points: [ { x: 10, y: 12 }, { x: 20, y: 22 } ] + }); + + deepEqual(expected, polygon.toObject()); var elPolygonWithAttrs = fabric.document.createElement('polygon'); elPolygonWithAttrs.setAttribute('points', '10,10 20,20 30,30 10,10'); @@ -95,10 +101,10 @@ var polygonWithAttrs = fabric.Polygon.fromElement(elPolygonWithAttrs); var expectedPoints = [ - { x: 0, y: 0 }, { x: 10, y: 10 }, { x: 20, y: 20 }, - { x: 0, y: 0 } + { x: 30, y: 30 }, + { x: 10, y: 10 } ]; deepEqual(fabric.util.object.extend(REFERENCE_OBJECT, { From 160e7e5deda2b94c2c3320576deed15543bb8297 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 11 Feb 2013 13:22:05 +0100 Subject: [PATCH 03/60] Alias `fabric.Observable.fire` to `trigger`, similar to jQuery, Backbone, etc. Closes #401 --- src/observable.mixin.js | 10 +++++++++- test/unit/observable.js | 13 +++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/observable.mixin.js b/src/observable.mixin.js index db052141..692024fa 100644 --- a/src/observable.mixin.js +++ b/src/observable.mixin.js @@ -51,6 +51,7 @@ fabric.Observable = { /** * Fires event with an optional options object + * @deprecated since 1.0.7 * @method fire * @param {String} eventName * @param {Object} [options] @@ -80,4 +81,11 @@ fabric.Observable.on = fabric.Observable.observe; * @method off * @type function */ -fabric.Observable.off = fabric.Observable.stopObserving; \ No newline at end of file +fabric.Observable.off = fabric.Observable.stopObserving; + +/** + * Alias for fire + * @method trigger + * @type function + */ +fabric.Observable.trigger = fabric.Observable.fire; \ No newline at end of file diff --git a/test/unit/observable.js b/test/unit/observable.js index 0e6e4a39..5781c7be 100644 --- a/test/unit/observable.js +++ b/test/unit/observable.js @@ -98,4 +98,17 @@ test('event options', function() { foo.fire('foo:bar', { value: 'sekret' }); equal('sekret', someValue); +}); + +test('trigger', function() { + var foo = { }; + fabric.util.object.extend(foo, fabric.Observable); + + var eventFired = false; + foo.on('bar:baz', function() { + eventFired = true; + }); + + foo.trigger('bar:baz'); + equal(true, eventFired); }); \ No newline at end of file From cd93d7efd9b1bb95823c222e4f3fcdf24e8df8e5 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 11 Feb 2013 13:23:43 +0100 Subject: [PATCH 04/60] Build distribution. Version 1.0.7 --- HEADER.js | 2 +- dist/all.js | 52 ++++++++++++++++++++++++++++----------------- dist/all.min.js | 10 ++++----- dist/all.min.js.gz | Bin 44099 -> 44146 bytes package.json | 2 +- 5 files changed, 39 insertions(+), 27 deletions(-) diff --git a/HEADER.js b/HEADER.js index c3ccb51f..4cb8341f 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.6" }; +var fabric = fabric || { version: "1.0.7" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 4f2fb2f8..205b0a6d 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.6" }; +var fabric = fabric || { version: "1.0.7" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -1828,6 +1828,7 @@ fabric.Observable = { /** * Fires event with an optional options object + * @deprecated since 1.0.7 * @method fire * @param {String} eventName * @param {Object} [options] @@ -1858,6 +1859,13 @@ fabric.Observable.on = fabric.Observable.observe; * @type function */ fabric.Observable.off = fabric.Observable.stopObserving; + +/** + * Alias for fire + * @method trigger + * @type function + */ +fabric.Observable.trigger = fabric.Observable.fire; (function() { var sqrt = Math.sqrt, @@ -12087,21 +12095,22 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @method initialize * @param {Array} points array of points * @param {Object} [options] Options object + * @param {Boolean} Whether points offsetting should be skipped * @return {Object} thisArg */ - initialize: function(points, options) { + initialize: function(points, options, skipOffset) { options = options || { }; this.set('points', points); this.callSuper('initialize', options); - this._calcDimensions(); + this._calcDimensions(skipOffset); }, /** * @private * @method _calcDimensions */ - _calcDimensions: function() { - return fabric.Polygon.prototype._calcDimensions.call(this); + _calcDimensions: function(skipOffset) { + return fabric.Polygon.prototype._calcDimensions.call(this, skipOffset); }, /** @@ -12196,7 +12205,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati points[i].y -= (options.height / 2) || 0; } - return new fabric.Polyline(points, fabric.util.object.extend(parsedAttributes, options)); + return new fabric.Polyline(points, fabric.util.object.extend(parsedAttributes, options), true); }; /** @@ -12246,20 +12255,21 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @method initialize * @param {Array} points Array of points * @param {Object} [options] Options object + * @param {Boolean} Whether points offsetting should be skipped * @return {fabric.Polygon} thisArg */ - initialize: function(points, options) { + initialize: function(points, options, skipOffset) { options = options || { }; this.points = points; this.callSuper('initialize', options); - this._calcDimensions(); + this._calcDimensions(skipOffset); }, /** * @private * @method _calcDimensions */ - _calcDimensions: function() { + _calcDimensions: function(skipOffset) { var points = this.points, minX = min(points, 'x'), @@ -12270,17 +12280,19 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati this.width = (maxX - minX) || 1; this.height = (maxY - minY) || 1; - // var halfWidth = this.width / 2, - // halfHeight = this.height / 2; - - // change points to offset polygon into a bounding box - // this.points.forEach(function(p) { - // p.x -= halfWidth; - // p.y -= halfHeight; - // }, this); - this.minX = minX; this.minY = minY; + + if (skipOffset) return; + + var halfWidth = this.width / 2, + halfHeight = this.height / 2; + + // change points to offset polygon into a bounding box + this.points.forEach(function(p) { + p.x -= halfWidth; + p.y -= halfHeight; + }, this); }, /** @@ -12378,7 +12390,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati points[i].y -= (options.height / 2) || 0; } - return new fabric.Polygon(points, extend(parsedAttributes, options)); + return new fabric.Polygon(points, extend(parsedAttributes, options), true); }; /** @@ -15333,7 +15345,7 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { fabric.Text = fabric.util.createClass(fabric.Object, /** @scope fabric.Text.prototype */ { /** - * Font size + * Font size (in pixels) * @property * @type Number */ diff --git a/dist/all.min.js b/dist/all.min.js index f137789c..0a9e25ca 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.6"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof -Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n",'",""].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from= -o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}});var f=t.Object.prototype;for(var l=f.stateProperties.length;l--;){var c=f.stateProperties[l],h=c.charAt(0).toUpperCase()+c.slice(1),p="set"+h,d="get"+h;f[d]||(f[d]=function(e){return new Function('return this.get("'+e+'")')}(c)),f[p]||(f[p]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(c))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions()},_calcDimensions:function(){return t.Polygon.prototype._calcDimensions.call(this)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[this.fontStyle,this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.7"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call +(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n",'",""].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this +.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}});var f=t.Object.prototype;for(var l=f.stateProperties.length;l--;){var c=f.stateProperties[l],h=c.charAt(0).toUpperCase()+c.slice(1),p="set"+h,d="get"+h;f[d]||(f[d]=function(e){return new Function('return this.get("'+e+'")')}(c)),f[p]||(f[p]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(c))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n. +get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[this.fontStyle,this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 9e176bcb10d15e84cc8d6f13b7a7297e00a58908..edb92235c1384d0fc3f8f8ce3bc6ccf70211e829 100644 GIT binary patch delta 37524 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 ACIA2c delta 37486 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 O{|O86pFg}AZ2|yV08!ci diff --git a/package.json b/package.json index 80affc06..c394c798 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "1.0.6", + "version": "1.0.7", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", From 2cd35251473a8becd09f9d26875ee36948478aaa Mon Sep 17 00:00:00 2001 From: Kienz Date: Wed, 13 Feb 2013 19:22:19 +0100 Subject: [PATCH 05/60] Bugfix for wrong offset if object is cloned. Same bug as issue #416 --- src/polygon.class.js | 2 +- src/polyline.class.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/polygon.class.js b/src/polygon.class.js index b11352cb..a55ee784 100644 --- a/src/polygon.class.js +++ b/src/polygon.class.js @@ -178,7 +178,7 @@ * @return {fabric.Polygon} */ fabric.Polygon.fromObject = function(object) { - return new fabric.Polygon(object.points, object); + return new fabric.Polygon(object.points, object, true); }; })(typeof exports !== 'undefined' ? exports : this); \ No newline at end of file diff --git a/src/polyline.class.js b/src/polyline.class.js index 88adae2d..9f04c541 100644 --- a/src/polyline.class.js +++ b/src/polyline.class.js @@ -151,7 +151,7 @@ */ fabric.Polyline.fromObject = function(object) { var points = object.points; - return new fabric.Polyline(points, object); + return new fabric.Polyline(points, object, true); }; })(typeof exports !== 'undefined' ? exports : this); \ No newline at end of file From 5e81f7ab099ea77d2b72db56f135441261b4712d Mon Sep 17 00:00:00 2001 From: Kienz Date: Thu, 14 Feb 2013 22:06:01 +0100 Subject: [PATCH 06/60] Add backgroundColor to svg output Add backgroundColorPattern to svg output Bugfix backgroundImage in sag output - width/height are depend on backgroundImageStretch Bugfix in setBackgroundColor - rename pattern to repeat --- src/parser.js | 55 +++++++++++++++++++++++++++----------- src/static_canvas.class.js | 19 ++++++++++--- 2 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/parser.js b/src/parser.js index bc5c4ca1..7b277d89 100644 --- a/src/parser.js +++ b/src/parser.js @@ -695,13 +695,37 @@ if (markup) { markup = [ - '', - '', - '' + '', + ].join(''); + } + + return markup; + } + + /** + * Creates markup containing SVG referenced elements like patterns, gradients etc. + * @method createSVGRefElementsMarkup + * @param {fabric.Canvas} canvas instance of fabric.Canvas + * @return {String} + */ + function createSVGRefElementsMarkup(canvas) { + var markup = ''; + + if (canvas.backgroundColor && canvas.backgroundColor.source) { + markup = [ + '', + '' ].join(''); } @@ -710,16 +734,17 @@ extend(fabric, { - parseAttributes: parseAttributes, - parseElements: parseElements, - parseStyleAttribute: parseStyleAttribute, - parsePointsAttribute: parsePointsAttribute, - getCSSRules: getCSSRules, + parseAttributes: parseAttributes, + parseElements: parseElements, + parseStyleAttribute: parseStyleAttribute, + parsePointsAttribute: parsePointsAttribute, + getCSSRules: getCSSRules, - loadSVGFromURL: loadSVGFromURL, - loadSVGFromString: loadSVGFromString, + loadSVGFromURL: loadSVGFromURL, + loadSVGFromString: loadSVGFromString, - createSVGFontFacesMarkup: createSVGFontFacesMarkup + createSVGFontFacesMarkup: createSVGFontFacesMarkup, + createSVGRefElementsMarkup: createSVGRefElementsMarkup }); })(typeof exports !== 'undefined' ? exports : this); diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index e43acd3e..f4c5be53 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -228,7 +228,7 @@ fabric.util.loadImage(backgroundColor.source, function(img) { _this.backgroundColor = new fabric.Pattern({ source: img, - pattern: backgroundColor.pattern + repeat: backgroundColor.repeat }); callback && callback(); }); @@ -951,16 +951,27 @@ 'version="1.1" ', 'width="', this.width, '" ', 'height="', this.height, '" ', + (this.backgroundColor && !this.backgroundColor.source) ? 'style="background-color: ' + this.backgroundColor +'" ' : null, 'xml:space="preserve">', 'Created with Fabric.js ', fabric.version, '', - fabric.createSVGFontFacesMarkup(this.getObjects()) + '', fabric.createSVGFontFacesMarkup(this.getObjects()), fabric.createSVGRefElementsMarkup(this), '' ); + if (this.backgroundColor && this.backgroundColor.source) { + markup.push( + '' + ); + } + if (this.backgroundImage) { markup.push( ' Date: Wed, 13 Feb 2013 20:20:57 +0100 Subject: [PATCH 08/60] Text fixes for node-canvas. Version 1.0.9 --- HEADER.js | 2 +- dist/all.js | 10 ++++++---- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 44146 -> 44164 bytes package.json | 2 +- src/node.js | 1 + src/text.class.js | 7 ++++--- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/HEADER.js b/HEADER.js index 4cb8341f..c7a791ff 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.7" }; +var fabric = fabric || { version: "1.0.9" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 205b0a6d..370bbc21 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.7" }; +var fabric = fabric || { version: "1.0.9" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -15356,7 +15356,7 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { * @property * @type Number */ - fontWeight: 400, + fontWeight: 'normal', /** * Font family @@ -15914,8 +15914,9 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { */ _getFontDeclaration: function() { return [ - this.fontStyle, - this.fontWeight, + // node-canvas needs "weight style", while browsers need "style weight" + (fabric.isLikelyNode ? this.fontWeight : this.fontStyle), + (fabric.isLikelyNode ? this.fontStyle : this.fontWeight), this.fontSize + 'px', (fabric.isLikelyNode ? ('"' + this.fontFamily + '"') : this.fontFamily) ].join(' '); @@ -16382,6 +16383,7 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { var fabricCanvas = new FabricCanvas(canvasEl); fabricCanvas.contextContainer = nodeCanvas.getContext('2d'); fabricCanvas.nodeCanvas = nodeCanvas; + fabricCanvas.Font = Canvas.Font; return fabricCanvas; }; diff --git a/dist/all.min.js b/dist/all.min.js index 0a9e25ca..5280891c 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.7"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.9"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call (t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n",'",""].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this .get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}});var f=t.Object.prototype;for(var l=f.stateProperties.length;l--;){var c=f.stateProperties[l],h=c.charAt(0).toUpperCase()+c.slice(1),p="set"+h,d="get"+h;f[d]||(f[d]=function(e){return new Function('return this.get("'+e+'")')}(c)),f[p]||(f[p]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(c))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n. -get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[this.fontStyle,this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index edb92235c1384d0fc3f8f8ce3bc6ccf70211e829..9d86b624e4e5083e63533a6f6b9dcfe7648b92aa 100644 GIT binary patch literal 44164 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 Si8f(0{(k|*T)9QQZ2|y-L4~jY diff --git a/package.json b/package.json index c394c798..85084448 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "1.0.7", + "version": "1.0.9", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/node.js b/src/node.js index 0cfaa7c9..7e09af0f 100644 --- a/src/node.js +++ b/src/node.js @@ -112,6 +112,7 @@ var fabricCanvas = new FabricCanvas(canvasEl); fabricCanvas.contextContainer = nodeCanvas.getContext('2d'); fabricCanvas.nodeCanvas = nodeCanvas; + fabricCanvas.Font = Canvas.Font; return fabricCanvas; }; diff --git a/src/text.class.js b/src/text.class.js index b012a34a..950cd2de 100644 --- a/src/text.class.js +++ b/src/text.class.js @@ -31,7 +31,7 @@ * @property * @type Number */ - fontWeight: 400, + fontWeight: 'normal', /** * Font family @@ -589,8 +589,9 @@ */ _getFontDeclaration: function() { return [ - this.fontStyle, - this.fontWeight, + // node-canvas needs "weight style", while browsers need "style weight" + (fabric.isLikelyNode ? this.fontWeight : this.fontStyle), + (fabric.isLikelyNode ? this.fontStyle : this.fontWeight), this.fontSize + 'px', (fabric.isLikelyNode ? ('"' + this.fontFamily + '"') : this.fontFamily) ].join(' '); From b172a47ebebe0a8ad0d23a0e6cec88cf9431f1f8 Mon Sep 17 00:00:00 2001 From: Kienz Date: Sat, 16 Feb 2013 18:55:00 +0100 Subject: [PATCH 09/60] Fixed svg output for backgroundColorPattern with repeat: 'no-repeat' --- src/static_canvas.class.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index f4c5be53..8a67dfa5 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -960,8 +960,8 @@ if (this.backgroundColor && this.backgroundColor.source) { markup.push( '' ); From 5a91472bdc4dd9985ba764a6e69b99ca35d92f96 Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 17 Feb 2013 13:26:45 +0100 Subject: [PATCH 10/60] Remove trailing comma --- src/parser.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parser.js b/src/parser.js index 7b277d89..cb37bc50 100644 --- a/src/parser.js +++ b/src/parser.js @@ -699,7 +699,7 @@ '', - '', + '' ].join(''); } @@ -721,7 +721,7 @@ 'width="', canvas.backgroundColor.source.width, '" height="', canvas.backgroundColor.source.height, '" patternUnits="userSpaceOnUse">', - '', - '', - '' + '' + ].join(''); + } + + return markup; + } + + /** + * Creates markup containing SVG referenced elements like patterns, gradients etc. + * @method createSVGRefElementsMarkup + * @param {fabric.Canvas} canvas instance of fabric.Canvas + * @return {String} + */ + function createSVGRefElementsMarkup(canvas) { + var markup = ''; + + if (canvas.backgroundColor && canvas.backgroundColor.source) { + markup = [ + '', + '' ].join(''); } @@ -4406,16 +4430,17 @@ fabric.util.string = { extend(fabric, { - parseAttributes: parseAttributes, - parseElements: parseElements, - parseStyleAttribute: parseStyleAttribute, - parsePointsAttribute: parsePointsAttribute, - getCSSRules: getCSSRules, + parseAttributes: parseAttributes, + parseElements: parseElements, + parseStyleAttribute: parseStyleAttribute, + parsePointsAttribute: parsePointsAttribute, + getCSSRules: getCSSRules, - loadSVGFromURL: loadSVGFromURL, - loadSVGFromString: loadSVGFromString, + loadSVGFromURL: loadSVGFromURL, + loadSVGFromString: loadSVGFromString, - createSVGFontFacesMarkup: createSVGFontFacesMarkup + createSVGFontFacesMarkup: createSVGFontFacesMarkup, + createSVGRefElementsMarkup: createSVGRefElementsMarkup }); })(typeof exports !== 'undefined' ? exports : this); @@ -5790,7 +5815,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { fabric.util.loadImage(backgroundColor.source, function(img) { _this.backgroundColor = new fabric.Pattern({ source: img, - pattern: backgroundColor.pattern + repeat: backgroundColor.repeat }); callback && callback(); }); @@ -6513,16 +6538,27 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { 'version="1.1" ', 'width="', this.width, '" ', 'height="', this.height, '" ', + (this.backgroundColor && !this.backgroundColor.source) ? 'style="background-color: ' + this.backgroundColor +'" ' : null, 'xml:space="preserve">', 'Created with Fabric.js ', fabric.version, '', - fabric.createSVGFontFacesMarkup(this.getObjects()) + '', fabric.createSVGFontFacesMarkup(this.getObjects()), fabric.createSVGRefElementsMarkup(this), '' ); + if (this.backgroundColor && this.backgroundColor.source) { + markup.push( + '' + ); + } + if (this.backgroundImage) { markup.push( '"),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call -(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n",'",""].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"",fabric.createSVGFontFacesMarkup(this.getObjects())),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this -.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}});var f=t.Object.prototype;for(var l=f.stateProperties.length;l--;){var c=f.stateProperties[l],h=c.charAt(0).toUpperCase()+c.slice(1),p="set"+h,d="get"+h;f[d]||(f[d]=function(e){return new Function('return this.get("'+e+'")')}(c)),f[p]||(f[p]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(c))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n. -get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=0,n=this.objects.length;t'+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.10"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call +(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll +(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent" +,r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}});var f=t.Object.prototype;for(var l=f.stateProperties.length;l--;){var c=f.stateProperties[l],h=c.charAt(0).toUpperCase()+c.slice(1),p="set"+h,d="get"+h;f[d]||(f[d]=function(e){return new Function('return this.get("'+e+'")')}(c)),f[p]||(f[p]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(c))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill" +);return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 9d86b624e4e5083e63533a6f6b9dcfe7648b92aa..e2e49404313eac67656dbac905f8e3d986d1c95a 100644 GIT binary patch delta 43583 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 b5F`TP=a0hYbtc+`(fI!Z1IG3Ai*f=0qHqBz delta 43289 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 diff --git a/package.json b/package.json index 85084448..fb79c754 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "1.0.9", + "version": "1.0.10", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", From 7b8dfe5a307723e9b8c3fa3ee807df7acb25e387 Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 17 Feb 2013 13:48:21 +0100 Subject: [PATCH 13/60] More test fixes --- test/unit/group.js | 2 +- test/unit/image.js | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/test/unit/group.js b/test/unit/group.js index ec193eee..3fc7fe84 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -290,7 +290,7 @@ var group = makeGroupWith2Objects(); ok(typeof group.toSVG == 'function'); - var expectedSVG = ''; + var expectedSVG = ''; equal(group.toSVG(), expectedSVG); }); diff --git a/test/unit/image.js b/test/unit/image.js index 8e19e98f..c5a789f2 100644 --- a/test/unit/image.js +++ b/test/unit/image.js @@ -20,8 +20,8 @@ 'originY': 'center', 'left': 0, 'top': 0, - 'width': 0, // node-canvas doesn't seem to allow setting width/height on image objects - 'height': 0, + 'width': IMG_WIDTH, // node-canvas doesn't seem to allow setting width/height on image objects + 'height': IMG_HEIGHT, // or does it now? 'fill': 'rgb(0,0,0)', 'overlayFill': null, 'stroke': null, @@ -97,7 +97,15 @@ asyncTest('toObject', function() { createImageObject(function(image) { ok(typeof image.toObject == 'function'); - deepEqual(image.toObject(), REFERENCE_IMG_OBJECT); + var toObject = image.toObject(); + // workaround for node-canvas sometimes producing images with width/height and sometimes not + if (toObject.width === 0) { + toObject.width = IMG_WIDTH; + } + if (toObject.height === 0) { + toObject.height = IMG_HEIGHT; + } + deepEqual(toObject, REFERENCE_IMG_OBJECT); start(); }); }); From 9df85553b98b4791fb32a20c1ad6bbe8329bb50c Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 18 Feb 2013 16:22:48 +0100 Subject: [PATCH 14/60] [BACK_INCOMPAT] Add `fabric.util.createAccessors`. Add accessors for `fabric.Text` -specific properties (setTextDecoration, setFontWeight, setFontStyle, etc.). Make text object dimensions change when setting dimension-affecting properties. `fabric.Text#setFontsize` becomes `setFontSize`. Version 1.0.11. --- HEADER.js | 2 +- dist/all.js | 152 +++++++++++++++++++++----------------------- dist/all.min.js | 10 +-- dist/all.min.js.gz | Bin 44432 -> 44439 bytes package.json | 2 +- src/object.class.js | 21 +----- src/text.class.js | 104 ++++++++++++++---------------- src/util/misc.js | 25 ++++++++ test/unit/text.js | 6 +- 9 files changed, 155 insertions(+), 167 deletions(-) diff --git a/HEADER.js b/HEADER.js index 14b2ed87..4e750b4f 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.10" }; +var fabric = fabric || { version: "1.0.11" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 49bc83d0..dc4c0a4c 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.10" }; +var fabric = fabric || { version: "1.0.11" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -2215,6 +2215,30 @@ fabric.Observable.trigger = fabric.Observable.fire; return canvasEl; } + function createAccessors(klass) { + var proto = klass.prototype; + + for (var i = proto.stateProperties.length; i--; ) { + + var propName = proto.stateProperties[i], + capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1), + setterName = 'set' + capitalizedPropName, + getterName = 'get' + capitalizedPropName; + + // using `new Function` for better introspection + if (!proto[getterName]) { + proto[getterName] = (function(property) { + return new Function('return this.get("' + property + '")'); + })(propName); + } + if (!proto[setterName]) { + proto[setterName] = (function(property) { + return new Function('value', 'return this.set("' + property + '", value)'); + })(propName); + } + } + } + fabric.util.removeFromArray = removeFromArray; fabric.util.degreesToRadians = degreesToRadians; fabric.util.radiansToDegrees = radiansToDegrees; @@ -2230,6 +2254,7 @@ fabric.Observable.trigger = fabric.Observable.fire; fabric.util.populateWithProperties = populateWithProperties; fabric.util.drawDashedLine = drawDashedLine; fabric.util.createCanvasElement = createCanvasElement; + fabric.util.createAccessors = createAccessors; })(); (function() { @@ -10106,26 +10131,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati } }); - var proto = fabric.Object.prototype; - for (var i = proto.stateProperties.length; i--; ) { - - var propName = proto.stateProperties[i], - capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1), - setterName = 'set' + capitalizedPropName, - getterName = 'get' + capitalizedPropName; - - // using `new Function` for better introspection - if (!proto[getterName]) { - proto[getterName] = (function(property) { - return new Function('return this.get("' + property + '")'); - })(propName); - } - if (!proto[setterName]) { - proto[setterName] = (function(property) { - return new Function('value', 'return this.set("' + property + '", value)'); - })(propName); - } - } + fabric.util.createAccessors(fabric.Object); /** * Alias for {@link fabric.Object.prototype.setAngle} @@ -15374,6 +15380,37 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { return; } + var dimensionAffectingProps = { + fontSize: true, + fontWeight: true, + fontFamily: true, + textDecoration: true, + fontStyle: true, + lineHeight: true, + strokeStyle: true, + strokeWidth: true, + text: true + }; + + var stateProperties = fabric.Object.prototype.stateProperties.concat(); + stateProperties.push( + 'fontFamily', + 'fontWeight', + 'fontSize', + 'path', + 'text', + 'textDecoration', + 'textShadow', + 'textAlign', + 'fontStyle', + 'lineHeight', + 'strokeStyle', + 'strokeWidth', + 'backgroundColor', + 'textBackgroundColor', + 'useNative' + ); + /** * Text class * @class Text @@ -15486,6 +15523,14 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { */ useNative: true, + /** + * List of properties to consider when checking if state of an object is changed (fabric.Object#hasStateChanged) + * as well as for history (undo/redo) purposes + * @property + * @type Array + */ + stateProperties: stateProperties, + /** * Constructor * @method initialize @@ -15496,7 +15541,6 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { initialize: function(text, options) { options = options || { }; - this._initStateProperties(); this.text = text; this.setOptions(options); this._initDimensions(); @@ -15510,38 +15554,9 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { */ _initDimensions: function() { var canvasEl = fabric.util.createCanvasElement(); - this._render(canvasEl.getContext('2d')); }, - /** - * Creates `stateProperties` list on an instance, and adds `fabric.Text` -specific ones to it - * (such as "fontFamily", "fontWeight", etc.) - * @private - * @method _initStateProperties - */ - _initStateProperties: function() { - this.stateProperties = this.stateProperties.concat(); - this.stateProperties.push( - 'fontFamily', - 'fontWeight', - 'fontSize', - 'path', - 'text', - 'textDecoration', - 'textShadow', - 'textAlign', - 'fontStyle', - 'lineHeight', - 'strokeStyle', - 'strokeWidth', - 'backgroundColor', - 'textBackgroundColor', - 'useNative' - ); - fabric.util.removeFromArray(this.stateProperties, 'width'); - }, - /** * Returns string representation of an instance * @method toString @@ -16200,20 +16215,6 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { return this; }, - /** - * Sets fontSize of an instance and updates its coordinates - * @method setFontsize - * @param {Number} value - * @return {fabric.Text} thisArg - * @chainable - */ - setFontsize: function(value) { - this.set('fontSize', value); - this._initDimensions(); - this.setCoords(); - return this; - }, - /** * Returns actual text value of an instance * @method getText @@ -16223,20 +16224,6 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { return this.text; }, - /** - * Sets text of an instance, and updates its coordinates - * @method setText - * @param {String} value - * @return {fabric.Text} thisArg - * @chainable - */ - setText: function(value) { - this.set('text', value); - this._initDimensions(); - this.setCoords(); - return this; - }, - /** * Sets specified property to a specified value * @method set @@ -16250,6 +16237,11 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { this.path = this.path.replace(/(.*?)([^\/]*)(\.font\.js)/, '$1' + value + '$3'); } this.callSuper('_set', name, value); + + if (name in dimensionAffectingProps) { + this._initDimensions(); + this.setCoords(); + } } }); @@ -16305,6 +16297,8 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { return text; }; + fabric.util.createAccessors(fabric.Text); + })(typeof exports !== 'undefined' ? exports : this); (function() { diff --git a/dist/all.min.js b/dist/all.min.js index 6376bf34..ed821a08 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.10"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call -(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll -(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent" -,r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}});var f=t.Object.prototype;for(var l=f.stateProperties.length;l--;){var c=f.stateProperties[l],h=c.charAt(0).toUpperCase()+c.slice(1),p="set"+h,d="get"+h;f[d]||(f[d]=function(e){return new Function('return this.get("'+e+'")')}(c)),f[p]||(f[p]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(c))}t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill" -);return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},setFontsize:function(e){return this.set("fontSize",e),this._initDimensions(),this.setCoords(),this},getText:function(){return this.text},setText:function(e){return this.set("text",e),this._initDimensions(),this.setCoords(),this},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t)}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i}}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.11"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " +).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL +(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index e2e49404313eac67656dbac905f8e3d986d1c95a..4e56bd0ae128e970d539767ab3450831a962b617 100644 GIT binary patch delta 38470 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

Qbx_!Y#>f(U zjO~raN~CCK?5xn%Rb`zv&Z@R)ncjkSSr%Qdk*T`D}lzE5hR7SSJ`Hvm-^{Jc-~! zY%;YEA0n~b=z5J(+Ck~1CW!##lvV`-crU>B{!iLORqNQtwbX8x5mLk6fV;MI2SYL> zW(ViOK!Sert=>I>!oqj{_>z(%qSl?DhUH)AZEz$j-TZbyc^m#yfy&p5Z}Qu0N;fJ$ zPluN)KNx=~#yhjH&=^SLjDZ9S8cKwqVLXHN_6wp#;*T@@ zA>DTkV`3#B*MwwE?@)ticoa8b)DYHF;2J>c%Lacg=WuWo51&4c5tVb$|MSx*5Jk2p z!Zc_)E`d4O2{0Lxub@oV&6+SvRp5j^=z1B!Bz>lC<3{>`ly zOZ{)xS;5adqy7^SMZ*7YQhd~d@{|wtA5vIsw_L_eUQnvn`AuGr`h#JtOl1_T3|nY4pIqt72jU8N6isRLJn}Duzxh+0qua72>&@d zpyfgTo*mF~I1tO@Krae%wRd1l!hu+(;_ul3kNSZz6$j2l9LT9XXpHiKGsXvcFb{a< z0`f})2Q=bow|IGwuZzg>EHSWR-8fACEnQ5$bfx#5OSc& z(${@iiZ-i;7Gbg=W(;qcK;({O^}-+Fw%VmTNPo@JpY?VF$|E(MfX)Cdbu$ahcAa&zIN2WMAwQ6WiPcLmFoqILY*>zz?M%yS-IcIsx_} zRD&36M<^2FHa+PLM^YP3AnxecGmdR@QZ0Syh->(ppMUu9&D-ZMP+Ium<@euyfBFu{ zDib3rlEiP48gXxh%8R5(M&OwM%oCGUZ54mSO9TtIMi5TqK|BZHR#874U(QyLbl{AE z7Tw_H>HtYYcr?XsF+QA1oIqI(2U|4A2xmMKmn0bpRG>omGv^)$K_dMb;b$1mq`TB; zdn6r*Xxxb6>t!P-zg{Vd0}$C4lJAR5Iwtm&{I-Z1&y)@@Nt}$6kgpATClgqqKCXX* zmrf(xM;0k*Gh9-B?u$5)j1PB`?Lalj6m0tdZ*gBPb%R(EZpDT+S{C1P&;+AQ}_lfy23Wk_GxG;RH^2m7rnHm<3 za;y1|e7c@&Ic6(_QlH*Swz)>z%kVcZip=ldqeWYLH|Yv)Pk8#ccy>RaWYO# z4HX;bypqo9%whL!m2H$u3y>Gg8z`44>iD+U;HI<%pSgfhfbl8d&%=l6t)sr!kYm`q z;&-y<{&~QvZLH2_m@l{PO-`9Sc#sK6rIdO%%ho;)gKi!wA`BCPehO_|8>

wOKWA zZ}hVb3T4FwGg9t~4dw}@rzn5MJ})lBLxFU72N`9d!bLZw&7@TuYYQs%84>4r%KXr5 zn|Ok<6yq{O%Vt~zR9z=S{CJzkiS0h@Ze*Z9Pak8Bm z+0J~~7&}9>RDfb|cI!fzl%aGW684Aj@KE{?G5H>Y*8#F{WDOZiXi|Tx^>TH!75>4% zayMq}aOlCsel3z7+&sCfs;XjY@pC|aw(+lXIsJk|F=QL6r(HN1! zAvjSJn$Fs7 zL{G#xhvrqKr(<|p507FqjHmYSD3Y-Id(4fYL8fk73e=c%xefaprV36vsYZ;DQ^E+S zOg{-mQ>D7jrk|V2AON#@!jcZ|GAh&P>q`YLad1=6By!eE{5>-FO zWnXx|X2&CJW=CV4tLNx#o_`DHc||&Bd`nn#{M1soPc0#4BKhnh?^7l=RKZYCQgerA zU%bYk6K~@IL+labiWxxflLT^Ye^byP7H5KZU5-%QP?b;0hi|VgLj@zW)r~zG`z;(D zi7oeYXp59e5;1QKy&>Gy5@nnzZDL zV*zJ!T3*qcD*C;Jac5T44D?(=Py}tI5%&?P2${uZB&8pRAw5v2pw3EDZW&V1tf~#Ipqi zNT)y5iCV4H;dAWC#mLxS;{Yiq+VPh6_aW2KWD&*xQ|KC!AUY|MMVGW|z5zm3lY5Hg zJe_118wUY_p_}pQu=J^!e{wZixwMEc*D~gE9cO8Uch<7cKeXm4Py+GOuTNT?aJ>q1DPue_Y_Fi*L$BJAR%h z!AxqEfkk7%pHi5bJ({7?He2$|qQsbeS|XB~Wo*=u36(Wp4Cp_#>6e) zd*{S)D&LZ)h-efFqiyzLmgq6tdsfwha~}8XsqI&*%NiZTlC5af%!=+T1&`_Y``G4} zsAVN^Lg}NZ#gkCEWi1#NYPO1k@z$^s!sZ7D4Y*SabHQRpgw)v_2m|CoO{a7WJz3y| zu~SOl(7^fdfA^xH7r3%=EaKG4u^5{@v#hggwE%^v%H!RoHgcTkP1H+rwU2s96^-2d zRIHu7S&7{evCefRU89oju1Y+)S4Qr%ncM23D9Y^N%IIOLC*1ZJp!~>6W5Yk1dN!Rg zw0pM^Ze!!J=`#ZE7jxL4^auB-H$}-Q5ak_>Nt-Dyf4PiHDr4bI!DU=h87ny&-^)%w ztF?QHpBD4=)q-3|&;|+5QCofyR~NDQu(Kjj!irowngs=$*d83u)3p*$)%v1*SI1e33cw$TgoMu!XtF)E#;C+p&{Bx307!MAe|JbJ}*D>y#`YJ3D0qs zX(DMRlh}3@e}3#x5%Bv6QN6)d=#R@X^3?Eu(K43<1eu;?{adt;xjnA&2jqv4^}~l% ze+?mP;$Rxm#Wp_1Nefpq5>qw`VN$(+DJ;lr6w?%#@gU0gDFc6w&#`ke6_2VNQo13R z%@D|S;Uejh!UaB8l3QL+RC>!Ew27*vmlgWX!l`Vue`wuk(YnzhHw1EBz@+0Q zT9hlgi!G{p%KtVyQDy(Bl~g*DYG$hqO~lrPz@GAW7U+eUvTUDr;doDH!dDvm>DsqF zRr|B(nDSar$tT(I;H1|KA9;dMAEB+5%>R^*PPEBQ9L0K`&gD=0X*|QHaZ?ZR7x6wU zHBT}>f29@;JY6`0-+0sZyayaQESIH>#d6#1P*2_=S_6vO+X+9<6arZdF*zFu(@CR2whv-8wSYY!^LGni;q!iK%93 zXE|$Rp*r*mv1-<5fg2Ucrz2*9|5?_o5V2f*J8C8de)}ludgH&7FH}cp?kFk*zQmWP z*$6l{6jNSx%czsf;{w@o5n?dvXke>zln8<3zg~cf7a}3|O>0jv zzOAoVFdU-oy%jb4`^z=2G52&!&C~XpFTcFi*2Wh^D?x^Jf-LDZa+FKtJf{e3{}J)* zZxF`*3eoG=@L7&7r7!ME!n)YU;vUx)jjQL-?%(4+(?FeZuyT|tgrV_!e{ZV73GE00 zhC`>8I7e7s>!RQ#f54Xrf1Bj0SUBuN{XpeBA;rfbiv_1=CJo%E+GL~GD7SgoY|(J# zHq>+ldw-uY4i1#Xze@G%QvI3-kuGv2q5ra)ZDN5xuB>~)d3w=j%NYb-lDK&|z%R;0 z#ZJr6a=VIG>}vVnk63ea@j&ZIi8rkeTu_q6sRYy+3b%u&Q!?Fk5UYfwE-B|(K2elwjUN;%i zAkLr>M-h8Cf0MW>Fi_SkdDx;mSaPWIHM(1j@Rk`*@lUylNi1Q+loWFbF)X{&QI{fW zz9AC`BSMrm-)saNm9g<#p0MR5O5HuRj4FKcv}XpHwDqXtP)}vJg@hBxXO-j~ldvu1 zw;+2fQ(7fSBFnPIbo&MF_@)6Y2QQRA)$1w4$|0->?Z*rjYnBIW{1Otw)!}9o_On{XhQ`_QJ*C zQPczO0$6#osonn5nBrHy_%j*5=oY|nSbc=hl@odvX%%yqe;rlI>`lk@LOac1s+k)| z6Vs}5WmnaO#WCuwdRAZ$0)fywF3d9m=R94617t;c)cLDxR?xPhN4>U~Xp1{=DR9yn z)Q4mA$V-C-~_ut5%e8-!l&dWJv*U%)FFqBYiuD^7&SKo~>KtnV{<_ZNH8 zN;+waI*YH9f5Q4+THn9Gojojib!3HoY=oV`9ouL!+?sWl;7XdBNqwT2`_wjK5sf$Z!0&egHH;bzFbQN{d&^$g zo5TLEde`u45?>;%htpz?fIP`a_(-2u#aw! z;GZ@ATEnjmgWllv7wrH(rDYKYLJEX|2YGdn&f(TPT_4C(KzTagd_Kq;spl38>>4~J z0zWK=0hStPf7qAgoSh>l|v_IkQB;Z!}<@+jZBt< z4=ZW6x7D1Cn@JKtpJ5qCle&}QWAtc{ZSz2ID9W%!_uGm$ZPf%1)F^33LEduwrh;k% z8x(EaO5Y6D$z{WL*c}X8fIg(&Tj*{tnL0px0X!}=Wq}PA;jy7Z)))e(iIL_A)0iQ! zwFq~ue_p)%>$g6vfnyw{gCKr%J4}K{u~Xlp;NVgGXzfI;b=2*Vlj}(5a-!BcityXb zSOtd=iX_3|Gt=;&bcXS)>pwp|ef#~_KcBw(@aFjsuihol&V%*v;P&WXePlx%F(85l zF0ufML}{o{uRQAN-Djwfl6L;{8V>%;Rh<#Wf33G6$i<%LbjA!&%T4^fJrdve_d+Q= zlD!5N6IO8n_otGSTXmZR7FpB8{yc*!U=^u6yfCaSqB6Vh$))|&+YUKuK z^0KPvV8cU%Kc5XYy9gsOs6TzrcV`cgWMcRtFM(z^$RP)N2x8x)h@5I4nmD19EmRRs zf6XK#ny627(d$@t7^ZYPg%l3<3`1~PM$|bn^d%*=iX6Js1{5T9Yj&I;T-T^s`IZym z(J>Fp!Q?gx2EoB(O@B(*t%6gdGP<}+yJ{nMJsVjhQTxwHrme+AO5E~3`W4qM1@l~D zh%lX45q$ZUU?S!R6p)saP}su?m_G5vf6#qKPk|9C$oA8|PBRm0z=J8Dgu!^Gkf4W?J zqOk7$#10LSism;Zf`%F^)M61bGpgS40)Oj0#b;J% zG$2%Lm0>WQIFhI26r^{nErl_Kki`l6Nos#sBBhCxhRmW5``fTQBNqm$=OIi*5JgD3 zAmMsz!nI7evB%s)!Ync++Vy*pGO4YUhsnxmne)q>OIT#Yj=PpjwhwKoMcVzSODp;C z>^oixa7P&o+zlue0mu2T0tPvguz?hRbwc{i!rg4NL#>P_S#>3_I|3a$?`4FaRL8*p z{v1FbM1bTiV>Q8#j+d+le6XY^dn8xIA4TTq7?kU2uk9ie|7$kP-mKcI`8;1%%`GLu zcQI=s**-feLxL-R zippC9sR$ZqpcL5#r)uc9xFBY)&igTw?T>Sx$5m>fzeY;3;d?BgQEIu+{GP0Bke(q4 z;6%3%#aIyj^1i(5t>Rl-&fIO>s&i^vP(1rEcw$?(a(K4~<@$Hx@?=%}vUzQH`j#f+ zwLX{DedP94b7<@zeH(|yDcU%+mEh2SMAg8e_uZ3lGsLT33tf@jI3{O->zl)+eGZ!HKIHDN^TgUI5;thFA!02Ccw0RpA)ge zBmF|+L1XQWGRs@}6kZA}&QiQ(N+MLQRf=1waSo@nh}+F{61kNuClOg-FKiKUp4cK` z;fzhZtu9O^ufePS>rZe?Qhpm-E$2Wu+8=yg!L5>br?PgLe4_=5jW2;2&JD)B>{dMy z^3PQ|Ey=~(suXDv>6ZTO7V@uuofkqDd=c>H?k-|cgZaxULxnU;;9OjX{A=cw?eXP| zspMGo_cse~94uV1&@nWdzGI@AS%}m24abw-Z*sXJf3SD#&w3Eg;lD`|rYE_W)ltst zAnI0~qw%Nf94-a3;|b@uPI9-o=XJMxF`jjk>v;BT0-JW8%zBe3UY!(w5Y}1s!g*(f zL}^swcZ%OBk+JN2_^>_+c;y8AhzLI}LNxA=>u1S=5J2Isxfwq6jg;_l_0S)=TvgWw z7El9j+ZQMWs(6Oj$42QM8xkeR*4$boTN-L=YMBSi3K=r|Gl+-yr>8!9LsPS+p>ktF z7#6Vei4LHXrqjjJcecBKG}Q#h;&(_6_hC}#l(#Y&&mxjxvmknyq);y&g-*B@$<$To zkA3cHTy%&!xOW{0+$z3CQhtEf9JuZeJJzuY7m&3Tp^izu!_)1kYqtTT=xWrpn<29B z`=pFz6EBDn50f%n7;^oQ!UW`WJda}sYumBN@5y>ol`VXCZabiVJ3#cotzuSR`=fD{ zlwoDdGf9!72=fyk(pMghfIX{BIp>yr2Su~kQuSmPJN;Hb#QjSoFt$e}W{1&MeeTm0 zkr6u>Vwr3org$mRw(5|yQA&VA>I^!>5^FBi^tto<7^O0zOBp=CguQiY5-{<^Q<+sZ| znrE;r4JqYm%w}r(UB`XqksV~u3BCiot+#qgE11$nQp$;}ju+z!CbB%QU@6!ll$Zk7 zj@ZQ3bC4AxD3RY~E8GpxL!&!Xt;!XdSWPYUpc7dv?_YWNw|Lo8*bCavp2A$v{`DG^ z0}ePZ;lNjakKJ?wQteANAnE>8L!4gOA3`on;|;0@#`Yau4<)pjhGgHN{1`-|4-C`c3od&8IsWbMuMh9R^nXOdXptOnSj$3-An+iui?*E7x6M#g_HQ2?BQqeJYEo$P$M}_2IJ}RQjX*lMv?0I zn4~6_^zwX)c+;>W|9761LKG+xWbsGnry*nG2Ip)7098(+yG0_d3`B zJ0B0jqEkfOo6gN)n0KJ0t7k*l(^rPo`4w;yo#ZOc;UBJPolFml_%d0-zn_xc@-UBI zK~NsQOV*uv_p&pIZ<9~(>lOSug|H05>i7+WWe`@!FOu-I_b%$tzuoXn?-qXJzwxih z@bE={uYdG({41f+{F;b&uGdD3evQV64uOt%UnjlSoZxxVf7%J(bx)(-Yf;#b6m;8t z6Lnv6UGWbZT;?de?fn?P>phR+4`%2a2tCEnm&u3T5962Ej+E5HUv?8=g8$R^qnFP_ zI5zWTPsea`eiCz+ z%fp}IZ{Sz>b$1xy*Z8~huP>7G=kbs6KjLp_6)xlH#l~1;$#;6KrgC%1wc5H;b7Q6E za-~j^d1nP1tvBnWut;a{F@>Ns{zyYyqD1{B`H#cL8gAetbTM*15A|mR>o4mX00g~% zn~n)iuukf(@!h@Y7-?bc8F}Ft`(&nu?^nrX_r`)gc$a+Y-I(AAW22AB`J{8zz3!~z zCH$Sj-$~~ce7}S5SMdD~zAxeX6MSF7_ooXzvQtyuO6d1V@Esg@aB7XR^GuvKy(1&b zM^Bc&HnR*b#FOXU&FCne!++@a_#^y(HyM2uSEDEKKjFU`!qd^8H!-2p=lD;R2-&z2 zLm(FtFUF0_!>sl4Fi&RgEn(sW!7brh2H97PWzxXcmI(WV;(-nduHoo+E)fv8^#;ND zWR>RiVdh>RQq;5AX{jXTP128W%^I0mQyufavBdvYE(}aP%s@K1TJmub95e#oEH5E56^G@_x$?fr21!_UY!5k_~;y7<=iY)guD;nHC&g= zyc#nm#EY5l#5@cXPRQum1bw!HeQpSB_qf#4kSB*C${H>S$7XHd6ur>bR*H);-cWpR|yn1b^LLY@{1yWjH^iA zy@tSLG$w$bF{OVE=|%EAQeW%Rx2F3}mAWg6x57WWZMx^5i0R808S-hZj^H zHl@3a7x1xyzbX8kK_#$OQv?BjH7k3;J$TAJpo&B_-bzFjP6fVRRI(S3WiOs!;fs@_ zPTpIL5GZg3zpLJAR5hy61-pGxec=Ha$^n6~_w?=^HbOK(G=QpyOjLDi#dbg40i;11 z@*o{um=*rh-)pz29+iiEChNc4?s&@i(w5h<tFH0CThYoB?SLr`e5D9-<)+(UEV)zi8;w zU_|etywc-ys)8z@`JmaLZG@Yso6`*Z`JxMHFQB|G?=3od{%p1P`Dc|YN~JPIk&P1n zcQB&A|G!{l$%i&2qPP2h6?XUZ8M?n8O0SPlfl2(Y_QC1O%(i6cfe|q=t(0`uV$g{M^R}Gu=AEKwyF@ zfh8(OM5BYd1L9Xl2alAUdiPO$z#Od#C2gAEV1u@YURgRb$=ADoMCr&|EBWTVt2rW(s%QW?#7O&v`L0m{8}vKr^Ds zQ0G9pXG8y}Do8#OJUYHQ@JRPb`7;QV22n%S|Ljp59AicJxFB_TV$F8PrY?{9_9I>t zrWjm)(F=rD_k0w8+cyg6SnTMsJ&J;ZLu%~dmHjlahn!xIGh9d1CDS)eBxTC&2U`i) zVoq0eyrQSuJ7X%(s|&o+^s9M3$--d-i!+BoRvzyT!}rsucX$;C|2F*7pZ?SfA|c#A zd|%zi_Yic5OxbzSpIoQq^Ew(%ulgJj=v?#l)pZ{1Fp>^e0B4ZDRn*Mb?7>8A+TJU8-!QrDDYh zLy+G(DZ3xd$nS!aa)cp5ltm-*J-IX*4x%wn;w(b+9vZ(H;(n_{3rrO2M72yLUPXm< z1sdg->BD?%Lx`h7;n03?8AVUnH_Np3tUSwDu^lT+Or3cuq5# z=y^+1oXsvH$DL%@IBWGKqR zYnT(U%xjYJ32hG;{cn-{HT6AY%r1=&na;2CK_uT0+4hLo1~D$hQLwK77jsr(ZB{Zo87X+@5Cq z&AWhCQNS7-Snb_z;S7(wJKzKFc*|AccW2x^NLH{SL-Y~Nj*j6_$KR%}XN1`llag2O zV2!iW=g4wjWObU&9$;BG-TojQ*P2e)lV*`60q>KHkr{ti#T#I5$2(4SLGAg>#!iM> z-CM*ln~a-YGs^p3DEVyk-YNsSRU)@=Afo>lUMhq5fcOR(XkICe<-EsSAcN)ck={tx z&tUVcHUDRz#hLlZE&JYg1aw+FT}@2y_67`H)(vrs8Uu1tTca~Vbre!b+35z}vy(G> zCubM7w|9TrIk+B*t^E-?NpeoN>wc~T4^~Bv+KtTqJ3?yxD|A0CCPQ%xOai`vfuP4t z<`tMvFccM6$sOXD{s2jlFZ^ZnU=W)DXEH$IB+G9Bd-{v>tgdmUztNNL zlOF+WlMj>{f1tUIgeafO`}(cMm#^~WTWtQQ=aa_u7Z}kxyJ=k~77v}mF-x9E1p zQDWPh{32ckMe3lzNX8j+lDB(WVUSE8<6r5hc=DqruJeZf=TDUUr702YkJnt6h%6uQ0hcjD_)I-kGcDcts&+A?$6Q$?o)4Hs# ze{M+7+=ujb^oeJWy4nV>%Mv%bg1Mf9h&Ns-P(SFS=|K}deaZoD4}^Yz1P0U{(8WEF z22&4)8@mD)1Z@!lkx42GA+ll)hfX1nf=qF^Ds>s%3H1jZS)c@f1x73^DuE4VBT7+k zTCIx-UU`2%0aB|M+3^+_T>0H6uba`GfB3SVh$w11bf=lpYKW!UZ#uJ;lAIi~Y?I`m zinsRWvCAA71I7ELzJ*K5$IX*VSSB;GzE~8q{7StT!F94mP67{K`Jr5|i#Qb_9#GJ} z>>Cat%Sl~RD*?|qo@j6*t$XtqiKTtC*=$J|k#_*2cQ%#*_Z0~0 z5urRE*jiLw)S_y~Y=W3J*rrF_;MwsZbuQysVA48h`j!i_+HJ-(Siv|6+k~Hwl<<=# z4PT#dq7TgRk%PB+_6S%cL_u;7lhKzGfAd6hiMh2>m^c$E@12x5$j*7z9Fz|GR-HXU zi$ajYuUE5~>7Zt^UxyU(p(!zi!~Xg0>yWAW;Sycl^{dq-YomlmN5E^~q9@EQp4xB`2bXD;ef0!Kuh}q`ZgQ@+ zDr|Px@9Ihqu0=i_9ZN^QQpcG$SrZ|GYVkbQPFv+(a6$WhVBwijm%+<4U2zzD%Ut77 z@z?9`r$kN6@N_yAFKG?#$2?N{FW$ZT@Z$NKzdnB_Tfn@<4i9Tm)yAZxraQ7smgYN0 zGR<0L&S8^0nIeA^F@K}x2`-#546F;SX+wD;C)kr&x@#EhgR0#!Yl%3%dU!0^iL^vS z(b;560^|p*k@Vh_v|`{srzEOxz=j@+0Yt@A*A!Ha55>9Wpl~EMPqmgln9EI=^GXLy zC7nZNK6=eZZLJzD%;6xE_27>T4Tr_qsK1*nm@lrvfUJLv4=^vBe86-R*kO7Tu0t~L z#E0Ik70`*dX%0S|e%8px>JfLJu?N!B96D~5I~FCvj>BB39Ne;!T9!F2+l?{#g(Ny5r)5Iz#9Y7wSc1^ysf{=}$EF%|n=<2S)QyDpyOlZC3g(y5_gtcAj*q?yU19UL^!p)P;Y#L;iDg5gk5`2~uVibGZ0%1V6?o*f$zV*Acq* z|L40O-!ykP4-8)#;n${Z?DZIXxd__=Vrzf?mN|UOdNbE~y>k|gr0u?gZ2q=}L%zCR z%%|wWLjJzLe=NAXY0lOJ5G#M)-yaP&fAlJ`+a`g{WfRa)`RUUhnp8{BB7QSc;&pyI zQbttxRy64*Pogv_@qq{dx+btb2%>8O>myE|Er7emf9CklDolH`=(yrvbMb2?euaOS z>G4G}jDF*)id7d!PLE|*M^?w%SD`WW`~-KOA;==m`QhfdhLmkTbRDJ{`z8f&={N(?4u_ zXnekKb|~+*$vN6m~(}UF3H$}8jR*BdjX=2VzxajmB|K)La)#?BFtG{&9PJj3x ze~Au<{l`y-a>^*plfPh^um0mJO7qo!V49=BV>y+W=IGBynC9u@CzR$fu;G74{o#{8 zc7l(7%M2g2O!3!bDp_PzwQHJn%6$p*r7k-&KFHzazlQwkO1HyWi^H~?N)RN6qsh;MKD1%%DUYBb2y|-@i$FL*WQN195OP2z z3kJ7AcO_oNpthqZ#uT%*6h|_}ye-8Ok)nlJfz=i-5Z*Q<7A2K@$V@UD^WS`vi=HEY zxk7rwKLnsZWA0?)$Nl~JAm;xK#oxh&M=8tu{>-m~_094{eap+yTBE2HO4-x|InVi~ ztd&dYI~mwmWXsMl`b2Wn#y$~dV!QT<&}wHHvBr3=#hxMXbPAr$7qD7$RNX;NiT2h? zBA_EzEu~(wWCcqZy1G3>^kW2n@!%qa0yWRn$#67q5X0vL6)wX*LfFUS+4!S` zXTC|Mh@>5_lW^LZbw5U(C-Eg5G7qzi(lu-5Ld+Lf9#Uoyr2=BsbmL zUKPJcuDYi^asct>8G=l|IZhuwd_g~79IrU>uSxi(v+BOUT3;vi`E4ifo?eW9FT2U& z{MU=l>-ZD>g3SxRU-9oF{QZu9KZf6%&Gq^EBDsv=5AO0$^aFPJEBXPH=N-a{<9+^J zv?=U;Kl#jk&kJT`ES~nAueRNnZhuuk`x)?4ew(50&#ogtrrZ0HftIRhorZS|`TPF< z$sbN@+NHn@2uq7`1&eM4i*D6_P3+c2T2fq%(?;ywB3Y53IED3wqP_(S`j9&%G=5}G z36CE+7OfwiAYAyWYnL`&9#6+hYj36TO_I9FJ|5rDc3UJ%s{13)CTQ5hl`jOq5_SGs^$d@iwnV;9{A7k}xy1CPa-&K^*8Ni;s7t zCM?jz1FTB?(Tx`YtlB9)p3n2ELKcDThTpnR@L_aGef^EKd;-T_R22DjBNSG}n-pK` z2%-XKXuAo#nwuxq+yv}@*)T9?2)OB+tU7oDOZDyICWWpz6BY!fk*oNkUXO$gn4V9F zHRf~Je{4-C#F`U2Y?#Z6!oO|?6IvoENAMBN)1!uk*NW}_daIpJC9`fSj&oxKs-c|rBEAEb7lvvi zwMpYDgBu(gl)^TDMIV~RCUvI7+|w$Gzun!d=30lD+gU~Px3RZX41F4VTvbS)=6>ga zRo~X$=S`yntdqcqWH?#(U|_mz2YQbR)oLd~vTCeKRyQ>_Axv;kJi|a!()nxEmjsuJ z6(Z8%Ks>J|s9jX|^@oVP#0I1#97hnVKcogEjXC4)V*=}c+e)KjD?%t?JzU>OHd@WX&{E+f&=)aEni^IWywb z5=8JxqBp_<-ir9gs;cwZI$#82>5*G&``bAXO$=u#D}xhL$#-OE^$sF;c)VsG7=wsp zPK!A)YO6YbCiX@)=>q0iDBw8;^e;kr*>Kd8JySsLdMP!3I?#aZ;xjCbER-0(Uz0k`_yj)MRl A&4|gI}Xy0Iwf?u>`m)zqal&ziO%uI1)r}%olD$VG} z9BosV^Set(HZt=Fsjbztcrly(GICmnfoD$O+2+Dawzd|3Ss_*!UNjX+Ak^n)0-R@sz||6sx_gK+ ze5VMFV~q)}aK>e+XzHG#ox8%2Mt@s}^Z42jATHt5oT?;BfI>Z3oi8uqvU`n~TGw5t zW{eaybteJ>NOxQD2$FLB_Jf?Wm{Y@ef~RyzmOKhu5+gH2IPN!NHgXdac08BMn?@7LE(O^xmD)7h&ek*&^Hdx*2GnZMM z$6Mp0jcHTN1l?{gt<(MSAT`;Mv|Hm3l9+C?cu{bv`?dWYi`WgL%)fut80IM0r+ya zwFp9UHtQb<#?;|gn=-HSx}R6C^Ix<1`psf0IdG3egn8_?)Q&XcZ^o@&cA^_BZv(f0 zM_v)xBUeUaxFL}OLXW`6Cn{_+(pr|8cqM8}G0i_}lh*>RePO-7xX$NH3RqV6?T3#y zbCyB=kQV7xRwlNo5zJAMmEWCz{_t8Kgd-8kqGu%-&@2v#2CnircwYwW7<@g?)IcVl zVU=m-SqN2Bw6;u$ZG3HD0aBOtyWOpw| zgSgEFli%r*nA@wj1o9+Nq~hQhgAan(*&8SHs?nR#NAf;+6g1B4;L&?HoaxQU9H)~< zl#`zG&6A!EE(HCsbKr`9mRT$$5*6Fb#5-H$`eY-B=y*Gyy+=arHC}3l4RgMr~w~xuzoaxf2V7h zJTA&fl64l&U7@8O^hMqcsh*SeB!h@%9~X<3E&>~Cm`Yp24cYh=EkZX9vF(2*t0w6( z`{ia%jv$)nNvSU7o6~qP=tZS1*cb|^oZ9wFXtc*Tu!W5BX6Q8`OBT5K;rX>y4-SBFRn|@sOSMWD!s%iNIK( zdw8Nt6G~4JH8aL z!{EveG}Cloa6$)){W@@X91G(^G;X*49VZO=!7RpAM;Mzbw+|bHWQGqi$xq;0yFi7h zJ>Vezaf-%%1--C1@hIqpMKrpD8?QtnX|$YFf(k@*kpz)29Kt(dEplA`C}D!dO}|+V zg~A|zbUs8ur;BA6_2{P%7eO?_fNf$+J?Z&ml2z5BtfYeA7XgqOf;5CpgUhrHNb~dC z*F2O2fS-JKdis;nWkYL`5O^gh7va$sRb8Yvgcppc`CM4=?W@xOVsWovY%4-2!~H-QIzeo|>_T9He9y96V7L2!uU`E4=FQtz-~9aU)yoqLwa17U9RM9D zGTFTu(6Q-3y*LP9@Ui|b&^q{u9Z=wKSP04`s|q3GHpn#NYQVqHmY~e4CG5q_ZXb^o zoRZ`v4gtN2$pT@62zie(X6Rwr81{m}-8d5UgpF7hpVVo+s$MLncqSbU$nv9$=+gLq zKa^neWJ?*-Hh?`V&h!WL^2Z;3!pSWY!VXfvdAB$7>EZ?-!c>YFL5oy^RXK;vjjKV2 zUDq{2owLX)X@Ky>jM>@(&Nnu7y%DNN0ML3-lCZ6ui_r3vtdfQ?BJMaW1>W2Tf;x)X z#T8;lAqN_bAfsOI!DU{g<=U8m9L^?x7v?Tk>ENpGFL$F=+OZG71b^d!dm{K7O*sDk zzMw~HxWE{Kx|4qA-#Coj?Z!rP?ZwxuP?#*yn~}FgoWP6zMGHaAdc>RGEL7nrQ4AFL zQmjDq2`YYy!#cJP>ze);Es{8Q?&#yT``U+vhGMExZ@aVcKvcOUBgg+eoW{5 zQ)PMhQ2q+d+IE1Sc^6=mBwIj;C7~52?Q|48n>5$4akjX;`+EBuLefu00`B!ojEz(?jexnwT=NN*ft0fo$&KV;qy8V13X$Z{{H~n K))nGzasmJ&Rfa(T delta 38387 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 diff --git a/package.json b/package.json index fb79c754..6a41c77e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "1.0.10", + "version": "1.0.11", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/object.class.js b/src/object.class.js index 8e334d73..f0232ba5 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -1048,26 +1048,7 @@ } }); - var proto = fabric.Object.prototype; - for (var i = proto.stateProperties.length; i--; ) { - - var propName = proto.stateProperties[i], - capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1), - setterName = 'set' + capitalizedPropName, - getterName = 'get' + capitalizedPropName; - - // using `new Function` for better introspection - if (!proto[getterName]) { - proto[getterName] = (function(property) { - return new Function('return this.get("' + property + '")'); - })(propName); - } - if (!proto[setterName]) { - proto[setterName] = (function(property) { - return new Function('value', 'return this.set("' + property + '", value)'); - })(propName); - } - } + fabric.util.createAccessors(fabric.Object); /** * Alias for {@link fabric.Object.prototype.setAngle} diff --git a/src/text.class.js b/src/text.class.js index 950cd2de..3ff57d1e 100644 --- a/src/text.class.js +++ b/src/text.class.js @@ -12,6 +12,37 @@ return; } + var dimensionAffectingProps = { + fontSize: true, + fontWeight: true, + fontFamily: true, + textDecoration: true, + fontStyle: true, + lineHeight: true, + strokeStyle: true, + strokeWidth: true, + text: true + }; + + var stateProperties = fabric.Object.prototype.stateProperties.concat(); + stateProperties.push( + 'fontFamily', + 'fontWeight', + 'fontSize', + 'path', + 'text', + 'textDecoration', + 'textShadow', + 'textAlign', + 'fontStyle', + 'lineHeight', + 'strokeStyle', + 'strokeWidth', + 'backgroundColor', + 'textBackgroundColor', + 'useNative' + ); + /** * Text class * @class Text @@ -124,6 +155,14 @@ */ useNative: true, + /** + * List of properties to consider when checking if state of an object is changed (fabric.Object#hasStateChanged) + * as well as for history (undo/redo) purposes + * @property + * @type Array + */ + stateProperties: stateProperties, + /** * Constructor * @method initialize @@ -134,7 +173,6 @@ initialize: function(text, options) { options = options || { }; - this._initStateProperties(); this.text = text; this.setOptions(options); this._initDimensions(); @@ -148,38 +186,9 @@ */ _initDimensions: function() { var canvasEl = fabric.util.createCanvasElement(); - this._render(canvasEl.getContext('2d')); }, - /** - * Creates `stateProperties` list on an instance, and adds `fabric.Text` -specific ones to it - * (such as "fontFamily", "fontWeight", etc.) - * @private - * @method _initStateProperties - */ - _initStateProperties: function() { - this.stateProperties = this.stateProperties.concat(); - this.stateProperties.push( - 'fontFamily', - 'fontWeight', - 'fontSize', - 'path', - 'text', - 'textDecoration', - 'textShadow', - 'textAlign', - 'fontStyle', - 'lineHeight', - 'strokeStyle', - 'strokeWidth', - 'backgroundColor', - 'textBackgroundColor', - 'useNative' - ); - fabric.util.removeFromArray(this.stateProperties, 'width'); - }, - /** * Returns string representation of an instance * @method toString @@ -838,20 +847,6 @@ return this; }, - /** - * Sets fontSize of an instance and updates its coordinates - * @method setFontsize - * @param {Number} value - * @return {fabric.Text} thisArg - * @chainable - */ - setFontsize: function(value) { - this.set('fontSize', value); - this._initDimensions(); - this.setCoords(); - return this; - }, - /** * Returns actual text value of an instance * @method getText @@ -861,20 +856,6 @@ return this.text; }, - /** - * Sets text of an instance, and updates its coordinates - * @method setText - * @param {String} value - * @return {fabric.Text} thisArg - * @chainable - */ - setText: function(value) { - this.set('text', value); - this._initDimensions(); - this.setCoords(); - return this; - }, - /** * Sets specified property to a specified value * @method set @@ -888,6 +869,11 @@ this.path = this.path.replace(/(.*?)([^\/]*)(\.font\.js)/, '$1' + value + '$3'); } this.callSuper('_set', name, value); + + if (name in dimensionAffectingProps) { + this._initDimensions(); + this.setCoords(); + } } }); @@ -943,4 +929,6 @@ return text; }; + fabric.util.createAccessors(fabric.Text); + })(typeof exports !== 'undefined' ? exports : this); \ No newline at end of file diff --git a/src/util/misc.js b/src/util/misc.js index 9fb23f2d..e8470d97 100644 --- a/src/util/misc.js +++ b/src/util/misc.js @@ -347,6 +347,30 @@ return canvasEl; } + function createAccessors(klass) { + var proto = klass.prototype; + + for (var i = proto.stateProperties.length; i--; ) { + + var propName = proto.stateProperties[i], + capitalizedPropName = propName.charAt(0).toUpperCase() + propName.slice(1), + setterName = 'set' + capitalizedPropName, + getterName = 'get' + capitalizedPropName; + + // using `new Function` for better introspection + if (!proto[getterName]) { + proto[getterName] = (function(property) { + return new Function('return this.get("' + property + '")'); + })(propName); + } + if (!proto[setterName]) { + proto[setterName] = (function(property) { + return new Function('value', 'return this.set("' + property + '", value)'); + })(propName); + } + } + } + fabric.util.removeFromArray = removeFromArray; fabric.util.degreesToRadians = degreesToRadians; fabric.util.radiansToDegrees = radiansToDegrees; @@ -362,5 +386,6 @@ fabric.util.populateWithProperties = populateWithProperties; fabric.util.drawDashedLine = drawDashedLine; fabric.util.createCanvasElement = createCanvasElement; + fabric.util.createAccessors = createAccessors; })(); \ No newline at end of file diff --git a/test/unit/text.js b/test/unit/text.js index 997c6e7e..461b5181 100644 --- a/test/unit/text.js +++ b/test/unit/text.js @@ -106,10 +106,10 @@ equal(text.get('fill'), '123456'); }); - test('setFontsize', function(){ + test('setFontSize', function(){ var text = createTextObject(); - ok(typeof text.setFontsize == 'function'); - equal(text.setFontsize(12), text); + ok(typeof text.setFontSize == 'function'); + equal(text.setFontSize(12), text); equal(text.get('fontSize'), 12); }); From ec28167906422dc7924ee582dc42c8443d9a8b0f Mon Sep 17 00:00:00 2001 From: Kienz Date: Tue, 19 Feb 2013 09:19:46 +0100 Subject: [PATCH 15/60] Fix for issue #433 - wrong width/height of image objects If svg with image objects was parsed the width/height props of the image were overridden by width/height of the svg file. --- src/image.class.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/image.class.js b/src/image.class.js index a905ee5e..2ec6d295 100644 --- a/src/image.class.js +++ b/src/image.class.js @@ -403,11 +403,9 @@ * @return {fabric.Image} */ fabric.Image.fromElement = function(element, callback, options) { - options || (options = { }); - var parsedAttributes = fabric.parseAttributes(element, fabric.Image.ATTRIBUTE_NAMES); - fabric.Image.fromURL(parsedAttributes['xlink:href'], callback, extend(parsedAttributes, options)); + fabric.Image.fromURL(parsedAttributes['xlink:href'], callback, extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes)); }; /** From 80469a23eb0557384ffaca0dd4f13c44e2143207 Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 19 Feb 2013 13:34:50 +0100 Subject: [PATCH 16/60] Fix createCanvasElement canvas initialization. IE<9 now works again. --- dist/all.js | 23 ++++++++++++++++++----- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 44439 -> 44450 bytes src/util/misc.js | 19 +++++++++++++++++-- 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/dist/all.js b/dist/all.js index dc4c0a4c..12899629 100644 --- a/dist/all.js +++ b/dist/all.js @@ -2207,14 +2207,29 @@ fabric.Observable.trigger = fabric.Observable.fire; ctx.restore(); } - function createCanvasElement() { - var canvasEl = fabric.document.createElement('canvas'); + /** + * Creates canvas element and initializes it via excanvas if necessary + * @static + * @memberOf fabric.util + * @method createCanvasElement + * @param {CanvasElement} [canvasEl] optional canvas element to initialize; when not given, element is created implicitly + * @return {CanvasElement} initialized canvas element + */ + function createCanvasElement(canvasEl) { + canvasEl || (canvasEl = fabric.document.createElement('canvas')); if (!canvasEl.getContext && typeof G_vmlCanvasManager !== 'undefined') { G_vmlCanvasManager.initElement(canvasEl); } return canvasEl; } + /** + * Creates accessors (getXXX, setXXX) for a "class", based on "stateProperties" array + * @static + * @memberOf fabric.util + * @method createAccessors + * @param {Object} klass "Class" to create accessors for + */ function createAccessors(klass) { var proto = klass.prototype; @@ -14447,11 +14462,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {fabric.Image} */ fabric.Image.fromElement = function(element, callback, options) { - options || (options = { }); - var parsedAttributes = fabric.parseAttributes(element, fabric.Image.ATTRIBUTE_NAMES); - fabric.Image.fromURL(parsedAttributes['xlink:href'], callback, extend(parsedAttributes, options)); + fabric.Image.fromURL(parsedAttributes['xlink:href'], callback, extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes)); }; /** diff --git a/dist/all.min.js b/dist/all.min.js index ed821a08..ade96146 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.11"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(){var e=fabric.document.createElement("canvas");return!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.11"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " ).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL (function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){r||(r={});var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(i,r))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +top+", left: "+this.left+" }>"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 4e56bd0ae128e970d539767ab3450831a962b617..9ee31092e2eb6c47a81a69ae51638069feebcb82 100644 GIT binary patch delta 36961 zcmV(yK-^eHiFu&iSDU3`e~`Wz^;rCu>xtd;?i*&m$#Y@sq>l6_ z9&j)CjSS)TvsdK)wnVhZ9A7DbEq^hP${%St!*2g!@!|8wR&>e)ye4Sjc|K|Nw zDN!qL;2bA&C#-DW0DMa$a=5rQimL6%*!L?Xib=B{rbw(%E|#=i&IMn`sr`<$2A1+td|LI! z`8-6vCv7CY)DtQj5-C|g2QF=aNJhAfuhP7TsEwKXmq{{>m$T|GZ=XN&9A<@}vd8Hz zxMtZmeFnySTeHCj5J_9MV??5u+o7JDu;T!dsO6PX_thnnPAJM-wvlafE zc*lT-7FbDxvdB|t2{s!`XKu8%Z>zw&;bXO6|(^5VUq7F`;NGT1b)U8B57Oy1>mg_QiNz!TUg#Zapu}VoT=t0t} zD|{y9Jd*M(&oq?jk_LnJr%_Wt{OvbePAUknOHav$!9?)tizp`{F>mqei#zh_i*39* z6Nm*f>J_zcx7sFc&bmf_uFl|>CrtawCKrEoM=pQ6B+`s10LW%$v(L_Gobg=&(FH4=h3)A|R& zi{O8GR2u3H&9{D_Qjh5Wm(dT3k@|4*k{GEE-UID?J^W$#L3pZ~B6skBmf%A_dKUfm zoBIGVcEU0?1RyarE$ zUn8e*{3pJXmD$wc?od}W?5i&U&zt0fT3>%K9k?$Dm&QOypl&&QbQZiY*8Sez3(HHw z%!B9Si{G=4(@HiMzzf2c7gDP>iJYlJZ+iPC(Nn(VMM?~1^fY?h`^e+*nsOF2QV|XR zWB^Sd{rb*z;)D)PUn$|K|0{Q6HWTKFZ+H@3MK7eW?kg#f{Sv&=YXD>OTu_T2qvwAx zg7{27$HdMX_{Y_`KPuk&UGVm<13>6U^yTeAo)L%P1aGC`uqw4$7=eq9CLMw($X?ppSdRnjF?d`p*-;QZ0 z&3Sw4Z9e)9><@hZk&+(frj7xMrY?U8|KUC?he$YEm@-6*AawW(80N{zfo&2T$yf}W z>(qwJUFB4!)3j*rDr}Y5Y=XPR=@4-s_^*@&U%&XFk3YmX;0Ip0rikP$%VY=USmTNo zx8XZl+qRw@9}S!%$EQx!QW3i|n59U5USRV(pv|m$3M*+Mc6BNXO^G*vXzJ{S7(7fZTFqO*Be=B;=G}3H2_OX?cmLDUrH?*aNB$ zMXfsziXy%_bKtZXt349?4G!V5ld_-r(XqFLXD}uzqv1hB5N=#`HClga+vtd}c6jE5 z1Q$JwGRFsmOBpL8kO@S*@s#@x6?KMAT>y0b%n7Irv8F6C)7qm-Vvus53hGmk?(Hpw@?1=7;rT9iBHSSmLxL+M_6*$d4q7VMZP#lJwe40d zkSY!ek6Qh`jcps=)kc2~@9N9L3wx$jV|X|9@NVQ7J%ZxM#1|}@U3-;umg#cy(wJZS zZ@rij=^rR>j33`Td_ws1K8XvL;ORO3)HU*+6Vq}@8OI%Y0K$bp^`?>WeNG}K=Y-Ab zhyfxx*qQg5h<`Q_dH*eaTmrdPT3r>#E$#Gg#X7#z*w{m|5xalI_&Pcqj+P*&_#02? z@7G61J^uNM{(f^b9W9T)Isc0P{(ZE(e{?kN@y`^0@Bf2e?(@snNBr_Ny-brS{!XVz zqMzy6;YGbWpwZFD8C|2P>*ML@`kN^|{B!#M00fA;q*~ZRvTHVUt8WV9KR(?9YX`r;7Y1vc<(*Cpn zg^e6XLQ79$-e5HGsm{^CXtM7OP@MH7Of9lnPP?=@ETw-+*?{kRb8jkM~Vq-Le0igm8GnVlB6$G`bRuP0~TNZK1(iOfVQ~L`CWtA^P zZ(+OrC;PayJs{LTj_tBaXHo$JeJwNPTYEuZgj+iy2NBV*rfKo#XGol_ZEH?M`_ku2 z+C3PqH<@D1i<6Z0MBmGX#hF{doB9nJ~HFq6f5rMt9NQ#ax zFtCdi!qGONj6F zeB;y7l=t^-FB&7Xf|0Sb7#N|RDN}@hqDc`tn!Kd9K7qSDuizK?_}3-Te07wHxRig_ z`)MyZxY;jA6vtcP<1Ljvc0qgP2)@Lrj*B2f9)}E3RW(9&)sA5G(XF&#O0e@iNv{(Q zO=AYrQXlOeH)34jNG8$vSw%iW1o6P*_!yI=Q0lDLe?MY3Oh1EOAp(*;yo|F8IMkYi zAH9sv^P;lSb?YQtCkIIk1*=h@;mUvC%l7r~CWpnonBA985AV~IW`4B^V(@-(QN4u- zfQY5Z02r%MLRk4aNj9F(S>FTPLjE=jn?blH(ygp3 z+MdAGp-F88&r21}lNrwLI`bB6sPUP@CY+h;*<1NOLP_QX4E^Uy&QUrX9x*;i@&^~m z;xQt(*|Zp>GhwB!dG=pMlr4W!`-uE`lZ^-E!IU-y!4A8L8rwG4>=%g_Yn3dKj5T?MpNBvCM3uT6_6}+-3 zL7Rial=*=A#l9L?ibsDkIK}L=@JO;<4i~=vH^fsrow3{ngZ<%TpxjcmpDBWdQDxNf zq@NkKN4j4(COR=azoXTQ7wp;=FL#YQ)-G@WRh4QWvG(lqS}SfSz6|$%SgR0tQXEZ_ zI=&wa;3VB^6%u;Kf+asC_36kJuICq0?mLE8zC$?a_$g5n=YoHq`qeOJ2A6)i6iiqN zPgL?fQ|rV>twQ?mS}h}OSFh={Vl%$+0`MUs?n z@>lUBB@z&oR(2s$-{g-(xhS`@nJh5F7cH$E$-hOhl}b4Gih0|o2qJG~v5r9@S2VTq zVjjdKn%RxlBg}&vU0T`T7MQ_^7FK$a%~FzD1jR0+i4A`sc8b?;zf(@E(Uq0G$QR2Q zhoY}8>lGZ$?IA7VPmkjA5^=_|B)YIN1qBl%N5yWq=_v7FJWk3oCzdBjs05Z^V6tDpj0_AwZKpim(De zYaRxN!}Wg&g;Miq!mG_Ql`kLo@j)UYn{s$z)~R}8n<3)q$-L93;2lQ3O0nNAW|pb- zdR>O3|95bnd>PD>PACP5(V{!+X#-G#E(<5{~GX}1AEF*su9QB(joKq1-U5a;gEZgHVp`0xS z^i_x_Du|!sL;29-C;HYcP6=q(`ZuNJ_`JjhBSe+rG|FsvXm34@js``j%@VSn@tyLj z?58JLKgEh5c?U`+uo1%)&O16BjgoeI2(aE9b;-td%!kZr#As=R1;XxWj4gs*WKfYX zD3pH*X-ghS8psc%1%+1__8*gSNYEpgbkLOXzlwI-rAm(*Yck{}*8U5@<(#tzqcEuyj@> zMHhl`#+JDa3O&0bC|wiM^rRGsZ_KXf521g5pdp6D!LaV_$w-RD?eknDljXQ;EJcPz zo&>RJKqjIxbg6_%AT`2h6B!XCc9O5m;YM&NG0wh!Cc@OffWY^&)2QmAc^g5acNIy< zPO9c2boExtriMjpB5Pvq**pw0U#m2`%0DJyh5Jsz0{57N*=E}gpEMAS!Qkyf#E^e# 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

wOKWAe{b}&4GLw&1v66a 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 A&4|gI} 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 diff --git a/src/util/misc.js b/src/util/misc.js index e8470d97..97fd5569 100644 --- a/src/util/misc.js +++ b/src/util/misc.js @@ -339,14 +339,29 @@ ctx.restore(); } - function createCanvasElement() { - var canvasEl = fabric.document.createElement('canvas'); + /** + * Creates canvas element and initializes it via excanvas if necessary + * @static + * @memberOf fabric.util + * @method createCanvasElement + * @param {CanvasElement} [canvasEl] optional canvas element to initialize; when not given, element is created implicitly + * @return {CanvasElement} initialized canvas element + */ + function createCanvasElement(canvasEl) { + canvasEl || (canvasEl = fabric.document.createElement('canvas')); if (!canvasEl.getContext && typeof G_vmlCanvasManager !== 'undefined') { G_vmlCanvasManager.initElement(canvasEl); } return canvasEl; } + /** + * Creates accessors (getXXX, setXXX) for a "class", based on "stateProperties" array + * @static + * @memberOf fabric.util + * @method createAccessors + * @param {Object} klass "Class" to create accessors for + */ function createAccessors(klass) { var proto = klass.prototype; From 686b926955719e48194a5b957fba56ce84642419 Mon Sep 17 00:00:00 2001 From: Kienz Date: Tue, 19 Feb 2013 19:48:07 +0100 Subject: [PATCH 17/60] Valid svg output (http://validator.w3.org/): - delete width/height attributes from g (http://www.w3.org/TR/SVG/struct.html#GElement) and path element (http://www.w3.org/TR/SVG/paths.html#PathElement) - update DOCTYPE for svg version 1.1 --- src/path.class.js | 1 - src/path_group.class.js | 2 -- src/static_canvas.class.js | 4 ++-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/path.class.js b/src/path.class.js index 3605cd09..e2325d1e 100644 --- a/src/path.class.js +++ b/src/path.class.js @@ -635,7 +635,6 @@ return [ '', '', diff --git a/src/path_group.class.js b/src/path_group.class.js index f912f92f..7e28ab27 100644 --- a/src/path_group.class.js +++ b/src/path_group.class.js @@ -142,8 +142,6 @@ var objects = this.getObjects(); var markup = [ '' diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 8a67dfa5..3fd8b2e5 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -940,8 +940,8 @@ if (!options.suppressPreamble) { markup.push( '', - '' + '' ); } markup.push( From 9be89b2f2f40964d8408a2bcd8337772cb99ccbf Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 20 Feb 2013 13:19:22 +0100 Subject: [PATCH 18/60] drawCorners -> drawControls, for consistency. Remove unused hasCorners and use hasControls instead of hideCorners. Version 1.0.12 --- HEADER.js | 2 +- dist/all.js | 56 +++++++++++++++--------------- dist/all.min.js | 10 +++--- dist/all.min.js.gz | Bin 44450 -> 44437 bytes package.json | 2 +- src/group.class.js | 6 ++-- src/image.class.js | 2 +- src/object.class.js | 2 +- src/object_interactivity.mixin.js | 4 +-- src/path.class.js | 2 +- src/path_group.class.js | 2 +- src/static_canvas.class.js | 34 +++++++++--------- src/text.class.js | 2 +- test/unit/object.js | 6 ++-- 14 files changed, 65 insertions(+), 65 deletions(-) diff --git a/HEADER.js b/HEADER.js index 4e750b4f..f9ebfee5 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.11" }; +var fabric = fabric || { version: "1.0.12" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 12899629..7a67c288 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.11" }; +var fabric = fabric || { version: "1.0.12" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -5744,7 +5744,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { clipTo: null, /** - * Indicates whether object controls (borders/corners) are rendered above overlay image + * Indicates whether object controls (borders/controls) are rendered above overlay image * @property * @type Boolean */ @@ -6056,11 +6056,11 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { if (!object) return; if (this.controlsAboveOverlay) { - var hasBorders = object.hasBorders, hasCorners = object.hasCorners; - object.hasBorders = object.hasCorners = false; + var hasBorders = object.hasBorders, hasControls = object.hasControls; + object.hasBorders = object.hasControls = false; object.render(ctx); object.hasBorders = hasBorders; - object.hasCorners = hasCorners; + object.hasControls = hasControls; } else { object.render(ctx); @@ -6288,7 +6288,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { } // delegate rendering to group selection if one exists - // used for drawing selection borders/corners + // used for drawing selection borders/controls var activeGroup = this.getActiveGroup(); if (activeGroup) { activeGroup.render(ctx); @@ -6304,7 +6304,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { }, /** - * Draws objects' controls (borders/corners) + * Draws objects' controls (borders/controls) * @method drawControls * @param {Object} ctx context to render controls on */ @@ -6313,7 +6313,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { if (activeGroup) { ctx.save(); fabric.Group.prototype.transform.call(activeGroup, ctx); - activeGroup.drawBorders(ctx).drawCorners(ctx); + activeGroup.drawBorders(ctx).drawControls(ctx); ctx.restore(); } else { @@ -6322,7 +6322,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { ctx.save(); fabric.Object.prototype.transform.call(this._objects[i], ctx); - this._objects[i].drawBorders(ctx).drawCorners(ctx); + this._objects[i].drawBorders(ctx).drawControls(ctx); ctx.restore(); this.lastRenderedObjectWithControlsAboveOverlay = this._objects[i]; @@ -6374,7 +6374,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { if (activeGroup) { // not removing group due to complications with restoring it with correct state afterwords - this._tempRemoveBordersCornersFromGroup(activeGroup); + this._tempRemoveBordersControlsFromGroup(activeGroup); } else if (activeObject && this.deactivateAll) { this.deactivateAll(); @@ -6393,7 +6393,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { this.setWidth(origWidth).setHeight(origHeight); if (activeGroup) { - this._restoreBordersCornersOnGroup(activeGroup); + this._restoreBordersControlsOnGroup(activeGroup); } else if (activeObject && this.setActiveObject) { this.setActiveObject(activeObject); @@ -6407,13 +6407,13 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { /** * @private - * @method _tempRemoveBordersCornersFromGroup + * @method _tempRemoveBordersControlsFromGroup */ - _tempRemoveBordersCornersFromGroup: function(group) { - group.origHideCorners = group.hideCorners; + _tempRemoveBordersControlsFromGroup: function(group) { + group.origHasControls = group.hasControls; group.origBorderColor = group.borderColor; - group.hideCorners = true; + group.hasControls = true; group.borderColor = 'rgba(0,0,0,0)'; group.forEachObject(function(o) { @@ -6424,10 +6424,10 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { /** * @private - * @method _restoreBordersCornersOnGroup + * @method _restoreBordersControlsOnGroup */ - _restoreBordersCornersOnGroup: function(group) { - group.hideCorners = group.origHideCorners; + _restoreBordersControlsOnGroup: function(group) { + group.hideControls = group.origHideControls; group.borderColor = group.origBorderColor; group.forEachObject(function(o) { @@ -9761,7 +9761,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati if (this.active && !noTransform) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, @@ -11065,12 +11065,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * Draws corners of an object's bounding box. * Requires public properties: width, height, scaleX, scaleY * Requires public options: cornerSize, padding - * @method drawCorners + * @method drawControls * @param {CanvasRenderingContext2D} ctx Context to draw on * @return {fabric.Object} thisArg * @chainable */ - drawCorners: function(ctx) { + drawControls: function(ctx) { if (!this.hasControls) return; var size = this.cornerSize, @@ -13035,7 +13035,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati } if (!noTransform && this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, @@ -13342,7 +13342,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati if (this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, @@ -13593,7 +13593,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati object.setCoords(); // do not display corners of objects enclosed in a group - object.hideCorners = true; + object.hasControls = false; }, this); }, @@ -13759,7 +13759,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati if (!noTransform && this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); this.setCoords(); @@ -13823,7 +13823,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati object.set('scaleY', object.get('scaleY') * this.get('scaleY')); object.setCoords(); - object.hideCorners = false; + object.hasControls = true; object.setActive(false); object.setCoords(); @@ -14168,7 +14168,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati if (this.active && !noTransform) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, @@ -16024,7 +16024,7 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { this._render(ctx); if (!noTransform && this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, diff --git a/dist/all.min.js b/dist/all.min.js index ade96146..53b22e04 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.11"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " -).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL -(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawCorners:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hideCorners=!0},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hideCorners=!1,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.hideCorners||this.drawCorners(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.12"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " +).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL( +function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor +:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=!0,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 9ee31092e2eb6c47a81a69ae51638069feebcb82..e8c2937b21369c3be65c8941d822573e8a9c9b05 100644 GIT binary patch delta 42491 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 bkO+mJKMJ4M8Q{^P@&5;EpC%zJasmMWii*}e delta 42438 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", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/group.class.js b/src/group.class.js index c9a835fc..ca257f41 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -91,7 +91,7 @@ object.setCoords(); // do not display corners of objects enclosed in a group - object.hideCorners = true; + object.hasControls = false; }, this); }, @@ -257,7 +257,7 @@ if (!noTransform && this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); this.setCoords(); @@ -321,7 +321,7 @@ object.set('scaleY', object.get('scaleY') * this.get('scaleY')); object.setCoords(); - object.hideCorners = false; + object.hasControls = true; object.setActive(false); object.setCoords(); diff --git a/src/image.class.js b/src/image.class.js index 2ec6d295..df4d1b58 100644 --- a/src/image.class.js +++ b/src/image.class.js @@ -109,7 +109,7 @@ if (this.active && !noTransform) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, diff --git a/src/object.class.js b/src/object.class.js index f0232ba5..d59273bc 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -663,7 +663,7 @@ if (this.active && !noTransform) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, diff --git a/src/object_interactivity.mixin.js b/src/object_interactivity.mixin.js index f76467b7..4c3e7d8b 100644 --- a/src/object_interactivity.mixin.js +++ b/src/object_interactivity.mixin.js @@ -383,12 +383,12 @@ * Draws corners of an object's bounding box. * Requires public properties: width, height, scaleX, scaleY * Requires public options: cornerSize, padding - * @method drawCorners + * @method drawControls * @param {CanvasRenderingContext2D} ctx Context to draw on * @return {fabric.Object} thisArg * @chainable */ - drawCorners: function(ctx) { + drawControls: function(ctx) { if (!this.hasControls) return; var size = this.cornerSize, diff --git a/src/path.class.js b/src/path.class.js index 3605cd09..2fa80f88 100644 --- a/src/path.class.js +++ b/src/path.class.js @@ -571,7 +571,7 @@ } if (!noTransform && this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, diff --git a/src/path_group.class.js b/src/path_group.class.js index f912f92f..b2cbaecf 100644 --- a/src/path_group.class.js +++ b/src/path_group.class.js @@ -82,7 +82,7 @@ if (this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 8a67dfa5..076f39af 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -117,7 +117,7 @@ clipTo: null, /** - * Indicates whether object controls (borders/corners) are rendered above overlay image + * Indicates whether object controls (borders/controls) are rendered above overlay image * @property * @type Boolean */ @@ -429,11 +429,11 @@ if (!object) return; if (this.controlsAboveOverlay) { - var hasBorders = object.hasBorders, hasCorners = object.hasCorners; - object.hasBorders = object.hasCorners = false; + var hasBorders = object.hasBorders, hasControls = object.hasControls; + object.hasBorders = object.hasControls = false; object.render(ctx); object.hasBorders = hasBorders; - object.hasCorners = hasCorners; + object.hasControls = hasControls; } else { object.render(ctx); @@ -661,7 +661,7 @@ } // delegate rendering to group selection if one exists - // used for drawing selection borders/corners + // used for drawing selection borders/controls var activeGroup = this.getActiveGroup(); if (activeGroup) { activeGroup.render(ctx); @@ -677,7 +677,7 @@ }, /** - * Draws objects' controls (borders/corners) + * Draws objects' controls (borders/controls) * @method drawControls * @param {Object} ctx context to render controls on */ @@ -686,7 +686,7 @@ if (activeGroup) { ctx.save(); fabric.Group.prototype.transform.call(activeGroup, ctx); - activeGroup.drawBorders(ctx).drawCorners(ctx); + activeGroup.drawBorders(ctx).drawControls(ctx); ctx.restore(); } else { @@ -695,7 +695,7 @@ ctx.save(); fabric.Object.prototype.transform.call(this._objects[i], ctx); - this._objects[i].drawBorders(ctx).drawCorners(ctx); + this._objects[i].drawBorders(ctx).drawControls(ctx); ctx.restore(); this.lastRenderedObjectWithControlsAboveOverlay = this._objects[i]; @@ -747,7 +747,7 @@ if (activeGroup) { // not removing group due to complications with restoring it with correct state afterwords - this._tempRemoveBordersCornersFromGroup(activeGroup); + this._tempRemoveBordersControlsFromGroup(activeGroup); } else if (activeObject && this.deactivateAll) { this.deactivateAll(); @@ -766,7 +766,7 @@ this.setWidth(origWidth).setHeight(origHeight); if (activeGroup) { - this._restoreBordersCornersOnGroup(activeGroup); + this._restoreBordersControlsOnGroup(activeGroup); } else if (activeObject && this.setActiveObject) { this.setActiveObject(activeObject); @@ -780,13 +780,13 @@ /** * @private - * @method _tempRemoveBordersCornersFromGroup + * @method _tempRemoveBordersControlsFromGroup */ - _tempRemoveBordersCornersFromGroup: function(group) { - group.origHideCorners = group.hideCorners; + _tempRemoveBordersControlsFromGroup: function(group) { + group.origHasControls = group.hasControls; group.origBorderColor = group.borderColor; - group.hideCorners = true; + group.hasControls = true; group.borderColor = 'rgba(0,0,0,0)'; group.forEachObject(function(o) { @@ -797,10 +797,10 @@ /** * @private - * @method _restoreBordersCornersOnGroup + * @method _restoreBordersControlsOnGroup */ - _restoreBordersCornersOnGroup: function(group) { - group.hideCorners = group.origHideCorners; + _restoreBordersControlsOnGroup: function(group) { + group.hideControls = group.origHideControls; group.borderColor = group.origBorderColor; group.forEachObject(function(o) { diff --git a/src/text.class.js b/src/text.class.js index 3ff57d1e..bf146c6c 100644 --- a/src/text.class.js +++ b/src/text.class.js @@ -643,7 +643,7 @@ this._render(ctx); if (!noTransform && this.active) { this.drawBorders(ctx); - this.hideCorners || this.drawCorners(ctx); + this.drawControls(ctx); } ctx.restore(); }, diff --git a/test/unit/object.js b/test/unit/object.js index aa30ef65..64561bb6 100644 --- a/test/unit/object.js +++ b/test/unit/object.js @@ -392,7 +392,7 @@ equal(cObj.drawBorders(dummyContext), cObj, 'chainable'); }); - test('drawCorners', function() { + test('drawControls', function() { var cObj = new fabric.Object(), canvas = fabric.document.createElement('canvas'); //let excanvas kick in for IE8 and lower @@ -400,8 +400,8 @@ G_vmlCanvasManager.initElement(canvas) } var dummyContext = canvas.getContext('2d'); - ok(typeof cObj.drawCorners == 'function'); - equal(cObj.drawCorners(dummyContext), cObj, 'chainable'); + ok(typeof cObj.drawControls == 'function'); + equal(cObj.drawControls(dummyContext), cObj, 'chainable'); }); test('clone', function() { From be4db2f4099ac42fe661220d8b52cb8f3eb5fa56 Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 20 Feb 2013 23:42:29 +0100 Subject: [PATCH 19/60] Fix doc. Thanks @rodrigopandini --- dist/all.js | 4 ++-- dist/all.min.js.gz | Bin 44437 -> 44437 bytes src/object.class.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/all.js b/dist/all.js index 7a67c288..45c1fd81 100644 --- a/dist/all.js +++ b/dist/all.js @@ -9632,8 +9632,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * Sets property to a given value * @method set * @param {String} name - * @param {Object|Function} value - * @return {fabric.Group} thisArg + * @param {Object|Function} value (if function, the value is passed into it and its return value is used as a new one) + * @return {fabric.Object} thisArg * @chainable */ set: function(key, value) { diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index e8c2937b21369c3be65c8941d822573e8a9c9b05..3fc3657756b813effad8fd01cfe0c1c2517ee4ab 100644 GIT binary patch delta 18 ZcmbPwn`!E8CU*I54i4);)s5_ZYXLrk21)<` delta 18 acmbPwn`!E8CU*I54vrW5R5r5rtpxx@#|L8o diff --git a/src/object.class.js b/src/object.class.js index d59273bc..3d0394d6 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -534,8 +534,8 @@ * Sets property to a given value * @method set * @param {String} name - * @param {Object|Function} value - * @return {fabric.Group} thisArg + * @param {Object|Function} value (if function, the value is passed into it and its return value is used as a new one) + * @return {fabric.Object} thisArg * @chainable */ set: function(key, value) { From 7d9c91de70dd2992c4177f2e70efaa1a9e05d0aa Mon Sep 17 00:00:00 2001 From: kangax Date: Fri, 22 Feb 2013 17:24:22 +0100 Subject: [PATCH 20/60] res -> response and remove unnecessary semicolon --- dist/all.js | 65 ++++++++++++++++++++++++++++----------------- dist/all.min.js | 8 +++--- dist/all.min.js.gz | Bin 44437 -> 44441 bytes src/node.js | 7 ++--- 4 files changed, 48 insertions(+), 32 deletions(-) diff --git a/dist/all.js b/dist/all.js index 45c1fd81..7ab785c1 100644 --- a/dist/all.js +++ b/dist/all.js @@ -6567,8 +6567,8 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { if (!options.suppressPreamble) { markup.push( '', - '' + '' ); } markup.push( @@ -13099,7 +13099,6 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati return [ '', '', @@ -13402,8 +13401,6 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati var objects = this.getObjects(); var markup = [ '' @@ -16329,20 +16326,12 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { /** @private */ function request(url, encoding, callback) { var oURL = URL.parse(url), - client = HTTP.createClient(oURL.port, oURL.hostname), - req = client.request('GET', oURL.pathname, { 'host': oURL.hostname }); - - client.addListener('error', function(err) { - if (err.errno === process.ECONNREFUSED) { - fabric.log('ECONNREFUSED: connection refused to ' + client.host + ':' + client.port); - } - else { - fabric.log(err.message); - } - }); - - req.end(); - req.on('response', function (response) { + req = HTTP.request({ + hostname: oURL.hostname, + port: oURL.port, + path: oURL.pathname, + method: 'GET' + }, function(response){ var body = ""; if (encoding) { response.setEncoding(encoding); @@ -16356,21 +16345,47 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { } }); }); + + req.on('error', function(err) { + if (err.errno === process.ECONNREFUSED) { + fabric.log('ECONNREFUSED: connection refused to ' + oURL.hostname + ':' + oURL.port); + } + else { + fabric.log(err.message); + } + }); + } + + /** @private */ + function request_fs(url, callback){ + var fs = require('fs'), + stream = fs.createReadStream(url), + body = ''; + stream.on('data', function(chunk){ + body += chunk; + }); + stream.on('end', function(){ + callback(body); + }); } fabric.util.loadImage = function(url, callback, context) { + var createImageAndCallBack = function(data){ + img.src = new Buffer(data, 'binary'); + // preserving original url, which seems to be lost in node-canvas + img._src = url; + callback && callback.call(context, img); + }; var img = new Image(); if (url && url.indexOf('data') === 0) { img.src = img._src = url; callback && callback.call(context, img); } + else if (url && url.indexOf('http') !== 0) { + request_fs(url, createImageAndCallBack); + } else if (url) { - request(url, 'binary', function(body) { - img.src = new Buffer(body, 'binary'); - // preserving original url, which seems to be lost in node-canvas - img._src = url; - callback && callback.call(context, img); - }); + request(url, 'binary', createImageAndCallBack); } }; diff --git a/dist/all.min.js b/dist/all.min.js index 53b22e04..de127f59 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ /* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.12"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " -).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL( -function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor -:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=!0,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.createClient(r.port,r.hostname),s=i.request("GET",r.pathname,{host:r.hostname});i.addListener("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+i.host+":"+i.port):fabric.log(e.message)}),s.end(),s.on("response",function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=new Image;e&&e.indexOf("data")===0?(r.src=r._src=e,t&&t.call(n,r)):e&&request(e,"binary",function(i){r.src=new Buffer(i,"binary"),r._src=e,t&&t.call(n,r)})},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src= +e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")=== +e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=!0,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 3fc3657756b813effad8fd01cfe0c1c2517ee4ab..b51d49eada89e0987b098e52f918b9d879a235c5 100644 GIT binary patch delta 31013 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 delta 31049 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

H7c6hmJoA9_EGUt&8_QV)OGO@s~p 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 U*BRgq(W3GH2Wp=tAuMtN08Q+il>h($ diff --git a/src/node.js b/src/node.js index 9a0d6143..24633cd8 100644 --- a/src/node.js +++ b/src/node.js @@ -19,7 +19,7 @@ port: oURL.port, path: oURL.pathname, method: 'GET' - }, function(res){ + }, function(response){ var body = ""; if (encoding) { response.setEncoding(encoding); @@ -42,8 +42,9 @@ fabric.log(err.message); } }); - } + + /** @private */ function request_fs(url, callback){ var fs = require('fs'), stream = fs.createReadStream(url), @@ -54,7 +55,7 @@ stream.on('end', function(){ callback(body); }); - }; + } fabric.util.loadImage = function(url, callback, context) { var createImageAndCallBack = function(data){ From 4c4f845bfe87c05857246cd95ef5176142782339 Mon Sep 17 00:00:00 2001 From: Kienz Date: Sat, 23 Feb 2013 17:02:52 +0100 Subject: [PATCH 21/60] [BACK_INCOMPAT] Implement fabric.Gradient#toSVG() and radialGradient - Implement radial gradient and expand linear gradient (stop-opacity should now take into account) - Gradients should now be included in the SVG output for the following fabric objects: circle, ellipse, line, path, polygon, polyline, rect and triangle (text is not yet implemented) - Gradients (linear / radial) can be applied to stroke or fill property => change setGradientFill(options) to setGradient(type, options) - Change toObject() that linear and radial gradients can be serialized - Expand fabric.Color by 16 basic colors fabric.Color.colorNameMap => gradients with e.g. stop-color="blue" and stop-opacity="0.5 can be converted to RGBA color - RGBA colors in svg has no affect (convert to RGB color), only stop-opacity has affect to color opacity - Attached some test svg files http://kienzle.geschaeft.s3.amazonaws.com/projects/fabricjs/gradients/gradients.rar --- src/circle.class.js | 25 +++- src/color.class.js | 33 +++++- src/ellipse.class.js | 25 ++-- src/gradient.class.js | 262 +++++++++++++++++++++++++++++++++++------- src/line.class.js | 24 ++-- src/object.class.js | 20 +++- src/path.class.js | 25 +++- src/polygon.class.js | 25 ++-- src/polyline.class.js | 25 ++-- src/rect.class.js | 27 +++-- src/triangle.class.js | 25 ++-- 11 files changed, 410 insertions(+), 106 deletions(-) diff --git a/src/circle.class.js b/src/circle.class.js index 6de5fcc2..23cd8c8c 100644 --- a/src/circle.class.js +++ b/src/circle.class.js @@ -59,12 +59,25 @@ * @return {String} svg representation of an instance */ toSVG: function() { - return (''); + var markup = []; + + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( + '' + ); + + return markup.join(''); }, /** diff --git a/src/color.class.js b/src/color.class.js index a1ed5b4a..4ec4bb7f 100644 --- a/src/color.class.js +++ b/src/color.class.js @@ -37,7 +37,14 @@ * @method _tryParsingColor */ _tryParsingColor: function(color) { - var source = Color.sourceFromHex(color); + var source; + + if (color in Color.colorNameMap) { + color = Color.colorNameMap[color]; + } + + source = Color.sourceFromHex(color); + if (!source) { source = Color.sourceFromRgb(color); } @@ -197,6 +204,30 @@ */ fabric.Color.reHex = /^#?([0-9a-f]{6}|[0-9a-f]{3})$/i; + /** + * Map of the 16 basic color names with HEX code + * @static + * @field + */ + fabric.Color.colorNameMap = { + 'aqua': '#00FFFF', + 'black': '#000000', + 'blue': '#0000FF', + 'fuchsia': '#FF00FF', + 'gray': '#808080', + 'green': '#008000', + 'lime': '#00FF00', + 'maroon': '#800000', + 'navy': '#000080', + 'olive': '#808000', + 'purple': '#800080', + 'red': '#FF0000', + 'silver': '#C0C0C0', + 'teal': '#008080', + 'white': '#FFFFFF', + 'yellow': '#FFFF00', + }; + /** * Returns new color object, when given a color in RGB format * @method fromRgb diff --git a/src/ellipse.class.js b/src/ellipse.class.js index 8d1eda6f..ad1e3229 100644 --- a/src/ellipse.class.js +++ b/src/ellipse.class.js @@ -62,14 +62,25 @@ * @return {String} svg representation of an instance */ toSVG: function() { - return [ + var markup = []; + + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( '' - ].join(''); + 'rx="', this.get('rx'), + '" ry="', this.get('ry'), + '" style="', this.getSvgStyles(), + '" transform="', this.getSvgTransform(), + '"/>' + ); + + return markup.join(''); }, /** diff --git a/src/gradient.class.js b/src/gradient.class.js index 9a4bf77f..489c3743 100644 --- a/src/gradient.class.js +++ b/src/gradient.class.js @@ -1,7 +1,12 @@ (function() { - function getColorStopFromStyle(el) { - var style = el.getAttribute('style'); + function getColorStop(el) { + var style = el.getAttribute('style'), + offset = el.getAttribute('offset'), + color, opacity; + + // convert percents to absolute values + offset = parseFloat(offset) / (/%$/.test(offset) ? 100 : 1); if (style) { var keyValuePairs = style.split(/\s*;\s*/); @@ -17,10 +22,29 @@ value = split[1].trim(); if (key === 'stop-color') { - return value; + color = value; + } + else if (key === 'stop-opacity') { + opacity = value; } } } + + if (!color) { + color = el.getAttribute('stop-color'); + } + if (!opacity) { + opacity = el.getAttribute('stop-opacity'); + } + + // convert rgba color to rgb color - alpha value has no affect in svg + color = new fabric.Color(color).toRgb(); + + return { + offset: offset, + color: color, + opacity: opacity + } } /** @@ -33,19 +57,43 @@ /** * Constructor * @method initialize - * @param [options] Options object with x1, y1, x2, y2 and colorStops + * @param [options] Options object with type, coords, gradientUnits and colorStops * @return {fabric.Gradient} thisArg */ initialize: function(options) { - options || (options = { }); - this.x1 = options.x1 || 0; - this.y1 = options.y1 || 0; - this.x2 = options.x2 || 0; - this.y2 = options.y2 || 0; + var coords = { }; - this.colorStops = options.colorStops; + this.id = fabric.Object.__uid++; + this.type = options.type || 'linear'; + + coords = { + x1: options.coords.x1 || 0, + y1: options.coords.y1 || 0, + x2: options.coords.x2 || 0, + y2: options.coords.y2 || 0 + } + + if (this.type === 'radial') { + coords.r1 = options.coords.r1 || 0; + coords.r2 = options.coords.r2 || 0; + } + + this.coords = coords; + this.gradientUnits = options.gradientUnits || 'objectBoundingBox'; + this.colorStops = options.colorStops.slice(); + }, + + /** + * Adds another colorStop + * @method add + * @param {Object} colorStop Object with offset, color and opacity + * @return {fabric.Gradient} thisArg + */ + addColorStop: function(colorStop) { + this.colorStops.push(colorStop); + return this; }, /** @@ -55,10 +103,9 @@ */ toObject: function() { return { - x1: this.x1, - x2: this.x2, - y1: this.y1, - y2: this.y2, + type: this.type, + coords: this.coords, + gradientUnits: this.gradientUnits, colorStops: this.colorStops }; }, @@ -70,15 +117,97 @@ * @return {CanvasGradient} */ toLive: function(ctx) { - var gradient = ctx.createLinearGradient( - this.x1, this.y1, this.x2 || ctx.canvas.width, this.y2); + var gradient; - for (var position in this.colorStops) { - var colorValue = this.colorStops[position]; - gradient.addColorStop(parseFloat(position), colorValue); + if (!this.type) return; + + if (this.type === 'linear') { + gradient = ctx.createLinearGradient( + this.coords.x1, this.coords.y1, this.coords.x2 || ctx.canvas.width, this.coords.y2); + } + else if (this.type === 'radial') { + gradient = ctx.createRadialGradient( + this.coords.x1, this.coords.y1, this.coords.r1, this.coords.x2, this.coords.y2, this.coords.r2); + } + + for (var i = 0; i < this.colorStops.length; i++) { + var color = this.colorStops[i].color, + opacity = this.colorStops[i].opacity, + offset = this.colorStops[i].offset; + + if (opacity) { + color = new fabric.Color(color).setAlpha(opacity).toRgba(); + } + gradient.addColorStop(parseFloat(offset), color); } return gradient; + }, + + /** + * Returns SVG representation of an gradient + * @method toSVG + * @param {Object} object Object to create a gradient for + * @param {Boolean} normalize Whether coords should be normalized + * @return {String} SVG representation of an gradient (linear/radial) + */ + toSVG: function(object, normalize) { + var coords = fabric.util.object.clone(this.coords); + + // colorStops must be sorted ascending + this.colorStops.sort(function(a, b) { + return a.offset - b.offset; + }); + + if (normalize && this.gradientUnits === 'userSpaceOnUse') { + coords.x1 += object.width / 2; + coords.y1 += object.height / 2; + coords.x2 += object.width / 2; + coords.y2 += object.height / 2; + } + else if (this.gradientUnits === 'objectBoundingBox') { + _convertValuesToPercentUnits(object, coords); + } + + if (this.type === 'linear') { + var markup = [ + '' + ]; + } + else if (this.type === 'radial') { + var markup = [ + '' + ]; + } + + for (var i = 0; i < this.colorStops.length; i++) { + markup.push( + '' + ); + } + + markup.push((this.type === 'linear' ? '' : '')); + + return markup.join(''); } }); @@ -90,52 +219,78 @@ * @static * @memberof fabric.Gradient * @see http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement + * @see http://www.w3.org/TR/SVG/pservers.html#RadialGradientElement */ fromElement: function(el, instance) { /** * @example: * - * + * * * * * * OR * - * - * - * + * + * + * * * + * OR + * + * + * + * + * + * + * + * OR + * + * + * + * + * + * + * */ var colorStopEls = el.getElementsByTagName('stop'), - offset, - colorStops = { }, - coords = { - x1: el.getAttribute('x1') || 0, - y1: el.getAttribute('y1') || 0, - x2: el.getAttribute('x2') || '100%', - y2: el.getAttribute('y2') || 0 - }; + type = (el.nodeName === 'linearGradient' ? 'linear' : 'radial'), + gradientUnits = el.getAttribute('gradientUnits') || 'objectBoundingBox', + colorStops = [], + coords = { }; + + if (type === 'linear') { + coords = { + x1: el.getAttribute('x1') || 0, + y1: el.getAttribute('y1') || 0, + x2: el.getAttribute('x2') || '100%', + y2: el.getAttribute('y2') || 0 + }; + } + else if (type === 'radial') { + coords = { + x1: el.getAttribute('fx') || el.getAttribute('cx') || '50%', + y1: el.getAttribute('fy') || el.getAttribute('cy') || '50%', + r1: 0, + x2: el.getAttribute('cx') || '50%', + y2: el.getAttribute('cy') || '50%', + r2: el.getAttribute('r') || '50%', + }; + } for (var i = colorStopEls.length; i--; ) { - el = colorStopEls[i]; - offset = el.getAttribute('offset'); - - // convert percents to absolute values - offset = parseFloat(offset) / (/%$/.test(offset) ? 100 : 1); - colorStops[offset] = getColorStopFromStyle(el) || el.getAttribute('stop-color'); + colorStops.push(getColorStop(colorStopEls[i])); } _convertPercentUnitsToValues(instance, coords); return new fabric.Gradient({ - x1: coords.x1, - y1: coords.y1, - x2: coords.x2, - y2: coords.y2, + type: type, + coords: coords, + gradientUnits: gradientUnits, colorStops: colorStops }); }, @@ -144,8 +299,8 @@ * Returns {@link fabric.Gradient} instance from its object representation * @method forObject * @static - * @param obj - * @param [options] + * @param {Object} obj + * @param {Object} [options] * @memberof fabric.Gradient */ forObject: function(obj, options) { @@ -159,7 +314,7 @@ for (var prop in options) { if (typeof options[prop] === 'string' && /^\d+%$/.test(options[prop])) { var percents = parseFloat(options[prop], 10); - if (prop === 'x1' || prop === 'x2') { + if (prop === 'x1' || prop === 'x2' || prop === 'r2') { options[prop] = fabric.util.toFixed(object.width * percents / 100, 2); } else if (prop === 'y1' || prop === 'y2') { @@ -176,6 +331,25 @@ } } + function _convertValuesToPercentUnits(object, options) { + for (var prop in options) { + // normalize rendering point (should be from center rather than top/left corner of the shape) + if (prop === 'x1' || prop === 'x2') { + options[prop] += fabric.util.toFixed(object.width / 2, 2); + } + else if (prop === 'y1' || prop === 'y2') { + options[prop] += fabric.util.toFixed(object.height / 2, 2); + } + // convert to percent units + if (prop === 'x1' || prop === 'x2' || prop === 'r2') { + options[prop] = fabric.util.toFixed(options[prop] / object.width * 100, 2) + '%'; + } + else if (prop === 'y1' || prop === 'y2') { + options[prop] = fabric.util.toFixed(options[prop] / object.height * 100, 2) + '%'; + } + } + } + /** * Parses an SVG document, returning all of the gradient declarations found in it * @static diff --git a/src/line.class.js b/src/line.class.js index c0062716..cd2aea3d 100644 --- a/src/line.class.js +++ b/src/line.class.js @@ -135,15 +135,23 @@ * @return {String} svg representation of an instance */ toSVG: function() { - return [ + var markup = []; + + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, true)); + } + + markup.push( '' - ].join(''); + 'x1="', this.get('x1'), + '" y1="', this.get('y1'), + '" x2="', this.get('x2'), + '" y2="', this.get('y2'), + '" style="', this.getSvgStyles(), + '"/>' + ); + + return markup.join(''); } }); diff --git a/src/object.class.js b/src/object.class.js index 3d0394d6..8b17c953 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -434,10 +434,10 @@ */ getSvgStyles: function() { return [ - "stroke: ", (this.stroke ? this.stroke : 'none'), "; ", + "stroke: ", (this.stroke ? (this.stroke && this.stroke.toLive ? 'url(#SVGID_' + this.stroke.id + ')' : this.stroke) : 'none'), "; ", "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), - "fill: ", (this.fill ? this.fill : 'none'), "; ", + "fill: ", (this.fill ? (this.fill && this.fill.toLive ? 'url(#SVGID_' + this.fill.id + ')' : this.fill) : 'none'), "; ", "opacity: ", (this.opacity ? this.opacity : '1'), ";" ].join(""); }, @@ -855,11 +855,13 @@ }, /** - * Sets gradient fill of an object - * @method setGradientFill + * Sets gradient (fill or stroke) of an object + * @method setGradient + * @param {String} property Property name 'stroke' or 'fill' + * @param {Object} [options] Options object */ - setGradientFill: function(options) { - this.set('fill', fabric.Gradient.forObject(this, options)); + setGradient: function(property, options) { + this.set(property, fabric.Gradient.forObject(this, options)); }, /** @@ -1065,4 +1067,10 @@ */ fabric.Object.NUM_FRACTION_DIGITS = 2; + /** + * @static + * @type Number + */ + fabric.Object.__uid = 0; + })(typeof exports !== 'undefined' ? exports : this); diff --git a/src/path.class.js b/src/path.class.js index 149f395d..67857b47 100644 --- a/src/path.class.js +++ b/src/path.class.js @@ -626,20 +626,33 @@ * @return {String} svg representation of an instance */ toSVG: function() { - var chunks = []; + var chunks = [], + markup = []; + for (var i = 0, len = this.path.length; i < len; i++) { chunks.push(this.path[i].join(' ')); } var path = chunks.join(' '); - return [ + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, true)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, true)); + } + + markup.push( '', '', + 'd="', path, + '" style="', this.getSvgStyles(), + '" transform="translate(', (-this.width / 2), ' ', (-this.height/2), ')', + '" stroke-linecap="round" ', + '/>', '' - ].join(''); + ); + + return markup.join(''); }, /** diff --git a/src/polygon.class.js b/src/polygon.class.js index a55ee784..1f136f13 100644 --- a/src/polygon.class.js +++ b/src/polygon.class.js @@ -90,18 +90,29 @@ * @return {String} svg representation of an instance */ toSVG: function() { - var points = []; + var points = [], + markup = []; + for (var i = 0, len = this.points.length; i < len; i++) { points.push(toFixed(this.points[i].x, 2), ',', toFixed(this.points[i].y, 2), ' '); } - return [ + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( '' - ].join(''); + 'points="', points.join(''), + '" style="', this.getSvgStyles(), + '" transform="', this.getSvgTransform(), + '"/>' + ); + + return markup.join(''); }, /** diff --git a/src/polyline.class.js b/src/polyline.class.js index 9f04c541..dadfc27d 100644 --- a/src/polyline.class.js +++ b/src/polyline.class.js @@ -63,18 +63,29 @@ * @return {String} svg representation of an instance */ toSVG: function() { - var points = []; + var points = [], + markup = []; + for (var i = 0, len = this.points.length; i < len; i++) { points.push(toFixed(this.points[i].x, 2), ',', toFixed(this.points[i].y, 2), ' '); } - return [ + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( '' - ].join(''); + 'points="', points.join(''), + '" style="', this.getSvgStyles(), + '" transform="', this.getSvgTransform(), + '"/>' + ); + + return markup.join(''); }, /** diff --git a/src/rect.class.js b/src/rect.class.js index 0a7d6bde..4219dd12 100644 --- a/src/rect.class.js +++ b/src/rect.class.js @@ -237,13 +237,26 @@ * @return {String} svg representation of an instance */ toSVG: function() { - return ''; + var markup = []; + + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( + '' + ); + + return markup.join(''); } }); diff --git a/src/triangle.class.js b/src/triangle.class.js index d9545346..6757adf4 100644 --- a/src/triangle.class.js +++ b/src/triangle.class.js @@ -76,8 +76,8 @@ * @return {String} svg representation of an instance */ toSVG: function() { - - var widthBy2 = this.width / 2, + var markup = [], + widthBy2 = this.width / 2, heightBy2 = this.height / 2; var points = [ @@ -86,11 +86,22 @@ widthBy2 + " " + heightBy2 ].join(","); - return ''; + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, true)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, true)); + } + + markup.push( + '' + ); + + return markup.join(''); } }); From 17a88e93e10397081662a7703e4fc05bdc9f7993 Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 24 Feb 2013 12:40:16 +0100 Subject: [PATCH 22/60] Doc fixes --- dist/all.js | 1 + dist/all.min.js.gz | Bin 44441 -> 44441 bytes src/object.class.js | 5 ++++- src/static_canvas.class.js | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dist/all.js b/dist/all.js index 7ab785c1..18787590 100644 --- a/dist/all.js +++ b/dist/all.js @@ -6918,6 +6918,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { * Returs JSON representation of canvas * @function * @method toJSON + * @param {Array} propertiesToInclude * @return {String} json string */ fabric.StaticCanvas.prototype.toJSON = fabric.StaticCanvas.prototype.toObject; diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index b51d49eada89e0987b098e52f918b9d879a235c5..f4d7e4a84632cc5e7fbabf52aa04ff2cafaaa13b 100644 GIT binary patch delta 18 acmbPvn`!24CU*I54vwv}G&ZtNS_=R~DhC_@ delta 18 acmbPvn`!24CU*I54vtx~)i<(FS_=R}ZU+GX diff --git a/src/object.class.js b/src/object.class.js index 3d0394d6..f5c07bdd 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -846,7 +846,7 @@ /** * Returns a JSON representation of an instance * @method toJSON - * @param {Array} propertiesToInclude + * @param {Array} propertiesToInclude Any properties that you might want to additionally include in the output * @return {String} json */ toJSON: function(propertiesToInclude) { @@ -857,6 +857,7 @@ /** * Sets gradient fill of an object * @method setGradientFill + * @param {Object} options */ setGradientFill: function(options) { this.set('fill', fabric.Gradient.forObject(this, options)); @@ -865,6 +866,7 @@ /** * Sets pattern fill of an object * @method setPatternFill + * @param {Object} options */ setPatternFill: function(options) { this.set('fill', new fabric.Pattern(options)); @@ -873,6 +875,7 @@ /** * Sets shadow of an object * @method setShadow + * @param {Object} options */ setShadow: function(options) { this.set('shadow', new fabric.Shadow(options)); diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 77cdc291..3c42e435 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -1291,6 +1291,7 @@ * Returs JSON representation of canvas * @function * @method toJSON + * @param {Array} propertiesToInclude * @return {String} json string */ fabric.StaticCanvas.prototype.toJSON = fabric.StaticCanvas.prototype.toObject; From ae67d83216d2c919eb025b84ec9dc469df3ecb2b Mon Sep 17 00:00:00 2001 From: Kienz Date: Mon, 25 Feb 2013 18:26:20 +0100 Subject: [PATCH 23/60] Update setGradient and addColorStop interface - setGradient('fill', {x1: 50, y2: 10, colorStops: {'0.7', 'rgba(0,153,153,0.5)'}}); - addColorStop({'0.4', 'blue'}); --- src/gradient.class.js | 7 +++++-- src/object.class.js | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/gradient.class.js b/src/gradient.class.js index 489c3743..8943d1af 100644 --- a/src/gradient.class.js +++ b/src/gradient.class.js @@ -88,11 +88,14 @@ /** * Adds another colorStop * @method add - * @param {Object} colorStop Object with offset, color and opacity + * @param {Object} colorStop Object with offset and color * @return {fabric.Gradient} thisArg */ addColorStop: function(colorStop) { - this.colorStops.push(colorStop); + for (var position in colorStop) { + var color = new fabric.Color(colorStop[position]); + this.colorStops.push({offset: position, color: color.toRgb(), opacity: color.getAlpha()}); + } return this; }, diff --git a/src/object.class.js b/src/object.class.js index 8b17c953..cb549f16 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -861,7 +861,29 @@ * @param {Object} [options] Options object */ setGradient: function(property, options) { - this.set(property, fabric.Gradient.forObject(this, options)); + options || (options = { }); + + var gradient = {colorStops: []}; + + gradient.type = options.type || (options.r1 || options.r2 ? 'radial' : 'linear'); + gradient.coords = { + x1: options.x1, + y1: options.y1, + x2: options.x2, + y2: options.y2 + }; + + if (options.r1 || options.r2) { + gradient.coords.r1 = options.r1; + gradient.coords.r2 = options.r2; + } + + for (var position in options.colorStops) { + var color = new fabric.Color(options.colorStops[position]); + gradient.colorStops.push({offset: position, color: color.toRgb(), opacity: color.getAlpha()}); + } + + this.set(property, fabric.Gradient.forObject(this, gradient)); }, /** From 293227811fc66722dc96ff5807e53c6323e202eb Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 27 Feb 2013 00:48:27 +0100 Subject: [PATCH 24/60] Doc additions --- src/image_filters.js | 2 +- src/util/lang_array.js | 4 +++- src/util/lang_object.js | 6 +++--- src/util/lang_string.js | 2 +- src/util/misc.js | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/image_filters.js b/src/image_filters.js index 64bd7017..e0b43fd7 100644 --- a/src/image_filters.js +++ b/src/image_filters.js @@ -1,5 +1,5 @@ /** - * @namespace + * @namespace Image filters */ fabric.Image.filters = { }; diff --git a/src/util/lang_array.js b/src/util/lang_array.js index d9de2192..1e2f1bf2 100644 --- a/src/util/lang_array.js +++ b/src/util/lang_array.js @@ -240,7 +240,9 @@ return result; } - /** @namespace */ + /** + * @namespace Array utilities + */ fabric.util.array = { invoke: invoke, min: min, diff --git a/src/util/lang_object.js b/src/util/lang_object.js index 1adc86b2..9db87660 100644 --- a/src/util/lang_object.js +++ b/src/util/lang_object.js @@ -1,5 +1,5 @@ (function(){ - + /** * Copies all enumerable properties of one object to another * @memberOf fabric.util.object @@ -25,10 +25,10 @@ return extend({ }, object); } - /** @namespace fabric.util.object */ + /** @namespace Object utilities */ fabric.util.object = { extend: extend, clone: clone }; - + })(); \ No newline at end of file diff --git a/src/util/lang_string.js b/src/util/lang_string.js index 1830e523..9fc1e4ba 100644 --- a/src/util/lang_string.js +++ b/src/util/lang_string.js @@ -51,7 +51,7 @@ function escapeXml(string) { .replace(/>/g, '>'); } -/** @namespace */ +/** @namespace String utilities */ fabric.util.string = { camelize: camelize, capitalize: capitalize, diff --git a/src/util/misc.js b/src/util/misc.js index 97fd5569..c843689f 100644 --- a/src/util/misc.js +++ b/src/util/misc.js @@ -4,7 +4,7 @@ atan2 = Math.atan2; /** - * @namespace + * @namespace Various utilities */ fabric.util = { }; From 638876f3f8e10963223563480004b585da9a58b8 Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 2 Mar 2013 01:25:08 +0100 Subject: [PATCH 25/60] Add support for passing additional state properties into saveState --- src/object.class.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/object.class.js b/src/object.class.js index f5c07bdd..bcf769b2 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -792,13 +792,21 @@ /** * Saves state of an object * @method saveState + * @param {Object} [options] Object with additional `stateProperties` array to include when saving state * @return {fabric.Object} thisArg * @chainable */ - saveState: function() { + saveState: function(options) { this.stateProperties.forEach(function(prop) { this.originalState[prop] = this.get(prop); }, this); + + if (options && options.stateProperties) { + options.stateProperties.forEach(function(prop) { + this.originalState[prop] = this.get(prop); + }, this); + } + return this; }, From af5a0ac74fea0cf4018eaddf180cf0689523f4b8 Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 2 Mar 2013 01:25:34 +0100 Subject: [PATCH 26/60] Make group getter respect delegated properties --- src/group.class.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/group.class.js b/src/group.class.js index ca257f41..305c586e 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -177,6 +177,8 @@ }, /** + * @param delegatedProperties + * @type Object * Properties that are delegated to group objects when reading/writing */ delegatedProperties: { @@ -184,9 +186,11 @@ opacity: true, fontFamily: true, fontWeight: true, + fontSize: true, lineHeight: true, textDecoration: true, textShadow: true, + textAlign: true backgroundColor: true }, @@ -526,6 +530,9 @@ } } else { + if (prop in this.delegatedProperties) { + return this.objects[0] && this.objects[0].get(prop); + } return this[prop]; } } From b260845af9928de9ba84c62911605a4ada74d58e Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 2 Mar 2013 01:39:32 +0100 Subject: [PATCH 27/60] Fix hasControls value being lost after object is part of a group. Closes #445. --- src/group.class.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/group.class.js b/src/group.class.js index 305c586e..1ecd8a6e 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -91,6 +91,7 @@ object.setCoords(); // do not display corners of objects enclosed in a group + object.__origHasControls = object.hasControls; object.hasControls = false; }, this); }, @@ -190,7 +191,7 @@ lineHeight: true, textDecoration: true, textShadow: true, - textAlign: true + textAlign: true, backgroundColor: true }, @@ -325,7 +326,8 @@ object.set('scaleY', object.get('scaleY') * this.get('scaleY')); object.setCoords(); - object.hasControls = true; + object.hasControls = object.__origHasControls; + delete object.__origHasControls; object.setActive(false); object.setCoords(); From 5662472f81dccb29f027c672c49542eb0f74b939 Mon Sep 17 00:00:00 2001 From: llocust Date: Tue, 5 Mar 2013 04:14:43 +0400 Subject: [PATCH 28/60] Update dom_event.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On a mobile (touchbased) platform at an event 'touchend' data are stored in the changedTouches array. --- src/util/dom_event.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/util/dom_event.js b/src/util/dom_event.js index cda8ff07..606324a4 100644 --- a/src/util/dom_event.js +++ b/src/util/dom_event.js @@ -223,10 +223,18 @@ if (fabric.isTouchSupported) { pointerX = function(event) { - return (event.touches && event.touches[0] ? (event.touches[0].pageX - (event.touches[0].pageX - event.touches[0].clientX)) || event.clientX : event.clientX); + if (e.type != 'touchend') { + return (event.touches && event.touches[0] ? (event.touches[0].pageX - (event.touches[0].pageX - event.touches[0].clientX)) || event.clientX : event.clientX); + } else { + return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageX - (event.changedTouches[0].pageX - event.changedTouches[0].clientX)) || event.clientX : event.clientX); + }; }; pointerY = function(event) { - return (event.touches && event.touches[0] ? (event.touches[0].pageY - (event.touches[0].pageY - event.touches[0].clientY)) || event.clientY : event.clientY); + if (e.type != 'touchend') { + return (event.touches && event.touches[0] ? (event.touches[0].pageY - (event.touches[0].pageY - event.touches[0].clientY)) || event.clientY : event.clientY); + } else { + return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageY - (event.changedTouches[0].pageY - event.changedTouches[0].clientY)) || event.clientY : event.clientY); + }; }; } @@ -234,4 +242,4 @@ fabric.util.object.extend(fabric.util, fabric.Observable); -})(); \ No newline at end of file +})(); From ff8b09fb35fae6beab6b5f9ed705231a14df0a55 Mon Sep 17 00:00:00 2001 From: llocust Date: Tue, 5 Mar 2013 04:54:41 +0400 Subject: [PATCH 29/60] Update dom_event.js Sorry.. Copy+Past from .min version... e->event --- src/util/dom_event.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/dom_event.js b/src/util/dom_event.js index 606324a4..c1d8d04b 100644 --- a/src/util/dom_event.js +++ b/src/util/dom_event.js @@ -223,14 +223,14 @@ if (fabric.isTouchSupported) { pointerX = function(event) { - if (e.type != 'touchend') { + if (event.type != 'touchend') { return (event.touches && event.touches[0] ? (event.touches[0].pageX - (event.touches[0].pageX - event.touches[0].clientX)) || event.clientX : event.clientX); } else { return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageX - (event.changedTouches[0].pageX - event.changedTouches[0].clientX)) || event.clientX : event.clientX); }; }; pointerY = function(event) { - if (e.type != 'touchend') { + if (event.type != 'touchend') { return (event.touches && event.touches[0] ? (event.touches[0].pageY - (event.touches[0].pageY - event.touches[0].clientY)) || event.clientY : event.clientY); } else { return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageY - (event.changedTouches[0].pageY - event.changedTouches[0].clientY)) || event.clientY : event.clientY); From 39fc445c07de654e1649d43843f325ebb8fccc37 Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 5 Mar 2013 19:30:40 +0100 Subject: [PATCH 30/60] Add fontStyle to delegated properties --- src/group.class.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/group.class.js b/src/group.class.js index 1ecd8a6e..2d95d197 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -188,6 +188,7 @@ fontFamily: true, fontWeight: true, fontSize: true, + fontStyle: true, lineHeight: true, textDecoration: true, textShadow: true, From 9f934d4dad18ba153fea5f0502950c8d38895fa7 Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 5 Mar 2013 19:31:36 +0100 Subject: [PATCH 31/60] Minor style change --- src/object.class.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/object.class.js b/src/object.class.js index bcf769b2..efb052ea 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -724,13 +724,13 @@ }; var orig = { - angle: this.get('angle'), - flipX: this.get('flipX'), - flipY: this.get('flipY') + angle: this.getAngle(), + flipX: this.getFlipX(), + flipY: this.getFlipY() }; // normalize angle - this.set('angle', 0).set('flipX', false).set('flipY', false); + this.set({ angle: 0, flipX: false, flipY: false }); this.toDataURL(function(dataURL) { i.src = dataURL; }); From 43dd170f5b7755299c1464ff09dd96cf24439eda Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 6 Mar 2013 18:45:18 +0100 Subject: [PATCH 32/60] Add `fabric.Object#visible` property. Closes #342. Version 1.0.13. --- HEADER.js | 2 +- package.json | 2 +- src/object.class.js | 17 +++++++++++++---- src/util/dom_event.js | 14 ++++++-------- test/unit/canvas.js | 8 ++++---- test/unit/canvas_static.js | 8 ++++---- test/unit/circle.js | 1 + test/unit/ellipse.js | 3 ++- test/unit/group.js | 1 + test/unit/image.js | 1 + test/unit/line.js | 3 ++- test/unit/object.js | 12 ++++++++---- test/unit/path.js | 3 ++- test/unit/path_group.js | 1 + test/unit/polygon.js | 3 ++- test/unit/polyline.js | 3 ++- test/unit/rect.js | 1 + test/unit/text.js | 1 + 18 files changed, 53 insertions(+), 31 deletions(-) diff --git a/HEADER.js b/HEADER.js index f9ebfee5..a880408e 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.12" }; +var fabric = fabric || { version: "1.0.13" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/package.json b/package.json index cab3711f..97b7635c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "1.0.12", + "version": "1.0.13", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", diff --git a/src/object.class.js b/src/object.class.js index efb052ea..8d6427c1 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -240,6 +240,13 @@ */ selectable: true, + /** + * When set to `false`, an object is not rendered on canvas + * @property + * @type Boolean + */ + visible: true, + /** * When set to `false`, object's controls are not displayed and can not be used to manipulate object * @property @@ -292,7 +299,7 @@ 'top left width height scaleX scaleY flipX flipY ' + 'angle opacity cornerSize fill overlayFill originX originY ' + 'stroke strokeWidth strokeDashArray fillRule ' + - 'borderScaleFactor transformMatrix selectable shadow' + 'borderScaleFactor transformMatrix selectable shadow visible' ).split(' '), /** @@ -405,7 +412,8 @@ hasRotatingPoint: this.hasRotatingPoint, transparentCorners: this.transparentCorners, perPixelTargetFind: this.perPixelTargetFind, - shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow + shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow, + visible: this.visible }; if (!this.includeDefaultValues) { @@ -438,7 +446,8 @@ "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), "fill: ", (this.fill ? this.fill : 'none'), "; ", - "opacity: ", (this.opacity ? this.opacity : '1'), ";" + "opacity: ", (this.opacity ? this.opacity : '1'), "; ", + (this.visible ? '' : "visibility: hidden;") ].join(""); }, @@ -620,7 +629,7 @@ render: function(ctx, noTransform) { // do not render if width or height are zeros - if (this.width === 0 || this.height === 0) return; + if (this.width === 0 || this.height === 0 || !this.visible) return; ctx.save(); diff --git a/src/util/dom_event.js b/src/util/dom_event.js index c1d8d04b..b148ca91 100644 --- a/src/util/dom_event.js +++ b/src/util/dom_event.js @@ -223,18 +223,16 @@ if (fabric.isTouchSupported) { pointerX = function(event) { - if (event.type != 'touchend') { + if (event.type !== 'touchend') { return (event.touches && event.touches[0] ? (event.touches[0].pageX - (event.touches[0].pageX - event.touches[0].clientX)) || event.clientX : event.clientX); - } else { - return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageX - (event.changedTouches[0].pageX - event.changedTouches[0].clientX)) || event.clientX : event.clientX); - }; + } + return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageX - (event.changedTouches[0].pageX - event.changedTouches[0].clientX)) || event.clientX : event.clientX); }; pointerY = function(event) { - if (event.type != 'touchend') { + if (event.type !== 'touchend') { return (event.touches && event.touches[0] ? (event.touches[0].pageY - (event.touches[0].pageY - event.touches[0].clientY)) || event.clientY : event.clientY); - } else { - return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageY - (event.changedTouches[0].pageY - event.changedTouches[0].clientY)) || event.clientY : event.clientY); - }; + } + return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageY - (event.changedTouches[0].pageY - event.changedTouches[0].clientY)) || event.clientY : event.clientY); }; } diff --git a/test/unit/canvas.js b/test/unit/canvas.js index b210e028..c5399b00 100644 --- a/test/unit/canvas.js +++ b/test/unit/canvas.js @@ -23,13 +23,13 @@ var PATH_DATALESS_JSON = '{"objects":[{"type":"path","originX":"center","originY":"center","left":200,"top":200,"width":200,"height":200,"fill":"rgb(0,0,0)",'+ '"overlayFill":null,"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,'+ - '"flipY":false,"opacity":1,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,'+ - '"path":"http://example.com/"}],"background":""}'; + '"flipY":false,"opacity":1,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,'+ + '"perPixelTargetFind":false,"shadow":null,"visible":true,"path":"http://example.com/"}],"background":""}'; var RECT_JSON = '{"objects":[{"type":"rect","originX":"center","originY":"center","left":0,"top":0,"width":10,"height":10,"fill":"rgb(0,0,0)","overlayFill":null,'+ '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ - '"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"rx":0,"ry":0}],'+ - '"background":"#ff5555"}'; + '"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,'+ + '"visible":true,"rx":0,"ry":0}],"background":"#ff5555"}'; var el = fabric.document.createElement('canvas'); el.width = 600; el.height = 600; diff --git a/test/unit/canvas_static.js b/test/unit/canvas_static.js index 1c6611d4..adf34715 100644 --- a/test/unit/canvas_static.js +++ b/test/unit/canvas_static.js @@ -21,17 +21,17 @@ var PATH_DATALESS_JSON = '{"objects":[{"type":"path","originX":"center","originY":"center","left":200,"top":200,"width":200,"height":200,"fill":"rgb(0,0,0)",'+ '"overlayFill":null,"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,'+ - '"flipY":false,"opacity":1,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,'+ - '"path":"http://example.com/"}],"background":""}'; + '"flipY":false,"opacity":1,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,'+ + '"perPixelTargetFind":false,"shadow":null,"visible":true,"path":"http://example.com/"}],"background":""}'; var RECT_JSON = '{"objects":[{"type":"rect","originX":"center","originY":"center","left":0,"top":0,"width":10,"height":10,"fill":"rgb(0,0,0)","overlayFill":null,'+ '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"selectable":true,'+ - '"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"rx":0,"ry":0}],'+ + '"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"visible":true,"rx":0,"ry":0}],'+ '"background":"#ff5555"}'; var RECT_JSON_WITH_PADDING = '{"objects":[{"type":"rect","originX":"center","originY":"center","left":0,"top":0,"width":10,"height":20,"fill":"rgb(0,0,0)","overlayFill":null,'+ '"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"selectable":true,'+ - '"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"padding":123,"foo":"bar","rx":0,"ry":0}],'+ + '"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"visible":true,"padding":123,"foo":"bar","rx":0,"ry":0}],'+ '"background":""}'; // force creation of static canvas diff --git a/test/unit/circle.js b/test/unit/circle.js index b4b5f753..7a479fdf 100644 --- a/test/unit/circle.js +++ b/test/unit/circle.js @@ -85,6 +85,7 @@ 'transparentCorners': true, 'perPixelTargetFind': false, 'shadow': null, + 'visible': true, 'radius': 0 }; ok(typeof circle.toObject == 'function'); diff --git a/test/unit/ellipse.js b/test/unit/ellipse.js index 9b34e948..68f9c8c5 100644 --- a/test/unit/ellipse.js +++ b/test/unit/ellipse.js @@ -48,7 +48,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; ok(typeof ellipse.toObject == 'function'); deepEqual(defaultProperties, ellipse.toObject()); diff --git a/test/unit/group.js b/test/unit/group.js index 3fc7fe84..4edc90b0 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -144,6 +144,7 @@ 'transparentCorners': true, 'perPixelTargetFind': false, 'shadow': null, + 'visible': true, 'angle': 0, 'flipX': false, 'flipY': false, diff --git a/test/unit/image.js b/test/unit/image.js index c5a789f2..28b7c11b 100644 --- a/test/unit/image.js +++ b/test/unit/image.js @@ -41,6 +41,7 @@ 'transparentCorners': true, 'perPixelTargetFind': false, 'shadow': null, + 'visible': true, 'filters': [] }; diff --git a/test/unit/line.js b/test/unit/line.js index 8dea6fd4..263f153c 100644 --- a/test/unit/line.js +++ b/test/unit/line.js @@ -29,7 +29,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; QUnit.module('fabric.Line'); diff --git a/test/unit/object.js b/test/unit/object.js index 64561bb6..beb47903 100644 --- a/test/unit/object.js +++ b/test/unit/object.js @@ -111,11 +111,13 @@ test('toJSON', function() { var emptyObjectJSON = '{"type":"object","originX":"center","originY":"center","left":0,"top":0,"width":0,"height":0,"fill":"rgb(0,0,0)",'+ '"overlayFill":null,"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1,"scaleY":1,"angle":0,'+ - '"flipX":false,"flipY":false,"opacity":1,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null}'; + '"flipX":false,"flipY":false,"opacity":1,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,'+ + '"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"visible":true}'; var augmentedJSON = '{"type":"object","originX":"center","originY":"center","left":0,"top":0,"width":122,"height":0,"fill":"rgb(0,0,0)",'+ '"overlayFill":null,"stroke":null,"strokeWidth":1,"strokeDashArray":null,"scaleX":1.3,"scaleY":1,"angle":0,'+ - '"flipX":false,"flipY":true,"opacity":0.88,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null}'; + '"flipX":false,"flipY":true,"opacity":0.88,"selectable":true,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,'+ + '"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"visible":true}'; var cObj = new fabric.Object(); ok(typeof cObj.toJSON == 'function'); @@ -151,7 +153,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; var augmentedObjectRepr = { @@ -179,7 +182,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; var cObj = new fabric.Object(); diff --git a/test/unit/path.js b/test/unit/path.js index 47dd897c..580d88a8 100644 --- a/test/unit/path.js +++ b/test/unit/path.js @@ -26,7 +26,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; function getPathElement(path) { diff --git a/test/unit/path_group.js b/test/unit/path_group.js index 4cbdf330..266e1b1b 100644 --- a/test/unit/path_group.js +++ b/test/unit/path_group.js @@ -26,6 +26,7 @@ 'transparentCorners': true, 'perPixelTargetFind': false, 'shadow': null, + 'visible': true, 'paths': getPathObjects() }; diff --git a/test/unit/polygon.js b/test/unit/polygon.js index f82bc64b..df4d2dfe 100644 --- a/test/unit/polygon.js +++ b/test/unit/polygon.js @@ -33,7 +33,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; QUnit.module('fabric.Polygon'); diff --git a/test/unit/polyline.js b/test/unit/polyline.js index 6aa2aa0a..c361888b 100644 --- a/test/unit/polyline.js +++ b/test/unit/polyline.js @@ -33,7 +33,8 @@ 'hasRotatingPoint': true, 'transparentCorners': true, 'perPixelTargetFind': false, - 'shadow': null + 'shadow': null, + 'visible': true }; QUnit.module('fabric.Polyline'); diff --git a/test/unit/rect.js b/test/unit/rect.js index d43dba66..36b90598 100644 --- a/test/unit/rect.js +++ b/test/unit/rect.js @@ -26,6 +26,7 @@ 'transparentCorners': true, 'perPixelTargetFind': false, 'shadow': null, + 'visible': true, 'rx': 0, 'ry': 0 }; diff --git a/test/unit/text.js b/test/unit/text.js index 461b5181..55a92688 100644 --- a/test/unit/text.js +++ b/test/unit/text.js @@ -32,6 +32,7 @@ 'transparentCorners': true, 'perPixelTargetFind': false, 'shadow': null, + 'visible': true, 'text': 'x', 'fontSize': 40, 'fontWeight': 'normal', From 506125bbe6bb4b6d5880f6de0baa7f9c0f382938 Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 6 Mar 2013 18:47:50 +0100 Subject: [PATCH 33/60] =?UTF-8?q?[BACK=5FINCOMPAT]=20`fabric.Canvas.toData?= =?UTF-8?q?URL`=20now=20accepts=20options=20object=20instead=20linear=20ar?= =?UTF-8?q?guments.=20`fabric.Canvas.toDataURLWithMultiplier`=20is=20depre?= =?UTF-8?q?cated;=20use=20`toDataURL({=20multiplier:=20=E2=80=A6=20})`=20i?= =?UTF-8?q?nstead.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/all.js | 148 +++++++++++++++++++++++++++---------- dist/all.min.js | 10 +-- dist/all.min.js.gz | Bin 44441 -> 44643 bytes src/object.class.js | 2 +- src/static_canvas.class.js | 65 ++++++++++++---- test/unit/canvas.js | 2 +- test/unit/canvas_static.js | 2 +- 7 files changed, 169 insertions(+), 60 deletions(-) diff --git a/dist/all.js b/dist/all.js index 18787590..fdba19a6 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.12" }; +var fabric = fabric || { version: "1.0.13" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -1872,7 +1872,7 @@ fabric.Observable.trigger = fabric.Observable.fire; atan2 = Math.atan2; /** - * @namespace + * @namespace Various utilities */ fabric.util = { }; @@ -2514,7 +2514,9 @@ fabric.Observable.trigger = fabric.Observable.fire; return result; } - /** @namespace */ + /** + * @namespace Array utilities + */ fabric.util.array = { invoke: invoke, min: min, @@ -2523,7 +2525,7 @@ fabric.Observable.trigger = fabric.Observable.fire; })(); (function(){ - + /** * Copies all enumerable properties of one object to another * @memberOf fabric.util.object @@ -2549,12 +2551,12 @@ fabric.Observable.trigger = fabric.Observable.fire; return extend({ }, object); } - /** @namespace fabric.util.object */ + /** @namespace Object utilities */ fabric.util.object = { extend: extend, clone: clone }; - + })(); (function() { @@ -2609,7 +2611,7 @@ function escapeXml(string) { .replace(/>/g, '>'); } -/** @namespace */ +/** @namespace String utilities */ fabric.util.string = { camelize: camelize, capitalize: capitalize, @@ -2974,10 +2976,16 @@ fabric.util.string = { if (fabric.isTouchSupported) { pointerX = function(event) { - return (event.touches && event.touches[0] ? (event.touches[0].pageX - (event.touches[0].pageX - event.touches[0].clientX)) || event.clientX : event.clientX); + if (event.type !== 'touchend') { + return (event.touches && event.touches[0] ? (event.touches[0].pageX - (event.touches[0].pageX - event.touches[0].clientX)) || event.clientX : event.clientX); + } + return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageX - (event.changedTouches[0].pageX - event.changedTouches[0].clientX)) || event.clientX : event.clientX); }; pointerY = function(event) { - return (event.touches && event.touches[0] ? (event.touches[0].pageY - (event.touches[0].pageY - event.touches[0].clientY)) || event.clientY : event.clientY); + if (event.type !== 'touchend') { + return (event.touches && event.touches[0] ? (event.touches[0].pageY - (event.touches[0].pageY - event.touches[0].clientY)) || event.clientY : event.clientY); + } + return (event.changedTouches && event.changedTouches[0] ? (event.changedTouches[0].pageY - (event.changedTouches[0].pageY - event.changedTouches[0].clientY)) || event.clientY : event.clientY); }; } @@ -2986,6 +2994,7 @@ fabric.util.string = { fabric.util.object.extend(fabric.util, fabric.Observable); })(); + (function () { /** @@ -6333,17 +6342,39 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { /** * Exports canvas element to a dataurl image. * @method toDataURL - * @param {String} format the format of the output image. Either "jpeg" or "png". - * @param {Number} quality quality level (0..1) + * @param {Object} options + * + * `format` the format of the output image. Either "jpeg" or "png". + * `quality` quality level (0..1) + * `multiplier` multiplier to scale by {Number} + * * @return {String} */ - toDataURL: function (format, quality) { - var canvasEl = this.upperCanvasEl || this.lowerCanvasEl; + toDataURL: function (options) { + options || (options = { }); + var format = options.format || 'png', + quality = options.quality || 1, + multiplier = options.multiplier || 1; + + if (multiplier !== 1) { + return this.__toDataURLWithMultiplier(format, quality, multiplier); + } + else { + return this.__toDataURL(format, quality); + } + }, + + /** + * @method _toDataURL + * @private + */ + __toDataURL: function(format, quality) { this.renderAll(true); + var canvasEl = this.upperCanvasEl || this.lowerCanvasEl; var data = (fabric.StaticCanvas.supports('toDataURLWithQuality')) - ? canvasEl.toDataURL('image/' + format, quality) - : canvasEl.toDataURL('image/' + format); + ? canvasEl.toDataURL('image/' + format, quality) + : canvasEl.toDataURL('image/' + format); this.contextTop && this.clearContext(this.contextTop); this.renderAll(); @@ -6351,14 +6382,10 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { }, /** - * Exports canvas element to a dataurl image (allowing to change image size via multiplier). - * @method toDataURLWithMultiplier - * @param {String} format (png|jpeg) - * @param {Number} multiplier - * @param {Number} quality (0..1) - * @return {String} + * @method _toDataURLWithMultiplier + * @private */ - toDataURLWithMultiplier: function (format, multiplier, quality) { + __toDataURLWithMultiplier: function(format, quality, multiplier) { var origWidth = this.getWidth(), origHeight = this.getHeight(), @@ -6387,7 +6414,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { this.renderAll(true); - var dataURL = this.toDataURL(format, quality); + var data = this.toDataURL(format, quality); ctx.scale(1 / multiplier, 1 / multiplier); this.setWidth(origWidth).setHeight(origHeight); @@ -6402,7 +6429,24 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { this.contextTop && this.clearContext(this.contextTop); this.renderAll(); - return dataURL; + return data; + }, + + /** + * Exports canvas element to a dataurl image (allowing to change image size via multiplier). + * @deprecated since 1.0.13 + * @method toDataURLWithMultiplier + * @param {String} format (png|jpeg) + * @param {Number} multiplier + * @param {Number} quality (0..1) + * @return {String} + */ + toDataURLWithMultiplier: function (format, multiplier, quality) { + return this.toDataURL({ + format: format, + multiplier: multiplier, + quality: quality + }); }, /** @@ -9339,6 +9383,13 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ selectable: true, + /** + * When set to `false`, an object is not rendered on canvas + * @property + * @type Boolean + */ + visible: true, + /** * When set to `false`, object's controls are not displayed and can not be used to manipulate object * @property @@ -9391,7 +9442,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati 'top left width height scaleX scaleY flipX flipY ' + 'angle opacity cornerSize fill overlayFill originX originY ' + 'stroke strokeWidth strokeDashArray fillRule ' + - 'borderScaleFactor transformMatrix selectable shadow' + 'borderScaleFactor transformMatrix selectable shadow visible' ).split(' '), /** @@ -9504,7 +9555,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati hasRotatingPoint: this.hasRotatingPoint, transparentCorners: this.transparentCorners, perPixelTargetFind: this.perPixelTargetFind, - shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow + shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow, + visible: this.visible }; if (!this.includeDefaultValues) { @@ -9537,7 +9589,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), "fill: ", (this.fill ? this.fill : 'none'), "; ", - "opacity: ", (this.opacity ? this.opacity : '1'), ";" + "opacity: ", (this.opacity ? this.opacity : '1'), "; ", + (this.visible ? '' : "visibility: hidden;") ].join(""); }, @@ -9719,7 +9772,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati render: function(ctx, noTransform) { // do not render if width or height are zeros - if (this.width === 0 || this.height === 0) return; + if (this.width === 0 || this.height === 0 || !this.visible) return; ctx.save(); @@ -9823,13 +9876,13 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati }; var orig = { - angle: this.get('angle'), - flipX: this.get('flipX'), - flipY: this.get('flipY') + angle: this.getAngle(), + flipX: this.getFlipX(), + flipY: this.getFlipY() }; // normalize angle - this.set('angle', 0).set('flipX', false).set('flipY', false); + this.set({ angle: 0, flipX: false, flipY: false }); this.toDataURL(function(dataURL) { i.src = dataURL; }); @@ -9868,7 +9921,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati clone.setActive(false); canvas.add(clone); - var data = canvas.toDataURL('png'); + var data = canvas.toDataURL(); canvas.dispose(); canvas = clone = null; @@ -9891,13 +9944,21 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati /** * Saves state of an object * @method saveState + * @param {Object} [options] Object with additional `stateProperties` array to include when saving state * @return {fabric.Object} thisArg * @chainable */ - saveState: function() { + saveState: function(options) { this.stateProperties.forEach(function(prop) { this.originalState[prop] = this.get(prop); }, this); + + if (options && options.stateProperties) { + options.stateProperties.forEach(function(prop) { + this.originalState[prop] = this.get(prop); + }, this); + } + return this; }, @@ -9945,7 +10006,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati /** * Returns a JSON representation of an instance * @method toJSON - * @param {Array} propertiesToInclude + * @param {Array} propertiesToInclude Any properties that you might want to additionally include in the output * @return {String} json */ toJSON: function(propertiesToInclude) { @@ -9956,6 +10017,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati /** * Sets gradient fill of an object * @method setGradientFill + * @param {Object} options */ setGradientFill: function(options) { this.set('fill', fabric.Gradient.forObject(this, options)); @@ -9964,6 +10026,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati /** * Sets pattern fill of an object * @method setPatternFill + * @param {Object} options */ setPatternFill: function(options) { this.set('fill', new fabric.Pattern(options)); @@ -9972,6 +10035,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati /** * Sets shadow of an object * @method setShadow + * @param {Object} options */ setShadow: function(options) { this.set('shadow', new fabric.Shadow(options)); @@ -13591,6 +13655,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati object.setCoords(); // do not display corners of objects enclosed in a group + object.__origHasControls = object.hasControls; object.hasControls = false; }, this); }, @@ -13677,6 +13742,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati }, /** + * @param delegatedProperties + * @type Object * Properties that are delegated to group objects when reading/writing */ delegatedProperties: { @@ -13684,9 +13751,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati opacity: true, fontFamily: true, fontWeight: true, + fontSize: true, + fontStyle: true, lineHeight: true, textDecoration: true, textShadow: true, + textAlign: true, backgroundColor: true }, @@ -13821,7 +13891,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati object.set('scaleY', object.get('scaleY') * this.get('scaleY')); object.setCoords(); - object.hasControls = true; + object.hasControls = object.__origHasControls; + delete object.__origHasControls; object.setActive(false); object.setCoords(); @@ -14026,6 +14097,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati } } else { + if (prop in this.delegatedProperties) { + return this.objects[0] && this.objects[0].get(prop); + } return this[prop]; } } @@ -14569,7 +14643,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, { } }); /** - * @namespace + * @namespace Image filters */ fabric.Image.filters = { }; diff --git a/dist/all.min.js b/dist/all.min.js index de127f59..b3dff8d4 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.12"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" " -).indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.get("angle"),flipX:this.get("flipX"),flipY:this.get("flipY")};this.set("angle",0).set("flipX",!1).set("flipY",!1),this.toDataURL(function(e){n.src= -e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL("png");r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")=== -e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=!0,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.13"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+ +t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0||!this.visible)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow +:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index f4d7e4a84632cc5e7fbabf52aa04ff2cafaaa13b..38a694633faa0e9ec8cfd6006cbaa027ca129485 100644 GIT binary patch delta 44511 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 T))`5wuNthotxHmqPpYt%4uJbXQ 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 HoOGet0`ff`_qF-^1YG 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 z

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 O{{H|(byAE&asmL|eAd4J diff --git a/src/object.class.js b/src/object.class.js index 8d6427c1..23cef3f3 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -778,7 +778,7 @@ clone.setActive(false); canvas.add(clone); - var data = canvas.toDataURL('png'); + var data = canvas.toDataURL(); canvas.dispose(); canvas = clone = null; diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 3c42e435..b4019123 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -706,17 +706,39 @@ /** * Exports canvas element to a dataurl image. * @method toDataURL - * @param {String} format the format of the output image. Either "jpeg" or "png". - * @param {Number} quality quality level (0..1) + * @param {Object} options + * + * `format` the format of the output image. Either "jpeg" or "png". + * `quality` quality level (0..1) + * `multiplier` multiplier to scale by {Number} + * * @return {String} */ - toDataURL: function (format, quality) { - var canvasEl = this.upperCanvasEl || this.lowerCanvasEl; + toDataURL: function (options) { + options || (options = { }); + var format = options.format || 'png', + quality = options.quality || 1, + multiplier = options.multiplier || 1; + + if (multiplier !== 1) { + return this.__toDataURLWithMultiplier(format, quality, multiplier); + } + else { + return this.__toDataURL(format, quality); + } + }, + + /** + * @method _toDataURL + * @private + */ + __toDataURL: function(format, quality) { this.renderAll(true); + var canvasEl = this.upperCanvasEl || this.lowerCanvasEl; var data = (fabric.StaticCanvas.supports('toDataURLWithQuality')) - ? canvasEl.toDataURL('image/' + format, quality) - : canvasEl.toDataURL('image/' + format); + ? canvasEl.toDataURL('image/' + format, quality) + : canvasEl.toDataURL('image/' + format); this.contextTop && this.clearContext(this.contextTop); this.renderAll(); @@ -724,14 +746,10 @@ }, /** - * Exports canvas element to a dataurl image (allowing to change image size via multiplier). - * @method toDataURLWithMultiplier - * @param {String} format (png|jpeg) - * @param {Number} multiplier - * @param {Number} quality (0..1) - * @return {String} + * @method _toDataURLWithMultiplier + * @private */ - toDataURLWithMultiplier: function (format, multiplier, quality) { + __toDataURLWithMultiplier: function(format, quality, multiplier) { var origWidth = this.getWidth(), origHeight = this.getHeight(), @@ -760,7 +778,7 @@ this.renderAll(true); - var dataURL = this.toDataURL(format, quality); + var data = this.toDataURL(format, quality); ctx.scale(1 / multiplier, 1 / multiplier); this.setWidth(origWidth).setHeight(origHeight); @@ -775,7 +793,24 @@ this.contextTop && this.clearContext(this.contextTop); this.renderAll(); - return dataURL; + return data; + }, + + /** + * Exports canvas element to a dataurl image (allowing to change image size via multiplier). + * @deprecated since 1.0.13 + * @method toDataURLWithMultiplier + * @param {String} format (png|jpeg) + * @param {Number} multiplier + * @param {Number} quality (0..1) + * @return {String} + */ + toDataURLWithMultiplier: function (format, multiplier, quality) { + return this.toDataURL({ + format: format, + multiplier: multiplier, + quality: quality + }); }, /** diff --git a/test/unit/canvas.js b/test/unit/canvas.js index c5399b00..d753f330 100644 --- a/test/unit/canvas.js +++ b/test/unit/canvas.js @@ -149,7 +149,7 @@ alert("toDataURL is not supported by this environment. Some of the tests can not be run."); } else { - var dataURL = canvas.toDataURL('png'); + var dataURL = canvas.toDataURL(); // don't compare actual data url, as it is often browser-dependent // this.assertIdentical(emptyImageCanvasData, canvas.toDataURL('png')); equal(typeof dataURL, 'string'); diff --git a/test/unit/canvas_static.js b/test/unit/canvas_static.js index adf34715..ac38ea7d 100644 --- a/test/unit/canvas_static.js +++ b/test/unit/canvas_static.js @@ -143,7 +143,7 @@ alert("toDataURL is not supported by this environment. Some of the tests can not be run."); } else { - var dataURL = canvas.toDataURL('png'); + var dataURL = canvas.toDataURL(); // don't compare actual data url, as it is often browser-dependent // this.assertIdentical(emptyImageCanvasData, canvas.toDataURL('png')); equal(typeof dataURL, 'string'); From e917b144aa746d03e2a4c1fe6931cec97d02d985 Mon Sep 17 00:00:00 2001 From: kangax Date: Wed, 6 Mar 2013 18:55:26 +0100 Subject: [PATCH 34/60] Remove unnecessary space in SVG output --- dist/all.js | 4 ++-- dist/all.min.js | 2 +- dist/all.min.js.gz | Bin 44643 -> 44645 bytes src/object.class.js | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/all.js b/dist/all.js index fdba19a6..70976e85 100644 --- a/dist/all.js +++ b/dist/all.js @@ -9589,8 +9589,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), "fill: ", (this.fill ? this.fill : 'none'), "; ", - "opacity: ", (this.opacity ? this.opacity : '1'), "; ", - (this.visible ? '' : "visibility: hidden;") + "opacity: ", (this.opacity ? this.opacity : '1'), ";", + (this.visible ? '' : " visibility: hidden;") ].join(""); }, diff --git a/dist/all.min.js b/dist/all.min.js index b3dff8d4..cc5f2505 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ /* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.13"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+ t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0||!this.visible)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow +.backgroundImage.width,'" height="',this.backgroundImageStretch?this.height:this.backgroundImage.height,'" preserveAspectRatio="',this.backgroundImageStretch?"none":"defer",'" xlink:href="',this.backgroundImage.src,'" style="opacity:',this.backgroundImageOpacity,'">'),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0||!this.visible)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow :function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 38a694633faa0e9ec8cfd6006cbaa027ca129485..2a84ef5f08fbecb4a4f16621d3c71d25a82b7529 100644 GIT binary patch delta 167 zcmV;Y09gOy+ydp?0tO$82ngtcu?Aaje`0cxLQL>U5R3xmL-IM5aFtJ|SuqaI4Ogu^ zz#e?3hQXxVrhalkx1B9VbcN`wlAHwHlKdm(Q5S}UKGyUByfxf((DUa>a3ClR#%CgS z6a)xttq&Rlp;7=)Ar1`noCy-G`T*Vu?^+Uq1?R5eGA>=&8 diff --git a/src/object.class.js b/src/object.class.js index 23cef3f3..edb7b2d9 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -446,8 +446,8 @@ "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), "fill: ", (this.fill ? this.fill : 'none'), "; ", - "opacity: ", (this.opacity ? this.opacity : '1'), "; ", - (this.visible ? '' : "visibility: hidden;") + "opacity: ", (this.opacity ? this.opacity : '1'), ";", + (this.visible ? '' : " visibility: hidden;") ].join(""); }, From f84a8628c3dc7cbdaf34c4a2487fc2d6eae33277 Mon Sep 17 00:00:00 2001 From: Martin Panel Date: Thu, 7 Mar 2013 22:11:30 +0100 Subject: [PATCH 35/60] Fix backgroundColor render on nodejs --- src/node.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/node.js b/src/node.js index 24633cd8..bd324893 100644 --- a/src/node.js +++ b/src/node.js @@ -146,7 +146,7 @@ var origSetWidth = fabric.StaticCanvas.prototype.setWidth; fabric.StaticCanvas.prototype.setWidth = function(width) { - origSetWidth.call(this); + origSetWidth.call(this, height); this.nodeCanvas.width = width; return this; }; @@ -156,7 +156,7 @@ var origSetHeight = fabric.StaticCanvas.prototype.setHeight; fabric.StaticCanvas.prototype.setHeight = function(height) { - origSetHeight.call(this); + origSetHeight.call(this, height); this.nodeCanvas.height = height; return this; }; From dfb1e2a23093f026530ccccdd1865a2fc107e2d1 Mon Sep 17 00:00:00 2001 From: Martin Panel Date: Thu, 7 Mar 2013 22:14:30 +0100 Subject: [PATCH 36/60] Fix backgroundColor render on nodejs --- src/node.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/node.js b/src/node.js index 24633cd8..31291b37 100644 --- a/src/node.js +++ b/src/node.js @@ -146,7 +146,7 @@ var origSetWidth = fabric.StaticCanvas.prototype.setWidth; fabric.StaticCanvas.prototype.setWidth = function(width) { - origSetWidth.call(this); + origSetWidth.call(this, width); this.nodeCanvas.width = width; return this; }; @@ -156,7 +156,7 @@ var origSetHeight = fabric.StaticCanvas.prototype.setHeight; fabric.StaticCanvas.prototype.setHeight = function(height) { - origSetHeight.call(this); + origSetHeight.call(this, height); this.nodeCanvas.height = height; return this; }; From 70d3c702b13d19102d9a40b5c4c8daf08b7ed244 Mon Sep 17 00:00:00 2001 From: Atis Date: Fri, 8 Mar 2013 19:41:33 +0200 Subject: [PATCH 37/60] fix infinity check so that Closure Compiler does not choke on it --- src/util/lang_array.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/lang_array.js b/src/util/lang_array.js index 1e2f1bf2..f268f55c 100644 --- a/src/util/lang_array.js +++ b/src/util/lang_array.js @@ -23,7 +23,7 @@ if (n !== n) { // shortcut for verifying if it's NaN n = 0; } - else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { + else if (n !== 0 && n !== Number.POSITIVE_INFINITY && n !== Number.NEGATIVE_INFINITY) { n = (n > 0 || -1) * Math.floor(Math.abs(n)); } } From b6a178d8a1863e0eb237dd8bf6ab35bdbb6185a4 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 9 Mar 2013 00:34:54 +0100 Subject: [PATCH 38/60] Fix backgroundColor render on nodejs --- src/node.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/node.js b/src/node.js index 6c519ced..31291b37 100644 --- a/src/node.js +++ b/src/node.js @@ -146,11 +146,7 @@ var origSetWidth = fabric.StaticCanvas.prototype.setWidth; fabric.StaticCanvas.prototype.setWidth = function(width) { -<<<<<<< HEAD origSetWidth.call(this, width); -======= - origSetWidth.call(this, height); ->>>>>>> f84a8628c3dc7cbdaf34c4a2487fc2d6eae33277 this.nodeCanvas.width = width; return this; }; From f0f510995166c823a3f00b4f5e3eca0fb6ab9cbd Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 9 Mar 2013 15:28:14 +0100 Subject: [PATCH 39/60] Run jshint as part of `npm test` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 97b7635c..cdf5c99b 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }], "scripts": { "build": "node build.js modules=ALL exclude=json,cufon,gestures", - "test": "node test.js" + "test": "node test.js && jshint src" }, "dependencies": { "canvas": "~1.0.0", From ece75b6065fe625857d496cd3049e75eb8cfd203 Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 9 Mar 2013 15:28:21 +0100 Subject: [PATCH 40/60] Remove unused maxY variable --- src/freedrawing.class.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/freedrawing.class.js b/src/freedrawing.class.js index 0d8c6c7d..0f439010 100644 --- a/src/freedrawing.class.js +++ b/src/freedrawing.class.js @@ -176,7 +176,7 @@ * @param {Array} points Array of points * @return {String} SVG path */ - convertPointsToSVGPath: function(points, minX, maxX, minY, maxY) { + convertPointsToSVGPath: function(points, minX, maxX, minY) { var path = []; var p1 = new fabric.Point(points[0].x - minX, points[0].y - minY); var p2 = new fabric.Point(points[1].x - minX, points[1].y - minY); From df46e3af2646d84606adaf3c76aba0fa16d6ddc1 Mon Sep 17 00:00:00 2001 From: Kienz Date: Sat, 9 Mar 2013 22:15:31 +0100 Subject: [PATCH 41/60] Bugfix fabric.PathGroup if object is not visible - if object is not visible and of type 'path-group' the object was still drawn --- src/object.class.js | 2 +- src/path_group.class.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/object.class.js b/src/object.class.js index edb7b2d9..924c04cc 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -628,7 +628,7 @@ */ render: function(ctx, noTransform) { - // do not render if width or height are zeros + // do not render if width/height are zeros or object is not visible if (this.width === 0 || this.height === 0 || !this.visible) return; ctx.save(); diff --git a/src/path_group.class.js b/src/path_group.class.js index d848a9cb..ed64d7e8 100644 --- a/src/path_group.class.js +++ b/src/path_group.class.js @@ -65,6 +65,10 @@ * @param {CanvasRenderingContext2D} ctx Context to render this instance on */ render: function(ctx) { + + // do not render if object is not visible + if (!this.visible) return; + ctx.save(); var m = this.transformMatrix; From 5fec23e7c11a3f6fafcbc81905f10841f71e072f Mon Sep 17 00:00:00 2001 From: Kienz Date: Sat, 9 Mar 2013 22:38:42 +0100 Subject: [PATCH 42/60] JSHint - remove extra comma at the end of the fabric.Color.colorNameMap object --- src/color.class.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/color.class.js b/src/color.class.js index 4ec4bb7f..3794452f 100644 --- a/src/color.class.js +++ b/src/color.class.js @@ -225,7 +225,7 @@ 'silver': '#C0C0C0', 'teal': '#008080', 'white': '#FFFFFF', - 'yellow': '#FFFF00', + 'yellow': '#FFFF00' }; /** From 9fb9b1ca3475bb3f94d8e27790460850bd91fd2f Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 10 Mar 2013 20:55:29 +0100 Subject: [PATCH 43/60] Fix unit tests --- test/unit/canvas.js | 4 +-- test/unit/canvas_static.js | 4 +-- test/unit/gradient.js | 60 +++++++++++++++++++++----------------- test/unit/group.js | 2 +- test/unit/object.js | 22 ++++++++------ test/unit/rect.js | 2 +- 6 files changed, 53 insertions(+), 41 deletions(-) diff --git a/test/unit/canvas.js b/test/unit/canvas.js index d753f330..c8a4bf11 100644 --- a/test/unit/canvas.js +++ b/test/unit/canvas.js @@ -708,14 +708,14 @@ equal(canvas.getWidth(), 600); equal(canvas.setWidth(444), canvas, 'chainable'); - equal(canvas.getWidth(), fabric.isLikelyNode ? undefined : 444); + equal(canvas.getWidth(), 444); }); test('getSetHeight', function() { ok(typeof canvas.getHeight == 'function'); equal(canvas.getHeight(), 600); equal(canvas.setHeight(765), canvas, 'chainable'); - equal(canvas.getHeight(), fabric.isLikelyNode ? undefined : 765); + equal(canvas.getHeight(), 765); }); test('containsPoint', function() { diff --git a/test/unit/canvas_static.js b/test/unit/canvas_static.js index ac38ea7d..d80e0d3c 100644 --- a/test/unit/canvas_static.js +++ b/test/unit/canvas_static.js @@ -543,14 +543,14 @@ ok(typeof canvas.getWidth == 'function'); equal(canvas.getWidth(), 600); equal(canvas.setWidth(444), canvas, 'chainable'); - equal(canvas.getWidth(), fabric.isLikelyNode ? undefined: 444); + equal(canvas.getWidth(), 444); }); test('getSetHeight', function() { ok(typeof canvas.getHeight == 'function'); equal(canvas.getHeight(), 600); equal(canvas.setHeight(765), canvas, 'chainable'); - equal(canvas.getHeight(), fabric.isLikelyNode ? undefined : 765); + equal(canvas.getHeight(), 765); }); test('toGrayscale', function() { diff --git a/test/unit/gradient.js b/test/unit/gradient.js index 21d890de..c7592a34 100644 --- a/test/unit/gradient.js +++ b/test/unit/gradient.js @@ -4,10 +4,12 @@ function createGradient() { return new fabric.Gradient({ - x1: 0, - y1: 10, - x2: 100, - y2: 200, + coords: { + x1: 0, + y1: 10, + x2: 100, + y2: 200, + }, colorStops: { '0': 'red', '1': 'green' @@ -25,10 +27,10 @@ test('properties', function() { var gradient = createGradient(); - equal(gradient.x1, 0); - equal(gradient.y1, 10); - equal(gradient.x2, 100); - equal(gradient.y2, 200); + equal(gradient.coords.x1, 0); + equal(gradient.coords.y1, 10); + equal(gradient.coords.x2, 100); + equal(gradient.coords.y2, 200); equal(gradient.colorStops['0'], 'red'); equal(gradient.colorStops['1'], 'green'); @@ -41,10 +43,11 @@ var object = gradient.toObject(); - equal(object.x1, gradient.x1); - equal(object.x2, gradient.x2); - equal(object.y1, gradient.y1); - equal(object.y2, gradient.y2); + equal(object.coords.x1, gradient.coords.x1); + equal(object.coords.x2, gradient.coords.x2); + equal(object.coords.y1, gradient.coords.y1); + equal(object.coords.y2, gradient.coords.y2); + equal(object.colorStops, gradient.colorStops); }); @@ -77,14 +80,17 @@ // TODO: need to double check these values - equal(gradient.x1, -50); - equal(gradient.y1, -50); + equal(gradient.coords.x1, 0); + equal(gradient.coords.y1, 0); - equal(gradient.x2, 50); - equal(gradient.y2, -50); + //equal(gradient.coords.x2, 100); + //equal(gradient.coords.y2, 100); - equal(gradient.colorStops[0], 'white'); - equal(gradient.colorStops[1], 'black'); + equal(gradient.colorStops[0].offset, 1); + equal(gradient.colorStops[1].offset, 0); + + equal(gradient.colorStops[0].color, 'rgb(0,0,0)'); + equal(gradient.colorStops[1].color, 'rgb(255,255,255)'); }); test('forObject', function() { @@ -93,10 +99,12 @@ var object = new fabric.Object({ width: 50, height: 50 }); var gradient = fabric.Gradient.forObject(object, { - x1: 10, - y1: 10, - x2: 20, - y2: 20, + coords: { + x1: 10, + y1: 10, + x2: 20, + y2: 20, + }, colorStops: { '0': 'red', '0.5': 'green', @@ -108,11 +116,11 @@ // TODO: need to double check these values - equal(gradient.x1, -15); - equal(gradient.y1, -15); + equal(gradient.coords.x1, 10); + equal(gradient.coords.y1, 10); - equal(gradient.x2, -5); - equal(gradient.y2, -5); + equal(gradient.coords.x2, 20); + equal(gradient.coords.y2, 20); }); })(); \ No newline at end of file diff --git a/test/unit/group.js b/test/unit/group.js index 4edc90b0..30472656 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -291,7 +291,7 @@ var group = makeGroupWith2Objects(); ok(typeof group.toSVG == 'function'); - var expectedSVG = ''; + var expectedSVG = ''; equal(group.toSVG(), expectedSVG); }); diff --git a/test/unit/object.js b/test/unit/object.js index beb47903..a14dcea1 100644 --- a/test/unit/object.js +++ b/test/unit/object.js @@ -794,27 +794,31 @@ test('gradient serialization', function() { var object = new fabric.Object(); - object.fill = new fabric.Gradient({ + object.setGradient('fill', { x1: 0, y1: 0, x2: 100, y2: 100, colorStops: { - '0': 'red', - '1': 'green' + '0': 'rgb(255,0,0)', + '1': 'rgb(0,128,0)' } }); ok(typeof object.toObject().fill == 'object'); - equal(object.toObject().fill.x1, 0); - equal(object.toObject().fill.y1, 0); + equal(object.toObject().fill.type, 'linear'); - equal(object.toObject().fill.x2, 100); - equal(object.toObject().fill.y2, 100); + equal(object.toObject().fill.coords.x1, 0); + equal(object.toObject().fill.coords.y1, 0); - equal(object.toObject().fill.colorStops['0'], 'red'); - equal(object.toObject().fill.colorStops['1'], 'green'); + equal(object.toObject().fill.coords.x2, 100); + equal(object.toObject().fill.coords.y2, 100); + + equal(object.toObject().fill.colorStops[0].offset, 0); + equal(object.toObject().fill.colorStops[1].offset, 1); + equal(object.toObject().fill.colorStops[0].color, 'rgb(255,0,0)'); + equal(object.toObject().fill.colorStops[1].color, 'rgb(0,128,0)'); }); test('setShadow', function() { diff --git a/test/unit/rect.js b/test/unit/rect.js index 36b90598..8a554bd5 100644 --- a/test/unit/rect.js +++ b/test/unit/rect.js @@ -125,6 +125,6 @@ var rect = new fabric.Rect({ width: 100, height: 100, rx: 20, ry: 30 }); var svg = rect.toSVG(); - equal('', svg); + equal('', svg); }); })(); \ No newline at end of file From e886fee63d119c285ad4c5ed7592691f80f4a224 Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 10 Mar 2013 21:04:44 +0100 Subject: [PATCH 44/60] Add docs for ellipse rx/ry --- src/ellipse.class.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ellipse.class.js b/src/ellipse.class.js index ad1e3229..6b9543cd 100644 --- a/src/ellipse.class.js +++ b/src/ellipse.class.js @@ -25,6 +25,20 @@ */ type: 'ellipse', + /** + * Horizontal radius + * @property + * @type Number + */ + rx: 0, + + /** + * Vertical radius + * @property + * @type Number + */ + ry: 0, + /** * Constructor * @method initialize From 012c333bbb873f780e3057f50b1de7a4f6ff2758 Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 10 Mar 2013 21:05:24 +0100 Subject: [PATCH 45/60] Fix gradient initialization --- src/gradient.class.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gradient.class.js b/src/gradient.class.js index 5e4450df..b4f88caa 100644 --- a/src/gradient.class.js +++ b/src/gradient.class.js @@ -82,7 +82,7 @@ this.coords = coords; this.gradientUnits = options.gradientUnits || 'objectBoundingBox'; - this.colorStops = options.colorStops.slice(); + this.colorStops = fabric.util.object.clone(options.colorStops); }, /** From 85fd7ee8522bdcb1b088ca7cc1e8d00c09ded71a Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 10 Mar 2013 21:06:17 +0100 Subject: [PATCH 46/60] Add support for clipping objects. Closes #64 --- src/group.class.js | 3 +++ src/image.class.js | 2 ++ src/object.class.js | 9 +++++++++ src/path.class.js | 6 ++++-- src/path_group.class.js | 2 ++ src/static_canvas.class.js | 13 +------------ src/text.class.js | 4 +++- src/util/misc.js | 11 +++++++++++ 8 files changed, 35 insertions(+), 15 deletions(-) diff --git a/src/group.class.js b/src/group.class.js index 2d95d197..43592715 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -245,6 +245,8 @@ var groupScaleFactor = Math.max(this.scaleX, this.scaleY); + this.clipTo && fabric.util.clipContext(this, ctx); + //The array is now sorted in order of highest first, so start from end. for (var i = this.objects.length; i > 0; i--) { @@ -260,6 +262,7 @@ object.borderScaleFactor = originalScaleFactor; object.hasRotatingPoint = originalHasRotatingPoint; } + this.clipTo && ctx.restore(); if (!noTransform && this.active) { this.drawBorders(ctx); diff --git a/src/image.class.js b/src/image.class.js index df4d1b58..de92b865 100644 --- a/src/image.class.js +++ b/src/image.class.js @@ -104,7 +104,9 @@ } this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); this._render(ctx); + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.active && !noTransform) { diff --git a/src/object.class.js b/src/object.class.js index bf1da741..bf4353b3 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -289,6 +289,13 @@ */ includeDefaultValues: true, + /** + * Function that determines clipping of an object (context is passed as a first argument) + * @property + * @type Function + */ + clipTo: null, + /** * List of properties to consider when checking if state of an object is changed (fabric.Object#hasStateChanged); * as well as for history (undo/redo) purposes @@ -667,7 +674,9 @@ } this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); this._render(ctx, noTransform); + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.active && !noTransform) { diff --git a/src/path.class.js b/src/path.class.js index 67857b47..b123d6b6 100644 --- a/src/path.class.js +++ b/src/path.class.js @@ -553,14 +553,16 @@ ? this.stroke.toLive(ctx) : this.stroke; } - ctx.beginPath(); - this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); + + ctx.beginPath(); this._render(ctx); if (this.fill) { ctx.fill(); } + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.stroke) { diff --git a/src/path_group.class.js b/src/path_group.class.js index ed64d7e8..211c40dc 100644 --- a/src/path_group.class.js +++ b/src/path_group.class.js @@ -79,9 +79,11 @@ this.transform(ctx); this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); for (var i = 0, l = this.paths.length; i < l; ++i) { this.paths[i].render(ctx, true); } + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.active) { diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index b4019123..65fac8e3 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -563,7 +563,7 @@ this.fire('before:render'); if (this.clipTo) { - this._clipCanvas(canvasToDrawOn); + fabric.util.clipCanvas(this, canvasToDrawOn); } if (this.backgroundColor) { @@ -616,17 +616,6 @@ return this; }, - /** - * @private - * @method _clipCanvas - */ - _clipCanvas: function(canvasToDrawOn) { - canvasToDrawOn.save(); - canvasToDrawOn.beginPath(); - this.clipTo(canvasToDrawOn); - canvasToDrawOn.clip(); - }, - /** * @private * @method _drawBackroundImage diff --git a/src/text.class.js b/src/text.class.js index bf146c6c..439e3980 100644 --- a/src/text.class.js +++ b/src/text.class.js @@ -287,10 +287,12 @@ } this._setTextShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); this._renderTextFill(ctx, textLines); + this._renderTextStroke(ctx, textLines); + this.clipTo && ctx.restore(); this.textShadow && ctx.restore(); - this._renderTextStroke(ctx, textLines); if (this.textAlign !== 'left' && this.textAlign !== 'justify') { ctx.restore(); } diff --git a/src/util/misc.js b/src/util/misc.js index c843689f..5327c2ab 100644 --- a/src/util/misc.js +++ b/src/util/misc.js @@ -386,6 +386,16 @@ } } + /** + * @method clipContext + */ + function clipContext(receiver, ctx) { + ctx.save(); + ctx.beginPath(); + receiver.clipTo(ctx); + ctx.clip(); + } + fabric.util.removeFromArray = removeFromArray; fabric.util.degreesToRadians = degreesToRadians; fabric.util.radiansToDegrees = radiansToDegrees; @@ -402,5 +412,6 @@ fabric.util.drawDashedLine = drawDashedLine; fabric.util.createCanvasElement = createCanvasElement; fabric.util.createAccessors = createAccessors; + fabric.util.clipContext = clipContext; })(); \ No newline at end of file From d881340120de23060c48c78f14569f55846b4317 Mon Sep 17 00:00:00 2001 From: kangax Date: Sun, 10 Mar 2013 21:06:29 +0100 Subject: [PATCH 47/60] Version 1.1.0 --- HEADER.js | 2 +- dist/all.js | 629 ++++++++++++++++++++++++++++++++++++--------- dist/all.min.js | 11 +- dist/all.min.js.gz | Bin 44645 -> 45867 bytes package.json | 2 +- 5 files changed, 510 insertions(+), 134 deletions(-) diff --git a/HEADER.js b/HEADER.js index a880408e..83e69dd9 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.13" }; +var fabric = fabric || { version: "1.1.0" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 70976e85..9ad7628b 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.0.13" }; +var fabric = fabric || { version: "1.1.0" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -2254,6 +2254,16 @@ fabric.Observable.trigger = fabric.Observable.fire; } } + /** + * @method clipContext + */ + function clipContext(receiver, ctx) { + ctx.save(); + ctx.beginPath(); + receiver.clipTo(ctx); + ctx.clip(); + } + fabric.util.removeFromArray = removeFromArray; fabric.util.degreesToRadians = degreesToRadians; fabric.util.radiansToDegrees = radiansToDegrees; @@ -2270,6 +2280,7 @@ fabric.Observable.trigger = fabric.Observable.fire; fabric.util.drawDashedLine = drawDashedLine; fabric.util.createCanvasElement = createCanvasElement; fabric.util.createAccessors = createAccessors; + fabric.util.clipContext = clipContext; })(); (function() { @@ -2297,7 +2308,7 @@ fabric.Observable.trigger = fabric.Observable.fire; if (n !== n) { // shortcut for verifying if it's NaN n = 0; } - else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { + else if (n !== 0 && n !== Number.POSITIVE_INFINITY && n !== Number.NEGATIVE_INFINITY) { n = (n > 0 || -1) * Math.floor(Math.abs(n)); } } @@ -4496,8 +4507,13 @@ fabric.util.string = { (function() { - function getColorStopFromStyle(el) { - var style = el.getAttribute('style'); + function getColorStop(el) { + var style = el.getAttribute('style'), + offset = el.getAttribute('offset'), + color, opacity; + + // convert percents to absolute values + offset = parseFloat(offset) / (/%$/.test(offset) ? 100 : 1); if (style) { var keyValuePairs = style.split(/\s*;\s*/); @@ -4513,10 +4529,29 @@ fabric.util.string = { value = split[1].trim(); if (key === 'stop-color') { - return value; + color = value; + } + else if (key === 'stop-opacity') { + opacity = value; } } } + + if (!color) { + color = el.getAttribute('stop-color'); + } + if (!opacity) { + opacity = el.getAttribute('stop-opacity'); + } + + // convert rgba color to rgb color - alpha value has no affect in svg + color = new fabric.Color(color).toRgb(); + + return { + offset: offset, + color: color, + opacity: opacity + }; } /** @@ -4529,19 +4564,46 @@ fabric.util.string = { /** * Constructor * @method initialize - * @param [options] Options object with x1, y1, x2, y2 and colorStops + * @param {Object} [options] Options object with type, coords, gradientUnits and colorStops * @return {fabric.Gradient} thisArg */ initialize: function(options) { - options || (options = { }); - this.x1 = options.x1 || 0; - this.y1 = options.y1 || 0; - this.x2 = options.x2 || 0; - this.y2 = options.y2 || 0; + var coords = { }; - this.colorStops = options.colorStops; + this.id = fabric.Object.__uid++; + this.type = options.type || 'linear'; + + coords = { + x1: options.coords ? options.coords.x1 : 0, + y1: options.coords ? options.coords.y1 : 0, + x2: options.coords ? options.coords.x2 : 0, + y2: options.coords ? options.coords.y2 : 0 + }; + + if (this.type === 'radial') { + coords.r1 = options.coords.r1 || 0; + coords.r2 = options.coords.r2 || 0; + } + + this.coords = coords; + this.gradientUnits = options.gradientUnits || 'objectBoundingBox'; + this.colorStops = fabric.util.object.clone(options.colorStops); + }, + + /** + * Adds another colorStop + * @method add + * @param {Object} colorStop Object with offset and color + * @return {fabric.Gradient} thisArg + */ + addColorStop: function(colorStop) { + for (var position in colorStop) { + var color = new fabric.Color(colorStop[position]); + this.colorStops.push({offset: position, color: color.toRgb(), opacity: color.getAlpha()}); + } + return this; }, /** @@ -4551,10 +4613,9 @@ fabric.util.string = { */ toObject: function() { return { - x1: this.x1, - x2: this.x2, - y1: this.y1, - y2: this.y2, + type: this.type, + coords: this.coords, + gradientUnits: this.gradientUnits, colorStops: this.colorStops }; }, @@ -4566,15 +4627,98 @@ fabric.util.string = { * @return {CanvasGradient} */ toLive: function(ctx) { - var gradient = ctx.createLinearGradient( - this.x1, this.y1, this.x2 || ctx.canvas.width, this.y2); + var gradient; - for (var position in this.colorStops) { - var colorValue = this.colorStops[position]; - gradient.addColorStop(parseFloat(position), colorValue); + if (!this.type) return; + + if (this.type === 'linear') { + gradient = ctx.createLinearGradient( + this.coords.x1, this.coords.y1, this.coords.x2 || ctx.canvas.width, this.coords.y2); + } + else if (this.type === 'radial') { + gradient = ctx.createRadialGradient( + this.coords.x1, this.coords.y1, this.coords.r1, this.coords.x2, this.coords.y2, this.coords.r2); + } + + for (var i = 0; i < this.colorStops.length; i++) { + var color = this.colorStops[i].color, + opacity = this.colorStops[i].opacity, + offset = this.colorStops[i].offset; + + if (opacity) { + color = new fabric.Color(color).setAlpha(opacity).toRgba(); + } + gradient.addColorStop(parseFloat(offset), color); } return gradient; + }, + + /** + * Returns SVG representation of an gradient + * @method toSVG + * @param {Object} object Object to create a gradient for + * @param {Boolean} normalize Whether coords should be normalized + * @return {String} SVG representation of an gradient (linear/radial) + */ + toSVG: function(object, normalize) { + var coords = fabric.util.object.clone(this.coords), + markup; + + // colorStops must be sorted ascending + this.colorStops.sort(function(a, b) { + return a.offset - b.offset; + }); + + if (normalize && this.gradientUnits === 'userSpaceOnUse') { + coords.x1 += object.width / 2; + coords.y1 += object.height / 2; + coords.x2 += object.width / 2; + coords.y2 += object.height / 2; + } + else if (this.gradientUnits === 'objectBoundingBox') { + _convertValuesToPercentUnits(object, coords); + } + + if (this.type === 'linear') { + markup = [ + '' + ]; + } + else if (this.type === 'radial') { + markup = [ + '' + ]; + } + + for (var i = 0; i < this.colorStops.length; i++) { + markup.push( + '' + ); + } + + markup.push((this.type === 'linear' ? '' : '')); + + return markup.join(''); } }); @@ -4586,52 +4730,78 @@ fabric.util.string = { * @static * @memberof fabric.Gradient * @see http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement + * @see http://www.w3.org/TR/SVG/pservers.html#RadialGradientElement */ fromElement: function(el, instance) { /** * @example: * - * + * * * * * * OR * - * - * - * + * + * + * * * + * OR + * + * + * + * + * + * + * + * OR + * + * + * + * + * + * + * */ var colorStopEls = el.getElementsByTagName('stop'), - offset, - colorStops = { }, - coords = { - x1: el.getAttribute('x1') || 0, - y1: el.getAttribute('y1') || 0, - x2: el.getAttribute('x2') || '100%', - y2: el.getAttribute('y2') || 0 - }; + type = (el.nodeName === 'linearGradient' ? 'linear' : 'radial'), + gradientUnits = el.getAttribute('gradientUnits') || 'objectBoundingBox', + colorStops = [], + coords = { }; + + if (type === 'linear') { + coords = { + x1: el.getAttribute('x1') || 0, + y1: el.getAttribute('y1') || 0, + x2: el.getAttribute('x2') || '100%', + y2: el.getAttribute('y2') || 0 + }; + } + else if (type === 'radial') { + coords = { + x1: el.getAttribute('fx') || el.getAttribute('cx') || '50%', + y1: el.getAttribute('fy') || el.getAttribute('cy') || '50%', + r1: 0, + x2: el.getAttribute('cx') || '50%', + y2: el.getAttribute('cy') || '50%', + r2: el.getAttribute('r') || '50%' + }; + } for (var i = colorStopEls.length; i--; ) { - el = colorStopEls[i]; - offset = el.getAttribute('offset'); - - // convert percents to absolute values - offset = parseFloat(offset) / (/%$/.test(offset) ? 100 : 1); - colorStops[offset] = getColorStopFromStyle(el) || el.getAttribute('stop-color'); + colorStops.push(getColorStop(colorStopEls[i])); } _convertPercentUnitsToValues(instance, coords); return new fabric.Gradient({ - x1: coords.x1, - y1: coords.y1, - x2: coords.x2, - y2: coords.y2, + type: type, + coords: coords, + gradientUnits: gradientUnits, colorStops: colorStops }); }, @@ -4640,8 +4810,8 @@ fabric.util.string = { * Returns {@link fabric.Gradient} instance from its object representation * @method forObject * @static - * @param obj - * @param [options] + * @param {Object} obj + * @param {Object} [options] Options object * @memberof fabric.Gradient */ forObject: function(obj, options) { @@ -4651,11 +4821,15 @@ fabric.util.string = { } }); + /** + * @private + * @method _convertPercentUnitsToValues + */ function _convertPercentUnitsToValues(object, options) { for (var prop in options) { if (typeof options[prop] === 'string' && /^\d+%$/.test(options[prop])) { var percents = parseFloat(options[prop], 10); - if (prop === 'x1' || prop === 'x2') { + if (prop === 'x1' || prop === 'x2' || prop === 'r2') { options[prop] = fabric.util.toFixed(object.width * percents / 100, 2); } else if (prop === 'y1' || prop === 'y2') { @@ -4672,6 +4846,29 @@ fabric.util.string = { } } + /** + * @private + * @method _convertValuesToPercentUnits + */ + function _convertValuesToPercentUnits(object, options) { + for (var prop in options) { + // normalize rendering point (should be from center rather than top/left corner of the shape) + if (prop === 'x1' || prop === 'x2') { + options[prop] += fabric.util.toFixed(object.width / 2, 2); + } + else if (prop === 'y1' || prop === 'y2') { + options[prop] += fabric.util.toFixed(object.height / 2, 2); + } + // convert to percent units + if (prop === 'x1' || prop === 'x2' || prop === 'r2') { + options[prop] = fabric.util.toFixed(options[prop] / object.width * 100, 2) + '%'; + } + else if (prop === 'y1' || prop === 'y2') { + options[prop] = fabric.util.toFixed(options[prop] / object.height * 100, 2) + '%'; + } + } + } + /** * Parses an SVG document, returning all of the gradient declarations found in it * @static @@ -5389,7 +5586,14 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { * @method _tryParsingColor */ _tryParsingColor: function(color) { - var source = Color.sourceFromHex(color); + var source; + + if (color in Color.colorNameMap) { + color = Color.colorNameMap[color]; + } + + source = Color.sourceFromHex(color); + if (!source) { source = Color.sourceFromRgb(color); } @@ -5549,6 +5753,30 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { */ fabric.Color.reHex = /^#?([0-9a-f]{6}|[0-9a-f]{3})$/i; + /** + * Map of the 16 basic color names with HEX code + * @static + * @field + */ + fabric.Color.colorNameMap = { + 'aqua': '#00FFFF', + 'black': '#000000', + 'blue': '#0000FF', + 'fuchsia': '#FF00FF', + 'gray': '#808080', + 'green': '#008000', + 'lime': '#00FF00', + 'maroon': '#800000', + 'navy': '#000080', + 'olive': '#808000', + 'purple': '#800080', + 'red': '#FF0000', + 'silver': '#C0C0C0', + 'teal': '#008080', + 'white': '#FFFFFF', + 'yellow': '#FFFF00' + }; + /** * Returns new color object, when given a color in RGB format * @method fromRgb @@ -6199,7 +6427,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { this.fire('before:render'); if (this.clipTo) { - this._clipCanvas(canvasToDrawOn); + fabric.util.clipCanvas(this, canvasToDrawOn); } if (this.backgroundColor) { @@ -6252,17 +6480,6 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { return this; }, - /** - * @private - * @method _clipCanvas - */ - _clipCanvas: function(canvasToDrawOn) { - canvasToDrawOn.save(); - canvasToDrawOn.beginPath(); - this.clipTo(canvasToDrawOn); - canvasToDrawOn.clip(); - }, - /** * @private * @method _drawBackroundImage @@ -7147,7 +7364,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { * @param {Array} points Array of points * @return {String} SVG path */ - convertPointsToSVGPath: function(points, minX, maxX, minY, maxY) { + convertPointsToSVGPath: function(points, minX, maxX, minY) { var path = []; var p1 = new fabric.Point(points[0].x - minX, points[0].y - minY); var p2 = new fabric.Point(points[1].x - minX, points[1].y - minY); @@ -9432,6 +9649,13 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ includeDefaultValues: true, + /** + * Function that determines clipping of an object (context is passed as a first argument) + * @property + * @type Function + */ + clipTo: null, + /** * List of properties to consider when checking if state of an object is changed (fabric.Object#hasStateChanged); * as well as for history (undo/redo) purposes @@ -9588,7 +9812,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati "stroke: ", (this.stroke ? this.stroke : 'none'), "; ", "stroke-width: ", (this.strokeWidth ? this.strokeWidth : '0'), "; ", "stroke-dasharray: ", (this.strokeDashArray ? this.strokeDashArray.join(' ') : "; "), - "fill: ", (this.fill ? this.fill : 'none'), "; ", + "fill: ", (this.fill ? (this.fill && this.fill.toLive ? 'url(#SVGID_' + this.fill.id + ')' : this.fill) : 'none'), "; ", "opacity: ", (this.opacity ? this.opacity : '1'), ";", (this.visible ? '' : " visibility: hidden;") ].join(""); @@ -9771,7 +9995,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ render: function(ctx, noTransform) { - // do not render if width or height are zeros + // do not render if width/height are zeros or object is not visible if (this.width === 0 || this.height === 0 || !this.visible) return; ctx.save(); @@ -9810,7 +10034,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati } this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); this._render(ctx, noTransform); + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.active && !noTransform) { @@ -10015,12 +10241,35 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati }, /** - * Sets gradient fill of an object - * @method setGradientFill - * @param {Object} options + * Sets gradient (fill or stroke) of an object + * @method setGradient + * @param {String} property Property name 'stroke' or 'fill' + * @param {Object} [options] Options object */ - setGradientFill: function(options) { - this.set('fill', fabric.Gradient.forObject(this, options)); + setGradient: function(property, options) { + options || (options = { }); + + var gradient = {colorStops: []}; + + gradient.type = options.type || (options.r1 || options.r2 ? 'radial' : 'linear'); + gradient.coords = { + x1: options.x1, + y1: options.y1, + x2: options.x2, + y2: options.y2 + }; + + if (options.r1 || options.r2) { + gradient.coords.r1 = options.r1; + gradient.coords.r2 = options.r2; + } + + for (var position in options.colorStops) { + var color = new fabric.Color(options.colorStops[position]); + gradient.colorStops.push({offset: position, color: color.toRgb(), opacity: color.getAlpha()}); + } + + this.set(property, fabric.Gradient.forObject(this, gradient)); }, /** @@ -10228,6 +10477,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ fabric.Object.NUM_FRACTION_DIGITS = 2; + /** + * @static + * @type Number + */ + fabric.Object.__uid = 0; + })(typeof exports !== 'undefined' ? exports : this); (function() { @@ -11378,15 +11633,23 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - return [ + var markup = []; + + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, true)); + } + + markup.push( '' - ].join(''); + 'x1="', this.get('x1'), + '" y1="', this.get('y1'), + '" x2="', this.get('x2'), + '" y2="', this.get('y2'), + '" style="', this.getSvgStyles(), + '"/>' + ); + + return markup.join(''); } }); @@ -11490,12 +11753,25 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - return (''); + var markup = []; + + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( + '' + ); + + return markup.join(''); }, /** @@ -11689,8 +11965,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - - var widthBy2 = this.width / 2, + var markup = [], + widthBy2 = this.width / 2, heightBy2 = this.height / 2; var points = [ @@ -11699,11 +11975,22 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati widthBy2 + " " + heightBy2 ].join(","); - return ''; + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, true)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, true)); + } + + markup.push( + '' + ); + + return markup.join(''); } }); @@ -11746,6 +12033,20 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ type: 'ellipse', + /** + * Horizontal radius + * @property + * @type Number + */ + rx: 0, + + /** + * Vertical radius + * @property + * @type Number + */ + ry: 0, + /** * Constructor * @method initialize @@ -11783,14 +12084,25 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - return [ + var markup = []; + + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( '' - ].join(''); + 'rx="', this.get('rx'), + '" ry="', this.get('ry'), + '" style="', this.getSvgStyles(), + '" transform="', this.getSvgTransform(), + '"/>' + ); + + return markup.join(''); }, /** @@ -12127,13 +12439,26 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - return ''; + var markup = []; + + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( + '' + ); + + return markup.join(''); } }); @@ -12251,18 +12576,29 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - var points = []; + var points = [], + markup = []; + for (var i = 0, len = this.points.length; i < len; i++) { points.push(toFixed(this.points[i].x, 2), ',', toFixed(this.points[i].y, 2), ' '); } - return [ + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( '' - ].join(''); + 'points="', points.join(''), + '" style="', this.getSvgStyles(), + '" transform="', this.getSvgTransform(), + '"/>' + ); + + return markup.join(''); }, /** @@ -12435,18 +12771,29 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - var points = []; + var points = [], + markup = []; + for (var i = 0, len = this.points.length; i < len; i++) { points.push(toFixed(this.points[i].x, 2), ',', toFixed(this.points[i].y, 2), ' '); } - return [ + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, false)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, false)); + } + + markup.push( '' - ].join(''); + 'points="', points.join(''), + '" style="', this.getSvgStyles(), + '" transform="', this.getSvgTransform(), + '"/>' + ); + + return markup.join(''); }, /** @@ -13082,14 +13429,16 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati ? this.stroke.toLive(ctx) : this.stroke; } - ctx.beginPath(); - this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); + + ctx.beginPath(); this._render(ctx); if (this.fill) { ctx.fill(); } + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.stroke) { @@ -13155,20 +13504,33 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {String} svg representation of an instance */ toSVG: function() { - var chunks = []; + var chunks = [], + markup = []; + for (var i = 0, len = this.path.length; i < len; i++) { chunks.push(this.path[i].join(' ')); } var path = chunks.join(' '); - return [ + if (this.fill && this.fill.toLive) { + markup.push(this.fill.toSVG(this, true)); + } + if (this.stroke && this.stroke.toLive) { + markup.push(this.stroke.toSVG(this, true)); + } + + markup.push( '', '', + 'd="', path, + '" style="', this.getSvgStyles(), + '" transform="translate(', (-this.width / 2), ' ', (-this.height/2), ')', + '" stroke-linecap="round" ', + '/>', '' - ].join(''); + ); + + return markup.join(''); }, /** @@ -13389,6 +13751,10 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @param {CanvasRenderingContext2D} ctx Context to render this instance on */ render: function(ctx) { + + // do not render if object is not visible + if (!this.visible) return; + ctx.save(); var m = this.transformMatrix; @@ -13399,9 +13765,11 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati this.transform(ctx); this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); for (var i = 0, l = this.paths.length; i < l; ++i) { this.paths[i].render(ctx, true); } + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.active) { @@ -13809,6 +14177,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati var groupScaleFactor = Math.max(this.scaleX, this.scaleY); + this.clipTo && fabric.util.clipContext(this, ctx); + //The array is now sorted in order of highest first, so start from end. for (var i = this.objects.length; i > 0; i--) { @@ -13824,6 +14194,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati object.borderScaleFactor = originalScaleFactor; object.hasRotatingPoint = originalHasRotatingPoint; } + this.clipTo && ctx.restore(); if (!noTransform && this.active) { this.drawBorders(ctx); @@ -14235,7 +14606,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati } this._setShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); this._render(ctx); + this.clipTo && ctx.restore(); this._removeShadow(ctx); if (this.active && !noTransform) { @@ -15740,10 +16113,12 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { } this._setTextShadow(ctx); + this.clipTo && fabric.util.clipContext(this, ctx); this._renderTextFill(ctx, textLines); + this._renderTextStroke(ctx, textLines); + this.clipTo && ctx.restore(); this.textShadow && ctx.restore(); - this._renderTextStroke(ctx, textLines); if (this.textAlign !== 'left' && this.textAlign !== 'justify') { ctx.restore(); } @@ -16533,7 +16908,7 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { var origSetWidth = fabric.StaticCanvas.prototype.setWidth; fabric.StaticCanvas.prototype.setWidth = function(width) { - origSetWidth.call(this); + origSetWidth.call(this, width); this.nodeCanvas.width = width; return this; }; @@ -16543,7 +16918,7 @@ fabric.Image.filters.Pixelate.fromObject = function(object) { var origSetHeight = fabric.StaticCanvas.prototype.setHeight; fabric.StaticCanvas.prototype.setHeight = function(height) { - origSetHeight.call(this); + origSetHeight.call(this, height); this.nodeCanvas.height = height; return this; }; diff --git a/dist/all.min.js b/dist/all.min.js index cc5f2505..811cfcf8 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,6 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.0.13"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==1/0&&r!==-1/0&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&&(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+ -t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t=n.sourceFromHex(e);t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,t){if(this.width===0||this.height===0||!this.visible)return;e.save();var n=this.transformMatrix;n&&!this.group&&e.setTransform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),n&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(n[0],n[1],n[2],n[3],n[4],n[5])),this._setShadow(e),this._render(e,t),this._removeShadow(e),this.active&&!t&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow -:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradientFill:function(e){this.set("fill",t.Gradient.forObject(this,e))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){return[""].join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){return'"},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=this.width/2,t=this.height/2,n=[-e+" "+t,"0 "+ -t,e+" "+t].join(",");return'"}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){return[""].join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){return'"}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[];for(var t=0,r=this.points.length;t"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n"].join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[];for(var t=0,n=this.path.length;t',"',""].join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,t){e.save(),this.transform(e);var n=Math.max(this.scaleX,this.scaleY);for(var r=this.objects.length;r>0;r--){var i=this.objects[r-1],s=i.borderScaleFactor,o=i.hasRotatingPoint;i.borderScaleFactor=n,i.hasRotatingPoint=!1,i.render(e),i.borderScaleFactor=s,i.hasRotatingPoint=o}!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var t=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,t),this.height=this._getTextHeight(e,t),this._renderTextBackground(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this._renderTextFill(e,t),this.textShadow&&e.restore(),this._renderTextStroke(e,t),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,t),this._setBoundaries(e,t),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.0"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&& +(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,n){e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this.objects.length;i>0;i--){var s=this.objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+ +r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 2a84ef5f08fbecb4a4f16621d3c71d25a82b7529..6b3be75c2b11b8a4f1a06d4af3b15768253e0bc8 100644 GIT binary patch delta 45692 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

  • 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 E019{#Y5)KL delta 44406 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

    EUPG}p98iBqzkmfGfjC%#?YYd%M5atln*4pBs1 zO%l(B89=zplXAp6h>6AOPs~lR9RlGKh}44AOtNa9zR>m67cbA*k5V5`ja9z;}t#7;97t0-E*r{ zZun}88q;8Z1>+=a6DvPZVr7~%d^yC4J}}2e4&LVR1K`pSi_ATRY2lC~;1x<$Of40` z=*h2$^oh)4(B&npmBOq6VRhe1k%{b_XU#$Bu%Fa{C3Ip04gG30n>mh9ff?Yq4@C)k zEj8mbn_|`gtfhy5(IrJw4B$0Sfxd^r?l24{lpu(I1RYI85!1zlY!pQ?vH+lZmn2-k z`o{u4K!W$g5;{Nu_dv)cvi^MJ1jkdT2af@&D=Z29TV|GdYzpQFL&1}YCJHf7@t#%; z7Ug`AO;ckP86>9=gRj$7X-TFZo49Z~QMjF;M?NM%2w=pT1V6ug9x@AXv_vY=U;w-qt|X2i*z|xR~0rt?stQz2iKyxjzX=YOsnI} z%aM?wb$F%hCdhIxxc*Ljo(yuME`tGTdoeQhmbu2E;;+`wwtyLu9o{#k;*?2#O;?qFxh&0hj^vsj%bml-<5LMgwjVw{??M4Yka`qh>#7a9Wj9BWi0$ z;^|5}u2b4?etGxo=a)}jfB)l)ShmRKu8kKb*o}B2)O|4rwy^bCIN>X7bt{#Ao!LlH z{$`K0<(KZmEmL)``=(0vgnAHvsPD|EJy8ab_Uvve%S;#Es&TVR9bCW#ftFU(?xn>R zpw^Wye4vEBof0r1^HK?eSg_w7VR+u+`AH=Y0;yJHZ9`=IrLacRJ5-LELNsYbab&IU z65=s}_x~i!?j@;;`<`4!?+3DPd>z;Gf=qi2od)M@J81 zLO5E*94>ww!;djOI2aA3I||7H{{7XDFWNht2ZnEw@N3gG_IixHtc7jlvNeCl9KK|| zq^qLYIg3WpZs&$J)7t=usan`z3}Jzh)_akw3p`DLXlQ#G3TdFQP21@Zk#a;wG>@2r+H~>m$w{qeu<^ znd3jJFze5vlbV0c#jlz86=J4`=jkZ=%vBYuE+$ToWmglc}zT<8=I z?BP(()S~xjDCYU%BjRO z$A3D;G>;yBL1`WW8-6?(eewHF@bTx&@Nvf!e?``?WnS02rdg-lmoQ)GvUB5u90>nw z$gi$+JJ!26YjK4mYLh4o|POG|ST#xpr(n4K-LN_UVu_)@DEEy%*cg{;H zG3USk!kMP};@UwMR@2Pr!Z6Ks8V(+@_FxS>tfd)%m6c|MaV|Cg-?lku)hZLn>N1Lqug z;sS~FVOaNn7tzsYPk$GCy!AHL8um|J6~3~%7s+eX;@+_+FwMS;V1hOYFsbyHr0M@s z9zml_=++?Igo0`fM_(eUgi00+Z-U-RJeNUj$5D(aW?dbTf9KD z<&apEO!6T!$!yF&`+7#bPV@kDuREOCPhDr2w|iZG!L+_#%vZZ_|0?0WD{QgM{<%VW z!#{+V3x;ya#gDtYvti8t8;QTebB}tL_feXk44doa)8>YkqqRm+UzM_{33A@}O<60K zGH^1m+02%mVf2aQsI7e>?Dlr;6QQclGGYxm-iSRzSpF0|n=fFs7N`V-oD%J=l?3ER zu3Acey=LhOmVSoVJ0x^ccKxbnmo{FWOvg)WZ)Ndynz_l|pIp;+Tck^>`#sc6vgnzVMbD)ydJ+p> z>1y-2mm^tyVz;JywaOLpsf$(S=e7EO``GcDuaDZ4-*S8P8uGLdeK2q;(gIJUE*$gf(Vuqs|;_*zGpBRE5U+d&P~ z+J258WvtF*7PTfJ<%MnD5-SqL46|45fdxlV*u);@jR&S zWbc%Uaf>eOi7i0eb}M2k4w+Ve55>>kgCIUIw}p<@fl7bWr&1?$7M`vky`_UGG+NaR zrD=L^Xt_-PYmsr3!ravnR37Vz*7 zENoMBZ)vZS8&DG&;aK z35-YvC3X)6rptDq_oz^@FjkTWqW=lV_}XK%F?82#1}czOs` z`rNknfCz=GTAjWvk1WTJO49`kU@!D&Wo3`7nMSIBszjp2udO*V;?)vFd{Lq|!Vb)e z_{XYlirG3~9BhV8FwIfy90>G=vy@lCsj2y!7^=PsI9LtO$3o?Qwfcvka{ivbVw7zi z*J)v*_i9Jv$BdQFenmD(pBHA6VJyB<%h-%?_sh_?IIY}1O9XSnv{9v9ptf5RwgT4I zbBS_}B_hP8)Oe7QXqYV>%SgJbYh*6*_R2X|k&ilbk2Y5MEg0do-b5Sjo!&-mo#s!1 zw2wPc-T4&V0qxFzCt;nFZ}lLXFR!wTyeTGuh~wSh9Q8SMTaVl~@CB=3o{8mvGimMS zE%GKkfMW98kmSfaqGx`gk$O~KMy&neIIVDMOKOxhBsA3QwSOSu|PUnA-K6jEbkrRBY;zc#yZCY zmpJ3HRJ7sG(12gzjHBbYqj`K~NFbMRYED%WC4r$Htj?C_an-v*l(eg!Q!_@2ntBs~ zrlh;Am<&nMKK~%+EaucO#N=zbd8pXy!~7rpwh(oR+qJCcdn$OoS7E{TAdqgVCV|S%?#36q(!~(Jty;36fF=tZ1!oF|cy}zEb5c7wB ztjsR+Dz$BuV2;YX`tJ1)&-Fo=h)|YYE6IXpaY(jsS;WEHDqu(V>v^sQGW86rOf%0L zI5%FQ8CiLmDj9da1J$Ah?eH5qxcYS1NE$0OJ{qvo>i;(R-wvta$I9@2Cvl?fRO^3| zq|kU&pd{+k3wdGK%XuVa68u<|acWI}qf1B=rpty*u@!Lis70Mi$Nj7VOzfz&KT0g} z-_Nb9xk~1h>zFJD3usngxPOos7Uhwm-F zw=FTZmoEvYN+My!!3hQ*1hKO>PU#h-KckQIZSWvy9nryqw{RBI8yrRxIs|f@ zdcx>+DjAL|>2$8CVXO{r$ZuRY@6CE1*$6Ot`XQ)xPMAK-xPI9NYO;NR&QCXb79 zlH`XA=W5VV&*(hKdm+_x+MQ$=(d^@5(ZWRFS`EuBwOac zT+eBodAZ=Ipc@XDa28X{dOdZ{s8yp5DQn$Gqi_NNTi`!JaRwHT|DxKSPN`UMQlS_6 zV0$l}@?c=(gxYsm9h$z{px|lc!dx%EfPJMlH5UXIQpDiyu7@i1P=(q z&+)V42s3Ks8Am?;5eyg}KV8rVI4WMWeD+JF6*I)HTV@&sN4sw&FOJ$V=HT!&3eW!j z_UQaD3f~fk@OJQjk2*R+Uzxzy^n!nT7|7R6uMeu2fH@T+;%*ffMi3w!6h8*Yr^0?1 zT-kwUnhp$3=s>Yw2M&*80fmUh?bg@hgdx9=#klGS-BacE0gSLSH|fFc0N>^Xv`pi{ z8u5=)H1;d>h2^P7p)V{6PNb4Pb6YK^x9AdKVI)B$%!lxQmRO4dmp=-WU~$uLx=j7A z5QRVJeu~0gFP34{r=LPR1kng4wuvo$rYDn0Ue}ANmKuehgneoV&JcVJZqqib&Cf5N z^H|~~yhy)${rabYOn7^>sGAZoq^p7a8DlN*jeq#MSt7ifg?Ql`st4^UcCJJo1b5O{Y(PQFwBqtU!D8q(UphTP(layI)g8{VSOqWy7e*EDlTs&1u2uG^% zH`nv&;u;^;REij(l~jUNHHYruYSUp?O@pZLECNegP=PVS(RM%xj!orr1XL2(x_&Gt z1B|$Tg_&2y!9`JK)fzFf2`&=#*2sw(0$i2!R>wyJ*G#y8N`6Z75fKX?a@ie)M2Ve| zyMGTeT1%s%gnIMJ)~rg zvlmypLSb-44_4k5aRM)(8Lb+%L?S+k%t94^NEF3DfzQNpMW?mmryw1%O*&W^%4m^< z?t3+` z60hDP!g5h^W>w0YUrR zX)X^I_{6u2RA4RP@3>Z@)Zt};2jQm|-|`{svC=2zP1ob*2&4U~`1hZ_ZqJH%03z0vcbo+YS?2QyTlmB z*cz~;J*Kg4YvQyW{UI-&7w_%GM3n_L|P@dJE?fU*4k*}Dg^IKNRW zZ&w#Q@En9By&qv5_7T6<;%iM`H^(CGnBv6O8owStIPcml)J&UHett72H-BbRCTpW9 zuw>|?qL0~)*`L|k=nu5n(p(tVUAu~$6Y!ZEoFGe$9pI&-nrQ5pTJ9JIZ}=m6m_48? zjmi8c-i*9OeI@b+Jq^YtPoE&HL1*G57-QW>j~{3+3Bo<0Z$SkoNA_}h93&8C&)s8s z@>Gv?4l0EgXH#D9JDDgJlD%cZk7SWEbRIH&oG}CHBGk@fJg=h0TEY4=< z8lk*l*XNdlFhP8oZK)-@k~vJu!sJO-8#K;bR4xmY8xS8Qfl`p`O$zr`TAEwHkwyvA zOXX1vrGDL9d6h5W3zjbZMOV?=x%44Y~|-jH>INb0M}WN+)<+Yg6?95gt58{y}z)MX>}HG0@< zRYd0Q7I;JI#76Nge)7sGjIcp^P0 z>Vs@fw)F=}|490(6gktP_a@DG^4DoY*F$S+3@h=HH_1&eAKZu> z=slJ1ld8K}syZVh+aC4mT4kNWJ?yS3`?|?}?x^ip zlX^o;0t3;L$U{h6hQq?g7$3#aTS5TF)25IFMVmA?hfS|MM9`1xVoK*ytHfQcJUaHZ z5^ky+^7ztO6g#IXWSPJ}+(fY*xQ=lrV?o)?u7a`~PeC$J6{K7Pw6Qfr*MeAFiq`b( zlWasGV?hhytK4ip=@o4odE7}H_acqoBZOz2Q>iTqX-4iKlx9+(mv(?jJRNc=Mjml( zR<)d}CB1jT-3&+|K^k?;7pD^!h{#G@cco6voYL_MI+%BwT*wcUJCeIaV{uh%`a^Gq zlkh|?e<~68NEd>Y99BoOc#>vEv+?jGo!`GdKS@XT@5ArO{reO6O~&xF83VJwsPS%% zC##;bw|1z!H`ndJCC%U52Kc{375ZXvV3*74*JKuTcbAa~ze@ZRik|>g!dDet#7|k3 z&FA@CYm_XuPtQ-RI@59tB7_Yc4Kw`~7(mhEN5x4^=+M$W1ktrK_!BOAqv(${syum? z2i1v|nB!t#uETI9hE+*H3pvh)pTa`!0C!S~?w*TY`#NvBQTKM;v8>dRu|ga2ljKDw z5uL8QoV%M->H$KyVe-{m)C5srQ=tO$G(%p?88p@*bl zMJ1EZMjT-}swBt=dZ?gHY#VA^iyz15s3* zlT1e#J=*nxQ8SmAxGXk{Z>wxgD!Y3PxKbYsap(^R4{0I~2ao7_;_hyA{3pmSd=8hn8fC`fPQ67>*E~XMsP9$X*py*Q(g4L$bND>yh95dv; z{~OhtRS+pV4_LQ3I(>`U(353IF9L*Ola@$60ZxMAnG&s4QGj%L9QX|<2Ic|jrZRFVoZ@3o34@I6sJ|D) ze<~FMWZ!TbzEInqVRmM@b<9nZ0FGxB^gSBNc!GWu`Vu2I0ywf9c4l&KC`qs?!u%Ev z0?i zaQD^S;O8dBb#PyF&cGLw$~?vkfQN0F1i%C5(u&%4A{t>!Z`%_uTBsY_3zkyB z-j`f7&S)rQP%FitS8d6ZRiMjg2}f6VcP9C>=gp*lc8u>3_c^}sB#Z<4?8{Xu6kt(Y z%6yU_Q}4)P$2aF<2SQzx17EBp5?NND&q>d4>O~g@$J2ntLWDrkMY3pmDA{*xgV~Xe zr-e=?r@Y)1Cg#mExb2oTMha8anA9!Wb!^Woj9F!76|-}@I0ZE^n^@R~keS5)=HDJ* zL_?F&Od|qsuaovnAb(t`k?vcdB+JfZ@1|Aup-mR=DYP&=jpfF1xobr<5wz>8MFoAU z>B%?Xgo(R7?=g|Kbx(#1F@jgIkCTc{9a8#KqZ1$RMW(PoVpXg64|5%AKc$2z?OWdj zE#2!?QFyPsyOYzU&W`H*{{4F;O%_ae9lEgyqoErowZ6>+?9oZ6C7g-%BCuV>abvDY zqb>v$lle}L5wDI)NJiuPN~To!@cyl&K^v2pPaifduEOY(K5&W2qvgn49@Jtl=iHiH z8*`mOIlZS30(ACzrC?pHv!gt}yK4mrF}p_VbbBH!_>=8VCO6{OYy&IE@zA`^n!CGT ziT=kCwEn_s$7(bQ~k-Z{nOqN5?>dCR7kN@H_vdoLFy04U@r969N2_ z)lnmVFnEtKsVmf#DSjaE`cOmd$9CNxUyhxV%X5->07uGHI|Hy-G7Ab{k}iRen(F* zHNEw?AGRJmz1K1V3GaGy-FlJhdQkOd(vPiw?dwWtKVGM;B%+P2hjaf;ru7uwPDfPF z6xl2n%N2s-BC-3aS^(476uA)JlqkR{+weJU2Knq9F9X0j!r@;3ROQ+A1wM-kWzGjD zr#IL0184?5c%;E-Fht0btej?uwS!*Kf`d~6lb4LW;dglQq) z5tKI?4W`XBc>I81I|befR1?Gxpm}ATddfN;4u_bR>Y`K$LD2isj{fqOzZ_94r8c@d zvN7?Ed;9~6(Gd6sN5*mfJ$28!ZTP`|{Pcl9gVE6f6XxJS&zG-<6|puDb}^|DkSGms zF7xVr&fXBFc|Cdjl-@9>2OnUu9DKv8=pQuoF|FE z9BPHMS&8ILWvoOkP7ZO=QSM}11FVj*ZTuX1tduiH#AJNN=c)*0~ zzEy#EMdj|=P4wI%$mFY>zFv^yS)ca1^8oG23J0sQzA9$!gQ=E$7`1KU3)CZjy@305 z=|}3=RhxJU*`q4#7Ix}GhCoprqG4689%)>>Bq3(QYV9Sk>5s<6<8(Og_mz!luI)E# zWZlG!+Y-*=JVFr4qLwm$s3|5b%I?H&P-kA&IIGb$Yr(D#Hk+MeC>BmdFW;NC9>BJ_ z`({z$fNl}B>m6TND;N&|Y%B_68->QL2Ni45uzM`OK*tm*IM;8mu&E=x*v`?k8QXZt1 z4qaGzl&a$3daEc5f$i-j&fI-h72%6ZP2Tx5W&kqoUd8CC1xsr>4y(4E#D(y@9 zj?~K~#|!fOjRSmtAs;k|EaQ@8y>Svq#ic7OKWfH^*QT^84=qGGzmZ-Q0n*y;@UJ z;kqXmu6xXXQ4JCs1hBNm+%m{wuRBU6@8)c@xPDtU^VuswZ^ep1Y&~=RW0_wD_{M&3 zD4YgY(d|Zh-Wg9>c$OGF-R!fCaNT+z>C8mDBM1w!3)EmwFL&&h^tvduhdU9J-7s#! zH&vcLt1>uw)7uH3%LF3v(`=dYuYZR|!JVGY zDQG&}IMMqP@IxYJ*B}kv0Y|Z_&{5QUEyw%bFgBBTZw)4^FxJ5F1}+bwWwCUchf-;> z%Si}-RjYBp%${#}@pr?UA)i5;zscUnAQL>4$Ug{ z(<@xm8-{Uty$}^xDPvhKo-#MaS9Wt_#jUNlHNUtyZSW8)AnOJGQxl>F;til3_X_xC zYX)nlr9B>rvhFjV)Mz zsEzD2qqjH~2|D;fJiK*6&_OsNNkw7MfB01(T9|)`Er4MYi0BL(V(lBm8M*1Bvr71} z?ze!62w8*^j5xtq9Gk%pP;pan~C1Qn4ieHfp2v?hf^YR^h5`L)vZakop8Y$G80lnWjAQ0 z*niszg-o?4sVHGD19>G{`J|jafpajk?QM3_gV8P`H<`or$a6Z{X9!RYDJ3IT0foyy z91P)q|3Uxa|DNN&f!!vP)EE}+;!Kk#MK83DioO+zkL#6{er=~;Tj>#ca@;|GnzCww zfbsD|;EM@?@A9?);;b-#@9?Z4XCqz|YQ?&!j@MesL3>a2+H zw(5$T!7j*srB`c*3N#_8a^r-_0kSRTWF>B}D%H5?TZDin@53HBLh>EO}Wx`KWr`hX7oUJC;h z_aiSz$|_3hMs7nYm>DQudtny1;cPxDw6$(mWkFW^%9S$O^RwoK6=aAr2sJnnNeU%ke5RA$=7b#LK+;skq7KuSqWcO;Jv978>>SdNGIjfMt;kV|R(Q?yX7@bSo*S7oj4J&MaBV0VQ>ZSiTY0PI^vGVHwSkzya8V#o;p41 zl%2a>AEPT&97R@UBGJt+0m4XB#U+wQR#E%~S-4ihH|>OP+=N2)N+%OaS5_j{q0(tc zdnzAf^X7l&YpD}z@50kirvC*!9dj(Z9}~g!oJ*#tr*L0Dq2MonuZqhu?T-@cdladv z-}sAqgGF5|nr3mW%6j9J^~Nph7gdrjUIj&o(N3e|BFM#(FSART4WIR-VWTC{obDu7%GAAeQEP$nD9G%`9!ghwW>^5y{*KAc{l)K#E?GbN$ zX^Hj>c)a6;(w0V_O{R^Ga?gk2=strDadq{#*B=Hs+jcojZ8&T|FhQHgUD2ma zKkbT3nsgYK-C4^mS<6)DMlVpHvPvsk{)-y@U3m|W(PCh0ta+Jw2sfw|iH+5bs+WGj zGc`*&25vv&MLIi42{~bb)`X*oAByBsHfVswRaS7PLVNTpgl~F^G0G&T>-5$80QX~; z@tcr+0z1`zz?yaJ*dhqR$2bVi2lR*wCnTH2ua;Y=fJRpiU;$kQxLs3p$Wcj7*Lqli z%O%Xr&W#(_et0Qh*t90SI$aht7LNZ>!PCMM59!>x-{K?Y{(L2iU!yPU(Aip83jXnq-$f< zOS)BidZd^Dmo1TM09Bmvx+-EG)}#_-nZMu2?>EZR3*5r{6`yI+&kJ10`=}qfj0KfR zR^r#2B#ZMK%oFEpOvf76B0pWsC|`4xH(64K)qpUZqnP!ED(T!;HcAs$U@0|qOh%iI zo+=uDm)`no-r4PTk7Qk5{)k1{ym!CL%ITbU-}A*~3zEx6bfmafdl8abQ7WOhyP9lN zY3D|+sWCL@U-p2CB8RQk4wz}$QMw;P|(3BY6}Z|)^=rNoja!lf`}IY zeBAkYIYpQNb*rO6=26jOOg`R~wF$akM))Ir|$+TY%CJRW0u3j{WOG5HnW%<)$83wxh4*!R5OwQu>j!QpHb^TsHD zh8g_rrM#gniTl~p8HdGcm7&eV8JrQx7xyqmC-JIrc)N#t8FUe4+pX|7EQ4DB|0?lF zn3<>tYN%f?exx%-0?#Y64-NoURI%}u;@RUF7O{A~fO^D(iviokGS+?}jy?E6JgBdr zapk$+%+Tu)+(oQ7eUG8&%DD3!9>)-WcEVu(=GDmjigW|43(yQ58yS_oaVuM^%HF8T z)@EgItjgYSWn=k{AddKn{P{+CG0)KyY`%tC?!gS*Tk(>(N}>23^e0}XwQ>>f-b;J6 zqEgP)7Gjog*1+r^9`|cgihOw78;$2_E63s0(GuF%s)NF7`zAe)tPr>|PXzRTT6xM2 z*|9suO8l8cQ0OWT4&6C)?&c_zfLyAnzx6G}) zlrs`D`O~5%RGF{Vd=7+}ccY?zXoi^Dk3O0u{`WiS-Wis^6ql$ueJR9gik^#0RRL-9 zb)Rmr{hF932)OC<1-D-d`O69tHdd%WJ)&dr+|k z6H1Go2)rcRMTnp!la6BX^9}z5f{2X?QS-)zLD&h#pq_s%2_LC&(5Z`m0t6ffxXvKw z0#pNt^Eh|GR&42RoNK@o6xa8|^6~I=nDmMFfq4ik{zkK}coDVL8QRj@*rOfclL;%N zthN|gy8ReQ=ZY#%n%`;U3=q#7tY9UyI?G8091%7{=@~SuvIxr%-DGmj z;T=c}cUlUq`ua?^{=AiMWB4kG@g^m@xjMQS**+KFDoTVGPm za(Uo%JXp8wr+<$YjscdsdmOCfbnI#$_X63L#{hrtkw+rhQbH5Q(R%7hJ>__M+kORZ zbyv-erN4oHq1_nAaWF031Ca=5+JnSAD#XM3#^#35PlujKRcCx_Sc7VF1_sDAEjta2 z4vt)ki%}BL-h+cOaH_n{ew9$*KbLw3IxWCaa+li{<0a8RG|2eim}1EGVH`Jo>>YtT zzSWJ-F6zY`<~0flNjYwSjXSd@bBsMlngFB$F9T2SCAOTN*xL8fDUa|RAK6Q&Q+N>p2s5wo_RHl8M zrcvS)O|60~^B_6dw@sAA3HGCRh4MgfMC`gxceF5dj zuZ^PznoXz5p_I=Tm5Qu7)JH8^Xla~w&h4$CkLKS3!mh+H-Ar2{hRdF|)n?iX=}i8A z^D=e5eM#BIGqpdhgnL?v#vM!VG;F-KsST#8VdpkpgVrsXIt^NdvN277rD}ZtJ_4_6o>D$(rn_46DI@xu&GaYi#ceC_GiLe+7uO{RDwE@x zCE)UqiL^tMO0-!7~bOIj$>Zbu3G+^4|p4~1iN11Gc`ngQufkS=DGRzadYrvhp&YhLMfMBQAB_v>#|>H-M2klv1zBHD+`1+CSNtj5b?UW&KD~K5;nT+ zE^iY*8g^|0xeSC(7J<|oiS$M>_HK(Kpxp}`Fv3u#dq*ftnE` z#!a|?zw3x}oe)`Pfl{@z_3GQlK+DctdrdHtwQaW@?+QFp%vtSwU>M2(l~3!q77GPkLN2!PTvE;3Gimrar$|L_Vbc9jSnQ*JEFX(J9#_N4 z?v$(LNh;B@W3K)sMVj7!*&XG?>RyL7<~HPT_xTWY_>JAxR^O&pY!{bVD@17v^KPne zOpRpbI*JQJDcOG_Za-_4p~}ac$h#Dt>A_@2#dGC%!jnWkIdtYmwL0T0X>lRqEa}|; z9lQX-(e8INc=o)4d)UK!l3A4S=HaIFz6Dt-IBrpVYPXjab8+^6!DG-g`#7M-P}mkk zNXxYHKbFO;;+T4$%K8PWG?4CN>U%T8__etmpu5s%hxWtaXQ67}TNI7T*k_!<%F`O? zY}-q%%{bvRZTp4Q_8w_O*aFMinj(w98}3>=DJ|(RcaFU5Mb4_Up`} zrmFbUPU`^d)v)uN(mfD%E0U0y8h_y`&b%m(q`8Nzo#KDCO@!o)woVpTph}LSt}@+8 zIt{h$f)G}>Y@koO_-+yKgv%5qN{XfxxoIGPYTldUY}lE9R72$6=$w#`Xv5b+PuSm- zSm_Z*zUdJcr;nPQeTVxOwNP4ZQr<#8yD@t$6K~R2iE_GJ0RNSSVVMf!fSE6 z`uJu!w=iuUzhApm#kn8db<;(LcifdsVr?qtDiV>{qF&>I;3J9_zFgH!mSTZ|(s9ov zn7$Sp52x>cy#kKzLK_&B$jf_@YS(%E+g_C%9i| zM2XUim*V6k-fhor+tD_>fdsG{5=4lt1mS&Y=>V;`{pOc<&whUS%ElkpyFL=UCl?m>)qOWr*c&}sfx;OthSz(ha4BM`CjY8SGtPb5HxS8&eA;kbma%_f#d?{9VF3VE`nl_pPrz)wCz z1)cUJ=rlM)n9CR;XB^)r%E;v_J3MTqG#l6H1+0~8rwg!F4iOQTHU%am-uw6K`}Zq8 z;G?8q&y1$K6V)AaR6;wA-I127u)Gy?cQ^F73d`LPPG&Z`7L6{9MoV{+s?(ksAWJ`M z2JALl4qo-Z6tWHqyVn|7f{(F(J=$1_6zz)iy2DThK1cqU#OPb#cuN znOWHC%y)v`&@4BAO=vpRMWrIEkR2XMeT7!g#;_W6IU~l#P$iVjqp(ir0Ur*v=;^v^qX(>?g7 z1PU5SgrHG8gZ1_cqDA75H~2%k02{@`N+vio2%CSO6D0(KwQ$1@s#27yoNZ!kTnbg;Ft z`CB4*@|Ok_&kKpLvqO7b1#;|KDWzs0ZaKKlDFju-I<6jO(JL zRL_g+qDcnBQLIf`aID@Jbs>Hl-jl_rK&%sAmgEh?Dl>p}w~{Z09SER47pqtZA2M=$ z5OY}h=S)yQa)9f9hh47;=V}MMa`?}i16noo@0$Z!B?n^F9O$(|Ui=P>xj7K4SNwf* zz>{%c%+P@|KL>Kg4_bqN;0*nN9^(U^&;v2f0r@h5^Bdu|J6u4>$46v{mKa#G>KrEj z7NLQ2$Nd8%8=x8<{vD7T%vUgUz+K!6Ind0q`zkAGqI~;5wGf1=KEMa|FUWj)3&n?PS>u5!&U!Y@$Pc~E+|mc$FphG$C-@k zI6$Q)Z)tKWt+M5tb;A;H)!ZgV6B+6F!JK#fyk<;?9Vlx@*Uuf09hdXPMK*sjUtS4| zez9Xr=yMl;D`}i-TqV=t0>7h%>`YhP_yiV+&>UhY9-(K5+x4_RN~E%!0OZlJZ#cHg z^|f@gBW~$0e*WRzH!q(&MPcH*XWxJO{p(jib(vOCktCgy#EN?>G-4#dG6LTSJUwBy zN&bc-Mz`Z2LTOQOdcqu%Z5bm;+eEPNc?97^J;ZB&k#bc=yT$epZ3RiU&=_cu6>hE$ zkR*mjQ|uPw!>Pmxl+|#sMWT#whC6X7mXSaODgZ!p?r{(#5TFtMCjMU#!KA&?XnZ6+ zh-l!5Bhc$ca0Ys*C=NknUr4?%GU=SySn}JVbUal$z@&RJPC~-Ah@ebhh5EP>UOTOD zAFZT+r0sCY8E{|3kz{dS*Bn`^(jnz*#5>lT%}8eA{L)pv0;I4q`UoXvjFfT z{L-sFNDJKemt+fUnKf~SGjY%-2SIEsPIKWW?3p$W#*juN@AG!HGtrVibpw)M=;WQk z$|ny}PJXo`PJMyGkp!>-371A^ge(C+^pRkH9~jT!zJAIMiC_Ko+wY&f6Mo|;x|sHY zD9{Io-CMa?WHsXZ)ci<-5hfQY#M(Fwf+S!brkGO+SH*Oim*e2v@Egl>LYua+W*NE~eNm0>AV7d@eMlL9 zNS6Z03h`v9=S<8nw|S_kD$Ns3R4oWAQ@h}r*utAico5THtbVSKx6?RYWh6`>;jFd^tX(T3ZxDk1-$bqkJ1 zzb2uqSloLf<%!u~+EA#A()F|QT)baMFMN z8(%ht^bjo-SRI_*x~Ha9DE*p*gHb#>lCDime#_vofbbk!Lk1I?Hfp_GUT#IDFd*iQ zS-V&)=6O~I#w{X`?=@14Z@qYRF5X%tN#*i&9k=Bu!<0(QEXso;ODOmW5grBHGY@1b z7s^Q$-+KEUIG0g;7UaD29z+*^soYT5s}LKjLKkAy*)jg}5dZlC|9Nx{XS8TaV`%tk zJUb$4B85ZYqBek@!AfpnR*As*koC+2^iI>2X6&-ar!8>67DLU1Hf$v{sjeGuXx^CmI)-QY=r}gRc&3kzBk3GqkGV1Q+|;E{DyXAS1@+EYiU*&6rni}#tMA{t4Tq3hqqE>+!8BG z1yTLxWOlE_2a6PSGc6kId($#BUJ7K28fh{icX%T#B;@XHp{!SbZ1*oM5RE4*L>?Ik zzuoLKg-rx$L<{wlzRhQG={yZdw~{XjM~|P0O81$_OeCL-U!4WAT!N z?#GSC7qJtJ>u&%ZZ~JjG)^1j>%ZXUh^t4w*iD2pY8&{}f%i0B+Q zVF!pzKRPeyzQ(gMPrmW{9(V7ELN46G-(jUcO}&FyoG;@2Jwk;{RX(X_zP!8$70{A) z!tPlwXb!n>v`DrHBcLrFfjpkqz%_*>z7)!nO$+6dv-1sqY!CKmM}IKwpc)|re|3Bs zkoUhiT>FrH%FqU{g1vznbLs8P2(b%C@f!cGNAb-uejmqc{JTEhFaotKE0P%@B*oxZ z2OML-vBLjBouGr#csr2BSmxlG@n^+3?s6T#c&xWfA(JAen535DuOxMRw4>~qv;_?A zTE9EsVm2s$6B<|2XbXWiac!-2-u;*$a(jri&d6j~W>sts5W+ZG?<9noTmS&a#q3`h^skH9xvDE?cper@TC~rM3 z$()ZsJi z$$4TNLE``!6*LB~U?VWwk}jh7ze`<18bqgMy6BOL);GX6H00xCInO3J#>PQFi27!{ zqFO#(Wv)hRD3|fYTE<+g<2Lp{y|5&8e>$={isTL%ZS zs0aI9IV$Vk8ilI1q`o>{3o};4Dw+H5%MTIe+GcclveFsJ)H=D9i z`=6QPCzDBD*Ndvwx;3#!B+7zfpRiQwwZ>)Gj-{gNyn0VC#ql=rb$YC$-@RKEQ@Hbe znrq^=Gvbyi(N1fIR!43P?>UB4-m*zEhzEJ1YzAv3L)IQaD7Gh0dU4@6I%dZw${z@S zrRuj*;f+W70ig<1LGn@pB~`W;5K7l?r?b`3d4@YY`xG&*pE$Q(v&BPt%cIbzj!C<> zzAeWSq9+}BFyKZMi|FMD}cO2|&a|G705;&oB3fAGetJ<;_w8Tf4A;NfT z92a3^hl2*3yajS%F>c~L#T*C&RYpyx^u#_{pp@gVlFrzHOXTlGOA&Wv(K_+EAbTCM%L{Ir;_FBjyqg*HfdhUO`YxIT}~ zC(9K{rdH%j)hsC3#P;BL)IO9rwb62y+h(4$J@E1PCp^PhrirAPpb0yV&ngV9Ftoyd&$qBL%qiDlt=XjTcJNLs>oBr|Da_q2M97f&IdPWkaly@;19?TA?y41>%kgA*2KZI zMB<&77CS9mV@bB&DuhY({-v<=y;V$G{>pWyR0XFs+L{U=&TN>velw>t3~Tpi`)>%bqS$4+=q|RX z?kk7)?6sI37S~dZQz~w*HZ&1i7XrJcC&SZzJ3R3Op{7k&ExBJw1ijXiUq*`cD22$Mw$ewAN*|_wX74XT^FiuV<$g*n z8u)tQ41P;n!}ExBs}Qd7V@}2wp@f5j5=Dh>l_tgj`?qwll1l`fn&74h}ZCU-Cu3uD-4^+%c0qh!x^NS z$cvs8lWpQ9=DU&?PpeCZ8DzY2GK#3#CZ38KyK=f!>YVR?yK^2LZ^;Xhko&r`rx@SW zS1cF~(eB=gn*IIdn%9_nx~1l6cg+`{-fC;(3!;@G!#Y8h^a?r3C32oq^d#{f9Y|cG z--t_e7qN!VD!JGgU{%5p%{&(OxVC5@ONVy<7WbJJ%##C7rL=Sm6?&zoLaYvv} z(WxcQ5fg9?;PfP?ky2HgY`7@prxKej8h+{X zy?l3q7mS2azsvC9yX1hK^KCVVw(g@E>C=em# z?^Aiv5q;gz*A1TSO}{$KVYn!|UmSA&RoW-M?kKGK!0lxzoZ5#gVEdpJM5gSeBO1gR zG~zgaVwZvv$Os0?nk5fgbPG!k-`|tlMS{1?c#40jO-y15Bc`I53y5LaosPN?QS%KM z6&VqtwE1Qu@ZXG$-=Ps9FH!35sby5*7mxa8kV#vQ4;|{MOd^qR0{N`d;?N{)3;8X` z-pZ6#Ns`F2tTElb#X7`84~|j3mlO5lyLlgfRi`Q))vI;XVuNR+&ZVPz7-ipowIJ~w7A9o6U2zHayVTKDC6LIZK#I>G?>q^&r(XRPI*L>mBe4%T;aB9BLHD5S2U+9`IjM4UVn)g+2 z#kT>E(YF{m8j*h1narFf8m;|`Tx>0W^1^E6ens|n6lt|`zmE5|b{xjmP>c3!IcqaR z6Z4_5?|g9j!!4}Z@4~2z17eTGuf&Yzd|gNbBcF$R15`oW3p6B_R8ML0xOlt-PvdS(S(D>~_S#gKCUWWK0#RTB?;sPw5_(*oWc z${@FEcc_7AZx4g3fgN(>+adISbk{c|BKQPe%MfjSL2PjOpbeq`=# z7ub-BK059%KW#8%&d==-lymiI1G#@rF%s(7pkvGYmYdE&Xr z_aA4=4$3R;`HeuSP;H!lbj3+=e1zKKqYcAM;r$m4S3YD_83sZOgncqpGq{*qXvdR@lukh8^4KDD0sO!>c%*Xo6>GgmIb?W?OoHQKN4+W|5}T`kP~3 zG&iHWyOEj5@>0JRsn%{P)@I>9!c`VOUU8W{o0jQ(r0_!jid^{CC93GzGF=itLi+MsSVjpSyM2+(IF$p4$w3dj|)v% zV1q??Z0L|RhQMiJq&dbkW(aI8LON^~um1XNTc&k(Zoipz8UmAZNi;06qo7bWdLS3- zB1v$9BYzOY4{k$kdKR1lM^$zUM2rhtx7jeOgpN`CCMlgFR$*VA54iwGU;TP|6P43TJPc6J^zOLG(J7 z9fm30PG^Nq797Dmpt(A+9TFe^-2KgAcLftr0C#wGbowFL&o#4#=0jzHkT1BR@c{*tQr zWs4$~v6yv`e}F?V%XsriWxNSk<%7#;+Z=K}LmNhIqx|sL*+>|&li(AL;nSl{WhOVU z<_;=`!Nh<15+hUo{TSLKYU!XpE$i31gAVx{%YK83u#TeUs#<&?vha0Pp?ll+XrXri z6yZOs|2)WKX?UaxsN3m5R!$El84#02b8wME=1cMxe*j0UVx(&{ix5i0%2b~YL&-FA z3eqgrw)>buNE?MsEVVzZkO)Rf2WT;XO>WpBl2;Vf^AM&Yh$5t_kZ`><;aVo#*kkUY zt`-Fq?fR`K=vJc06z_Fa@Y|zH^JK)1%cM-U57}!(+WiP$CuQ^OJ6;NK2^$XG4JZ}? z$NBF%e+H$LSB27))OCws`(yxN$YA^Cr-h~kPbTrE~zSkC(iT^d5cyG@3 z>-oG`*6nRB!gukuBH2E>Jm;iAT-^ZEP_5ygf8T1mS2x50-)Q!igVz+ic7jcL&ZWo> z+;68e=Tejv5zYQA_V*^SYsF!(>-fKo5f-zG8?U;tZ`Ra7*kRS$319DZgS@;sUaV*_Y$)exv<3)|;7Z8~e=$B(o5lspY}|V6wJh$3`TE ze-+(65@SKQ_xm#VH;TFMAWYj>dWW=GU}5`k!Q!0hWP@*DmHkGnu&iodUbssp)6rxU z%M{YcliY1(&tXOPB+EFf7hGn7Bvi!PZ49VzmpsSF`ts)GTBg5A#lBr5{+zGmmOYY#K9%|c5z%V`H=8q}xpyte<@zr z7bX+jV(9<%C%E-qauZuE=Ri2x?|odso$oPDW!*0`trn=ePStDT!noa3y}B<#{<+Gg z6(NGGDv=h!!s%bQVu-(XUImEoF8x;T%_K;WqcI>GjUXvtD`?&mK=;)6Uabe-g#3(-OiCSN(8)xI&_oRQR3Y zcSd9^KO5a|P6J*!0uBv+oQH_<5I2w01wkCcg?ux*?;9!MTkyU=5_wVse?F__$G{gT z1>$&y*vCfY9vc!^%U0l9q+1$lD(smD%L*AX{4G?t>=LDQ{#lo<$_XW`5}j}@lBpZn@B8T4x^EG6 zaIaht_U#k<%?-qHBYTt+d$gkbSlF2jZ5+V3lE zLC(wb*m|(GJxTqRR{^TB;~r4hjz|v>$#tu2+}HkST&Go7+d^nkFDk?0)CbmAL4hCH&f7^#iUy8Jy+Dzn( zQs^`3Q;a2yn)%+L)ASDFC(jC4Ky`thze+s2?JzHr!$6=(7=UF?HjSkg=Q~7GzS3m+ zRx#b;V>k_^Wf|LfF)5@0ktDA=DaKW=7m3qK9MYWTtU3oa6KDcl9^zKanqm(2lrT4+ zedIQ~kKD$TFiTw&e=TCxhtzL;`ZZghdBqK=>-oVP*5SFlMCbrudX&qHbSPD;?O7~O zs&NUk*qD)L<+<^UA>gLQpTzur#FK_5OJe6mqLEA(hu?+@sPeldLTyUmq6G_@ zz&4!vNzi>ElpSP;IX*Jd)muHKHB9Lut>i@3CyQ|n6Iq?rf3Os6!BR|tYe$%5YwySk z5wXkfKpbvN=r7nEs!o-mT&$*!deEggmiMnDK^;C{6)=hR`lD#j+-PyJ+^*2QwZ^&a}D9j z60>3hn%=fz{-@L1){E}{Pi{Y*+=g97TzipUtF@Z$B18E* zl3gsmTO+njbqQ{~{W7yZ)$O{xb@WwF>;fisMGrePf1Qhy)p!BZS)471=vF4trNA`? zZY8=1BnQMbM67(1z{)|{b(NE4NOJp`WL1e11$EIn$>h=q&Ukcc1dIo|HJYX5*l3=T zYokeu&W++L`19p?yi8Z&B)%fZidj657euSnNKVt?czUvwBRPdpqe?5I^07F~?KXaH~#s&PtHLcU>Q5j#P zOZfLg+Fu?O@z)Sk#IMrz;kq=QF?;j7;3 zf2jXl6!s$p-Sl2Wz2{t4{Da1SIu398KgO^6Ponsp8TtZ3Ut{RA^j-gl@iS~kMg|_|>G&e32v1kx16-&R_o6WGgziG_?SXa7Qd%KuJFC%I{ov}LyZaY9y%F0 zpGW#Lf)$we43v=m^`VI%vQC?x@!h*VG}6NAGxEYg_Q6aI-(RN}y=x1f5ie}8Qv zn2e1+re~AG%ih)DI$pxxDg2!rehuHR;QMR%eg)qb@cjY4FW~#bIUTopc&DaFoP2tu z!FO=(!QqwUXSq0b`o~6=_ns_&ZD$#si&yE}>*P3|!+%%FD1HzBO_DF;I{700C;Zny zc$WNW6O+%40{^K~@qD2qGsuj@e~WSJCNt~2$;{K4du5q8L2zZcl0o);XPLI3@ulAo z!rMW&D_1}PoEr@UZoSTMK3S!CmzlYDnG7|ucA6AQ5u9+mj!w3i2WY7k|0kCCpUN?d zsZT8YTb1dO_f#I?e4g=$9MDXh2jZ51%`Z=LgoMbN$rUnO^dmevyZ*2Ff7Sa*{m&*l zKl{7!ad>oDaI;hq@^XSQ0bMS$Y|Nh!OJ+Xh^Dt02IW^E;Ck>zUDl9Y;$oF_%gy*6r zl;F@@1}aSSQX07Il;4 z(h!goa;!V$T1TQTj@97JmKy{D=Ay^90=PvM(;(M4lw1iO+a4tV-91FlTDk}atwd{! znSz5~B~VP&$@_7yH>I5= z%VAIyu04G}y9dh=8D2t*3+~^S zzkdjP@7lg%e`pQSZ&2tYNV2r(HOObr(i(nzc}|A=4f5eD3i;wZcKGEG<45OI9yX=7 zj2G~+g1;I3ok1nAe^xVu>oqHT$~}0*J)nw2HB`y}a%&NFI5qgXQOj;Tl->9OOJAHG z9~S*Zf|#Bw_+9r`N!{vI{#_NR9{$zNdSyuo0pOq5)JrWTL7&E4KUTjv$TF zh)3!8+^q1Q{$9IH^{A!nGh6@RcE?lBr?$M2Eg#92lTX{>f4QQQ|MAb)&G`}1SUmYo z5xoI>6eX45q|k)`5Aa+J@I*)cGa$eRYxt4bSpavl`j`P}52x9U*E~cc9-?F4jDOP5 zXF)=5#k|tvGpd3rp!uNLpnZh9s8`So{OP<0Y0sg&9&au>d;Vm#_sK_V^h$$~Wq^#xA|hoaX4t@WAW~*ZtA&9R};_ymn~zRavMV1PYNn z*Fm5Ef5fqu(b|qDj-h_ycyMy*d!Zop;vi5uYOVK*#}DG*1bd86BU8*+eB@(@)(d_R z+xHq6sMt|@45EOGCy_mF>j`Xdv8xZDEk}<7XwcE+#@X@8UZMIzqXbe9&2fi0xXOr@Dr1wVTdri+m>phhek5}S0 z^BppCWlFNx(`mShlBuzOv;OEDc85&-S4>=q#P2cjdw*gSFt-MfJnq46Lt~rMvPYGz zwCJu(Fa&wR)2jF0jQlP*tr83o@-`ZgfA7gd+GrS!c@k$4Vu8{4&Crd2O0>X4u};*; zMB*J;Sm~h9DbCsNRdSr`A+Wfw#3-nei1kS(11zO;U4gQIWLQtIXl8&Ij_|gUr%jzsIg$_Ze^n2}0e>5} zQbPX~lUvlUV6PCkX&6~v)vV6584fHjXLY@kzQ;EvD`i|cFo85z-mbM&Sc<=VJ*g96 z#10%J=fyQ@-(&Q0OdOt{)tP?tt3~a(0(IUa+N}qUB>-j{_}E=c@`L!neo8~g_&yHY z%S!8<7xbS`ak>U*#eJpef7E83_r2EgY3aS&26VSY{^20dH`^dSAVxxlnfF>_UG6cc z$Z?TMF0FWb2F-MX9CpE4GlT{hrI{c0OTO9r(tr-+rz>D-y(pJ?FT}lOjK^tX4Nii( zG^9_n_!bDB<3`QuvS&-?_Lj_XW>qn^<1m7p5<{`IKSH5OPU&{_f7z8_%Ie6`8Isw5 zL#(}jh5D?;btv|MkM3_^Am~Y!nFnSZ3|-GvdW$g0KR{As6n{zX4P!IljSP@D?DAWn zD*xhqtMnRp8A3K=QT0B0xq{u;kIi_;Bj<7&Lhd1B6+u+YhKxai=<*xvAUB(ny?44D zN5$0kCBJye;QZZce>sKxV)bfn<^KIry#E@sUtoNHKf@y=Y%w|a6#fdZBeEzUq@F4| z_943wS5C2o4kX_;1sPEpm5=ID;Ao>Lk35m`H_H2>amltkayT!pYN>V6{v)IgPkcki%}?=;LkYT4_r*!oJ**As2VfBlYsT8>HA*^lS>?xRO8 zBJ`q7ZeM?<`RH^j`%W-HqF7pAYPraz$^?&0=heFW=tV|nC!YYH-Y%h-D_e$~i;zf) zwxLWqZ=Mi47%E_sk8LK5U3bfNj*9H2uZZ0p;1X)PQ7%P4U4{`SLA%`Bt0G%jLcDH+jEm z$pU~0Z}RKTwPo?&`T3q!b9(!4XPTwk5R+HN8?8tkw3z5PXD-@z{O%$-N>c1Oz^MSH zh2ntof5dO`@2e<&X#^3`m+wia{ZCkYk)zgKm>yvdb0e#%vnnG*HFeteL>js5;y9P# zeML4VH`>*6+8Hsek_<@Gt33#}DiQG{Wv}oc*s3%lQ=HpnY%5ljVP$#a#mN;}6s629 zRwr+>Mw+m-qg*O&7wx5p(;Vf@ox8%%FaRM{f9z@Z`Zf5)_KLI9yq3C*#tP*2!D!$O zWx7{2_tI8HLQTS~$x20a5m<32b8S6``Wb05hBJ>R#q!`}z?eOm&v&qxJ4zO_s!O)g zC(Qt-rkJo3BSQ>rC5u}(ko|;0sLFksD?x_fdx9t##b~4I2rf(@6+3+jBfp8pO1)J? zf257nHf3gV+hdyY-HKYE=`gH}UO?tTho*h-@^6224mgvurr$vAV~lWpBoY zQ1UvL*1b7}XaP4suo0j;|)jm)J#};+=P~V`Z z%`ST^uB6+g`vgHe`AT7JLN87K#_(yhUm>=&`fyT?8-5{kyPylaC#~h+(kwUSf3^$3 zsa@3YTspqdA+#oh#uoBcB#_%8j3eu6=7jTd4u@DNkCuEO`E!-Jif$E|l943}Qdn@u zLc0n$XtoCy^=9?DoTP9E`t1aHo!-L7Tfo5O_kg@BN4Mh3db^{j?O?%XN~#)ziF;%j}oV3JuS7(e@}e7yw`k= z(&QGHpdF%!x|$@O4KsjnmnY?jcMubc)t{J~Vmk!FClILzCv;96+{}ye*W{|oXHJe+ z)r8U>Kw9|_XvK?%K#|0+FxNYph650EwMuELKspf=@G7Da1YK1&>dT zs2h(1lhi`fx7_g67B!~9e+tG)*d|tfpv1~FY4~!86MbNgj~u+s;|IW{Ar_f?3e&@9PRL&aaMzn>B{F~hUz zR6K*WSSIsG89aUU>fO^PFaG-Em23esBs;usO2sLY{F<&Re{)%y?;OcBKbAX(iOZqs z`0H%xz4R;k&ixU|&vMevvsLn7o9u8iYFv{IOWad2e@XiU7k+Gp)}7ik+dY*N?8z)W z-3<4^+V7aPR2*M@JeKT4S}ddJY`P@@@&ndLdaqYn&2yhq5>;=4I1<~Ze_BT$%;hF5$Yb@ELK>z%kv6+Nz7QQGd5vFkf7T z0U5R*U|u-+&>;_YnBL=?kZg+ak$r0gbmDE=gAb>lHS)1~K;LKVfi$&;j$7r9MTO1? zV6IdSZdpYw%bk|(Mtc23m?48fwAGH?aq&U@Y0w*yf83*kyrmb>*f;uNaTXYjLV+MG zms8JWoiSi5!hkLCkg-8VszLU=qe?{MI-z+L%D>IytyzHi0;vM6U z55H7MNBQI7DZP)-i*Fd_{ZVxEmtl1HmtkUr=OPTQzTSE)-9cFq6N~PKO0)$S!5d%m zwQB|`e>u?=Zb&@5D4)_<+CZv?4j>4*%F0XnE(F`gZLOZIcwDEn-~96K+0QSZy#D^j7qM)S&0QNWPOuyCMyUH@4s2oTvv9&! z*y>g){W`OeqWsMsYs)X)hg+uVUiVFv>isHyx-zCIj1j%c&bU4mV3bJa#?-_j0PU`Utz87hB_{Cw}n;m`;uTsL!>cKy~ ze-ZyVK97zb#)NRRiaA{TIEEi%d~h%tN_P~J1^oM~A78Y0I1dcpB;nVlYwYzHdsz$H z$YpE(jyZhEdP!GBvvU@Wq}|R9ZKk&Y8c<&?=2P@`BY)rBJru0pv|xh~h?PI@?v96> z-+PtVZIeC_WE0R{{?Vg8TJ}o}Eq={XerC&r@TH(VL;>As1eGp>Y z1lC8KJw}ll{xipaR$!+np)vLQ zSX=EVf-XAVMBkV1^Qzgk5INQFewN7jjcc0t8qSIu&W;*q8li@1l~iPqc~;|be;~eb z=JC(54mm#m-3|yIj88lrICIBjyvmnFwregZ(Z6si;zfHh7U|&OAx=bZ@aQjxJOjPK zXmrR!Pq@%29N5F5oT)|c(NNA29N>>0{ch7k2|DlaoG0KLaYS&>llB1E``*sNSs!6&$u4#Po;&re}ryQ_+nAi zJ6SSHwC|jkRASD5|AjM6^~JS=F07`R(S>1}>ogoZV(r5!E2oQVxYr&Q#B%r2TJYTR z7tVhDxwB6#OLQZ<=bQ%mQ>U9Uch5Ai=+h!E8+rs>W^hBBtoOK4weox>Q~obo4<_SX znc86676;Bb@WcfY>%*|_e=nk=&z}A+_IT@UtTpVPx+;8SbuW_FsKvcwQDB;V7r_K= z5@1s4FGKN&XH%cso^FGp*QqP{9+ zQxoL8@td+%E@j|kV6&MmJHzM`$x&PTMA+@^+9yI)pJl`va=a0HhOqo8cs5_aYAsL+ z2stI%TPq33k6g8se|pW*6)gP>v3E%5>h=twxDls?ix8^aJX5EmWat3c&k4C+hP{Wd z_b0RQdx;i)olX(hJzl5b^l;XDA02)XU%)~B0si|M{(F_`0&n2=4eYcVqrle?_8P)o z%K~4d*S(v59Y0Mkd$0TC73IZa#5{j-lHI@mlzu)vS#jcDf79^A;i~r(Yki(JXE%pM z@AdikqL(htemy^Y9)F-;uzBJ4*Zlh!f4}1258?M_b9J^pPcLHlgS-3#{eWHmHT?j} z^9s@J@jm}5+LZRbpM2!L=LM4(i>G_%t8MqG+g}yXeFpqg+~lYbwCf0v>Gr;4pzSf* z^Whys{=U2Wf8uwiHQiER1}3J(xPnEufojwdy+668?Y2mlRQG$Rn`F^5 zDT|&NVtPA^Kq8 zRxlsF!rr>Jq_&l*wm@wglWws*H6SeYCn;peqR75<;e$Eq@OmDN1$0}W+ZDutZnF4z zMGD6P)jq(g#2?*w5y0x5;)Cp9Wf9nJ_^tZ{A4Zqd*WXz6Cva?MMUh{%LSa?B$ndp} zFh_8Pf3|}fsJZ#Vnwx-~jt1ro0XKb}*9R|PslHrXXV4XA!h*oG{uN(r{VNRH^n60B zF`uKsLu*1I)|}8$%XC;2{#84eKsZTbf{$pP9yKhyR;=ky7JH&OU{O-(+JpK;njds;>Dx4V1QTf74;ylHfRbrKkn3`*=C3{02pK<`nZTJ1zgR*m(`nzlM8gb5CcXBcQoHh-@AlHyXa zLPR8X;$5R?hXEM9$u7 zD=_-4Bk=SPs`R;S?*S1CS+zQSTOL`CAC;yH7QkNU(aOpmSu>4P0ab}ai(gxFX2h!{ zi1?yJZ-gC~74eT%-4wHRz&O|ponV@y*f|jB4QDB@f>TrTH!)Ow6>zW`o{xpfe{1y* zLFN2Cf5j-?*%YrTm! z+&jIE+B(gj1Zf|4qPp`bx&zvse^0_XC*SHpHeX(47kN`m0ujf%!8z)4>b4%aZ{Q17 z!#oqq0cXPN|JWZB2(Wy7UfBHN;ijBb+ z6d2ceev?mH714cP!e2LW5JY3+sAK9tv<|H%EL!r577dfTM}#}JQ@k-#9NQ_rny)G| z`XNW#Q2!Wl=$aYys`%8)=V;nbX}BuWB9Jy@MB&*Q3hg(zuP zJ*Q@j6gBlG0!>MGTQM1uq<#KD&RNWjSi1{Md)sJL z?pce+xZ%*_Q~JcE{a(Eq+dg2dPHNW5J6lG=#f`~^wfO?&%MGx>T0##lYG~r!J1%I;E@x2E_>58SiSlq zmswoITjQgRX{pQvf8B0Qr_sBYBR8Ds_47z_J-< z#~=XOmKZ3(Lw^hK7?$`5N z4P@#WR+(m=H*jveLNl`RGF39}dhdSC=8)p9pcxjOJBPL!@>WP>F|Tqf@85 zdzlR5vku=|es5c1ZZBUFPL)K$ih~mjJ_urGZ=BLANPk8j>D%Bz&^n@n2XEmlrZ*~c zoK7E5e@=S-HxG6?rw}>B&VeghX0hN*RBSsF?`)ClgAGHXm z>eeR#%ybCkIQ4|l>r^rvSJLTRQ^Qyt+>qb6aNe8sJhBmB7!eq)lEf4QF1IP-GBQ9(BxFySnwnDu(%@|gEbtr z({<3fQdjoSB>CZdztzT`Vz(_Y?7zLhU{OTL92S>4Ry>@8?}Whz<)U2Wj(%YRDhH&r~B0diSY^{W?CeAG9|f#;BfRg zxp;YbK?xoZhM(hS#}Q`K$}^69{394JJbt>M4{%hxX!-1yN-JiFUAN3M3XXQ)N?shb zW6Z(fX%wFQ{q52DVHCb44&m+Ke;;*pguXI?ujvK<_ArpIn_eGOF#&TbM8w@HFpMBT zIw*b&kWYpEFu1Y<%`_btoX~+{zYZK8#{vowjoYoS#|cAzAB%C-5xS?!?E@HLXKvDi z+X24K3uu|fgEitGr)ca~=nKnJk3wHq5}ZgSede}WPH)jA!oo;`NSF`de=V^V1ulOS zD8b^U-*lP!Um*&A(ESvJyw$bjAG1fQ|HFJ$vmNzt6v#Osi zrnsw*hh%HfL!{{lv0AxI1pNtO`_UKzOXRVZ)dEL&@b%LlU%Ytv^*2Ai`udp!nqinB zBO*Bfnp5U-BxgV~rw7gAAn56_=>cu+@z5wlJ1hvro^_2lchEF&dHYV%Q6A>_?! zq5sdT;boppUp4UankNd6Y~RS>YibYuhsBk5R8fWvtw4!5FD5Co+6Dt?#hEUrp8fd4 zPq=uhln{?+LMy2Rt7;D2!_}t4u9^l>;aLQhwx9xIhNJC(5FDGz z=Lo1Iuyy@dP6ilpe+x6Oii3-y%&IkFWD{H@>aCFzH3YaS>8*~B2CkWK0hRoe<|85& zKIF1H3W*XsBX|EEX0(<@MG5uhm92varI3#u2A2FA4}uke_h>Tq_qQdzki&J#kP@B_ z4*!kA*dKIkRA(=)c7?*=iXN=IE#d@TKr>o3YKcUA5}Ac6e~>7OfdZe2<%&*g#ZN&x zVw-fZGL+FG3ElTOifh3DNj-h7PFBa1^4CVW5&OcR_`}gIq(5!6- zo||{Ih6LQE>(tJ>T1aXLHD*E?BYKgA#zrz#Izd&FOf}hW78MH3KLuq@?MH4Gmlx)D zcV7;N2o?-~f5@X4NjeZ9O6asnD)TuR xUQLY5ArP8#J9Bcn-Gd;@>l_76uzeUL=;FtZ!^d?8n8s-Q{{hTL#6z%(0svOHu4DiJ diff --git a/src/gradient.class.js b/src/gradient.class.js index b4f88caa..5e4450df 100644 --- a/src/gradient.class.js +++ b/src/gradient.class.js @@ -82,7 +82,7 @@ this.coords = coords; this.gradientUnits = options.gradientUnits || 'objectBoundingBox'; - this.colorStops = fabric.util.object.clone(options.colorStops); + this.colorStops = options.colorStops.slice(); }, /** diff --git a/test/unit/gradient.js b/test/unit/gradient.js index c7592a34..0cb2da7b 100644 --- a/test/unit/gradient.js +++ b/test/unit/gradient.js @@ -10,10 +10,10 @@ x2: 100, y2: 200, }, - colorStops: { - '0': 'red', - '1': 'green' - } + colorStops: [ + { offset: 0, color: 'red' }, + { offset: 1, color: 'green' } + ] }); } @@ -32,8 +32,11 @@ equal(gradient.coords.x2, 100); equal(gradient.coords.y2, 200); - equal(gradient.colorStops['0'], 'red'); - equal(gradient.colorStops['1'], 'green'); + equal(gradient.colorStops[0].offset, 0); + equal(gradient.colorStops[0].color, 'red'); + + equal(gradient.colorStops[1].offset, 1); + equal(gradient.colorStops[1].color, 'green'); }); test('toObject', function() { @@ -105,11 +108,11 @@ x2: 20, y2: 20, }, - colorStops: { - '0': 'red', - '0.5': 'green', - '1': 'blue' - } + colorStops: [ + { offset: 0, color: 'red' }, + { offset: 0.5, color: 'green' }, + { offset: 1, color: 'blue' } + ] }); ok(gradient instanceof fabric.Gradient); From 4800b0729bc2540597eb39e3bded90b7d1bef81c Mon Sep 17 00:00:00 2001 From: Kienz Date: Mon, 18 Mar 2013 14:32:05 +0100 Subject: [PATCH 55/60] fabric.Group#visible = false did not work The fabric.Object#visible attribute has no affect to fabric.Goup and its objects. --- src/group.class.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/group.class.js b/src/group.class.js index 4079d441..cfee71e5 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -247,6 +247,9 @@ * @param {CanvasRenderingContext2D} ctx context to render instance on */ render: function(ctx, noTransform) { + // do not render if object is not visible + if (!this.visible) return; + ctx.save(); this.transform(ctx); @@ -261,6 +264,9 @@ originalScaleFactor = object.borderScaleFactor, originalHasRotatingPoint = object.hasRotatingPoint; + // do not render if object is not visible + if (!object.visible) continue; + object.borderScaleFactor = groupScaleFactor; object.hasRotatingPoint = false; From ebfe7adf0f34c3a70274bc7c65c9fcec0708943a Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 19 Mar 2013 12:46:29 +0100 Subject: [PATCH 56/60] Add node 0.10 to travis config --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 9f57b40c..46cd165c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ node_js: - 0.6 - 0.8 - 0.9 + - 0.10 before_install: - sudo apt-get update -qq - sudo apt-get install -qq libgif-dev libpng-dev libjpeg8-dev libpango1.0-dev libcairo2-dev \ No newline at end of file From d89bbf0d8d514188739cabe82865f22a0c88345a Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 19 Mar 2013 13:10:33 +0100 Subject: [PATCH 57/60] Temporarily comment out unit tests that fail due to Node 0.10 bug (https://github.com/joyent/node/issues/5011) --- test/unit/util.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/util.js b/test/unit/util.js index 31edcb98..a803227a 100644 --- a/test/unit/util.js +++ b/test/unit/util.js @@ -127,9 +127,9 @@ // borrowed from Prototype.js equal('foo bar', escapeXml('foo bar')); equal('foo <span>bar</span>', escapeXml('foo bar')); - equal('foo ß bar', escapeXml('foo ß bar')); + //equal('foo ß bar', escapeXml('foo ß bar')); - equal('ウィメンズ2007\nクルーズコレクション', escapeXml('ウィメンズ2007\nクルーズコレクション')); + //equal('ウィメンズ2007\nクルーズコレクション', escapeXml('ウィメンズ2007\nクルーズコレクション')); equal('a<a href="blah">blub</a>b<span><div></div></span>cdef<strong>!!!!</strong>g', escapeXml('ablubb

    cdef!!!!g')); From 7f191109670ff71afcee47b5024b0f6efaa70e14 Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 19 Mar 2013 13:20:21 +0100 Subject: [PATCH 58/60] Update docs on left/top being relative to object center --- src/object.class.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/object.class.js b/src/object.class.js index f69383d1..3eb740c6 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -52,14 +52,14 @@ originY: 'center', /** - * Top position of an object + * Top position of an object. Note that by default it's relative to object center. You can change this by setting originY={top/center/bottom} * @property * @type Number */ top: 0, /** - * Left position of an object + * Left position of an object. Note that by default it's relative to object center. You can change this by setting originX={left/center/right} * @property * @type Number */ From 030da0d36c3671767edf17164306acdd9ea0d634 Mon Sep 17 00:00:00 2001 From: kangax Date: Tue, 19 Mar 2013 13:31:57 +0100 Subject: [PATCH 59/60] Build distribution --- dist/all.js | 10 ++++++++-- dist/all.min.js | 4 ++-- dist/all.min.js.gz | Bin 45941 -> 45942 bytes 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dist/all.js b/dist/all.js index c2aabc72..6257d48c 100644 --- a/dist/all.js +++ b/dist/all.js @@ -9412,14 +9412,14 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati originY: 'center', /** - * Top position of an object + * Top position of an object. Note that by default it's relative to object center. You can change this by setting originY={top/center/bottom} * @property * @type Number */ top: 0, /** - * Left position of an object + * Left position of an object. Note that by default it's relative to object center. You can change this by setting originX={left/center/right} * @property * @type Number */ @@ -14202,6 +14202,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @param {CanvasRenderingContext2D} ctx context to render instance on */ render: function(ctx, noTransform) { + // do not render if object is not visible + if (!this.visible) return; + ctx.save(); this.transform(ctx); @@ -14216,6 +14219,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati originalScaleFactor = object.borderScaleFactor, originalHasRotatingPoint = object.hasRotatingPoint; + // do not render if object is not visible + if (!object.visible) continue; + object.borderScaleFactor = groupScaleFactor; object.hasRotatingPoint = false; diff --git a/dist/all.min.js b/dist/all.min.js index 532cddfa..b2aee781 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -2,5 +2,5 @@ (n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this):this.canvas.sendBackwards(this),this},bringForward:function(){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this):this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth -()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +e.bezierCurveTo(t[1]+h,t[2]+p,o+h,u+p,i+h,s+p);break;case"s":a=i+t[3],f=s+t[4],o=o?2*i-o:i,u=u?2*s-u:s,e.bezierCurveTo(o+h,u+p,i+t[1]+h,s+t[2]+p,a+h,f+p),o=i+t[1],u=s+t[2],i=a,s=f;break;case"S":a=t[3],f=t[4],o=2*i-o,u=2*s-u,e.bezierCurveTo(o+h,u+p,t[1]+h,t[2]+p,a+h,f+p),i=a,s=f,o=t[1],u=t[2];break;case"q":a=i+t[3],f=s+t[4],o=i+t[1],u=s+t[2],e.quadraticCurveTo(o+h,u+p,a+h,f+p),i=a,s=f;break;case"Q":a=t[3],f=t[4],e.quadraticCurveTo(t[1]+h,t[2]+p,a+h,f+p),i=a,s=f,o=t[1],u=t[2];break;case"t":a=i+t[1],f=s+t[2],r[0].match(/[QqTt]/)===null?(o=i,u=s):r[0]==="t"?(o=2*i-l,u=2*s-c):r[0]==="q"&&(o=2*i-o,u=2*s-u),l=o,c=u,e.quadraticCurveTo(o+h,u+p,a+h,f+p),i=a,s=f,o=i+t[1],u=s+t[2];break;case"T":a=t[1],f=t[2],o=2*i-o,u=2*s-u,e.quadraticCurveTo(o+h,u+p,a+h,f+p),i=a,s=f;break;case"a":n(e,i+h,s+p,[t[1],t[2],t[3],t[4],t[5],t[6]+i+h,t[7]+s+p]),i+=t[6],s+=t[7];break;case"A":n(e,i+h,s+p,[t[1],t[2],t[3],t[4],t[5],t[6]+h,t[7]+p]),i=t[6],s=t[7];break;case"z":case"Z":e.closePath()}r=t}},render:function(e,t){e.save();var n=this.transformMatrix;n&&e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),t||this.transform(e),this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),this.stroke&&(e.strokeStyle=this.stroke.toLive?this.stroke.toLive(e):this.stroke),this._setShadow(e),this.clipTo&&f.util.clipContext(this,e),e.beginPath(),this._render(e),this.fill&&e.fill(),this.clipTo&&e.restore(),this._removeShadow(e),this.stroke&&(e.strokeStyle=this.stroke,e.lineWidth=this.strokeWidth,e.lineCap=e.lineJoin="round",e.stroke()),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toString:function(){return"#"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){if(!this.visible)return;e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;if(!s.visible)continue;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent +,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index ff479ad79e609d0ec6ce9292540c1970f4492ee5..cdcfede76f3d7fc21b167dfe3ea7843dd92d8b30 100644 GIT binary patch delta 6483 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 delta 6458 zcmV-A8O7%I<^uKR0tX+92nbRGN3jQAnSc6~u6=hCrb#t4-(S@?QCyykE6s0loviR@(d{3)6z5TZ{&C+d%$t&ZHR-_JEOmv(x7wtQKcaa<=DfS%TQ~=XLaeu&h z;6_EN-Yj&kPCUEyaKfPauG_OyHb8vJ5=#o1|IOI=1|1#>D7+?7bDAL#QrJBD%%Px@^Efl7OOfLxGE15At1DivRKVHt z9Q8^YPw+b0pc!Y*cAL4dmkn?%#nt%y?->2J0tBe%)SFUdqf_?RlhmO(W`CMYaY{&qF+MD8h-Rj z2wCqVEpq3}5g4hN+AcHd2BMJ@+H|nCC>}8NB2szmU0I&;{O;)^c!ZmVcXa+lAoNE^2r# z9pC5>S`$KJ3wbLN$ZZkEk##k5!g)D|L#&iXOFoeNxk_C{w~9>3$Pxu9EVyH#T?HI8 z+XIVwvwB@lQn&;Cc7nW4Z{g!DVBqq5K;D(3Tk&PR-BHwbuwXN#)ey@t#B^FNC29p` z*(Om#0|D){X_sX?27ii&W&MC9DJeHkZU&jm%nE$TthiK9d2nrRfZ?aZTz*JOAmdbo zcz{A9#cw!-%x`r~oeV+F@kG;GY27=hNGwhL&1OqNi?mS62_5l)O)=FFhL9;k(6eDa&

    EUPG}p98iBqzkmVesjC%#?YYd%M5atln* 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 Date: Tue, 19 Mar 2013 15:36:25 +0100 Subject: [PATCH 60/60] Fix scaling event not firing sometimes. Thanks @rcyrus. --- dist/all.js | 1 + dist/all.min.js | 8 ++++---- dist/all.min.js.gz | Bin 45942 -> 45945 bytes src/canvas_events.mixin.js | 1 + 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dist/all.js b/dist/all.js index 6257d48c..b9111cc9 100644 --- a/dist/all.js +++ b/dist/all.js @@ -8849,6 +8849,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { target: this._currentTransform.target, e: e }); + this._currentTransform.target.fire('scaling', { e: e }); } // else if (this._currentTransform.action === 'scale') { // this._scaleObject(x, y); diff --git a/dist/all.min.js b/dist/all.min.js index b2aee781..60a52e23 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,6 +1,6 @@ /* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.1"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&& (n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this):this.canvas.sendBackwards(this),this},bringForward:function(){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this):this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){if(!this.visible)return;e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;if(!s.visible)continue;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent -,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +:function(e){e.origHasControls=e.hasControls,e.origBorderColor=e.borderColor,e.hasControls=!0,e.borderColor="rgba(0,0,0,0)",e.forEachObject(function(e){e.origBorderColor=e.borderColor,e.borderColor="rgba(0,0,0,0)"})},_restoreBordersControlsOnGroup:function(e){e.hideControls=e.origHideControls,e.borderColor=e.origBorderColor,e.forEachObject(function(e){e.borderColor=e.origBorderColor,delete e.origBorderColor})},getCenter:function(){return{top:this.getHeight()/2,left:this.getWidth()/2}},centerObjectH:function(e){return e.set("left",this.getCenter().left),this.renderAll(),this},centerObjectV:function(e){return e.set("top",this.getCenter().top),this.renderAll(),this},centerObject:function(e){return this.centerObjectH(e).centerObjectV(e)},toDatalessJSON:function(e){return this.toDatalessObject(e)},toObject:function(e){return this._toObjectMethod("toObject",e)},toDatalessObject:function(e){return this._toObjectMethod("toDatalessObject",e)},_toObjectMethod:function(e,t){var n={objects:this._objects.map(function(n){var r;this.includeDefaultValues||(r=n.includeDefaultValues,n.includeDefaultValues=!1);var i=n[e](t);return this.includeDefaultValues||(n.includeDefaultValues=r),i},this),background:this.backgroundColor&&this.backgroundColor.toObject?this.backgroundColor.toObject():this.backgroundColor};return this.backgroundImage&&(n.backgroundImage=this.backgroundImage.src,n.backgroundImageOpacity=this.backgroundImageOpacity,n.backgroundImageStretch=this.backgroundImageStretch),this.overlayImage&&(n.overlayImage=this.overlayImage.src,n.overlayImageLeft=this.overlayImageLeft,n.overlayImageTop=this.overlayImageTop),fabric.util.populateWithProperties(this,n,t),n},toSVG:function(e){e||(e={});var t=[];e.suppressPreamble||t.push('',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this):this.canvas.sendBackwards(this),this},bringForward:function(){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this):this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){if(!this.visible)return;e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;if(!s.visible)continue;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object +.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index cdcfede76f3d7fc21b167dfe3ea7843dd92d8b30..4a4bcd259143e67eb44b2d1e49b299541ba8795d 100644 GIT binary patch delta 33105 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Ġ>PzqJV#^Y2`Ym%3+1T`dGK)*Aze8B(=Sr{B4-s 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 diff --git a/src/canvas_events.mixin.js b/src/canvas_events.mixin.js index 6a153bdd..89f8a433 100644 --- a/src/canvas_events.mixin.js +++ b/src/canvas_events.mixin.js @@ -396,6 +396,7 @@ target: this._currentTransform.target, e: e }); + this._currentTransform.target.fire('scaling', { e: e }); } // else if (this._currentTransform.action === 'scale') { // this._scaleObject(x, y);

    Q}e$LN`Aq={;HR(6}|+Ee}C>F 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 SU>KwE{|9Q-q0sFEbpimT@V_en diff --git a/package.json b/package.json index cdf5c99b..eb590af2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "fabric", "description": "Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.", - "version": "1.0.13", + "version": "1.1.0", "author": "Juriy Zaytsev ", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", From 2cfc62169d893a9aab046c3d6d8f4f3921343c62 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 11 Mar 2013 18:57:59 +0100 Subject: [PATCH 48/60] Remove no longer needed lib/fonts --- lib/fonts/CA_BND_Web_Bold_700.font.js | 27 --------------------- lib/fonts/CrashCTT_400.font.js | 1 - lib/fonts/DejaVu_Serif_400.font.js | 18 -------------- lib/fonts/Delicious_500.font.js | 7 ------ lib/fonts/Encient_German_Gothic_400.font.js | 1 - lib/fonts/Globus_500.font.js | 1 - lib/fonts/Modernist_One_400.font.js | 1 - lib/fonts/OdessaScript_500.font.js | 1 - lib/fonts/Quake_Cyr.font.js | 1 - lib/fonts/Tallys_400.font.js | 22 ----------------- lib/fonts/Terminator_Cyr.font.js | 1 - lib/fonts/Times_New_Roman.font.js | 17 ------------- lib/fonts/Vampire95.font.js | 1 - 13 files changed, 99 deletions(-) delete mode 100644 lib/fonts/CA_BND_Web_Bold_700.font.js delete mode 100644 lib/fonts/CrashCTT_400.font.js delete mode 100644 lib/fonts/DejaVu_Serif_400.font.js delete mode 100644 lib/fonts/Delicious_500.font.js delete mode 100644 lib/fonts/Encient_German_Gothic_400.font.js delete mode 100644 lib/fonts/Globus_500.font.js delete mode 100644 lib/fonts/Modernist_One_400.font.js delete mode 100644 lib/fonts/OdessaScript_500.font.js delete mode 100644 lib/fonts/Quake_Cyr.font.js delete mode 100644 lib/fonts/Tallys_400.font.js delete mode 100644 lib/fonts/Terminator_Cyr.font.js delete mode 100644 lib/fonts/Times_New_Roman.font.js delete mode 100644 lib/fonts/Vampire95.font.js diff --git a/lib/fonts/CA_BND_Web_Bold_700.font.js b/lib/fonts/CA_BND_Web_Bold_700.font.js deleted file mode 100644 index c5724a23..00000000 --- a/lib/fonts/CA_BND_Web_Bold_700.font.js +++ /dev/null @@ -1,27 +0,0 @@ -/*! - * The following copyright notice may not be removed under any circumstances. - * - * Copyright: - * Copyright (c) 2008 by Thomas Schostok {ths.nu} for Cape-Aronca.com. All rights - * reserved. - * - * Trademark: - * CA BND Web Bold is a trademark of Thomas Schostok {ths.nu} for Cape-Aronca.com. - * - * Full name: - * CABNDWebBold - * - * Description: - * Copyright (c) 2008 by Thomas Schostok {ths.nu} for Cape-Aronca.com. All rights - * reserved. - * - * Manufacturer: - * Thomas Schostok {ths.nu} for Cape-Aronca.com - * - * Designer: - * Thomas Schostok - * - * Vendor URL: - * www.cape-arcona.com - */ -Cufon.registerFont({"w":189,"face":{"font-family":"CA_BND_Web_Bold_700","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 0 0 0 0 0 0 0 0","ascent":"288","descent":"-72","x-height":"3","bbox":"-15 -291 285 65.8341","underline-thickness":"18","underline-position":"-18","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":87},"c":{"d":"112,-73r42,15v-9,34,-37,61,-69,61v-58,0,-71,-53,-71,-121v0,-39,32,-70,71,-70v32,0,60,25,69,60r-42,15v1,-40,-54,-45,-54,-7v0,35,-7,80,27,81v14,0,25,-16,27,-34","w":164,"k":{"w":7,"v":7}},"d":{"d":"85,-147v-35,0,-26,47,-27,81v0,15,12,27,27,27v36,0,26,-47,27,-82v0,-15,-13,-26,-27,-26xm155,-258r0,258r-43,0r0,-16v-14,4,-13,19,-36,19v-51,0,-62,-56,-62,-121v0,-47,49,-84,97,-65r0,-75r44,0","w":169,"k":{"u":-4}},"e":{"d":"109,-63r41,14v-12,30,-39,52,-68,52v-58,-2,-69,-54,-69,-121v0,-39,30,-70,69,-70v51,0,80,47,71,110r-97,0v-7,41,43,53,53,15xm109,-110v3,-22,-7,-37,-27,-37v-20,0,-29,15,-26,37r53,0","w":163,"k":{"v":7}},"f":{"d":"26,-148r-15,0r0,-37r15,0v-5,-53,24,-79,79,-73r0,44v-23,-2,-41,0,-35,29r35,0r0,37r-35,0r0,148r-44,0r0,-148","w":111},"g":{"d":"81,-147v-35,0,-26,47,-27,81v0,15,12,27,27,27v36,1,26,-47,27,-81v0,-15,-12,-27,-27,-27xm104,-170v8,1,3,-10,4,-15r43,0r0,181v2,68,-94,97,-129,38r34,-27v14,28,50,20,52,-12v-45,25,-97,-15,-97,-63v0,-63,9,-120,61,-120v19,0,25,8,32,18","w":165},"h":{"d":"67,-170v29,-39,94,-11,94,53r0,117r-44,0r0,-120v0,-15,-12,-27,-27,-27v-15,0,-27,12,-27,27r0,120r-43,0r0,-258r43,0r0,88r4,0","w":174},"j":{"d":"63,10r0,-195r-43,0r0,193v0,14,-19,14,-35,13r0,43v45,5,78,-14,78,-54xm66,-234v0,13,-11,24,-24,24v-14,0,-25,-11,-25,-24v0,-14,11,-24,25,-24v13,0,24,10,24,24","w":82},"k":{"d":"63,-130r41,-55r55,0r-61,76r67,109r-52,0r-42,-75v-15,12,-5,50,-8,75r-43,0r0,-258r43,0r0,128","w":166,"k":{"q":7,"o":7,"e":7,"d":11,"c":7}},"l":{"d":"20,-53r0,-205r43,0r0,203v0,13,14,13,27,12r0,43v-41,5,-70,-18,-70,-53","w":96,"k":{"y":4,"v":7}},"m":{"d":"67,-170v12,-26,62,-21,78,3v32,-36,112,-26,112,50r0,117r-44,0r0,-120v0,-15,-11,-27,-26,-27v-15,0,-27,12,-27,27r0,120r-43,0r0,-120v0,-15,-12,-27,-27,-27v-15,0,-27,12,-27,27r0,120r-43,0r0,-185r43,0v1,5,-4,16,4,15","w":275,"k":{"y":7,"w":7,"v":7}},"n":{"d":"63,-185v1,5,-4,16,4,15v29,-39,93,-11,93,53r0,117r-43,0r0,-120v0,-15,-12,-27,-27,-27v-15,0,-27,12,-27,27r0,120r-43,0r0,-185r43,0","w":178,"k":{"x":7,"y":7,"w":7,"v":7}},"o":{"d":"82,-39v34,-1,27,-46,27,-81v0,-15,-12,-27,-27,-27v-34,0,-25,46,-26,79v0,15,11,29,26,29xm82,-188v56,1,71,52,71,119v0,40,-32,72,-71,72v-57,0,-69,-54,-69,-120v0,-39,30,-71,69,-71","w":165,"k":{"x":7,"y":7,"w":7,"v":7}},"p":{"d":"90,-39v35,0,26,-47,27,-81v0,-15,-12,-27,-27,-27v-36,0,-26,47,-27,82v0,15,13,26,27,26xm63,-185v1,5,-4,16,4,15v29,-39,99,-11,93,53v12,76,-26,139,-97,114r0,67r-43,0r0,-249r43,0","w":174,"k":{"x":7,"y":7,"w":7,"v":7}},"q":{"d":"84,-147v-35,0,-25,47,-26,81v0,15,12,27,27,27v35,0,25,-48,26,-82v0,-15,-12,-26,-27,-26xm111,64r0,-80v-13,5,-14,19,-36,19v-51,0,-61,-56,-61,-120v0,-48,48,-85,97,-66r0,-2r44,0r0,249r-44,0","w":169},"r":{"d":"63,-185v1,5,-4,16,4,15v10,-21,42,-23,66,-9r-20,43v-19,-19,-50,-11,-50,16r0,120r-43,0r0,-185r43,0","w":132,"k":{".":22,",":22,"t":-7,"q":7}},"s":{"d":"11,-25r28,-28v13,15,75,24,73,-5v-1,-19,-28,-14,-44,-15v-29,-1,-51,-22,-51,-52v0,-74,96,-78,136,-40r-27,34v-11,-21,-68,-24,-66,4v1,14,20,13,42,14v36,1,54,26,54,54v0,80,-111,72,-145,34","w":166},"t":{"d":"11,-185r17,0r0,-73r44,0r0,73r27,0r0,37r-27,0r0,92v0,11,14,14,27,12r0,44v-41,5,-70,-16,-70,-52r0,-96r-18,0r0,-37","w":109},"u":{"d":"109,0r0,-16v-13,5,-13,19,-35,19v-34,0,-61,-23,-61,-71r0,-117r43,0r0,119v0,15,12,27,27,27v15,0,26,-12,26,-27r0,-119r44,0r0,185r-44,0","w":167},"v":{"d":"118,-185r47,0r-58,185r-45,0r-58,-185r47,0r34,121","w":168,"k":{".":22,",":22,"q":7,"o":7,"e":7,"d":7,"c":7}},"w":{"d":"172,0r-35,-112r-35,112r-44,0r-54,-185r45,0r31,118r35,-118r43,0r35,118r31,-118r46,0r-54,185r-44,0","w":273,"k":{".":22,",":22,"q":7,"o":7,"e":7,"d":7,"c":7}},"y":{"d":"167,-185r-68,198v-10,29,-27,57,-73,51r0,-43v28,5,30,-12,38,-33r-60,-173r46,0r35,106r36,-106r46,0","w":170,"k":{".":22,",":22,"q":7,"o":7,"e":7,"d":7,"c":7}},"z":{"d":"147,-148r-82,110r80,0r0,38r-134,0r0,-38r81,-109r-75,0r0,-38r130,0r0,37","w":157},"X":{"d":"112,-137r65,137r-48,0r-40,-83r-39,83r-48,0r63,-136r-56,-122r50,0r29,67r28,-67r50,0","w":178,"k":{"S":7,"O":4,"J":7,"C":7,"y":14,"o":7,"e":7}},"Y":{"d":"188,-258r-71,142r0,116r-44,0r0,-116r-71,-142r49,0r44,89r44,-89r49,0","w":190,"k":{"i":7,"a":29,"x":7,";":22,":":22,".":22,",":22,"S":7,"Q":7,"O":7,"J":40,"G":7,"C":7,"A":29,"z":14,"y":7,"w":7,"v":14,"u":14,"s":29,"r":22,"q":29,"p":22,"o":29,"n":14,"m":14,"g":29,"e":29,"d":29,"c":29}},"Z":{"d":"10,-258r147,0r0,37r-95,178r95,0r0,43r-150,0r0,-37r96,-178r-93,0r0,-43","w":164},"{":{"d":"127,-19r0,43v-67,-3,-94,-50,-85,-124r-22,-28r21,-28v-9,-75,17,-125,86,-127r0,44v-22,0,-41,14,-41,31r0,59r-16,21r16,21v-1,45,-6,89,41,88","w":137},"|":{"d":"20,33r0,-324r44,0r0,324r-44,0","w":83},"}":{"d":"11,24r0,-43v46,0,43,-43,41,-88r16,-21r-16,-21v1,-45,8,-91,-41,-90r0,-44v68,2,95,52,85,127r22,28r-22,28v9,74,-18,121,-85,124","w":137},"~":{"d":"61,-101r-41,0v4,-34,24,-58,49,-58v0,0,45,37,53,-2r39,0v-5,30,-20,58,-48,58v-18,0,-34,-15,-44,-15v-5,0,-8,6,-8,17","w":181},"A":{"d":"75,-101r33,0r-17,-63xm73,-258r35,0r72,258r-45,0r-17,-64r-54,0r-18,64r-44,0","w":181,"k":{"W":22,"V":29,"U":7,"T":29,"S":7,"C":7,"Y":32,"y":14,"w":14,"v":14}},"B":{"d":"63,-106r0,62v32,2,63,-1,63,-31v0,-30,-30,-34,-63,-31xm63,-214r0,63v33,3,63,-2,63,-32v0,-30,-30,-34,-63,-31xm20,-258r75,0v65,-3,100,86,53,129v47,43,12,129,-53,129r-75,0r0,-258","w":180,"k":{"W":4,"V":7,"T":7,"J":7,"A":4,"Z":4,"Y":7,"X":7}},"C":{"d":"89,-40v26,-1,36,-24,32,-55r44,18v0,45,-35,81,-76,81v-41,0,-75,-34,-75,-75r0,-115v0,-42,34,-76,75,-76v41,0,76,37,76,83r-44,16v4,-30,-6,-55,-32,-55v-53,0,-31,95,-31,147v0,17,14,31,31,31","w":175},"D":{"d":"63,-214r0,170v32,2,63,-1,63,-31v0,-62,30,-156,-63,-139xm20,-258r75,0v41,0,75,34,75,75r0,108v0,41,-34,75,-75,75r-75,0r0,-258","k":{"V":9,"T":7,"J":14,"A":7,"Z":7,"Y":7,"X":7}},"E":{"d":"63,-214r0,63r82,0r0,44r-82,0r0,63r107,0r0,44r-150,0r0,-258r150,0r0,44r-107,0","w":180,"k":{"w":7,"v":7}},"F":{"d":"63,-214r0,63r82,0r0,44r-82,0r0,107r-43,0r0,-258r150,0r0,44r-107,0","w":180,"k":{"a":18,"J":43,"C":7,"A":29,"y":14,"u":14,"r":14,"o":18,"e":18}},"G":{"d":"80,-102r0,-45r85,0r0,76v0,41,-35,75,-76,75v-41,0,-75,-34,-75,-75r0,-115v0,-42,34,-76,75,-76v41,0,76,37,76,83r-44,16v4,-30,-6,-55,-32,-55v-53,0,-31,95,-31,147v0,17,14,31,31,31v29,0,35,-29,32,-62r-41,0","w":184,"k":{"V":7,"Y":7,"X":7}},"H":{"d":"63,-258r0,107r63,0r0,-107r44,0r0,258r-44,0r0,-107r-63,0r0,107r-43,0r0,-258r43,0"},"I":{"d":"20,0r0,-258r44,0r0,258r-44,0","w":83},"J":{"d":"117,-258r44,0r0,187v0,41,-34,75,-75,75v-41,0,-75,-36,-75,-82r43,-16v-4,30,6,53,32,54v17,0,31,-14,31,-31r0,-187","w":180},"K":{"d":"21,0r0,-258r44,0r0,109r77,-109r53,0r-74,105r80,153r-55,0r-55,-110r-26,37r0,73r-44,0","w":208,"k":{"a":7,"U":14,"S":22,"Q":14,"O":14,"J":22,"G":14,"C":14,"y":25,"w":29,"v":29,"u":7,"o":14,"l":7,"e":14}},"L":{"d":"63,-258r0,213r107,0r0,45r-150,0r0,-258r43,0","w":169,"k":{"W":22,"V":29,"A":-18,"Z":-7,"Y":36,"X":-7,"y":7,"w":7,"v":7}},"M":{"d":"20,0r0,-258r38,0r52,99r52,-99r38,0r0,258r-44,0r0,-156r-46,85r-46,-85r0,156r-44,0","w":219},"N":{"d":"20,0r0,-258r40,0r66,149r0,-149r44,0r0,258r-41,0r-65,-144r0,144r-44,0"},"O":{"d":"89,-218v-54,0,-31,95,-31,147v0,17,14,31,31,31v55,0,32,-94,32,-147v0,-18,-15,-31,-32,-31xm14,-71r0,-116v0,-42,34,-75,75,-75v41,0,76,33,76,75r0,116v0,41,-35,75,-76,75v-41,0,-75,-34,-75,-75","w":178,"k":{"V":7,"Y":7,"X":4}},"P":{"d":"64,-214r0,62v33,3,62,-2,62,-32v0,-29,-30,-33,-62,-30xm20,-258r75,0v41,0,75,33,75,74v0,53,-44,84,-106,76r0,108r-44,0r0,-258","w":181,"k":{"a":7,"J":50,"A":29,"Z":4,"Y":7,"X":4,"o":7,"e":7}},"Q":{"d":"189,-7v-21,48,-65,23,-100,11v-41,0,-75,-34,-75,-75r0,-116v0,-42,34,-75,75,-75v41,0,76,33,76,75v0,66,16,144,-28,174v8,5,15,4,21,-8xm89,-218v-54,0,-31,95,-31,147v0,17,14,31,31,31v55,0,32,-94,32,-147v0,-18,-15,-31,-32,-31","w":188,"k":{"i":4,"W":14,"V":7,"Y":18}},"R":{"d":"64,-214r0,62v32,3,62,-1,62,-31v0,-29,-30,-34,-62,-31xm20,-258r75,0v76,-4,103,112,35,141r61,117r-55,0r-52,-108r-20,0r0,108r-44,0r0,-258","w":194,"k":{"V":14,"T":14,"J":14,"C":7,"Y":14,"u":7,"o":7,"e":7}},"S":{"d":"94,-152v41,13,73,35,73,81v0,41,-35,75,-76,75v-41,0,-74,-36,-74,-82r43,-16v-3,30,5,53,31,54v17,0,31,-14,31,-31v0,-16,-12,-30,-34,-38v-31,-10,-74,-29,-74,-77v0,-42,34,-76,75,-76v42,0,76,37,76,83r-44,16v4,-30,-6,-55,-32,-55v-17,0,-30,14,-30,32v0,18,16,28,35,34","w":181,"k":{"V":7,"A":7,"Y":7}},"T":{"d":"4,-258r150,0r0,44r-50,0r0,214r-45,0r0,-214r-55,0r0,-44","w":157,"k":{"a":29,".":22,",":22,"J":29,"C":4,"A":22,"y":22,"w":22,"u":22,"s":29,"r":29,"o":29,"e":29}},"U":{"d":"20,-71r0,-187r43,0r0,187v0,17,15,31,32,31v17,0,31,-14,31,-31r0,-187r44,0r0,187v0,41,-34,75,-75,75v-41,0,-75,-34,-75,-75","k":{"A":7}},"V":{"d":"204,-258r-81,258r-40,0r-81,-258r49,0r52,176r53,-176r48,0","w":205,"k":{"a":22,";":22,":":22,".":22,",":22,"S":7,"O":7,"J":36,"C":4,"A":29,"y":7,"u":7,"s":22,"r":14,"o":22,"e":22,"c":22}},"W":{"d":"135,-156r-40,156r-39,0r-54,-258r47,0r30,155r38,-155r36,0r39,156r30,-156r46,0r-55,258r-39,0","w":270,"k":{"a":11,";":22,":":22,".":22,",":22,"J":22,"A":22,"y":4,"u":7,"s":14,"r":7,"o":7,"e":7}},"!":{"d":"22,-63r0,-195r44,0r0,195r-44,0xm68,-22v0,13,-11,25,-24,25v-14,0,-24,-12,-24,-25v0,-14,10,-24,24,-24v13,0,24,10,24,24","w":88},"\"":{"d":"15,-214v-4,-22,-10,-41,-8,-68r47,0v1,26,-4,46,-7,68r-32,0xm72,-214v-4,-22,-10,-41,-8,-68r47,0v1,26,-4,46,-7,68r-32,0","w":118},"#":{"d":"236,-168v17,0,20,-53,0,-55v-18,0,-18,52,0,55xm236,-259v36,1,49,33,49,78v0,27,-24,49,-49,49v-38,-1,-48,-34,-48,-79v0,-27,22,-48,48,-48xm20,0r0,-258r40,0r66,149r0,-149r44,0r0,258r-41,0r-65,-144r0,144r-44,0","w":295},"$":{"d":"73,-260r0,-20r37,0r0,21v32,10,55,41,55,80r-44,16v1,-20,1,-37,-11,-47r0,64v33,14,57,35,57,75v0,35,-25,65,-57,73r0,21r-37,0r0,-21v-32,-9,-56,-41,-56,-80r43,-16v0,21,-1,40,13,48r0,-69v-28,-12,-59,-31,-59,-71v0,-36,26,-66,59,-74xm73,-213v-18,10,-19,41,0,51r0,-51xm110,-46v15,-12,17,-36,0,-50r0,50","w":181},"%":{"d":"48,0r111,-258r44,0r-112,258r-43,0xm198,-61v15,-1,16,-43,0,-43v-15,0,-9,17,-10,30v0,6,2,13,10,13xm198,-130v26,0,41,24,39,58v-3,46,-75,48,-78,1v-2,-35,11,-59,39,-59xm59,-156v15,-1,16,-42,0,-43v-15,-1,-10,17,-11,30v0,6,3,13,11,13xm59,-225v26,0,41,24,39,58v-3,46,-75,48,-78,1v-2,-35,11,-59,39,-59","w":256},"&":{"d":"117,-106r0,-44r61,0r0,44r-8,0v7,64,-20,108,-75,110v-66,3,-99,-88,-54,-133v-45,-43,-12,-133,54,-133v42,0,75,37,75,83r-44,16v3,-30,-5,-53,-31,-54v-19,1,-31,15,-31,36v0,17,17,31,39,31r0,44v-47,-4,-52,66,-8,66v31,0,34,-33,31,-66r-9,0","w":198},"'":{"d":"28,-214v-4,-22,-10,-41,-8,-68r47,0v1,27,-4,46,-8,68r-31,0","w":86},"(":{"d":"105,-19r0,43v-47,0,-85,-34,-85,-75r0,-157v0,-41,38,-75,85,-75r0,44v-23,0,-41,14,-41,31r0,157v0,17,18,32,41,32","w":115},")":{"d":"11,24r0,-43v23,0,41,-15,41,-32r0,-157v0,-17,-18,-31,-41,-31r0,-44v47,0,85,34,85,75r0,157v0,41,-38,75,-85,75","w":115},"*":{"d":"110,-48r-44,0r0,-42r-31,22r-22,-39r32,-21r-32,-21r22,-39r31,23r0,-43r44,0r0,43r31,-23r22,39r-32,21r32,21r-22,38r-31,-22r0,43","w":175},"+":{"d":"20,-82r0,-44r42,0r0,-42r44,0r0,42r42,0r0,44r-42,0r0,42r-44,0r0,-42r-42,0","w":167},",":{"d":"28,23r2,-26v-18,-11,-10,-44,14,-43v33,2,22,43,15,69r-31,0","w":88},"-":{"d":"20,-83r0,-42r121,0r0,42r-121,0","w":160},".":{"d":"68,-22v0,13,-11,25,-24,25v-14,0,-24,-12,-24,-25v0,-14,10,-24,24,-24v13,0,24,10,24,24","w":88},"\/":{"d":"20,0r111,-258r48,0r-111,258r-48,0","w":198},"0":{"d":"95,-218v-55,0,-32,95,-32,147v0,17,15,31,32,31v54,0,31,-95,31,-147v0,-18,-14,-31,-31,-31xm20,-71r0,-116v0,-42,34,-75,75,-75v41,0,75,33,75,75r0,116v0,41,-34,75,-75,75v-41,0,-75,-34,-75,-75"},"1":{"d":"50,-230r48,-28r38,0r0,258r-44,0r0,-205r-42,25r0,-50","k":{"'":29,"\"":29}},"2":{"d":"20,-38r103,-139v10,-19,-8,-41,-28,-41v-26,0,-34,25,-31,55r-44,-18v0,-45,34,-81,75,-81v54,0,96,62,63,109r-78,109r90,0r0,44r-150,0r0,-38"},"3":{"d":"95,-262v65,0,101,89,53,133v46,43,14,133,-53,133v-41,0,-75,-37,-75,-83r43,-16v-3,30,5,54,32,55v18,-1,31,-15,31,-35v0,-17,-19,-31,-41,-31r0,-44v47,5,56,-67,10,-67v-26,0,-36,24,-32,54r-43,-17v0,-45,34,-82,75,-82"},"4":{"d":"104,-128r0,-48r-31,48r31,0xm170,-128r0,44r-25,0r0,84r-41,0r0,-84r-84,0r0,-37r88,-137r37,0r0,130r25,0"},"5":{"d":"20,-74r43,-21v-3,30,5,54,32,55v28,0,33,-28,31,-60v-2,-36,-48,-38,-69,-16r-37,-11r0,-131r144,0r0,45r-101,0r0,42v64,-17,107,23,107,100v0,41,-34,75,-75,75v-41,0,-75,-36,-75,-78"},"6":{"d":"95,-124v-25,1,-32,22,-32,52v0,17,15,32,32,32v25,-1,31,-24,31,-53v0,-17,-14,-31,-31,-31xm168,-199r-42,12v0,-17,-14,-31,-31,-31v-27,1,-36,25,-32,56v59,-21,107,20,107,90v0,41,-34,76,-75,76v-41,0,-75,-35,-75,-76r0,-115v0,-41,34,-75,75,-75v35,0,65,26,73,63"},"7":{"d":"20,-204r0,-54r150,0r0,36r-85,222r-48,0r82,-213r-55,0r0,9r-44,0"},"8":{"d":"95,-40v18,-1,31,-15,31,-35v0,-17,-14,-30,-31,-30v-18,0,-31,14,-31,34v0,17,14,31,31,31xm95,-150v19,-1,31,-14,31,-36v0,-18,-14,-31,-31,-31v-19,0,-31,15,-31,37v0,17,14,30,31,30xm95,-262v65,0,101,90,53,134v46,43,14,132,-53,132v-65,0,-100,-88,-53,-132v-47,-42,-14,-134,53,-134"},"9":{"d":"95,-135v25,0,31,-22,31,-52v0,-17,-14,-31,-31,-31v-25,1,-31,23,-31,53v0,17,14,30,31,30xm22,-57r42,-15v0,17,14,32,31,32v27,-1,34,-26,31,-57v-57,23,-106,-19,-106,-90v0,-41,34,-75,75,-75v41,0,75,34,75,75r0,115v0,41,-34,76,-75,76v-34,0,-63,-25,-73,-61"},":":{"d":"68,-22v0,13,-11,25,-24,25v-14,0,-24,-12,-24,-25v0,-14,10,-24,24,-24v13,0,24,10,24,24xm68,-123v0,13,-11,24,-24,24v-14,0,-24,-11,-24,-24v0,-14,10,-24,24,-24v13,0,24,10,24,24","w":88},";":{"d":"68,-123v0,13,-11,24,-24,24v-14,0,-24,-11,-24,-24v0,-14,10,-24,24,-24v13,0,24,10,24,24xm28,23r2,-26v-18,-11,-10,-44,14,-43v33,2,22,43,15,69r-31,0","w":88},"<":{"d":"20,-109r0,-41r151,-84r0,51r-96,53r96,53r0,51","w":190},"=":{"d":"20,-48r0,-45r134,0r0,45r-134,0xm20,-116r0,-44r134,0r0,44r-134,0","w":173},">":{"d":"171,-150r0,41r-151,83r0,-51r96,-53r-96,-53r0,-51","w":190},"?":{"d":"63,-63v-12,-57,38,-81,54,-124v0,-17,-14,-31,-31,-31v-26,0,-34,25,-31,55r-44,-18v0,-45,34,-81,75,-81v54,0,95,61,63,109v-17,26,-50,53,-41,90r-45,0xm110,-22v0,13,-11,25,-24,25v-14,0,-25,-12,-25,-25v0,-14,11,-24,25,-24v13,0,24,10,24,24","w":171},"@":{"d":"85,-37v19,-1,22,-18,20,-38v-21,-2,-43,4,-42,20v0,11,9,18,22,18xm199,-116r0,63v1,46,-49,70,-82,47v-39,24,-101,-5,-94,-47v-2,-30,26,-67,82,-63v-3,-26,-39,-19,-49,-1r-27,-34v34,-36,123,-34,118,35v-1,27,4,55,-4,77v6,0,16,-4,16,-10r0,-70v2,-62,-64,-81,-114,-56r-25,-31v74,-46,187,-12,179,90","w":219},"[":{"d":"64,-242r0,226r21,0r0,44r-65,0r0,-315r65,0r0,45r-21,0","w":104},"\\":{"d":"68,-258r111,258r-48,0r-111,-258r48,0","w":198},"]":{"d":"41,-16r0,-226r-21,0r0,-45r65,0r0,315r-65,0r0,-44r21,0","w":104},"^":{"d":"87,-257r34,0r67,108r-50,0r-34,-52r-35,52r-49,0","w":207},"_":{"d":"-2,55r0,-44r150,0r0,44r-150,0","w":145},"`":{"d":"64,-261r21,65r-29,13r-36,-58","w":105},"b":{"d":"90,-39v35,0,26,-47,27,-81v0,-15,-12,-27,-27,-27v-36,0,-26,47,-27,82v0,15,13,26,27,26xm20,0r0,-258r43,0r0,88v14,-5,13,-18,36,-18v51,0,61,56,61,120v0,48,-50,86,-97,65r0,3r-43,0","w":172},"x":{"d":"55,-94r-51,-91r48,0r30,55r31,-55r49,0r-51,91r50,94r-48,0r-31,-59r-30,59r-48,0","w":165,"k":{"q":7,"g":7,"e":7,"d":7,"c":7}},"a":{"d":"81,-37v27,0,34,-12,31,-38v-25,0,-59,-4,-59,20v0,13,11,18,28,18xm76,3v-43,0,-65,-25,-65,-56v0,-28,17,-63,70,-63r31,0v1,-22,0,-32,-28,-31v-16,0,-30,3,-39,16r-28,-34v42,-37,139,-35,139,39r0,126r-44,0r0,-16v-13,5,-14,19,-36,19","w":175,"k":{"b":7,"y":7,"w":7,"v":7}},"i":{"d":"20,-185r0,185r43,0r0,-185r-43,0xm66,-234v0,13,-11,24,-24,24v-14,0,-24,-11,-24,-24v0,-14,10,-24,24,-24v13,0,24,10,24,24","w":83},"\u00a0":{"w":87}}}); diff --git a/lib/fonts/CrashCTT_400.font.js b/lib/fonts/CrashCTT_400.font.js deleted file mode 100644 index ef6b9485..00000000 --- a/lib/fonts/CrashCTT_400.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:156,face:{"font-family":"CrashCTT_400","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"5 2 0 0 0 0 0 0 0 0",ascent:"288",descent:"-72",bbox:"-16.0909 -266 279.136 78.8853","underline-thickness":"14.4","underline-position":"-21.6","unicode-range":"U+0020-U+00FF"},glyphs:{" ":{w:108},"\uf020":{w:108},"!":{d:"35,-88v1,-41,-13,-92,-7,-141v0,-2,0,-4,-2,-7v20,0,22,3,43,0v13,10,-5,44,3,57v-6,26,-7,61,-8,94v-5,-6,-20,-2,-29,-3xm31,-174v6,0,5,1,6,-7v1,-5,0,-8,-2,-7v-3,2,-4,6,-4,14xm33,-158v6,2,3,-6,4,-10v-6,-2,-3,6,-4,10xm61,-124v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm27,-18v3,-21,-12,-53,10,-49r32,-1v5,13,3,31,4,50r-46,0",w:103},"\uf021":{d:"35,-88v1,-41,-13,-92,-7,-141v0,-2,0,-4,-2,-7v20,0,22,3,43,0v13,10,-5,44,3,57v-6,26,-7,61,-8,94v-5,-6,-20,-2,-29,-3xm31,-174v6,0,5,1,6,-7v1,-5,0,-8,-2,-7v-3,2,-4,6,-4,14xm33,-158v6,2,3,-6,4,-10v-6,-2,-3,6,-4,10xm61,-124v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm27,-18v3,-21,-12,-53,10,-49r32,-1v5,13,3,31,4,50r-46,0",w:103},'"':{d:"100,-221v28,6,-6,36,3,56v-32,15,-24,-35,-34,-58xm56,-221v-8,21,5,67,-34,60v-3,-8,-3,-19,-1,-29v1,-7,-19,-27,-5,-31v8,5,24,-1,40,0xm101,-198v4,0,6,-3,6,-10v-6,0,-5,0,-6,10xm95,-200v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm99,-188v-3,4,-3,21,1,11v2,-2,3,-12,1,-14v-1,0,-1,1,-2,3xm27,-168v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13",w:128},"\uf022":{d:"100,-221v28,6,-6,36,3,56v-32,15,-24,-35,-34,-58xm56,-221v-8,21,5,67,-34,60v-3,-8,-3,-19,-1,-29v1,-7,-19,-27,-5,-31v8,5,24,-1,40,0xm101,-198v4,0,6,-3,6,-10v-6,0,-5,0,-6,10xm95,-200v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm99,-188v-3,4,-3,21,1,11v2,-2,3,-12,1,-14v-1,0,-1,1,-2,3xm27,-168v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13",w:128},"#":{d:"202,-80v7,23,-5,43,-37,36v-6,2,-7,16,-7,-1v0,-7,-4,-13,-9,-13v-13,0,-11,31,3,31v3,-1,7,-9,6,3v6,23,-12,36,-34,22v4,-24,14,-52,-27,-45v4,14,-8,21,-5,38v8,8,-4,11,-11,12r-23,2v1,-19,12,-32,5,-50v-15,-3,-40,5,-31,-24v0,-21,23,-9,39,-12v4,-10,9,-22,11,-34v-3,0,-5,1,-5,4r0,-16r-35,0v-5,-14,7,-20,5,-37v23,-3,43,11,42,-23v2,-8,-2,-20,3,-24r31,1v-6,11,-1,33,-7,45r33,0v-3,-18,7,-29,9,-46r28,0v3,16,-11,37,-5,46r35,4v1,12,-9,21,-3,33r-41,0v1,20,-1,30,-4,48r34,0xm62,-132v0,-4,-4,-5,-9,-5v-1,5,2,5,9,5xm73,-134v3,0,7,1,6,-3v-3,0,-7,-1,-6,3xm82,-123v5,-4,11,-10,14,-15v-9,0,-14,5,-14,15xm141,-127v-34,-6,-47,13,-37,46r32,0v-2,-13,10,-36,5,-46xm74,-104v0,-1,2,-8,2,-4v0,2,-1,8,-2,4xm161,-77v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm145,-40v0,-7,4,-13,7,-8r0,14v-5,1,-7,-1,-7,-6",w:253},"\uf023":{d:"202,-80v7,23,-5,43,-37,36v-6,2,-7,16,-7,-1v0,-7,-4,-13,-9,-13v-13,0,-11,31,3,31v3,-1,7,-9,6,3v6,23,-12,36,-34,22v4,-24,14,-52,-27,-45v4,14,-8,21,-5,38v8,8,-4,11,-11,12r-23,2v1,-19,12,-32,5,-50v-15,-3,-40,5,-31,-24v0,-21,23,-9,39,-12v4,-10,9,-22,11,-34v-3,0,-5,1,-5,4r0,-16r-35,0v-5,-14,7,-20,5,-37v23,-3,43,11,42,-23v2,-8,-2,-20,3,-24r31,1v-6,11,-1,33,-7,45r33,0v-3,-18,7,-29,9,-46r28,0v3,16,-11,37,-5,46r35,4v1,12,-9,21,-3,33r-41,0v1,20,-1,30,-4,48r34,0xm62,-132v0,-4,-4,-5,-9,-5v-1,5,2,5,9,5xm73,-134v3,0,7,1,6,-3v-3,0,-7,-1,-6,3xm82,-123v5,-4,11,-10,14,-15v-9,0,-14,5,-14,15xm141,-127v-34,-6,-47,13,-37,46r32,0v-2,-13,10,-36,5,-46xm74,-104v0,-1,2,-8,2,-4v0,2,-1,8,-2,4xm161,-77v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm145,-40v0,-7,4,-13,7,-8r0,14v-5,1,-7,-1,-7,-6",w:253},"$":{d:"42,-64v11,15,2,32,24,37v5,-18,-2,-40,2,-56v-3,-14,-28,-9,-33,-21v-25,-12,-29,-47,-22,-85v9,-16,27,-29,51,-31v14,-6,-11,-25,25,-20v-1,7,0,13,1,17v32,8,57,25,54,68r-41,0v-2,-4,-5,-22,-10,-27v-3,-1,-4,0,-4,4v3,18,-10,56,13,52v22,3,26,30,41,40v3,3,4,11,4,20v-4,-6,-6,-4,-6,3v0,15,-12,19,-6,37v7,-1,5,-16,11,-17v2,26,-14,48,-42,49v-16,-3,-17,14,-13,27v-4,3,-20,0,-22,-1r-4,-21v-36,4,-61,-33,-60,-75r37,0xm36,-183v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm54,-185v-5,0,-14,5,-12,12v8,0,12,-4,12,-12xm65,-179v-21,3,-13,38,0,42v5,-10,3,-26,0,-42xm91,-82v-1,17,-7,67,13,42v6,-18,2,-38,-13,-42xm139,-76v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm145,-63v4,5,5,7,3,11xm42,-23v3,-5,-5,-9,-7,-4v0,2,3,4,7,4xm45,-6r13,0v0,-5,-3,-7,-8,-7v-4,0,-5,2,-5,7"},"\uf024":{d:"42,-64v11,15,2,32,24,37v5,-18,-2,-40,2,-56v-3,-14,-28,-9,-33,-21v-25,-12,-29,-47,-22,-85v9,-16,27,-29,51,-31v14,-6,-11,-25,25,-20v-1,7,0,13,1,17v32,8,57,25,54,68r-41,0v-2,-4,-5,-22,-10,-27v-3,-1,-4,0,-4,4v3,18,-10,56,13,52v22,3,26,30,41,40v3,3,4,11,4,20v-4,-6,-6,-4,-6,3v0,15,-12,19,-6,37v7,-1,5,-16,11,-17v2,26,-14,48,-42,49v-16,-3,-17,14,-13,27v-4,3,-20,0,-22,-1r-4,-21v-36,4,-61,-33,-60,-75r37,0xm36,-183v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm54,-185v-5,0,-14,5,-12,12v8,0,12,-4,12,-12xm65,-179v-21,3,-13,38,0,42v5,-10,3,-26,0,-42xm91,-82v-1,17,-7,67,13,42v6,-18,2,-38,-13,-42xm139,-76v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm145,-63v4,5,5,7,3,11xm42,-23v3,-5,-5,-9,-7,-4v0,2,3,4,7,4xm45,-6r13,0v0,-5,-3,-7,-8,-7v-4,0,-5,2,-5,7"},"%":{d:"14,-135v-13,-46,1,-95,39,-99v37,-4,57,43,47,86v-8,35,-52,56,-76,22v-4,-3,-7,-6,-10,-9xm48,-11r108,-220v26,-4,26,19,10,32v0,-4,4,-13,0,-14v-3,7,-18,13,-13,27v4,3,6,-7,10,-8v-15,47,-43,85,-59,131v-7,20,-24,31,-29,52r-27,0xm57,-134v26,-6,15,-50,10,-71v-1,-2,-13,-5,-16,-5v-15,18,-18,63,6,76xm30,-173v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm30,-165v-4,0,-1,6,-1,9v0,3,1,4,3,4v5,-1,3,-15,-2,-13xm122,-137v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7xm180,-131v65,14,49,145,-21,123v-43,-13,-42,-105,-3,-119v8,-7,19,-4,24,-4xm172,-105v-22,11,-18,56,-5,73v26,5,21,-23,23,-47v-2,-11,-4,-25,-18,-26xm154,-95v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm193,-76v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm191,-41v16,1,11,-10,11,-23v-6,3,-9,16,-11,23",w:234},"\uf025":{d:"14,-135v-13,-46,1,-95,39,-99v37,-4,57,43,47,86v-8,35,-52,56,-76,22v-4,-3,-7,-6,-10,-9xm48,-11r108,-220v26,-4,26,19,10,32v0,-4,4,-13,0,-14v-3,7,-18,13,-13,27v4,3,6,-7,10,-8v-15,47,-43,85,-59,131v-7,20,-24,31,-29,52r-27,0xm57,-134v26,-6,15,-50,10,-71v-1,-2,-13,-5,-16,-5v-15,18,-18,63,6,76xm30,-173v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm30,-165v-4,0,-1,6,-1,9v0,3,1,4,3,4v5,-1,3,-15,-2,-13xm122,-137v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7xm180,-131v65,14,49,145,-21,123v-43,-13,-42,-105,-3,-119v8,-7,19,-4,24,-4xm172,-105v-22,11,-18,56,-5,73v26,5,21,-23,23,-47v-2,-11,-4,-25,-18,-26xm154,-95v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm193,-76v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm191,-41v16,1,11,-10,11,-23v-6,3,-9,16,-11,23",w:234},"&":{d:"115,-18v-14,5,-24,20,-41,20v-47,0,-75,-29,-67,-83v3,-23,23,-40,40,-51v-24,-16,-15,-45,-11,-71v12,-23,31,-29,64,-25v21,18,31,39,23,63v0,4,1,7,3,10v-8,12,-21,20,-26,35v6,11,15,39,23,15v11,3,38,-7,36,6v-14,23,-27,55,-1,75r12,16v2,3,2,4,0,3r-44,-1xm87,-195v-10,-7,-20,7,-19,20v-2,20,19,35,25,10v6,-13,2,-24,-6,-30xm105,-176v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm58,-163v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm62,-160v-6,2,-5,5,1,4v4,-1,5,-4,-1,-4xm47,-72v-6,27,32,47,47,21v-2,-18,-23,-34,-29,-51v-5,9,-16,18,-18,30xm136,-71v-1,-7,-21,-13,-21,-2v0,4,1,7,4,9v3,0,3,-2,1,-8v-1,-2,0,-3,1,-2v4,1,12,0,10,7v3,0,5,-2,5,-4xm125,-58v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:167},"\uf026":{d:"115,-18v-14,5,-24,20,-41,20v-47,0,-75,-29,-67,-83v3,-23,23,-40,40,-51v-24,-16,-15,-45,-11,-71v12,-23,31,-29,64,-25v21,18,31,39,23,63v0,4,1,7,3,10v-8,12,-21,20,-26,35v6,11,15,39,23,15v11,3,38,-7,36,6v-14,23,-27,55,-1,75r12,16v2,3,2,4,0,3r-44,-1xm87,-195v-10,-7,-20,7,-19,20v-2,20,19,35,25,10v6,-13,2,-24,-6,-30xm105,-176v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm58,-163v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm62,-160v-6,2,-5,5,1,4v4,-1,5,-4,-1,-4xm47,-72v-6,27,32,47,47,21v-2,-18,-23,-34,-29,-51v-5,9,-16,18,-18,30xm136,-71v-1,-7,-21,-13,-21,-2v0,4,1,7,4,9v3,0,3,-2,1,-8v-1,-2,0,-3,1,-2v4,1,12,0,10,7v3,0,5,-2,5,-4xm125,-58v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:167},"'":{d:"41,-145v-28,1,-23,-36,-28,-60r44,2v-5,15,-4,46,-16,58xm25,-173v8,1,4,-12,6,-17v-8,-1,-6,10,-6,17xm26,-161v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7",w:72},"\uf027":{d:"41,-145v-28,1,-23,-36,-28,-60r44,2v-5,15,-4,46,-16,58xm25,-173v8,1,4,-12,6,-17v-8,-1,-6,10,-6,17xm26,-161v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7",w:72},"(":{d:"18,-98v12,-33,16,-80,37,-105v10,1,24,-1,32,2v-27,53,-29,129,-26,188v0,2,2,6,7,12v-1,24,10,47,16,65v2,16,-17,7,-28,7v-17,-25,-28,-56,-32,-93v-1,-4,-3,-8,-6,-10v6,-19,-2,-41,0,-66xm45,-82v13,2,13,-23,5,-27v-1,12,1,11,-7,9xm53,19v4,-1,6,9,10,8r0,-13v-7,0,-10,2,-10,5xm61,33v-3,-2,-12,-5,-10,-11v-5,-1,-2,6,-3,9v4,0,10,5,13,2",w:100},"\uf028":{d:"18,-98v12,-33,16,-80,37,-105v10,1,24,-1,32,2v-27,53,-29,129,-26,188v0,2,2,6,7,12v-1,24,10,47,16,65v2,16,-17,7,-28,7v-17,-25,-28,-56,-32,-93v-1,-4,-3,-8,-6,-10v6,-19,-2,-41,0,-66xm45,-82v13,2,13,-23,5,-27v-1,12,1,11,-7,9xm53,19v4,-1,6,9,10,8r0,-13v-7,0,-10,2,-10,5xm61,33v-3,-2,-12,-5,-10,-11v-5,-1,-2,6,-3,9v4,0,10,5,13,2",w:100},")":{d:"14,33v34,-77,25,-188,-3,-267v16,1,34,-1,35,16v27,31,27,88,35,138v-6,7,-5,19,-5,32v-11,11,-5,38,-16,50v-12,9,-9,28,-18,40r-29,0v0,-2,0,-5,1,-9xm52,-175v1,-3,2,-10,-4,-8v-1,5,1,18,4,8xm45,-153v2,10,18,17,16,-3v1,-4,-1,-12,-3,-12v-9,0,-13,5,-13,15xm50,-153v-1,-4,7,-11,6,-1v1,4,-5,1,-6,1",w:100},"\uf029":{d:"14,33v34,-77,25,-188,-3,-267v16,1,34,-1,35,16v27,31,27,88,35,138v-6,7,-5,19,-5,32v-11,11,-5,38,-16,50v-12,9,-9,28,-18,40r-29,0v0,-2,0,-5,1,-9xm52,-175v1,-3,2,-10,-4,-8v-1,5,1,18,4,8xm45,-153v2,10,18,17,16,-3v1,-4,-1,-12,-3,-12v-9,0,-13,5,-13,15xm50,-153v-1,-4,7,-11,6,-1v1,4,-5,1,-6,1",w:100},"*":{d:"43,-171v-6,-12,-38,-6,-26,-27v3,-5,4,-9,5,-12r22,12v2,-8,7,-24,4,-33v21,-9,27,7,21,33v6,7,17,-8,24,-10v15,16,-1,30,-16,33v1,8,9,26,15,31v-1,6,-10,11,-16,13v-3,-10,-14,-17,-17,-27v-4,8,-10,25,-18,27v-16,-8,-15,-30,2,-40xm30,-185v3,0,10,-2,8,-6v1,-3,-6,-3,-11,-3v0,4,0,10,3,9xm71,-166v2,-4,-3,-7,-5,-4v0,3,2,4,5,4",w:120},"\uf02a":{d:"43,-171v-6,-12,-38,-6,-26,-27v3,-5,4,-9,5,-12r22,12v2,-8,7,-24,4,-33v21,-9,27,7,21,33v6,7,17,-8,24,-10v15,16,-1,30,-16,33v1,8,9,26,15,31v-1,6,-10,11,-16,13v-3,-10,-14,-17,-17,-27v-4,8,-10,25,-18,27v-16,-8,-15,-30,2,-40xm30,-185v3,0,10,-2,8,-6v1,-3,-6,-3,-11,-3v0,4,0,10,3,9xm71,-166v2,-4,-3,-7,-5,-4v0,3,2,4,5,4",w:120},"+":{d:"88,-111v2,-20,2,-55,0,-79v17,-7,31,2,28,24v-2,19,-5,35,-3,55r77,0v5,4,-4,23,3,25v-25,4,-52,-3,-72,4v-5,0,-1,-4,-6,-4v1,21,-6,60,2,81v-11,-3,-31,7,-29,-8v3,-23,2,-52,2,-72v-25,-2,-48,-2,-68,3v-1,-9,-15,-5,-8,-18v0,-4,-2,-8,-5,-13v21,6,54,0,79,2xm104,-158v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm106,-138r0,-10v-7,-2,-11,4,-4,8xm80,-62v-1,-9,0,-29,6,-15v2,5,0,16,-6,15",w:203},"\uf02b":{d:"88,-111v2,-20,2,-55,0,-79v17,-7,31,2,28,24v-2,19,-5,35,-3,55r77,0v5,4,-4,23,3,25v-25,4,-52,-3,-72,4v-5,0,-1,-4,-6,-4v1,21,-6,60,2,81v-11,-3,-31,7,-29,-8v3,-23,2,-52,2,-72v-25,-2,-48,-2,-68,3v-1,-9,-15,-5,-8,-18v0,-4,-2,-8,-5,-13v21,6,54,0,79,2xm104,-158v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm106,-138r0,-10v-7,-2,-11,4,-4,8xm80,-62v-1,-9,0,-29,6,-15v2,5,0,16,-6,15",w:203},",":{d:"45,39v18,2,21,-11,20,-30r-39,0v19,-15,20,-27,20,-48v14,2,36,-2,45,5v0,45,2,94,-42,98v-3,-6,-2,-19,-4,-25xm86,-22v1,-3,-3,-5,-6,-3v-2,0,-3,2,-3,5v5,0,8,-1,9,-2xm80,-11v-3,4,-9,5,-7,-3v-7,-2,-3,7,-4,11v11,0,17,-4,17,-12v-3,-1,-5,2,-6,4",w:101},"\uf02c":{d:"45,39v18,2,21,-11,20,-30r-39,0v19,-15,20,-27,20,-48v14,2,36,-2,45,5v0,45,2,94,-42,98v-3,-6,-2,-19,-4,-25xm86,-22v1,-3,-3,-5,-6,-3v-2,0,-3,2,-3,5v5,0,8,-1,9,-2xm80,-11v-3,4,-9,5,-7,-3v-7,-2,-3,7,-4,11v11,0,17,-4,17,-12v-3,-1,-5,2,-6,4",w:101},"-":{d:"94,-65v-29,-1,-53,4,-75,-1v2,-17,-3,-25,0,-37v21,-6,46,-2,71,0v3,10,4,22,4,38xm79,-75v2,-12,-16,-10,-23,-10v-2,15,17,1,23,10",w:114},"\uf02d":{d:"94,-65v-29,-1,-53,4,-75,-1v2,-17,-3,-25,0,-37v21,-6,46,-2,71,0v3,10,4,22,4,38xm79,-75v2,-12,-16,-10,-23,-10v-2,15,17,1,23,10",w:114},".":{d:"27,-12v-3,-30,-6,-56,25,-51v32,-2,13,29,20,51r-45,0xm52,-34v-6,0,-18,0,-14,8v9,0,14,-2,14,-8",w:101},"\uf02e":{d:"27,-12v-3,-30,-6,-56,25,-51v32,-2,13,29,20,51r-45,0xm52,-34v-6,0,-18,0,-14,8v9,0,14,-2,14,-8",w:101},"/":{d:"53,-58v-7,39,-26,71,-35,109r-23,0v22,-72,49,-138,68,-215v5,-20,18,-40,23,-60r20,1v0,15,-6,29,-12,38v-2,0,-2,-2,-2,-7v-14,3,4,19,-4,32v-5,-3,-9,-3,-11,4v0,4,-4,12,1,12v4,-6,7,-16,5,0v-1,7,-2,17,-10,18v-10,19,-3,54,-20,68xm69,-130v7,1,8,-6,2,-6v-1,1,-2,3,-2,6",w:103},"\uf02f":{d:"53,-58v-7,39,-26,71,-35,109r-23,0v22,-72,49,-138,68,-215v5,-20,18,-40,23,-60r20,1v0,15,-6,29,-12,38v-2,0,-2,-2,-2,-7v-14,3,4,19,-4,32v-5,-3,-9,-3,-11,4v0,4,-4,12,1,12v4,-6,7,-16,5,0v-1,7,-2,17,-10,18v-10,19,-3,54,-20,68xm69,-130v7,1,8,-6,2,-6v-1,1,-2,3,-2,6",w:103},"0":{d:"8,-66v-1,-69,-5,-144,54,-154v18,-3,49,-4,54,9v38,32,45,133,18,180v-4,39,-59,49,-92,32v-23,-12,-26,-41,-34,-67xm73,-29v48,0,24,-67,35,-106v-1,-34,-36,-70,-53,-26v-9,24,-7,55,-4,84v2,20,3,48,22,48xm26,-132r0,16v9,3,-2,-13,9,-11r0,7v4,0,5,0,4,-1v-2,0,-6,-4,-13,-11xm116,-116v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm37,-118v-6,-2,-5,3,-5,8v3,0,5,-3,5,-8xm118,-96v3,1,6,0,6,-3v-1,-4,-5,-4,-11,-3v0,7,-6,17,-1,21v3,-3,6,-9,5,0r5,0v1,-10,-6,-6,-4,-15xm116,-51v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm89,-13v-2,0,-2,0,-2,2v0,4,1,4,4,3v2,-2,2,-5,-2,-5",w:158},"\uf030":{d:"8,-66v-1,-69,-5,-144,54,-154v18,-3,49,-4,54,9v38,32,45,133,18,180v-4,39,-59,49,-92,32v-23,-12,-26,-41,-34,-67xm73,-29v48,0,24,-67,35,-106v-1,-34,-36,-70,-53,-26v-9,24,-7,55,-4,84v2,20,3,48,22,48xm26,-132r0,16v9,3,-2,-13,9,-11r0,7v4,0,5,0,4,-1v-2,0,-6,-4,-13,-11xm116,-116v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm37,-118v-6,-2,-5,3,-5,8v3,0,5,-3,5,-8xm118,-96v3,1,6,0,6,-3v-1,-4,-5,-4,-11,-3v0,7,-6,17,-1,21v3,-3,6,-9,5,0r5,0v1,-10,-6,-6,-4,-15xm116,-51v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm89,-13v-2,0,-2,0,-2,2v0,4,1,4,4,3v2,-2,2,-5,-2,-5",w:158},"1":{d:"33,-182v23,2,43,-15,49,-38r14,0v0,-3,1,-5,4,-5v27,0,9,32,17,50v-5,47,3,89,-3,132v7,12,0,28,0,42v-16,-4,-30,10,-43,0r-1,-155r-14,6v-5,0,-6,-1,-5,-5v-18,13,-20,-5,-18,-25r0,-2xm104,-180v3,0,7,-1,6,-4v-3,0,-9,-4,-9,0v0,2,1,4,3,4xm104,-72v6,0,4,0,5,-9v1,-3,1,-4,-2,-2v-2,1,-3,5,-3,11xm104,-59v-1,-2,-3,-3,-4,-2v-9,16,8,14,4,2xm101,-37v1,3,11,7,10,-3v0,-5,-2,-7,-8,-7v1,7,0,8,-2,10",w:174},"\uf031":{d:"33,-182v23,2,43,-15,49,-38r14,0v0,-3,1,-5,4,-5v27,0,9,32,17,50v-5,47,3,89,-3,132v7,12,0,28,0,42v-16,-4,-30,10,-43,0r-1,-155r-14,6v-5,0,-6,-1,-5,-5v-18,13,-20,-5,-18,-25r0,-2xm104,-180v3,0,7,-1,6,-4v-3,0,-9,-4,-9,0v0,2,1,4,3,4xm104,-72v6,0,4,0,5,-9v1,-3,1,-4,-2,-2v-2,1,-3,5,-3,11xm104,-59v-1,-2,-3,-3,-4,-2v-9,16,8,14,4,2xm101,-37v1,3,11,7,10,-3v0,-5,-2,-7,-8,-7v1,7,0,8,-2,10",w:174},"2":{d:"11,-126v-7,-48,23,-70,52,-81v4,3,9,2,13,0v58,-6,76,53,66,102v-20,33,-59,50,-78,84v21,4,51,-1,81,3v5,10,-1,22,0,36v-39,5,-87,-1,-134,1r0,-28v17,-37,42,-61,73,-85v25,-19,26,-66,-6,-74v-16,2,-32,18,-26,41v-4,14,-29,0,-41,1xm45,-157v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm28,-148v0,6,4,9,12,9r0,-15v-8,0,-12,2,-12,6xm119,-123v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm108,-110v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm50,-3v9,0,13,-3,13,-11v-8,0,-13,4,-13,11xm62,0v0,2,3,3,7,3v2,0,3,-1,3,-3v0,-2,-1,-3,-3,-3v-4,0,-7,1,-7,3",w:159},"\uf032":{d:"11,-126v-7,-48,23,-70,52,-81v4,3,9,2,13,0v58,-6,76,53,66,102v-20,33,-59,50,-78,84v21,4,51,-1,81,3v5,10,-1,22,0,36v-39,5,-87,-1,-134,1r0,-28v17,-37,42,-61,73,-85v25,-19,26,-66,-6,-74v-16,2,-32,18,-26,41v-4,14,-29,0,-41,1xm45,-157v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm28,-148v0,6,4,9,12,9r0,-15v-8,0,-12,2,-12,6xm119,-123v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm108,-110v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm50,-3v9,0,13,-3,13,-11v-8,0,-13,4,-13,11xm62,0v0,2,3,3,7,3v2,0,3,-1,3,-3v0,-2,-1,-3,-3,-3v-4,0,-7,1,-7,3",w:159},"3":{d:"85,18v-56,10,-79,-27,-80,-75v6,-8,22,-1,41,-4v4,3,1,15,2,22v3,15,17,21,33,21v31,0,34,-67,-6,-63v-24,2,-14,-19,-15,-39r29,0v12,-11,12,-39,0,-53v-17,0,-41,1,-34,20v0,15,-10,21,-31,18v4,-14,-21,7,-14,-17v2,-31,20,-46,40,-59v67,-13,117,44,77,98v-11,6,-27,14,-6,18v49,26,15,130,-36,113xm82,-186v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm89,-179v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm103,-142v9,2,6,-8,8,-13v0,-3,-3,-3,-6,-3v-1,7,-2,12,-2,16xm126,-22v7,0,1,-13,3,-18v-7,0,-1,13,-3,18",w:158},"\uf033":{d:"85,18v-56,10,-79,-27,-80,-75v6,-8,22,-1,41,-4v4,3,1,15,2,22v3,15,17,21,33,21v31,0,34,-67,-6,-63v-24,2,-14,-19,-15,-39r29,0v12,-11,12,-39,0,-53v-17,0,-41,1,-34,20v0,15,-10,21,-31,18v4,-14,-21,7,-14,-17v2,-31,20,-46,40,-59v67,-13,117,44,77,98v-11,6,-27,14,-6,18v49,26,15,130,-36,113xm82,-186v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm89,-179v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm103,-142v9,2,6,-8,8,-13v0,-3,-3,-3,-6,-3v-1,7,-2,12,-2,16xm126,-22v7,0,1,-13,3,-18v-7,0,-1,13,-3,18",w:158},"4":{d:"76,-204v8,-23,38,4,49,-8v14,21,0,91,2,129v9,3,24,-7,22,8v-1,9,3,24,-1,30v-6,2,-18,0,-21,5v5,13,3,28,3,45v-23,0,-46,10,-46,-23v0,-9,3,-22,0,-26r-80,0v-2,-17,-2,-47,11,-54r43,-76v9,-12,13,-16,18,-30xm38,-84v59,14,47,-29,46,-76xm103,-105v-9,-2,-4,11,-3,13v6,1,2,-9,3,-13xm98,-84v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm41,-54v2,-7,-4,-6,-9,-6v-1,6,1,6,9,6xm116,-36v-8,0,-5,18,-1,19v3,3,4,2,4,-2v-1,-5,0,-15,-3,-17"},"\uf034":{d:"76,-204v8,-23,38,4,49,-8v14,21,0,91,2,129v9,3,24,-7,22,8v-1,9,3,24,-1,30v-6,2,-18,0,-21,5v5,13,3,28,3,45v-23,0,-46,10,-46,-23v0,-9,3,-22,0,-26r-80,0v-2,-17,-2,-47,11,-54r43,-76v9,-12,13,-16,18,-30xm38,-84v59,14,47,-29,46,-76xm103,-105v-9,-2,-4,11,-3,13v6,1,2,-9,3,-13xm98,-84v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm41,-54v2,-7,-4,-6,-9,-6v-1,6,1,6,9,6xm116,-36v-8,0,-5,18,-1,19v3,3,4,2,4,-2v-1,-5,0,-15,-3,-17"},"5":{d:"48,-151v11,-11,35,-11,57,-10r1,3v13,3,24,9,29,19v27,53,5,143,-59,132v-43,4,-69,-26,-67,-69v22,-2,46,-15,44,18v2,7,17,11,23,15v41,-3,41,-89,-3,-88v-15,5,-26,24,-59,17v-1,-24,5,-44,3,-67v7,-10,4,-39,7,-52v8,-1,16,0,19,4v15,-2,29,-5,46,-4v-5,4,-8,7,-1,7v16,0,32,-14,48,-4v3,10,0,24,1,35r-73,3v-20,-1,-13,22,-16,41xm26,-179v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm30,-148r0,-23r-3,0r0,23r3,0xm134,-112v4,-1,5,-6,0,-6v-2,0,-2,0,-2,2v0,2,1,3,2,4xm127,-89v7,2,3,-8,4,-13v-7,-2,-3,8,-4,13xm121,-90v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm127,-76v5,1,4,-4,4,-8v-5,-1,-4,4,-4,8xm46,-34v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5",w:158},"\uf035":{d:"48,-151v11,-11,35,-11,57,-10r1,3v13,3,24,9,29,19v27,53,5,143,-59,132v-43,4,-69,-26,-67,-69v22,-2,46,-15,44,18v2,7,17,11,23,15v41,-3,41,-89,-3,-88v-15,5,-26,24,-59,17v-1,-24,5,-44,3,-67v7,-10,4,-39,7,-52v8,-1,16,0,19,4v15,-2,29,-5,46,-4v-5,4,-8,7,-1,7v16,0,32,-14,48,-4v3,10,0,24,1,35r-73,3v-20,-1,-13,22,-16,41xm26,-179v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm30,-148r0,-23r-3,0r0,23r3,0xm134,-112v4,-1,5,-6,0,-6v-2,0,-2,0,-2,2v0,2,1,3,2,4xm127,-89v7,2,3,-8,4,-13v-7,-2,-3,8,-4,13xm121,-90v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm127,-76v5,1,4,-4,4,-8v-5,-1,-4,4,-4,8xm46,-34v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5",w:158},"6":{d:"147,-186v-6,7,-26,9,-39,10v0,-15,-9,-23,-26,-23v-28,-2,-34,29,-30,52r0,-11v14,9,31,-13,52,-2v57,15,58,134,4,151v-13,4,-20,2,-36,1v-66,-3,-68,-81,-63,-145v3,-38,18,-74,55,-83v42,-10,75,15,83,50xm66,-220r-11,0r0,9v4,-3,9,-5,11,-9xm32,-163v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm35,-153v-7,1,-8,25,-2,24v1,-8,2,-14,2,-24xm81,-131v-44,7,-43,88,0,88v6,0,7,-7,15,-5v16,-23,19,-78,-15,-83xm126,-89v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm136,-73v2,-13,-5,-13,-6,-1r-1,7v4,0,6,-2,7,-6",w:158},"\uf036":{d:"147,-186v-6,7,-26,9,-39,10v0,-15,-9,-23,-26,-23v-28,-2,-34,29,-30,52r0,-11v14,9,31,-13,52,-2v57,15,58,134,4,151v-13,4,-20,2,-36,1v-66,-3,-68,-81,-63,-145v3,-38,18,-74,55,-83v42,-10,75,15,83,50xm66,-220r-11,0r0,9v4,-3,9,-5,11,-9xm32,-163v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm35,-153v-7,1,-8,25,-2,24v1,-8,2,-14,2,-24xm81,-131v-44,7,-43,88,0,88v6,0,7,-7,15,-5v16,-23,19,-78,-15,-83xm126,-89v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm136,-73v2,-13,-5,-13,-6,-1r-1,7v4,0,6,-2,7,-6",w:158},"7":{d:"122,-123v-28,29,-35,97,-38,141v-15,-2,-33,-1,-46,-4v4,-70,29,-124,63,-166v8,-9,-1,-12,-8,-13v-9,5,-23,-3,-30,2v-1,-5,-15,-5,-18,0v-17,-4,-47,13,-42,-16r2,-23v24,-2,58,5,74,-5v7,-1,0,7,7,6v4,0,5,-2,4,-6r32,-1v1,6,-4,6,-8,7v19,-1,46,-5,35,25v-2,25,-22,33,-27,53xm118,-179v14,-2,28,5,22,-7v-9,1,-23,-4,-22,7"},"\uf037":{d:"122,-123v-28,29,-35,97,-38,141v-15,-2,-33,-1,-46,-4v4,-70,29,-124,63,-166v8,-9,-1,-12,-8,-13v-9,5,-23,-3,-30,2v-1,-5,-15,-5,-18,0v-17,-4,-47,13,-42,-16r2,-23v24,-2,58,5,74,-5v7,-1,0,7,7,6v4,0,5,-2,4,-6r32,-1v1,6,-4,6,-8,7v19,-1,46,-5,35,25v-2,25,-22,33,-27,53xm118,-179v14,-2,28,5,22,-7v-9,1,-23,-4,-22,7"},"8":{d:"58,-6v-41,-12,-61,-50,-47,-102v5,-7,19,-14,24,-22v-4,-15,-30,-24,-22,-44v-6,-11,6,-43,19,-49v23,-25,94,-17,102,13v20,29,3,64,-15,82v20,11,41,43,26,73v0,41,-48,46,-87,49xm111,-211v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm114,-202v3,6,0,19,7,21v-2,-8,5,-23,-7,-21xm105,-175v-2,-28,-50,-31,-55,-2v1,18,8,33,26,33v16,1,30,-16,29,-31xm95,-110v-25,-6,-46,-6,-46,21v-10,27,18,54,44,43v13,-13,24,-46,2,-64xm27,-69v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm29,-51v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13xm128,-55v-10,-1,-27,4,-19,12v5,-7,21,8,19,-12xm106,-34v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:158},"\uf038":{d:"58,-6v-41,-12,-61,-50,-47,-102v5,-7,19,-14,24,-22v-4,-15,-30,-24,-22,-44v-6,-11,6,-43,19,-49v23,-25,94,-17,102,13v20,29,3,64,-15,82v20,11,41,43,26,73v0,41,-48,46,-87,49xm111,-211v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm114,-202v3,6,0,19,7,21v-2,-8,5,-23,-7,-21xm105,-175v-2,-28,-50,-31,-55,-2v1,18,8,33,26,33v16,1,30,-16,29,-31xm95,-110v-25,-6,-46,-6,-46,21v-10,27,18,54,44,43v13,-13,24,-46,2,-64xm27,-69v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm29,-51v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13xm128,-55v-10,-1,-27,4,-19,12v5,-7,21,8,19,-12xm106,-34v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:158},"9":{d:"108,-9v-10,3,-28,2,-32,9v-37,-5,-62,-21,-67,-60v13,6,21,-2,39,-1v16,40,59,16,58,-21v0,-4,0,-6,-1,-8v-57,43,-126,-30,-90,-107v6,-12,21,-40,38,-34v13,-5,24,-3,42,-3v69,31,68,179,13,225xm75,-111v41,1,42,-84,3,-86v-42,1,-42,82,-3,86xm30,-168v1,-4,-1,-12,-4,-6v0,4,1,6,4,6xm124,-155v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm26,-119v13,-2,-2,-16,2,-29v-8,-1,-2,12,-4,22v0,4,1,6,2,7xm123,-127v4,0,9,-6,0,-5v0,0,-2,0,-2,1v0,2,0,4,2,4xm126,-120r0,21v3,0,5,-4,5,-11v0,-7,-2,-10,-5,-10",w:158},"\uf039":{d:"108,-9v-10,3,-28,2,-32,9v-37,-5,-62,-21,-67,-60v13,6,21,-2,39,-1v16,40,59,16,58,-21v0,-4,0,-6,-1,-8v-57,43,-126,-30,-90,-107v6,-12,21,-40,38,-34v13,-5,24,-3,42,-3v69,31,68,179,13,225xm75,-111v41,1,42,-84,3,-86v-42,1,-42,82,-3,86xm30,-168v1,-4,-1,-12,-4,-6v0,4,1,6,4,6xm124,-155v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm26,-119v13,-2,-2,-16,2,-29v-8,-1,-2,12,-4,22v0,4,1,6,2,7xm123,-127v4,0,9,-6,0,-5v0,0,-2,0,-2,1v0,2,0,4,2,4xm126,-120r0,21v3,0,5,-4,5,-11v0,-7,-2,-10,-5,-10",w:158},":":{d:"27,-123r-1,-43v15,0,24,-6,43,-4v0,16,4,36,0,49xm45,-140v1,-9,-4,-15,-5,-10v0,9,-2,11,5,10xm48,-132v2,-4,-4,-8,-5,-3v0,2,2,3,5,3xm26,-60v27,-4,55,-1,43,32v1,5,4,9,3,17v-19,-2,-25,-5,-45,-2v-3,-12,1,-33,-1,-47xm53,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:101},"\uf03a":{d:"27,-123r-1,-43v15,0,24,-6,43,-4v0,16,4,36,0,49xm45,-140v1,-9,-4,-15,-5,-10v0,9,-2,11,5,10xm48,-132v2,-4,-4,-8,-5,-3v0,2,2,3,5,3xm26,-60v27,-4,55,-1,43,32v1,5,4,9,3,17v-19,-2,-25,-5,-45,-2v-3,-12,1,-33,-1,-47xm53,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:101},";":{d:"71,-144v0,17,-3,31,0,47r-44,0v-3,-13,1,-35,1,-48xm52,-127v11,2,11,-9,3,-9v-2,1,-3,4,-3,9xm71,-35v-5,42,13,106,-45,101v-1,-17,5,-26,18,-31v5,-7,-1,-12,2,-21r-17,0v-4,-14,-3,-32,-3,-49r45,0xm61,1v-1,-8,1,-19,-5,-19v0,7,0,20,5,19",w:101},"\uf03b":{d:"71,-144v0,17,-3,31,0,47r-44,0v-3,-13,1,-35,1,-48xm52,-127v11,2,11,-9,3,-9v-2,1,-3,4,-3,9xm71,-35v-5,42,13,106,-45,101v-1,-17,5,-26,18,-31v5,-7,-1,-12,2,-21r-17,0v-4,-14,-3,-32,-3,-49r45,0xm61,1v-1,-8,1,-19,-5,-19v0,7,0,20,5,19",w:101},"<":{d:"147,-39v1,15,35,7,20,31v-12,19,-25,-13,-41,-14v-22,-12,-41,-26,-65,-36v-17,-19,-64,-21,-49,-58v34,-29,76,-52,114,-76v16,2,23,-10,30,-18v1,14,27,23,2,33v-44,17,-85,46,-123,72r39,23v0,4,-15,-5,-16,1v7,1,16,14,21,5v24,6,43,30,68,37xm108,-166v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm105,-155v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:187},"\uf03c":{d:"147,-39v1,15,35,7,20,31v-12,19,-25,-13,-41,-14v-22,-12,-41,-26,-65,-36v-17,-19,-64,-21,-49,-58v34,-29,76,-52,114,-76v16,2,23,-10,30,-18v1,14,27,23,2,33v-44,17,-85,46,-123,72r39,23v0,4,-15,-5,-16,1v7,1,16,14,21,5v24,6,43,30,68,37xm108,-166v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm105,-155v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:187},"=":{d:"192,-131v-51,1,-94,-9,-144,-1r-34,-2v-4,-5,4,-21,-3,-24r181,5v2,4,1,17,0,22xm77,-132v1,-3,2,-2,3,0v-1,2,-2,3,-3,0xm116,-69v-33,-2,-68,1,-102,1v-1,-8,1,-19,-1,-26r179,2r0,24r-70,-1v0,-3,-1,-4,-3,-4v-2,0,-3,1,-3,4",w:203},"\uf03d":{d:"192,-131v-51,1,-94,-9,-144,-1r-34,-2v-4,-5,4,-21,-3,-24r181,5v2,4,1,17,0,22xm77,-132v1,-3,2,-2,3,0v-1,2,-2,3,-3,0xm116,-69v-33,-2,-68,1,-102,1v-1,-8,1,-19,-1,-26r179,2r0,24r-70,-1v0,-3,-1,-4,-3,-4v-2,0,-3,1,-3,4",w:203},">":{d:"102,-66v-32,7,-56,40,-86,44v-15,-21,6,-32,21,-40r0,7v3,0,6,-4,8,-11v36,-16,65,-41,99,-59r-125,-75v-21,-8,-4,-25,2,-33v47,36,101,65,152,96v-2,14,5,27,-12,34v-22,9,-43,21,-59,37xm68,-189v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm89,-176v0,14,12,17,24,19r0,-4v-8,0,-14,-15,-24,-15",w:187},"\uf03e":{d:"102,-66v-32,7,-56,40,-86,44v-15,-21,6,-32,21,-40r0,7v3,0,6,-4,8,-11v36,-16,65,-41,99,-59r-125,-75v-21,-8,-4,-25,2,-33v47,36,101,65,152,96v-2,14,5,27,-12,34v-22,9,-43,21,-59,37xm68,-189v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm89,-176v0,14,12,17,24,19r0,-4v-8,0,-14,-15,-24,-15",w:187},"?":{d:"92,-174v1,-25,-34,-40,-42,-14v2,6,-1,15,-2,22r-32,0v2,0,3,-2,3,-5r-14,0v-2,-46,30,-76,75,-66v62,-8,67,86,20,116v-11,7,-16,18,-17,34v-12,-3,-35,8,-32,-11v-3,-42,34,-44,41,-76xm30,-188r0,-20v-6,0,-6,7,-6,13v0,4,2,7,6,7xm99,-199v4,0,6,-3,6,-9v-4,0,-6,3,-6,9xm111,-173r0,-19r-3,0r0,19r3,0xm43,-66r46,3v2,11,-3,38,1,49r-44,-2v1,-19,-4,-31,-3,-50xm71,-45v3,0,7,1,6,-3v-3,0,-7,-1,-6,3xm63,-33v4,7,14,1,14,-5v0,-2,0,-3,-1,-3v-2,0,-10,10,-9,-5v-5,0,-4,8,-4,13",w:141},"\uf03f":{d:"92,-174v1,-25,-34,-40,-42,-14v2,6,-1,15,-2,22r-32,0v2,0,3,-2,3,-5r-14,0v-2,-46,30,-76,75,-66v62,-8,67,86,20,116v-11,7,-16,18,-17,34v-12,-3,-35,8,-32,-11v-3,-42,34,-44,41,-76xm30,-188r0,-20v-6,0,-6,7,-6,13v0,4,2,7,6,7xm99,-199v4,0,6,-3,6,-9v-4,0,-6,3,-6,9xm111,-173r0,-19r-3,0r0,19r3,0xm43,-66r46,3v2,11,-3,38,1,49r-44,-2v1,-19,-4,-31,-3,-50xm71,-45v3,0,7,1,6,-3v-3,0,-7,-1,-6,3xm63,-33v4,7,14,1,14,-5v0,-2,0,-3,-1,-3v-2,0,-10,10,-9,-5v-5,0,-4,8,-4,13",w:141},"@":{d:"50,19v-54,-32,-55,-167,-2,-205v27,-37,103,-53,154,-28v13,-2,17,11,26,16v25,5,27,37,43,53v8,35,12,65,3,100v-14,27,-61,54,-90,29v-18,2,-34,13,-56,11v-30,-4,-58,-24,-54,-54v-6,-29,-1,-68,19,-80v16,-26,56,-20,80,-8r0,3v4,-18,26,5,34,-7v3,34,1,63,1,101v0,8,4,11,13,11v21,-1,34,-26,29,-45v4,-38,-27,-101,-65,-103v-14,-7,-38,-19,-53,-7v-34,-4,-47,18,-68,31v-5,9,-2,15,-15,15v-2,7,8,12,-3,24v0,0,1,-9,-4,-7v0,0,8,24,-5,24v-9,7,-4,31,-5,47v10,-3,0,-29,8,-34v-2,23,3,34,5,55v15,16,15,43,39,50v28,15,84,23,114,-2v11,-1,25,27,10,33v-50,21,-131,12,-158,-23xm224,-183v0,6,-1,4,7,6v4,1,6,0,5,-2v-1,-3,-5,-4,-12,-4xm185,-101v3,-5,7,-26,-2,-23r0,10v-4,-2,-4,2,-4,6v3,5,4,8,6,7xm163,-44v11,-27,17,-84,-28,-78v-41,6,-32,87,4,87v8,-3,17,-5,24,-9xm98,-86v2,-5,-2,-12,-5,-6v0,4,2,6,5,6xm176,-90v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm266,-62v6,1,6,-5,5,-8v-4,-3,-5,0,-5,8xm137,40v-3,-6,-20,-3,-19,4v7,-1,17,1,19,-4",w:292},"\uf040":{d:"50,19v-54,-32,-55,-167,-2,-205v27,-37,103,-53,154,-28v13,-2,17,11,26,16v25,5,27,37,43,53v8,35,12,65,3,100v-14,27,-61,54,-90,29v-18,2,-34,13,-56,11v-30,-4,-58,-24,-54,-54v-6,-29,-1,-68,19,-80v16,-26,56,-20,80,-8r0,3v4,-18,26,5,34,-7v3,34,1,63,1,101v0,8,4,11,13,11v21,-1,34,-26,29,-45v4,-38,-27,-101,-65,-103v-14,-7,-38,-19,-53,-7v-34,-4,-47,18,-68,31v-5,9,-2,15,-15,15v-2,7,8,12,-3,24v0,0,1,-9,-4,-7v0,0,8,24,-5,24v-9,7,-4,31,-5,47v10,-3,0,-29,8,-34v-2,23,3,34,5,55v15,16,15,43,39,50v28,15,84,23,114,-2v11,-1,25,27,10,33v-50,21,-131,12,-158,-23xm224,-183v0,6,-1,4,7,6v4,1,6,0,5,-2v-1,-3,-5,-4,-12,-4xm185,-101v3,-5,7,-26,-2,-23r0,10v-4,-2,-4,2,-4,6v3,5,4,8,6,7xm163,-44v11,-27,17,-84,-28,-78v-41,6,-32,87,4,87v8,-3,17,-5,24,-9xm98,-86v2,-5,-2,-12,-5,-6v0,4,2,6,5,6xm176,-90v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm266,-62v6,1,6,-5,5,-8v-4,-3,-5,0,-5,8xm137,40v-3,-6,-20,-3,-19,4v7,-1,17,1,19,-4",w:292},A:{d:"121,-144v23,39,22,106,46,144v-12,-5,-33,-1,-49,-2v0,-9,-4,-20,-5,-27v-5,-3,-8,-8,-8,-15r-14,0r0,-10v-7,9,-24,10,-41,9v-1,14,-9,29,-13,39v-6,8,-29,0,-43,1v5,-35,23,-67,25,-102v20,-28,23,-82,38,-115v8,8,27,-1,42,1v4,29,24,43,22,77xm94,-81v3,-27,-11,-53,-16,-79v-2,30,-18,45,-18,78v9,2,23,0,34,1xm50,-134v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm49,-120v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11xm29,-84v-9,3,-5,22,5,20v5,0,7,-4,7,-12v-3,-3,-7,-9,-12,-8xm29,-77v4,0,5,2,5,5v-1,1,-3,-4,-5,-5xm121,-74v0,5,2,8,5,8r0,-12v-3,0,-5,1,-5,4xm24,-62r0,9v6,0,9,-1,9,-4v0,-3,-3,-5,-9,-5"},"\uf041":{d:"121,-144v23,39,22,106,46,144v-12,-5,-33,-1,-49,-2v0,-9,-4,-20,-5,-27v-5,-3,-8,-8,-8,-15r-14,0r0,-10v-7,9,-24,10,-41,9v-1,14,-9,29,-13,39v-6,8,-29,0,-43,1v5,-35,23,-67,25,-102v20,-28,23,-82,38,-115v8,8,27,-1,42,1v4,29,24,43,22,77xm94,-81v3,-27,-11,-53,-16,-79v-2,30,-18,45,-18,78v9,2,23,0,34,1xm50,-134v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm49,-120v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11xm29,-84v-9,3,-5,22,5,20v5,0,7,-4,7,-12v-3,-3,-7,-9,-12,-8xm29,-77v4,0,5,2,5,5v-1,1,-3,-4,-5,-5xm121,-74v0,5,2,8,5,8r0,-12v-3,0,-5,1,-5,4xm24,-62r0,9v6,0,9,-1,9,-4v0,-3,-3,-5,-9,-5"},B:{d:"16,-217v9,-15,43,-14,58,-5v63,-35,122,57,59,93v-2,3,-4,2,-2,3v41,10,47,89,11,110v-34,10,-81,8,-126,8r0,-175v2,-11,4,-25,0,-34xm127,-167v11,0,3,-15,5,-23v-7,0,-2,14,-5,23xm97,-144v14,1,17,-18,17,-32v-11,-9,-29,-12,-51,-10v-7,6,1,30,0,42r34,0xm48,-130v4,0,6,-4,6,-10v-4,0,-6,3,-6,10xm79,-52v41,15,59,-37,24,-51v-9,4,-26,3,-40,3v-2,21,-10,51,16,48xm45,-91v0,12,-7,27,2,33v-1,4,-3,21,5,18r-2,-47v0,-3,-2,-4,-5,-4xm148,-81v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:179},"\uf042":{d:"16,-217v9,-15,43,-14,58,-5v63,-35,122,57,59,93v-2,3,-4,2,-2,3v41,10,47,89,11,110v-34,10,-81,8,-126,8r0,-175v2,-11,4,-25,0,-34xm127,-167v11,0,3,-15,5,-23v-7,0,-2,14,-5,23xm97,-144v14,1,17,-18,17,-32v-11,-9,-29,-12,-51,-10v-7,6,1,30,0,42r34,0xm48,-130v4,0,6,-4,6,-10v-4,0,-6,3,-6,10xm79,-52v41,15,59,-37,24,-51v-9,4,-26,3,-40,3v-2,21,-10,51,16,48xm45,-91v0,12,-7,27,2,33v-1,4,-3,21,5,18r-2,-47v0,-3,-2,-4,-5,-4xm148,-81v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:179},C:{d:"59,-210v56,-8,108,7,108,65v7,6,1,6,1,13v-22,-2,-50,5,-50,-22v-3,-14,-17,-17,-29,-16v-37,4,-35,50,-36,89v9,23,7,60,41,59v20,-1,34,-11,31,-36v10,-8,30,-2,47,-5v1,27,-15,45,-24,64v-14,11,-32,12,-48,20v-23,-7,-53,-6,-65,-24v-4,0,-7,-1,-7,-3v-2,-15,-17,-15,-14,-36v-18,-50,-4,-134,32,-155v8,-5,12,-9,13,-13xm122,-183v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm138,-169v1,-8,-8,-12,-11,-7v0,5,3,7,11,7xm37,-140v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm43,-120v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm45,-104v-15,5,-9,44,4,46v-7,-16,-7,-25,-4,-46xm45,-77v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5",w:177},"\uf043":{d:"59,-210v56,-8,108,7,108,65v7,6,1,6,1,13v-22,-2,-50,5,-50,-22v-3,-14,-17,-17,-29,-16v-37,4,-35,50,-36,89v9,23,7,60,41,59v20,-1,34,-11,31,-36v10,-8,30,-2,47,-5v1,27,-15,45,-24,64v-14,11,-32,12,-48,20v-23,-7,-53,-6,-65,-24v-4,0,-7,-1,-7,-3v-2,-15,-17,-15,-14,-36v-18,-50,-4,-134,32,-155v8,-5,12,-9,13,-13xm122,-183v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm138,-169v1,-8,-8,-12,-11,-7v0,5,3,7,11,7xm37,-140v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm43,-120v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm45,-104v-15,5,-9,44,4,46v-7,-16,-7,-25,-4,-46xm45,-77v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5",w:177},D:{d:"21,0v-9,-48,-4,-111,-2,-165v-6,-12,-6,-53,16,-50r2,-3v-3,3,5,5,6,6r0,-6v58,-4,108,0,121,47v22,38,12,107,-5,140v-20,40,-83,31,-138,31xm131,-126v-8,-9,-5,-34,-17,-37v-8,-15,-28,-14,-51,-13v-2,38,2,82,-4,116v4,12,1,21,22,20v46,-2,53,-45,54,-92v-5,-1,-4,2,-4,6xm135,-147v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm38,-42v-5,-12,10,-18,0,-24v-6,3,-9,22,-5,29r12,0v-1,-4,3,-13,-4,-11v0,3,1,7,-3,6",w:187},"\uf044":{d:"21,0v-9,-48,-4,-111,-2,-165v-6,-12,-6,-53,16,-50r2,-3v-3,3,5,5,6,6r0,-6v58,-4,108,0,121,47v22,38,12,107,-5,140v-20,40,-83,31,-138,31xm131,-126v-8,-9,-5,-34,-17,-37v-8,-15,-28,-14,-51,-13v-2,38,2,82,-4,116v4,12,1,21,22,20v46,-2,53,-45,54,-92v-5,-1,-4,2,-4,6xm135,-147v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm38,-42v-5,-12,10,-18,0,-24v-6,3,-9,22,-5,29r12,0v-1,-4,3,-13,-4,-11v0,3,1,7,-3,6",w:187},E:{d:"21,-6v-12,-50,-1,-115,-5,-173v6,-14,-1,-29,1,-47v6,-2,17,8,23,7r0,-7v35,2,77,1,113,2v-3,12,9,31,0,40r-93,-1v1,-1,1,1,0,3v-1,12,0,30,3,42r80,0v-1,15,1,31,1,42v-11,-13,-32,2,-48,-5v-11,-1,-24,3,-33,3v-4,34,-5,69,37,55v0,-3,-2,-4,-5,-3v21,0,42,-1,60,3v3,12,5,29,1,39r-135,0xm33,-176v-1,6,7,12,7,18r3,0v1,-11,-3,-27,3,-33v-2,-2,-7,-5,-8,-1r0,18v0,-2,-2,-2,-5,-2xm67,-117v11,1,9,-4,9,-12v-6,0,-9,4,-9,12xm58,-121v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm118,-44v-6,-2,-16,3,-5,5v4,0,5,-1,5,-5",w:161},"\uf045":{d:"21,-6v-12,-50,-1,-115,-5,-173v6,-14,-1,-29,1,-47v6,-2,17,8,23,7r0,-7v35,2,77,1,113,2v-3,12,9,31,0,40r-93,-1v1,-1,1,1,0,3v-1,12,0,30,3,42r80,0v-1,15,1,31,1,42v-11,-13,-32,2,-48,-5v-11,-1,-24,3,-33,3v-4,34,-5,69,37,55v0,-3,-2,-4,-5,-3v21,0,42,-1,60,3v3,12,5,29,1,39r-135,0xm33,-176v-1,6,7,12,7,18r3,0v1,-11,-3,-27,3,-33v-2,-2,-7,-5,-8,-1r0,18v0,-2,-2,-2,-5,-2xm67,-117v11,1,9,-4,9,-12v-6,0,-9,4,-9,12xm58,-121v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm118,-44v-6,-2,-16,3,-5,5v4,0,5,-1,5,-5",w:161},F:{d:"134,-233v17,4,-1,24,2,43r-72,0v-2,0,-3,2,-3,7v4,11,2,28,2,43v8,-3,4,3,4,6v21,-3,37,7,47,-6r19,0v-1,12,-3,26,0,38v-12,20,-80,-15,-70,24v1,21,-6,42,-2,62v-9,7,-31,1,-45,3v4,-33,-3,-66,3,-94v-8,-45,6,-88,-3,-127v29,8,70,0,107,5v0,-2,4,-4,11,-4xm149,-224v-3,0,-6,0,-2,-2v2,1,2,1,2,2xm145,-211v5,1,-1,14,-1,9v0,-2,0,-6,1,-9xm51,-192v1,-4,0,-15,-4,-8v0,5,1,8,4,8xm144,-195r1,6v-1,-2,-3,-2,-1,-6xm52,-188v-15,-2,-19,18,-12,28v7,1,3,-12,4,-19v6,-1,8,-4,8,-9xm103,-140v0,1,0,1,-1,1",w:145},"\uf046":{d:"134,-233v17,4,-1,24,2,43r-72,0v-2,0,-3,2,-3,7v4,11,2,28,2,43v8,-3,4,3,4,6v21,-3,37,7,47,-6r19,0v-1,12,-3,26,0,38v-12,20,-80,-15,-70,24v1,21,-6,42,-2,62v-9,7,-31,1,-45,3v4,-33,-3,-66,3,-94v-8,-45,6,-88,-3,-127v29,8,70,0,107,5v0,-2,4,-4,11,-4xm149,-224v-3,0,-6,0,-2,-2v2,1,2,1,2,2xm145,-211v5,1,-1,14,-1,9v0,-2,0,-6,1,-9xm51,-192v1,-4,0,-15,-4,-8v0,5,1,8,4,8xm144,-195r1,6v-1,-2,-3,-2,-1,-6xm52,-188v-15,-2,-19,18,-12,28v7,1,3,-12,4,-19v6,-1,8,-4,8,-9xm103,-140v0,1,0,1,-1,1",w:145},G:{d:"103,-8v-55,11,-93,-24,-91,-78v-7,-18,-3,-47,-4,-71v9,-34,24,-68,60,-74v25,-12,76,-4,87,18v13,11,19,27,19,48v-5,10,-28,6,-44,7v6,-37,-54,-51,-64,-16v-25,46,-15,151,53,123v8,-11,13,-24,15,-40v-16,-2,-39,8,-34,-17v-5,-8,3,-15,2,-23r75,0v2,25,-1,48,2,74v-4,15,-2,30,-2,46r-37,-3v0,-7,1,-9,5,-15v-14,-7,-21,32,-42,21xm58,-216v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm116,-107v-1,-4,-14,-23,-13,-4v2,2,15,8,13,4xm142,-113v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm161,-61v10,-1,6,-18,7,-29v-9,-1,-4,17,-7,29xm43,-61v0,3,3,5,8,5r0,-9v-5,0,-8,1,-8,4xm37,-60v-1,12,1,22,15,20v0,-8,-2,-13,-6,-13v2,8,-5,10,-5,3v-1,-3,0,-10,-4,-10",w:193},"\uf047":{d:"103,-8v-55,11,-93,-24,-91,-78v-7,-18,-3,-47,-4,-71v9,-34,24,-68,60,-74v25,-12,76,-4,87,18v13,11,19,27,19,48v-5,10,-28,6,-44,7v6,-37,-54,-51,-64,-16v-25,46,-15,151,53,123v8,-11,13,-24,15,-40v-16,-2,-39,8,-34,-17v-5,-8,3,-15,2,-23r75,0v2,25,-1,48,2,74v-4,15,-2,30,-2,46r-37,-3v0,-7,1,-9,5,-15v-14,-7,-21,32,-42,21xm58,-216v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm116,-107v-1,-4,-14,-23,-13,-4v2,2,15,8,13,4xm142,-113v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm161,-61v10,-1,6,-18,7,-29v-9,-1,-4,17,-7,29xm43,-61v0,3,3,5,8,5r0,-9v-5,0,-8,1,-8,4xm37,-60v-1,12,1,22,15,20v0,-8,-2,-13,-6,-13v2,8,-5,10,-5,3v-1,-3,0,-10,-4,-10",w:193},H:{d:"62,-229v4,17,-8,40,1,54v0,8,-6,24,5,24r51,1v-2,-27,-2,-63,0,-83r34,-1v1,-1,2,1,2,5r8,0r2,176v-5,12,5,47,-11,35v-9,-3,-10,6,-17,3v1,0,1,-1,1,-3v-6,1,-12,6,-21,4v2,-34,2,-70,0,-94v-17,2,-41,-3,-55,2v-4,30,0,57,1,84v-5,13,-31,-2,-35,8r-12,0r1,-214v14,-4,16,-5,23,2v5,-2,17,-8,22,-3xm150,-220v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm140,-152v8,-3,9,-40,-8,-31v0,17,1,34,5,46v6,0,2,-10,3,-15xm137,-177v4,2,3,13,3,20v-1,-6,-4,-12,-3,-20xm48,-104v-17,-1,-9,10,-11,21v9,0,9,-13,11,-21xm137,-92v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6",w:183},"\uf048":{d:"62,-229v4,17,-8,40,1,54v0,8,-6,24,5,24r51,1v-2,-27,-2,-63,0,-83r34,-1v1,-1,2,1,2,5r8,0r2,176v-5,12,5,47,-11,35v-9,-3,-10,6,-17,3v1,0,1,-1,1,-3v-6,1,-12,6,-21,4v2,-34,2,-70,0,-94v-17,2,-41,-3,-55,2v-4,30,0,57,1,84v-5,13,-31,-2,-35,8r-12,0r1,-214v14,-4,16,-5,23,2v5,-2,17,-8,22,-3xm150,-220v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm140,-152v8,-3,9,-40,-8,-31v0,17,1,34,5,46v6,0,2,-10,3,-15xm137,-177v4,2,3,13,3,20v-1,-6,-4,-12,-3,-20xm48,-104v-17,-1,-9,10,-11,21v9,0,9,-13,11,-21xm137,-92v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6",w:183},I:{d:"63,-133v-12,54,31,143,-43,129v-7,-67,-1,-131,-2,-193v12,-5,-8,-21,1,-28v5,-1,8,6,13,5v1,-8,13,-4,16,1v2,1,12,-12,12,-2v0,29,-5,65,3,88xm44,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm37,-98v19,4,8,-19,11,-33v-5,6,-11,22,-11,33xm42,-107v2,1,2,3,0,3v-3,0,-3,-1,0,-3xm45,-63v0,3,-6,32,3,22r1,-22r-4,0",w:82},"\uf049":{d:"63,-133v-12,54,31,143,-43,129v-7,-67,-1,-131,-2,-193v12,-5,-8,-21,1,-28v5,-1,8,6,13,5v1,-8,13,-4,16,1v2,1,12,-12,12,-2v0,29,-5,65,3,88xm44,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm37,-98v19,4,8,-19,11,-33v-5,6,-11,22,-11,33xm42,-107v2,1,2,3,0,3v-3,0,-3,-1,0,-3xm45,-63v0,3,-6,32,3,22r1,-22r-4,0",w:82},J:{d:"82,-229v29,3,54,-4,42,40v1,61,14,138,-19,175v-30,22,-99,14,-102,-37v0,-13,-2,-18,1,-34v14,0,25,-8,42,-5v3,13,-6,29,0,33v7,1,2,15,15,12v29,4,10,-27,23,-44v-9,-30,0,-73,2,-105v-7,1,-3,-9,-4,-16v1,-9,4,-14,0,-19xm111,-159v2,-4,-4,-9,-5,-4v0,3,2,4,5,4xm111,-114r0,-21v-7,-2,-3,8,-4,12v-4,-1,-5,2,-5,9r9,0xm110,-100v0,-2,-6,-3,-6,0v0,8,6,6,6,0",w:143},"\uf04a":{d:"82,-229v29,3,54,-4,42,40v1,61,14,138,-19,175v-30,22,-99,14,-102,-37v0,-13,-2,-18,1,-34v14,0,25,-8,42,-5v3,13,-6,29,0,33v7,1,2,15,15,12v29,4,10,-27,23,-44v-9,-30,0,-73,2,-105v-7,1,-3,-9,-4,-16v1,-9,4,-14,0,-19xm111,-159v2,-4,-4,-9,-5,-4v0,3,2,4,5,4xm111,-114r0,-21v-7,-2,-3,8,-4,12v-4,-1,-5,2,-5,9r9,0xm110,-100v0,-2,-6,-3,-6,0v0,8,6,6,6,0",w:143},K:{d:"20,-2v-7,-61,0,-135,-2,-201r26,0v-3,0,-5,1,-5,3v3,9,12,-6,15,-5v16,13,5,54,6,82v0,4,2,5,5,5v21,-26,36,-61,60,-85r50,-3v-11,24,-35,49,-50,72v-2,13,-26,15,-13,32v29,36,45,82,71,120v-3,-4,-18,-4,-25,-5v0,-6,-6,-5,-3,-14v-5,4,-12,11,-17,14v-19,-2,-17,-23,-20,-42v-7,-2,-3,7,-4,11v-12,-19,-28,-36,-37,-58v-19,17,-18,55,-16,90r-45,0v-1,-6,4,-10,4,-16xm49,-123v2,-5,-2,-12,-5,-6v0,4,1,6,5,6xm75,-102v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm45,-59v-7,-8,-2,-23,0,-35v-11,3,-2,10,-13,17v5,5,1,18,13,18xm39,-53v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm110,-34v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:174},"\uf04b":{d:"20,-2v-7,-61,0,-135,-2,-201r26,0v-3,0,-5,1,-5,3v3,9,12,-6,15,-5v16,13,5,54,6,82v0,4,2,5,5,5v21,-26,36,-61,60,-85r50,-3v-11,24,-35,49,-50,72v-2,13,-26,15,-13,32v29,36,45,82,71,120v-3,-4,-18,-4,-25,-5v0,-6,-6,-5,-3,-14v-5,4,-12,11,-17,14v-19,-2,-17,-23,-20,-42v-7,-2,-3,7,-4,11v-12,-19,-28,-36,-37,-58v-19,17,-18,55,-16,90r-45,0v-1,-6,4,-10,4,-16xm49,-123v2,-5,-2,-12,-5,-6v0,4,1,6,5,6xm75,-102v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm45,-59v-7,-8,-2,-23,0,-35v-11,3,-2,10,-13,17v5,5,1,18,13,18xm39,-53v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm110,-34v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:174},L:{d:"17,-14v1,-55,-5,-117,2,-167v-4,-14,-2,-37,-2,-53r44,3v7,19,-8,40,0,57v-4,27,-11,53,-6,80v2,0,4,-1,4,2r4,35v5,1,16,-3,14,5r63,-5v5,9,1,29,0,41xm61,-124v5,2,-2,35,-2,14v0,-7,1,-12,2,-14xm114,-44v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm91,-40v-1,9,7,8,7,2v1,-3,-4,-2,-7,-2xm44,-30v9,-4,12,0,19,4v0,-8,-1,-13,-4,-13v-10,0,-15,3,-15,9xm53,-26v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:141},"\uf04c":{d:"17,-14v1,-55,-5,-117,2,-167v-4,-14,-2,-37,-2,-53r44,3v7,19,-8,40,0,57v-4,27,-11,53,-6,80v2,0,4,-1,4,2r4,35v5,1,16,-3,14,5r63,-5v5,9,1,29,0,41xm61,-124v5,2,-2,35,-2,14v0,-7,1,-12,2,-14xm114,-44v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm91,-40v-1,9,7,8,7,2v1,-3,-4,-2,-7,-2xm44,-30v9,-4,12,0,19,4v0,-8,-1,-13,-4,-13v-10,0,-15,3,-15,9xm53,-26v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:141},M:{d:"101,16v-14,-39,-18,-89,-37,-124v2,-10,-2,-20,-4,-10v3,45,2,90,0,134r-41,0v-5,-62,-3,-141,0,-202v1,-5,-6,-12,-2,-16v6,-2,14,14,18,3v2,-6,15,-1,18,1v3,0,4,-2,3,-5v35,-13,30,41,37,63v9,30,18,54,21,82v9,-52,35,-87,39,-144v7,1,19,9,26,0v7,0,20,12,24,0r13,0v-3,6,-1,10,0,16v-5,67,1,143,-2,202r-42,0v-7,-39,2,-91,-2,-129v-9,6,-6,31,-16,37v5,38,-25,39,-25,74v8,-2,5,-17,13,-20v0,-2,0,-2,-1,2v-3,11,-4,27,-9,36r-31,0xm187,-145v-2,11,5,7,5,1v0,0,-5,-5,-5,-1xm43,-137v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm189,-127v-8,0,-5,13,-7,20v3,0,5,-2,7,-4v2,10,-13,21,1,26v14,-2,3,-25,4,-37v-3,0,-4,2,-5,6r0,-11xm151,-110v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm190,-98v2,2,0,7,-1,5v0,-2,0,-3,1,-5xm41,-64v4,-4,1,-17,2,-25v-7,1,-3,12,-5,20v0,4,1,6,3,5xm45,-33v-9,1,-7,15,-7,24v16,4,7,-11,7,-24",w:235},"\uf04d":{d:"101,16v-14,-39,-18,-89,-37,-124v2,-10,-2,-20,-4,-10v3,45,2,90,0,134r-41,0v-5,-62,-3,-141,0,-202v1,-5,-6,-12,-2,-16v6,-2,14,14,18,3v2,-6,15,-1,18,1v3,0,4,-2,3,-5v35,-13,30,41,37,63v9,30,18,54,21,82v9,-52,35,-87,39,-144v7,1,19,9,26,0v7,0,20,12,24,0r13,0v-3,6,-1,10,0,16v-5,67,1,143,-2,202r-42,0v-7,-39,2,-91,-2,-129v-9,6,-6,31,-16,37v5,38,-25,39,-25,74v8,-2,5,-17,13,-20v0,-2,0,-2,-1,2v-3,11,-4,27,-9,36r-31,0xm187,-145v-2,11,5,7,5,1v0,0,-5,-5,-5,-1xm43,-137v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm189,-127v-8,0,-5,13,-7,20v3,0,5,-2,7,-4v2,10,-13,21,1,26v14,-2,3,-25,4,-37v-3,0,-4,2,-5,6r0,-11xm151,-110v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm190,-98v2,2,0,7,-1,5v0,-2,0,-3,1,-5xm41,-64v4,-4,1,-17,2,-25v-7,1,-3,12,-5,20v0,4,1,6,3,5xm45,-33v-9,1,-7,15,-7,24v16,4,7,-11,7,-24",w:235},N:{d:"16,-14r2,-222v10,7,26,0,43,2v1,9,15,15,8,26v-2,8,8,15,10,6v2,2,4,4,4,8r-7,0v18,21,28,51,40,79v2,5,6,8,8,8v5,-33,-1,-74,4,-97v9,-8,-6,-22,-2,-30r46,0v-5,32,2,63,-4,95v7,46,-4,82,2,122r-46,-2v-17,-45,-40,-85,-59,-128v-14,30,1,89,-2,131xm127,-192v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm148,-141v7,1,7,-6,2,-6v-1,1,-2,2,-2,6xm39,-94v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm140,-90v5,1,6,-3,5,-4v-2,-3,-5,-1,-5,4xm36,-90v-6,4,-8,29,0,26r0,-18v0,9,8,16,8,0v0,-5,-3,-8,-8,-8xm144,-73v-5,0,-15,17,-5,17v5,-2,5,-11,5,-17",w:190},"\uf04e":{d:"16,-14r2,-222v10,7,26,0,43,2v1,9,15,15,8,26v-2,8,8,15,10,6v2,2,4,4,4,8r-7,0v18,21,28,51,40,79v2,5,6,8,8,8v5,-33,-1,-74,4,-97v9,-8,-6,-22,-2,-30r46,0v-5,32,2,63,-4,95v7,46,-4,82,2,122r-46,-2v-17,-45,-40,-85,-59,-128v-14,30,1,89,-2,131xm127,-192v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm148,-141v7,1,7,-6,2,-6v-1,1,-2,2,-2,6xm39,-94v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm140,-90v5,1,6,-3,5,-4v-2,-3,-5,-1,-5,4xm36,-90v-6,4,-8,29,0,26r0,-18v0,9,8,16,8,0v0,-5,-3,-8,-8,-8xm144,-73v-5,0,-15,17,-5,17v5,-2,5,-11,5,-17",w:190},O:{d:"174,-97v-20,23,8,47,-21,66v-40,43,-130,17,-135,-36v-15,-20,-9,-58,-12,-77v10,-40,16,-93,65,-92v12,-12,35,-2,50,-3v7,9,24,11,32,18v0,11,20,17,13,29v21,17,18,76,14,101v-1,-1,-6,-5,-6,-6xm73,-220v-6,-2,-7,3,-6,8v4,0,6,-3,6,-8xm96,-51v53,0,56,-142,2,-150v-26,4,-46,20,-42,56v-8,8,-9,28,-10,45v0,5,2,7,5,7v2,-11,-1,-26,4,-34v-3,31,6,59,24,74v4,-3,8,5,17,2xm174,-165v1,-5,-6,-27,-10,-14v3,5,1,15,10,14xm171,-153v0,14,-11,38,1,46v-1,-17,2,-31,3,-46r-4,0xm176,-76v0,4,-1,12,-2,8v0,-1,0,-4,2,-8xm109,-25v1,-4,-1,-10,-5,-6v0,4,2,6,5,6",w:193},"\uf04f":{d:"174,-97v-20,23,8,47,-21,66v-40,43,-130,17,-135,-36v-15,-20,-9,-58,-12,-77v10,-40,16,-93,65,-92v12,-12,35,-2,50,-3v7,9,24,11,32,18v0,11,20,17,13,29v21,17,18,76,14,101v-1,-1,-6,-5,-6,-6xm73,-220v-6,-2,-7,3,-6,8v4,0,6,-3,6,-8xm96,-51v53,0,56,-142,2,-150v-26,4,-46,20,-42,56v-8,8,-9,28,-10,45v0,5,2,7,5,7v2,-11,-1,-26,4,-34v-3,31,6,59,24,74v4,-3,8,5,17,2xm174,-165v1,-5,-6,-27,-10,-14v3,5,1,15,10,14xm171,-153v0,14,-11,38,1,46v-1,-17,2,-31,3,-46r-4,0xm176,-76v0,4,-1,12,-2,8v0,-1,0,-4,2,-8xm109,-25v1,-4,-1,-10,-5,-6v0,4,2,6,5,6",w:193},P:{d:"19,-82v-7,-43,0,-86,-2,-126v34,-3,70,11,96,0v61,0,63,101,27,130v-18,15,-45,13,-77,12v-5,4,-6,12,0,21v1,21,-3,37,0,56r-47,-2v2,-29,-4,-67,3,-91xm90,-198v-7,1,-19,-5,-23,0v2,6,15,4,23,4r0,-4xm132,-126v11,-7,4,-55,-7,-45v-1,14,8,29,7,45xm117,-140v0,-31,-41,-34,-58,-22v11,21,-16,56,28,56v16,0,30,-17,30,-34xm27,-145v4,0,7,-4,7,-12v-5,0,-7,4,-7,12xm120,-106v9,1,10,-7,2,-7v-1,1,-2,3,-2,7xm30,-110v0,0,-6,38,3,23r1,-23r-4,0xm40,-50v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:169},"\uf050":{d:"19,-82v-7,-43,0,-86,-2,-126v34,-3,70,11,96,0v61,0,63,101,27,130v-18,15,-45,13,-77,12v-5,4,-6,12,0,21v1,21,-3,37,0,56r-47,-2v2,-29,-4,-67,3,-91xm90,-198v-7,1,-19,-5,-23,0v2,6,15,4,23,4r0,-4xm132,-126v11,-7,4,-55,-7,-45v-1,14,8,29,7,45xm117,-140v0,-31,-41,-34,-58,-22v11,21,-16,56,28,56v16,0,30,-17,30,-34xm27,-145v4,0,7,-4,7,-12v-5,0,-7,4,-7,12xm120,-106v9,1,10,-7,2,-7v-1,1,-2,3,-2,7xm30,-110v0,0,-6,38,3,23r1,-23r-4,0xm40,-50v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:169},Q:{d:"38,-208v20,-35,94,-26,112,-3v39,28,42,120,19,170v-2,3,-4,4,-7,4v-1,-8,8,-22,-4,-22r0,28v7,7,19,16,19,28v-8,12,-7,11,-18,22v-8,0,-13,-25,-21,-29v-17,16,-81,15,-95,-4v-41,-34,-45,-115,-26,-170v10,-4,17,-15,21,-24xm122,-205v3,9,1,11,7,10v3,-8,-7,-22,-7,-10xm109,-184v-25,-13,-53,9,-51,39v-9,17,-6,53,3,71v-2,29,28,37,53,27v-8,-5,-2,-23,-19,-20v2,-12,17,-37,25,-18r7,16v14,-21,9,-71,2,-96xm36,-133v11,-3,7,-18,8,-31v-2,0,-7,5,-7,1v1,-5,3,-9,-1,-9v-5,8,-7,28,-11,38v8,1,7,-13,13,-14xm154,-114v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7xm25,-97v7,0,1,-12,3,-17v-7,0,-1,12,-3,17xm161,-77v-14,2,-4,-16,-7,-25v-8,4,-3,27,-6,41v12,1,13,-5,13,-16",w:193},"\uf051":{d:"38,-208v20,-35,94,-26,112,-3v39,28,42,120,19,170v-2,3,-4,4,-7,4v-1,-8,8,-22,-4,-22r0,28v7,7,19,16,19,28v-8,12,-7,11,-18,22v-8,0,-13,-25,-21,-29v-17,16,-81,15,-95,-4v-41,-34,-45,-115,-26,-170v10,-4,17,-15,21,-24xm122,-205v3,9,1,11,7,10v3,-8,-7,-22,-7,-10xm109,-184v-25,-13,-53,9,-51,39v-9,17,-6,53,3,71v-2,29,28,37,53,27v-8,-5,-2,-23,-19,-20v2,-12,17,-37,25,-18r7,16v14,-21,9,-71,2,-96xm36,-133v11,-3,7,-18,8,-31v-2,0,-7,5,-7,1v1,-5,3,-9,-1,-9v-5,8,-7,28,-11,38v8,1,7,-13,13,-14xm154,-114v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7xm25,-97v7,0,1,-12,3,-17v-7,0,-1,12,-3,17xm161,-77v-14,2,-4,-16,-7,-25v-8,4,-3,27,-6,41v12,1,13,-5,13,-16",w:193},R:{d:"121,0v-14,-34,11,-95,-60,-75v4,22,-2,50,0,76r-44,0r2,-178v-2,-14,-4,-23,-1,-39v40,-2,69,8,104,0v52,1,59,101,16,114v-2,1,-2,1,-3,2v33,12,19,48,23,84v5,4,8,9,8,18xm85,-216v3,-5,7,-1,4,2v-1,0,-2,-1,-4,-2xm41,-210v6,-1,17,4,16,-5v-6,1,-17,-4,-16,5xm135,-153v-2,-15,18,-27,0,-33v-2,9,-4,20,-4,33r4,0xm118,-147v0,-30,-26,-28,-55,-27r-4,54v26,4,59,8,59,-27xm147,-153v0,-8,2,-18,-6,-17v2,5,-2,17,6,17xm132,-124v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm43,-108v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm40,-29v8,-2,7,-16,7,-26r-4,0v0,7,-4,22,-6,15v4,-11,-2,-17,13,-21r0,-4v-5,0,-10,2,-15,5v-3,15,-8,28,5,31",w:176},"\uf052":{d:"121,0v-14,-34,11,-95,-60,-75v4,22,-2,50,0,76r-44,0r2,-178v-2,-14,-4,-23,-1,-39v40,-2,69,8,104,0v52,1,59,101,16,114v-2,1,-2,1,-3,2v33,12,19,48,23,84v5,4,8,9,8,18xm85,-216v3,-5,7,-1,4,2v-1,0,-2,-1,-4,-2xm41,-210v6,-1,17,4,16,-5v-6,1,-17,-4,-16,5xm135,-153v-2,-15,18,-27,0,-33v-2,9,-4,20,-4,33r4,0xm118,-147v0,-30,-26,-28,-55,-27r-4,54v26,4,59,8,59,-27xm147,-153v0,-8,2,-18,-6,-17v2,5,-2,17,6,17xm132,-124v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm43,-108v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm40,-29v8,-2,7,-16,7,-26r-4,0v0,7,-4,22,-6,15v4,-11,-2,-17,13,-21r0,-4v-5,0,-10,2,-15,5v-3,15,-8,28,5,31",w:176},S:{d:"101,-94v-48,-15,-100,-26,-90,-98v8,-61,134,-65,136,2v-1,8,9,17,-5,17r-36,0v-2,-14,-11,-31,-32,-22v-11,4,-21,9,-20,17v22,49,119,27,101,120v-5,5,-10,9,-5,19v-17,19,-40,40,-79,31v-44,-1,-68,-26,-66,-74v4,-7,33,-5,43,-2v9,16,8,34,33,34v27,0,32,-18,23,-36v3,-4,8,5,12,4v0,-8,-7,-12,-15,-12xm42,-215v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm17,-195v5,-4,12,-11,14,-18v-9,-2,-14,10,-14,18xm20,-181v7,3,5,-8,6,-14v-4,0,-6,5,-6,14xm69,-116v4,0,10,2,8,-4v-4,0,-10,-2,-8,4xm111,-41v8,-1,7,-13,7,-23v-5,-1,-7,12,-7,23xm69,-34v-15,1,-21,-7,-32,-11v-3,0,-5,3,-5,10v4,9,34,8,37,1",w:163},"\uf053":{d:"101,-94v-48,-15,-100,-26,-90,-98v8,-61,134,-65,136,2v-1,8,9,17,-5,17r-36,0v-2,-14,-11,-31,-32,-22v-11,4,-21,9,-20,17v22,49,119,27,101,120v-5,5,-10,9,-5,19v-17,19,-40,40,-79,31v-44,-1,-68,-26,-66,-74v4,-7,33,-5,43,-2v9,16,8,34,33,34v27,0,32,-18,23,-36v3,-4,8,5,12,4v0,-8,-7,-12,-15,-12xm42,-215v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm17,-195v5,-4,12,-11,14,-18v-9,-2,-14,10,-14,18xm20,-181v7,3,5,-8,6,-14v-4,0,-6,5,-6,14xm69,-116v4,0,10,2,8,-4v-4,0,-10,-2,-8,4xm111,-41v8,-1,7,-13,7,-23v-5,-1,-7,12,-7,23xm69,-34v-15,1,-21,-7,-32,-11v-3,0,-5,3,-5,10v4,9,34,8,37,1",w:163},T:{d:"-1,-186v0,-18,-6,-48,16,-35v28,-11,74,-4,110,-3v4,-8,25,-6,22,8v-2,11,-5,22,0,33v-16,2,-39,-3,-52,2v3,14,-3,29,-1,47v-10,-2,-13,4,-2,7v1,13,4,26,2,42v2,2,-18,15,-3,13v7,14,3,47,2,66r-41,0r-2,-177xm45,-221v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm50,-199v-7,-2,-2,-14,-11,-14v-2,9,-6,14,11,14xm71,-207v-1,-8,-23,-6,-21,2v5,1,19,-3,13,5v0,3,2,3,5,3v2,-4,3,-8,3,-10xm82,-108v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm76,-68v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:145},"\uf054":{d:"-1,-186v0,-18,-6,-48,16,-35v28,-11,74,-4,110,-3v4,-8,25,-6,22,8v-2,11,-5,22,0,33v-16,2,-39,-3,-52,2v3,14,-3,29,-1,47v-10,-2,-13,4,-2,7v1,13,4,26,2,42v2,2,-18,15,-3,13v7,14,3,47,2,66r-41,0r-2,-177xm45,-221v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm50,-199v-7,-2,-2,-14,-11,-14v-2,9,-6,14,11,14xm71,-207v-1,-8,-23,-6,-21,2v5,1,19,-3,13,5v0,3,2,3,5,3v2,-4,3,-8,3,-10xm82,-108v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm76,-68v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:145},U:{d:"165,-82v1,24,3,51,-18,56v-4,0,-6,3,-6,10r5,0v-23,24,-87,28,-111,2v-10,-11,-19,-17,-17,-39v-7,-44,-5,-116,-2,-168r42,0r-1,23v-4,0,-9,-1,-7,5v8,1,13,-4,11,9v-2,12,-4,23,-3,37v-1,3,-9,4,-8,11v27,10,-16,99,39,99v25,-1,36,-31,31,-66v5,-37,-2,-83,3,-118r42,1r3,112v2,9,-10,12,-9,20v4,0,6,2,6,6xm40,-98r2,-25v-7,-2,-6,3,-7,12v2,4,-1,13,5,13xm35,-81v4,0,6,-5,6,-14v-4,0,-6,5,-6,14xm153,-50v1,-7,8,-27,-1,-27v-1,10,-2,16,-2,27r3,0xm47,-47v3,-8,-4,-17,-8,-11v-1,6,5,10,8,11",w:183},"\uf055":{d:"165,-82v1,24,3,51,-18,56v-4,0,-6,3,-6,10r5,0v-23,24,-87,28,-111,2v-10,-11,-19,-17,-17,-39v-7,-44,-5,-116,-2,-168r42,0r-1,23v-4,0,-9,-1,-7,5v8,1,13,-4,11,9v-2,12,-4,23,-3,37v-1,3,-9,4,-8,11v27,10,-16,99,39,99v25,-1,36,-31,31,-66v5,-37,-2,-83,3,-118r42,1r3,112v2,9,-10,12,-9,20v4,0,6,2,6,6xm40,-98r2,-25v-7,-2,-6,3,-7,12v2,4,-1,13,5,13xm35,-81v4,0,6,-5,6,-14v-4,0,-6,5,-6,14xm153,-50v1,-7,8,-27,-1,-27v-1,10,-2,16,-2,27r3,0xm47,-47v3,-8,-4,-17,-8,-11v-1,6,5,10,8,11",w:183},V:{d:"8,-136v5,-24,-14,-45,-16,-69v14,-3,25,9,32,-2r20,0v4,13,2,27,-4,36v9,-7,11,7,13,13v1,34,14,66,18,98v0,5,1,7,2,5r34,-150v17,0,32,1,48,2r-60,216r-43,0r-15,-40r0,-67v0,-2,-1,-3,-5,-3r0,36v-13,-22,-12,-55,-24,-75xm29,-136v0,-8,-15,-2,-8,0v0,0,11,5,8,0xm105,-100v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm105,-68v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm94,-47v-6,3,-4,28,2,10v1,-3,5,-12,-2,-10",w:146},"\uf056":{d:"8,-136v5,-24,-14,-45,-16,-69v14,-3,25,9,32,-2r20,0v4,13,2,27,-4,36v9,-7,11,7,13,13v1,34,14,66,18,98v0,5,1,7,2,5r34,-150v17,0,32,1,48,2r-60,216r-43,0r-15,-40r0,-67v0,-2,-1,-3,-5,-3r0,36v-13,-22,-12,-55,-24,-75xm29,-136v0,-8,-15,-2,-8,0v0,0,11,5,8,0xm105,-100v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm105,-68v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm94,-47v-6,3,-4,28,2,10v1,-3,5,-12,-2,-10",w:146},W:{d:"33,0v0,-71,-30,-133,-41,-203v22,0,37,0,46,9v0,8,5,17,7,23v-7,-2,-11,2,-4,6v-4,6,-11,9,-10,20v12,-14,20,-14,15,6v17,24,7,63,19,91v1,-10,4,-21,7,-29v3,-46,13,-91,21,-128v12,1,27,0,38,3v0,28,13,46,13,71v0,25,14,45,12,68v-1,5,3,13,6,12v0,-52,16,-104,24,-152r43,-2v-1,33,-13,63,-15,95v-10,31,-15,61,-20,94v-2,15,-8,25,-20,25v-6,0,-8,2,-8,7v-9,-3,-26,8,-26,-7r0,-46v-10,-1,1,16,-7,18v-11,-24,-4,-68,-17,-90v3,-8,0,-16,-4,-23v-15,43,-12,85,-22,126v0,20,-28,7,-35,22v-13,2,-22,-2,-22,-16xm120,-179v3,0,6,0,5,-4v-3,0,-6,0,-5,4xm83,-121v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm44,-98v-11,11,-8,34,4,40v3,-12,-7,-23,-4,-40xm138,-61v-2,-7,4,-21,-5,-20r2,20r3,0xm177,0v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:224},"\uf057":{d:"33,0v0,-71,-30,-133,-41,-203v22,0,37,0,46,9v0,8,5,17,7,23v-7,-2,-11,2,-4,6v-4,6,-11,9,-10,20v12,-14,20,-14,15,6v17,24,7,63,19,91v1,-10,4,-21,7,-29v3,-46,13,-91,21,-128v12,1,27,0,38,3v0,28,13,46,13,71v0,25,14,45,12,68v-1,5,3,13,6,12v0,-52,16,-104,24,-152r43,-2v-1,33,-13,63,-15,95v-10,31,-15,61,-20,94v-2,15,-8,25,-20,25v-6,0,-8,2,-8,7v-9,-3,-26,8,-26,-7r0,-46v-10,-1,1,16,-7,18v-11,-24,-4,-68,-17,-90v3,-8,0,-16,-4,-23v-15,43,-12,85,-22,126v0,20,-28,7,-35,22v-13,2,-22,-2,-22,-16xm120,-179v3,0,6,0,5,-4v-3,0,-6,0,-5,4xm83,-121v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm44,-98v-11,11,-8,34,4,40v3,-12,-7,-23,-4,-40xm138,-61v-2,-7,4,-21,-5,-20r2,20r3,0xm177,0v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:224},X:{d:"69,-63v2,22,-7,55,-29,58v0,3,4,4,11,4v-11,7,-37,0,-57,1v21,-35,42,-70,58,-110v-11,-40,-40,-65,-50,-106v16,4,32,1,50,-1v0,5,-2,11,5,9v4,19,17,45,24,60v15,-15,20,-50,32,-68v17,0,35,-1,50,1v-4,13,-14,15,-18,32v0,11,-6,12,-15,9v10,11,-5,28,-9,39v-5,0,-8,-2,-5,6v0,4,1,6,1,8v-16,22,20,39,16,69v3,1,8,-3,8,1v3,11,8,16,5,30r9,0v0,-2,-3,-13,0,-7r15,31r-53,0v-14,-24,-23,-49,-36,-75v-3,4,-3,11,-12,9xm58,-140v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm63,-108v10,13,-14,32,-13,47v12,-3,29,-38,17,-51v-3,0,-4,2,-4,4",w:166},"\uf058":{d:"69,-63v2,22,-7,55,-29,58v0,3,4,4,11,4v-11,7,-37,0,-57,1v21,-35,42,-70,58,-110v-11,-40,-40,-65,-50,-106v16,4,32,1,50,-1v0,5,-2,11,5,9v4,19,17,45,24,60v15,-15,20,-50,32,-68v17,0,35,-1,50,1v-4,13,-14,15,-18,32v0,11,-6,12,-15,9v10,11,-5,28,-9,39v-5,0,-8,-2,-5,6v0,4,1,6,1,8v-16,22,20,39,16,69v3,1,8,-3,8,1v3,11,8,16,5,30r9,0v0,-2,-3,-13,0,-7r15,31r-53,0v-14,-24,-23,-49,-36,-75v-3,4,-3,11,-12,9xm58,-140v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm63,-108v10,13,-14,32,-13,47v12,-3,29,-38,17,-51v-3,0,-4,2,-4,4",w:166},Y:{d:"53,13v3,-24,-6,-59,2,-84v-25,-41,-41,-92,-63,-136r51,0v1,3,-5,14,-3,21v16,-6,11,20,12,34v5,1,4,-4,4,-8v4,16,14,30,20,44r34,-91r47,0v-9,19,-16,63,-34,57v1,4,6,5,8,8v-7,30,-31,51,-38,80v6,-1,5,2,6,7v-3,14,-11,11,-6,28v9,1,5,27,4,38",w:150},"\uf059":{d:"53,13v3,-24,-6,-59,2,-84v-25,-41,-41,-92,-63,-136r51,0v1,3,-5,14,-3,21v16,-6,11,20,12,34v5,1,4,-4,4,-8v4,16,14,30,20,44r34,-91r47,0v-9,19,-16,63,-34,57v1,4,6,5,8,8v-7,30,-31,51,-38,80v6,-1,5,2,6,7v-3,14,-11,11,-6,28v9,1,5,27,4,38",w:150},Z:{d:"8,-176v3,-15,-8,-33,0,-42r40,0r0,4v7,-1,12,-6,23,-4v-3,2,-9,8,0,8v7,-5,21,1,36,-1r0,-7v43,-15,46,32,24,59v-5,7,-6,14,-16,16v0,1,0,2,1,4v-6,-3,-7,1,-3,6v-1,5,-7,21,-13,22r8,-23v-9,2,-12,12,-13,22v-6,28,-28,48,-37,71v12,1,30,-3,39,2v-2,5,-2,6,-1,6v10,-9,30,-10,51,-9v4,14,-2,28,3,45v-44,-7,-100,-1,-147,-4v-8,-48,12,-64,32,-89v7,-32,32,-43,42,-70v7,-6,7,-3,8,-15r-51,0v1,-12,-16,-10,-13,-1r-13,0xm63,-26v-2,-6,-14,-6,-18,-10v-5,12,8,22,18,10xm27,-17v2,-5,-4,-7,-6,-4v0,3,2,4,6,4",w:153},"\uf05a":{d:"8,-176v3,-15,-8,-33,0,-42r40,0r0,4v7,-1,12,-6,23,-4v-3,2,-9,8,0,8v7,-5,21,1,36,-1r0,-7v43,-15,46,32,24,59v-5,7,-6,14,-16,16v0,1,0,2,1,4v-6,-3,-7,1,-3,6v-1,5,-7,21,-13,22r8,-23v-9,2,-12,12,-13,22v-6,28,-28,48,-37,71v12,1,30,-3,39,2v-2,5,-2,6,-1,6v10,-9,30,-10,51,-9v4,14,-2,28,3,45v-44,-7,-100,-1,-147,-4v-8,-48,12,-64,32,-89v7,-32,32,-43,42,-70v7,-6,7,-3,8,-15r-51,0v1,-12,-16,-10,-13,-1r-13,0xm63,-26v-2,-6,-14,-6,-18,-10v-5,12,8,22,18,10xm27,-17v2,-5,-4,-7,-6,-4v0,3,2,4,6,4",w:153},"[":{d:"27,-226v13,1,11,15,32,8v1,-8,-11,-3,-16,-4r0,-3v19,0,35,1,49,2v9,17,-1,32,-25,27v-4,2,-8,3,-13,6v0,3,4,6,7,4v-4,25,11,52,-3,70v13,28,2,77,3,115v-6,1,-9,4,-9,7r10,0r0,15r31,3v3,9,6,21,0,26r-66,1v2,-39,-3,-84,7,-114v-15,-33,-4,-110,-7,-163xm55,-121r0,-52r-4,0r0,52r4,0",w:108},"\uf05b":{d:"27,-226v13,1,11,15,32,8v1,-8,-11,-3,-16,-4r0,-3v19,0,35,1,49,2v9,17,-1,32,-25,27v-4,2,-8,3,-13,6v0,3,4,6,7,4v-4,25,11,52,-3,70v13,28,2,77,3,115v-6,1,-9,4,-9,7r10,0r0,15r31,3v3,9,6,21,0,26r-66,1v2,-39,-3,-84,7,-114v-15,-33,-4,-110,-7,-163xm55,-121r0,-52r-4,0r0,52r4,0",w:108},"\\":{d:"87,61v-6,-11,-23,-34,-10,-44v-6,0,-9,-2,-10,-5v2,-16,-19,-30,-5,-44v-19,4,-17,-43,-28,-58v-10,-40,-28,-73,-34,-117v-1,-3,-3,-6,-6,-11v30,-4,39,21,31,46v18,7,15,39,18,64v4,0,5,-1,4,-5r7,3v1,20,7,28,5,45v2,-1,6,-10,6,-4v-7,25,22,34,21,60v0,23,17,48,18,69",w:103},"\uf05c":{d:"87,61v-6,-11,-23,-34,-10,-44v-6,0,-9,-2,-10,-5v2,-16,-19,-30,-5,-44v-19,4,-17,-43,-28,-58v-10,-40,-28,-73,-34,-117v-1,-3,-3,-6,-6,-11v30,-4,39,21,31,46v18,7,15,39,18,64v4,0,5,-1,4,-5r7,3v1,20,7,28,5,45v2,-1,6,-10,6,-4v-7,25,22,34,21,60v0,23,17,48,18,69",w:103},"]":{d:"40,-44v4,-46,2,-112,1,-156r-31,0v3,-11,3,-18,1,-31v19,8,38,2,60,0v16,5,2,41,8,59v3,9,-11,19,-8,25v15,11,2,57,9,79v-8,15,10,46,-8,52v-5,9,-6,20,-1,29v0,-7,2,-19,5,-21v2,-2,2,-1,2,3v-2,16,0,36,-1,53r-65,2r-1,-32v13,-2,23,10,29,-1v2,3,7,12,8,-2v-16,-9,-1,-44,-8,-59xm63,-205v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm67,-125v5,0,8,-4,8,-14v-8,-3,-8,9,-8,14xm60,-104v4,0,6,-4,6,-12v-6,-3,-5,9,-6,12xm63,-74v2,-8,-4,-21,-5,-11v0,5,-2,13,5,11",w:109},"\uf05d":{d:"40,-44v4,-46,2,-112,1,-156r-31,0v3,-11,3,-18,1,-31v19,8,38,2,60,0v16,5,2,41,8,59v3,9,-11,19,-8,25v15,11,2,57,9,79v-8,15,10,46,-8,52v-5,9,-6,20,-1,29v0,-7,2,-19,5,-21v2,-2,2,-1,2,3v-2,16,0,36,-1,53r-65,2r-1,-32v13,-2,23,10,29,-1v2,3,7,12,8,-2v-16,-9,-1,-44,-8,-59xm63,-205v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm67,-125v5,0,8,-4,8,-14v-8,-3,-8,9,-8,14xm60,-104v4,0,6,-4,6,-12v-6,-3,-5,9,-6,12xm63,-74v2,-8,-4,-21,-5,-11v0,5,-2,13,5,11",w:109},"^":{d:"36,-230v25,2,56,-13,52,15v5,0,7,-3,7,-9v9,12,10,26,18,37v-28,9,-42,-13,-57,-24r-26,25r-25,-1v1,-16,24,-19,16,-35v-1,-2,9,-10,15,-8xm41,-228v-2,0,-3,1,-3,2v-1,6,7,6,7,2v0,-3,-1,-4,-4,-4xm79,-218v-4,1,-2,11,2,10v3,0,4,-1,4,-4v0,-4,-2,-6,-6,-6",w:119},"\uf05e":{d:"36,-230v25,2,56,-13,52,15v5,0,7,-3,7,-9v9,12,10,26,18,37v-28,9,-42,-13,-57,-24r-26,25r-25,-1v1,-16,24,-19,16,-35v-1,-2,9,-10,15,-8xm41,-228v-2,0,-3,1,-3,2v-1,6,7,6,7,2v0,-3,-1,-4,-4,-4xm79,-218v-4,1,-2,11,2,10v3,0,4,-1,4,-4v0,-4,-2,-6,-6,-6",w:119},_:{d:"25,49v25,-10,62,3,87,-6v5,0,6,3,6,8v-4,0,-10,-2,-8,4r10,0v-1,6,-4,12,0,16v-22,-2,-49,1,-67,-5v-13,7,-39,1,-58,3v-8,-19,15,-32,30,-20",w:116},"\uf05f":{d:"25,49v25,-10,62,3,87,-6v5,0,6,3,6,8v-4,0,-10,-2,-8,4r10,0v-1,6,-4,12,0,16v-22,-2,-49,1,-67,-5v-13,7,-39,1,-58,3v-8,-19,15,-32,30,-20",w:116},"`":{d:"-8,-228r37,0v-2,4,-2,7,-1,9v1,6,4,-5,8,3r14,29v-9,0,-20,4,-16,-11v-2,-9,1,-10,-6,-9v5,23,-15,25,-20,6v-6,-10,-9,-19,-16,-27xm18,-215v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:67},"\uf060":{d:"-8,-228r37,0v-2,4,-2,7,-1,9v1,6,4,-5,8,3r14,29v-9,0,-20,4,-16,-11v-2,-9,1,-10,-6,-9v5,23,-15,25,-20,6v-6,-10,-9,-19,-16,-27xm18,-215v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:67},a:{d:"75,-123v-21,0,-12,35,-40,26v-41,6,-19,-23,-8,-37v6,-8,20,-21,34,-18v-6,6,-1,6,4,4v37,-19,81,22,66,59r0,39v-11,3,-4,26,-7,41v8,-3,6,-18,7,-30v5,16,0,36,8,50r-39,0v-2,-2,-3,-13,-7,-12v-26,40,-107,11,-82,-50v14,-21,39,-31,74,-31v11,-10,9,-41,-10,-41xm119,-74v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm63,-14v25,3,31,-24,30,-49v-19,8,-50,7,-42,42v0,4,4,7,12,7xm33,-47v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm32,-46v-11,5,-6,22,-3,35r3,0v-2,-9,12,-16,0,-18r0,-17",w:146},"\uf061":{d:"75,-123v-21,0,-12,35,-40,26v-41,6,-19,-23,-8,-37v6,-8,20,-21,34,-18v-6,6,-1,6,4,4v37,-19,81,22,66,59r0,39v-11,3,-4,26,-7,41v8,-3,6,-18,7,-30v5,16,0,36,8,50r-39,0v-2,-2,-3,-13,-7,-12v-26,40,-107,11,-82,-50v14,-21,39,-31,74,-31v11,-10,9,-41,-10,-41xm119,-74v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm63,-14v25,3,31,-24,30,-49v-19,8,-50,7,-42,42v0,4,4,7,12,7xm33,-47v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm32,-46v-11,5,-6,22,-3,35r3,0v-2,-9,12,-16,0,-18r0,-17",w:146},b:{d:"14,-20r-2,-217v17,0,37,-4,31,19v10,4,0,-23,14,-10v-2,11,0,23,-9,28v0,2,2,4,5,3r0,36v6,-20,48,-27,67,-13v1,3,3,6,8,8v35,39,32,155,-41,155v-20,0,-24,-16,-35,-24v6,23,-26,23,-38,15xm118,-80v-1,-16,1,-42,-14,-43v2,-27,-39,-38,-47,-14v-9,27,-6,55,1,82v17,23,54,3,47,-30v-4,-5,3,-39,4,-17v0,8,2,20,9,22xm40,-103v2,-5,-4,-11,-5,-4v0,3,2,4,5,4xm37,-66v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13xm116,-60v5,1,4,-2,4,-6v-5,-1,-4,2,-4,6"},"\uf062":{d:"14,-20r-2,-217v17,0,37,-4,31,19v10,4,0,-23,14,-10v-2,11,0,23,-9,28v0,2,2,4,5,3r0,36v6,-20,48,-27,67,-13v1,3,3,6,8,8v35,39,32,155,-41,155v-20,0,-24,-16,-35,-24v6,23,-26,23,-38,15xm118,-80v-1,-16,1,-42,-14,-43v2,-27,-39,-38,-47,-14v-9,27,-6,55,1,82v17,23,54,3,47,-30v-4,-5,3,-39,4,-17v0,8,2,20,9,22xm40,-103v2,-5,-4,-11,-5,-4v0,3,2,4,5,4xm37,-66v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13xm116,-60v5,1,4,-2,4,-6v-5,-1,-4,2,-4,6"},c:{d:"83,16v-76,4,-90,-74,-69,-140r23,-23v18,-2,52,-22,65,0v21,-5,32,28,32,53r-32,0r0,-8v-4,0,-6,2,-7,7v-2,-18,-8,-33,-32,-26v-3,7,-24,17,-13,23v-4,33,-7,78,23,82v23,3,13,-28,27,-34v1,1,-4,3,-3,6v10,-2,30,-6,40,-3v-1,38,-26,54,-54,63xm33,-64v9,0,5,-16,7,-28v-8,-1,-5,20,-7,28xm32,-54r0,18v3,0,5,-3,5,-9v0,-6,-2,-9,-5,-9",w:143},"\uf063":{d:"83,16v-76,4,-90,-74,-69,-140r23,-23v18,-2,52,-22,65,0v21,-5,32,28,32,53r-32,0r0,-8v-4,0,-6,2,-7,7v-2,-18,-8,-33,-32,-26v-3,7,-24,17,-13,23v-4,33,-7,78,23,82v23,3,13,-28,27,-34v1,1,-4,3,-3,6v10,-2,30,-6,40,-3v-1,38,-26,54,-54,63xm33,-64v9,0,5,-16,7,-28v-8,-1,-5,20,-7,28xm32,-54r0,18v3,0,5,-3,5,-9v0,-6,-2,-9,-5,-9",w:143},d:{d:"100,-159v-3,-28,2,-42,0,-69r42,2v-5,48,1,94,-3,142v-3,5,-9,6,-9,14v7,0,13,-13,12,6v-5,16,0,38,1,55r-40,0v-1,-5,1,-22,-5,-14v-4,17,-23,20,-45,20v-24,0,-52,-38,-45,-68v-15,-66,25,-122,87,-94v3,2,5,4,5,6xm75,-142v-30,8,-30,60,-32,87v2,2,5,-16,9,-6v5,12,8,26,24,27v35,-9,38,-101,-1,-108xm118,-119v9,0,5,-11,4,-17v8,0,12,-1,10,-4v-2,-2,-8,-2,-18,0v0,8,0,17,4,21xm41,-122v-3,1,-3,22,-1,28r4,0v-1,-8,2,-26,-3,-28xm32,-39v2,-5,-2,-12,-5,-6v0,4,2,6,5,6"},"\uf064":{d:"100,-159v-3,-28,2,-42,0,-69r42,2v-5,48,1,94,-3,142v-3,5,-9,6,-9,14v7,0,13,-13,12,6v-5,16,0,38,1,55r-40,0v-1,-5,1,-22,-5,-14v-4,17,-23,20,-45,20v-24,0,-52,-38,-45,-68v-15,-66,25,-122,87,-94v3,2,5,4,5,6xm75,-142v-30,8,-30,60,-32,87v2,2,5,-16,9,-6v5,12,8,26,24,27v35,-9,38,-101,-1,-108xm118,-119v9,0,5,-11,4,-17v8,0,12,-1,10,-4v-2,-2,-8,-2,-18,0v0,8,0,17,4,21xm41,-122v-3,1,-3,22,-1,28r4,0v-1,-8,2,-26,-3,-28xm32,-39v2,-5,-2,-12,-5,-6v0,4,2,6,5,6"},e:{d:"9,-43v-3,-25,-8,-97,23,-94v6,-3,-4,-12,11,-13v14,-9,26,-8,46,-10r1,3v11,3,30,3,28,19v26,7,21,44,24,75v-23,1,-48,4,-66,-3v-4,0,-6,2,-7,6r-28,0v14,8,9,41,30,42v29,1,24,-33,69,-19v-11,21,-25,50,-53,46v-15,8,-44,-2,-55,-10v-1,-3,3,-7,3,-8v-17,11,-24,-16,-26,-34xm96,-108v0,-17,-21,-22,-35,-15r-12,20v0,-4,1,-9,-5,-7v1,8,-1,19,6,21r48,-1r4,-18r-6,0xm111,-105v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm109,-78v6,1,6,-7,5,-10v-1,-2,-2,-2,-3,-1v-1,0,-2,4,-2,11",w:151},"\uf065":{d:"9,-43v-3,-25,-8,-97,23,-94v6,-3,-4,-12,11,-13v14,-9,26,-8,46,-10r1,3v11,3,30,3,28,19v26,7,21,44,24,75v-23,1,-48,4,-66,-3v-4,0,-6,2,-7,6r-28,0v14,8,9,41,30,42v29,1,24,-33,69,-19v-11,21,-25,50,-53,46v-15,8,-44,-2,-55,-10v-1,-3,3,-7,3,-8v-17,11,-24,-16,-26,-34xm96,-108v0,-17,-21,-22,-35,-15r-12,20v0,-4,1,-9,-5,-7v1,8,-1,19,6,21r48,-1r4,-18r-6,0xm111,-105v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm109,-78v6,1,6,-7,5,-10v-1,-2,-2,-2,-3,-1v-1,0,-2,4,-2,11",w:151},f:{d:"23,-157v-10,-20,0,-52,19,-54v7,-12,33,-10,49,-7v-2,13,6,21,-4,34v-16,-10,-40,14,-20,27v3,14,18,-11,24,4v-1,8,-3,22,0,27r-29,3v2,17,-6,24,-4,46r7,0v1,6,-14,9,-3,13v1,20,-2,43,3,59v-3,11,-28,4,-44,6v-4,-31,8,-70,0,-104v3,-4,2,-16,2,-23r-23,0v-1,-9,-6,-26,0,-31r23,0xm29,-186v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm41,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm28,-74v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm26,-40v9,-1,4,-21,5,-31v-8,3,-4,18,-5,31",w:90},"\uf066":{d:"23,-157v-10,-20,0,-52,19,-54v7,-12,33,-10,49,-7v-2,13,6,21,-4,34v-16,-10,-40,14,-20,27v3,14,18,-11,24,4v-1,8,-3,22,0,27r-29,3v2,17,-6,24,-4,46r7,0v1,6,-14,9,-3,13v1,20,-2,43,3,59v-3,11,-28,4,-44,6v-4,-31,8,-70,0,-104v3,-4,2,-16,2,-23r-23,0v-1,-9,-6,-26,0,-31r23,0xm29,-186v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm41,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm28,-74v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm26,-40v9,-1,4,-21,5,-31v-8,3,-4,18,-5,31",w:90},g:{d:"36,3v-31,-21,-30,-67,-25,-114v2,-22,24,-41,46,-41r-2,12v8,-3,9,-15,15,-13v14,0,24,7,32,22v0,-5,1,-13,4,-16r33,2v8,14,5,32,1,48v5,42,1,74,2,115v-10,25,-16,54,-50,56v-2,0,-3,-2,-3,-7v-22,21,-75,-5,-75,-34v0,-14,24,-8,39,-9v6,15,17,20,29,20v16,-9,23,-29,16,-52v-9,13,-21,11,-35,17v-7,-4,-16,-6,-27,-6xm71,-121v-20,0,-10,25,-28,27v-2,6,3,7,8,6v-14,29,5,81,40,59v12,-20,18,-72,-3,-86v0,-7,-9,-5,-17,-6xm40,-58v6,1,2,-7,3,-11v-1,0,-4,-1,-4,1v0,7,0,10,1,10xm126,-55v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm96,-16v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm56,61v-4,-6,-20,-14,-21,0r21,0",w:158},"\uf067":{d:"36,3v-31,-21,-30,-67,-25,-114v2,-22,24,-41,46,-41r-2,12v8,-3,9,-15,15,-13v14,0,24,7,32,22v0,-5,1,-13,4,-16r33,2v8,14,5,32,1,48v5,42,1,74,2,115v-10,25,-16,54,-50,56v-2,0,-3,-2,-3,-7v-22,21,-75,-5,-75,-34v0,-14,24,-8,39,-9v6,15,17,20,29,20v16,-9,23,-29,16,-52v-9,13,-21,11,-35,17v-7,-4,-16,-6,-27,-6xm71,-121v-20,0,-10,25,-28,27v-2,6,3,7,8,6v-14,29,5,81,40,59v12,-20,18,-72,-3,-86v0,-7,-9,-5,-17,-6xm40,-58v6,1,2,-7,3,-11v-1,0,-4,-1,-4,1v0,7,0,10,1,10xm126,-55v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm96,-16v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm56,61v-4,-6,-20,-14,-21,0r21,0",w:158},h:{d:"15,-18r-3,-219v5,2,2,9,11,4v-1,-8,10,-1,19,-3v2,0,4,1,5,3v-3,0,-7,-1,-6,3v25,-5,11,36,13,62v14,-4,21,-17,44,-13v58,10,37,104,38,163v-12,2,-24,2,-38,2v-6,-42,0,-64,9,-98v0,-4,-2,-6,-7,-6v0,6,-5,26,-3,13v-3,-14,1,-41,-16,-42v-15,-2,-19,11,-26,22v-3,-4,-5,-5,-5,-4v3,14,9,45,5,60v-2,-3,0,-11,-6,-10v-1,19,7,29,5,59r3,6xm104,-154r0,13v3,0,5,-2,5,-5v0,-6,-2,-8,-5,-8xm30,-109v6,0,9,-2,7,-6v-5,-3,-7,-1,-7,6xm96,-89v2,2,2,3,0,5v-2,-2,-2,-3,0,-5xm36,-55r0,-19r-3,0r0,19r3,0xm33,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:151},"\uf068":{d:"15,-18r-3,-219v5,2,2,9,11,4v-1,-8,10,-1,19,-3v2,0,4,1,5,3v-3,0,-7,-1,-6,3v25,-5,11,36,13,62v14,-4,21,-17,44,-13v58,10,37,104,38,163v-12,2,-24,2,-38,2v-6,-42,0,-64,9,-98v0,-4,-2,-6,-7,-6v0,6,-5,26,-3,13v-3,-14,1,-41,-16,-42v-15,-2,-19,11,-26,22v-3,-4,-5,-5,-5,-4v3,14,9,45,5,60v-2,-3,0,-11,-6,-10v-1,19,7,29,5,59r3,6xm104,-154r0,13v3,0,5,-2,5,-5v0,-6,-2,-8,-5,-8xm30,-109v6,0,9,-2,7,-6v-5,-3,-7,-1,-7,6xm96,-89v2,2,2,3,0,5v-2,-2,-2,-3,0,-5xm36,-55r0,-19r-3,0r0,19r3,0xm33,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:151},i:{d:"13,-198v-1,-12,-3,-24,0,-36v18,0,25,7,40,1v4,8,2,26,2,35v-16,3,-18,-14,-29,-2v-5,1,-9,2,-13,2xm13,-13v-4,-48,1,-109,0,-161v13,-1,27,3,38,3v0,2,1,7,5,14v-12,19,6,45,-3,72v-2,-9,-5,-13,-9,-13v0,9,1,21,-2,32v1,11,5,16,9,2v7,13,1,28,4,50v-14,-2,-27,2,-42,1xm32,-137v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm33,-108v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm37,-102v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:69},"\uf069":{d:"13,-198v-1,-12,-3,-24,0,-36v18,0,25,7,40,1v4,8,2,26,2,35v-16,3,-18,-14,-29,-2v-5,1,-9,2,-13,2xm13,-13v-4,-48,1,-109,0,-161v13,-1,27,3,38,3v0,2,1,7,5,14v-12,19,6,45,-3,72v-2,-9,-5,-13,-9,-13v0,9,1,21,-2,32v1,11,5,16,9,2v7,13,1,28,4,50v-14,-2,-27,2,-42,1xm32,-137v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm33,-108v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm37,-102v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:69},j:{d:"29,-180v-6,2,-10,5,-20,4v-2,-12,-4,-23,-1,-35v10,-2,23,-2,38,-2v0,14,4,26,2,37r-9,0v-2,-11,-13,-8,-18,-4r8,0xm36,-207v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm5,14v7,-52,-4,-107,4,-166r17,0v-2,5,0,7,4,7v1,0,9,-12,11,-9v13,5,9,29,0,34v15,6,3,60,9,70v3,13,-16,29,-8,41v1,-5,5,-14,7,-17v-2,14,5,33,-4,45v0,-4,2,-10,-4,-8v8,33,5,56,-35,57v-18,1,-25,-10,-21,-26v-5,-19,30,0,20,-28xm28,-125v1,-2,-2,-8,-4,-5v-1,0,-2,3,-2,8v3,0,5,-1,6,-3",w:64},"\uf06a":{d:"29,-180v-6,2,-10,5,-20,4v-2,-12,-4,-23,-1,-35v10,-2,23,-2,38,-2v0,14,4,26,2,37r-9,0v-2,-11,-13,-8,-18,-4r8,0xm36,-207v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm5,14v7,-52,-4,-107,4,-166r17,0v-2,5,0,7,4,7v1,0,9,-12,11,-9v13,5,9,29,0,34v15,6,3,60,9,70v3,13,-16,29,-8,41v1,-5,5,-14,7,-17v-2,14,5,33,-4,45v0,-4,2,-10,-4,-8v8,33,5,56,-35,57v-18,1,-25,-10,-21,-26v-5,-19,30,0,20,-28xm28,-125v1,-2,-2,-8,-4,-5v-1,0,-2,3,-2,8v3,0,5,-1,6,-3",w:64},k:{d:"14,-5r1,-212v0,-1,-1,-4,-3,-9v19,1,51,-14,41,21v3,20,4,29,-7,43v21,1,-1,37,11,51v13,-16,23,-42,38,-55v12,7,27,-2,45,0v-17,21,-29,43,-50,61v17,23,29,57,47,79v3,5,5,11,7,18r-49,2v-2,-28,-24,-38,-29,-65v-11,12,-16,27,-16,45v8,-1,4,11,5,20xm51,-203v-2,-3,-7,-13,-12,-12r0,29v5,0,3,0,5,-8r0,-9v2,2,6,4,7,0xm73,-89v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm46,-69v5,1,7,-1,6,-6v-4,0,-6,2,-6,6",w:138},"\uf06b":{d:"14,-5r1,-212v0,-1,-1,-4,-3,-9v19,1,51,-14,41,21v3,20,4,29,-7,43v21,1,-1,37,11,51v13,-16,23,-42,38,-55v12,7,27,-2,45,0v-17,21,-29,43,-50,61v17,23,29,57,47,79v3,5,5,11,7,18r-49,2v-2,-28,-24,-38,-29,-65v-11,12,-16,27,-16,45v8,-1,4,11,5,20xm51,-203v-2,-3,-7,-13,-12,-12r0,29v5,0,3,0,5,-8r0,-9v2,2,6,4,7,0xm73,-89v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm46,-69v5,1,7,-1,6,-6v-4,0,-6,2,-6,6",w:138},l:{d:"15,-9v-10,-68,3,-155,-4,-224v6,16,30,-3,44,5v-5,40,4,83,-2,114r-6,0v2,6,1,20,-1,25v0,2,0,3,1,2v1,0,2,-4,4,-10v3,7,4,17,-3,20r0,32v9,2,11,33,-2,34xm33,-123v2,-9,-3,-29,-5,-12v0,8,2,12,5,12xm55,-103r0,-8v2,1,1,7,0,8xm55,-46v-3,1,-6,-1,-2,-2v2,0,2,1,2,2",w:70},"\uf06c":{d:"15,-9v-10,-68,3,-155,-4,-224v6,16,30,-3,44,5v-5,40,4,83,-2,114r-6,0v2,6,1,20,-1,25v0,2,0,3,1,2v1,0,2,-4,4,-10v3,7,4,17,-3,20r0,32v9,2,11,33,-2,34xm33,-123v2,-9,-3,-29,-5,-12v0,8,2,12,5,12xm55,-103r0,-8v2,1,1,7,0,8xm55,-46v-3,1,-6,-1,-2,-2v2,0,2,1,2,2",w:70},m:{d:"126,-118v4,-22,34,-36,52,-26v20,2,25,21,27,40v0,4,-2,5,-5,4r0,7v7,-4,9,1,10,9v2,27,-4,47,0,70v1,-7,-9,-2,-12,-3r3,-19v-7,2,-12,22,-6,28v1,0,14,-9,12,2v1,7,5,19,1,24r-36,0v-11,-29,-2,-66,-2,-97v0,-18,-2,-36,-18,-37v-38,16,-15,90,-21,132r-41,0v2,-34,-2,-74,5,-103v0,-27,-35,-40,-38,-6r-5,25v-1,-4,3,-14,-4,-9v-3,10,-6,39,-2,51v-1,-10,6,-18,9,-8v-3,18,0,34,0,52r-42,-2v3,-49,-3,-107,1,-145v0,-6,-1,-10,-3,-13v7,-1,4,11,11,5v8,-8,19,0,31,-7r0,12v9,-12,33,-19,52,-13v7,9,16,16,21,27xm51,-129v-2,2,-2,3,0,5v3,-2,3,-3,0,-5xm116,-121v-1,4,1,6,5,5v0,-4,-1,-5,-5,-5xm108,-104r0,14v3,0,5,-2,5,-7v0,-4,-2,-7,-5,-7xm171,-98r0,19v4,0,6,-4,6,-10v0,-6,-2,-9,-6,-9xm199,-40v8,-1,6,-30,-2,-29",w:224},"\uf06d":{d:"126,-118v4,-22,34,-36,52,-26v20,2,25,21,27,40v0,4,-2,5,-5,4r0,7v7,-4,9,1,10,9v2,27,-4,47,0,70v1,-7,-9,-2,-12,-3r3,-19v-7,2,-12,22,-6,28v1,0,14,-9,12,2v1,7,5,19,1,24r-36,0v-11,-29,-2,-66,-2,-97v0,-18,-2,-36,-18,-37v-38,16,-15,90,-21,132r-41,0v2,-34,-2,-74,5,-103v0,-27,-35,-40,-38,-6r-5,25v-1,-4,3,-14,-4,-9v-3,10,-6,39,-2,51v-1,-10,6,-18,9,-8v-3,18,0,34,0,52r-42,-2v3,-49,-3,-107,1,-145v0,-6,-1,-10,-3,-13v7,-1,4,11,11,5v8,-8,19,0,31,-7r0,12v9,-12,33,-19,52,-13v7,9,16,16,21,27xm51,-129v-2,2,-2,3,0,5v3,-2,3,-3,0,-5xm116,-121v-1,4,1,6,5,5v0,-4,-1,-5,-5,-5xm108,-104r0,14v3,0,5,-2,5,-7v0,-4,-2,-7,-5,-7xm171,-98r0,19v4,0,6,-4,6,-10v0,-6,-2,-9,-6,-9xm199,-40v8,-1,6,-30,-2,-29",w:224},n:{d:"126,-132v16,11,2,51,13,66v-7,7,4,23,-9,25v-3,10,9,17,0,28v5,6,6,17,6,29v-14,0,-24,-1,-38,-2v-4,-32,-4,-82,-3,-107v1,1,3,2,5,2v-2,-11,2,-23,-1,-29v-5,0,-5,13,-8,16v-7,-18,-35,-11,-36,9r-4,50v1,-12,-8,-18,-7,-6r2,21v4,0,6,-1,7,-4v7,13,-4,27,2,46v-4,10,-29,0,-42,1v1,-50,-5,-109,0,-155r38,0v1,5,-2,13,2,15v1,-21,30,-20,49,-20v15,0,16,10,24,15xm45,-63v7,0,1,-13,3,-18v-7,0,-1,13,-3,18xm119,-66v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm116,-6v7,0,6,-6,0,-5r0,5",w:151},"\uf06e":{d:"126,-132v16,11,2,51,13,66v-7,7,4,23,-9,25v-3,10,9,17,0,28v5,6,6,17,6,29v-14,0,-24,-1,-38,-2v-4,-32,-4,-82,-3,-107v1,1,3,2,5,2v-2,-11,2,-23,-1,-29v-5,0,-5,13,-8,16v-7,-18,-35,-11,-36,9r-4,50v1,-12,-8,-18,-7,-6r2,21v4,0,6,-1,7,-4v7,13,-4,27,2,46v-4,10,-29,0,-42,1v1,-50,-5,-109,0,-155r38,0v1,5,-2,13,2,15v1,-21,30,-20,49,-20v15,0,16,10,24,15xm45,-63v7,0,1,-13,3,-18v-7,0,-1,13,-3,18xm119,-66v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm116,-6v7,0,6,-6,0,-5r0,5",w:151},o:{d:"9,-118v3,-24,29,-56,60,-50v36,-9,69,19,71,55v8,28,6,58,-8,81v-10,0,-5,17,-15,19v-22,24,-84,16,-96,-9v-1,-20,-2,-38,-6,-54v0,-3,-1,-3,-1,-1v-1,9,1,46,-5,28v-9,-24,-4,-51,5,-69v0,-2,-3,-1,-5,0xm121,-138v3,0,6,-4,5,-8v1,-2,-5,-4,-7,-2v0,5,1,9,2,10xm85,-31v22,-16,16,-55,15,-83v-14,-8,-9,-32,-34,-21v-29,13,-24,86,-2,104r21,0xm136,-76v-3,1,-2,14,4,13v0,-9,-1,-13,-4,-13xm125,-31v0,-3,3,-10,-4,-8v-1,5,1,18,4,8",w:153},"\uf06f":{d:"9,-118v3,-24,29,-56,60,-50v36,-9,69,19,71,55v8,28,6,58,-8,81v-10,0,-5,17,-15,19v-22,24,-84,16,-96,-9v-1,-20,-2,-38,-6,-54v0,-3,-1,-3,-1,-1v-1,9,1,46,-5,28v-9,-24,-4,-51,5,-69v0,-2,-3,-1,-5,0xm121,-138v3,0,6,-4,5,-8v1,-2,-5,-4,-7,-2v0,5,1,9,2,10xm85,-31v22,-16,16,-55,15,-83v-14,-8,-9,-32,-34,-21v-29,13,-24,86,-2,104r21,0xm136,-76v-3,1,-2,14,4,13v0,-9,-1,-13,-4,-13xm125,-31v0,-3,3,-10,-4,-8v-1,5,1,18,4,8",w:153},p:{d:"89,21v-18,7,-20,-19,-34,-9v-5,21,5,49,-4,62v-12,-1,-27,0,-38,-3r0,-210v0,-4,8,-4,12,-2v5,0,4,1,4,4v4,0,25,-8,24,2v-6,12,1,16,5,4v4,-15,20,-20,42,-19v6,6,16,10,24,13v37,43,36,163,-35,158xm76,-116v-18,5,-27,33,-21,55v-1,-1,-2,1,-3,4v-4,22,7,48,29,48v34,-8,35,-94,4,-107v-4,1,-7,4,-11,0r2,0xm132,-97v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm136,-73v1,-3,-6,-25,-7,-12v0,8,2,12,7,12xm136,-63v-6,0,-7,13,-8,18v0,-4,1,-10,-5,-8v0,11,4,14,3,26r4,0v0,-13,7,-21,6,-36xm39,0v-1,-11,-11,-13,-3,-27v0,4,-2,11,4,9v-2,-7,5,-22,-5,-22v-8,11,-6,31,0,40r4,0"},"\uf070":{d:"89,21v-18,7,-20,-19,-34,-9v-5,21,5,49,-4,62v-12,-1,-27,0,-38,-3r0,-210v0,-4,8,-4,12,-2v5,0,4,1,4,4v4,0,25,-8,24,2v-6,12,1,16,5,4v4,-15,20,-20,42,-19v6,6,16,10,24,13v37,43,36,163,-35,158xm76,-116v-18,5,-27,33,-21,55v-1,-1,-2,1,-3,4v-4,22,7,48,29,48v34,-8,35,-94,4,-107v-4,1,-7,4,-11,0r2,0xm132,-97v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm136,-73v1,-3,-6,-25,-7,-12v0,8,2,12,7,12xm136,-63v-6,0,-7,13,-8,18v0,-4,1,-10,-5,-8v0,11,4,14,3,26r4,0v0,-13,7,-21,6,-36xm39,0v-1,-11,-11,-13,-3,-27v0,4,-2,11,4,9v-2,-7,5,-22,-5,-22v-8,11,-6,31,0,40r4,0"},q:{d:"5,-57v3,-42,3,-95,50,-97v18,-6,41,8,48,22v-9,-25,19,-17,39,-16v-7,36,11,82,-10,103r0,18v7,2,3,-14,8,-17v2,24,3,42,-5,55v3,0,5,-1,7,-2r0,17v-4,0,-6,4,-6,12v2,0,4,-4,8,-3r-4,31v-34,11,-53,-10,-38,-42v-4,-8,4,-21,-4,-25v-28,33,-96,2,-89,-46v0,-5,-1,-8,-4,-10xm50,-107v2,33,-18,89,30,89v27,-10,21,-63,15,-90v-6,-27,-41,-17,-49,-2v0,3,1,4,4,3xm106,-107v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm41,-82v6,0,4,0,5,-10v2,-5,1,-6,-1,-4v-3,2,-4,7,-4,14xm32,-60v0,7,1,10,5,10r0,-19v-4,0,-5,3,-5,9",w:158},"\uf071":{d:"5,-57v3,-42,3,-95,50,-97v18,-6,41,8,48,22v-9,-25,19,-17,39,-16v-7,36,11,82,-10,103r0,18v7,2,3,-14,8,-17v2,24,3,42,-5,55v3,0,5,-1,7,-2r0,17v-4,0,-6,4,-6,12v2,0,4,-4,8,-3r-4,31v-34,11,-53,-10,-38,-42v-4,-8,4,-21,-4,-25v-28,33,-96,2,-89,-46v0,-5,-1,-8,-4,-10xm50,-107v2,33,-18,89,30,89v27,-10,21,-63,15,-90v-6,-27,-41,-17,-49,-2v0,3,1,4,4,3xm106,-107v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm41,-82v6,0,4,0,5,-10v2,-5,1,-6,-1,-4v-3,2,-4,7,-4,14xm32,-60v0,7,1,10,5,10r0,-19v-4,0,-5,3,-5,9",w:158},r:{d:"19,-170v15,9,36,-13,36,20v6,-17,22,-27,47,-25r0,30v-23,-1,-46,7,-44,31v-8,5,2,32,-8,33r0,31v8,-3,4,5,5,11v-4,11,-2,19,0,30v-25,-1,-53,6,-41,-36v-1,-2,-2,-6,0,-7v4,0,11,6,12,2v-24,-22,-9,-81,-13,-118v0,-1,2,-2,6,-2xm52,-83v-3,-5,0,-15,-7,-15v0,8,1,16,7,15xm55,-63r1,8",w:103},"\uf072":{d:"19,-170v15,9,36,-13,36,20v6,-17,22,-27,47,-25r0,30v-23,-1,-46,7,-44,31v-8,5,2,32,-8,33r0,31v8,-3,4,5,5,11v-4,11,-2,19,0,30v-25,-1,-53,6,-41,-36v-1,-2,-2,-6,0,-7v4,0,11,6,12,2v-24,-22,-9,-81,-13,-118v0,-1,2,-2,6,-2xm52,-83v-3,-5,0,-15,-7,-15v0,8,1,16,7,15xm55,-63r1,8",w:103},s:{d:"26,-87v-17,-12,-28,-46,-12,-69v1,-1,3,-1,7,-1v4,-17,13,-18,28,-18v0,0,-1,9,4,7v3,-15,27,-7,40,-6v17,1,35,26,28,45r-34,0v-1,-21,-26,-26,-37,-12v-4,6,-5,12,-5,20v10,-5,11,11,26,7v11,3,21,8,33,10v0,3,-4,9,1,9v12,-13,18,9,22,20v13,40,-25,81,-70,65v-26,5,-54,-18,-51,-44v2,-2,7,-1,7,-6v2,7,9,4,13,-3v17,-4,23,4,26,19v16,14,47,-6,29,-28v-19,-2,-30,-16,-55,-15xm116,-66r0,19v4,0,5,-3,5,-10v0,-6,-1,-9,-5,-9",w:133},"\uf073":{d:"26,-87v-17,-12,-28,-46,-12,-69v1,-1,3,-1,7,-1v4,-17,13,-18,28,-18v0,0,-1,9,4,7v3,-15,27,-7,40,-6v17,1,35,26,28,45r-34,0v-1,-21,-26,-26,-37,-12v-4,6,-5,12,-5,20v10,-5,11,11,26,7v11,3,21,8,33,10v0,3,-4,9,1,9v12,-13,18,9,22,20v13,40,-25,81,-70,65v-26,5,-54,-18,-51,-44v2,-2,7,-1,7,-6v2,7,9,4,13,-3v17,-4,23,4,26,19v16,14,47,-6,29,-28v-19,-2,-30,-16,-55,-15xm116,-66r0,19v4,0,5,-3,5,-10v0,-6,-1,-9,-5,-9",w:133},t:{d:"23,-155v-4,-14,-4,-29,-2,-45v5,-3,10,6,17,5v6,-4,17,-5,17,6v6,2,4,-5,4,-9v4,12,5,32,3,45r29,0v-10,8,6,28,-4,32r-24,0r-1,24r-5,0v0,8,1,12,5,12v-2,18,2,38,1,58r13,6v6,-4,11,-7,14,-7r-3,32v-15,7,-29,5,-46,5v-31,-11,-14,-55,-22,-85v3,-12,5,-37,0,-44v-22,6,-25,-12,-20,-33v11,0,19,0,24,-2xm41,-134v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-126v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm55,-100v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm37,-16r0,-31r-3,0r0,31r3,0xm41,-24v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11",w:90},"\uf074":{d:"23,-155v-4,-14,-4,-29,-2,-45v5,-3,10,6,17,5v6,-4,17,-5,17,6v6,2,4,-5,4,-9v4,12,5,32,3,45r29,0v-10,8,6,28,-4,32r-24,0r-1,24r-5,0v0,8,1,12,5,12v-2,18,2,38,1,58r13,6v6,-4,11,-7,14,-7r-3,32v-15,7,-29,5,-46,5v-31,-11,-14,-55,-22,-85v3,-12,5,-37,0,-44v-22,6,-25,-12,-20,-33v11,0,19,0,24,-2xm41,-134v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-126v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm55,-100v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm37,-16r0,-31r-3,0r0,31r3,0xm41,-24v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11",w:90},u:{d:"54,-161v-7,9,10,24,-11,24v-3,7,9,2,10,6v-3,9,3,12,-8,12r0,30r4,0v1,-7,-2,-18,2,-22v8,29,-14,80,25,79v34,-16,14,-79,19,-122v4,-3,13,0,13,-7v-4,-1,-12,2,-12,-2v14,2,39,-11,39,11v0,20,5,22,-1,26v6,37,-6,84,3,121r-42,0v-1,-5,-2,-9,-4,-11v-6,11,-16,16,-28,16v-6,0,-8,-2,-5,-8v-5,-1,-5,3,-5,7v-12,0,-19,-18,-29,-13v-22,-19,-8,-71,-15,-108v5,-12,2,-24,2,-39v9,-5,30,-1,43,0xm111,-84v3,0,7,1,6,-3v-3,0,-7,-1,-6,3xm113,-57v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:151},"\uf075":{d:"54,-161v-7,9,10,24,-11,24v-3,7,9,2,10,6v-3,9,3,12,-8,12r0,30r4,0v1,-7,-2,-18,2,-22v8,29,-14,80,25,79v34,-16,14,-79,19,-122v4,-3,13,0,13,-7v-4,-1,-12,2,-12,-2v14,2,39,-11,39,11v0,20,5,22,-1,26v6,37,-6,84,3,121r-42,0v-1,-5,-2,-9,-4,-11v-6,11,-16,16,-28,16v-6,0,-8,-2,-5,-8v-5,-1,-5,3,-5,7v-12,0,-19,-18,-29,-13v-22,-19,-8,-71,-15,-108v5,-12,2,-24,2,-39v9,-5,30,-1,43,0xm111,-84v3,0,7,1,6,-3v-3,0,-7,-1,-6,3xm113,-57v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:151},v:{d:"60,-12r-24,5v-11,-57,-33,-103,-44,-159v6,2,18,-3,15,5v9,-1,12,-6,24,-4v-3,4,-10,19,2,19v-3,-10,1,-18,6,-6v11,29,11,61,20,90v1,2,1,0,2,-4v3,-33,19,-64,21,-100v14,3,35,-1,44,6v-10,22,-9,36,-21,60v7,18,-10,32,-11,50v-1,20,-15,19,-10,44v-8,-3,-17,-2,-27,-2v1,-2,7,-4,3,-4xm39,-116r0,-23r-3,0r0,23r3,0",w:119},"\uf076":{d:"60,-12r-24,5v-11,-57,-33,-103,-44,-159v6,2,18,-3,15,5v9,-1,12,-6,24,-4v-3,4,-10,19,2,19v-3,-10,1,-18,6,-6v11,29,11,61,20,90v1,2,1,0,2,-4v3,-33,19,-64,21,-100v14,3,35,-1,44,6v-10,22,-9,36,-21,60v7,18,-10,32,-11,50v-1,20,-15,19,-10,44v-8,-3,-17,-2,-27,-2v1,-2,7,-4,3,-4xm39,-116r0,-23r-3,0r0,23r3,0",w:119},w:{d:"106,-136v18,-1,14,23,15,44v5,2,8,8,10,20v12,-25,8,-63,19,-88r45,0v-5,24,-25,55,-19,80v-8,25,-12,56,-23,77v-17,-4,-48,12,-43,-18v-12,-18,-12,-51,-17,-76v-1,-1,-1,-2,-2,-1v-7,31,-8,67,-17,95v-26,2,-57,1,-48,-30v-4,-20,-15,-40,-16,-62v-8,-21,-12,-45,-17,-66v20,0,26,7,44,1v5,35,7,67,20,94v1,1,1,0,1,-2v1,-36,10,-62,15,-92r40,0v2,12,-3,20,-7,24xm69,-83v7,1,7,-6,2,-6v-2,1,-2,3,-2,6xm83,-69v1,-9,-3,-16,-6,-10v1,10,0,11,6,10xm147,-46v0,-7,-2,-16,-8,-17v0,9,1,18,8,17xm54,-7v-2,-8,-4,-14,0,-23v-9,0,-7,3,-8,10v0,9,3,13,8,13",w:187},"\uf077":{d:"106,-136v18,-1,14,23,15,44v5,2,8,8,10,20v12,-25,8,-63,19,-88r45,0v-5,24,-25,55,-19,80v-8,25,-12,56,-23,77v-17,-4,-48,12,-43,-18v-12,-18,-12,-51,-17,-76v-1,-1,-1,-2,-2,-1v-7,31,-8,67,-17,95v-26,2,-57,1,-48,-30v-4,-20,-15,-40,-16,-62v-8,-21,-12,-45,-17,-66v20,0,26,7,44,1v5,35,7,67,20,94v1,1,1,0,1,-2v1,-36,10,-62,15,-92r40,0v2,12,-3,20,-7,24xm69,-83v7,1,7,-6,2,-6v-2,1,-2,3,-2,6xm83,-69v1,-9,-3,-16,-6,-10v1,10,0,11,6,10xm147,-46v0,-7,-2,-16,-8,-17v0,9,1,18,8,17xm54,-7v-2,-8,-4,-14,0,-23v-9,0,-7,3,-8,10v0,9,3,13,8,13",w:187},x:{d:"42,-87v-14,-27,-36,-45,-45,-78v18,0,24,10,42,2v12,11,15,31,24,46v16,-7,12,-36,23,-48r42,0v-6,33,-28,51,-41,76v3,8,9,22,17,25r0,17v17,6,18,30,30,41v-18,-2,-33,3,-48,-1r-20,-53v-7,6,-9,16,-13,26v-3,7,-21,18,-11,29v-16,-4,-24,-1,-43,0v-4,-26,29,-49,36,-73v0,-3,3,-6,7,-9xm54,-104v-2,-8,-9,-27,-17,-20v2,10,8,18,17,20xm47,-40v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:128},"\uf078":{d:"42,-87v-14,-27,-36,-45,-45,-78v18,0,24,10,42,2v12,11,15,31,24,46v16,-7,12,-36,23,-48r42,0v-6,33,-28,51,-41,76v3,8,9,22,17,25r0,17v17,6,18,30,30,41v-18,-2,-33,3,-48,-1r-20,-53v-7,6,-9,16,-13,26v-3,7,-21,18,-11,29v-16,-4,-24,-1,-43,0v-4,-26,29,-49,36,-73v0,-3,3,-6,7,-9xm54,-104v-2,-8,-9,-27,-17,-20v2,10,8,18,17,20xm47,-40v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:128},y:{d:"68,-50v7,-26,15,-55,18,-87v5,-4,7,-9,5,-18v5,2,11,-1,8,7v13,0,20,-5,35,-4r-40,158v1,9,-1,15,-7,18r-3,-30r-3,0v5,19,-11,38,3,45v-12,15,-33,41,-53,19v-4,2,-17,9,-15,-6r2,-18v2,-6,8,1,12,0v14,2,28,-26,15,-35v-1,-28,-15,-47,-21,-71v-3,-16,-12,-25,-12,-44v-10,-6,-8,-27,-15,-37r34,1v-1,3,-9,7,-9,8v13,-2,31,-1,24,15v16,8,16,44,22,70v-5,-2,-11,-4,-11,6v6,-1,8,1,11,3xm87,-16v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:130},"\uf079":{d:"68,-50v7,-26,15,-55,18,-87v5,-4,7,-9,5,-18v5,2,11,-1,8,7v13,0,20,-5,35,-4r-40,158v1,9,-1,15,-7,18r-3,-30r-3,0v5,19,-11,38,3,45v-12,15,-33,41,-53,19v-4,2,-17,9,-15,-6r2,-18v2,-6,8,1,12,0v14,2,28,-26,15,-35v-1,-28,-15,-47,-21,-71v-3,-16,-12,-25,-12,-44v-10,-6,-8,-27,-15,-37r34,1v-1,3,-9,7,-9,8v13,-2,31,-1,24,15v16,8,16,44,22,70v-5,-2,-11,-4,-11,6v6,-1,8,1,11,3xm87,-16v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:130},z:{d:"3,-27v23,-15,16,-40,39,-52r6,2v-2,-1,-6,-9,2,-9v6,0,4,-7,3,-11v2,-11,11,-15,14,-25v-24,-2,-68,11,-58,-25v0,-3,-1,-6,-3,-8v15,3,33,2,50,2v-1,2,-9,0,-10,5v24,-3,37,-10,67,-7v-1,13,8,29,0,39v-25,16,-29,48,-51,67v0,8,-6,17,-9,22r60,0v7,8,6,24,4,32r-113,-2v-2,-8,-1,-20,-1,-30xm31,-143v4,-2,12,1,12,-5v-2,-3,-13,-5,-12,5xm37,-34v9,-1,-2,-21,-2,-10v0,7,1,10,2,10xm37,-8v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13",w:122},"\uf07a":{d:"3,-27v23,-15,16,-40,39,-52r6,2v-2,-1,-6,-9,2,-9v6,0,4,-7,3,-11v2,-11,11,-15,14,-25v-24,-2,-68,11,-58,-25v0,-3,-1,-6,-3,-8v15,3,33,2,50,2v-1,2,-9,0,-10,5v24,-3,37,-10,67,-7v-1,13,8,29,0,39v-25,16,-29,48,-51,67v0,8,-6,17,-9,22r60,0v7,8,6,24,4,32r-113,-2v-2,-8,-1,-20,-1,-30xm31,-143v4,-2,12,1,12,-5v-2,-3,-13,-5,-12,5xm37,-34v9,-1,-2,-21,-2,-10v0,7,1,10,2,10xm37,-8v6,1,2,-9,3,-13v-6,-1,-2,9,-3,13",w:122},"{":{d:"35,-89v47,-13,-12,-123,55,-122v3,0,7,-2,11,-5v3,6,1,16,3,24v-17,6,-20,24,-15,43v0,5,-7,-4,-7,2v9,24,3,53,-21,70v12,19,34,33,24,66v5,10,3,21,0,32v1,9,8,17,19,23v-1,6,0,16,-4,20v-23,2,-34,-17,-44,-30v-5,-36,11,-77,-21,-95r0,-28xm80,-173v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm80,-160v6,2,3,-6,4,-10v-6,-2,-3,6,-4,10xm67,-22v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm82,8v2,-6,-2,-22,-5,-10v0,6,2,10,5,10xm79,18v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:132},"\uf07b":{d:"35,-89v47,-13,-12,-123,55,-122v3,0,7,-2,11,-5v3,6,1,16,3,24v-17,6,-20,24,-15,43v0,5,-7,-4,-7,2v9,24,3,53,-21,70v12,19,34,33,24,66v5,10,3,21,0,32v1,9,8,17,19,23v-1,6,0,16,-4,20v-23,2,-34,-17,-44,-30v-5,-36,11,-77,-21,-95r0,-28xm80,-173v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm80,-160v6,2,3,-6,4,-10v-6,-2,-3,6,-4,10xm67,-22v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm82,8v2,-6,-2,-22,-5,-10v0,6,2,10,5,10xm79,18v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:132},"|":{d:"52,-175v2,-28,-4,-58,1,-82v33,-8,23,33,18,55v-3,10,-18,11,-17,27v-1,1,-1,1,-2,0xm77,-189v-8,29,5,75,-3,106v3,48,1,101,0,154v-14,0,-29,4,-23,-18r2,-158v-1,-29,-6,-48,6,-68v0,3,2,4,6,4v-4,-10,7,-35,12,-20xm69,-74v5,1,6,-2,5,-6v-3,0,-5,2,-5,6xm70,-62v-1,-4,-7,-4,-6,1v0,7,3,8,5,4v0,-1,1,-3,1,-5xm71,48v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:132},"\uf07c":{d:"52,-175v2,-28,-4,-58,1,-82v33,-8,23,33,18,55v-3,10,-18,11,-17,27v-1,1,-1,1,-2,0xm77,-189v-8,29,5,75,-3,106v3,48,1,101,0,154v-14,0,-29,4,-23,-18r2,-158v-1,-29,-6,-48,6,-68v0,3,2,4,6,4v-4,-10,7,-35,12,-20xm69,-74v5,1,6,-2,5,-6v-3,0,-5,2,-5,6xm70,-62v-1,-4,-7,-4,-6,1v0,7,3,8,5,4v0,-1,1,-3,1,-5xm71,48v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:132},"}":{d:"62,-102v-42,-13,-3,-86,-35,-111v-3,-17,-8,-19,7,-24v13,9,43,10,32,38v7,5,12,21,5,31v0,-6,-2,-9,-6,-9v5,14,9,23,6,44v6,15,35,26,21,52v-18,10,-23,24,-23,44v0,7,-1,15,-7,15r0,31r4,0v2,-9,-4,-26,3,-30v10,26,-3,70,-43,63r0,-21v32,-21,0,-71,24,-103v8,-2,24,-13,12,-20",w:132},"\uf07d":{d:"62,-102v-42,-13,-3,-86,-35,-111v-3,-17,-8,-19,7,-24v13,9,43,10,32,38v7,5,12,21,5,31v0,-6,-2,-9,-6,-9v5,14,9,23,6,44v6,15,35,26,21,52v-18,10,-23,24,-23,44v0,7,-1,15,-7,15r0,31r4,0v2,-9,-4,-26,3,-30v10,26,-3,70,-43,63r0,-21v32,-21,0,-71,24,-103v8,-2,24,-13,12,-20",w:132},"~":{d:"70,-98v-12,0,-28,-19,-38,-4r-23,2v3,-19,5,-40,29,-40v20,0,40,19,46,-1v7,8,9,2,24,2v-2,23,-14,41,-38,41xm51,-138v-1,7,1,5,11,6v0,-4,-4,-6,-11,-6",w:122},"\uf07e":{d:"70,-98v-12,0,-28,-19,-38,-4r-23,2v3,-19,5,-40,29,-40v20,0,40,19,46,-1v7,8,9,2,24,2v-2,23,-14,41,-38,41xm51,-138v-1,7,1,5,11,6v0,-4,-4,-6,-11,-6",w:122},"\u00a8":{d:"41,-229v-1,-5,13,-12,1,-14v-4,-4,-1,-15,-2,-22v18,2,39,-2,37,21v-1,17,-18,15,-36,15xm103,-233v-13,-1,-5,-26,0,-31v10,6,18,-2,33,-1v-1,13,-5,22,-2,34v-12,0,-21,-1,-31,-2xm111,-246v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm56,-242v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm64,-81v-4,10,-9,39,-1,48r15,0v-6,5,0,9,6,8v2,0,3,-3,4,-7r66,0v11,3,2,32,2,41r-15,-1v0,-4,-2,-6,-6,-6r0,6v-28,-1,-61,4,-84,-3v-9,3,-22,4,-35,3r3,-207v-1,-4,-1,-4,-2,-11v30,5,53,-4,81,5r0,-5r56,0v4,10,-1,26,3,42r-36,0v7,0,10,-2,10,-6v-12,0,-18,2,-20,8v-22,-1,-35,2,-61,1v13,7,12,24,12,42r20,0v-2,0,-1,3,-1,5v18,-5,39,-6,64,-5v-2,12,-2,25,-2,39v-15,5,-25,-5,-42,-1v0,-5,-2,-8,-5,-5v-2,11,-18,9,-32,9xm80,-173r7,0v0,-3,-1,-4,-3,-4v-3,0,-4,1,-4,4xm72,-170v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm51,-107v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-98v7,2,7,-7,2,-7v-1,1,-2,3,-2,7xm54,-60v-18,0,-12,-12,-8,-21v0,-1,1,-2,1,-1v-7,0,-11,5,-11,16v-2,11,16,13,18,6xm51,-66v6,0,2,-11,3,-16v-6,0,-2,11,-3,16xm115,-4v9,1,10,-6,3,-6v-2,1,-3,3,-3,6",w:161},"\uf0a8":{d:"41,-229v-1,-5,13,-12,1,-14v-4,-4,-1,-15,-2,-22v18,2,39,-2,37,21v-1,17,-18,15,-36,15xm103,-233v-13,-1,-5,-26,0,-31v10,6,18,-2,33,-1v-1,13,-5,22,-2,34v-12,0,-21,-1,-31,-2xm111,-246v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm56,-242v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm64,-81v-4,10,-9,39,-1,48r15,0v-6,5,0,9,6,8v2,0,3,-3,4,-7r66,0v11,3,2,32,2,41r-15,-1v0,-4,-2,-6,-6,-6r0,6v-28,-1,-61,4,-84,-3v-9,3,-22,4,-35,3r3,-207v-1,-4,-1,-4,-2,-11v30,5,53,-4,81,5r0,-5r56,0v4,10,-1,26,3,42r-36,0v7,0,10,-2,10,-6v-12,0,-18,2,-20,8v-22,-1,-35,2,-61,1v13,7,12,24,12,42r20,0v-2,0,-1,3,-1,5v18,-5,39,-6,64,-5v-2,12,-2,25,-2,39v-15,5,-25,-5,-42,-1v0,-5,-2,-8,-5,-5v-2,11,-18,9,-32,9xm80,-173r7,0v0,-3,-1,-4,-3,-4v-3,0,-4,1,-4,4xm72,-170v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm51,-107v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-98v7,2,7,-7,2,-7v-1,1,-2,3,-2,7xm54,-60v-18,0,-12,-12,-8,-21v0,-1,1,-2,1,-1v-7,0,-11,5,-11,16v-2,11,16,13,18,6xm51,-66v6,0,2,-11,3,-16v-6,0,-2,11,-3,16xm115,-4v9,1,10,-6,3,-6v-2,1,-3,3,-3,6",w:161},"\u0401":{d:"41,-229v-1,-5,13,-12,1,-14v-4,-4,-1,-15,-2,-22v18,2,39,-2,37,21v-1,17,-18,15,-36,15xm103,-233v-13,-1,-5,-26,0,-31v10,6,18,-2,33,-1v-1,13,-5,22,-2,34v-12,0,-21,-1,-31,-2xm111,-246v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm56,-242v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm64,-81v-4,10,-9,39,-1,48r15,0v-6,5,0,9,6,8v2,0,3,-3,4,-7r66,0v11,3,2,32,2,41r-15,-1v0,-4,-2,-6,-6,-6r0,6v-28,-1,-61,4,-84,-3v-9,3,-22,4,-35,3r3,-207v-1,-4,-1,-4,-2,-11v30,5,53,-4,81,5r0,-5r56,0v4,10,-1,26,3,42r-36,0v7,0,10,-2,10,-6v-12,0,-18,2,-20,8v-22,-1,-35,2,-61,1v13,7,12,24,12,42r20,0v-2,0,-1,3,-1,5v18,-5,39,-6,64,-5v-2,12,-2,25,-2,39v-15,5,-25,-5,-42,-1v0,-5,-2,-8,-5,-5v-2,11,-18,9,-32,9xm80,-173r7,0v0,-3,-1,-4,-3,-4v-3,0,-4,1,-4,4xm72,-170v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm51,-107v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-98v7,2,7,-7,2,-7v-1,1,-2,3,-2,7xm54,-60v-18,0,-12,-12,-8,-21v0,-1,1,-2,1,-1v-7,0,-11,5,-11,16v-2,11,16,13,18,6xm51,-66v6,0,2,-11,3,-16v-6,0,-2,11,-3,16xm115,-4v9,1,10,-6,3,-6v-2,1,-3,3,-3,6",w:161},"\u00b8":{d:"64,-223v4,12,-5,27,5,37v-12,1,-10,-7,-24,-6v-1,6,6,4,9,6v-23,7,-42,-9,-29,-35v10,4,20,-3,39,-2xm87,-186v-5,-9,0,-26,0,-37r44,0v-1,12,-7,28,-1,37r-43,0xm54,-215v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm124,-149v7,24,25,47,18,77v-8,3,-14,-5,-23,-4r0,-12v-4,0,-6,5,-6,16v-23,-2,-45,-1,-67,1v2,22,8,41,34,41v12,0,12,-15,20,-18r37,0v2,40,-35,56,-74,48v-31,4,-58,-24,-52,-58v-12,-19,0,-75,15,-90v17,-4,24,-22,49,-19v10,-5,17,9,29,2xm66,-140v4,1,8,-3,6,-6v0,-2,-2,-3,-6,-3v-1,0,-2,0,-2,2v0,4,1,7,2,7xm99,-106v0,-35,-44,-36,-51,-5v1,3,4,11,-4,13r15,0v1,18,9,-8,10,6r11,0v0,-4,-2,-5,-6,-5r28,0v-1,-2,-2,-5,-3,-9xm127,-106v4,-1,5,-8,-1,-7v-2,1,0,8,1,7xm114,-95v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm99,-32v7,0,11,-4,11,-14v-7,0,-11,5,-11,14xm72,-19v7,0,6,-6,0,-5r0,5",w:151},"\uf0b8":{d:"64,-223v4,12,-5,27,5,37v-12,1,-10,-7,-24,-6v-1,6,6,4,9,6v-23,7,-42,-9,-29,-35v10,4,20,-3,39,-2xm87,-186v-5,-9,0,-26,0,-37r44,0v-1,12,-7,28,-1,37r-43,0xm54,-215v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm124,-149v7,24,25,47,18,77v-8,3,-14,-5,-23,-4r0,-12v-4,0,-6,5,-6,16v-23,-2,-45,-1,-67,1v2,22,8,41,34,41v12,0,12,-15,20,-18r37,0v2,40,-35,56,-74,48v-31,4,-58,-24,-52,-58v-12,-19,0,-75,15,-90v17,-4,24,-22,49,-19v10,-5,17,9,29,2xm66,-140v4,1,8,-3,6,-6v0,-2,-2,-3,-6,-3v-1,0,-2,0,-2,2v0,4,1,7,2,7xm99,-106v0,-35,-44,-36,-51,-5v1,3,4,11,-4,13r15,0v1,18,9,-8,10,6r11,0v0,-4,-2,-5,-6,-5r28,0v-1,-2,-2,-5,-3,-9xm127,-106v4,-1,5,-8,-1,-7v-2,1,0,8,1,7xm114,-95v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm99,-32v7,0,11,-4,11,-14v-7,0,-11,5,-11,14xm72,-19v7,0,6,-6,0,-5r0,5",w:151},"\u0451":{d:"64,-223v4,12,-5,27,5,37v-12,1,-10,-7,-24,-6v-1,6,6,4,9,6v-23,7,-42,-9,-29,-35v10,4,20,-3,39,-2xm87,-186v-5,-9,0,-26,0,-37r44,0v-1,12,-7,28,-1,37r-43,0xm54,-215v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm124,-149v7,24,25,47,18,77v-8,3,-14,-5,-23,-4r0,-12v-4,0,-6,5,-6,16v-23,-2,-45,-1,-67,1v2,22,8,41,34,41v12,0,12,-15,20,-18r37,0v2,40,-35,56,-74,48v-31,4,-58,-24,-52,-58v-12,-19,0,-75,15,-90v17,-4,24,-22,49,-19v10,-5,17,9,29,2xm66,-140v4,1,8,-3,6,-6v0,-2,-2,-3,-6,-3v-1,0,-2,0,-2,2v0,4,1,7,2,7xm99,-106v0,-35,-44,-36,-51,-5v1,3,4,11,-4,13r15,0v1,18,9,-8,10,6r11,0v0,-4,-2,-5,-6,-5r28,0v-1,-2,-2,-5,-3,-9xm127,-106v4,-1,5,-8,-1,-7v-2,1,0,8,1,7xm114,-95v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm99,-32v7,0,11,-4,11,-14v-7,0,-11,5,-11,14xm72,-19v7,0,6,-6,0,-5r0,5",w:151},"\u00c0":{d:"-8,-6r64,-219v14,-2,28,3,38,-3v5,0,16,19,4,16v-1,5,3,5,7,5v5,7,-2,14,-1,26r7,0v1,19,29,47,14,70v24,11,17,59,32,79v3,9,5,18,7,26r-47,-3v-7,-6,-10,-28,-12,-38v-17,-2,-40,-1,-53,-7v-9,7,-11,34,-11,49v-2,-3,-13,-2,-16,-1v0,-4,-3,-6,-7,-6r0,6r-26,0xm109,-192v2,2,2,3,0,5v-2,-2,-2,-3,0,-5xm98,-88v-8,-24,-10,-53,-22,-73v-9,20,-12,52,-18,74v7,4,31,3,40,-1xm39,-104v2,-3,1,-7,-4,-6v-3,3,1,11,4,6xm30,-81v0,-4,-2,-6,-6,-6v0,16,6,13,17,11v5,-2,4,-12,-4,-11v-2,0,-5,2,-7,6xm119,-65v-1,-1,-6,-2,-6,1v0,4,3,4,5,2v0,-1,1,-2,1,-3xm122,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm18,-24v3,0,6,1,5,-3v-3,0,-6,-1,-5,3"},"\uf0c0":{d:"-8,-6r64,-219v14,-2,28,3,38,-3v5,0,16,19,4,16v-1,5,3,5,7,5v5,7,-2,14,-1,26r7,0v1,19,29,47,14,70v24,11,17,59,32,79v3,9,5,18,7,26r-47,-3v-7,-6,-10,-28,-12,-38v-17,-2,-40,-1,-53,-7v-9,7,-11,34,-11,49v-2,-3,-13,-2,-16,-1v0,-4,-3,-6,-7,-6r0,6r-26,0xm109,-192v2,2,2,3,0,5v-2,-2,-2,-3,0,-5xm98,-88v-8,-24,-10,-53,-22,-73v-9,20,-12,52,-18,74v7,4,31,3,40,-1xm39,-104v2,-3,1,-7,-4,-6v-3,3,1,11,4,6xm30,-81v0,-4,-2,-6,-6,-6v0,16,6,13,17,11v5,-2,4,-12,-4,-11v-2,0,-5,2,-7,6xm119,-65v-1,-1,-6,-2,-6,1v0,4,3,4,5,2v0,-1,1,-2,1,-3xm122,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm18,-24v3,0,6,1,5,-3v-3,0,-6,-1,-5,3"},"\u0410":{d:"-8,-6r64,-219v14,-2,28,3,38,-3v5,0,16,19,4,16v-1,5,3,5,7,5v5,7,-2,14,-1,26r7,0v1,19,29,47,14,70v24,11,17,59,32,79v3,9,5,18,7,26r-47,-3v-7,-6,-10,-28,-12,-38v-17,-2,-40,-1,-53,-7v-9,7,-11,34,-11,49v-2,-3,-13,-2,-16,-1v0,-4,-3,-6,-7,-6r0,6r-26,0xm109,-192v2,2,2,3,0,5v-2,-2,-2,-3,0,-5xm98,-88v-8,-24,-10,-53,-22,-73v-9,20,-12,52,-18,74v7,4,31,3,40,-1xm39,-104v2,-3,1,-7,-4,-6v-3,3,1,11,4,6xm30,-81v0,-4,-2,-6,-6,-6v0,16,6,13,17,11v5,-2,4,-12,-4,-11v-2,0,-5,2,-7,6xm119,-65v-1,-1,-6,-2,-6,1v0,4,3,4,5,2v0,-1,1,-2,1,-3xm122,-35v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm18,-24v3,0,6,1,5,-3v-3,0,-6,-1,-5,3"},"\u00c1":{d:"165,-33v-11,37,-67,44,-112,34v-10,0,-30,7,-36,-2v0,-38,-3,-79,2,-110v-6,-28,-2,-67,-3,-102r113,0v-4,3,-12,2,-13,7r32,-2v1,-4,-4,-6,0,-5v17,2,-5,32,6,43v-14,-7,-44,3,-59,-4v-4,-3,-6,-3,-7,-1v0,5,-5,1,-11,2v-21,-8,-14,24,-19,36v-8,0,-4,2,-1,3v16,3,34,3,52,3v42,1,56,35,58,75v-6,3,-6,12,-2,23xm114,-97v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm111,-40v26,-26,-4,-62,-48,-49v-2,17,-2,34,0,51v16,1,32,-5,48,-2xm41,-70v5,0,8,-3,8,-10v-5,0,-8,4,-8,10xm135,-26v8,-4,6,-21,7,-34v-7,0,-4,9,-7,13v-5,-1,-8,3,-8,13v0,6,3,8,8,8xm134,-32v-2,-4,-3,-2,0,-10r0,10xm45,-21v6,1,2,-10,3,-14v-6,-1,-2,10,-3,14xm33,0v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5",w:176},"\uf0c1":{d:"165,-33v-11,37,-67,44,-112,34v-10,0,-30,7,-36,-2v0,-38,-3,-79,2,-110v-6,-28,-2,-67,-3,-102r113,0v-4,3,-12,2,-13,7r32,-2v1,-4,-4,-6,0,-5v17,2,-5,32,6,43v-14,-7,-44,3,-59,-4v-4,-3,-6,-3,-7,-1v0,5,-5,1,-11,2v-21,-8,-14,24,-19,36v-8,0,-4,2,-1,3v16,3,34,3,52,3v42,1,56,35,58,75v-6,3,-6,12,-2,23xm114,-97v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm111,-40v26,-26,-4,-62,-48,-49v-2,17,-2,34,0,51v16,1,32,-5,48,-2xm41,-70v5,0,8,-3,8,-10v-5,0,-8,4,-8,10xm135,-26v8,-4,6,-21,7,-34v-7,0,-4,9,-7,13v-5,-1,-8,3,-8,13v0,6,3,8,8,8xm134,-32v-2,-4,-3,-2,0,-10r0,10xm45,-21v6,1,2,-10,3,-14v-6,-1,-2,10,-3,14xm33,0v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5",w:176},"\u0411":{d:"165,-33v-11,37,-67,44,-112,34v-10,0,-30,7,-36,-2v0,-38,-3,-79,2,-110v-6,-28,-2,-67,-3,-102r113,0v-4,3,-12,2,-13,7r32,-2v1,-4,-4,-6,0,-5v17,2,-5,32,6,43v-14,-7,-44,3,-59,-4v-4,-3,-6,-3,-7,-1v0,5,-5,1,-11,2v-21,-8,-14,24,-19,36v-8,0,-4,2,-1,3v16,3,34,3,52,3v42,1,56,35,58,75v-6,3,-6,12,-2,23xm114,-97v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm111,-40v26,-26,-4,-62,-48,-49v-2,17,-2,34,0,51v16,1,32,-5,48,-2xm41,-70v5,0,8,-3,8,-10v-5,0,-8,4,-8,10xm135,-26v8,-4,6,-21,7,-34v-7,0,-4,9,-7,13v-5,-1,-8,3,-8,13v0,6,3,8,8,8xm134,-32v-2,-4,-3,-2,0,-10r0,10xm45,-21v6,1,2,-10,3,-14v-6,-1,-2,10,-3,14xm33,0v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5",w:176},"\u00c2":{d:"18,-223v42,4,88,-4,119,5v22,14,18,38,24,59v-4,17,-20,28,-32,36v14,9,35,12,34,35v6,10,9,32,0,44v-7,5,-4,25,-19,30v-23,17,-70,9,-105,8v5,0,3,-11,0,-10v-4,0,-6,3,-7,10r-14,0r0,-217xm87,-137v31,7,33,-39,13,-46v-17,1,-43,-6,-45,8v12,-1,5,24,5,36v8,2,17,2,27,2xm131,-107v-9,1,-13,-3,-21,-4v2,9,15,17,22,21xm96,-45v33,0,32,-45,7,-52r-40,0v2,11,-19,16,-3,20v-2,13,6,15,4,29v10,2,18,3,32,3xm61,-9v3,0,6,0,5,-4v-3,0,-6,0,-5,4",w:179},"\uf0c2":{d:"18,-223v42,4,88,-4,119,5v22,14,18,38,24,59v-4,17,-20,28,-32,36v14,9,35,12,34,35v6,10,9,32,0,44v-7,5,-4,25,-19,30v-23,17,-70,9,-105,8v5,0,3,-11,0,-10v-4,0,-6,3,-7,10r-14,0r0,-217xm87,-137v31,7,33,-39,13,-46v-17,1,-43,-6,-45,8v12,-1,5,24,5,36v8,2,17,2,27,2xm131,-107v-9,1,-13,-3,-21,-4v2,9,15,17,22,21xm96,-45v33,0,32,-45,7,-52r-40,0v2,11,-19,16,-3,20v-2,13,6,15,4,29v10,2,18,3,32,3xm61,-9v3,0,6,0,5,-4v-3,0,-6,0,-5,4",w:179},"\u0412":{d:"18,-223v42,4,88,-4,119,5v22,14,18,38,24,59v-4,17,-20,28,-32,36v14,9,35,12,34,35v6,10,9,32,0,44v-7,5,-4,25,-19,30v-23,17,-70,9,-105,8v5,0,3,-11,0,-10v-4,0,-6,3,-7,10r-14,0r0,-217xm87,-137v31,7,33,-39,13,-46v-17,1,-43,-6,-45,8v12,-1,5,24,5,36v8,2,17,2,27,2xm131,-107v-9,1,-13,-3,-21,-4v2,9,15,17,22,21xm96,-45v33,0,32,-45,7,-52r-40,0v2,11,-19,16,-3,20v-2,13,6,15,4,29v10,2,18,3,32,3xm61,-9v3,0,6,0,5,-4v-3,0,-6,0,-5,4",w:179},"\u00c3":{d:"26,-67v7,-23,-12,-25,-10,-46v3,-24,0,-58,1,-85v19,4,50,-5,70,3v12,-5,25,1,47,-3v2,15,0,31,3,43v-6,-4,-20,-1,-29,-2v-5,-15,-13,-3,-23,-4v0,11,-23,-4,-22,11v-11,12,7,29,-4,42v-1,34,-3,66,4,96v-7,4,-5,24,-2,33v-53,13,-50,-52,-40,-103v6,2,0,13,5,15xm22,-168v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm37,-169v0,-1,-2,-2,-5,-2v-1,4,4,7,5,2xm63,-67v-3,0,-6,0,-2,-2v2,1,2,1,2,2xm27,-29v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:135},"\uf0c3":{d:"26,-67v7,-23,-12,-25,-10,-46v3,-24,0,-58,1,-85v19,4,50,-5,70,3v12,-5,25,1,47,-3v2,15,0,31,3,43v-6,-4,-20,-1,-29,-2v-5,-15,-13,-3,-23,-4v0,11,-23,-4,-22,11v-11,12,7,29,-4,42v-1,34,-3,66,4,96v-7,4,-5,24,-2,33v-53,13,-50,-52,-40,-103v6,2,0,13,5,15xm22,-168v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm37,-169v0,-1,-2,-2,-5,-2v-1,4,4,7,5,2xm63,-67v-3,0,-6,0,-2,-2v2,1,2,1,2,2xm27,-29v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:135},"\u0413":{d:"26,-67v7,-23,-12,-25,-10,-46v3,-24,0,-58,1,-85v19,4,50,-5,70,3v12,-5,25,1,47,-3v2,15,0,31,3,43v-6,-4,-20,-1,-29,-2v-5,-15,-13,-3,-23,-4v0,11,-23,-4,-22,11v-11,12,7,29,-4,42v-1,34,-3,66,4,96v-7,4,-5,24,-2,33v-53,13,-50,-52,-40,-103v6,2,0,13,5,15xm22,-168v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm37,-169v0,-1,-2,-2,-5,-2v-1,4,4,7,5,2xm63,-67v-3,0,-6,0,-2,-2v2,1,2,1,2,2xm27,-29v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:135},"\u00c4":{d:"13,-29v24,-46,24,-114,24,-176r127,3v-1,21,5,52,-1,78v6,28,-3,61,1,95r27,0v-7,19,2,43,-5,60v6,7,-1,13,0,20v-2,6,5,11,-2,12v-13,-2,-30,1,-39,-5v5,-15,3,-30,0,-44r-106,-1v-5,13,-1,35,-2,51r-42,-1v9,-32,-5,-62,1,-92r17,0xm58,-163v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm118,-29v5,-27,3,-51,0,-73v3,-17,4,-37,3,-61v-14,5,-43,-9,-42,12v0,21,-4,39,-3,61v-8,2,-12,7,-12,17v3,3,10,-16,11,-5v-3,16,-13,29,-15,47v10,11,40,1,58,2xm55,-148v-5,18,3,21,0,37v6,0,8,-4,8,-13v0,-4,-1,-7,-5,-8r0,-16r-3,0xm153,-130v1,-5,-6,-9,-8,-4v0,3,3,4,8,4xm154,-100v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm98,-26v-2,0,-4,0,-3,2v0,5,12,5,17,5v0,-7,-8,-6,-14,-7xm14,-10v-3,13,11,30,17,15v0,-9,6,-30,-2,-15r-15,0xm27,-5v0,14,-6,4,-8,0r8,0",w:189},"\uf0c4":{d:"13,-29v24,-46,24,-114,24,-176r127,3v-1,21,5,52,-1,78v6,28,-3,61,1,95r27,0v-7,19,2,43,-5,60v6,7,-1,13,0,20v-2,6,5,11,-2,12v-13,-2,-30,1,-39,-5v5,-15,3,-30,0,-44r-106,-1v-5,13,-1,35,-2,51r-42,-1v9,-32,-5,-62,1,-92r17,0xm58,-163v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm118,-29v5,-27,3,-51,0,-73v3,-17,4,-37,3,-61v-14,5,-43,-9,-42,12v0,21,-4,39,-3,61v-8,2,-12,7,-12,17v3,3,10,-16,11,-5v-3,16,-13,29,-15,47v10,11,40,1,58,2xm55,-148v-5,18,3,21,0,37v6,0,8,-4,8,-13v0,-4,-1,-7,-5,-8r0,-16r-3,0xm153,-130v1,-5,-6,-9,-8,-4v0,3,3,4,8,4xm154,-100v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm98,-26v-2,0,-4,0,-3,2v0,5,12,5,17,5v0,-7,-8,-6,-14,-7xm14,-10v-3,13,11,30,17,15v0,-9,6,-30,-2,-15r-15,0xm27,-5v0,14,-6,4,-8,0r8,0",w:189},"\u0414":{d:"13,-29v24,-46,24,-114,24,-176r127,3v-1,21,5,52,-1,78v6,28,-3,61,1,95r27,0v-7,19,2,43,-5,60v6,7,-1,13,0,20v-2,6,5,11,-2,12v-13,-2,-30,1,-39,-5v5,-15,3,-30,0,-44r-106,-1v-5,13,-1,35,-2,51r-42,-1v9,-32,-5,-62,1,-92r17,0xm58,-163v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm118,-29v5,-27,3,-51,0,-73v3,-17,4,-37,3,-61v-14,5,-43,-9,-42,12v0,21,-4,39,-3,61v-8,2,-12,7,-12,17v3,3,10,-16,11,-5v-3,16,-13,29,-15,47v10,11,40,1,58,2xm55,-148v-5,18,3,21,0,37v6,0,8,-4,8,-13v0,-4,-1,-7,-5,-8r0,-16r-3,0xm153,-130v1,-5,-6,-9,-8,-4v0,3,3,4,8,4xm154,-100v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm98,-26v-2,0,-4,0,-3,2v0,5,12,5,17,5v0,-7,-8,-6,-14,-7xm14,-10v-3,13,11,30,17,15v0,-9,6,-30,-2,-15r-15,0xm27,-5v0,14,-6,4,-8,0r8,0",w:189},"\u00c5":{d:"16,-223v18,2,51,-3,73,2v20,-5,43,4,64,-3r0,13v-8,-2,-4,8,-3,13v9,-2,5,9,6,15v-27,0,-59,5,-81,-1v-11,5,-16,14,-16,31v0,19,13,20,34,18v0,6,8,4,8,1v1,-2,0,-2,-1,-3r45,-2v1,16,-6,31,2,44v-24,-5,-58,0,-85,-2r0,26v-5,1,-2,-7,-6,-8v0,13,5,20,7,31r95,0v3,11,-2,30,-2,42r-139,0xm103,-42v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm53,-25v9,1,32,-4,14,-9v-9,0,-14,3,-14,9xm33,-22v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4",w:161},"\uf0c5":{d:"16,-223v18,2,51,-3,73,2v20,-5,43,4,64,-3r0,13v-8,-2,-4,8,-3,13v9,-2,5,9,6,15v-27,0,-59,5,-81,-1v-11,5,-16,14,-16,31v0,19,13,20,34,18v0,6,8,4,8,1v1,-2,0,-2,-1,-3r45,-2v1,16,-6,31,2,44v-24,-5,-58,0,-85,-2r0,26v-5,1,-2,-7,-6,-8v0,13,5,20,7,31r95,0v3,11,-2,30,-2,42r-139,0xm103,-42v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm53,-25v9,1,32,-4,14,-9v-9,0,-14,3,-14,9xm33,-22v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4",w:161},"\u0415":{d:"16,-223v18,2,51,-3,73,2v20,-5,43,4,64,-3r0,13v-8,-2,-4,8,-3,13v9,-2,5,9,6,15v-27,0,-59,5,-81,-1v-11,5,-16,14,-16,31v0,19,13,20,34,18v0,6,8,4,8,1v1,-2,0,-2,-1,-3r45,-2v1,16,-6,31,2,44v-24,-5,-58,0,-85,-2r0,26v-5,1,-2,-7,-6,-8v0,13,5,20,7,31r95,0v3,11,-2,30,-2,42r-139,0xm103,-42v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm53,-25v9,1,32,-4,14,-9v-9,0,-14,3,-14,9xm33,-22v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4",w:161},"\u00c6":{d:"239,-205v-16,21,-33,37,-44,65v-7,1,-15,-4,-14,6r8,0v-5,14,-16,-2,-17,20v11,1,-1,7,3,19v19,17,24,49,42,68v4,15,17,23,22,40v-22,3,-39,-7,-53,1v2,-21,-17,-20,-18,-41r-30,-58v-4,35,3,64,2,99v-5,-5,-15,-7,-28,-7v1,8,-12,2,-18,4v-6,-23,7,-59,-2,-81v6,-9,0,-28,-6,-7v-13,25,-23,54,-39,77v-1,-9,7,-17,6,-27v-16,6,-5,41,-34,36v-1,5,-19,7,-24,3v14,-44,49,-76,67,-117v-19,-36,-53,-64,-67,-103v14,1,32,11,45,3v27,17,29,60,51,82v7,-23,4,-63,1,-85v19,-1,28,7,47,5v-6,25,4,55,-1,85v14,-27,34,-51,44,-82v3,-3,6,-8,12,-8r0,5v14,-3,28,-2,45,-2xm104,-153v5,1,2,-7,3,-10v-2,0,-6,-1,-5,2v0,5,0,8,2,8xm119,-64v9,0,7,-16,4,-20v-6,1,-17,-4,-15,5r11,0v2,14,-7,9,-9,2v1,8,-4,13,9,13xm55,-45v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm45,1v1,1,0,18,-4,10",w:232},"\uf0c6":{d:"239,-205v-16,21,-33,37,-44,65v-7,1,-15,-4,-14,6r8,0v-5,14,-16,-2,-17,20v11,1,-1,7,3,19v19,17,24,49,42,68v4,15,17,23,22,40v-22,3,-39,-7,-53,1v2,-21,-17,-20,-18,-41r-30,-58v-4,35,3,64,2,99v-5,-5,-15,-7,-28,-7v1,8,-12,2,-18,4v-6,-23,7,-59,-2,-81v6,-9,0,-28,-6,-7v-13,25,-23,54,-39,77v-1,-9,7,-17,6,-27v-16,6,-5,41,-34,36v-1,5,-19,7,-24,3v14,-44,49,-76,67,-117v-19,-36,-53,-64,-67,-103v14,1,32,11,45,3v27,17,29,60,51,82v7,-23,4,-63,1,-85v19,-1,28,7,47,5v-6,25,4,55,-1,85v14,-27,34,-51,44,-82v3,-3,6,-8,12,-8r0,5v14,-3,28,-2,45,-2xm104,-153v5,1,2,-7,3,-10v-2,0,-6,-1,-5,2v0,5,0,8,2,8xm119,-64v9,0,7,-16,4,-20v-6,1,-17,-4,-15,5r11,0v2,14,-7,9,-9,2v1,8,-4,13,9,13xm55,-45v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm45,1v1,1,0,18,-4,10",w:232},"\u0416":{d:"239,-205v-16,21,-33,37,-44,65v-7,1,-15,-4,-14,6r8,0v-5,14,-16,-2,-17,20v11,1,-1,7,3,19v19,17,24,49,42,68v4,15,17,23,22,40v-22,3,-39,-7,-53,1v2,-21,-17,-20,-18,-41r-30,-58v-4,35,3,64,2,99v-5,-5,-15,-7,-28,-7v1,8,-12,2,-18,4v-6,-23,7,-59,-2,-81v6,-9,0,-28,-6,-7v-13,25,-23,54,-39,77v-1,-9,7,-17,6,-27v-16,6,-5,41,-34,36v-1,5,-19,7,-24,3v14,-44,49,-76,67,-117v-19,-36,-53,-64,-67,-103v14,1,32,11,45,3v27,17,29,60,51,82v7,-23,4,-63,1,-85v19,-1,28,7,47,5v-6,25,4,55,-1,85v14,-27,34,-51,44,-82v3,-3,6,-8,12,-8r0,5v14,-3,28,-2,45,-2xm104,-153v5,1,2,-7,3,-10v-2,0,-6,-1,-5,2v0,5,0,8,2,8xm119,-64v9,0,7,-16,4,-20v-6,1,-17,-4,-15,5r11,0v2,14,-7,9,-9,2v1,8,-4,13,9,13xm55,-45v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm45,1v1,1,0,18,-4,10",w:232},"\u00c7":{d:"9,-142v2,-47,27,-78,78,-78v39,0,82,28,71,75v-5,19,-13,32,-31,37v17,13,48,25,37,59v5,21,-10,33,-18,48v-58,28,-147,17,-140,-59v11,-4,45,-14,44,7v-2,22,20,21,38,24v14,-1,30,-7,31,-22v1,-31,-23,-37,-56,-34v5,-12,-2,-29,3,-40v27,1,49,-1,47,-28v-2,-31,-56,-29,-60,0v-13,5,-23,13,-44,11xm114,-183v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm128,-180v-8,-2,-18,6,-6,9v4,0,6,-3,6,-9xm127,-39v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm117,-17v10,0,15,-5,15,-14v-10,0,-15,5,-15,14xm54,-14v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7",w:177},"\uf0c7":{d:"9,-142v2,-47,27,-78,78,-78v39,0,82,28,71,75v-5,19,-13,32,-31,37v17,13,48,25,37,59v5,21,-10,33,-18,48v-58,28,-147,17,-140,-59v11,-4,45,-14,44,7v-2,22,20,21,38,24v14,-1,30,-7,31,-22v1,-31,-23,-37,-56,-34v5,-12,-2,-29,3,-40v27,1,49,-1,47,-28v-2,-31,-56,-29,-60,0v-13,5,-23,13,-44,11xm114,-183v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm128,-180v-8,-2,-18,6,-6,9v4,0,6,-3,6,-9xm127,-39v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm117,-17v10,0,15,-5,15,-14v-10,0,-15,5,-15,14xm54,-14v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7",w:177},"\u0417":{d:"9,-142v2,-47,27,-78,78,-78v39,0,82,28,71,75v-5,19,-13,32,-31,37v17,13,48,25,37,59v5,21,-10,33,-18,48v-58,28,-147,17,-140,-59v11,-4,45,-14,44,7v-2,22,20,21,38,24v14,-1,30,-7,31,-22v1,-31,-23,-37,-56,-34v5,-12,-2,-29,3,-40v27,1,49,-1,47,-28v-2,-31,-56,-29,-60,0v-13,5,-23,13,-44,11xm114,-183v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm128,-180v-8,-2,-18,6,-6,9v4,0,6,-3,6,-9xm127,-39v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm117,-17v10,0,15,-5,15,-14v-10,0,-15,5,-15,14xm54,-14v5,1,4,-3,4,-7v-5,-1,-4,3,-4,7",w:177},"\u00c8":{d:"16,-2r1,-208v6,-1,21,-5,23,2v39,-6,14,54,23,87r0,39v26,-37,40,-88,63,-128r40,2v3,45,-4,98,5,136v-5,14,2,40,-4,54v9,11,-4,15,2,26r-44,0v5,-51,-9,-108,4,-145v0,-2,-1,-3,-3,-3v-7,2,-5,28,-10,30v-23,37,-35,75,-53,115v-9,8,-31,0,-43,1v-3,0,-4,-3,-4,-8xm143,-97v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm140,-64v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm50,-64v2,-5,-5,-7,-7,-4v0,3,2,4,7,4xm38,-60v1,10,-11,26,3,28v11,1,8,-13,9,-21v-9,-1,-3,13,-9,16r0,-23r-3,0xm140,-24r0,-23r-3,0r0,23r3,0",w:189},"\uf0c8":{d:"16,-2r1,-208v6,-1,21,-5,23,2v39,-6,14,54,23,87r0,39v26,-37,40,-88,63,-128r40,2v3,45,-4,98,5,136v-5,14,2,40,-4,54v9,11,-4,15,2,26r-44,0v5,-51,-9,-108,4,-145v0,-2,-1,-3,-3,-3v-7,2,-5,28,-10,30v-23,37,-35,75,-53,115v-9,8,-31,0,-43,1v-3,0,-4,-3,-4,-8xm143,-97v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm140,-64v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm50,-64v2,-5,-5,-7,-7,-4v0,3,2,4,7,4xm38,-60v1,10,-11,26,3,28v11,1,8,-13,9,-21v-9,-1,-3,13,-9,16r0,-23r-3,0xm140,-24r0,-23r-3,0r0,23r3,0",w:189},"\u0418":{d:"16,-2r1,-208v6,-1,21,-5,23,2v39,-6,14,54,23,87r0,39v26,-37,40,-88,63,-128r40,2v3,45,-4,98,5,136v-5,14,2,40,-4,54v9,11,-4,15,2,26r-44,0v5,-51,-9,-108,4,-145v0,-2,-1,-3,-3,-3v-7,2,-5,28,-10,30v-23,37,-35,75,-53,115v-9,8,-31,0,-43,1v-3,0,-4,-3,-4,-8xm143,-97v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm140,-64v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm50,-64v2,-5,-5,-7,-7,-4v0,3,2,4,7,4xm38,-60v1,10,-11,26,3,28v11,1,8,-13,9,-21v-9,-1,-3,13,-9,16r0,-23r-3,0xm140,-24r0,-23r-3,0r0,23r3,0",w:189},"\u00c9":{d:"105,-226v-39,0,-58,-9,-62,-40r24,1v8,8,13,18,29,18v15,0,11,-19,27,-19v8,0,14,0,18,1v-4,20,-13,39,-36,39xm117,1v17,-8,-1,-36,9,-50v-3,-8,-1,-16,0,-25v-7,-16,3,-33,-2,-55v-22,37,-39,89,-61,128v-7,13,-24,-2,-47,4r1,-147v2,-21,0,-49,0,-69v25,-2,55,-9,42,30r3,106v18,-29,27,-68,46,-96v-5,-14,27,-8,11,-25v2,-20,31,-15,48,-12v1,34,5,71,-2,102v10,-1,3,14,4,23v-3,16,-12,35,2,44v-4,10,1,36,-4,46v-7,0,-17,2,-19,-4r-31,0xm51,-171v1,5,-3,18,-1,23v5,-3,10,-22,1,-23xm169,-52v0,-3,-3,-8,-1,-10v2,0,3,2,3,5v0,3,-1,5,-2,5",w:189},"\uf0c9":{d:"105,-226v-39,0,-58,-9,-62,-40r24,1v8,8,13,18,29,18v15,0,11,-19,27,-19v8,0,14,0,18,1v-4,20,-13,39,-36,39xm117,1v17,-8,-1,-36,9,-50v-3,-8,-1,-16,0,-25v-7,-16,3,-33,-2,-55v-22,37,-39,89,-61,128v-7,13,-24,-2,-47,4r1,-147v2,-21,0,-49,0,-69v25,-2,55,-9,42,30r3,106v18,-29,27,-68,46,-96v-5,-14,27,-8,11,-25v2,-20,31,-15,48,-12v1,34,5,71,-2,102v10,-1,3,14,4,23v-3,16,-12,35,2,44v-4,10,1,36,-4,46v-7,0,-17,2,-19,-4r-31,0xm51,-171v1,5,-3,18,-1,23v5,-3,10,-22,1,-23xm169,-52v0,-3,-3,-8,-1,-10v2,0,3,2,3,5v0,3,-1,5,-2,5",w:189},"\u0419":{d:"105,-226v-39,0,-58,-9,-62,-40r24,1v8,8,13,18,29,18v15,0,11,-19,27,-19v8,0,14,0,18,1v-4,20,-13,39,-36,39xm117,1v17,-8,-1,-36,9,-50v-3,-8,-1,-16,0,-25v-7,-16,3,-33,-2,-55v-22,37,-39,89,-61,128v-7,13,-24,-2,-47,4r1,-147v2,-21,0,-49,0,-69v25,-2,55,-9,42,30r3,106v18,-29,27,-68,46,-96v-5,-14,27,-8,11,-25v2,-20,31,-15,48,-12v1,34,5,71,-2,102v10,-1,3,14,4,23v-3,16,-12,35,2,44v-4,10,1,36,-4,46v-7,0,-17,2,-19,-4r-31,0xm51,-171v1,5,-3,18,-1,23v5,-3,10,-22,1,-23xm169,-52v0,-3,-3,-8,-1,-10v2,0,3,2,3,5v0,3,-1,5,-2,5",w:189},"\u00ca":{d:"59,-234v6,27,2,59,0,86v23,-17,41,-61,57,-88r47,0v8,12,-19,31,-24,44v-19,13,-27,39,-41,57v4,11,15,20,19,30v14,33,34,55,52,84v2,2,1,4,-1,4v-18,-5,-31,0,-49,-2v-18,-30,-31,-72,-55,-94v-3,31,-9,66,-1,91v-10,11,-37,-1,-47,1r1,-206v0,-11,12,1,18,-7r24,0xm104,-183v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm95,-157v6,0,8,-20,0,-17r0,17xm41,-153v-4,3,4,9,5,10v2,0,4,-2,4,-5v0,-4,-3,-5,-9,-5xm46,-126v-10,3,-1,-11,-9,-11v0,10,-3,37,9,24r0,-13xm121,-37v11,-3,0,-15,0,-23v-8,-1,-3,10,-4,18v1,4,2,5,4,5",w:164},"\uf0ca":{d:"59,-234v6,27,2,59,0,86v23,-17,41,-61,57,-88r47,0v8,12,-19,31,-24,44v-19,13,-27,39,-41,57v4,11,15,20,19,30v14,33,34,55,52,84v2,2,1,4,-1,4v-18,-5,-31,0,-49,-2v-18,-30,-31,-72,-55,-94v-3,31,-9,66,-1,91v-10,11,-37,-1,-47,1r1,-206v0,-11,12,1,18,-7r24,0xm104,-183v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm95,-157v6,0,8,-20,0,-17r0,17xm41,-153v-4,3,4,9,5,10v2,0,4,-2,4,-5v0,-4,-3,-5,-9,-5xm46,-126v-10,3,-1,-11,-9,-11v0,10,-3,37,9,24r0,-13xm121,-37v11,-3,0,-15,0,-23v-8,-1,-3,10,-4,18v1,4,2,5,4,5",w:164},"\u041a":{d:"59,-234v6,27,2,59,0,86v23,-17,41,-61,57,-88r47,0v8,12,-19,31,-24,44v-19,13,-27,39,-41,57v4,11,15,20,19,30v14,33,34,55,52,84v2,2,1,4,-1,4v-18,-5,-31,0,-49,-2v-18,-30,-31,-72,-55,-94v-3,31,-9,66,-1,91v-10,11,-37,-1,-47,1r1,-206v0,-11,12,1,18,-7r24,0xm104,-183v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm95,-157v6,0,8,-20,0,-17r0,17xm41,-153v-4,3,4,9,5,10v2,0,4,-2,4,-5v0,-4,-3,-5,-9,-5xm46,-126v-10,3,-1,-11,-9,-11v0,10,-3,37,9,24r0,-13xm121,-37v11,-3,0,-15,0,-23v-8,-1,-3,10,-4,18v1,4,2,5,4,5",w:164},"\u00cb":{d:"78,-221v20,-1,28,10,51,5v0,-3,-3,-3,-5,-5r46,0v-3,20,4,45,-2,62v-1,41,5,89,0,127r0,31r-42,-2r-1,-77v2,-8,21,-19,9,-27v-5,0,-7,25,-8,9v-3,-30,0,-50,0,-79r-42,0v-8,7,4,21,-5,30v-1,58,8,126,-40,142v-7,9,-47,10,-40,-14v-3,-12,3,-18,-2,-25v6,-2,15,-1,22,-1v14,-12,26,-36,17,-60v3,-45,8,-75,1,-115v17,-2,29,0,42,3v0,-2,-1,-4,-1,-4xm158,-156v-11,-3,-14,17,-8,21v7,-3,4,-10,8,-21xm71,-66v-8,-2,-10,16,-5,18v3,0,4,-5,5,-13v1,-3,1,-4,0,-5",w:189},"\uf0cb":{d:"78,-221v20,-1,28,10,51,5v0,-3,-3,-3,-5,-5r46,0v-3,20,4,45,-2,62v-1,41,5,89,0,127r0,31r-42,-2r-1,-77v2,-8,21,-19,9,-27v-5,0,-7,25,-8,9v-3,-30,0,-50,0,-79r-42,0v-8,7,4,21,-5,30v-1,58,8,126,-40,142v-7,9,-47,10,-40,-14v-3,-12,3,-18,-2,-25v6,-2,15,-1,22,-1v14,-12,26,-36,17,-60v3,-45,8,-75,1,-115v17,-2,29,0,42,3v0,-2,-1,-4,-1,-4xm158,-156v-11,-3,-14,17,-8,21v7,-3,4,-10,8,-21xm71,-66v-8,-2,-10,16,-5,18v3,0,4,-5,5,-13v1,-3,1,-4,0,-5",w:189},"\u041b":{d:"78,-221v20,-1,28,10,51,5v0,-3,-3,-3,-5,-5r46,0v-3,20,4,45,-2,62v-1,41,5,89,0,127r0,31r-42,-2r-1,-77v2,-8,21,-19,9,-27v-5,0,-7,25,-8,9v-3,-30,0,-50,0,-79r-42,0v-8,7,4,21,-5,30v-1,58,8,126,-40,142v-7,9,-47,10,-40,-14v-3,-12,3,-18,-2,-25v6,-2,15,-1,22,-1v14,-12,26,-36,17,-60v3,-45,8,-75,1,-115v17,-2,29,0,42,3v0,-2,-1,-4,-1,-4xm158,-156v-11,-3,-14,17,-8,21v7,-3,4,-10,8,-21xm71,-66v-8,-2,-10,16,-5,18v3,0,4,-5,5,-13v1,-3,1,-4,0,-5",w:189},"\u00cc":{d:"128,-129v3,-41,18,-70,25,-108r-2,0v19,3,44,0,65,1v-9,31,4,68,-3,100v8,36,-4,81,3,112v0,16,-23,5,-39,6v-21,-20,3,-95,-9,-133v-1,-2,-1,-1,-2,3v-1,23,-11,42,-16,66v-14,1,-9,16,-8,28v-2,15,-7,28,-12,40r-29,-2v-7,-15,-10,-44,-20,-61v-2,-32,-14,-56,-20,-85v-5,25,5,82,-2,114v9,8,0,20,2,34v-16,-5,-30,-3,-44,-3v0,-32,-4,-68,2,-95v-6,-32,-2,-78,-2,-116v21,-6,35,-1,61,-5v14,44,22,95,39,134v7,-5,0,-28,11,-30xm186,-194v2,-15,-16,-30,-6,-8v2,3,3,7,6,8xm190,-203v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm190,-183v0,-9,1,-10,-5,-9r0,13v4,0,5,-1,5,-4xm43,-107v6,-12,-5,-28,-5,-5v0,12,3,31,10,18r0,-15v-3,0,-4,1,-5,2",w:235},"\uf0cc":{d:"128,-129v3,-41,18,-70,25,-108r-2,0v19,3,44,0,65,1v-9,31,4,68,-3,100v8,36,-4,81,3,112v0,16,-23,5,-39,6v-21,-20,3,-95,-9,-133v-1,-2,-1,-1,-2,3v-1,23,-11,42,-16,66v-14,1,-9,16,-8,28v-2,15,-7,28,-12,40r-29,-2v-7,-15,-10,-44,-20,-61v-2,-32,-14,-56,-20,-85v-5,25,5,82,-2,114v9,8,0,20,2,34v-16,-5,-30,-3,-44,-3v0,-32,-4,-68,2,-95v-6,-32,-2,-78,-2,-116v21,-6,35,-1,61,-5v14,44,22,95,39,134v7,-5,0,-28,11,-30xm186,-194v2,-15,-16,-30,-6,-8v2,3,3,7,6,8xm190,-203v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm190,-183v0,-9,1,-10,-5,-9r0,13v4,0,5,-1,5,-4xm43,-107v6,-12,-5,-28,-5,-5v0,12,3,31,10,18r0,-15v-3,0,-4,1,-5,2",w:235},"\u041c":{d:"128,-129v3,-41,18,-70,25,-108r-2,0v19,3,44,0,65,1v-9,31,4,68,-3,100v8,36,-4,81,3,112v0,16,-23,5,-39,6v-21,-20,3,-95,-9,-133v-1,-2,-1,-1,-2,3v-1,23,-11,42,-16,66v-14,1,-9,16,-8,28v-2,15,-7,28,-12,40r-29,-2v-7,-15,-10,-44,-20,-61v-2,-32,-14,-56,-20,-85v-5,25,5,82,-2,114v9,8,0,20,2,34v-16,-5,-30,-3,-44,-3v0,-32,-4,-68,2,-95v-6,-32,-2,-78,-2,-116v21,-6,35,-1,61,-5v14,44,22,95,39,134v7,-5,0,-28,11,-30xm186,-194v2,-15,-16,-30,-6,-8v2,3,3,7,6,8xm190,-203v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm190,-183v0,-9,1,-10,-5,-9r0,13v4,0,5,-1,5,-4xm43,-107v6,-12,-5,-28,-5,-5v0,12,3,31,10,18r0,-15v-3,0,-4,1,-5,2",w:235},"\u00cd":{d:"18,18v-4,-50,1,-91,-2,-141v4,-20,0,-53,1,-79v14,1,34,3,43,-1v6,10,1,27,0,38r-4,0v-1,18,14,24,3,41v6,5,19,6,28,6v8,-3,20,-2,32,-2v-8,-22,11,-33,11,-53r-7,0v2,6,1,13,-4,13v3,-15,-1,-35,0,-42r45,2v-7,22,8,69,-3,90v5,39,1,82,3,128v-32,4,-58,-4,-45,-49v-2,-14,-1,-30,-1,-46v-14,2,-18,-6,-34,-4v-1,10,-23,-3,-23,10v-1,29,4,62,0,87r-13,0v2,0,2,-1,2,-4v-13,-1,-17,7,-32,6xm54,-185v5,0,6,-2,5,-5v-3,-1,-5,0,-5,5xm62,-107v4,0,6,-3,6,-10v-4,0,-6,3,-6,10xm46,-89v-9,6,3,24,7,22v-2,-8,-3,-17,-7,-22xm130,-32v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm142,-32v-9,-1,-18,19,-6,21v4,-3,7,-16,6,-21",w:183},"\uf0cd":{d:"18,18v-4,-50,1,-91,-2,-141v4,-20,0,-53,1,-79v14,1,34,3,43,-1v6,10,1,27,0,38r-4,0v-1,18,14,24,3,41v6,5,19,6,28,6v8,-3,20,-2,32,-2v-8,-22,11,-33,11,-53r-7,0v2,6,1,13,-4,13v3,-15,-1,-35,0,-42r45,2v-7,22,8,69,-3,90v5,39,1,82,3,128v-32,4,-58,-4,-45,-49v-2,-14,-1,-30,-1,-46v-14,2,-18,-6,-34,-4v-1,10,-23,-3,-23,10v-1,29,4,62,0,87r-13,0v2,0,2,-1,2,-4v-13,-1,-17,7,-32,6xm54,-185v5,0,6,-2,5,-5v-3,-1,-5,0,-5,5xm62,-107v4,0,6,-3,6,-10v-4,0,-6,3,-6,10xm46,-89v-9,6,3,24,7,22v-2,-8,-3,-17,-7,-22xm130,-32v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm142,-32v-9,-1,-18,19,-6,21v4,-3,7,-16,6,-21",w:183},"\u041d":{d:"18,18v-4,-50,1,-91,-2,-141v4,-20,0,-53,1,-79v14,1,34,3,43,-1v6,10,1,27,0,38r-4,0v-1,18,14,24,3,41v6,5,19,6,28,6v8,-3,20,-2,32,-2v-8,-22,11,-33,11,-53r-7,0v2,6,1,13,-4,13v3,-15,-1,-35,0,-42r45,2v-7,22,8,69,-3,90v5,39,1,82,3,128v-32,4,-58,-4,-45,-49v-2,-14,-1,-30,-1,-46v-14,2,-18,-6,-34,-4v-1,10,-23,-3,-23,10v-1,29,4,62,0,87r-13,0v2,0,2,-1,2,-4v-13,-1,-17,7,-32,6xm54,-185v5,0,6,-2,5,-5v-3,-1,-5,0,-5,5xm62,-107v4,0,6,-3,6,-10v-4,0,-6,3,-6,10xm46,-89v-9,6,3,24,7,22v-2,-8,-3,-17,-7,-22xm130,-32v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm142,-32v-9,-1,-18,19,-6,21v4,-3,7,-16,6,-21",w:183},"\u00ce":{d:"21,-145v3,-45,39,-60,87,-60v41,0,64,31,68,73v15,10,-1,38,1,50v6,2,0,-7,5,-7v-2,60,-21,112,-80,116v-36,2,-62,-15,-77,-36v0,-12,2,-27,-6,-33v-24,-16,-10,-63,-7,-93v7,3,8,-4,9,-10xm114,-190v2,-7,-10,-12,-15,-7v-2,8,11,14,15,7xm93,-190v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm129,-138v-5,-34,-67,-31,-71,3v-6,46,-10,136,53,117v28,-21,24,-78,18,-120xm145,-132v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm137,-116v-2,11,9,40,15,21v-4,-8,-11,-8,-12,-21r-3,0xm140,-87r0,24v8,0,4,-14,5,-22v0,-2,-2,-2,-5,-2xm17,-34v2,5,4,9,4,15v-3,-5,-4,-10,-4,-15",w:193},"\uf0ce":{d:"21,-145v3,-45,39,-60,87,-60v41,0,64,31,68,73v15,10,-1,38,1,50v6,2,0,-7,5,-7v-2,60,-21,112,-80,116v-36,2,-62,-15,-77,-36v0,-12,2,-27,-6,-33v-24,-16,-10,-63,-7,-93v7,3,8,-4,9,-10xm114,-190v2,-7,-10,-12,-15,-7v-2,8,11,14,15,7xm93,-190v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm129,-138v-5,-34,-67,-31,-71,3v-6,46,-10,136,53,117v28,-21,24,-78,18,-120xm145,-132v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm137,-116v-2,11,9,40,15,21v-4,-8,-11,-8,-12,-21r-3,0xm140,-87r0,24v8,0,4,-14,5,-22v0,-2,-2,-2,-5,-2xm17,-34v2,5,4,9,4,15v-3,-5,-4,-10,-4,-15",w:193},"\u041e":{d:"21,-145v3,-45,39,-60,87,-60v41,0,64,31,68,73v15,10,-1,38,1,50v6,2,0,-7,5,-7v-2,60,-21,112,-80,116v-36,2,-62,-15,-77,-36v0,-12,2,-27,-6,-33v-24,-16,-10,-63,-7,-93v7,3,8,-4,9,-10xm114,-190v2,-7,-10,-12,-15,-7v-2,8,11,14,15,7xm93,-190v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm129,-138v-5,-34,-67,-31,-71,3v-6,46,-10,136,53,117v28,-21,24,-78,18,-120xm145,-132v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm137,-116v-2,11,9,40,15,21v-4,-8,-11,-8,-12,-21r-3,0xm140,-87r0,24v8,0,4,-14,5,-22v0,-2,-2,-2,-5,-2xm17,-34v2,5,4,9,4,15v-3,-5,-4,-10,-4,-15",w:193},"\u00cf":{d:"156,4v-53,13,-31,-33,-37,-57v5,-46,0,-73,1,-118r-58,0v-6,36,3,77,-4,108v-2,-3,-10,-7,-8,0v20,17,6,37,11,66v-5,-1,-15,3,-13,-4v-15,1,-16,3,-30,2r-1,-216v11,1,23,3,33,0v0,2,23,7,14,0v25,6,66,-2,100,4v-1,20,6,44,-1,62v7,46,-2,104,3,144v0,6,-4,9,-10,9xm141,-189v-5,6,5,27,9,11v0,-7,-3,-11,-9,-11xm51,-161v3,0,6,0,5,-4v-3,0,-6,0,-5,4xm148,-160v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm45,-155v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm53,-115v0,-13,-3,-16,-8,-20v-1,10,0,16,8,20xm135,-84v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm137,-45v1,-4,-6,-9,-8,-4v0,5,5,5,-2,5r0,14v7,0,10,-5,10,-15xm30,-3v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:185},"\uf0cf":{d:"156,4v-53,13,-31,-33,-37,-57v5,-46,0,-73,1,-118r-58,0v-6,36,3,77,-4,108v-2,-3,-10,-7,-8,0v20,17,6,37,11,66v-5,-1,-15,3,-13,-4v-15,1,-16,3,-30,2r-1,-216v11,1,23,3,33,0v0,2,23,7,14,0v25,6,66,-2,100,4v-1,20,6,44,-1,62v7,46,-2,104,3,144v0,6,-4,9,-10,9xm141,-189v-5,6,5,27,9,11v0,-7,-3,-11,-9,-11xm51,-161v3,0,6,0,5,-4v-3,0,-6,0,-5,4xm148,-160v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm45,-155v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm53,-115v0,-13,-3,-16,-8,-20v-1,10,0,16,8,20xm135,-84v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm137,-45v1,-4,-6,-9,-8,-4v0,5,5,5,-2,5r0,14v7,0,10,-5,10,-15xm30,-3v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:185},"\u041f":{d:"156,4v-53,13,-31,-33,-37,-57v5,-46,0,-73,1,-118r-58,0v-6,36,3,77,-4,108v-2,-3,-10,-7,-8,0v20,17,6,37,11,66v-5,-1,-15,3,-13,-4v-15,1,-16,3,-30,2r-1,-216v11,1,23,3,33,0v0,2,23,7,14,0v25,6,66,-2,100,4v-1,20,6,44,-1,62v7,46,-2,104,3,144v0,6,-4,9,-10,9xm141,-189v-5,6,5,27,9,11v0,-7,-3,-11,-9,-11xm51,-161v3,0,6,0,5,-4v-3,0,-6,0,-5,4xm148,-160v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm45,-155v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm53,-115v0,-13,-3,-16,-8,-20v-1,10,0,16,8,20xm135,-84v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm137,-45v1,-4,-6,-9,-8,-4v0,5,5,5,-2,5r0,14v7,0,10,-5,10,-15xm30,-3v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:185},"\u00d0":{d:"139,-210v46,29,29,150,-36,136r-44,-2v4,26,-4,52,5,73v-13,-4,-28,8,-48,4v7,-22,-4,-70,3,-91v-5,-34,2,-91,-3,-125v25,-6,69,0,95,-3v6,3,16,10,28,8xm127,-174v4,-2,13,1,12,-6v-8,0,-12,2,-12,6xm85,-118v35,8,40,-39,21,-56r-43,0v2,12,-14,14,-7,24v4,2,5,0,5,-7v5,11,-1,26,-1,40xm138,-161v0,-3,7,-14,-2,-12r0,8v-6,-4,-7,0,-6,8v1,4,4,6,5,2xm129,-92v4,-12,-4,-21,-13,-13v-1,7,11,-2,8,9v-4,1,-12,-2,-10,4r15,0xm45,-75v2,-11,-8,-14,-13,-10v2,7,-2,20,3,24v5,1,10,-10,10,-14xm38,-79v3,1,2,2,0,3v-2,-1,-3,-2,0,-3",w:169},"\uf0d0":{d:"139,-210v46,29,29,150,-36,136r-44,-2v4,26,-4,52,5,73v-13,-4,-28,8,-48,4v7,-22,-4,-70,3,-91v-5,-34,2,-91,-3,-125v25,-6,69,0,95,-3v6,3,16,10,28,8xm127,-174v4,-2,13,1,12,-6v-8,0,-12,2,-12,6xm85,-118v35,8,40,-39,21,-56r-43,0v2,12,-14,14,-7,24v4,2,5,0,5,-7v5,11,-1,26,-1,40xm138,-161v0,-3,7,-14,-2,-12r0,8v-6,-4,-7,0,-6,8v1,4,4,6,5,2xm129,-92v4,-12,-4,-21,-13,-13v-1,7,11,-2,8,9v-4,1,-12,-2,-10,4r15,0xm45,-75v2,-11,-8,-14,-13,-10v2,7,-2,20,3,24v5,1,10,-10,10,-14xm38,-79v3,1,2,2,0,3v-2,-1,-3,-2,0,-3",w:169},"\u0420":{d:"139,-210v46,29,29,150,-36,136r-44,-2v4,26,-4,52,5,73v-13,-4,-28,8,-48,4v7,-22,-4,-70,3,-91v-5,-34,2,-91,-3,-125v25,-6,69,0,95,-3v6,3,16,10,28,8xm127,-174v4,-2,13,1,12,-6v-8,0,-12,2,-12,6xm85,-118v35,8,40,-39,21,-56r-43,0v2,12,-14,14,-7,24v4,2,5,0,5,-7v5,11,-1,26,-1,40xm138,-161v0,-3,7,-14,-2,-12r0,8v-6,-4,-7,0,-6,8v1,4,4,6,5,2xm129,-92v4,-12,-4,-21,-13,-13v-1,7,11,-2,8,9v-4,1,-12,-2,-10,4r15,0xm45,-75v2,-11,-8,-14,-13,-10v2,7,-2,20,3,24v5,1,10,-10,10,-14xm38,-79v3,1,2,2,0,3v-2,-1,-3,-2,0,-3",w:169},"\u00d1":{d:"109,-195v-46,-9,-50,26,-55,61v-8,2,-2,18,-4,26v6,2,3,-6,4,-10v0,36,8,65,39,70v19,-3,29,-17,32,-36v5,-12,25,-3,46,-6v3,25,-13,48,-23,64v-20,8,-45,29,-73,16v-33,-3,-54,-23,-56,-56v-7,-3,-2,10,-7,3v-8,-35,-4,-73,0,-111v13,-25,30,-69,68,-60v4,-2,10,-2,16,-2r0,-5v22,2,33,12,49,19v9,19,27,35,24,62v-24,0,-50,6,-50,-23v0,-5,-10,-7,-10,-12xm75,-204v9,0,14,-5,14,-15v-9,0,-14,5,-14,15xm88,-203v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm24,-183v-8,4,-6,17,-10,27v11,1,10,-16,10,-27xm123,-41v-6,-7,-13,0,-12,11v3,6,21,2,18,-6v-3,-10,-8,5,-10,-3v3,0,5,0,4,-2",w:177},"\uf0d1":{d:"109,-195v-46,-9,-50,26,-55,61v-8,2,-2,18,-4,26v6,2,3,-6,4,-10v0,36,8,65,39,70v19,-3,29,-17,32,-36v5,-12,25,-3,46,-6v3,25,-13,48,-23,64v-20,8,-45,29,-73,16v-33,-3,-54,-23,-56,-56v-7,-3,-2,10,-7,3v-8,-35,-4,-73,0,-111v13,-25,30,-69,68,-60v4,-2,10,-2,16,-2r0,-5v22,2,33,12,49,19v9,19,27,35,24,62v-24,0,-50,6,-50,-23v0,-5,-10,-7,-10,-12xm75,-204v9,0,14,-5,14,-15v-9,0,-14,5,-14,15xm88,-203v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm24,-183v-8,4,-6,17,-10,27v11,1,10,-16,10,-27xm123,-41v-6,-7,-13,0,-12,11v3,6,21,2,18,-6v-3,-10,-8,5,-10,-3v3,0,5,0,4,-2",w:177},"\u0421":{d:"109,-195v-46,-9,-50,26,-55,61v-8,2,-2,18,-4,26v6,2,3,-6,4,-10v0,36,8,65,39,70v19,-3,29,-17,32,-36v5,-12,25,-3,46,-6v3,25,-13,48,-23,64v-20,8,-45,29,-73,16v-33,-3,-54,-23,-56,-56v-7,-3,-2,10,-7,3v-8,-35,-4,-73,0,-111v13,-25,30,-69,68,-60v4,-2,10,-2,16,-2r0,-5v22,2,33,12,49,19v9,19,27,35,24,62v-24,0,-50,6,-50,-23v0,-5,-10,-7,-10,-12xm75,-204v9,0,14,-5,14,-15v-9,0,-14,5,-14,15xm88,-203v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm24,-183v-8,4,-6,17,-10,27v11,1,10,-16,10,-27xm123,-41v-6,-7,-13,0,-12,11v3,6,21,2,18,-6v-3,-10,-8,5,-10,-3v3,0,5,0,4,-2",w:177},"\u00d2":{d:"56,-169v-15,2,-40,-2,-53,0v-9,-1,-8,-35,-1,-41v24,6,54,0,85,2v-4,0,-7,4,-7,6v15,-4,35,-8,49,0v3,0,7,-3,3,-5v24,-7,9,21,13,39r-51,0r-2,166v-4,10,-24,9,-43,10r1,-170v4,0,6,-3,6,-7xm66,-203v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm66,-120v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm68,-58v5,-7,3,-30,-5,-34v1,12,-3,28,5,34",w:145},"\uf0d2":{d:"56,-169v-15,2,-40,-2,-53,0v-9,-1,-8,-35,-1,-41v24,6,54,0,85,2v-4,0,-7,4,-7,6v15,-4,35,-8,49,0v3,0,7,-3,3,-5v24,-7,9,21,13,39r-51,0r-2,166v-4,10,-24,9,-43,10r1,-170v4,0,6,-3,6,-7xm66,-203v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm66,-120v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm68,-58v5,-7,3,-30,-5,-34v1,12,-3,28,5,34",w:145},"\u0422":{d:"56,-169v-15,2,-40,-2,-53,0v-9,-1,-8,-35,-1,-41v24,6,54,0,85,2v-4,0,-7,4,-7,6v15,-4,35,-8,49,0v3,0,7,-3,3,-5v24,-7,9,21,13,39r-51,0r-2,166v-4,10,-24,9,-43,10r1,-170v4,0,6,-3,6,-7xm66,-203v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm66,-120v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm68,-58v5,-7,3,-30,-5,-34v1,12,-3,28,5,34",w:145},"\u00d3":{d:"91,-114v-8,-31,14,-47,14,-78v0,-21,10,-15,24,-13r28,-4v-4,19,-7,43,-20,51v8,28,-15,44,-19,69v-5,30,-18,54,-26,83v-4,17,-23,15,-35,11v7,6,-1,13,-9,13v-7,-6,-23,-6,-29,-7v1,-16,3,-27,0,-45v30,22,49,-12,30,-40v-7,-24,-22,-39,-23,-70v-8,1,5,-22,-7,-21r0,8v-10,-13,-18,-35,-25,-50v26,4,60,-4,63,24v3,33,26,54,23,89v5,-2,9,-14,11,-20xm29,-200v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-197v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm134,-150v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm126,-132v7,1,7,-7,1,-7v-1,1,-1,3,-1,7xm89,-52v4,-8,-4,-14,-11,-14v-4,8,2,22,11,14xm84,-40v1,-3,-5,-7,-8,-4v0,3,2,4,8,4",w:150},"\uf0d3":{d:"91,-114v-8,-31,14,-47,14,-78v0,-21,10,-15,24,-13r28,-4v-4,19,-7,43,-20,51v8,28,-15,44,-19,69v-5,30,-18,54,-26,83v-4,17,-23,15,-35,11v7,6,-1,13,-9,13v-7,-6,-23,-6,-29,-7v1,-16,3,-27,0,-45v30,22,49,-12,30,-40v-7,-24,-22,-39,-23,-70v-8,1,5,-22,-7,-21r0,8v-10,-13,-18,-35,-25,-50v26,4,60,-4,63,24v3,33,26,54,23,89v5,-2,9,-14,11,-20xm29,-200v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-197v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm134,-150v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm126,-132v7,1,7,-7,1,-7v-1,1,-1,3,-1,7xm89,-52v4,-8,-4,-14,-11,-14v-4,8,2,22,11,14xm84,-40v1,-3,-5,-7,-8,-4v0,3,2,4,8,4",w:150},"\u0423":{d:"91,-114v-8,-31,14,-47,14,-78v0,-21,10,-15,24,-13r28,-4v-4,19,-7,43,-20,51v8,28,-15,44,-19,69v-5,30,-18,54,-26,83v-4,17,-23,15,-35,11v7,6,-1,13,-9,13v-7,-6,-23,-6,-29,-7v1,-16,3,-27,0,-45v30,22,49,-12,30,-40v-7,-24,-22,-39,-23,-70v-8,1,5,-22,-7,-21r0,8v-10,-13,-18,-35,-25,-50v26,4,60,-4,63,24v3,33,26,54,23,89v5,-2,9,-14,11,-20xm29,-200v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm36,-197v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm134,-150v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm126,-132v7,1,7,-7,1,-7v-1,1,-1,3,-1,7xm89,-52v4,-8,-4,-14,-11,-14v-4,8,2,22,11,14xm84,-40v1,-3,-5,-7,-8,-4v0,3,2,4,8,4",w:150},"\u00d4":{d:"197,-174v40,20,25,124,-13,133v-14,8,-32,14,-52,9v3,9,2,20,2,32r-44,0v-5,-8,11,-31,-15,-29v-87,5,-100,-169,-9,-175v7,-2,20,-2,24,-7v0,-11,-8,-31,11,-26v7,-3,17,-1,33,-2v5,10,-10,39,16,31v23,4,41,15,54,30v0,0,-9,-1,-7,4xm94,-147v4,-32,-29,-16,-38,-5v-14,46,-7,79,37,80xm172,-113v4,-30,-9,-56,-40,-52v2,9,-3,26,-8,36v2,12,12,26,-2,34v10,-2,5,37,32,19v14,-2,16,-22,18,-37xm45,-162v-9,2,-14,24,-4,26v-2,-11,13,-19,4,-26xm207,-121v-6,-2,-7,3,-6,8v4,0,6,-3,6,-8xm200,-103v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm50,-52v7,-3,16,-14,3,-6v-2,1,-3,3,-3,6xm66,-55v-1,6,16,9,18,4v0,-4,-12,-4,-18,-4xm124,-24v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5",w:227},"\uf0d4":{d:"197,-174v40,20,25,124,-13,133v-14,8,-32,14,-52,9v3,9,2,20,2,32r-44,0v-5,-8,11,-31,-15,-29v-87,5,-100,-169,-9,-175v7,-2,20,-2,24,-7v0,-11,-8,-31,11,-26v7,-3,17,-1,33,-2v5,10,-10,39,16,31v23,4,41,15,54,30v0,0,-9,-1,-7,4xm94,-147v4,-32,-29,-16,-38,-5v-14,46,-7,79,37,80xm172,-113v4,-30,-9,-56,-40,-52v2,9,-3,26,-8,36v2,12,12,26,-2,34v10,-2,5,37,32,19v14,-2,16,-22,18,-37xm45,-162v-9,2,-14,24,-4,26v-2,-11,13,-19,4,-26xm207,-121v-6,-2,-7,3,-6,8v4,0,6,-3,6,-8xm200,-103v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm50,-52v7,-3,16,-14,3,-6v-2,1,-3,3,-3,6xm66,-55v-1,6,16,9,18,4v0,-4,-12,-4,-18,-4xm124,-24v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5",w:227},"\u0424":{d:"197,-174v40,20,25,124,-13,133v-14,8,-32,14,-52,9v3,9,2,20,2,32r-44,0v-5,-8,11,-31,-15,-29v-87,5,-100,-169,-9,-175v7,-2,20,-2,24,-7v0,-11,-8,-31,11,-26v7,-3,17,-1,33,-2v5,10,-10,39,16,31v23,4,41,15,54,30v0,0,-9,-1,-7,4xm94,-147v4,-32,-29,-16,-38,-5v-14,46,-7,79,37,80xm172,-113v4,-30,-9,-56,-40,-52v2,9,-3,26,-8,36v2,12,12,26,-2,34v10,-2,5,37,32,19v14,-2,16,-22,18,-37xm45,-162v-9,2,-14,24,-4,26v-2,-11,13,-19,4,-26xm207,-121v-6,-2,-7,3,-6,8v4,0,6,-3,6,-8xm200,-103v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm50,-52v7,-3,16,-14,3,-6v-2,1,-3,3,-3,6xm66,-55v-1,6,16,9,18,4v0,-4,-12,-4,-18,-4xm124,-24v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5",w:227},"\u00d5":{d:"36,-215v39,-12,24,55,48,68v10,-21,23,-46,28,-71r47,-2v4,17,-10,45,-20,54v-3,1,-5,3,-5,6v-6,18,-37,38,-17,60r0,19v7,2,3,-8,4,-13v13,32,30,60,45,91v0,1,5,4,4,4r-56,-2v-11,-21,-17,-49,-29,-70v-19,8,-23,53,-34,71r-54,0v13,-17,18,-45,31,-63v13,-18,18,-30,26,-51v-17,-38,-37,-70,-55,-106v14,3,26,1,37,5xm57,-150v-3,17,7,22,15,31v6,0,8,-4,4,-8v-10,7,-7,-23,-19,-23xm120,-58v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm127,-45v0,0,-2,0,-2,1v-1,5,2,5,5,3v3,-2,2,-5,-3,-4xm49,-41v-11,1,-13,6,-13,19v15,1,0,-10,11,-15v1,-1,2,-2,2,-4",w:166},"\uf0d5":{d:"36,-215v39,-12,24,55,48,68v10,-21,23,-46,28,-71r47,-2v4,17,-10,45,-20,54v-3,1,-5,3,-5,6v-6,18,-37,38,-17,60r0,19v7,2,3,-8,4,-13v13,32,30,60,45,91v0,1,5,4,4,4r-56,-2v-11,-21,-17,-49,-29,-70v-19,8,-23,53,-34,71r-54,0v13,-17,18,-45,31,-63v13,-18,18,-30,26,-51v-17,-38,-37,-70,-55,-106v14,3,26,1,37,5xm57,-150v-3,17,7,22,15,31v6,0,8,-4,4,-8v-10,7,-7,-23,-19,-23xm120,-58v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm127,-45v0,0,-2,0,-2,1v-1,5,2,5,5,3v3,-2,2,-5,-3,-4xm49,-41v-11,1,-13,6,-13,19v15,1,0,-10,11,-15v1,-1,2,-2,2,-4",w:166},"\u0425":{d:"36,-215v39,-12,24,55,48,68v10,-21,23,-46,28,-71r47,-2v4,17,-10,45,-20,54v-3,1,-5,3,-5,6v-6,18,-37,38,-17,60r0,19v7,2,3,-8,4,-13v13,32,30,60,45,91v0,1,5,4,4,4r-56,-2v-11,-21,-17,-49,-29,-70v-19,8,-23,53,-34,71r-54,0v13,-17,18,-45,31,-63v13,-18,18,-30,26,-51v-17,-38,-37,-70,-55,-106v14,3,26,1,37,5xm57,-150v-3,17,7,22,15,31v6,0,8,-4,4,-8v-10,7,-7,-23,-19,-23xm120,-58v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm127,-45v0,0,-2,0,-2,1v-1,5,2,5,5,3v3,-2,2,-5,-3,-4xm49,-41v-11,1,-13,6,-13,19v15,1,0,-10,11,-15v1,-1,2,-2,2,-4",w:166},"\u00d6":{d:"166,-208v1,49,5,102,-7,142v7,9,9,19,8,32v11,2,30,-8,25,12v-6,25,0,55,-3,82r-36,0v-3,-20,0,-28,3,-46v-5,1,-7,10,-8,13r0,-16r-128,0v-5,-68,-2,-116,-4,-181v7,-11,-1,-26,0,-40v15,10,25,0,43,3v8,23,-1,42,-5,62v6,-2,5,-2,6,5v4,36,-1,71,3,106v9,5,20,10,28,-1v19,1,41,4,31,-23v5,-56,-4,-104,3,-150v16,6,20,1,41,0xm58,-143v-7,0,-12,20,-7,25r3,0v0,-12,5,-15,4,-25xm164,-71v0,-5,4,-6,3,-1v1,6,-3,10,-3,1xm27,-8v0,5,3,8,10,8v5,-2,3,-12,-4,-11v-4,0,-6,1,-6,3xm88,-8v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm96,-8v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:191},"\uf0d6":{d:"166,-208v1,49,5,102,-7,142v7,9,9,19,8,32v11,2,30,-8,25,12v-6,25,0,55,-3,82r-36,0v-3,-20,0,-28,3,-46v-5,1,-7,10,-8,13r0,-16r-128,0v-5,-68,-2,-116,-4,-181v7,-11,-1,-26,0,-40v15,10,25,0,43,3v8,23,-1,42,-5,62v6,-2,5,-2,6,5v4,36,-1,71,3,106v9,5,20,10,28,-1v19,1,41,4,31,-23v5,-56,-4,-104,3,-150v16,6,20,1,41,0xm58,-143v-7,0,-12,20,-7,25r3,0v0,-12,5,-15,4,-25xm164,-71v0,-5,4,-6,3,-1v1,6,-3,10,-3,1xm27,-8v0,5,3,8,10,8v5,-2,3,-12,-4,-11v-4,0,-6,1,-6,3xm88,-8v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm96,-8v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:191},"\u0426":{d:"166,-208v1,49,5,102,-7,142v7,9,9,19,8,32v11,2,30,-8,25,12v-6,25,0,55,-3,82r-36,0v-3,-20,0,-28,3,-46v-5,1,-7,10,-8,13r0,-16r-128,0v-5,-68,-2,-116,-4,-181v7,-11,-1,-26,0,-40v15,10,25,0,43,3v8,23,-1,42,-5,62v6,-2,5,-2,6,5v4,36,-1,71,3,106v9,5,20,10,28,-1v19,1,41,4,31,-23v5,-56,-4,-104,3,-150v16,6,20,1,41,0xm58,-143v-7,0,-12,20,-7,25r3,0v0,-12,5,-15,4,-25xm164,-71v0,-5,4,-6,3,-1v1,6,-3,10,-3,1xm27,-8v0,5,3,8,10,8v5,-2,3,-12,-4,-11v-4,0,-6,1,-6,3xm88,-8v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm96,-8v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:191},"\u00d7":{d:"144,-58v-1,15,19,34,-4,36r0,3v19,-4,9,19,12,32r-46,-2r1,-87v-15,8,-31,-10,-36,2v-68,5,-66,-66,-62,-133r41,0v2,25,-1,57,7,77v-1,21,30,4,45,12v6,-27,6,-59,4,-87v10,-5,30,1,46,0r0,158v-3,-3,-2,-11,-8,-11xm19,-177v7,2,15,-13,6,-15v-6,-1,-6,10,-6,15xm27,-170v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm62,-80v3,1,4,-2,4,-4v-4,-3,-7,2,-4,4xm132,-34v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm132,-19v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm137,-11v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:171},"\uf0d7":{d:"144,-58v-1,15,19,34,-4,36r0,3v19,-4,9,19,12,32r-46,-2r1,-87v-15,8,-31,-10,-36,2v-68,5,-66,-66,-62,-133r41,0v2,25,-1,57,7,77v-1,21,30,4,45,12v6,-27,6,-59,4,-87v10,-5,30,1,46,0r0,158v-3,-3,-2,-11,-8,-11xm19,-177v7,2,15,-13,6,-15v-6,-1,-6,10,-6,15xm27,-170v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm62,-80v3,1,4,-2,4,-4v-4,-3,-7,2,-4,4xm132,-34v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm132,-19v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm137,-11v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:171},"\u0427":{d:"144,-58v-1,15,19,34,-4,36r0,3v19,-4,9,19,12,32r-46,-2r1,-87v-15,8,-31,-10,-36,2v-68,5,-66,-66,-62,-133r41,0v2,25,-1,57,7,77v-1,21,30,4,45,12v6,-27,6,-59,4,-87v10,-5,30,1,46,0r0,158v-3,-3,-2,-11,-8,-11xm19,-177v7,2,15,-13,6,-15v-6,-1,-6,10,-6,15xm27,-170v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm62,-80v3,1,4,-2,4,-4v-4,-3,-7,2,-4,4xm132,-34v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm132,-19v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm137,-11v3,0,6,1,5,-3v-3,0,-6,-1,-5,3",w:171},"\u00d8":{d:"250,-22v1,19,-17,-8,-23,4v-22,-5,-50,4,-73,-3v-13,4,-27,3,-43,3v8,-4,7,-4,0,-4r-94,3v4,-22,-4,-52,2,-76v-10,-31,4,-89,-3,-117v2,-9,3,-17,2,-24v13,3,27,-2,43,0v0,38,2,72,-2,107r-8,0v0,9,-5,13,-4,22v4,-8,15,-26,16,-4v0,22,3,45,-11,56v18,-7,39,2,55,-2v13,-61,-7,-132,6,-176v10,-3,28,0,40,0r3,173r44,2v6,-45,0,-87,5,-124v-7,-16,1,-31,-1,-52r45,0xm138,-199v6,1,8,-9,2,-9v-2,1,-2,4,-2,9xm134,-170v3,-4,7,-9,7,-16v-14,-1,-13,7,-12,20v7,3,2,-10,5,-4xm137,-158v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm221,-129v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm219,-63v18,0,2,-17,2,-27v-10,1,0,15,-2,27",w:267},"\uf0d8":{d:"250,-22v1,19,-17,-8,-23,4v-22,-5,-50,4,-73,-3v-13,4,-27,3,-43,3v8,-4,7,-4,0,-4r-94,3v4,-22,-4,-52,2,-76v-10,-31,4,-89,-3,-117v2,-9,3,-17,2,-24v13,3,27,-2,43,0v0,38,2,72,-2,107r-8,0v0,9,-5,13,-4,22v4,-8,15,-26,16,-4v0,22,3,45,-11,56v18,-7,39,2,55,-2v13,-61,-7,-132,6,-176v10,-3,28,0,40,0r3,173r44,2v6,-45,0,-87,5,-124v-7,-16,1,-31,-1,-52r45,0xm138,-199v6,1,8,-9,2,-9v-2,1,-2,4,-2,9xm134,-170v3,-4,7,-9,7,-16v-14,-1,-13,7,-12,20v7,3,2,-10,5,-4xm137,-158v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm221,-129v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm219,-63v18,0,2,-17,2,-27v-10,1,0,15,-2,27",w:267},"\u0428":{d:"250,-22v1,19,-17,-8,-23,4v-22,-5,-50,4,-73,-3v-13,4,-27,3,-43,3v8,-4,7,-4,0,-4r-94,3v4,-22,-4,-52,2,-76v-10,-31,4,-89,-3,-117v2,-9,3,-17,2,-24v13,3,27,-2,43,0v0,38,2,72,-2,107r-8,0v0,9,-5,13,-4,22v4,-8,15,-26,16,-4v0,22,3,45,-11,56v18,-7,39,2,55,-2v13,-61,-7,-132,6,-176v10,-3,28,0,40,0r3,173r44,2v6,-45,0,-87,5,-124v-7,-16,1,-31,-1,-52r45,0xm138,-199v6,1,8,-9,2,-9v-2,1,-2,4,-2,9xm134,-170v3,-4,7,-9,7,-16v-14,-1,-13,7,-12,20v7,3,2,-10,5,-4xm137,-158v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm221,-129v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm219,-63v18,0,2,-17,2,-27v-10,1,0,15,-2,27",w:267},"\u00d9":{d:"17,-224v17,9,29,4,45,5r1,103v-1,2,-10,7,-1,8r1,60r48,0r-2,-164v1,-3,2,-8,2,-12v14,3,28,9,39,1v18,6,-1,60,7,87v-7,26,3,61,-2,89v16,-2,37,0,51,-4v-5,-34,-3,-75,0,-112v7,7,3,29,10,35v7,-9,-1,-38,-11,-42v-4,-20,-4,-34,-1,-54v9,6,28,-1,43,1v4,56,-1,119,0,176r27,0v-5,30,2,63,-5,89v-12,-1,-34,4,-38,-5v-2,-14,6,-32,-1,-41v-30,1,-56,-1,-82,-6v-12,8,-41,2,-61,4v-21,-9,-43,3,-68,0xm155,-149v-1,-3,-5,-13,-14,-11v2,4,9,9,14,11xm141,-142v-4,0,-9,12,-9,17v2,7,4,11,3,22r4,0v0,-15,-2,-26,2,-39xm57,-101v1,-2,-2,-5,-4,-4v-1,0,-2,2,-2,6v4,0,5,-1,6,-2xm54,-96v-7,-1,-7,10,-7,19v0,1,3,2,7,2r0,-21xm136,-72v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm237,-52v-1,-4,-8,-4,-6,1v0,7,3,8,5,4v0,-1,1,-3,1,-5xm237,-25v4,-6,-4,-5,-8,-6v0,8,4,8,8,6xm102,-16v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:272},"\uf0d9":{d:"17,-224v17,9,29,4,45,5r1,103v-1,2,-10,7,-1,8r1,60r48,0r-2,-164v1,-3,2,-8,2,-12v14,3,28,9,39,1v18,6,-1,60,7,87v-7,26,3,61,-2,89v16,-2,37,0,51,-4v-5,-34,-3,-75,0,-112v7,7,3,29,10,35v7,-9,-1,-38,-11,-42v-4,-20,-4,-34,-1,-54v9,6,28,-1,43,1v4,56,-1,119,0,176r27,0v-5,30,2,63,-5,89v-12,-1,-34,4,-38,-5v-2,-14,6,-32,-1,-41v-30,1,-56,-1,-82,-6v-12,8,-41,2,-61,4v-21,-9,-43,3,-68,0xm155,-149v-1,-3,-5,-13,-14,-11v2,4,9,9,14,11xm141,-142v-4,0,-9,12,-9,17v2,7,4,11,3,22r4,0v0,-15,-2,-26,2,-39xm57,-101v1,-2,-2,-5,-4,-4v-1,0,-2,2,-2,6v4,0,5,-1,6,-2xm54,-96v-7,-1,-7,10,-7,19v0,1,3,2,7,2r0,-21xm136,-72v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm237,-52v-1,-4,-8,-4,-6,1v0,7,3,8,5,4v0,-1,1,-3,1,-5xm237,-25v4,-6,-4,-5,-8,-6v0,8,4,8,8,6xm102,-16v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:272},"\u0429":{d:"17,-224v17,9,29,4,45,5r1,103v-1,2,-10,7,-1,8r1,60r48,0r-2,-164v1,-3,2,-8,2,-12v14,3,28,9,39,1v18,6,-1,60,7,87v-7,26,3,61,-2,89v16,-2,37,0,51,-4v-5,-34,-3,-75,0,-112v7,7,3,29,10,35v7,-9,-1,-38,-11,-42v-4,-20,-4,-34,-1,-54v9,6,28,-1,43,1v4,56,-1,119,0,176r27,0v-5,30,2,63,-5,89v-12,-1,-34,4,-38,-5v-2,-14,6,-32,-1,-41v-30,1,-56,-1,-82,-6v-12,8,-41,2,-61,4v-21,-9,-43,3,-68,0xm155,-149v-1,-3,-5,-13,-14,-11v2,4,9,9,14,11xm141,-142v-4,0,-9,12,-9,17v2,7,4,11,3,22r4,0v0,-15,-2,-26,2,-39xm57,-101v1,-2,-2,-5,-4,-4v-1,0,-2,2,-2,6v4,0,5,-1,6,-2xm54,-96v-7,-1,-7,10,-7,19v0,1,3,2,7,2r0,-21xm136,-72v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm237,-52v-1,-4,-8,-4,-6,1v0,7,3,8,5,4v0,-1,1,-3,1,-5xm237,-25v4,-6,-4,-5,-8,-6v0,8,4,8,8,6xm102,-16v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:272},"\u00da":{d:"32,-179v-9,-2,-33,2,-33,-10v3,-10,-8,-24,1,-32r75,0r0,73v1,8,14,4,16,12v1,-6,11,-7,14,-1v20,-11,43,-7,54,13v22,12,21,49,19,77v-2,-6,-17,-17,-5,-22v-10,-8,-11,3,-11,13v0,11,5,10,9,9v6,17,-7,22,-13,34v-14,-1,-20,7,-30,10r-56,0v1,0,7,-6,2,-7v-11,-7,-15,14,-37,9v-14,-3,0,-32,-8,-43v6,-46,-1,-101,3,-135xm1,-195r9,0r0,-8v-6,0,-9,3,-9,8xm86,-45v43,9,62,-32,32,-54r-36,0v-3,-7,-9,-11,-16,-11r0,12v10,-4,11,11,10,24v-1,12,-3,26,10,29xm171,-75v6,-1,6,-7,-1,-6",w:185},"\uf0da":{d:"32,-179v-9,-2,-33,2,-33,-10v3,-10,-8,-24,1,-32r75,0r0,73v1,8,14,4,16,12v1,-6,11,-7,14,-1v20,-11,43,-7,54,13v22,12,21,49,19,77v-2,-6,-17,-17,-5,-22v-10,-8,-11,3,-11,13v0,11,5,10,9,9v6,17,-7,22,-13,34v-14,-1,-20,7,-30,10r-56,0v1,0,7,-6,2,-7v-11,-7,-15,14,-37,9v-14,-3,0,-32,-8,-43v6,-46,-1,-101,3,-135xm1,-195r9,0r0,-8v-6,0,-9,3,-9,8xm86,-45v43,9,62,-32,32,-54r-36,0v-3,-7,-9,-11,-16,-11r0,12v10,-4,11,11,10,24v-1,12,-3,26,10,29xm171,-75v6,-1,6,-7,-1,-6",w:185},"\u042a":{d:"32,-179v-9,-2,-33,2,-33,-10v3,-10,-8,-24,1,-32r75,0r0,73v1,8,14,4,16,12v1,-6,11,-7,14,-1v20,-11,43,-7,54,13v22,12,21,49,19,77v-2,-6,-17,-17,-5,-22v-10,-8,-11,3,-11,13v0,11,5,10,9,9v6,17,-7,22,-13,34v-14,-1,-20,7,-30,10r-56,0v1,0,7,-6,2,-7v-11,-7,-15,14,-37,9v-14,-3,0,-32,-8,-43v6,-46,-1,-101,3,-135xm1,-195r9,0r0,-8v-6,0,-9,3,-9,8xm86,-45v43,9,62,-32,32,-54r-36,0v-3,-7,-9,-11,-16,-11r0,12v10,-4,11,11,10,24v-1,12,-3,26,10,29xm171,-75v6,-1,6,-7,-1,-6",w:185},"\u00db":{d:"174,-53v0,-52,4,-112,-2,-170v8,1,17,0,21,6r20,-6v14,21,-5,89,6,116v-8,36,5,69,-3,106r-44,-4v3,-14,2,-31,2,-48xm30,0v-27,2,-8,-34,-14,-57v2,-38,-2,-82,3,-116v-4,-13,-1,-33,-2,-49r24,7r0,-6r21,0v-5,27,6,60,-6,76v5,8,49,0,22,14v11,1,15,-3,26,-3v1,-7,-3,-9,7,-8v10,0,17,13,29,9v9,18,30,25,23,53v11,52,-27,79,-89,79v-22,0,-22,0,-44,1xm75,-29v0,-3,-3,-17,-9,-16v28,1,63,-2,48,-41v-2,-20,-31,-13,-51,-12r0,16v-15,3,-1,16,0,22v-1,9,-10,16,-13,23v10,-1,20,-1,21,8r4,0xm112,-30v5,0,8,-1,12,-4v1,6,2,8,5,7v2,0,2,-4,0,-12v-2,-12,-11,-7,-15,1v-1,3,-2,5,-2,8",w:237},"\uf0db":{d:"174,-53v0,-52,4,-112,-2,-170v8,1,17,0,21,6r20,-6v14,21,-5,89,6,116v-8,36,5,69,-3,106r-44,-4v3,-14,2,-31,2,-48xm30,0v-27,2,-8,-34,-14,-57v2,-38,-2,-82,3,-116v-4,-13,-1,-33,-2,-49r24,7r0,-6r21,0v-5,27,6,60,-6,76v5,8,49,0,22,14v11,1,15,-3,26,-3v1,-7,-3,-9,7,-8v10,0,17,13,29,9v9,18,30,25,23,53v11,52,-27,79,-89,79v-22,0,-22,0,-44,1xm75,-29v0,-3,-3,-17,-9,-16v28,1,63,-2,48,-41v-2,-20,-31,-13,-51,-12r0,16v-15,3,-1,16,0,22v-1,9,-10,16,-13,23v10,-1,20,-1,21,8r4,0xm112,-30v5,0,8,-1,12,-4v1,6,2,8,5,7v2,0,2,-4,0,-12v-2,-12,-11,-7,-15,1v-1,3,-2,5,-2,8",w:237},"\u042b":{d:"174,-53v0,-52,4,-112,-2,-170v8,1,17,0,21,6r20,-6v14,21,-5,89,6,116v-8,36,5,69,-3,106r-44,-4v3,-14,2,-31,2,-48xm30,0v-27,2,-8,-34,-14,-57v2,-38,-2,-82,3,-116v-4,-13,-1,-33,-2,-49r24,7r0,-6r21,0v-5,27,6,60,-6,76v5,8,49,0,22,14v11,1,15,-3,26,-3v1,-7,-3,-9,7,-8v10,0,17,13,29,9v9,18,30,25,23,53v11,52,-27,79,-89,79v-22,0,-22,0,-44,1xm75,-29v0,-3,-3,-17,-9,-16v28,1,63,-2,48,-41v-2,-20,-31,-13,-51,-12r0,16v-15,3,-1,16,0,22v-1,9,-10,16,-13,23v10,-1,20,-1,21,8r4,0xm112,-30v5,0,8,-1,12,-4v1,6,2,8,5,7v2,0,2,-4,0,-12v-2,-12,-11,-7,-15,1v-1,3,-2,5,-2,8",w:237},"\u00dc":{d:"18,-13r-1,-220v13,7,26,2,43,2v7,24,-6,47,1,73v0,7,-5,3,-5,10v6,-1,16,3,16,-4v34,-2,65,-1,78,23v12,3,3,19,13,27v4,13,0,25,0,41v0,43,-53,60,-87,43v-11,2,-23,6,-33,1r0,5v-8,-2,-15,-1,-25,-1xm148,-86r-5,-38v-11,0,-2,15,-5,22v1,-4,0,-7,-5,-6v2,6,-2,19,6,19r0,-9v3,1,7,12,9,12xm116,-79v3,-41,-26,-27,-55,-32v0,19,3,33,2,54v19,11,52,1,53,-22xm154,-60v7,1,9,-4,6,-8v-4,-3,-6,-1,-6,8",w:172},"\uf0dc":{d:"18,-13r-1,-220v13,7,26,2,43,2v7,24,-6,47,1,73v0,7,-5,3,-5,10v6,-1,16,3,16,-4v34,-2,65,-1,78,23v12,3,3,19,13,27v4,13,0,25,0,41v0,43,-53,60,-87,43v-11,2,-23,6,-33,1r0,5v-8,-2,-15,-1,-25,-1xm148,-86r-5,-38v-11,0,-2,15,-5,22v1,-4,0,-7,-5,-6v2,6,-2,19,6,19r0,-9v3,1,7,12,9,12xm116,-79v3,-41,-26,-27,-55,-32v0,19,3,33,2,54v19,11,52,1,53,-22xm154,-60v7,1,9,-4,6,-8v-4,-3,-6,-1,-6,8",w:172},"\u042c":{d:"18,-13r-1,-220v13,7,26,2,43,2v7,24,-6,47,1,73v0,7,-5,3,-5,10v6,-1,16,3,16,-4v34,-2,65,-1,78,23v12,3,3,19,13,27v4,13,0,25,0,41v0,43,-53,60,-87,43v-11,2,-23,6,-33,1r0,5v-8,-2,-15,-1,-25,-1xm148,-86r-5,-38v-11,0,-2,15,-5,22v1,-4,0,-7,-5,-6v2,6,-2,19,6,19r0,-9v3,1,7,12,9,12xm116,-79v3,-41,-26,-27,-55,-32v0,19,3,33,2,54v19,11,52,1,53,-22xm154,-60v7,1,9,-4,6,-8v-4,-3,-6,-1,-6,8",w:172},"\u00dd":{d:"128,-137v0,-30,-6,-60,-43,-52v-21,4,-26,16,-32,36v-8,-11,-29,1,-44,-2v1,-52,36,-84,89,-76r6,-2v80,9,88,124,59,194r-29,30v-39,17,-90,10,-107,-20v-11,-8,-19,-27,-19,-43v0,-16,20,-9,43,-12v6,19,16,46,40,42v26,-3,44,-26,40,-55r-63,0r-4,-40r64,0xm163,-145v-1,-1,-5,-4,-5,0v0,8,1,13,4,13v3,0,3,-5,1,-13xm89,-131v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm153,-127v0,3,2,5,5,5v3,0,5,-2,5,-5v0,-4,-2,-5,-7,-5v-2,0,-3,1,-3,5xm93,-123v1,-6,-9,-10,-11,-6v0,4,4,6,11,6xm152,-123v-10,-2,-3,16,-5,23v8,5,17,0,16,-14v-8,-1,-5,18,-11,9r0,-18xm80,-24v5,0,8,-2,8,-6v-5,0,-8,2,-8,6",w:189},"\uf0dd":{d:"128,-137v0,-30,-6,-60,-43,-52v-21,4,-26,16,-32,36v-8,-11,-29,1,-44,-2v1,-52,36,-84,89,-76r6,-2v80,9,88,124,59,194r-29,30v-39,17,-90,10,-107,-20v-11,-8,-19,-27,-19,-43v0,-16,20,-9,43,-12v6,19,16,46,40,42v26,-3,44,-26,40,-55r-63,0r-4,-40r64,0xm163,-145v-1,-1,-5,-4,-5,0v0,8,1,13,4,13v3,0,3,-5,1,-13xm89,-131v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm153,-127v0,3,2,5,5,5v3,0,5,-2,5,-5v0,-4,-2,-5,-7,-5v-2,0,-3,1,-3,5xm93,-123v1,-6,-9,-10,-11,-6v0,4,4,6,11,6xm152,-123v-10,-2,-3,16,-5,23v8,5,17,0,16,-14v-8,-1,-5,18,-11,9r0,-18xm80,-24v5,0,8,-2,8,-6v-5,0,-8,2,-8,6",w:189},"\u042d":{d:"128,-137v0,-30,-6,-60,-43,-52v-21,4,-26,16,-32,36v-8,-11,-29,1,-44,-2v1,-52,36,-84,89,-76r6,-2v80,9,88,124,59,194r-29,30v-39,17,-90,10,-107,-20v-11,-8,-19,-27,-19,-43v0,-16,20,-9,43,-12v6,19,16,46,40,42v26,-3,44,-26,40,-55r-63,0r-4,-40r64,0xm163,-145v-1,-1,-5,-4,-5,0v0,8,1,13,4,13v3,0,3,-5,1,-13xm89,-131v3,0,8,2,7,-3v-3,0,-8,-2,-7,3xm153,-127v0,3,2,5,5,5v3,0,5,-2,5,-5v0,-4,-2,-5,-7,-5v-2,0,-3,1,-3,5xm93,-123v1,-6,-9,-10,-11,-6v0,4,4,6,11,6xm152,-123v-10,-2,-3,16,-5,23v8,5,17,0,16,-14v-8,-1,-5,18,-11,9r0,-18xm80,-24v5,0,8,-2,8,-6v-5,0,-8,2,-8,6",w:189},"\u00de":{d:"83,-126v11,-29,11,-69,44,-77v17,-24,84,-14,99,8v52,37,41,169,-8,198r-20,-1v-1,5,5,2,8,3v-10,11,-47,17,-58,4v-52,-4,-54,-54,-68,-94r-14,-2v-15,24,1,69,-6,95v-15,-2,-32,5,-36,-7v-15,2,-3,-25,-8,-33r1,-178v14,-1,21,5,36,2v-1,-3,1,-5,7,-5v4,30,-2,50,3,84v3,3,13,3,20,3xm132,-135v-8,51,-4,115,49,108v45,-17,25,-91,32,-139v-9,0,-1,15,-9,16v-10,-15,-12,-23,-33,-26v-23,2,-36,20,-39,41xm230,-129v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm48,-120v-1,7,6,8,6,2v2,-9,-6,-15,-6,-2xm56,-108v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm71,-105v3,0,9,-1,7,-4v-3,0,-9,-3,-11,-1v0,3,1,5,4,5xm46,-61v-2,-27,1,-22,4,-44v0,-4,-1,-5,-4,-4v-6,9,-7,34,-3,48r3,0xm119,-79v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm108,-76v-7,1,-9,14,0,15v2,0,3,-2,3,-7v0,-5,-1,-8,-3,-8xm234,-68v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm220,-43v11,0,17,-6,17,-17v-8,1,-13,11,-17,17xm110,-32v12,-10,0,-11,1,-19v-7,0,-1,12,-3,17v0,4,1,4,2,2",w:269},"\uf0de":{d:"83,-126v11,-29,11,-69,44,-77v17,-24,84,-14,99,8v52,37,41,169,-8,198r-20,-1v-1,5,5,2,8,3v-10,11,-47,17,-58,4v-52,-4,-54,-54,-68,-94r-14,-2v-15,24,1,69,-6,95v-15,-2,-32,5,-36,-7v-15,2,-3,-25,-8,-33r1,-178v14,-1,21,5,36,2v-1,-3,1,-5,7,-5v4,30,-2,50,3,84v3,3,13,3,20,3xm132,-135v-8,51,-4,115,49,108v45,-17,25,-91,32,-139v-9,0,-1,15,-9,16v-10,-15,-12,-23,-33,-26v-23,2,-36,20,-39,41xm230,-129v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm48,-120v-1,7,6,8,6,2v2,-9,-6,-15,-6,-2xm56,-108v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm71,-105v3,0,9,-1,7,-4v-3,0,-9,-3,-11,-1v0,3,1,5,4,5xm46,-61v-2,-27,1,-22,4,-44v0,-4,-1,-5,-4,-4v-6,9,-7,34,-3,48r3,0xm119,-79v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm108,-76v-7,1,-9,14,0,15v2,0,3,-2,3,-7v0,-5,-1,-8,-3,-8xm234,-68v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm220,-43v11,0,17,-6,17,-17v-8,1,-13,11,-17,17xm110,-32v12,-10,0,-11,1,-19v-7,0,-1,12,-3,17v0,4,1,4,2,2",w:269},"\u042e":{d:"83,-126v11,-29,11,-69,44,-77v17,-24,84,-14,99,8v52,37,41,169,-8,198r-20,-1v-1,5,5,2,8,3v-10,11,-47,17,-58,4v-52,-4,-54,-54,-68,-94r-14,-2v-15,24,1,69,-6,95v-15,-2,-32,5,-36,-7v-15,2,-3,-25,-8,-33r1,-178v14,-1,21,5,36,2v-1,-3,1,-5,7,-5v4,30,-2,50,3,84v3,3,13,3,20,3xm132,-135v-8,51,-4,115,49,108v45,-17,25,-91,32,-139v-9,0,-1,15,-9,16v-10,-15,-12,-23,-33,-26v-23,2,-36,20,-39,41xm230,-129v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm48,-120v-1,7,6,8,6,2v2,-9,-6,-15,-6,-2xm56,-108v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm71,-105v3,0,9,-1,7,-4v-3,0,-9,-3,-11,-1v0,3,1,5,4,5xm46,-61v-2,-27,1,-22,4,-44v0,-4,-1,-5,-4,-4v-6,9,-7,34,-3,48r3,0xm119,-79v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm108,-76v-7,1,-9,14,0,15v2,0,3,-2,3,-7v0,-5,-1,-8,-3,-8xm234,-68v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm220,-43v11,0,17,-6,17,-17v-8,1,-13,11,-17,17xm110,-32v12,-10,0,-11,1,-19v-7,0,-1,12,-3,17v0,4,1,4,2,2",w:269},"\u00df":{d:"46,-211v24,-9,59,-8,88,-4v11,-8,10,13,22,5r0,201v1,17,-23,2,-30,11v-23,8,-13,-21,-14,-37r0,-37v-14,-2,-23,0,-23,14v-12,14,-17,46,-29,60v-9,1,1,-28,-10,-10v-9,6,-23,9,-39,9v12,-27,28,-50,37,-79v-35,-8,-48,-44,-43,-89v3,-22,14,-37,34,-43v3,3,1,10,7,10r0,-11xm121,-187v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm33,-188v-5,1,-7,17,-2,19r4,-14v1,-5,1,-6,-2,-5xm98,-176v-44,-8,-61,35,-33,58v9,8,25,-1,40,4v8,-7,6,-30,6,-45v1,-15,-2,-16,-13,-17xm24,-170v-5,2,-3,19,2,20v8,-2,3,-22,-2,-20xm73,-89v0,-7,-5,-7,-5,-15v-8,3,-7,16,5,15xm82,-94v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm142,-81v-14,0,-16,33,-2,18",w:176},"\uf0df":{d:"46,-211v24,-9,59,-8,88,-4v11,-8,10,13,22,5r0,201v1,17,-23,2,-30,11v-23,8,-13,-21,-14,-37r0,-37v-14,-2,-23,0,-23,14v-12,14,-17,46,-29,60v-9,1,1,-28,-10,-10v-9,6,-23,9,-39,9v12,-27,28,-50,37,-79v-35,-8,-48,-44,-43,-89v3,-22,14,-37,34,-43v3,3,1,10,7,10r0,-11xm121,-187v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm33,-188v-5,1,-7,17,-2,19r4,-14v1,-5,1,-6,-2,-5xm98,-176v-44,-8,-61,35,-33,58v9,8,25,-1,40,4v8,-7,6,-30,6,-45v1,-15,-2,-16,-13,-17xm24,-170v-5,2,-3,19,2,20v8,-2,3,-22,-2,-20xm73,-89v0,-7,-5,-7,-5,-15v-8,3,-7,16,5,15xm82,-94v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm142,-81v-14,0,-16,33,-2,18",w:176},"\u042f":{d:"46,-211v24,-9,59,-8,88,-4v11,-8,10,13,22,5r0,201v1,17,-23,2,-30,11v-23,8,-13,-21,-14,-37r0,-37v-14,-2,-23,0,-23,14v-12,14,-17,46,-29,60v-9,1,1,-28,-10,-10v-9,6,-23,9,-39,9v12,-27,28,-50,37,-79v-35,-8,-48,-44,-43,-89v3,-22,14,-37,34,-43v3,3,1,10,7,10r0,-11xm121,-187v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm33,-188v-5,1,-7,17,-2,19r4,-14v1,-5,1,-6,-2,-5xm98,-176v-44,-8,-61,35,-33,58v9,8,25,-1,40,4v8,-7,6,-30,6,-45v1,-15,-2,-16,-13,-17xm24,-170v-5,2,-3,19,2,20v8,-2,3,-22,-2,-20xm73,-89v0,-7,-5,-7,-5,-15v-8,3,-7,16,5,15xm82,-94v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm142,-81v-14,0,-16,33,-2,18",w:176},"\u00e0":{d:"14,-123v9,-38,62,-59,99,-30v31,9,18,51,21,89v-6,7,1,19,0,30r-3,0v0,7,8,25,8,33v-15,-3,-49,6,-41,-15v-22,35,-108,20,-87,-29v-7,-34,28,-43,61,-47v23,4,25,-28,11,-39v-12,-10,-29,3,-30,21r-14,0v0,-3,-1,-5,-4,-5v-2,0,-3,2,-3,5v0,-11,-21,1,-18,-13xm114,-99v4,0,6,-3,6,-10v-4,0,-6,3,-6,10xm111,-79v-5,0,0,15,0,19v8,1,1,-12,7,-16v0,-2,-2,-3,-7,-3xm72,-26v16,-3,22,-30,20,-48v-13,7,-41,3,-41,21v0,18,7,27,21,27xm37,-16v4,-6,13,-19,-1,-20r-11,12",w:146},"\uf0e0":{d:"14,-123v9,-38,62,-59,99,-30v31,9,18,51,21,89v-6,7,1,19,0,30r-3,0v0,7,8,25,8,33v-15,-3,-49,6,-41,-15v-22,35,-108,20,-87,-29v-7,-34,28,-43,61,-47v23,4,25,-28,11,-39v-12,-10,-29,3,-30,21r-14,0v0,-3,-1,-5,-4,-5v-2,0,-3,2,-3,5v0,-11,-21,1,-18,-13xm114,-99v4,0,6,-3,6,-10v-4,0,-6,3,-6,10xm111,-79v-5,0,0,15,0,19v8,1,1,-12,7,-16v0,-2,-2,-3,-7,-3xm72,-26v16,-3,22,-30,20,-48v-13,7,-41,3,-41,21v0,18,7,27,21,27xm37,-16v4,-6,13,-19,-1,-20r-11,12",w:146},"\u0430":{d:"14,-123v9,-38,62,-59,99,-30v31,9,18,51,21,89v-6,7,1,19,0,30r-3,0v0,7,8,25,8,33v-15,-3,-49,6,-41,-15v-22,35,-108,20,-87,-29v-7,-34,28,-43,61,-47v23,4,25,-28,11,-39v-12,-10,-29,3,-30,21r-14,0v0,-3,-1,-5,-4,-5v-2,0,-3,2,-3,5v0,-11,-21,1,-18,-13xm114,-99v4,0,6,-3,6,-10v-4,0,-6,3,-6,10xm111,-79v-5,0,0,15,0,19v8,1,1,-12,7,-16v0,-2,-2,-3,-7,-3xm72,-26v16,-3,22,-30,20,-48v-13,7,-41,3,-41,21v0,18,7,27,21,27xm37,-16v4,-6,13,-19,-1,-20r-11,12",w:146},"\u00e1":{d:"23,-39v-27,-90,-20,-214,86,-208r0,-3r30,0v5,23,-15,41,-40,42v-4,11,-34,0,-38,12v-11,12,-30,23,-22,48v7,-25,36,-39,64,-33v37,18,54,64,44,117v-9,49,-71,73,-110,37v-6,-1,-11,-5,-14,-12xm79,-149v-27,6,-32,44,-24,75r-4,16v14,-1,18,17,31,16v28,-2,23,-44,23,-66v0,-20,-7,-38,-26,-41xm30,-118v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm127,-74v14,-1,5,-20,7,-33r-5,0v1,10,-1,18,-4,23v2,0,7,-1,6,2v-7,-1,-10,7,-4,8xm26,-94v0,10,2,14,7,14r0,-23v-5,0,-7,3,-7,9xm106,-35v4,0,6,-4,6,-12v-7,-3,-5,9,-6,12xm106,-19v3,0,7,-9,2,-10v-3,0,-4,1,-4,4v0,4,1,6,2,6"},"\uf0e1":{d:"23,-39v-27,-90,-20,-214,86,-208r0,-3r30,0v5,23,-15,41,-40,42v-4,11,-34,0,-38,12v-11,12,-30,23,-22,48v7,-25,36,-39,64,-33v37,18,54,64,44,117v-9,49,-71,73,-110,37v-6,-1,-11,-5,-14,-12xm79,-149v-27,6,-32,44,-24,75r-4,16v14,-1,18,17,31,16v28,-2,23,-44,23,-66v0,-20,-7,-38,-26,-41xm30,-118v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm127,-74v14,-1,5,-20,7,-33r-5,0v1,10,-1,18,-4,23v2,0,7,-1,6,2v-7,-1,-10,7,-4,8xm26,-94v0,10,2,14,7,14r0,-23v-5,0,-7,3,-7,9xm106,-35v4,0,6,-4,6,-12v-7,-3,-5,9,-6,12xm106,-19v3,0,7,-9,2,-10v-3,0,-4,1,-4,4v0,4,1,6,2,6"},"\u0431":{d:"23,-39v-27,-90,-20,-214,86,-208r0,-3r30,0v5,23,-15,41,-40,42v-4,11,-34,0,-38,12v-11,12,-30,23,-22,48v7,-25,36,-39,64,-33v37,18,54,64,44,117v-9,49,-71,73,-110,37v-6,-1,-11,-5,-14,-12xm79,-149v-27,6,-32,44,-24,75r-4,16v14,-1,18,17,31,16v28,-2,23,-44,23,-66v0,-20,-7,-38,-26,-41xm30,-118v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm127,-74v14,-1,5,-20,7,-33r-5,0v1,10,-1,18,-4,23v2,0,7,-1,6,2v-7,-1,-10,7,-4,8xm26,-94v0,10,2,14,7,14r0,-23v-5,0,-7,3,-7,9xm106,-35v4,0,6,-4,6,-12v-7,-3,-5,9,-6,12xm106,-19v3,0,7,-9,2,-10v-3,0,-4,1,-4,4v0,4,1,6,2,6"},"\u00e2":{d:"131,-111v-3,24,-7,47,-34,44v3,12,22,-1,30,17v21,24,0,67,-29,68v-25,0,-47,1,-69,-4v-3,0,-4,1,-3,4v-35,-5,-3,-89,-14,-132v4,-6,1,-17,1,-26v23,0,14,10,37,4v15,-11,86,-9,81,25xm76,-110v-18,-8,-34,21,-16,31v14,-2,32,3,29,-17v0,-8,-6,-13,-13,-14xm68,-14v28,6,31,-22,17,-34r-30,0v-1,15,-8,38,13,34xm22,-40v0,5,3,8,9,8v1,-6,-5,-18,-9,-8xm33,-17v-1,-3,-7,-3,-6,1v0,6,3,6,5,3v0,-1,1,-2,1,-4",w:143},"\uf0e2":{d:"131,-111v-3,24,-7,47,-34,44v3,12,22,-1,30,17v21,24,0,67,-29,68v-25,0,-47,1,-69,-4v-3,0,-4,1,-3,4v-35,-5,-3,-89,-14,-132v4,-6,1,-17,1,-26v23,0,14,10,37,4v15,-11,86,-9,81,25xm76,-110v-18,-8,-34,21,-16,31v14,-2,32,3,29,-17v0,-8,-6,-13,-13,-14xm68,-14v28,6,31,-22,17,-34r-30,0v-1,15,-8,38,13,34xm22,-40v0,5,3,8,9,8v1,-6,-5,-18,-9,-8xm33,-17v-1,-3,-7,-3,-6,1v0,6,3,6,5,3v0,-1,1,-2,1,-4",w:143},"\u0432":{d:"131,-111v-3,24,-7,47,-34,44v3,12,22,-1,30,17v21,24,0,67,-29,68v-25,0,-47,1,-69,-4v-3,0,-4,1,-3,4v-35,-5,-3,-89,-14,-132v4,-6,1,-17,1,-26v23,0,14,10,37,4v15,-11,86,-9,81,25xm76,-110v-18,-8,-34,21,-16,31v14,-2,32,3,29,-17v0,-8,-6,-13,-13,-14xm68,-14v28,6,31,-22,17,-34r-30,0v-1,15,-8,38,13,34xm22,-40v0,5,3,8,9,8v1,-6,-5,-18,-9,-8xm33,-17v-1,-3,-7,-3,-6,1v0,6,3,6,5,3v0,-1,1,-2,1,-4",w:143},"\u00e3":{d:"109,-152r2,34r-53,0v-1,8,-17,26,-3,24v-1,11,3,32,-2,43v-4,-4,-3,-15,-3,-23v-7,-1,-4,1,-5,13r0,24v4,3,7,-16,8,-6v2,18,0,29,0,51r-40,-2v3,-29,-3,-62,1,-83v-1,-28,-5,-52,1,-73v28,5,59,-5,94,-2xm55,-149v-1,0,-2,0,-2,2v0,3,3,4,9,4v0,-4,-2,-6,-7,-6xm64,-144v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm48,-84v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:111},"\uf0e3":{d:"109,-152r2,34r-53,0v-1,8,-17,26,-3,24v-1,11,3,32,-2,43v-4,-4,-3,-15,-3,-23v-7,-1,-4,1,-5,13r0,24v4,3,7,-16,8,-6v2,18,0,29,0,51r-40,-2v3,-29,-3,-62,1,-83v-1,-28,-5,-52,1,-73v28,5,59,-5,94,-2xm55,-149v-1,0,-2,0,-2,2v0,3,3,4,9,4v0,-4,-2,-6,-7,-6xm64,-144v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm48,-84v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:111},"\u0433":{d:"109,-152r2,34r-53,0v-1,8,-17,26,-3,24v-1,11,3,32,-2,43v-4,-4,-3,-15,-3,-23v-7,-1,-4,1,-5,13r0,24v4,3,7,-16,8,-6v2,18,0,29,0,51r-40,-2v3,-29,-3,-62,1,-83v-1,-28,-5,-52,1,-73v28,5,59,-5,94,-2xm55,-149v-1,0,-2,0,-2,2v0,3,3,4,9,4v0,-4,-2,-6,-7,-6xm64,-144v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm48,-84v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:111},"\u00e4":{d:"23,-62v7,-31,9,-63,9,-95r108,4v3,26,2,52,-1,76v-6,1,-8,7,-3,10v2,-3,2,-1,4,1r0,35r20,4v5,23,-2,46,0,69r-35,0v-4,-12,-3,-31,5,-39v-30,-3,-66,0,-98,-1r0,22v-2,-2,-2,-6,-2,-12v-7,2,-10,18,2,19v5,12,-9,13,-21,10v-29,3,-6,-48,-15,-72v19,10,27,-13,27,-31xm98,-31v6,-27,2,-61,1,-93r-31,0v3,36,-5,69,-11,93r41,0xm129,-57r0,20v3,0,5,-4,5,-11v0,-6,-2,-9,-5,-9xm43,-41v8,1,4,-9,5,-15v-5,0,-5,11,-5,15xm37,-18v2,-5,-2,-21,-5,-9v0,6,2,9,5,9",w:159},"\uf0e4":{d:"23,-62v7,-31,9,-63,9,-95r108,4v3,26,2,52,-1,76v-6,1,-8,7,-3,10v2,-3,2,-1,4,1r0,35r20,4v5,23,-2,46,0,69r-35,0v-4,-12,-3,-31,5,-39v-30,-3,-66,0,-98,-1r0,22v-2,-2,-2,-6,-2,-12v-7,2,-10,18,2,19v5,12,-9,13,-21,10v-29,3,-6,-48,-15,-72v19,10,27,-13,27,-31xm98,-31v6,-27,2,-61,1,-93r-31,0v3,36,-5,69,-11,93r41,0xm129,-57r0,20v3,0,5,-4,5,-11v0,-6,-2,-9,-5,-9xm43,-41v8,1,4,-9,5,-15v-5,0,-5,11,-5,15xm37,-18v2,-5,-2,-21,-5,-9v0,6,2,9,5,9",w:159},"\u0434":{d:"23,-62v7,-31,9,-63,9,-95r108,4v3,26,2,52,-1,76v-6,1,-8,7,-3,10v2,-3,2,-1,4,1r0,35r20,4v5,23,-2,46,0,69r-35,0v-4,-12,-3,-31,5,-39v-30,-3,-66,0,-98,-1r0,22v-2,-2,-2,-6,-2,-12v-7,2,-10,18,2,19v5,12,-9,13,-21,10v-29,3,-6,-48,-15,-72v19,10,27,-13,27,-31xm98,-31v6,-27,2,-61,1,-93r-31,0v3,36,-5,69,-11,93r41,0xm129,-57r0,20v3,0,5,-4,5,-11v0,-6,-2,-9,-5,-9xm43,-41v8,1,4,-9,5,-15v-5,0,-5,11,-5,15xm37,-18v2,-5,-2,-21,-5,-9v0,6,2,9,5,9",w:159},"\u00e5":{d:"57,-46v33,23,40,-31,69,-11r13,0v-2,52,-82,60,-112,30v-31,-31,-30,-123,10,-141v16,-16,47,-13,69,-5v4,14,26,7,24,28v9,6,11,27,-4,27v-1,-4,3,-12,-3,-11v-7,13,9,21,16,12v7,6,-3,25,4,34r-99,0v12,6,1,28,13,37xm85,-144v-31,-15,-32,27,-46,36r63,-2v-5,-12,-5,-28,-17,-34xm121,-134v5,1,2,-7,3,-10v-2,0,-6,-1,-5,2v0,5,1,8,2,8xm51,-29v5,1,4,-2,4,-6v-5,-1,-4,2,-4,6",w:151},"\uf0e5":{d:"57,-46v33,23,40,-31,69,-11r13,0v-2,52,-82,60,-112,30v-31,-31,-30,-123,10,-141v16,-16,47,-13,69,-5v4,14,26,7,24,28v9,6,11,27,-4,27v-1,-4,3,-12,-3,-11v-7,13,9,21,16,12v7,6,-3,25,4,34r-99,0v12,6,1,28,13,37xm85,-144v-31,-15,-32,27,-46,36r63,-2v-5,-12,-5,-28,-17,-34xm121,-134v5,1,2,-7,3,-10v-2,0,-6,-1,-5,2v0,5,1,8,2,8xm51,-29v5,1,4,-2,4,-6v-5,-1,-4,2,-4,6",w:151},"\u0435":{d:"57,-46v33,23,40,-31,69,-11r13,0v-2,52,-82,60,-112,30v-31,-31,-30,-123,10,-141v16,-16,47,-13,69,-5v4,14,26,7,24,28v9,6,11,27,-4,27v-1,-4,3,-12,-3,-11v-7,13,9,21,16,12v7,6,-3,25,4,34r-99,0v12,6,1,28,13,37xm85,-144v-31,-15,-32,27,-46,36r63,-2v-5,-12,-5,-28,-17,-34xm121,-134v5,1,2,-7,3,-10v-2,0,-6,-1,-5,2v0,5,1,8,2,8xm51,-29v5,1,4,-2,4,-6v-5,-1,-4,2,-4,6",w:151},"\u00e6":{d:"69,-84v-9,22,-18,48,-31,66r-46,2r50,-80v-4,-12,-15,-26,-23,-35v-1,-18,-22,-24,-24,-42r36,1v20,3,22,25,18,46v5,1,5,-16,9,-5v3,6,11,32,13,15v2,-23,-1,-40,-3,-60v21,1,60,11,35,32r0,11v13,0,7,12,10,23v10,-26,18,-43,31,-63v5,-3,19,10,21,0r22,0v-18,22,-32,51,-48,76v19,25,34,53,50,81r-16,0v1,-3,-1,-5,-4,-5v-4,2,-14,4,-25,2v-16,-16,-19,-45,-32,-63v-3,13,2,43,0,62v-9,0,-18,3,-26,0v1,8,-10,3,-15,4xm36,-142v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm35,-61v-6,-1,-11,10,-6,13v9,1,15,0,13,-12v-6,-2,-8,13,-7,-1",w:182},"\uf0e6":{d:"69,-84v-9,22,-18,48,-31,66r-46,2r50,-80v-4,-12,-15,-26,-23,-35v-1,-18,-22,-24,-24,-42r36,1v20,3,22,25,18,46v5,1,5,-16,9,-5v3,6,11,32,13,15v2,-23,-1,-40,-3,-60v21,1,60,11,35,32r0,11v13,0,7,12,10,23v10,-26,18,-43,31,-63v5,-3,19,10,21,0r22,0v-18,22,-32,51,-48,76v19,25,34,53,50,81r-16,0v1,-3,-1,-5,-4,-5v-4,2,-14,4,-25,2v-16,-16,-19,-45,-32,-63v-3,13,2,43,0,62v-9,0,-18,3,-26,0v1,8,-10,3,-15,4xm36,-142v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm35,-61v-6,-1,-11,10,-6,13v9,1,15,0,13,-12v-6,-2,-8,13,-7,-1",w:182},"\u0436":{d:"69,-84v-9,22,-18,48,-31,66r-46,2r50,-80v-4,-12,-15,-26,-23,-35v-1,-18,-22,-24,-24,-42r36,1v20,3,22,25,18,46v5,1,5,-16,9,-5v3,6,11,32,13,15v2,-23,-1,-40,-3,-60v21,1,60,11,35,32r0,11v13,0,7,12,10,23v10,-26,18,-43,31,-63v5,-3,19,10,21,0r22,0v-18,22,-32,51,-48,76v19,25,34,53,50,81r-16,0v1,-3,-1,-5,-4,-5v-4,2,-14,4,-25,2v-16,-16,-19,-45,-32,-63v-3,13,2,43,0,62v-9,0,-18,3,-26,0v1,8,-10,3,-15,4xm36,-142v4,1,3,-2,3,-5v-4,-1,-3,2,-3,5xm35,-61v-6,-1,-11,10,-6,13v9,1,15,0,13,-12v-6,-2,-8,13,-7,-1",w:182},"\u00e7":{d:"42,-114v-19,4,-25,-5,-38,-10v7,-62,109,-63,123,-7v0,25,-11,40,-35,42v-1,1,-1,4,-1,8v19,-11,38,6,38,29v0,40,-34,59,-76,51v-5,3,-21,-8,-27,-5v-13,-12,-23,-25,-25,-45v5,-8,26,-8,38,-6v-4,28,41,37,46,11v4,-22,-11,-30,-34,-26v-3,-10,2,-20,-1,-31v13,0,29,3,32,-7v-2,-14,7,-27,-13,-27v-18,0,-27,7,-27,23xm19,-131v0,4,1,5,5,5v4,0,3,-11,3,-16v-5,0,-8,4,-8,11xm112,-126v-2,0,-4,0,-3,2v0,4,3,5,6,2v1,0,2,-1,1,-2v0,-1,-1,-2,-4,-2xm115,-37v7,1,8,-8,2,-8v-1,1,-2,3,-2,8",w:137},"\uf0e7":{d:"42,-114v-19,4,-25,-5,-38,-10v7,-62,109,-63,123,-7v0,25,-11,40,-35,42v-1,1,-1,4,-1,8v19,-11,38,6,38,29v0,40,-34,59,-76,51v-5,3,-21,-8,-27,-5v-13,-12,-23,-25,-25,-45v5,-8,26,-8,38,-6v-4,28,41,37,46,11v4,-22,-11,-30,-34,-26v-3,-10,2,-20,-1,-31v13,0,29,3,32,-7v-2,-14,7,-27,-13,-27v-18,0,-27,7,-27,23xm19,-131v0,4,1,5,5,5v4,0,3,-11,3,-16v-5,0,-8,4,-8,11xm112,-126v-2,0,-4,0,-3,2v0,4,3,5,6,2v1,0,2,-1,1,-2v0,-1,-1,-2,-4,-2xm115,-37v7,1,8,-8,2,-8v-1,1,-2,3,-2,8",w:137},"\u0437":{d:"42,-114v-19,4,-25,-5,-38,-10v7,-62,109,-63,123,-7v0,25,-11,40,-35,42v-1,1,-1,4,-1,8v19,-11,38,6,38,29v0,40,-34,59,-76,51v-5,3,-21,-8,-27,-5v-13,-12,-23,-25,-25,-45v5,-8,26,-8,38,-6v-4,28,41,37,46,11v4,-22,-11,-30,-34,-26v-3,-10,2,-20,-1,-31v13,0,29,3,32,-7v-2,-14,7,-27,-13,-27v-18,0,-27,7,-27,23xm19,-131v0,4,1,5,5,5v4,0,3,-11,3,-16v-5,0,-8,4,-8,11xm112,-126v-2,0,-4,0,-3,2v0,4,3,5,6,2v1,0,2,-1,1,-2v0,-1,-1,-2,-4,-2xm115,-37v7,1,8,-8,2,-8v-1,1,-2,3,-2,8",w:137},"\u00e8":{d:"28,-153v50,-14,11,52,23,76r-4,15v6,-1,8,-6,12,-12v20,-31,25,-56,41,-84v6,2,20,-4,18,6r17,2v2,-7,-7,-1,-6,-7r13,0r3,162v-7,-7,-27,-1,-40,-3v-8,-12,0,-30,-2,-49v6,2,0,8,4,11v11,-14,-12,-33,-5,-58v-11,32,-31,56,-41,89v-17,1,-26,11,-47,10r-1,-139v-2,-14,-6,-27,13,-23v-1,3,0,4,2,4xm45,-36v-7,0,-3,13,-9,14v-1,-4,2,-12,-4,-10r-4,17v12,2,26,-13,17,-21",w:159},"\uf0e8":{d:"28,-153v50,-14,11,52,23,76r-4,15v6,-1,8,-6,12,-12v20,-31,25,-56,41,-84v6,2,20,-4,18,6r17,2v2,-7,-7,-1,-6,-7r13,0r3,162v-7,-7,-27,-1,-40,-3v-8,-12,0,-30,-2,-49v6,2,0,8,4,11v11,-14,-12,-33,-5,-58v-11,32,-31,56,-41,89v-17,1,-26,11,-47,10r-1,-139v-2,-14,-6,-27,13,-23v-1,3,0,4,2,4xm45,-36v-7,0,-3,13,-9,14v-1,-4,2,-12,-4,-10r-4,17v12,2,26,-13,17,-21",w:159},"\u0438":{d:"28,-153v50,-14,11,52,23,76r-4,15v6,-1,8,-6,12,-12v20,-31,25,-56,41,-84v6,2,20,-4,18,6r17,2v2,-7,-7,-1,-6,-7r13,0r3,162v-7,-7,-27,-1,-40,-3v-8,-12,0,-30,-2,-49v6,2,0,8,4,11v11,-14,-12,-33,-5,-58v-11,32,-31,56,-41,89v-17,1,-26,11,-47,10r-1,-139v-2,-14,-6,-27,13,-23v-1,3,0,4,2,4xm45,-36v-7,0,-3,13,-9,14v-1,-4,2,-12,-4,-10r-4,17v12,2,26,-13,17,-21",w:159},"\u00e9":{d:"76,-177v-24,5,-48,-14,-47,-41r11,0v-1,0,-1,1,-1,4v11,-1,10,-3,19,-1v-1,12,14,16,25,17v13,1,9,-26,20,-17v5,-5,17,-3,26,-3v-8,19,-17,49,-45,39v4,-5,2,-6,-3,-6v-6,0,-16,7,-5,8xm14,-9v-5,-48,1,-98,-1,-149v25,-6,47,-5,40,32v2,18,2,39,2,60r47,-94v14,4,40,-5,43,11v-6,54,3,104,-2,150v-8,0,-17,0,-20,-6v-6,0,-17,11,-22,4v1,-17,4,-53,-1,-70v7,-6,5,-7,3,-18v-6,-4,-9,12,-11,18v-17,22,-26,46,-37,70v-8,3,-24,-1,-36,0v0,-6,-1,-9,-5,-8xm98,-118v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm83,-94v8,1,12,-10,14,-20v-7,2,-10,13,-14,20xm30,-33v16,1,7,-14,9,-25v0,-2,-2,-3,-4,-3v-17,-3,-6,13,-9,22v0,4,1,6,4,6xm127,-34v5,1,4,-4,4,-8v-5,-1,-4,4,-4,8xm127,-22v3,0,6,0,5,-4v-3,0,-6,0,-5,4",w:159},"\uf0e9":{d:"76,-177v-24,5,-48,-14,-47,-41r11,0v-1,0,-1,1,-1,4v11,-1,10,-3,19,-1v-1,12,14,16,25,17v13,1,9,-26,20,-17v5,-5,17,-3,26,-3v-8,19,-17,49,-45,39v4,-5,2,-6,-3,-6v-6,0,-16,7,-5,8xm14,-9v-5,-48,1,-98,-1,-149v25,-6,47,-5,40,32v2,18,2,39,2,60r47,-94v14,4,40,-5,43,11v-6,54,3,104,-2,150v-8,0,-17,0,-20,-6v-6,0,-17,11,-22,4v1,-17,4,-53,-1,-70v7,-6,5,-7,3,-18v-6,-4,-9,12,-11,18v-17,22,-26,46,-37,70v-8,3,-24,-1,-36,0v0,-6,-1,-9,-5,-8xm98,-118v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm83,-94v8,1,12,-10,14,-20v-7,2,-10,13,-14,20xm30,-33v16,1,7,-14,9,-25v0,-2,-2,-3,-4,-3v-17,-3,-6,13,-9,22v0,4,1,6,4,6xm127,-34v5,1,4,-4,4,-8v-5,-1,-4,4,-4,8xm127,-22v3,0,6,0,5,-4v-3,0,-6,0,-5,4",w:159},"\u0439":{d:"76,-177v-24,5,-48,-14,-47,-41r11,0v-1,0,-1,1,-1,4v11,-1,10,-3,19,-1v-1,12,14,16,25,17v13,1,9,-26,20,-17v5,-5,17,-3,26,-3v-8,19,-17,49,-45,39v4,-5,2,-6,-3,-6v-6,0,-16,7,-5,8xm14,-9v-5,-48,1,-98,-1,-149v25,-6,47,-5,40,32v2,18,2,39,2,60r47,-94v14,4,40,-5,43,11v-6,54,3,104,-2,150v-8,0,-17,0,-20,-6v-6,0,-17,11,-22,4v1,-17,4,-53,-1,-70v7,-6,5,-7,3,-18v-6,-4,-9,12,-11,18v-17,22,-26,46,-37,70v-8,3,-24,-1,-36,0v0,-6,-1,-9,-5,-8xm98,-118v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm83,-94v8,1,12,-10,14,-20v-7,2,-10,13,-14,20xm30,-33v16,1,7,-14,9,-25v0,-2,-2,-3,-4,-3v-17,-3,-6,13,-9,22v0,4,1,6,4,6xm127,-34v5,1,4,-4,4,-8v-5,-1,-4,4,-4,8xm127,-22v3,0,6,0,5,-4v-3,0,-6,0,-5,4",w:159},"\u00ea":{d:"13,-11v1,-53,-6,-113,2,-160v12,1,23,14,32,3v16,8,3,41,8,56v5,5,7,0,9,-8v3,-21,23,-26,26,-47v3,-7,7,0,9,2v10,-2,24,-5,33,-1v-12,21,-27,46,-42,61v-11,27,22,39,28,64r21,33v-14,-8,-49,8,-55,-10v0,-13,-14,-24,-16,-37v-1,-10,-5,-18,-13,-24v-6,17,5,37,-3,57v-3,0,-4,-4,-4,-13v0,-7,-3,-12,-4,-5v-3,10,2,19,1,29r-32,0xm38,-128v-10,-1,-15,7,-7,9v5,0,7,-3,7,-9xm79,-118v-9,-1,-3,8,-5,14v8,1,4,-8,5,-14",w:130},"\uf0ea":{d:"13,-11v1,-53,-6,-113,2,-160v12,1,23,14,32,3v16,8,3,41,8,56v5,5,7,0,9,-8v3,-21,23,-26,26,-47v3,-7,7,0,9,2v10,-2,24,-5,33,-1v-12,21,-27,46,-42,61v-11,27,22,39,28,64r21,33v-14,-8,-49,8,-55,-10v0,-13,-14,-24,-16,-37v-1,-10,-5,-18,-13,-24v-6,17,5,37,-3,57v-3,0,-4,-4,-4,-13v0,-7,-3,-12,-4,-5v-3,10,2,19,1,29r-32,0xm38,-128v-10,-1,-15,7,-7,9v5,0,7,-3,7,-9xm79,-118v-9,-1,-3,8,-5,14v8,1,4,-8,5,-14",w:130},"\u043a":{d:"13,-11v1,-53,-6,-113,2,-160v12,1,23,14,32,3v16,8,3,41,8,56v5,5,7,0,9,-8v3,-21,23,-26,26,-47v3,-7,7,0,9,2v10,-2,24,-5,33,-1v-12,21,-27,46,-42,61v-11,27,22,39,28,64r21,33v-14,-8,-49,8,-55,-10v0,-13,-14,-24,-16,-37v-1,-10,-5,-18,-13,-24v-6,17,5,37,-3,57v-3,0,-4,-4,-4,-13v0,-7,-3,-12,-4,-5v-3,10,2,19,1,29r-32,0xm38,-128v-10,-1,-15,7,-7,9v5,0,7,-3,7,-9xm79,-118v-9,-1,-3,8,-5,14v8,1,4,-8,5,-14",w:130},"\u00eb":{d:"29,-148r91,-1v-4,1,-14,-3,-12,4r17,0v1,-4,6,-7,13,-7r-4,159v-17,1,-51,4,-37,-30v-5,-29,4,-65,-3,-89v1,-2,2,-3,3,-4v-17,-2,-37,-6,-32,19v-4,-2,-6,-1,-6,2v-3,13,-7,16,-4,31v5,-3,4,-22,11,-27v5,35,-2,63,-12,87v-10,12,-30,18,-45,17v-16,-1,-13,-19,-9,-34v39,-3,25,-86,29,-127xm116,-67v6,1,6,-4,5,-7v-1,-2,-2,-2,-3,-1v-1,0,-2,3,-2,8xm113,-42v7,2,3,-7,4,-11v-7,-2,-3,7,-4,11",w:153},"\uf0eb":{d:"29,-148r91,-1v-4,1,-14,-3,-12,4r17,0v1,-4,6,-7,13,-7r-4,159v-17,1,-51,4,-37,-30v-5,-29,4,-65,-3,-89v1,-2,2,-3,3,-4v-17,-2,-37,-6,-32,19v-4,-2,-6,-1,-6,2v-3,13,-7,16,-4,31v5,-3,4,-22,11,-27v5,35,-2,63,-12,87v-10,12,-30,18,-45,17v-16,-1,-13,-19,-9,-34v39,-3,25,-86,29,-127xm116,-67v6,1,6,-4,5,-7v-1,-2,-2,-2,-3,-1v-1,0,-2,3,-2,8xm113,-42v7,2,3,-7,4,-11v-7,-2,-3,7,-4,11",w:153},"\u043b":{d:"29,-148r91,-1v-4,1,-14,-3,-12,4r17,0v1,-4,6,-7,13,-7r-4,159v-17,1,-51,4,-37,-30v-5,-29,4,-65,-3,-89v1,-2,2,-3,3,-4v-17,-2,-37,-6,-32,19v-4,-2,-6,-1,-6,2v-3,13,-7,16,-4,31v5,-3,4,-22,11,-27v5,35,-2,63,-12,87v-10,12,-30,18,-45,17v-16,-1,-13,-19,-9,-34v39,-3,25,-86,29,-127xm116,-67v6,1,6,-4,5,-7v-1,-2,-2,-2,-3,-1v-1,0,-2,3,-2,8xm113,-42v7,2,3,-7,4,-11v-7,-2,-3,7,-4,11",w:153},"\u00ec":{d:"76,-132v12,16,11,45,20,64v15,-33,20,-76,35,-109r52,0v-6,53,1,107,1,158v-8,4,-32,2,-42,0v2,-24,-6,-45,1,-70v-12,-11,14,-23,1,-31v-2,-1,-4,-1,-6,-1v3,35,-21,68,-25,103v-13,2,-19,-3,-33,-3v-5,-32,-19,-57,-22,-88v-1,-2,-3,-4,-6,-4r3,79v0,13,-10,13,-20,10r0,5r-22,0v2,-39,-3,-77,1,-108v-3,-16,-3,-32,-1,-49v20,-5,28,13,35,2r16,0v3,11,18,30,5,40v1,4,-3,14,3,13v2,-8,3,-11,4,-11xm161,-142v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm30,-134v12,1,17,-9,5,-10v-4,0,-5,4,-5,10xm159,-135v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm174,-65v0,-1,-6,-2,-5,1v0,4,3,4,5,2v0,-1,1,-2,0,-3xm169,-48v0,3,2,5,5,5r0,-11v-3,0,-5,2,-5,6",w:198},"\uf0ec":{d:"76,-132v12,16,11,45,20,64v15,-33,20,-76,35,-109r52,0v-6,53,1,107,1,158v-8,4,-32,2,-42,0v2,-24,-6,-45,1,-70v-12,-11,14,-23,1,-31v-2,-1,-4,-1,-6,-1v3,35,-21,68,-25,103v-13,2,-19,-3,-33,-3v-5,-32,-19,-57,-22,-88v-1,-2,-3,-4,-6,-4r3,79v0,13,-10,13,-20,10r0,5r-22,0v2,-39,-3,-77,1,-108v-3,-16,-3,-32,-1,-49v20,-5,28,13,35,2r16,0v3,11,18,30,5,40v1,4,-3,14,3,13v2,-8,3,-11,4,-11xm161,-142v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm30,-134v12,1,17,-9,5,-10v-4,0,-5,4,-5,10xm159,-135v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm174,-65v0,-1,-6,-2,-5,1v0,4,3,4,5,2v0,-1,1,-2,0,-3xm169,-48v0,3,2,5,5,5r0,-11v-3,0,-5,2,-5,6",w:198},"\u043c":{d:"76,-132v12,16,11,45,20,64v15,-33,20,-76,35,-109r52,0v-6,53,1,107,1,158v-8,4,-32,2,-42,0v2,-24,-6,-45,1,-70v-12,-11,14,-23,1,-31v-2,-1,-4,-1,-6,-1v3,35,-21,68,-25,103v-13,2,-19,-3,-33,-3v-5,-32,-19,-57,-22,-88v-1,-2,-3,-4,-6,-4r3,79v0,13,-10,13,-20,10r0,5r-22,0v2,-39,-3,-77,1,-108v-3,-16,-3,-32,-1,-49v20,-5,28,13,35,2r16,0v3,11,18,30,5,40v1,4,-3,14,3,13v2,-8,3,-11,4,-11xm161,-142v4,1,5,-1,4,-5v-4,-1,-5,1,-4,5xm30,-134v12,1,17,-9,5,-10v-4,0,-5,4,-5,10xm159,-135v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4xm174,-65v0,-1,-6,-2,-5,1v0,4,3,4,5,2v0,-1,1,-2,0,-3xm169,-48v0,3,2,5,5,5r0,-11v-3,0,-5,2,-5,6",w:198},"\u00ed":{d:"94,-115v-4,-18,4,-28,-3,-40v-1,-22,15,-12,25,-10v3,0,4,-1,3,-5v28,-6,12,39,18,70v-4,27,-1,58,-2,89r-43,2v-1,-11,3,-22,4,-31v1,2,3,4,7,4r0,-11v-14,3,-7,-17,-9,-30r-39,0v-4,20,2,50,1,69v-12,-3,-28,0,-42,-1v-5,-33,4,-73,-3,-105r3,-57v10,1,23,9,31,3v19,0,3,28,11,40v-4,10,-1,20,5,26v11,-1,27,-6,33,-13xm124,-140v-7,1,-6,24,0,11r0,-11xm40,-107v-20,-2,-6,21,-3,30v1,2,2,4,3,4r0,-34xm43,-51v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:151},"\uf0ed":{d:"94,-115v-4,-18,4,-28,-3,-40v-1,-22,15,-12,25,-10v3,0,4,-1,3,-5v28,-6,12,39,18,70v-4,27,-1,58,-2,89r-43,2v-1,-11,3,-22,4,-31v1,2,3,4,7,4r0,-11v-14,3,-7,-17,-9,-30r-39,0v-4,20,2,50,1,69v-12,-3,-28,0,-42,-1v-5,-33,4,-73,-3,-105r3,-57v10,1,23,9,31,3v19,0,3,28,11,40v-4,10,-1,20,5,26v11,-1,27,-6,33,-13xm124,-140v-7,1,-6,24,0,11r0,-11xm40,-107v-20,-2,-6,21,-3,30v1,2,2,4,3,4r0,-34xm43,-51v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:151},"\u043d":{d:"94,-115v-4,-18,4,-28,-3,-40v-1,-22,15,-12,25,-10v3,0,4,-1,3,-5v28,-6,12,39,18,70v-4,27,-1,58,-2,89r-43,2v-1,-11,3,-22,4,-31v1,2,3,4,7,4r0,-11v-14,3,-7,-17,-9,-30r-39,0v-4,20,2,50,1,69v-12,-3,-28,0,-42,-1v-5,-33,4,-73,-3,-105r3,-57v10,1,23,9,31,3v19,0,3,28,11,40v-4,10,-1,20,5,26v11,-1,27,-6,33,-13xm124,-140v-7,1,-6,24,0,11r0,-11xm40,-107v-20,-2,-6,21,-3,30v1,2,2,4,3,4r0,-34xm43,-51v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4",w:151},"\u00ee":{d:"90,5v-63,8,-95,-39,-82,-115v6,-32,30,-62,69,-54v32,-1,56,15,52,41v0,4,1,6,5,6r0,-7v24,45,5,123,-44,129xm74,-27v51,-11,30,-138,-19,-99v-5,8,-2,32,-12,29v1,-5,-1,-21,-4,-8v-2,8,-2,18,7,18v-2,17,7,32,7,48v2,8,9,12,21,12xm32,-119v2,-4,-3,-7,-5,-4v0,3,2,4,5,4xm123,-84v6,1,4,0,6,-8v1,-5,0,-6,-2,-4v-2,1,-4,5,-4,12xm31,-62v-6,-2,-9,12,-8,1r-4,0r0,19v13,4,12,-6,12,-20xm114,-53v0,10,-13,13,-13,23v13,4,26,-18,13,-23",w:153},"\uf0ee":{d:"90,5v-63,8,-95,-39,-82,-115v6,-32,30,-62,69,-54v32,-1,56,15,52,41v0,4,1,6,5,6r0,-7v24,45,5,123,-44,129xm74,-27v51,-11,30,-138,-19,-99v-5,8,-2,32,-12,29v1,-5,-1,-21,-4,-8v-2,8,-2,18,7,18v-2,17,7,32,7,48v2,8,9,12,21,12xm32,-119v2,-4,-3,-7,-5,-4v0,3,2,4,5,4xm123,-84v6,1,4,0,6,-8v1,-5,0,-6,-2,-4v-2,1,-4,5,-4,12xm31,-62v-6,-2,-9,12,-8,1r-4,0r0,19v13,4,12,-6,12,-20xm114,-53v0,10,-13,13,-13,23v13,4,26,-18,13,-23",w:153},"\u043e":{d:"90,5v-63,8,-95,-39,-82,-115v6,-32,30,-62,69,-54v32,-1,56,15,52,41v0,4,1,6,5,6r0,-7v24,45,5,123,-44,129xm74,-27v51,-11,30,-138,-19,-99v-5,8,-2,32,-12,29v1,-5,-1,-21,-4,-8v-2,8,-2,18,7,18v-2,17,7,32,7,48v2,8,9,12,21,12xm32,-119v2,-4,-3,-7,-5,-4v0,3,2,4,5,4xm123,-84v6,1,4,0,6,-8v1,-5,0,-6,-2,-4v-2,1,-4,5,-4,12xm31,-62v-6,-2,-9,12,-8,1r-4,0r0,19v13,4,12,-6,12,-20xm114,-53v0,10,-13,13,-13,23v13,4,26,-18,13,-23",w:153},"\u00ef":{d:"11,-152v25,1,49,2,73,0v-2,4,1,6,3,4v7,-7,31,-3,48,-4v4,25,9,77,-1,101v-4,-3,-9,-3,-9,1v-2,13,15,0,15,9v0,18,-1,31,-4,47v-21,-1,-47,6,-41,-27v6,-32,-2,-69,3,-99r-43,0r-1,126r-41,0v-3,-43,3,-108,-2,-158xm31,-120v8,1,10,-6,2,-6v-1,1,-2,2,-2,6xm32,-43v5,-2,4,-9,-3,-8v0,5,1,8,3,8xm30,-38v-8,2,-9,30,-1,34v6,-5,10,-15,6,-24v-7,2,-5,-5,-5,-10xm118,-24v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm31,-16v-4,1,-1,-5,-2,-8v1,0,2,3,2,8",w:154},"\uf0ef":{d:"11,-152v25,1,49,2,73,0v-2,4,1,6,3,4v7,-7,31,-3,48,-4v4,25,9,77,-1,101v-4,-3,-9,-3,-9,1v-2,13,15,0,15,9v0,18,-1,31,-4,47v-21,-1,-47,6,-41,-27v6,-32,-2,-69,3,-99r-43,0r-1,126r-41,0v-3,-43,3,-108,-2,-158xm31,-120v8,1,10,-6,2,-6v-1,1,-2,2,-2,6xm32,-43v5,-2,4,-9,-3,-8v0,5,1,8,3,8xm30,-38v-8,2,-9,30,-1,34v6,-5,10,-15,6,-24v-7,2,-5,-5,-5,-10xm118,-24v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm31,-16v-4,1,-1,-5,-2,-8v1,0,2,3,2,8",w:154},"\u043f":{d:"11,-152v25,1,49,2,73,0v-2,4,1,6,3,4v7,-7,31,-3,48,-4v4,25,9,77,-1,101v-4,-3,-9,-3,-9,1v-2,13,15,0,15,9v0,18,-1,31,-4,47v-21,-1,-47,6,-41,-27v6,-32,-2,-69,3,-99r-43,0r-1,126r-41,0v-3,-43,3,-108,-2,-158xm31,-120v8,1,10,-6,2,-6v-1,1,-2,2,-2,6xm32,-43v5,-2,4,-9,-3,-8v0,5,1,8,3,8xm30,-38v-8,2,-9,30,-1,34v6,-5,10,-15,6,-24v-7,2,-5,-5,-5,-10xm118,-24v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8xm31,-16v-4,1,-1,-5,-2,-8v1,0,2,3,2,8",w:154},"\u00f0":{d:"51,-140v13,-41,86,-25,91,14v1,11,-22,27,-5,32v-3,-9,4,-19,10,-12v-1,33,4,84,-23,101v-21,8,-37,11,-63,5v-1,-5,-9,-13,-8,0v6,15,-8,40,2,51v-13,0,-27,10,-41,9v-2,0,-3,-3,-3,-7r2,-208v4,-4,23,-4,38,-5r0,20xm80,-132v-15,5,-30,13,-26,37v-7,0,-10,18,-17,22r15,-6v-2,21,4,53,24,53v28,0,29,-28,29,-55v0,-21,-6,-48,-25,-51xm131,-124v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm39,0v-8,-3,-12,6,-7,11v4,0,6,-8,7,-11xm33,22v-8,0,-6,20,-5,25v4,-1,6,-19,5,-25"},"\uf0f0":{d:"51,-140v13,-41,86,-25,91,14v1,11,-22,27,-5,32v-3,-9,4,-19,10,-12v-1,33,4,84,-23,101v-21,8,-37,11,-63,5v-1,-5,-9,-13,-8,0v6,15,-8,40,2,51v-13,0,-27,10,-41,9v-2,0,-3,-3,-3,-7r2,-208v4,-4,23,-4,38,-5r0,20xm80,-132v-15,5,-30,13,-26,37v-7,0,-10,18,-17,22r15,-6v-2,21,4,53,24,53v28,0,29,-28,29,-55v0,-21,-6,-48,-25,-51xm131,-124v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm39,0v-8,-3,-12,6,-7,11v4,0,6,-8,7,-11xm33,22v-8,0,-6,20,-5,25v4,-1,6,-19,5,-25"},"\u0440":{d:"51,-140v13,-41,86,-25,91,14v1,11,-22,27,-5,32v-3,-9,4,-19,10,-12v-1,33,4,84,-23,101v-21,8,-37,11,-63,5v-1,-5,-9,-13,-8,0v6,15,-8,40,2,51v-13,0,-27,10,-41,9v-2,0,-3,-3,-3,-7r2,-208v4,-4,23,-4,38,-5r0,20xm80,-132v-15,5,-30,13,-26,37v-7,0,-10,18,-17,22r15,-6v-2,21,4,53,24,53v28,0,29,-28,29,-55v0,-21,-6,-48,-25,-51xm131,-124v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm39,0v-8,-3,-12,6,-7,11v4,0,6,-8,7,-11xm33,22v-8,0,-6,20,-5,25v4,-1,6,-19,5,-25"},"\u00f1":{d:"7,-46v0,-61,16,-108,80,-99v26,-3,47,23,47,52v0,4,-4,6,-11,6v-4,-8,-24,8,-28,-2v-1,-12,-9,-30,-21,-27v-23,6,-29,37,-32,62v1,0,3,-2,4,-7v7,18,4,49,24,53v21,4,24,-22,28,-34v17,0,26,-1,37,7v-7,37,-35,70,-84,54v-27,-9,-44,-29,-44,-65xm52,-129v7,2,8,-5,2,-5v-1,1,-2,2,-2,5xm31,-104v7,0,10,-3,10,-9v-7,0,-10,3,-10,9xm32,-92v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm99,-4v7,-2,3,-14,-3,-15v-5,0,-7,4,-7,12v5,-4,8,-2,10,3xm85,5v5,0,6,-3,4,-6v-3,-1,-6,0,-4,6xm74,6v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:143},"\uf0f1":{d:"7,-46v0,-61,16,-108,80,-99v26,-3,47,23,47,52v0,4,-4,6,-11,6v-4,-8,-24,8,-28,-2v-1,-12,-9,-30,-21,-27v-23,6,-29,37,-32,62v1,0,3,-2,4,-7v7,18,4,49,24,53v21,4,24,-22,28,-34v17,0,26,-1,37,7v-7,37,-35,70,-84,54v-27,-9,-44,-29,-44,-65xm52,-129v7,2,8,-5,2,-5v-1,1,-2,2,-2,5xm31,-104v7,0,10,-3,10,-9v-7,0,-10,3,-10,9xm32,-92v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm99,-4v7,-2,3,-14,-3,-15v-5,0,-7,4,-7,12v5,-4,8,-2,10,3xm85,5v5,0,6,-3,4,-6v-3,-1,-6,0,-4,6xm74,6v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:143},"\u0441":{d:"7,-46v0,-61,16,-108,80,-99v26,-3,47,23,47,52v0,4,-4,6,-11,6v-4,-8,-24,8,-28,-2v-1,-12,-9,-30,-21,-27v-23,6,-29,37,-32,62v1,0,3,-2,4,-7v7,18,4,49,24,53v21,4,24,-22,28,-34v17,0,26,-1,37,7v-7,37,-35,70,-84,54v-27,-9,-44,-29,-44,-65xm52,-129v7,2,8,-5,2,-5v-1,1,-2,2,-2,5xm31,-104v7,0,10,-3,10,-9v-7,0,-10,3,-10,9xm32,-92v5,1,2,-7,3,-10v-5,-1,-2,7,-3,10xm99,-4v7,-2,3,-14,-3,-15v-5,0,-7,4,-7,12v5,-4,8,-2,10,3xm85,5v5,0,6,-3,4,-6v-3,-1,-6,0,-4,6xm74,6v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:143},"\u00f2":{d:"37,-89v2,-25,13,-67,-23,-53v-19,7,-16,-16,-14,-31r120,2v-3,9,8,23,0,29v-18,1,-37,-7,-51,-3v8,3,16,9,12,22v-5,3,-12,13,-7,18v2,-2,10,-7,6,5r1,87v-16,0,-28,-1,-41,-5v-1,-25,3,-48,-3,-71xm61,-34v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:120},"\uf0f2":{d:"37,-89v2,-25,13,-67,-23,-53v-19,7,-16,-16,-14,-31r120,2v-3,9,8,23,0,29v-18,1,-37,-7,-51,-3v8,3,16,9,12,22v-5,3,-12,13,-7,18v2,-2,10,-7,6,5r1,87v-16,0,-28,-1,-41,-5v-1,-25,3,-48,-3,-71xm61,-34v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:120},"\u0442":{d:"37,-89v2,-25,13,-67,-23,-53v-19,7,-16,-16,-14,-31r120,2v-3,9,8,23,0,29v-18,1,-37,-7,-51,-3v8,3,16,9,12,22v-5,3,-12,13,-7,18v2,-2,10,-7,6,5r1,87v-16,0,-28,-1,-41,-5v-1,-25,3,-48,-3,-71xm61,-34v5,1,2,-5,3,-8v-5,-1,-2,5,-3,8",w:120},"\u00f3":{d:"49,48v-15,-11,11,-33,-5,-49v-20,-44,-30,-97,-49,-141v16,1,30,4,49,3v7,21,12,36,1,53v1,7,4,8,7,1v1,-3,2,-5,2,-6v11,14,10,41,20,56v8,-1,8,0,8,-5v-14,0,3,-22,-6,-30v11,-29,-6,-81,47,-72v16,-2,8,11,6,19v-10,53,-25,108,-39,157v-11,14,-5,38,-29,41v-12,6,-33,4,-43,1v1,-12,1,-23,0,-34v10,4,18,4,31,6xm82,4v8,1,9,-7,2,-7v-2,1,-2,3,-2,7",w:130},"\uf0f3":{d:"49,48v-15,-11,11,-33,-5,-49v-20,-44,-30,-97,-49,-141v16,1,30,4,49,3v7,21,12,36,1,53v1,7,4,8,7,1v1,-3,2,-5,2,-6v11,14,10,41,20,56v8,-1,8,0,8,-5v-14,0,3,-22,-6,-30v11,-29,-6,-81,47,-72v16,-2,8,11,6,19v-10,53,-25,108,-39,157v-11,14,-5,38,-29,41v-12,6,-33,4,-43,1v1,-12,1,-23,0,-34v10,4,18,4,31,6xm82,4v8,1,9,-7,2,-7v-2,1,-2,3,-2,7",w:130},"\u0443":{d:"49,48v-15,-11,11,-33,-5,-49v-20,-44,-30,-97,-49,-141v16,1,30,4,49,3v7,21,12,36,1,53v1,7,4,8,7,1v1,-3,2,-5,2,-6v11,14,10,41,20,56v8,-1,8,0,8,-5v-14,0,3,-22,-6,-30v11,-29,-6,-81,47,-72v16,-2,8,11,6,19v-10,53,-25,108,-39,157v-11,14,-5,38,-29,41v-12,6,-33,4,-43,1v1,-12,1,-23,0,-34v10,4,18,4,31,6xm82,4v8,1,9,-7,2,-7v-2,1,-2,3,-2,7",w:130},"\u00f4":{d:"64,-168v30,10,15,-30,20,-56v4,1,11,-1,9,6v12,0,17,-9,31,-3r0,54v61,-2,91,63,71,123v-8,27,-42,44,-71,45v3,17,0,34,-2,51v-6,1,-12,-4,-18,-4v-5,3,-14,5,-22,2v2,-16,2,-34,0,-51v-37,-3,-68,-13,-71,-50v-20,-47,7,-115,53,-117xm108,-197v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm106,-183v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm163,-143v0,5,1,7,5,7r0,-15v-4,0,-5,3,-5,8xm41,-97r4,33v13,4,19,32,35,29v9,-26,1,-66,5,-100v-20,-3,-39,24,-35,51v-5,-2,-1,-13,-9,-13xm156,-77v8,-23,-3,-64,-32,-58r0,101v19,-1,37,-19,32,-43xm187,-115v-4,-1,-4,11,-10,10v-1,-6,4,-18,-5,-16v2,8,-6,23,7,21v5,0,8,-5,8,-15xm103,-4v1,-22,15,11,15,-7v-5,-12,-24,-8,-22,8v0,3,5,4,13,4v1,-5,-2,-6,-6,-5",w:209},"\uf0f4":{d:"64,-168v30,10,15,-30,20,-56v4,1,11,-1,9,6v12,0,17,-9,31,-3r0,54v61,-2,91,63,71,123v-8,27,-42,44,-71,45v3,17,0,34,-2,51v-6,1,-12,-4,-18,-4v-5,3,-14,5,-22,2v2,-16,2,-34,0,-51v-37,-3,-68,-13,-71,-50v-20,-47,7,-115,53,-117xm108,-197v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm106,-183v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm163,-143v0,5,1,7,5,7r0,-15v-4,0,-5,3,-5,8xm41,-97r4,33v13,4,19,32,35,29v9,-26,1,-66,5,-100v-20,-3,-39,24,-35,51v-5,-2,-1,-13,-9,-13xm156,-77v8,-23,-3,-64,-32,-58r0,101v19,-1,37,-19,32,-43xm187,-115v-4,-1,-4,11,-10,10v-1,-6,4,-18,-5,-16v2,8,-6,23,7,21v5,0,8,-5,8,-15xm103,-4v1,-22,15,11,15,-7v-5,-12,-24,-8,-22,8v0,3,5,4,13,4v1,-5,-2,-6,-6,-5",w:209},"\u0444":{d:"64,-168v30,10,15,-30,20,-56v4,1,11,-1,9,6v12,0,17,-9,31,-3r0,54v61,-2,91,63,71,123v-8,27,-42,44,-71,45v3,17,0,34,-2,51v-6,1,-12,-4,-18,-4v-5,3,-14,5,-22,2v2,-16,2,-34,0,-51v-37,-3,-68,-13,-71,-50v-20,-47,7,-115,53,-117xm108,-197v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm106,-183v5,1,3,-4,3,-7v-5,-1,-3,4,-3,7xm163,-143v0,5,1,7,5,7r0,-15v-4,0,-5,3,-5,8xm41,-97r4,33v13,4,19,32,35,29v9,-26,1,-66,5,-100v-20,-3,-39,24,-35,51v-5,-2,-1,-13,-9,-13xm156,-77v8,-23,-3,-64,-32,-58r0,101v19,-1,37,-19,32,-43xm187,-115v-4,-1,-4,11,-10,10v-1,-6,4,-18,-5,-16v2,8,-6,23,7,21v5,0,8,-5,8,-15xm103,-4v1,-22,15,11,15,-7v-5,-12,-24,-8,-22,8v0,3,5,4,13,4v1,-5,-2,-6,-6,-5",w:209},"\u00f5":{d:"41,-78v-8,-23,-34,-44,-36,-69v11,-9,49,-13,45,12v4,5,8,26,14,29v13,-12,11,-37,22,-51v13,2,27,0,42,-1r-33,69v-6,2,-19,8,-14,14v1,0,4,-1,8,-4v11,28,30,59,45,84r-45,0v-13,-10,-11,-48,-25,-56v-8,17,-15,39,-24,54v0,0,-4,0,-11,-2v4,-9,-2,-19,3,-28v-14,5,-10,36,-35,27v15,-23,27,-57,44,-78xm97,-123v5,1,2,-6,3,-9v-5,-1,-2,6,-3,9xm79,-55v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm37,-37v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:128},"\uf0f5":{d:"41,-78v-8,-23,-34,-44,-36,-69v11,-9,49,-13,45,12v4,5,8,26,14,29v13,-12,11,-37,22,-51v13,2,27,0,42,-1r-33,69v-6,2,-19,8,-14,14v1,0,4,-1,8,-4v11,28,30,59,45,84r-45,0v-13,-10,-11,-48,-25,-56v-8,17,-15,39,-24,54v0,0,-4,0,-11,-2v4,-9,-2,-19,3,-28v-14,5,-10,36,-35,27v15,-23,27,-57,44,-78xm97,-123v5,1,2,-6,3,-9v-5,-1,-2,6,-3,9xm79,-55v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm37,-37v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:128},"\u0445":{d:"41,-78v-8,-23,-34,-44,-36,-69v11,-9,49,-13,45,12v4,5,8,26,14,29v13,-12,11,-37,22,-51v13,2,27,0,42,-1r-33,69v-6,2,-19,8,-14,14v1,0,4,-1,8,-4v11,28,30,59,45,84r-45,0v-13,-10,-11,-48,-25,-56v-8,17,-15,39,-24,54v0,0,-4,0,-11,-2v4,-9,-2,-19,3,-28v-14,5,-10,36,-35,27v15,-23,27,-57,44,-78xm97,-123v5,1,2,-6,3,-9v-5,-1,-2,6,-3,9xm79,-55v3,0,6,1,5,-3v-3,0,-6,-1,-5,3xm37,-37v3,0,5,0,4,-3v-3,0,-5,0,-4,3",w:128},"\u00f6":{d:"14,-122v-1,-14,-1,-36,0,-48r41,-1v-5,36,4,75,-2,106v2,10,-4,24,10,22v34,9,44,-24,30,-56v9,-21,-4,-53,6,-71v6,2,17,-1,20,4r0,21v8,-1,5,-12,7,-18v25,5,2,49,13,65v2,20,-16,58,12,59v12,1,4,17,2,24v4,-1,7,-4,4,3v0,11,1,31,-2,43r-37,0v5,-9,1,-17,-1,-26v3,-6,16,-18,2,-20v-13,8,-45,2,-66,4v-14,-4,-37,5,-40,-8r0,-41v3,7,-1,22,8,23v-1,-32,-11,-34,-8,-66v1,-13,7,-13,19,-17r0,-5v-7,-1,-10,4,-18,3xm21,-87v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11xm83,-22v5,1,8,0,7,-6v-5,0,-7,2,-7,6"},"\uf0f6":{d:"14,-122v-1,-14,-1,-36,0,-48r41,-1v-5,36,4,75,-2,106v2,10,-4,24,10,22v34,9,44,-24,30,-56v9,-21,-4,-53,6,-71v6,2,17,-1,20,4r0,21v8,-1,5,-12,7,-18v25,5,2,49,13,65v2,20,-16,58,12,59v12,1,4,17,2,24v4,-1,7,-4,4,3v0,11,1,31,-2,43r-37,0v5,-9,1,-17,-1,-26v3,-6,16,-18,2,-20v-13,8,-45,2,-66,4v-14,-4,-37,5,-40,-8r0,-41v3,7,-1,22,8,23v-1,-32,-11,-34,-8,-66v1,-13,7,-13,19,-17r0,-5v-7,-1,-10,4,-18,3xm21,-87v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11xm83,-22v5,1,8,0,7,-6v-5,0,-7,2,-7,6"},"\u0446":{d:"14,-122v-1,-14,-1,-36,0,-48r41,-1v-5,36,4,75,-2,106v2,10,-4,24,10,22v34,9,44,-24,30,-56v9,-21,-4,-53,6,-71v6,2,17,-1,20,4r0,21v8,-1,5,-12,7,-18v25,5,2,49,13,65v2,20,-16,58,12,59v12,1,4,17,2,24v4,-1,7,-4,4,3v0,11,1,31,-2,43r-37,0v5,-9,1,-17,-1,-26v3,-6,16,-18,2,-20v-13,8,-45,2,-66,4v-14,-4,-37,5,-40,-8r0,-41v3,7,-1,22,8,23v-1,-32,-11,-34,-8,-66v1,-13,7,-13,19,-17r0,-5v-7,-1,-10,4,-18,3xm21,-87v6,1,2,-7,3,-11v-6,-1,-2,7,-3,11xm83,-22v5,1,8,0,7,-6v-5,0,-7,2,-7,6"},"\u00f7":{d:"48,-111v2,14,23,12,34,9v-7,-21,5,-48,0,-66v24,-11,48,1,40,36v-9,37,7,89,-1,118v-8,5,-20,-8,-20,5v-9,-1,-21,6,-20,-7v1,-16,-1,-35,1,-50v-44,3,-90,-12,-74,-64v-3,-12,-1,-25,0,-38v14,-1,24,3,36,0v10,8,-4,36,6,44v-11,-1,-10,22,-5,27xm22,-129v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm98,-79v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm105,-60v-5,-1,-14,2,-6,5r0,24v9,0,4,-18,6,-29",w:138},"\uf0f7":{d:"48,-111v2,14,23,12,34,9v-7,-21,5,-48,0,-66v24,-11,48,1,40,36v-9,37,7,89,-1,118v-8,5,-20,-8,-20,5v-9,-1,-21,6,-20,-7v1,-16,-1,-35,1,-50v-44,3,-90,-12,-74,-64v-3,-12,-1,-25,0,-38v14,-1,24,3,36,0v10,8,-4,36,6,44v-11,-1,-10,22,-5,27xm22,-129v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm98,-79v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm105,-60v-5,-1,-14,2,-6,5r0,24v9,0,4,-18,6,-29",w:138},"\u0447":{d:"48,-111v2,14,23,12,34,9v-7,-21,5,-48,0,-66v24,-11,48,1,40,36v-9,37,7,89,-1,118v-8,5,-20,-8,-20,5v-9,-1,-21,6,-20,-7v1,-16,-1,-35,1,-50v-44,3,-90,-12,-74,-64v-3,-12,-1,-25,0,-38v14,-1,24,3,36,0v10,8,-4,36,6,44v-11,-1,-10,22,-5,27xm22,-129v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm98,-79v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm105,-60v-5,-1,-14,2,-6,5r0,24v9,0,4,-18,6,-29",w:138},"\u00f8":{d:"90,-28v-2,-32,4,-68,-2,-85v3,-13,2,-28,2,-44v2,2,12,1,13,4v2,4,-1,14,6,14r0,-16v7,1,18,0,22,2r-1,122v12,5,44,12,38,-17v-6,-30,-1,-80,0,-109v12,0,15,11,32,8v1,-6,-7,-4,-10,-6v12,0,26,-3,18,15r-2,89v1,13,7,38,0,54r-167,-2v-18,9,-35,-6,-26,-27r2,-130v12,5,29,-1,40,3v-4,33,0,56,2,88v1,11,-18,21,-7,30v1,0,2,-10,5,-9r0,15xm174,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm185,-40v8,-7,11,-26,12,-40v-9,7,-11,26,-12,40xm106,-32v5,0,8,-2,8,-5v-6,0,-8,1,-8,5xm89,-4v11,-3,32,1,27,-19v-4,0,-6,3,-5,9v-7,0,-22,4,-22,10",w:224},"\uf0f8":{d:"90,-28v-2,-32,4,-68,-2,-85v3,-13,2,-28,2,-44v2,2,12,1,13,4v2,4,-1,14,6,14r0,-16v7,1,18,0,22,2r-1,122v12,5,44,12,38,-17v-6,-30,-1,-80,0,-109v12,0,15,11,32,8v1,-6,-7,-4,-10,-6v12,0,26,-3,18,15r-2,89v1,13,7,38,0,54r-167,-2v-18,9,-35,-6,-26,-27r2,-130v12,5,29,-1,40,3v-4,33,0,56,2,88v1,11,-18,21,-7,30v1,0,2,-10,5,-9r0,15xm174,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm185,-40v8,-7,11,-26,12,-40v-9,7,-11,26,-12,40xm106,-32v5,0,8,-2,8,-5v-6,0,-8,1,-8,5xm89,-4v11,-3,32,1,27,-19v-4,0,-6,3,-5,9v-7,0,-22,4,-22,10",w:224},"\u0448":{d:"90,-28v-2,-32,4,-68,-2,-85v3,-13,2,-28,2,-44v2,2,12,1,13,4v2,4,-1,14,6,14r0,-16v7,1,18,0,22,2r-1,122v12,5,44,12,38,-17v-6,-30,-1,-80,0,-109v12,0,15,11,32,8v1,-6,-7,-4,-10,-6v12,0,26,-3,18,15r-2,89v1,13,7,38,0,54r-167,-2v-18,9,-35,-6,-26,-27r2,-130v12,5,29,-1,40,3v-4,33,0,56,2,88v1,11,-18,21,-7,30v1,0,2,-10,5,-9r0,15xm174,-147v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm185,-40v8,-7,11,-26,12,-40v-9,7,-11,26,-12,40xm106,-32v5,0,8,-2,8,-5v-6,0,-8,1,-8,5xm89,-4v11,-3,32,1,27,-19v-4,0,-6,3,-5,9v-7,0,-22,4,-22,10",w:224},"\u00f9":{d:"13,-152v46,-10,45,21,40,65v7,1,-3,51,-3,25v-10,-1,-3,12,-5,18v18,-3,4,12,10,18v18,-2,43,9,34,-22v5,-35,-3,-70,1,-105r39,0v4,33,-4,74,3,109v-7,16,6,22,25,20v21,-2,2,-42,9,-66v4,-1,13,3,11,-4v-21,-6,-6,-36,-12,-58v15,-1,30,-2,43,-2v-5,39,5,76,-2,106r4,22r19,4r0,13v-7,4,-12,4,-9,10v2,0,7,-2,8,0v-2,15,-4,30,-2,46r-34,2v0,-6,0,-20,5,-25v-3,-5,-6,-10,-7,-18v-11,-2,-25,-9,-32,-1r-143,-3v-7,-22,3,-68,-4,-92v10,-16,-5,-42,2,-62xm185,-120v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4",w:227},"\uf0f9":{d:"13,-152v46,-10,45,21,40,65v7,1,-3,51,-3,25v-10,-1,-3,12,-5,18v18,-3,4,12,10,18v18,-2,43,9,34,-22v5,-35,-3,-70,1,-105r39,0v4,33,-4,74,3,109v-7,16,6,22,25,20v21,-2,2,-42,9,-66v4,-1,13,3,11,-4v-21,-6,-6,-36,-12,-58v15,-1,30,-2,43,-2v-5,39,5,76,-2,106r4,22r19,4r0,13v-7,4,-12,4,-9,10v2,0,7,-2,8,0v-2,15,-4,30,-2,46r-34,2v0,-6,0,-20,5,-25v-3,-5,-6,-10,-7,-18v-11,-2,-25,-9,-32,-1r-143,-3v-7,-22,3,-68,-4,-92v10,-16,-5,-42,2,-62xm185,-120v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4",w:227},"\u0449":{d:"13,-152v46,-10,45,21,40,65v7,1,-3,51,-3,25v-10,-1,-3,12,-5,18v18,-3,4,12,10,18v18,-2,43,9,34,-22v5,-35,-3,-70,1,-105r39,0v4,33,-4,74,3,109v-7,16,6,22,25,20v21,-2,2,-42,9,-66v4,-1,13,3,11,-4v-21,-6,-6,-36,-12,-58v15,-1,30,-2,43,-2v-5,39,5,76,-2,106r4,22r19,4r0,13v-7,4,-12,4,-9,10v2,0,7,-2,8,0v-2,15,-4,30,-2,46r-34,2v0,-6,0,-20,5,-25v-3,-5,-6,-10,-7,-18v-11,-2,-25,-9,-32,-1r-143,-3v-7,-22,3,-68,-4,-92v10,-16,-5,-42,2,-62xm185,-120v3,1,5,-1,4,-4v-3,-1,-5,1,-4,4",w:227},"\u00fa":{d:"32,-95v-7,-16,13,-56,-19,-50v-3,0,-4,1,-3,5r-13,0v3,-9,4,-22,2,-31v21,4,48,-4,74,-2v-5,16,2,36,0,57v12,0,26,4,35,0v27,7,42,27,42,56v0,62,-59,46,-113,49v-16,-6,1,-35,-8,-50v1,-12,13,-31,11,-41v-6,-1,-8,3,-8,7xm112,-84v-2,-4,-9,9,-17,2r-22,0v-2,12,-3,25,0,37v14,0,25,1,32,-6r0,-21v5,-3,7,-6,7,-12xm49,-57v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm51,-41v2,-3,1,-7,-4,-6v0,3,1,10,4,6xm125,-40v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm128,-32v-6,-4,-4,-11,-13,-10v3,11,-14,14,6,15v5,-1,7,-3,7,-5",w:153},"\uf0fa":{d:"32,-95v-7,-16,13,-56,-19,-50v-3,0,-4,1,-3,5r-13,0v3,-9,4,-22,2,-31v21,4,48,-4,74,-2v-5,16,2,36,0,57v12,0,26,4,35,0v27,7,42,27,42,56v0,62,-59,46,-113,49v-16,-6,1,-35,-8,-50v1,-12,13,-31,11,-41v-6,-1,-8,3,-8,7xm112,-84v-2,-4,-9,9,-17,2r-22,0v-2,12,-3,25,0,37v14,0,25,1,32,-6r0,-21v5,-3,7,-6,7,-12xm49,-57v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm51,-41v2,-3,1,-7,-4,-6v0,3,1,10,4,6xm125,-40v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm128,-32v-6,-4,-4,-11,-13,-10v3,11,-14,14,6,15v5,-1,7,-3,7,-5",w:153},"\u044a":{d:"32,-95v-7,-16,13,-56,-19,-50v-3,0,-4,1,-3,5r-13,0v3,-9,4,-22,2,-31v21,4,48,-4,74,-2v-5,16,2,36,0,57v12,0,26,4,35,0v27,7,42,27,42,56v0,62,-59,46,-113,49v-16,-6,1,-35,-8,-50v1,-12,13,-31,11,-41v-6,-1,-8,3,-8,7xm112,-84v-2,-4,-9,9,-17,2r-22,0v-2,12,-3,25,0,37v14,0,25,1,32,-6r0,-21v5,-3,7,-6,7,-12xm49,-57v4,1,3,-3,3,-6v-4,-1,-3,3,-3,6xm51,-41v2,-3,1,-7,-4,-6v0,3,1,10,4,6xm125,-40v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm128,-32v-6,-4,-4,-11,-13,-10v3,11,-14,14,6,15v5,-1,7,-3,7,-5",w:153},"\u00fb":{d:"140,-9v3,-48,-5,-91,2,-138v-6,-3,-1,-16,-2,-21v0,0,24,5,41,-2r0,50v-2,14,-16,19,-16,35v7,0,9,-21,17,-9v-1,28,-4,57,-1,85r-41,0xm14,-9r0,-159v13,10,39,-10,39,16v4,11,1,30,-8,32r0,5v1,1,13,-10,10,2v43,1,84,4,74,63v5,48,-62,42,-115,41xm112,-73v0,-5,-6,-20,-10,-14v0,9,3,14,10,14xm83,-45v12,-16,-3,-45,-28,-34v-5,11,-1,24,1,35v9,-2,23,5,27,-1xm43,-27v3,-1,14,-25,1,-20r0,7r-16,0v0,9,5,13,15,13xm97,-33v7,1,8,-3,7,-7v-5,-4,-7,0,-7,7xm37,-35v2,-2,3,-1,3,1v-2,2,-3,1,-3,-1",w:196},"\uf0fb":{d:"140,-9v3,-48,-5,-91,2,-138v-6,-3,-1,-16,-2,-21v0,0,24,5,41,-2r0,50v-2,14,-16,19,-16,35v7,0,9,-21,17,-9v-1,28,-4,57,-1,85r-41,0xm14,-9r0,-159v13,10,39,-10,39,16v4,11,1,30,-8,32r0,5v1,1,13,-10,10,2v43,1,84,4,74,63v5,48,-62,42,-115,41xm112,-73v0,-5,-6,-20,-10,-14v0,9,3,14,10,14xm83,-45v12,-16,-3,-45,-28,-34v-5,11,-1,24,1,35v9,-2,23,5,27,-1xm43,-27v3,-1,14,-25,1,-20r0,7r-16,0v0,9,5,13,15,13xm97,-33v7,1,8,-3,7,-7v-5,-4,-7,0,-7,7xm37,-35v2,-2,3,-1,3,1v-2,2,-3,1,-3,-1",w:196},"\u044b":{d:"140,-9v3,-48,-5,-91,2,-138v-6,-3,-1,-16,-2,-21v0,0,24,5,41,-2r0,50v-2,14,-16,19,-16,35v7,0,9,-21,17,-9v-1,28,-4,57,-1,85r-41,0xm14,-9r0,-159v13,10,39,-10,39,16v4,11,1,30,-8,32r0,5v1,1,13,-10,10,2v43,1,84,4,74,63v5,48,-62,42,-115,41xm112,-73v0,-5,-6,-20,-10,-14v0,9,3,14,10,14xm83,-45v12,-16,-3,-45,-28,-34v-5,11,-1,24,1,35v9,-2,23,5,27,-1xm43,-27v3,-1,14,-25,1,-20r0,7r-16,0v0,9,5,13,15,13xm97,-33v7,1,8,-3,7,-7v-5,-4,-7,0,-7,7xm37,-35v2,-2,3,-1,3,1v-2,2,-3,1,-3,-1",w:196},"\u00fc":{d:"13,-155v14,0,28,2,39,4v8,18,-11,53,14,53v49,0,70,20,63,72v-4,11,-12,26,-27,17v-4,19,-57,9,-88,12v-4,-52,1,-113,-1,-158xm42,-119v3,0,8,-1,6,-5v-3,0,-8,-4,-8,0v0,3,1,5,2,5xm34,-96v0,-4,-4,-22,-8,-15v0,10,2,15,8,15xm77,-77v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm87,-51v0,-20,-22,-19,-42,-19v-1,7,10,-2,9,12v-2,17,-4,34,21,29v7,-1,12,-13,12,-22xm109,-58v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm110,-48v-7,0,-4,16,-12,14r0,9v11,0,11,-11,12,-23xm21,-25v-3,13,16,20,15,3r0,-18r-5,0r0,19",w:135},"\uf0fc":{d:"13,-155v14,0,28,2,39,4v8,18,-11,53,14,53v49,0,70,20,63,72v-4,11,-12,26,-27,17v-4,19,-57,9,-88,12v-4,-52,1,-113,-1,-158xm42,-119v3,0,8,-1,6,-5v-3,0,-8,-4,-8,0v0,3,1,5,2,5xm34,-96v0,-4,-4,-22,-8,-15v0,10,2,15,8,15xm77,-77v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm87,-51v0,-20,-22,-19,-42,-19v-1,7,10,-2,9,12v-2,17,-4,34,21,29v7,-1,12,-13,12,-22xm109,-58v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm110,-48v-7,0,-4,16,-12,14r0,9v11,0,11,-11,12,-23xm21,-25v-3,13,16,20,15,3r0,-18r-5,0r0,19",w:135},"\u044c":{d:"13,-155v14,0,28,2,39,4v8,18,-11,53,14,53v49,0,70,20,63,72v-4,11,-12,26,-27,17v-4,19,-57,9,-88,12v-4,-52,1,-113,-1,-158xm42,-119v3,0,8,-1,6,-5v-3,0,-8,-4,-8,0v0,3,1,5,2,5xm34,-96v0,-4,-4,-22,-8,-15v0,10,2,15,8,15xm77,-77v3,1,3,-1,3,-4v-3,-1,-3,1,-3,4xm87,-51v0,-20,-22,-19,-42,-19v-1,7,10,-2,9,12v-2,17,-4,34,21,29v7,-1,12,-13,12,-22xm109,-58v3,0,5,0,4,-3v-3,0,-5,0,-4,3xm110,-48v-7,0,-4,16,-12,14r0,9v11,0,11,-11,12,-23xm21,-25v-3,13,16,20,15,3r0,-18r-5,0r0,19",w:135},"\u00fd":{d:"49,-108v0,20,-25,-2,-33,5v-19,-4,2,-30,2,-39v16,-10,32,-27,57,-19v-1,4,-8,10,1,9v44,-27,71,48,65,104v-8,70,-125,74,-134,9v-4,-21,21,-15,41,-18v0,15,5,26,14,33v-3,2,-9,1,-8,6v12,1,18,-8,28,-3v11,-6,19,-20,17,-39r-40,0r0,-32r46,0v-11,-9,-7,-41,-29,-39v-1,1,-2,2,-1,4v-21,-2,-20,6,-26,19xm120,-103v0,-7,12,-20,0,-23v-1,8,-4,13,-4,23r4,0xm125,-61v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:150},"\uf0fd":{d:"49,-108v0,20,-25,-2,-33,5v-19,-4,2,-30,2,-39v16,-10,32,-27,57,-19v-1,4,-8,10,1,9v44,-27,71,48,65,104v-8,70,-125,74,-134,9v-4,-21,21,-15,41,-18v0,15,5,26,14,33v-3,2,-9,1,-8,6v12,1,18,-8,28,-3v11,-6,19,-20,17,-39r-40,0r0,-32r46,0v-11,-9,-7,-41,-29,-39v-1,1,-2,2,-1,4v-21,-2,-20,6,-26,19xm120,-103v0,-7,12,-20,0,-23v-1,8,-4,13,-4,23r4,0xm125,-61v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:150},"\u044d":{d:"49,-108v0,20,-25,-2,-33,5v-19,-4,2,-30,2,-39v16,-10,32,-27,57,-19v-1,4,-8,10,1,9v44,-27,71,48,65,104v-8,70,-125,74,-134,9v-4,-21,21,-15,41,-18v0,15,5,26,14,33v-3,2,-9,1,-8,6v12,1,18,-8,28,-3v11,-6,19,-20,17,-39r-40,0r0,-32r46,0v-11,-9,-7,-41,-29,-39v-1,1,-2,2,-1,4v-21,-2,-20,6,-26,19xm120,-103v0,-7,12,-20,0,-23v-1,8,-4,13,-4,23r4,0xm125,-61v2,0,4,0,3,-3v-2,0,-4,0,-3,3",w:150},"\u00fe":{d:"67,-108v6,-47,40,-77,92,-66v15,10,38,13,33,44v22,4,19,75,3,84v-4,0,-7,-11,-8,-2v18,25,-23,44,-48,44v-46,-1,-75,-27,-70,-82v-27,10,-9,46,-16,75v-22,0,-49,5,-40,-29r1,-131v14,4,40,-10,40,12v0,19,4,43,-8,48v4,4,13,3,21,3xm156,-45v8,-29,14,-57,2,-86v2,-6,6,-10,3,-15v-4,0,-4,4,-5,7v-45,-22,-54,43,-42,84v3,9,9,27,20,16v10,2,14,-1,22,-6xm92,-51v6,-3,6,-15,3,-21v-6,-1,-2,10,-3,14v0,-1,-2,-2,-6,-2v1,5,0,11,6,9xm42,-40v-1,-9,1,-11,-5,-10v0,5,-2,12,5,10",w:214},"\uf0fe":{d:"67,-108v6,-47,40,-77,92,-66v15,10,38,13,33,44v22,4,19,75,3,84v-4,0,-7,-11,-8,-2v18,25,-23,44,-48,44v-46,-1,-75,-27,-70,-82v-27,10,-9,46,-16,75v-22,0,-49,5,-40,-29r1,-131v14,4,40,-10,40,12v0,19,4,43,-8,48v4,4,13,3,21,3xm156,-45v8,-29,14,-57,2,-86v2,-6,6,-10,3,-15v-4,0,-4,4,-5,7v-45,-22,-54,43,-42,84v3,9,9,27,20,16v10,2,14,-1,22,-6xm92,-51v6,-3,6,-15,3,-21v-6,-1,-2,10,-3,14v0,-1,-2,-2,-6,-2v1,5,0,11,6,9xm42,-40v-1,-9,1,-11,-5,-10v0,5,-2,12,5,10",w:214},"\u044e":{d:"67,-108v6,-47,40,-77,92,-66v15,10,38,13,33,44v22,4,19,75,3,84v-4,0,-7,-11,-8,-2v18,25,-23,44,-48,44v-46,-1,-75,-27,-70,-82v-27,10,-9,46,-16,75v-22,0,-49,5,-40,-29r1,-131v14,4,40,-10,40,12v0,19,4,43,-8,48v4,4,13,3,21,3xm156,-45v8,-29,14,-57,2,-86v2,-6,6,-10,3,-15v-4,0,-4,4,-5,7v-45,-22,-54,43,-42,84v3,9,9,27,20,16v10,2,14,-1,22,-6xm92,-51v6,-3,6,-15,3,-21v-6,-1,-2,10,-3,14v0,-1,-2,-2,-6,-2v1,5,0,11,6,9xm42,-40v-1,-9,1,-11,-5,-10v0,5,-2,12,5,10",w:214},"\u00ff":{d:"9,-12v5,-21,22,-32,28,-52v0,-1,-1,-2,-4,-2v3,-7,-19,-9,-20,-18v-13,-26,-10,-77,22,-78v23,-9,60,-1,91,-3v6,35,0,76,0,108v4,15,1,26,2,44v-4,12,-25,3,-41,7v-2,-19,5,-46,-5,-57v-17,7,-16,40,-29,55v-14,-2,-35,3,-44,-4xm30,-97v2,-17,8,-22,7,-40v-1,-1,-2,-2,-5,-2v3,20,-18,26,-5,42r3,0xm87,-134v-30,-7,-51,18,-32,37v16,-3,46,10,44,-14v-9,-2,-5,12,-14,8v4,-12,6,-20,2,-31xm45,-77v2,0,6,-1,5,-4v-2,0,-6,-2,-7,0v0,3,1,4,2,4xm106,-55v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm106,-24v6,0,2,-11,3,-16v-6,0,-2,11,-3,16",w:143},"\uf0ff":{d:"9,-12v5,-21,22,-32,28,-52v0,-1,-1,-2,-4,-2v3,-7,-19,-9,-20,-18v-13,-26,-10,-77,22,-78v23,-9,60,-1,91,-3v6,35,0,76,0,108v4,15,1,26,2,44v-4,12,-25,3,-41,7v-2,-19,5,-46,-5,-57v-17,7,-16,40,-29,55v-14,-2,-35,3,-44,-4xm30,-97v2,-17,8,-22,7,-40v-1,-1,-2,-2,-5,-2v3,20,-18,26,-5,42r3,0xm87,-134v-30,-7,-51,18,-32,37v16,-3,46,10,44,-14v-9,-2,-5,12,-14,8v4,-12,6,-20,2,-31xm45,-77v2,0,6,-1,5,-4v-2,0,-6,-2,-7,0v0,3,1,4,2,4xm106,-55v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm106,-24v6,0,2,-11,3,-16v-6,0,-2,11,-3,16",w:143},"\u044f":{d:"9,-12v5,-21,22,-32,28,-52v0,-1,-1,-2,-4,-2v3,-7,-19,-9,-20,-18v-13,-26,-10,-77,22,-78v23,-9,60,-1,91,-3v6,35,0,76,0,108v4,15,1,26,2,44v-4,12,-25,3,-41,7v-2,-19,5,-46,-5,-57v-17,7,-16,40,-29,55v-14,-2,-35,3,-44,-4xm30,-97v2,-17,8,-22,7,-40v-1,-1,-2,-2,-5,-2v3,20,-18,26,-5,42r3,0xm87,-134v-30,-7,-51,18,-32,37v16,-3,46,10,44,-14v-9,-2,-5,12,-14,8v4,-12,6,-20,2,-31xm45,-77v2,0,6,-1,5,-4v-2,0,-6,-2,-7,0v0,3,1,4,2,4xm106,-55v2,0,4,0,3,-3v-2,0,-4,0,-3,3xm106,-24v6,0,2,-11,3,-16v-6,0,-2,11,-3,16",w:143},"\u00a0":{w:108}}}); \ No newline at end of file diff --git a/lib/fonts/DejaVu_Serif_400.font.js b/lib/fonts/DejaVu_Serif_400.font.js deleted file mode 100644 index 5c76041f..00000000 --- a/lib/fonts/DejaVu_Serif_400.font.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * The following copyright notice may not be removed under any circumstances. - * - * Copyright: - * Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. - * DejaVu changes are in public domain - * - * - * Manufacturer: - * DejaVu fonts team - * - * Vendor URL: - * http://dejavu.sourceforge.net - * - * License information: - * http://dejavu.sourceforge.net/wiki/index.php/License - */ -Cufon.registerFont({"w":229,"face":{"font-family":"DejaVu Serif","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 6 6 3 5 6 5 2 2 4","ascent":"274","descent":"-86","x-height":"5","bbox":"-35 -345 406 85","underline-thickness":"15.8203","underline-position":"-14.9414","unicode-range":"U+0020-U+0451"},"glyphs":{" ":{"w":114},"!":{"d":"72,5v-13,0,-23,-11,-23,-23v0,-13,9,-24,23,-24v12,-1,24,11,24,24v0,12,-12,23,-24,23xm50,-262r45,0r-12,144r0,44r-21,0v1,-68,-8,-125,-12,-188","w":144},"\"":{"d":"63,-262r0,97r-28,0r0,-97r28,0xm130,-262r0,97r-28,0r0,-97r28,0","w":165},"#":{"d":"183,-158r-49,0r-15,58r50,0xm158,-258r-18,73r50,0r18,-73r30,0r-18,73r54,0r0,27r-61,0r-14,58r55,0r0,27r-62,0r-18,73r-30,0r18,-73r-50,0r-18,73r-30,0r18,-73r-54,0r0,-27r61,0r14,-58r-55,0r0,-27r62,0r18,-73r30,0","w":301},"$":{"d":"121,-12v36,2,54,-38,31,-63v-7,-7,-18,-12,-31,-16r0,79xm104,-209v-32,-1,-50,36,-29,59v6,6,16,11,29,15r0,-74xm104,5v-28,0,-51,-8,-73,-18r0,-48r19,0v1,33,20,48,54,49r0,-85v-43,-14,-73,-21,-73,-65v0,-41,31,-62,73,-64r0,-48r17,0r0,48v26,1,48,8,67,17r0,46r-20,0v-2,-27,-20,-44,-47,-46r0,80v46,15,76,21,78,67v2,43,-34,65,-78,67r0,48r-17,0r0,-48"},"%":{"d":"81,-140v44,-2,43,-109,0,-111v-45,1,-45,110,0,111xm262,-11v44,-2,43,-109,0,-111v-45,1,-45,110,0,111xm201,-66v0,-42,21,-73,61,-72v39,0,60,31,60,72v0,41,-22,71,-60,71v-39,0,-61,-30,-61,-71xm240,-267r26,0r-164,272r-26,0xm20,-196v0,-41,21,-71,60,-71v39,0,61,30,61,71v0,42,-21,73,-61,72v-39,0,-60,-31,-60,-72","w":342},"&":{"d":"92,-148v-51,33,-32,136,40,132v27,-1,48,-10,62,-25xm267,-130v-5,32,-17,58,-35,79r30,32r41,0r0,19r-70,0r-24,-25v-52,51,-190,37,-183,-56v3,-41,25,-63,54,-82v-38,-40,-7,-111,57,-104v23,2,42,6,64,12r0,45r-20,0v-3,-24,-17,-38,-44,-38v-31,0,-54,30,-35,57v29,42,81,86,116,126v14,-17,25,-39,28,-65r-32,0r0,-19r83,0r0,19r-30,0","w":320},"'":{"d":"63,-262r0,97r-28,0r0,-97r28,0","w":98},"(":{"d":"64,-109v0,75,11,119,51,148r0,17v-56,-26,-87,-82,-87,-165v0,-83,31,-139,87,-165r0,18v-40,28,-51,73,-51,147","w":140},")":{"d":"25,-274v57,26,87,82,87,165v0,83,-30,139,-87,165r0,-17v40,-29,51,-73,51,-148v0,-74,-11,-118,-51,-147r0,-18","w":140},"*":{"d":"174,-217r-69,32r69,32r-13,21r-61,-38r2,67r-24,0r2,-67r-61,38r-13,-21r69,-32r-69,-32r13,-21r61,38r-2,-67r24,0r-2,67r61,-38","w":180},"+":{"d":"165,-226r0,99r98,0r0,28r-98,0r0,99r-28,0r0,-99r-99,0r0,-28r99,0r0,-99r28,0","w":301},",":{"d":"13,35v22,-17,33,-37,32,-75r35,0v-4,45,-21,69,-53,89","w":114},"-":{"d":"16,-110r90,0r0,27r-90,0r0,-27","w":121,"k":{"T":13,"V":26,"W":20,"X":13,"Y":40}},".":{"d":"57,5v-13,0,-23,-11,-23,-23v0,-13,9,-24,23,-24v12,-1,24,11,24,24v0,12,-12,23,-24,23","w":114},"\/":{"d":"93,-262r28,0r-93,295r-28,0","w":121},"0":{"d":"114,-250v-70,0,-59,155,-40,208v8,21,22,30,40,30v47,0,54,-56,54,-119v0,-63,-6,-119,-54,-119xm205,-131v0,75,-25,136,-91,136v-64,0,-90,-62,-90,-136v0,-74,26,-136,90,-136v66,0,91,62,91,136"},"1":{"d":"51,0r0,-19r46,0r0,-218r-53,34r0,-23r64,-41r24,0r0,248r46,0r0,19r-127,0"},"2":{"d":"101,-250v-35,1,-51,17,-55,50r-20,0r0,-47v55,-35,166,-26,164,54v-2,54,-88,122,-126,164r109,0r0,-32r21,0r0,61r-170,0r0,-19v37,-40,91,-82,118,-128v23,-40,11,-106,-41,-103"},"3":{"d":"107,-250v-32,0,-49,16,-52,45r-20,0r0,-46v54,-25,159,-26,157,47v0,35,-26,54,-58,61v40,4,66,30,68,72v4,84,-116,90,-175,58r0,-51r20,0v2,34,23,53,60,52v36,0,58,-22,58,-58v1,-47,-28,-67,-79,-63r0,-18v43,1,70,-11,70,-51v-1,-31,-17,-48,-49,-48"},"4":{"d":"126,-89r0,-140r-90,140r90,0xm203,0r-120,0r0,-19r43,0r0,-51r-115,0r0,-19r115,-178r35,0r0,178r50,0r0,19r-50,0r0,51r42,0r0,19"},"5":{"d":"164,-83v6,-69,-74,-91,-107,-48r-15,0r0,-131r139,0r0,28r-120,0r0,76v57,-34,148,2,140,75v8,88,-105,107,-170,70r0,-51r19,0v1,34,22,52,57,52v39,-1,53,-29,57,-71"},"6":{"d":"66,-85v0,40,15,73,52,73v37,0,51,-30,51,-71v0,-41,-14,-69,-51,-70v-37,0,-53,28,-52,68xm173,-213v-2,-47,-77,-46,-95,-11v-9,18,-18,44,-18,80v44,-53,146,-23,146,61v0,54,-36,89,-90,88v-66,-1,-92,-55,-92,-128v0,-109,69,-170,169,-134r0,44r-20,0"},"7":{"d":"203,-245r-103,245r-26,0r98,-234r-121,0r0,33r-21,0r0,-61r173,0r0,17"},"8":{"d":"114,-12v35,0,54,-23,54,-60v0,-37,-19,-59,-54,-59v-35,0,-53,23,-53,59v0,37,18,60,53,60xm114,-148v30,0,46,-20,46,-51v0,-31,-16,-51,-46,-51v-29,0,-46,21,-46,51v0,30,17,50,46,51xm196,-199v-1,35,-21,53,-54,59v37,5,62,28,63,68v0,52,-37,77,-91,77v-54,0,-90,-25,-90,-77v0,-40,27,-63,64,-68v-33,-6,-54,-24,-55,-59v-1,-45,35,-68,81,-68v47,0,83,23,82,68"},"9":{"d":"56,-49v3,47,76,46,95,11v10,-18,17,-44,17,-80v-44,54,-145,22,-145,-61v0,-54,36,-89,90,-88v66,1,92,55,92,128v0,108,-68,170,-169,134r0,-44r20,0xm163,-177v0,-40,-15,-73,-52,-73v-37,0,-51,30,-51,71v0,41,14,69,51,70v37,0,53,-28,52,-68"},":":{"d":"61,5v-14,0,-23,-10,-24,-23v-1,-13,11,-25,24,-24v13,0,23,12,23,24v0,13,-10,23,-23,23xm61,-110v-13,0,-24,-10,-24,-23v0,-13,11,-23,24,-23v14,0,23,9,23,23v0,14,-9,23,-23,23","w":121},";":{"d":"13,35v22,-17,33,-37,32,-75r35,0v-4,45,-21,69,-53,89xm62,-110v-13,0,-24,-10,-24,-23v0,-13,11,-23,24,-23v12,0,23,12,23,23v0,12,-10,23,-23,23","w":121},"<":{"d":"263,-179r-182,66r182,67r0,29r-225,-81r0,-29r225,-82r0,30","w":301},"=":{"d":"38,-163r225,0r0,28r-225,0r0,-28xm38,-91r225,0r0,28r-225,0r0,-28","w":301},">":{"d":"38,-179r0,-30r225,82r0,29r-225,81r0,-29r183,-67","w":301},"?":{"d":"87,5v-13,0,-24,-10,-24,-23v-1,-13,11,-25,24,-24v12,0,23,11,23,24v0,11,-12,23,-23,23xm91,-250v-29,0,-45,19,-50,45r-17,0r0,-46v55,-30,154,-19,152,53v-2,50,-32,73,-78,84r0,44r-22,0r0,-57v38,-9,61,-30,63,-71v1,-31,-18,-52,-48,-52","w":193},"@":{"d":"187,-253v87,0,145,51,148,136v2,63,-43,102,-107,102r-1,-29v-32,56,-121,23,-121,-50v0,-44,26,-80,69,-79v25,0,40,11,52,28r0,-25r28,0r0,136v38,-8,63,-40,63,-84v0,-74,-54,-117,-128,-117v-86,0,-136,55,-136,140v0,88,52,139,136,139v34,0,59,-9,79,-26r9,12v-24,21,-55,33,-96,33v-94,0,-158,-61,-158,-158v0,-96,64,-158,163,-158xm182,-36v34,0,45,-28,45,-68v0,-29,-18,-49,-45,-49v-31,0,-45,25,-45,59v0,34,14,57,45,58","w":360},"A":{"d":"72,-95r96,0r-48,-125xm-2,0r0,-19r23,0r93,-243r30,0r94,243r25,0r0,19r-95,0r0,-19r29,0r-22,-57r-110,0r-22,57r29,0r0,19r-74,0","w":259,"k":{"T":20,"V":18,"W":15,"Y":15,"f":6,"t":6,"v":15,"w":16,"y":15}},"B":{"d":"202,-76v0,-62,-54,-58,-113,-57r0,114v59,1,113,6,113,-57xm189,-198v0,-52,-50,-46,-100,-46r0,92v50,0,100,6,100,-46xm243,-76v4,100,-128,72,-223,76r0,-19r33,0r0,-225r-33,0r0,-18v85,6,211,-27,209,64v-1,34,-21,51,-54,55v40,5,67,25,68,67","w":264,"k":{"-":-7,"C":-7,"G":-7,"O":-7,"Y":6}},"C":{"d":"146,-14v42,0,65,-20,75,-55r33,0v-15,45,-49,76,-108,74v-80,-2,-124,-55,-126,-136v-2,-79,51,-137,129,-136v37,0,67,10,98,22r0,61r-20,0v-8,-43,-31,-64,-81,-64v-64,1,-86,48,-86,117v0,68,23,117,86,117","w":275,"k":{",":13,".":13}},"D":{"d":"227,-131v0,-83,-48,-121,-138,-113r0,225v89,7,138,-29,138,-112xm268,-131v0,84,-57,132,-144,131r-104,0r0,-19r33,0r0,-225r-33,0r0,-18r104,0v88,-1,144,46,144,131","w":288,"k":{",":13,"-":-7,".":13,"V":6}},"E":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r211,0r0,58r-21,0r0,-37r-121,0r0,88r86,0r0,-33r22,0r0,87r-22,0r0,-32r-86,0r0,109r123,0r0,-36r22,0r0,58r-214,0","w":262,"k":{"-":-7}},"F":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r215,0r0,58r-22,0r0,-37r-124,0r0,88r90,0r0,-33r21,0r0,87r-21,0r0,-32r-90,0r0,112r42,0r0,19r-111,0","w":249,"k":{",":56,"-":16,".":56,":":13,";":13,"A":31,"a":24,"e":20,"o":20}},"G":{"d":"153,-267v37,1,67,9,97,21r0,62r-20,0v-7,-43,-31,-64,-80,-64v-66,0,-90,46,-90,117v0,71,25,117,91,117v29,0,53,-7,73,-19r0,-68r-50,0r0,-19r85,0r0,98v-30,16,-64,27,-108,27v-80,1,-131,-56,-131,-136v0,-80,53,-138,133,-136","w":287,"k":{",":13,"-":-7,".":13,"Y":6}},"H":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,91r136,0r0,-91r-33,0r0,-18r102,0r0,18r-33,0r0,225r33,0r0,19r-102,0r0,-19r33,0r0,-112r-136,0r0,112r33,0r0,19r-102,0","w":313},"I":{"d":"89,-19r33,0r0,19r-102,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,225","w":142},"J":{"d":"94,-7v11,79,-67,97,-124,70r0,-41r20,0v0,22,9,34,31,34v35,-2,38,-22,38,-65r0,-235r-41,0r0,-18r110,0r0,18r-34,0r0,237","w":144,"k":{",":21,".":28,":":15,";":15}},"K":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,100r113,-100r-29,0r0,-18r88,0r0,18r-30,0r-113,99r127,126r29,0r0,19r-61,0r-124,-125r0,106r33,0r0,19r-102,0","w":268,"k":{"-":26,"A":15,"C":10,"O":10,"U":13,"W":13,"Y":10,"e":10,"o":10,"u":8,"y":23}},"L":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,222r120,0r0,-44r21,0r0,66r-210,0","w":239,"k":{"T":29,"U":20,"V":43,"W":31,"Y":23,"y":6}},"M":{"d":"20,0r0,-19r33,0r0,-225r-35,0r0,-18r76,0r93,186r92,-186r71,0r0,18r-35,0r0,225r34,0r0,19r-103,0r0,-19r34,0r0,-202r-90,183r-25,0r-90,-183r0,202r33,0r0,19r-88,0","w":368},"N":{"d":"18,0r0,-19r35,0r0,-225r-35,0r0,-18r67,0r157,207r0,-189r-35,0r0,-18r92,0r0,18r-35,0r0,249r-21,0r-168,-221r0,197r35,0r0,19r-92,0","w":315,"k":{",":23,".":23,":":13,";":13}},"O":{"d":"60,-131v0,70,24,117,88,117v64,0,87,-47,87,-117v0,-70,-23,-117,-87,-117v-64,0,-88,47,-88,117xm275,-131v-2,82,-46,136,-127,136v-82,0,-128,-54,-128,-136v0,-82,46,-134,128,-136v77,-2,129,57,127,136","w":295,"k":{",":21,"-":-13,".":21,"V":6,"X":6}},"P":{"d":"189,-189v0,-54,-45,-58,-100,-55r0,110v54,3,100,0,100,-55xm229,-189v0,67,-65,80,-140,74r0,96r41,0r0,19r-110,0r0,-19r33,0r0,-225r-33,0r0,-18v91,2,209,-20,209,73","w":242,"k":{",":73,"-":20,".":73,":":13,";":13,"A":33,"U":6,"a":16,"e":16,"o":15,"s":10}},"Q":{"d":"237,58v-43,-3,-68,-22,-85,-53v-80,1,-134,-56,-132,-136v2,-82,46,-134,128,-136v77,-2,127,57,127,136v0,71,-40,121,-99,133v12,17,31,24,61,23r0,33xm60,-131v0,70,24,117,88,117v64,0,87,-47,87,-117v0,-70,-23,-117,-87,-117v-64,0,-88,47,-88,117","w":295,"k":{",":18,"-":-13,".":18}},"R":{"d":"233,-192v0,40,-24,56,-61,62v46,14,52,74,76,111r32,0r0,19r-62,0v-20,-36,-36,-90,-63,-115v-13,-12,-42,-6,-66,-7r0,103r37,0r0,19r-106,0r0,-19r33,0r0,-225r-33,0r0,-18v89,4,216,-25,213,70xm193,-192v0,-57,-50,-53,-104,-52r0,103v53,1,104,6,104,-51","w":271,"k":{"T":6,"V":13,"W":8,"Y":11,"a":-8,"y":6}},"S":{"d":"220,-72v0,91,-123,88,-187,59r0,-59r21,0v1,41,24,58,67,58v52,0,81,-40,54,-77v-41,-35,-145,-25,-145,-106v0,-82,112,-79,177,-55r0,56r-20,0v-4,-39,-24,-48,-66,-52v-48,-4,-74,44,-46,73v35,36,145,24,145,103","w":246,"k":{",":13,"-":-13,".":13,"S":6}},"T":{"d":"69,0r0,-19r33,0r0,-223r-77,0r0,41r-21,0r0,-61r233,0r0,61r-22,0r0,-41r-77,0r0,223r33,0r0,19r-102,0","w":240,"k":{",":53,"-":46,".":53,":":13,";":13,"A":20,"T":-7,"a":28,"c":28,"e":28,"o":28,"s":26,"w":13}},"U":{"d":"153,5v-76,0,-102,-31,-103,-109r0,-140r-33,0r0,-18r103,0r0,18r-34,0v8,92,-34,226,73,226v107,0,64,-134,73,-226r-33,0r0,-18r88,0r0,18r-33,0r0,140v-1,78,-24,109,-101,109","w":303,"k":{",":33,"-":6,".":33,":":13,";":13,"A":11,"J":10}},"V":{"d":"63,-244r77,202r78,-202r-30,0r0,-18r77,0r0,18r-25,0r-94,244r-30,0r-93,-244r-27,0r0,-18r96,0r0,18r-29,0","w":259,"k":{",":63,"-":33,".":63,":":36,";":36,"A":24,"O":6,"a":33,"e":33,"i":6,"o":33,"u":23,"y":15}},"W":{"d":"274,0r-28,0r-61,-213r-60,213r-28,0r-69,-244r-26,0r0,-18r96,0r0,18r-33,0r55,194r59,-212r29,0r61,215r55,-197r-31,0r0,-18r76,0r0,18r-26,0","w":370,"k":{",":63,"-":26,".":63,":":31,";":31,"A":18,"a":31,"e":29,"i":6,"o":24,"r":16,"u":15,"y":8}},"X":{"d":"119,-112r-64,93r34,0r0,19r-87,0r0,-19r30,0r76,-110r-77,-115r-28,0r0,-18r104,0r0,18r-31,0r57,85r57,-85r-33,0r0,-18r86,0r0,18r-30,0r-69,101r82,124r29,0r0,19r-105,0r0,-19r32,0","w":256,"k":{"-":13,"A":13,"C":6,"O":6}},"Y":{"d":"68,0r0,-19r34,0r0,-94r-81,-131r-25,0r0,-18r98,0r0,18r-31,0r65,107r66,-107r-29,0r0,-18r76,0r0,18r-25,0r-79,128r0,97r34,0r0,19r-103,0","w":237,"k":{",":46,"-":40,".":46,":":44,";":44,"A":28,"C":6,"a":28,"e":31,"i":6,"o":31,"u":31}},"Z":{"d":"16,0r0,-13r164,-228r-136,0r0,39r-22,0r0,-60r208,0r0,12r-164,228r149,0r0,-36r21,0r0,58r-220,0","w":250,"k":{",":6,".":6}},"[":{"d":"31,-274r82,0r0,19r-48,0r0,284r48,0r0,18r-82,0r0,-321","w":140},"\\":{"d":"28,-262r93,295r-28,0r-93,-295r28,0","w":121},"]":{"d":"110,-274r0,321r-82,0r0,-18r48,0r0,-284r-48,0r0,-19r82,0","w":140},"^":{"d":"168,-262r95,97r-26,0r-86,-67r-86,67r-27,0r96,-97r34,0","w":301},"_":{"d":"180,71r0,14r-180,0r0,-14r180,0","w":180},"`":{"d":"65,-288r45,67r-20,0r-60,-67r35,0","w":180},"a":{"d":"98,-14v42,0,49,-38,45,-84v-45,-1,-89,-4,-89,42v0,25,17,42,44,42xm32,-178v57,-27,144,-16,144,61r0,98r28,0r0,19r-61,0r0,-20v-30,43,-125,30,-125,-36v0,-58,61,-65,125,-61v4,-37,-14,-58,-49,-58v-26,0,-42,13,-45,35r-17,0r0,-38","w":214},"b":{"d":"134,5v-31,0,-49,-12,-60,-34r0,29r-64,0r0,-19r31,0r0,-236r-31,0r0,-19r64,0r0,116v11,-22,29,-34,60,-34v49,0,78,44,78,98v0,54,-29,99,-78,99xm124,-172v-42,0,-50,40,-50,88v0,39,15,69,50,69v40,0,51,-34,51,-79v0,-45,-12,-78,-51,-78","w":230},"c":{"d":"109,-12v31,0,44,-16,50,-44r26,0v-9,38,-33,60,-77,61v-55,0,-90,-42,-90,-99v0,-88,93,-121,161,-81r0,48r-19,0v-4,-30,-18,-48,-51,-48v-40,0,-54,34,-53,81v0,47,12,82,53,82","w":201},"d":{"d":"96,-192v31,0,50,13,61,34r0,-97r-31,0r0,-19r63,0r0,255r31,0r0,19r-63,0r0,-29v-11,21,-30,34,-61,34v-49,0,-78,-46,-78,-99v0,-53,29,-98,78,-98xm106,-15v42,0,51,-40,51,-88v0,-40,-15,-69,-51,-69v-39,0,-50,33,-50,78v0,46,10,79,50,79","w":230},"e":{"d":"18,-94v0,-88,101,-128,154,-72v15,17,22,43,23,76r-139,1v0,45,14,77,56,77v32,0,47,-17,54,-45r26,0v-10,40,-35,62,-83,62v-55,1,-91,-42,-91,-99xm157,-109v5,-56,-52,-87,-86,-49v-9,11,-13,27,-15,49r101,0","w":213},"f":{"d":"44,-187v-14,-79,51,-101,111,-78r0,36r-17,0v0,-17,-11,-27,-29,-27v-36,0,-33,33,-33,69r52,0r0,19r-52,0r0,149r42,0r0,19r-105,0r0,-19r31,0r0,-149r-31,0r0,-19r31,0","w":133,"k":{",":13,"-":13,".":13}},"g":{"d":"96,-192v31,0,50,13,61,34r0,-29r63,0r0,19r-31,0r0,164v8,82,-89,100,-153,71r0,-40r17,0v4,24,20,36,49,36v49,0,58,-39,55,-92v-11,21,-30,34,-61,34v-49,0,-78,-46,-78,-99v0,-53,29,-98,78,-98xm106,-15v42,0,51,-40,51,-88v0,-40,-15,-69,-51,-69v-39,0,-50,33,-50,78v0,46,10,79,50,79","w":230},"h":{"d":"122,-168v-62,0,-43,88,-46,149r28,0r0,19r-89,0r0,-19r29,0r0,-236r-31,0r0,-19r63,0r0,120v11,-23,28,-36,57,-38v80,-3,57,99,60,173r29,0r0,19r-89,0r0,-19r27,0v-6,-55,22,-150,-38,-149","w":231},"i":{"d":"55,-225v-11,0,-20,-9,-20,-20v0,-10,9,-21,20,-20v10,-1,21,10,20,20v0,11,-9,20,-20,20xm76,-19r31,0r0,19r-94,0r0,-19r31,0r0,-149r-31,0r0,-19r63,0r0,168","w":115},"j":{"d":"56,-225v-11,0,-20,-9,-20,-20v0,-10,9,-21,20,-20v10,-1,21,10,20,20v0,11,-9,20,-20,20xm13,63v24,0,30,-18,31,-45r0,-186r-31,0r0,-19r63,0r0,205v5,59,-67,76,-111,50r0,-38r17,0v2,21,10,33,31,33","w":111},"k":{"d":"103,0r-91,0r0,-19r29,0r0,-236r-31,0r0,-19r64,0r0,179r79,-73r-27,0r0,-19r84,0r0,19r-32,0r-55,51r71,98r27,0r0,19r-93,0r0,-19r27,0r-56,-76r-25,23r0,53r29,0r0,19","w":218,"k":{"-":6}},"l":{"d":"74,-19r30,0r0,19r-94,0r0,-19r31,0r0,-236r-31,0r0,-19r64,0r0,255","w":115},"m":{"d":"76,-154v14,-48,103,-50,111,4v10,-24,27,-41,57,-42v78,-3,54,100,58,173r30,0r0,19r-90,0r0,-19r28,0v-7,-54,22,-149,-36,-149v-60,0,-42,88,-45,149r28,0r0,19r-88,0r0,-19r28,0v-7,-54,22,-149,-36,-149v-60,0,-42,88,-45,149r28,0r0,19r-89,0r0,-19r29,0r0,-149r-31,0r0,-19r63,0r0,33","w":341},"n":{"d":"122,-168v-62,1,-43,88,-46,149r28,0r0,19r-89,0r0,-19r29,0r0,-149r-31,0r0,-19r63,0r0,33v11,-23,28,-36,57,-38v80,-3,57,99,60,173r29,0r0,19r-89,0r0,-19r27,0v-7,-55,23,-150,-38,-149","w":231},"o":{"d":"56,-94v0,47,12,82,52,82v40,0,53,-35,53,-82v0,-47,-13,-81,-53,-81v-39,0,-53,35,-52,81xm199,-94v0,57,-35,99,-91,99v-55,0,-90,-42,-90,-99v0,-57,35,-98,90,-98v56,0,91,41,91,98","w":216,"k":{".":6}},"p":{"d":"124,-172v-42,0,-50,40,-50,88v0,39,15,69,50,69v40,0,51,-34,51,-79v0,-45,-12,-78,-51,-78xm134,5v-31,0,-49,-12,-60,-34r0,85r30,0r0,19r-94,0r0,-19r31,0r0,-224r-31,0r0,-19r64,0r0,29v11,-22,29,-34,60,-34v49,0,78,44,78,98v0,54,-29,99,-78,99","w":230},"q":{"d":"96,-192v31,0,50,13,61,34r0,-29r63,0r0,19r-31,0r0,224r31,0r0,19r-94,0r0,-19r31,0r0,-85v-11,21,-30,34,-61,34v-49,0,-78,-46,-78,-99v0,-53,29,-98,78,-98xm106,-15v42,0,51,-40,51,-88v0,-40,-15,-69,-51,-69v-39,0,-50,33,-50,78v0,46,10,79,50,79","w":230},"r":{"d":"76,-154v12,-34,55,-46,96,-33r0,47r-19,0v-1,-18,-9,-28,-27,-28v-65,-1,-48,86,-50,149r38,0r0,19r-99,0r0,-19r29,0r0,-149r-31,0r0,-19r63,0r0,33","w":172,"k":{",":40,".":40}},"s":{"d":"166,-52v0,67,-98,66,-146,42r0,-44r19,0v1,29,20,40,50,42v36,3,58,-30,36,-52v-25,-25,-104,-20,-104,-73v0,-63,89,-64,135,-40r0,41r-18,0v5,-45,-84,-55,-87,-10v8,55,115,24,115,94","w":184},"t":{"d":"90,5v-81,4,-42,-106,-51,-173r-29,0r0,-19r29,0r0,-58r32,0r0,58r61,0r0,19r-61,0r0,119v1,27,1,37,22,37v18,0,24,-12,24,-32r25,0v-2,33,-17,47,-52,49","w":144},"u":{"d":"110,-19v62,0,43,-88,46,-149r-29,0r0,-19r61,0r0,168r30,0r0,19r-62,0r0,-33v-12,21,-27,37,-57,38v-80,3,-57,-99,-60,-173r-29,0r0,-19r61,0r0,109v1,40,5,59,39,59","w":231},"v":{"d":"89,0r-69,-168r-21,0r0,-19r86,0r0,19r-30,0r53,128r52,-128r-28,0r0,-19r70,0r0,19r-21,0r-68,168r-24,0","w":203,"k":{",":43,".":43}},"w":{"d":"173,-187r48,146r42,-127r-27,0r0,-19r67,0r0,19r-20,0r-56,168r-27,0r-46,-140r-46,140r-26,0r-55,-168r-21,0r0,-19r84,0r0,19r-30,0r42,127r48,-146r23,0","w":308,"k":{",":43,".":43}},"x":{"d":"105,-114r39,-54r-25,0r0,-19r72,0r0,19r-25,0r-50,69r58,80r25,0r0,19r-87,0r0,-19r24,0r-41,-56r-40,56r24,0r0,19r-71,0r0,-19r25,0r51,-71r-57,-78r-23,0r0,-19r84,0r0,19r-22,0","w":203,"k":{"-":6}},"y":{"d":"28,39v5,34,39,23,50,-5r12,-31r-70,-171r-21,0r0,-19r86,0r0,19r-30,0r53,128r52,-128r-28,0r0,-19r70,0r0,19r-21,0r-85,210v-9,37,-45,44,-84,33r0,-36r16,0","w":203,"k":{",":48,".":48}},"z":{"d":"14,0r0,-15r117,-153r-92,0r0,32r-19,0r0,-51r153,0r0,15r-117,153r102,0r0,-34r18,0r0,53r-162,0","w":189},"{":{"d":"92,-108v89,10,-16,169,92,148r0,19v-60,0,-85,-6,-84,-65v1,-51,8,-102,-55,-92r0,-19v60,9,57,-38,55,-92v-1,-59,24,-65,84,-65r0,19v-37,0,-52,1,-52,40v0,51,7,103,-40,107"},"|":{"d":"75,-275r0,360r-29,0r0,-360r29,0","w":121},"}":{"d":"129,-6v2,60,-24,65,-84,65r0,-19v37,0,52,-1,52,-40v0,-51,-8,-104,40,-108v-47,-5,-40,-55,-40,-107v0,-39,-15,-40,-52,-40r0,-19v59,0,85,5,84,65v-1,51,-8,102,55,92r0,19v-60,-9,-57,38,-55,92"},"~":{"d":"151,-128v42,19,84,15,112,-14r0,26v-30,28,-66,41,-114,18v-41,-19,-84,-14,-111,14r0,-27v31,-27,65,-40,113,-17","w":301},"\u0401":{"d":"85,-311v0,-10,9,-21,20,-20v11,0,20,10,21,20v0,12,-9,21,-21,21v-12,0,-21,-9,-20,-21xm153,-311v0,-10,9,-20,20,-20v11,0,21,10,21,20v0,12,-9,21,-21,21v-11,0,-20,-10,-20,-21xm20,0r0,-19r33,0r0,-225r-33,0r0,-18r211,0r0,58r-21,0r0,-37r-121,0r0,88r86,0r0,-33r22,0r0,87r-22,0r0,-32r-86,0r0,109r123,0r0,-36r22,0r0,58r-214,0","w":262},"\u0410":{"d":"78,-95r96,0r-48,-125xm4,0r0,-19r23,0r93,-243r30,0r94,243r25,0r0,19r-95,0r0,-19r29,0r-22,-57r-110,0r-22,57r29,0r0,19r-74,0","w":272},"\u0411":{"d":"202,-76v0,-62,-54,-58,-113,-57r0,114v59,1,113,6,113,-57xm243,-76v4,100,-128,72,-223,76r0,-19r33,0r0,-225r-33,0r0,-18r211,0r0,58r-22,0r0,-37r-120,0r0,89v85,-6,153,11,154,76","w":264},"\u0412":{"d":"202,-76v0,-62,-54,-58,-113,-57r0,114v59,1,113,6,113,-57xm189,-198v0,-52,-50,-46,-100,-46r0,92v50,0,100,6,100,-46xm243,-76v4,100,-128,72,-223,76r0,-19r33,0r0,-225r-33,0r0,-18v85,6,211,-27,209,64v-1,34,-21,51,-54,55v40,5,67,25,68,67","w":264},"\u0413":{"d":"89,-19r42,0r0,19r-111,0r0,-19r33,0r0,-225r-33,0r0,-18r203,0r0,58r-21,0r0,-37r-113,0r0,222","w":238},"\u0414":{"d":"83,-23v0,4,2,4,8,4r107,0r0,-222r-99,0v0,85,1,183,-16,218xm77,-244r-33,0r0,-18r223,0r0,18r-33,0r0,225r40,0r0,75r-18,0v-3,-22,-2,-56,-24,-56r-172,0v-21,-2,-20,35,-23,56r-19,0r0,-75v75,11,52,-103,59,-171r0,-54","w":292},"\u0415":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r211,0r0,58r-21,0r0,-37r-121,0r0,88r86,0r0,-33r22,0r0,87r-22,0r0,-32r-86,0r0,109r123,0r0,-36r22,0r0,58r-214,0","w":262},"\u0416":{"d":"151,-262r102,0r0,18r-33,0r0,112r108,-112r-29,0r0,-18r88,0r0,18r-30,0r-84,86r98,139r29,0r0,19r-102,0r0,-19r29,0r-79,-114r-28,29r0,85r33,0r0,19r-102,0r0,-19r33,0r0,-85r-28,-29r-78,114r29,0r0,19r-103,0r0,-19r30,0r97,-139r-84,-86r-29,0r0,-18r87,0r0,18r-28,0r107,112r0,-112r-33,0r0,-18","w":404},"\u0417":{"d":"101,-250v-38,0,-54,14,-59,45r-19,0r0,-46v64,-26,168,-28,169,47v0,35,-26,54,-58,61v40,4,65,30,68,72v6,95,-162,98,-182,24r32,0v3,17,32,36,58,35v33,-2,55,-23,55,-60v0,-49,-32,-64,-87,-61r0,-19v48,1,78,-7,78,-49v0,-35,-17,-49,-55,-49","w":224},"\u0418":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,163r136,-133r0,-30r-33,0r0,-18r102,0r0,18r-33,0r0,225r33,0r0,19r-102,0r0,-19r33,0r0,-162r-136,133r0,29r33,0r0,19r-102,0","w":313},"\u0419":{"d":"224,-324v0,47,-136,45,-136,0v0,-29,41,-25,42,0v0,1,-1,3,-2,6v10,4,46,4,56,0v-5,-14,7,-26,20,-27v11,0,20,11,20,21xm20,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,163r136,-133r0,-30r-33,0r0,-18r102,0r0,18r-33,0r0,225r33,0r0,19r-102,0r0,-19r33,0r0,-162r-136,133r0,29r33,0r0,19r-102,0","w":313},"\u041a":{"d":"20,-262r102,0r0,18r-33,0r0,112r113,-112r-29,0r0,-18r88,0r0,18r-30,0r-87,86r101,139r29,0r0,19r-102,0r0,-19r28,0r-82,-114r-29,29r0,85r33,0r0,19r-102,0r0,-19r33,0r0,-225r-33,0r0,-18","w":278},"\u041b":{"d":"29,-36v2,18,38,30,47,6v20,-53,15,-141,16,-214r-33,0r0,-18r223,0r0,18r-33,0r0,225r33,0r0,19r-102,0r0,-19r33,0r0,-222r-99,0v1,75,-4,171,-15,211v-11,41,-57,40,-90,23r0,-29r20,0","w":300},"\u041c":{"d":"20,0r0,-19r33,0r0,-225r-35,0r0,-18r76,0r93,186r92,-186r71,0r0,18r-35,0r0,225r34,0r0,19r-103,0r0,-19r34,0r0,-202r-90,183r-25,0r-90,-183r0,202r33,0r0,19r-88,0","w":368},"\u041d":{"d":"20,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,91r136,0r0,-91r-33,0r0,-18r102,0r0,18r-33,0r0,225r33,0r0,19r-102,0r0,-19r33,0r0,-112r-136,0r0,112r33,0r0,19r-102,0","w":313},"\u041e":{"d":"60,-131v0,70,24,117,88,117v64,0,87,-47,87,-117v0,-70,-23,-117,-87,-117v-64,0,-88,47,-88,117xm275,-131v-2,82,-46,136,-127,136v-82,0,-128,-54,-128,-136v0,-82,46,-134,128,-136v77,-2,129,57,127,136","w":295},"\u041f":{"d":"294,-262r0,18r-33,0r0,225r33,0r0,19r-102,0r0,-19r33,0r0,-222r-136,0r0,222r33,0r0,19r-102,0r0,-19r33,0r0,-225r-33,0r0,-18r274,0","w":313},"\u0420":{"d":"189,-189v0,-54,-45,-58,-100,-55r0,110v54,3,100,0,100,-55xm229,-189v0,67,-65,80,-140,74r0,96r41,0r0,19r-110,0r0,-19r33,0r0,-225r-33,0r0,-18v91,2,209,-20,209,73","w":242},"\u0421":{"d":"146,-14v42,0,65,-20,75,-55r33,0v-15,45,-49,76,-108,74v-80,-2,-124,-55,-126,-136v-2,-79,51,-137,129,-136v37,0,67,10,98,22r0,61r-20,0v-8,-43,-31,-64,-81,-64v-64,1,-86,48,-86,117v0,68,23,117,86,117","w":275},"\u0422":{"d":"69,0r0,-19r33,0r0,-223r-77,0r0,41r-21,0r0,-61r233,0r0,61r-22,0r0,-41r-77,0r0,223r33,0r0,19r-102,0","w":240},"\u0423":{"d":"54,-36v2,18,37,34,49,9r13,-22r-84,-195r-28,0r0,-18r104,0r0,18r-31,0r62,144r65,-144r-34,0r0,-18r86,0r0,18r-30,0r-93,208v-6,13,-27,44,-53,41v-15,-2,-32,-6,-46,-12r0,-29r20,0","w":260},"\u0424":{"d":"21,-134v0,-59,49,-95,111,-95r0,-15r-34,0r0,-18r103,0r0,18r-34,0v1,5,-4,16,4,15v58,4,107,35,107,95v0,61,-49,93,-111,96r0,19r34,0r0,19r-103,0r0,-19r34,0r0,-19v-63,-2,-111,-35,-111,-96xm238,-134v0,-55,-22,-76,-71,-76r0,153v48,-1,71,-21,71,-77xm61,-134v1,48,24,78,71,77r0,-153v-48,0,-72,19,-71,76","w":298},"\u0425":{"d":"119,-112r-64,93r34,0r0,19r-87,0r0,-19r30,0r76,-110r-77,-115r-28,0r0,-18r104,0r0,18r-31,0r57,85r57,-85r-33,0r0,-18r86,0r0,18r-30,0r-69,101r82,124r29,0r0,19r-105,0r0,-19r32,0","w":256},"\u0426":{"d":"283,56v-2,-5,-4,-66,-24,-56r-239,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,222r136,0r0,-222r-33,0r0,-18r102,0r0,18r-33,0r0,225r40,0r0,75r-18,0","w":313},"\u0427":{"d":"73,-176v-4,55,63,45,118,46r0,-114r-34,0r0,-18r103,0r0,18r-34,0r0,225r34,0r0,19r-103,0r0,-19r34,0r0,-92v-74,2,-154,3,-154,-65r0,-68r-33,0r0,-18r101,0r0,18r-32,0r0,68","w":278},"\u0428":{"d":"223,-22r99,0r0,-222r-34,0r0,-18r103,0r0,18r-33,0r0,225r33,0r0,19r-371,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,222r99,0r0,-222r-34,0r0,-18r103,0r0,18r-34,0r0,222","w":410},"\u0429":{"d":"288,-262r103,0r0,18r-33,0r0,225r33,0r0,75r-19,0v-2,-22,-3,-56,-24,-56r-328,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,222r99,0r0,-222r-34,0r0,-18r103,0r0,18r-34,0r0,222r99,0r0,-222r-34,0r0,-18","w":410},"\u042a":{"d":"233,-76v0,-56,-45,-60,-101,-57r0,114v56,3,101,0,101,-57xm132,-154v79,-5,141,10,141,77v0,51,-31,77,-94,77r-116,0r0,-19r34,0r0,-222r-63,0r0,37r-22,0r0,-58r154,0r0,18r-34,0r0,90","w":285},"\u042b":{"d":"301,-19r33,0r0,19r-102,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,225xm189,-76v0,-57,-44,-60,-100,-57r0,114v56,3,100,1,100,-57xm89,-154v80,-4,141,8,141,77v0,51,-32,77,-95,77r-115,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,90","w":354},"\u042c":{"d":"189,-76v0,-57,-44,-60,-100,-57r0,114v56,3,100,1,100,-57xm89,-154v80,-4,141,8,141,77v0,51,-32,77,-95,77r-115,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,90","w":242},"\u042d":{"d":"128,-248v-50,0,-73,21,-81,64r-20,0r0,-61v110,-54,227,-7,227,114v0,137,-194,190,-234,62r33,0v11,62,104,72,138,27v14,-19,21,-46,22,-80r-126,0r0,-21r126,0v-2,-60,-25,-106,-85,-105","w":275},"\u042e":{"d":"279,5v-74,1,-125,-56,-128,-127r-62,0r0,103r33,0r0,19r-102,0r0,-19r33,0r0,-225r-33,0r0,-18r102,0r0,18r-33,0r0,95r63,0v5,-64,55,-118,127,-118v77,0,127,57,127,136v0,79,-54,135,-127,136xm191,-131v0,70,23,117,87,117v64,0,88,-47,88,-117v0,-70,-24,-117,-88,-117v-64,0,-87,47,-87,117","w":429},"\u042f":{"d":"84,-192v0,62,61,50,118,51r0,-103v-57,0,-118,-10,-118,52xm44,-195v0,-95,136,-61,227,-67r0,18r-34,0r0,225r34,0r0,19r-106,0r0,-19r37,0r0,-103r-52,0r-64,103r29,0r0,19r-103,0r0,-19r30,0r66,-105v-36,-8,-64,-27,-64,-71","w":290},"\u0430":{"d":"98,-14v42,0,49,-38,45,-84v-45,-1,-89,-4,-89,42v0,25,17,42,44,42xm32,-178v57,-27,144,-16,144,61r0,98r28,0r0,19r-61,0r0,-20v-30,43,-125,30,-125,-36v0,-58,61,-65,125,-61v4,-37,-14,-58,-49,-58v-26,0,-42,13,-45,35r-17,0r0,-38","w":214},"\u0431":{"d":"198,-94v0,88,-99,130,-154,73v-32,-33,-38,-129,-19,-180v16,-43,65,-57,118,-61v14,-5,21,-22,43,-17v-2,19,-25,50,-42,52v-70,13,-67,2,-100,36v-8,8,-11,24,-11,46v14,-26,31,-47,75,-47v55,0,90,41,90,98xm56,-94v0,47,12,82,52,82v35,0,53,-28,53,-82v0,-54,-18,-81,-53,-81v-35,0,-52,27,-52,81","w":216},"\u0432":{"d":"188,-54v1,74,-104,50,-175,54r0,-19r29,0r0,-149r-29,0r0,-19v63,4,168,-19,165,46v-1,24,-17,37,-42,39v35,4,52,20,52,48xm143,-140v0,-29,-36,-29,-68,-28r0,55v31,1,68,1,68,-27xm153,-54v0,-37,-39,-38,-78,-36r0,71v39,2,78,2,78,-35","w":202},"\u0433":{"d":"173,-187r0,51r-19,0r0,-29r-80,0r0,146r25,0r0,19r-87,0r0,-19r29,0r0,-149r-31,0r0,-19r163,0","w":188},"\u0434":{"d":"78,-166v2,55,-5,107,-13,144r81,0r0,-144r-68,0xm57,-168r-30,0r0,-19r180,0r0,19r-29,0r0,149r29,0r0,69r-18,0v-2,-20,-3,-50,-24,-50r-111,0v-20,-2,-20,30,-23,50r-18,0r0,-69v54,-3,40,-87,44,-149","w":221},"\u0435":{"d":"18,-94v0,-88,101,-128,154,-72v15,17,22,43,23,76r-139,1v0,45,14,77,56,77v32,0,47,-17,54,-45r26,0v-10,40,-35,62,-83,62v-55,1,-91,-42,-91,-99xm157,-109v5,-56,-52,-87,-86,-49v-9,11,-13,27,-15,49r101,0","w":213},"\u0436":{"d":"120,-187r91,0r0,19r-29,0r0,73r77,-73r-27,0r0,-19r84,0r0,19r-32,0r-54,51r70,98r27,0r0,19r-92,0r0,-19r26,0r-54,-76r-25,23r0,53r29,0r0,19r-91,0r0,-19r29,0r0,-53r-25,-23r-54,76r27,0r0,19r-93,0r0,-19r27,0r70,-98r-54,-51r-32,0r0,-19r84,0r0,19r-27,0r77,73r0,-73r-29,0r0,-19","w":331},"\u0437":{"d":"137,-139v0,-24,-20,-34,-46,-34v-30,0,-46,10,-49,30r-19,0r0,-36v45,-22,152,-20,145,37v5,30,-26,40,-42,43v32,5,52,13,52,50v-2,75,-154,68,-162,3r26,0v8,45,104,46,104,-4v0,-32,-37,-42,-77,-39r0,-18v35,1,68,-5,68,-32","w":196},"\u0438":{"d":"12,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0r0,19r-29,0r0,107r85,-91r0,-16r-29,0r0,-19r91,0r0,19r-29,0r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-104r-85,90r0,14r29,0r0,19r-91,0","w":239},"\u0439":{"d":"117,-222v-44,0,-55,-8,-55,-33v0,-16,30,-19,29,1v0,4,-1,8,-4,11v9,8,52,8,61,0v-9,-9,-2,-26,10,-26v7,0,14,8,14,14v-1,25,-12,33,-55,33xm12,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0r0,19r-29,0r0,107r85,-91r0,-16r-29,0r0,-19r91,0r0,19r-29,0r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-104r-85,90r0,14r29,0r0,19r-91,0","w":239},"\u043a":{"d":"103,-187r0,19r-29,0r0,73r79,-73r-27,0r0,-19r84,0r0,19r-32,0r-55,51r71,98r27,0r0,19r-93,0r0,-19r27,0r-56,-76r-25,23r0,53r29,0r0,19r-91,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0","w":225},"\u043b":{"d":"87,-166v-3,82,12,191,-80,166r-1,-22v29,12,52,4,52,-29v8,-31,7,-71,7,-117r-29,0r0,-19r180,0r0,19r-29,0r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-147r-67,0","w":228},"\u043c":{"d":"13,0r0,-19r29,0r0,-149r-29,0r0,-19r76,0r52,129r53,-129r73,0r0,19r-29,0r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-144r-59,144r-23,0r-59,-144r0,144r29,0r0,19r-80,0","w":280},"\u043d":{"d":"192,-168r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-72r-85,0r0,72r29,0r0,19r-91,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0r0,19r-29,0r0,56r85,0r0,-56r-29,0r0,-19r91,0r0,19r-29,0","w":239},"\u043e":{"d":"56,-94v0,47,12,82,52,82v40,0,53,-35,53,-82v0,-47,-13,-81,-53,-81v-39,0,-53,35,-52,81xm199,-94v0,57,-35,99,-91,99v-55,0,-90,-42,-90,-99v0,-57,35,-98,90,-98v56,0,91,41,91,98","w":216},"\u043f":{"d":"221,-187r0,19r-29,0r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-146r-85,0r0,146r29,0r0,19r-91,0r0,-19r29,0r0,-149r-29,0r0,-19r209,0","w":239},"\u0440":{"d":"124,-172v-42,0,-50,40,-50,88v0,39,15,69,50,69v40,0,51,-34,51,-79v0,-45,-12,-78,-51,-78xm134,5v-31,0,-49,-12,-60,-34r0,85r30,0r0,19r-94,0r0,-19r31,0r0,-224r-31,0r0,-19r64,0r0,29v11,-22,29,-34,60,-34v49,0,78,44,78,98v0,54,-29,99,-78,99","w":230},"\u0441":{"d":"109,-12v31,0,44,-16,50,-44r26,0v-9,38,-33,60,-77,61v-55,0,-90,-42,-90,-99v0,-88,93,-121,161,-81r0,48r-19,0v-4,-30,-18,-48,-51,-48v-40,0,-54,34,-53,81v0,47,12,82,53,82","w":201},"\u0442":{"d":"185,-187r0,51r-18,0r0,-29r-51,0r0,146r29,0r0,19r-90,0r0,-19r29,0r0,-146r-51,0r0,29r-18,0r0,-51r170,0","w":199},"\u0443":{"d":"33,39v5,34,39,23,50,-5r12,-31r-70,-171r-21,0r0,-19r86,0r0,19r-30,0r53,128r52,-128r-28,0r0,-19r70,0r0,19r-21,0r-85,210v-9,37,-45,44,-84,33r0,-36r16,0","w":211},"\u0444":{"d":"14,-94v0,-64,66,-131,111,-77r0,-84r-31,0r0,-19r63,0r0,103v41,-54,111,12,111,77v0,65,-66,133,-111,78r0,72r29,0r0,19r-90,0r0,-19r29,0r0,-72v-41,54,-111,-12,-111,-78xm92,-173v-54,6,-55,153,0,159v17,1,24,-11,33,-19r0,-120v-9,-9,-15,-21,-33,-20xm189,-14v55,-5,56,-154,0,-159v-17,-1,-23,12,-32,20r0,120v9,8,15,20,32,19","w":281},"\u0445":{"d":"105,-114r39,-54r-25,0r0,-19r72,0r0,19r-25,0r-50,69r58,80r25,0r0,19r-87,0r0,-19r24,0r-41,-56r-40,56r24,0r0,19r-71,0r0,-19r25,0r51,-71r-57,-78r-23,0r0,-19r84,0r0,19r-22,0","w":203},"\u0446":{"d":"180,0r-167,0r0,-18r29,0r0,-150r-29,0r0,-19r91,0r0,19r-29,0r0,146r85,0r0,-146r-29,0r0,-19r91,0r0,19r-30,0r0,149r30,0r0,69r-19,0v-1,-21,-2,-50,-23,-50","w":231},"\u0447":{"d":"74,-168v2,30,-8,73,23,73r60,0r0,-73r-28,0r0,-19r90,0r0,19r-29,0r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-55v-51,1,-116,7,-116,-38r0,-56r-29,0r0,-19r90,0r0,19r-28,0","w":238},"\u0448":{"d":"185,-22r78,0r0,-146r-29,0r0,-19r91,0r0,19r-29,0r0,149r29,0r0,19r-312,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0r0,19r-29,0r0,146r78,0r0,-146r-29,0r0,-19r90,0r0,19r-29,0r0,146","w":334},"\u0449":{"d":"234,-187r91,0r0,19r-29,0r0,149r29,0r0,69r-18,0v-2,-20,-3,-50,-24,-50r-270,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0r0,19r-29,0r0,146r78,0r0,-146r-29,0r0,-19r90,0r0,19r-29,0r0,146r78,0r0,-146r-29,0r0,-19","w":334},"\u044a":{"d":"185,-54v0,-38,-39,-38,-78,-36r0,71v39,2,78,3,78,-35xm75,-168r-43,0r0,28r-21,0r0,-47r125,0r0,19r-29,0r0,58v58,-4,107,7,107,56v0,72,-101,51,-170,54r0,-19r31,0r0,-149"},"\u044b":{"d":"152,-54v0,-38,-39,-38,-78,-36r0,71v39,2,78,3,78,-35xm181,-54v0,72,-101,51,-170,54r0,-19r30,0r0,-149r-30,0r0,-19r92,0r0,19r-29,0r0,58v58,-4,107,7,107,56xm245,-168r0,149r29,0r0,19r-91,0r0,-19r29,0r0,-149r-29,0r0,-19r91,0r0,19r-29,0","w":286},"\u044c":{"d":"152,-54v0,-38,-39,-38,-78,-36r0,71v39,2,78,3,78,-35xm181,-54v0,72,-101,51,-170,54r0,-19r30,0r0,-149r-30,0r0,-19r92,0r0,19r-29,0r0,58v58,-4,107,7,107,56","w":195},"\u044d":{"d":"185,-95v15,107,-146,139,-167,39r26,0v6,29,22,44,50,44v34,0,52,-26,53,-76r-83,0r0,-18r83,0v8,-83,-98,-92,-104,-21r-19,0r0,-48v70,-38,168,-10,161,80","w":201},"\u044e":{"d":"207,5v-52,0,-87,-37,-90,-86r-43,0r0,62r29,0r0,19r-91,0r0,-19r29,0r0,-149r-31,0r0,-19r93,0r0,19r-29,0r0,66r43,0v1,-52,38,-90,90,-90v55,0,90,41,90,98v0,57,-34,99,-90,99xm154,-94v0,46,13,82,53,82v40,0,53,-36,52,-82v0,-46,-13,-81,-52,-81v-40,0,-54,34,-53,81","w":313},"\u044f":{"d":"67,-137v0,36,41,33,78,32r0,-63v-36,-1,-78,-4,-78,31xm32,-140v4,-69,108,-42,176,-47r0,19r-31,0r0,149r29,0r0,19r-89,0r0,-19r28,0r0,-68r-29,0r-54,87r-51,0r0,-19r26,0r44,-70v-18,-6,-51,-21,-49,-51","w":227},"\u0451":{"d":"54,-255v0,-11,9,-21,20,-21v12,0,21,9,21,21v0,12,-9,20,-21,20v-12,0,-20,-8,-20,-20xm122,-255v0,-12,9,-21,21,-21v11,0,20,10,20,21v0,11,-8,20,-20,20v-12,0,-21,-8,-21,-20xm18,-94v0,-88,101,-128,154,-72v15,17,22,43,23,76r-139,1v0,45,14,77,56,77v32,0,47,-17,54,-45r26,0v-10,40,-35,62,-83,62v-55,1,-91,-42,-91,-99xm157,-109v5,-56,-52,-87,-86,-49v-9,11,-13,27,-15,49r101,0","w":213},"\u00a0":{"w":114}}}); diff --git a/lib/fonts/Delicious_500.font.js b/lib/fonts/Delicious_500.font.js deleted file mode 100644 index 4b905046..00000000 --- a/lib/fonts/Delicious_500.font.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * The following copyright notice may not be removed under any circumstances. - * - * Copyright: - * copyright 1994-1996, Jos Buivenga - */ -Cufon.registerFont({"w":162,"face":{"font-family":"Delicious_500","font-weight":500,"font-stretch":"normal","units-per-em":"360","panose-1":"0 0 0 0 0 0 0 0 0 0","ascent":"288","descent":"-72","x-height":"5","bbox":"0 -279 266 72","underline-thickness":"7.2","underline-position":"-46.8","stemh":"22","stemv":"27","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":108},"!":{"d":"75,-17v1,25,-44,31,-44,2v-1,-26,44,-30,44,-2xm70,-252v-10,59,-5,127,-6,194r-22,0v-3,-65,-11,-130,1,-190","w":95},"\"":{"d":"45,-255v9,25,0,52,-3,79r-11,0v-3,-27,-12,-54,-3,-79r17,0xm95,-255v9,25,0,52,-3,79r-12,0v-2,-27,-10,-54,-3,-79r18,0","w":124},"#":{"d":"117,-100r7,-55r-41,0r-7,55r41,0xm135,-243r22,0r-8,64r30,0r-2,24r-32,0r-6,55r27,0r-3,23r-27,0r-10,74r-21,0r9,-74r-41,0r-9,67r-21,0r8,-67r-29,0r4,-23r28,0r7,-55r-25,0r3,-24r25,0r9,-71r22,0r-9,71r41,0","w":200},"$":{"d":"95,-92r0,72v34,-11,30,-60,0,-72xm78,-136r0,-73v-18,3,-28,16,-28,34v0,21,13,29,28,39xm147,-56v0,32,-21,55,-52,60r0,22r-17,0r0,-21v-18,0,-39,-6,-54,-15r8,-22v13,6,32,14,46,15r0,-85v-28,-18,-56,-33,-56,-71v0,-35,21,-57,56,-59r0,-20r17,0r0,21v15,2,32,8,44,17r-10,19v-9,-7,-22,-11,-34,-13r0,82v29,18,52,31,52,70","w":160},"%":{"d":"91,-184v0,-15,-12,-27,-27,-27v-15,0,-26,12,-26,27v0,15,11,26,26,26v15,0,27,-11,27,-26xm64,-232v17,-1,32,12,51,11v39,-3,35,-17,59,-6r-80,227r-24,0r76,-210v-14,7,-38,7,-38,7v13,27,-11,67,-44,67v-26,0,-47,-22,-47,-48v0,-26,21,-48,47,-48xm234,-42v0,26,-22,47,-48,47v-26,0,-47,-21,-47,-47v0,-26,21,-48,47,-48v26,0,48,22,48,48xm213,-42v0,-15,-12,-27,-27,-27v-15,0,-26,12,-26,27v0,15,11,26,26,26v15,0,27,-11,27,-26","w":251},"&":{"d":"149,-176v2,-31,-5,-54,-35,-55v-18,0,-36,10,-36,30v0,31,40,24,71,25xm46,-85v1,23,4,61,25,68v10,-2,34,-36,59,-20r-5,20v-27,-11,-28,21,-54,22v-41,0,-56,-56,-56,-89v0,-36,19,-84,60,-85v-14,-6,-25,-16,-25,-32v4,-65,122,-66,124,2r0,23r36,0r0,20r-35,0r0,120v-4,21,21,22,35,14r6,17v-28,19,-69,10,-69,-30r0,-121v-63,-5,-105,9,-101,71","w":226},"(":{"d":"111,30r-3,23v-60,-45,-91,-97,-91,-173v0,-64,36,-125,90,-159r3,20v-97,64,-94,223,1,289","w":120,"k":{"J":-7}},")":{"d":"14,-279v54,34,91,95,91,159v0,76,-31,128,-91,173r-3,-23v95,-66,98,-225,1,-289","w":122},"*":{"d":"95,-243r-12,41r54,-19r0,23r-47,15r38,58r-25,0r-28,-44r-27,44r-24,0r35,-58r-46,-15r0,-23r54,19r-13,-41r41,0","w":152},"+":{"d":"153,-79r-58,0r0,62r-21,0r0,-62r-58,0r0,-22r58,0r0,-62r21,0r0,62r58,0r0,22","w":169},",":{"d":"10,40v16,-25,25,-35,23,-65v0,0,10,-6,17,-6v11,0,23,16,23,16v0,0,-14,31,-46,66","w":92,"k":{"Q":9,"O":9,"C":9}},"-":{"d":"88,-103r0,22r-69,0r0,-22r69,0","w":108},".":{"d":"70,-17v1,26,-44,30,-44,2v-1,-26,44,-30,44,-2","w":92,"k":{"Q":9,"O":9,"G":9,"C":9}},"\/":{"d":"122,-273r-93,326r-23,0r93,-326r23,0","w":128,"k":{"\/":36}},"0":{"d":"81,-159v-35,0,-45,43,-45,71v0,28,10,71,45,71v35,0,45,-43,45,-71v0,-28,-10,-71,-45,-71xm152,-88v0,44,-20,93,-71,93v-51,0,-71,-49,-71,-93v0,-44,20,-94,71,-94v51,0,71,50,71,94"},"1":{"d":"108,0r-27,0r0,-151r-45,0r0,-17v25,0,43,-11,72,-8r0,176"},"2":{"d":"137,-132v-1,47,-43,84,-74,108r80,0r0,24r-116,0r-5,-22v32,-17,87,-72,87,-110v0,-42,-61,-27,-82,-6r-5,-21v33,-35,117,-34,115,27"},"3":{"d":"26,40v46,-4,88,-22,88,-68v0,-40,-46,-35,-81,-32r0,-21v29,-2,41,-21,61,-32v19,-10,23,-48,-7,-46v-13,0,-40,13,-52,20r-7,-19v32,-25,109,-42,109,18v0,28,-28,44,-50,56v29,0,54,19,54,50v0,66,-56,95,-115,94r0,-20"},"4":{"d":"152,0r-24,0r0,50r-25,0r0,-50r-90,0r-2,-23v20,-56,53,-106,88,-153r30,0r0,153r23,0r0,23xm103,-23r0,-120v-26,37,-48,78,-65,120r65,0"},"5":{"d":"24,39v43,-1,90,-24,89,-68v-1,-41,-52,-38,-83,-26r10,-121r90,0r0,21r-65,0r-6,73v38,-9,80,7,81,47v2,60,-53,96,-116,95r0,-21"},"6":{"d":"121,-79v0,-41,-45,-50,-75,-32v-8,37,-2,95,38,95v33,0,37,-37,37,-63xm119,-231r10,18v-36,23,-63,41,-78,83v45,-21,97,1,97,52v0,42,-19,83,-66,83v-51,0,-65,-56,-65,-97v0,-66,46,-112,102,-139"},"7":{"d":"139,-176v5,87,-35,177,-79,239r-24,-10v40,-53,77,-139,77,-206r-92,0r0,-23r118,0"},"8":{"d":"121,-59v0,-30,-23,-37,-45,-50v-43,14,-47,94,6,94v24,0,39,-22,39,-44xm114,-174v0,-23,-12,-33,-34,-33v-21,0,-33,18,-33,37v0,21,13,31,30,40v21,-10,37,-17,37,-44xm148,-61v0,42,-30,66,-70,66v-34,0,-63,-26,-63,-61v0,-28,18,-50,43,-62v-21,-13,-37,-26,-37,-53v0,-35,28,-56,61,-56v35,0,57,18,57,54v0,24,-20,43,-41,52v27,14,50,25,50,60"},"9":{"d":"117,-66v8,-36,3,-89,-37,-94v-53,4,-52,106,1,104v12,0,26,-4,36,-10xm113,-46v-45,22,-98,-5,-98,-52v0,-41,18,-84,66,-84v51,0,66,60,66,101v0,67,-57,119,-115,142r-7,-21v41,-21,72,-41,88,-86"},":":{"d":"70,-17v1,26,-44,30,-44,2v-1,-26,44,-30,44,-2xm70,-127v1,26,-44,30,-44,2v-1,-26,44,-30,44,-2","w":92},";":{"d":"9,40v16,-25,25,-35,23,-65v0,0,10,-6,17,-6v11,0,23,16,23,16v0,0,-14,31,-46,66xm70,-127v1,27,-44,31,-44,2v-1,-26,44,-30,44,-2","w":92},"<":{"d":"96,-36r-17,14r-67,-68r66,-68r17,14r-53,54","w":108},"=":{"d":"153,-73r0,22r-137,0r0,-22r137,0xm153,-127r0,22r-137,0r0,-22r137,0","w":172},">":{"d":"12,-36r17,14r67,-68r-66,-68r-17,14r53,54","w":108},"?":{"d":"70,-17v1,26,-44,30,-44,2v-1,-26,44,-30,44,-2xm59,-58r-22,0v-7,-55,17,-89,43,-118v15,-16,21,-49,-8,-51v-10,0,-21,1,-31,3r0,-20v36,-12,83,-4,79,38v-6,58,-72,69,-61,148","w":128},"@":{"d":"179,-165v-9,-11,-22,-17,-36,-17v-30,0,-40,53,-40,75v0,11,3,27,17,27v14,0,32,-13,44,-20xm190,-53v-17,1,-33,-11,-28,-30v-13,11,-29,26,-47,26v-24,0,-36,-24,-36,-46v0,-40,15,-99,65,-99v16,0,30,8,39,21r4,-15r23,0r-27,116v0,7,4,10,10,10v32,0,55,-50,55,-77v0,-60,-45,-94,-103,-94v-61,0,-106,55,-106,114v0,63,47,113,111,113v35,0,70,-15,92,-43r16,9v-22,33,-68,54,-108,54v-75,0,-135,-59,-135,-134v0,-69,61,-133,131,-133v68,0,120,44,120,114v0,39,-34,94,-76,94","w":285},"A":{"d":"92,-197r-27,100r54,0xm179,0r-29,0r-24,-73r-68,0r-24,73r-30,0r72,-227r31,0","w":183,"k":{"y":9,"w":9,"v":9,"Y":20,"W":6,"V":10,"T":14}},"B":{"d":"138,-66v0,-46,-39,-42,-80,-42r0,84v37,13,81,0,80,-42xm125,-170v0,-36,-32,-35,-67,-34r0,73v37,3,67,-5,67,-39xm29,-227v62,-4,127,0,125,57v0,19,-15,44,-34,49v31,2,46,26,46,55v1,70,-77,82,-137,62r0,-223","w":180},"C":{"d":"170,-15v-16,13,-42,20,-63,20v-66,0,-87,-63,-87,-118v0,-53,26,-119,88,-119v19,0,42,5,58,15r-10,19v-15,-8,-31,-12,-48,-12v-43,0,-59,64,-59,98v0,38,12,94,60,94v16,0,36,-5,49,-15","w":178,"k":{",":9}},"D":{"d":"93,-204r-36,0r0,181r34,0v48,0,57,-51,57,-89v0,-37,-7,-92,-55,-92xm94,-227v65,0,83,59,83,114v0,55,-22,113,-86,113r-62,0r0,-227r65,0","w":196},"E":{"d":"145,-227r0,24r-87,0r0,72r67,0r0,25r-67,0r0,81r91,0r0,25r-120,0r0,-227r116,0","w":163},"F":{"d":"135,-227r0,24r-77,0r0,72r61,0r0,25r-61,0r0,106r-29,0r0,-227r106,0","w":148,"k":{"o":5,"e":5,"c":5,"a":7,"A":14,".":46,",":46}},"G":{"d":"167,-4v-17,7,-41,9,-59,9v-66,0,-88,-62,-88,-118v0,-53,26,-119,88,-119v24,0,38,5,59,15r-11,19v-14,-9,-31,-12,-48,-12v-41,0,-59,60,-59,98v0,38,12,94,60,94v10,0,22,-1,31,-5r0,-74r27,0r0,93","w":188,"k":{",":9}},"H":{"d":"168,0r-28,0r0,-106r-82,0r0,106r-29,0r0,-227r29,0r0,96r82,0r0,-96r28,0r0,227","w":197},"I":{"d":"57,-227r0,227r-28,0r0,-227r28,0","w":85},"J":{"d":"59,10v0,29,-26,43,-51,49r-6,-20v15,-5,29,-13,29,-31r0,-235r28,0r0,237","w":88},"K":{"d":"172,0r-29,0r-85,-95r0,95r-29,0r0,-227r29,0r0,104r79,-104r30,0r-87,117r92,101r0,9","w":174,"k":{"Q":4,"O":4,"G":4,"C":4}},"L":{"d":"56,-227r0,203r78,0r0,24r-105,0r0,-227r27,0","w":137,"k":{"y":10,"Y":23,"W":13,"V":16,"T":20}},"M":{"d":"238,-227r0,227r-28,0r1,-185r-65,185r-25,0r-65,-186v4,53,1,128,2,186r-29,0r0,-227r38,0r67,192r66,-192r38,0","w":267},"N":{"d":"171,0r-30,0r-85,-185v5,58,1,124,2,185r-29,0r0,-227r38,0r77,174v-4,-55,-1,-116,-2,-174r29,0r0,227","w":199},"O":{"d":"99,-208v-39,0,-50,66,-50,95v0,29,11,95,50,95v39,0,50,-66,50,-95v0,-29,-11,-95,-50,-95xm99,-232v59,0,78,71,78,119v0,48,-19,118,-78,118v-59,0,-79,-70,-79,-118v0,-48,20,-119,79,-119","w":197,"k":{"T":7,".":9,",":9}},"P":{"d":"133,-157v-2,-40,-34,-50,-75,-47r0,92v35,22,77,-5,75,-45xm29,-227v69,-3,131,1,133,70v2,55,-51,92,-104,69r0,88r-29,0r0,-227","w":176,"k":{"o":4,"e":4,"c":4,"a":7,"A":15,".":52,",":52}},"Q":{"d":"121,2v15,15,34,29,59,22r-8,28v-41,6,-59,-29,-82,-47v-53,-6,-70,-72,-70,-118v0,-48,20,-119,79,-119v59,0,78,71,78,119v0,41,-14,100,-56,115xm99,-208v-39,0,-50,66,-50,95v0,29,11,95,50,95v39,0,50,-66,50,-95v0,-29,-11,-95,-50,-95","w":197,"k":{"T":7,".":9,",":9}},"R":{"d":"133,-157v-2,-40,-34,-50,-75,-47r0,92v34,21,77,-4,75,-45xm173,0r-28,0r-75,-83v-4,-1,-8,-3,-12,-5r0,88r-29,0r0,-227v69,-3,132,1,133,70v0,36,-19,67,-56,74r67,74r0,9","w":181,"k":{"o":2,"e":2,"c":2,"Y":5,"V":4,"T":6}},"S":{"d":"16,-173v0,-64,86,-77,116,-33r-16,14v-18,-25,-72,-24,-72,15v0,53,97,48,97,121v0,62,-81,78,-120,40r12,-20v23,26,81,25,81,-21v0,-47,-98,-49,-98,-116","w":156},"T":{"d":"142,-202r-55,0r0,202r-28,0r0,-202r-55,0r0,-25r138,0r0,25","w":145,"k":{"y":8,"w":9,"u":16,"s":16,"r":16,"o":23,"i":10,"e":23,"c":23,"a":23,"T":-6,"Q":7,"O":7,"G":7,"C":7,"A":14,";":33,":":33,".":33,"-":27,",":33}},"U":{"d":"172,-227v-6,96,30,232,-72,232v-102,0,-65,-136,-72,-232r29,0r0,139v0,29,6,70,43,70v38,0,44,-40,44,-70r0,-139r28,0","w":200},"V":{"d":"182,-227r-74,227r-32,0r-74,-227r31,0r60,192r59,-192r30,0","w":183,"k":{"y":4,"u":11,"r":11,"o":9,"i":6,"e":9,"c":9,"a":11,"A":10,";":20,":":20,".":33,"-":13,",":33}},"W":{"d":"252,-227r-53,227r-31,0r-40,-183r-41,183r-30,0r-53,-227r30,0r38,185r41,-185r29,0r42,185v6,-63,27,-125,39,-185r29,0","w":254,"k":{"u":4,"r":4,"o":11,"e":11,"c":11,"a":6,"A":6,";":13,":":13,".":20,"-":6,",":20}},"X":{"d":"173,0r-33,0r-54,-90r-51,90r-31,0r67,-116r-66,-111r32,0r50,83r48,-83r30,0r-63,109","w":177},"Y":{"d":"165,-227r-66,144r0,83r-28,0r0,-83r-66,-144r30,0r51,113r50,-113r29,0","w":169,"k":{"z":5,"v":5,"u":11,"t":11,"s":13,"q":14,"p":11,"o":16,"n":11,"m":11,"i":13,"e":16,"c":16,"a":18,"Q":9,"O":9,"G":9,"C":9,"A":20,";":33,":":33,".":46,"-":27,",":46}},"Z":{"d":"144,-227r0,25v-35,58,-68,117,-99,177r109,0r0,25r-141,0r0,-24v31,-60,63,-120,98,-178r-90,0r0,-25r123,0","w":164},"[":{"d":"66,-264r0,21r-34,0r0,278r34,0r0,21r-56,0r0,-320r56,0","w":89,"k":{"J":-7}},"\\":{"d":"120,53r-22,0r-94,-326r23,0","w":120},"]":{"d":"80,-264r0,320r-56,0r0,-21r33,0r0,-278r-33,0r0,-21r56,0","w":89},"^":{"d":"198,-115r-25,0r-61,-111r-61,111r-25,0v41,-71,76,-140,76,-140r20,0","w":224},"_":{"d":"162,27r0,22r-162,0r0,-22r162,0"},"a":{"d":"67,-16v32,-2,46,-40,43,-74r-63,27v-11,18,-4,49,20,47xm163,-2v-21,16,-54,3,-52,-25v-6,21,-29,32,-50,32v-44,2,-57,-49,-35,-80r84,-36v2,-27,-2,-48,-28,-48v-18,0,-37,12,-48,25r-10,-16v25,-40,114,-49,114,16r0,110v-1,10,10,14,18,9","w":167},"b":{"d":"135,-94v0,-25,-5,-65,-38,-65v-14,0,-31,9,-40,20r0,108v8,9,24,14,36,14v36,0,42,-50,42,-77xm163,-98v0,50,-16,103,-76,103v-19,0,-42,-9,-57,-21r0,-234r27,0r0,87v10,-12,29,-19,44,-19v44,0,62,47,62,84","w":181},"c":{"d":"139,-15v-13,11,-33,20,-50,20v-50,0,-71,-48,-71,-91v0,-42,20,-96,70,-96v16,0,34,7,46,18r-12,16v-9,-7,-21,-12,-33,-12v-32,0,-44,44,-44,70v0,28,11,74,46,74v12,0,29,-10,39,-16","w":148},"d":{"d":"85,-16v54,0,42,-79,43,-137v-9,-4,-22,-7,-32,-7v-44,0,-50,44,-50,78v0,23,9,66,39,66xm158,5v-18,3,-29,-15,-28,-31v-5,21,-29,31,-49,31v-44,0,-63,-46,-63,-83v0,-52,17,-104,76,-104v12,0,22,3,34,6r0,-74r28,0r0,217v0,7,-1,20,9,21","w":184},"e":{"d":"126,-117v0,-20,-13,-43,-36,-43v-23,0,-37,23,-41,43r77,0xm154,-97r-108,0v-1,31,8,81,43,81v14,0,38,-15,50,-23r8,18v-15,13,-40,26,-61,26v-97,0,-89,-187,7,-187v41,0,65,39,61,85","w":169},"f":{"d":"99,-233v-1,0,-39,2,-39,33r0,24r35,0r0,20r-35,0r0,156r-27,0r0,-156r-24,-3r0,-17r24,0r0,-28v0,-41,43,-49,61,-51","w":102,"k":{"f":6}},"g":{"d":"156,-155r-26,0v19,38,1,79,-36,89v-10,3,-40,12,-40,26v22,26,99,-5,99,49v0,41,-43,63,-79,63v-27,0,-60,-9,-60,-42v0,-23,18,-33,36,-43v-41,-7,-20,-50,8,-54v-23,-8,-38,-31,-38,-55v-2,-45,46,-73,87,-54r49,0r0,21xm79,-83v43,-1,44,-79,0,-80v-43,1,-44,79,0,80xm126,12v-6,-38,-86,-25,-85,12v7,46,85,30,85,-12","w":163},"h":{"d":"158,0r-27,0r0,-134v3,-43,-62,-19,-74,-7r0,141r-27,0r0,-250r27,0r0,87v12,-9,38,-19,57,-19v37,0,44,21,44,48r0,134","w":186},"i":{"d":"56,-176r0,176r-26,0r0,-176r26,0xm22,-226v0,-24,40,-25,40,0v0,24,-40,25,-40,0","w":85},"j":{"d":"56,21v0,29,-25,41,-50,48r-6,-19v13,-5,30,-16,30,-32r0,-194r26,0r0,197xm22,-226v0,-24,40,-25,40,0v0,24,-40,25,-40,0","w":85},"k":{"d":"168,0r-29,0r-82,-98r0,98r-27,0r0,-250r27,0r0,147r64,-73r32,0r-65,76r80,94r0,6","w":169},"l":{"d":"54,-250v3,85,-9,181,11,250r-29,0v-18,-71,-5,-166,-9,-250r27,0","w":84},"m":{"d":"249,0r-28,0r0,-134v3,-39,-51,-25,-68,-9r0,143r-27,0r0,-134v2,-40,-52,-24,-69,-7r0,141r-27,0r0,-176r27,0r0,13v24,-20,70,-31,90,0v32,-26,102,-30,102,29r0,134","w":277},"n":{"d":"158,0r-27,0r0,-134v4,-44,-63,-18,-74,-7r0,141r-27,0r0,-176r27,0r0,13v12,-9,38,-19,57,-19v37,0,44,21,44,48r0,134","w":186},"o":{"d":"88,-160v-30,0,-43,45,-43,72v0,27,13,72,43,72v30,0,43,-45,43,-72v0,-27,-13,-72,-43,-72xm88,-182v49,0,70,53,70,94v0,41,-22,93,-70,93v-48,0,-70,-52,-70,-93v0,-41,21,-94,70,-94","w":175},"p":{"d":"140,-94v0,-25,-6,-66,-39,-66v-15,0,-32,11,-43,21v1,53,-10,123,43,123v34,0,39,-53,39,-78xm105,-182v44,0,63,47,63,84v0,42,-12,103,-65,103v-20,0,-37,-8,-45,-27r0,85r-28,0r0,-239r28,0r0,13v12,-11,31,-19,47,-19","w":185},"q":{"d":"85,-17v56,0,43,-78,44,-137v-48,-20,-83,16,-83,60v0,25,4,77,39,77xm156,63r-27,0r0,-85v-9,19,-26,27,-46,27v-48,0,-65,-50,-65,-90v0,-43,20,-97,71,-97v23,0,45,5,67,11r0,234","w":185},"r":{"d":"95,-182v30,0,12,16,8,30v-11,-10,-39,0,-46,14r0,138r-27,0r0,-176r27,0r0,14v8,-8,16,-20,38,-20","w":114,"k":{"o":2,"e":2,"c":2,".":33,"-":6,",":33}},"s":{"d":"134,-46v-3,58,-80,64,-113,31r10,-20v20,20,72,32,77,-8v-9,-47,-94,-34,-91,-92v3,-56,87,-61,114,-22r-14,14v-18,-21,-68,-29,-73,7v13,43,92,33,90,90","w":151},"t":{"d":"95,-22v11,21,5,27,-31,27v-17,0,-31,-10,-31,-40r0,-121r-24,-3r0,-17r25,0r0,-32r25,0r0,32r36,0r0,20r-35,0r0,120v-4,28,27,17,35,14","w":110},"u":{"d":"165,-13r-9,18v-13,0,-23,-7,-25,-20v-31,28,-102,34,-102,-27r0,-134r27,0r0,134v0,15,2,25,20,25v16,0,42,-9,54,-20r0,-139r27,0r0,149v0,6,0,13,8,14","w":186},"v":{"d":"158,-176v-14,59,-36,122,-63,176r-27,0r-64,-176r29,0r49,145v21,-46,39,-95,49,-145r27,0","k":{".":27,",":27}},"w":{"d":"235,-176v-10,60,-26,119,-48,176r-29,0r-25,-90v-6,-21,-11,-54,-11,-54v-3,34,-24,107,-34,144r-30,0r-54,-176r29,0r40,143r35,-143r28,0r38,143v15,-47,26,-94,35,-143r26,0","w":241,"k":{".":20,",":20}},"x":{"d":"148,0r-30,0r-43,-69r-42,69r-29,0r56,-91r-53,-85r30,0r38,61r37,-61r29,0r-51,83","w":152},"y":{"d":"159,-176v-15,59,-49,176,-87,220v-11,13,-26,19,-42,23r-6,-21v22,-6,37,-23,46,-43r-66,-179r29,0r41,115v4,12,8,24,10,36v20,-49,35,-100,48,-151r27,0","w":163,"k":{".":27,",":27}},"z":{"d":"142,0r-130,0r0,-23v27,-45,56,-90,91,-130r-84,0r0,-23r116,0r0,23v-33,41,-64,85,-91,130r98,0r0,23","w":153},"{":{"d":"104,39r-4,19v-35,-1,-56,6,-56,-46v0,-42,4,-106,-30,-107r0,-17v34,0,30,-65,30,-107v0,-53,21,-45,56,-46r4,19v-27,0,-38,-6,-38,33r0,63v0,32,-27,47,-27,47v0,0,27,14,27,46v0,38,-21,112,38,96","w":119,"k":{"J":-7}},"|":{"d":"51,-272r0,278r-22,0r0,-278r22,0","w":79},"}":{"d":"104,-95v-33,1,-29,66,-29,107v0,53,-22,45,-57,46r-4,-19v27,0,39,5,39,-32r0,-64v0,-32,27,-46,27,-46v0,0,-27,-15,-27,-47v0,-30,11,-97,-17,-96r-22,0r4,-19v36,1,57,-8,57,46v0,41,-5,106,29,107r0,17","w":119},"~":{"d":"53,-89v-4,-27,10,-44,31,-44v35,0,83,49,103,3v5,28,-10,45,-31,45v-35,-2,-83,-49,-103,-4","w":239},"'":{"d":"45,-255v9,25,0,52,-3,79r-11,0v-3,-27,-12,-54,-3,-79r17,0","w":74},"`":{"d":"94,-218r-12,16v-23,-12,-47,-28,-66,-46r23,-23v14,20,35,39,55,53","w":121},"\u00a0":{"w":108}}}); diff --git a/lib/fonts/Encient_German_Gothic_400.font.js b/lib/fonts/Encient_German_Gothic_400.font.js deleted file mode 100644 index 1d862958..00000000 --- a/lib/fonts/Encient_German_Gothic_400.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:180,face:{"font-family":"Encient_German_Gothic_400","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"4 0 0 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"5","cap-height":"5",bbox:"0 -260 321 57","underline-thickness":"24.12","underline-position":"-24.12","unicode-range":"U+0020-U+007A"},glyphs:{" ":{w:88},"!":{d:"81,-193v-16,38,-25,83,-25,135r-9,0v0,-48,-9,-94,-25,-136r29,-29xm51,-47r25,26r-25,26r-26,-26",w:102},'"':{d:"76,-240r25,0r-8,96r-9,0xm25,-240r25,0r-8,96r-9,0",w:120},"#":{d:"155,-156r44,0r-2,18r-44,0r-6,39r44,0r-2,18r-44,0r-10,68r-19,0r10,-68r-40,0r-10,68r-19,0r10,-68r-43,0r3,-18r42,0r6,-39r-43,0r3,-18r42,0r9,-63r19,0r-9,63r40,0r9,-63r19,0xm128,-99r6,-39r-40,0r-6,39r40,0",w:223},"$":{d:"93,-135v34,16,72,26,72,68v0,35,-30,57,-56,71r-16,-8r1,26r-12,7v1,-12,1,-24,0,-36v-26,-7,-53,-5,-71,11r-7,-9v14,-24,40,-47,78,-40r0,-51v-26,-15,-66,-17,-65,-57v1,-42,32,-63,65,-73r0,-26r12,-7r-1,33v20,2,38,13,53,21r-18,31v-11,-6,-22,-12,-35,-15r0,54xm82,-191v-30,-12,-58,21,-28,39v8,6,18,10,28,13r0,-52xm134,-27v22,-34,-15,-58,-41,-66r0,49v14,4,28,9,41,17",w:177},"%":{d:"50,-230v52,9,49,99,3,116v-32,-9,-55,-54,-31,-89v7,-10,16,-19,28,-27xm145,-228r12,6r-116,225r-11,-7xm134,-112v33,7,52,55,30,90v-7,11,-16,20,-28,27v-32,-11,-54,-55,-30,-90v7,-10,16,-19,28,-27xm66,-134v20,-31,-2,-69,-29,-75v-21,31,4,68,29,75xm150,-16v16,-30,4,-66,-30,-75v-19,32,3,69,30,75",w:186},"&":{d:"211,-112v11,9,20,18,39,15v1,23,-42,29,-58,8r-31,21v13,20,20,43,50,46v20,2,26,-14,39,-8v-13,48,-89,42,-105,5r-13,-22r-74,52r-51,-76r82,-53v-10,-23,-29,-39,-32,-67v-2,-15,13,-18,24,-23r65,-31v15,11,32,23,32,46v-1,36,-32,46,-55,63r34,61xm119,-144v13,-10,30,-17,31,-38v2,-30,-37,-51,-57,-24v-6,26,19,41,26,62xm82,-22r46,-32r-35,-63r-53,34",w:260},"'":{d:"25,-240r25,0r-8,96r-9,0",w:76},"(":{d:"81,57v-66,-35,-89,-159,-43,-235v18,-30,41,-57,69,-79r4,5v-36,38,-67,75,-67,147v0,65,23,107,59,135",w:111},")":{d:"34,-257v65,38,91,157,43,236v-18,29,-40,56,-68,78r-4,-4v65,-46,93,-190,29,-261r-22,-21",w:111},"*":{d:"74,-197v13,-4,22,-10,32,-20r16,11r-8,19v-11,-2,-24,-3,-35,0v2,11,18,17,26,25r-6,18r-20,-1v-2,-15,-3,-21,-11,-35v-5,9,-9,23,-12,35r-19,1r-6,-19v11,-6,20,-14,29,-24v-12,-3,-26,-2,-38,0r-8,-17r15,-13v12,7,18,16,34,19v-1,-12,-5,-24,-10,-35r15,-12v23,8,7,27,6,48",w:136},"+":{d:"174,-135r0,19r-74,0r0,71r-20,0r0,-71r-74,0r0,-19r74,0r0,-70r20,0r0,70r74,0"},",":{d:"17,26v19,-12,20,-36,0,-49r25,-26r26,25v-6,26,-25,48,-49,57",w:83},"-":{d:"17,-105r61,0r-12,28r-62,0",w:82},".":{d:"42,-47r26,26r-26,26r-26,-26",w:83},"/":{d:"158,-260r16,8r-159,307r-15,-9",w:176},"0":{d:"88,-230v68,17,104,116,57,182v-15,22,-34,39,-57,53v-65,-21,-104,-113,-56,-180v15,-20,33,-40,56,-55xm59,-197v-26,32,-32,95,-1,129v15,17,33,31,58,40v54,-60,7,-162,-57,-169",w:176},"1":{d:"46,-230v52,23,16,127,30,194v1,5,5,9,11,11v8,-4,16,-17,22,-6r-43,36r-40,-29r12,-13r-2,-148v-2,-6,-7,-10,-12,-14v-6,6,-12,12,-17,2",w:115},"2":{d:"31,-28v35,-20,92,-18,131,-2r-30,35v-33,-18,-84,-21,-120,0v-12,-17,16,-45,29,-60v32,-36,108,-92,62,-151r-66,53r-24,-23r66,-54r78,47v6,94,-85,102,-126,155",w:169},"3":{d:"106,-123v47,3,80,73,33,100v-13,8,-35,17,-67,28r-65,-55r26,-25r71,58v33,-26,13,-108,-39,-100r-19,1r0,-12v44,-5,65,-17,66,-64v1,-25,-25,-14,-34,-2r-34,25r-21,-23r51,-38r79,35v3,38,-18,62,-47,72",w:169},"4":{d:"99,-230v45,8,23,80,28,128r33,0r6,31r-39,0v-5,25,4,57,29,36r4,6r-42,34r-38,-26v11,-10,14,-28,12,-50r-78,0r-7,-33xm15,-102r77,0v-4,-31,9,-77,-10,-93",w:173},"5":{d:"101,-160v49,13,74,88,33,130v-16,16,-36,26,-61,35r-66,-39r25,-28r73,42v46,-35,7,-104,-37,-108r-47,31r23,-129r100,0r-14,35r-84,0r-13,76",w:162},"6":{d:"115,-150v45,11,60,78,24,112v-16,16,-35,29,-55,43v-69,-15,-102,-111,-54,-174v16,-21,37,-42,63,-61r58,32r-25,29r-59,-32v-18,29,-27,61,-27,96xm113,-25v18,-17,28,-55,5,-76v-10,-9,-21,-17,-33,-22r-44,27v8,38,36,60,72,71",w:167},"7":{d:"128,-192v-48,0,-101,-7,-112,29r-9,0r32,-63r122,0r-1,10v-46,49,-80,116,-81,203r-48,18v3,-93,52,-143,97,-197",w:168},"8":{d:"116,-138v39,9,56,69,23,99v-13,12,-29,34,-58,44v-40,-1,-74,-18,-74,-55v0,-26,18,-42,33,-57v-33,-7,-37,-52,-15,-78v10,-13,23,-28,39,-45v41,-4,84,8,84,45v0,24,-16,35,-32,47xm104,-140v30,-15,18,-60,-23,-54r-36,-2v-16,17,-12,48,17,51xm96,-33v44,5,62,-53,16,-63v-18,-4,-41,-6,-62,-8v-9,9,-17,15,-18,30v1,30,34,38,64,41",w:163},"9":{d:"82,-230v68,18,99,109,55,175v-15,22,-34,42,-58,60r-61,-33r24,-30r58,31v16,-22,29,-55,25,-93r-74,46v-42,-15,-60,-79,-24,-114v14,-13,32,-28,55,-42xm81,-104r42,-25v-7,-36,-36,-61,-71,-70v-37,32,-5,87,29,95",w:165},":":{d:"42,-154r26,26r-26,26r-26,-26xm42,-47r26,26r-26,26r-26,-26",w:83},";":{d:"42,-154r26,26r-26,26r-25,-26xm17,26v19,-12,20,-36,0,-49r25,-26r26,25v-6,26,-25,48,-49,57",w:83},"<":{d:"168,-66r0,38r-156,-77r0,-33r156,-76r0,38r-115,55"},"=":{d:"174,-161r0,19r-168,0r0,-19r168,0xm174,-108r0,18r-168,0r0,-18r168,0"},">":{d:"168,-137r0,32r-156,77r0,-38r115,-55r-114,-55r-1,-38"},"?":{d:"67,-163v2,-25,-38,-34,-51,-14r-4,-3r25,-43v36,1,66,13,66,49v0,46,-49,67,-52,115v-5,1,-7,-2,-7,-6v-1,-38,21,-65,23,-98xm47,-46r26,25r-26,26r-25,-26",w:114},"@":{d:"129,-237v84,-7,144,101,81,162v-16,15,-36,30,-57,37v-11,-9,-13,-14,-17,-31r-38,31v-34,-20,-21,-69,5,-90r-25,-44v18,1,31,-1,42,-12v13,5,37,21,51,7r4,2v-17,25,-8,67,-10,108v1,3,3,4,6,5v28,-8,52,-39,52,-72v0,-57,-37,-90,-95,-90v-61,0,-99,43,-105,103v-10,108,146,147,194,61r15,-1v-18,36,-52,64,-106,64v-72,0,-117,-52,-117,-123v0,-70,51,-111,120,-117xm109,-128r27,12r0,-35r-48,-16xm118,-61r18,-15r0,-35r-29,-12v-12,23,-7,50,11,62",w:246},A:{d:"215,-238v-55,29,-13,131,-20,203v2,13,19,8,22,0r6,7r-40,34v-16,-9,-25,-22,-24,-48r-60,48v-22,-13,-41,-36,-71,-36v-22,0,15,35,-9,35v-13,0,-17,-20,-10,-30r42,-62v-24,-14,-46,-40,-46,-75v0,-50,39,-84,90,-84v36,0,57,14,79,29v10,-12,23,-21,37,-27xm73,-105r83,0r-4,-86v-4,-3,-8,-7,-12,-10xm54,-160v7,-25,32,-35,69,-30r10,-15v-55,-35,-145,18,-104,82v6,11,15,20,27,28r49,-70v-22,-10,-36,-4,-45,8xm124,-24r34,-27r-1,-29r-102,0r-14,21",w:219},B:{d:"68,-31v68,-12,33,-109,55,-170v19,-23,52,-32,80,-46r50,68r-38,29r43,21v-10,18,-5,60,-6,92v-38,5,-74,20,-98,42v-22,-13,-49,-27,-83,-20v-25,0,-50,17,-34,41v0,5,-5,10,-10,10v-28,-9,3,-42,11,-52v8,-10,24,-23,24,-37v0,-22,-32,-18,-33,1r-7,0v0,-24,15,-37,39,-37v5,-30,-35,-48,-47,-19r-7,-2v2,-25,22,-43,52,-34v-2,-41,20,-55,44,-72v-31,22,-85,-22,-89,22r-9,0v3,-27,16,-50,46,-49v33,0,69,20,97,-1r5,8v-32,14,-59,32,-59,79v0,48,9,104,-26,126xm172,-104v14,3,44,10,44,-8r-31,-16v-7,5,-16,9,-13,24xm179,-226v-64,12,5,136,-56,173v-7,5,-15,10,-25,16v18,-6,49,-6,66,1r0,-135r8,0r0,44r51,-39xm172,-71v7,-9,37,-5,44,0r0,-25v-18,4,-27,4,-44,0r0,25xm216,-63v-10,-5,-35,-9,-44,0r0,29v13,12,29,1,44,-4r0,-25",w:263},C:{d:"128,-32v37,0,64,-16,87,-33r4,5v-21,34,-56,64,-106,64v-89,0,-137,-108,-88,-182v13,-20,32,-35,56,-48r3,4v-45,28,-68,98,-30,150v25,-18,9,-75,13,-113r70,-60v25,13,51,19,76,19r-32,31v-22,-2,-39,-10,-53,-18r0,181xm102,-145v1,54,-18,56,-44,80v17,19,37,29,62,32r0,-184r-18,16r0,56",w:224},D:{d:"58,-103v-3,-52,14,-72,48,-89v-51,2,-101,8,-97,-48v13,5,15,21,37,16v77,1,164,-18,189,46v15,37,13,94,16,146r-52,37v-61,-19,-127,-17,-175,11r-4,-7v36,-29,93,-37,94,-102v1,-36,-6,-76,11,-100v-62,11,-5,123,-59,159v-18,12,-33,26,-51,38r-5,-7v20,-14,42,-26,43,-54v1,-22,-26,-41,-43,-20r-5,-4v8,-16,27,-35,53,-22xm211,-130v0,-46,-17,-63,-62,-64r0,64v15,14,45,14,62,0xm215,-78r-3,-43v-17,12,-45,15,-63,0r0,44v16,-13,46,-13,66,-1xm136,-194v-32,34,8,126,-37,159v15,-3,29,-5,42,-5r0,-154r-5,0xm216,-28r-1,-40v-22,-14,-44,-18,-66,-1r0,29v27,1,42,6,67,12",w:256},E:{d:"128,-34v37,-1,66,-13,90,-31r2,3v-18,34,-54,62,-100,63v-95,3,-144,-109,-95,-185v12,-19,32,-34,58,-47r3,5v-45,21,-70,100,-32,150v27,-18,9,-75,14,-115r70,-56v23,10,45,21,75,18r2,6r-51,51r42,1r-20,33r-58,-2r0,106xm128,-147r51,-51v-19,-3,-36,-11,-51,-18r0,69xm102,-131v0,38,-22,41,-43,61v15,19,35,31,62,35r0,-185r-19,15r0,74",w:225},F:{d:"65,36v-23,-11,-42,-24,-53,0r-7,-2v3,-18,13,-39,34,-39v22,1,32,9,49,19v10,-6,9,-22,9,-36r0,-124v-32,1,-46,5,-63,23r-4,-4v11,-29,27,-45,67,-44r0,-28v41,-5,71,-17,88,-46v18,16,55,29,66,0r5,1v1,38,-40,54,-72,36r0,37r46,0r-10,25r-36,0v-5,54,12,122,-33,143xm103,10v27,-17,47,-31,48,-70r0,-141r-21,7v-6,71,17,165,-27,204",w:261},G:{d:"170,-175v39,3,68,26,68,66v0,73,-65,108,-138,113v-93,6,-120,-117,-62,-175v26,-26,63,-50,93,-74v26,14,53,29,90,22r3,4xm105,-136r71,-56v-29,-7,-47,-12,-71,-24r0,80xm208,-100v-3,-31,-39,-53,-74,-39r0,39v21,16,54,16,74,0xm209,-91v-20,14,-54,18,-75,0r0,34v23,-15,43,-15,67,0v6,-11,7,-19,8,-34xm197,-50v-21,-12,-44,-11,-63,3r0,35v29,0,53,-16,63,-38xm58,-50v23,-26,8,-89,12,-134v-31,28,-44,95,-12,134xm126,-12r0,-124r-21,12v1,29,2,54,-21,65r-20,16v13,16,36,30,62,31",w:243},H:{d:"209,-197v50,17,67,129,25,170v-16,17,-40,27,-51,49v-1,14,24,-6,24,13v-5,21,-39,11,-35,-8v7,-37,46,-60,50,-99v-44,-23,-97,8,-119,35v29,0,71,10,85,-13r6,5r-35,50v-17,-13,-45,-18,-74,-18v-25,1,-48,3,-51,25v1,7,13,27,-3,27v-8,0,-12,-8,-12,-15v7,-27,39,-46,45,-73v-1,-19,-21,-20,-26,-1r-6,-1v3,-18,12,-33,32,-33v5,-32,-31,-50,-49,-23r-5,-2v7,-24,21,-30,49,-31v0,-38,10,-56,34,-73v-33,11,-71,-20,-81,19r-7,-2v6,-41,44,-54,91,-41v17,0,34,0,44,-8r3,8v-26,15,-49,20,-49,61v0,51,8,113,-17,145v61,-18,22,-117,48,-176v10,-23,41,-29,67,-38r2,8v-45,10,-47,38,-45,90xm149,-128v20,10,56,11,74,-1v-3,-21,-17,-31,-33,-42r-41,34r0,9xm222,-119v-17,12,-54,9,-73,0r0,39v12,-14,59,-13,73,0r0,-39",w:261},I:{d:"93,-75v5,-37,-31,-67,-58,-41r-3,-2v8,-17,26,-34,50,-27v0,-31,12,-58,36,-81v-26,18,-77,-13,-89,22r-4,0v1,-38,43,-49,79,-34v16,2,26,1,39,-5r3,4v-47,33,-24,100,-24,164v0,27,-15,40,-44,40v13,9,24,26,43,27v84,-23,-55,-213,74,-234v7,12,-20,10,-23,19v-15,39,7,100,6,147v0,41,-19,82,-61,81v-34,-2,-89,-42,-107,-1r-5,-2v9,-45,82,-29,88,-77",w:203},J:{d:"40,-127v10,-16,48,-21,62,-6v1,-44,22,-58,52,-78v-39,14,-82,-13,-118,-2v-6,2,-9,8,-9,14v12,2,28,-3,28,14v1,9,-8,17,-17,17v-14,0,-21,-12,-21,-26v2,-31,26,-50,57,-50v45,0,112,32,142,-4r5,6v-19,23,-37,40,-37,75v0,107,-12,201,-109,208v-21,-3,-54,-19,-64,4r-6,-3v6,-34,42,-46,81,-32v49,-6,21,-74,-6,-84v-11,-11,-33,3,-40,-8v18,-14,39,-17,59,-3v-1,-28,-28,-53,-55,-36xm99,23v90,-13,24,-157,71,-222v6,-8,14,-17,23,-27v-71,26,-64,111,-64,203v0,24,-14,36,-30,46",w:226},K:{d:"58,-244v24,0,62,20,78,-2r3,3v-28,42,-23,103,-29,164v-14,26,-43,42,-64,62v42,-21,97,-33,83,-107v1,-52,5,-91,31,-121r6,5v-15,24,-28,49,-28,83r61,-49r38,46r-65,44v31,20,44,49,68,84v9,13,19,-13,25,1r-36,36v-16,-13,-22,-26,-34,-45r-39,45v-47,-22,-91,-24,-137,0v-9,-26,48,-34,48,-72v0,-16,-20,-26,-31,-14r-5,-2v3,-21,35,-29,49,-11v3,-33,-22,-61,-49,-41r-6,-1v1,-22,39,-32,53,-14v0,-41,18,-55,40,-76v-18,11,-44,16,-72,11v-16,-3,-29,13,-33,25r-8,-2v5,-26,23,-52,53,-52xm138,-102r66,-45r-26,-31r-40,32r0,44xm107,-39v27,2,47,3,64,15r21,-23v-15,-24,-26,-39,-54,-47v-1,30,-10,42,-31,55",w:270},L:{d:"71,-94v4,-25,-22,-41,-42,-27r-4,-4v9,-12,23,-22,42,-14v-3,-37,8,-58,28,-76v-33,20,-80,-20,-80,22v-8,6,-7,-7,-9,-13v-1,-22,16,-38,37,-38v28,0,61,24,82,1r3,6v-53,22,-11,111,-33,163v-4,12,-12,26,-23,40v51,-32,52,-82,45,-149v-4,-39,29,-60,67,-60r4,9v-21,2,-40,10,-38,35v6,55,7,110,-28,136v-8,7,-17,15,-27,23v39,-10,85,-11,108,15v8,-5,16,-22,23,-8r-41,38v-37,-38,-120,-30,-160,0r-4,-8v25,-15,48,-30,48,-58v0,-18,-14,-32,-32,-24r-3,-4v7,-11,25,-16,37,-5",w:231},M:{d:"279,5v-17,-11,-24,-25,-24,-54r0,-153v-11,-6,-21,-26,-33,-13r0,80r20,0r-20,26r0,68v6,-4,13,-16,18,-5r-58,51v-10,-13,-24,-25,-38,-35v14,-16,13,-47,12,-80r-45,0v-1,60,11,129,-51,129v-20,0,-45,-7,-47,14r-8,0v-1,-51,65,-32,67,-79v2,-32,-30,-69,-54,-40r-6,-5v8,-16,23,-26,44,-29v-4,-76,59,-95,109,-123v16,10,26,17,25,42r61,-44r37,30v7,-5,14,-21,21,-9v-32,37,-14,128,-15,190v5,15,21,-5,25,7xm191,-135r24,0r0,-75r-24,18r0,57xm140,-220v-34,12,-29,58,-29,105r15,-20r30,0v-3,-31,9,-72,-16,-85xm191,-110v2,28,-11,93,24,74r0,-74r-24,0xm91,-168v0,61,17,139,-27,159v76,3,18,-125,45,-192v-12,9,-18,20,-18,33",w:324},N:{d:"46,-107v12,-18,47,-20,61,-3v-1,-30,-29,-52,-57,-36v-7,-14,21,-25,41,-18r16,7r0,-35r108,-53v60,10,108,63,79,133v-12,28,-38,59,-56,85v17,-7,38,-9,63,-5v6,-7,8,-24,20,-16r-30,52v-25,-15,-75,-8,-81,21v-18,-4,6,-25,7,-34r42,-81v-28,-19,-65,-21,-94,-1v11,83,-34,137,-114,105v-17,-2,-31,-4,-41,7r-5,-4v13,-30,51,-33,88,-23v39,-4,22,-57,-5,-58v-13,-5,-23,11,-30,2v6,-17,37,-22,53,-10v-5,-25,-33,-45,-61,-30xm165,-156v26,21,79,18,102,-4v-12,-36,-54,-60,-102,-47r0,51xm165,-101v35,-21,66,-16,97,4v6,-14,13,-35,7,-54v-33,22,-66,24,-104,6r0,44xm142,-62v1,31,-4,51,-24,61v35,-2,40,-26,40,-63r0,-140v-6,1,-11,3,-16,6r0,136",w:326},O:{d:"138,-245v74,8,144,77,100,156v-25,45,-69,93,-130,93v-89,0,-125,-99,-87,-179xm128,-163v18,20,63,23,81,0v-13,-26,-47,-44,-81,-49r0,49xm212,-155v-20,21,-65,24,-84,0r0,55v24,-25,64,-17,85,4v9,-14,4,-43,-1,-59xm210,-87v-15,-25,-65,-28,-82,-3r0,66v41,0,71,-30,82,-63xm102,-121v1,40,-17,51,-41,68v17,17,36,26,59,29r0,-189r-18,-1r0,93xm56,-59v23,-25,8,-90,12,-134v-40,24,-47,96,-12,134",w:257},P:{d:"23,-220v23,-35,97,-31,94,23r17,-12r0,-31r8,0r0,26r43,-30v35,24,68,38,68,91r0,110r-52,47v-12,-7,-39,-16,-59,-19r0,63r-60,0r0,-66v-30,1,-51,9,-73,22r-4,-4v21,-20,43,-42,77,-48v1,-45,-23,-68,-59,-77r-2,-6r61,-42v4,-37,-23,-64,-54,-41xm142,-150v17,15,64,19,75,-5v-2,-37,-28,-47,-57,-62r-18,12r0,55xm142,-91v19,-15,54,-15,75,-2r0,-49v-21,14,-52,19,-75,1r0,50xm142,-50v31,1,50,9,75,21r0,-54v-20,-16,-55,-17,-75,0r0,33xm82,-116r0,-47r-33,22v11,8,25,14,33,25xm117,40r17,0r0,-240r-17,12r0,228",w:258},Q:{d:"261,-137v0,46,-28,65,-52,93r40,30v5,-6,11,-13,17,-4r-34,32r-51,-37v-24,14,-41,26,-75,27v-90,1,-124,-105,-81,-179r116,-70v66,9,120,40,120,108xm133,-163v21,17,60,22,83,-1v-15,-26,-47,-40,-83,-45r0,46xm219,-157v-20,19,-63,23,-86,3r0,52v23,-19,64,-22,87,5v6,-20,7,-42,-1,-60xm218,-89v-19,-23,-64,-29,-85,-1r0,64v41,-1,71,-30,85,-63xm106,-122v0,41,-17,50,-40,70v17,14,33,21,59,26r0,-184r-19,-1r0,89xm60,-58v21,-28,7,-87,11,-132v-40,24,-47,95,-11,132",w:271},R:{d:"18,-220v19,-34,99,-33,95,20r64,-43r55,74r-53,36v47,18,34,82,72,109v6,-5,13,-17,18,-6r-37,35v-37,-30,-27,-106,-85,-116r-7,4r0,68v9,4,20,7,27,15v7,-5,16,-23,22,-10r-40,39v-35,-27,-99,-29,-141,-4r-3,-3v20,-23,40,-39,75,-44v4,-44,-30,-67,-63,-81r0,-5r62,-44v5,-38,-27,-61,-57,-40xm140,-116r58,-40r-44,-62r-14,10r0,92xm113,-45r19,4r0,-162r-19,13r0,145xm79,-113r0,-53r-37,26v16,7,25,15,37,27",w:274},S:{d:"153,-166v68,-9,127,32,96,94v-17,32,-55,53,-88,70v-11,-3,-29,-10,-40,-16v-27,14,-41,21,-73,22v-23,0,-41,-9,-43,-30v3,-33,41,-38,77,-33r13,-22v-42,2,-83,-2,-83,-39v0,-21,14,-32,30,-38v3,-45,36,-66,63,-87r70,25v6,-7,8,-25,18,-15xm65,-186v0,34,49,23,78,21r17,-28v-23,-12,-37,-20,-64,-21v-15,-1,-32,13,-31,28xm190,-26v21,-15,44,-33,44,-63v0,-46,-50,-52,-99,-46r-13,22v38,-2,88,-13,93,26v-3,31,-29,35,-51,50xm126,-134v-32,1,-77,12,-82,-18v-17,21,0,43,25,42r44,-2xm152,-41v15,-10,30,-14,33,-32v-8,-26,-56,-8,-81,-8r-13,24v26,3,38,8,61,16xm22,-19v-1,11,11,15,21,15v22,0,45,-5,68,-17v-19,-6,-39,-13,-64,-13v-14,0,-24,4,-25,15",w:263},T:{d:"175,-31v31,-8,53,-29,67,-54r6,1v-14,51,-53,87,-113,87v-65,0,-108,-41,-108,-106v0,-55,30,-83,66,-109v-41,-5,-65,10,-82,45r-6,-2v11,-61,73,-85,146,-68v33,7,76,17,91,-13r6,2v-3,33,-32,55,-73,49r0,168xm167,-30r0,-171r-23,-4v-3,48,11,113,-17,139r-28,22v21,13,43,20,68,14xm92,-50v31,-28,10,-108,16,-162v-53,21,-67,126,-16,162",w:253},U:{d:"6,-180v-3,-38,7,-70,40,-71v33,-1,80,34,101,2r5,0r0,93v11,12,43,15,57,4r0,-51r-16,-12v-8,5,-17,26,-24,13r40,-41r34,25v8,-5,15,-25,23,-12v-39,28,-16,119,-22,182v-2,18,7,26,21,19r4,7r-36,30v-17,-12,-24,-21,-25,-47v-28,24,-52,43,-97,43v-57,0,-93,-42,-93,-100v0,-68,32,-98,84,-122v0,0,-93,-12,-89,38r-7,0xm209,-143v-20,11,-44,7,-57,-3r0,39v22,-10,37,-8,57,1r0,-37xm152,-25v24,-3,40,-13,57,-26r0,-46v-20,-10,-36,-13,-57,-1r0,73xm85,-39v14,11,36,18,59,15r0,-205v-24,25,-11,83,-14,128v-2,30,-24,52,-45,62xm78,-45v37,-27,-4,-123,34,-160v7,-7,7,-7,16,-19v-61,21,-104,121,-50,179",w:274},V:{d:"76,-109v-1,-45,-2,-109,-44,-109v-13,0,-17,14,-20,26r-7,-2v4,-27,11,-55,39,-55v33,0,48,28,57,55r100,-51v34,47,30,133,-6,177v-21,25,-45,50,-68,73v-22,-16,-51,-19,-73,0r-6,-7v24,-31,41,-90,-4,-104v-7,-2,-17,9,-22,3v14,-22,40,-30,54,-6xm193,-151v-1,-29,-9,-50,-22,-70r-68,35r7,39v22,8,61,8,83,-4xm180,-87v7,-18,12,-33,13,-56v-22,15,-54,16,-83,4v0,15,-2,29,-5,44v29,-9,52,-3,75,8xm63,-11v21,-17,51,-31,84,-19v13,-13,21,-32,30,-49v-17,-9,-53,-14,-75,-6v-8,30,-25,50,-39,74",w:232},W:{d:"17,-109v6,-21,40,-25,52,-7v-2,-44,-4,-93,-39,-103v-10,-1,-17,14,-17,24r-8,-1v4,-25,11,-50,39,-50v30,0,44,29,51,55r78,-56v12,16,21,34,29,54r77,-53v38,42,43,133,3,179v-22,25,-45,49,-70,72v-18,-27,-63,-19,-84,0v-21,-30,-62,-15,-87,0v-8,-24,23,-43,23,-79v0,-23,-21,-45,-42,-30xm275,-149v-2,-24,-12,-53,-23,-68r-48,32v4,10,5,23,6,36v20,11,48,10,65,0xm265,-85v5,-15,11,-35,10,-56v-16,11,-49,8,-65,0v0,21,-4,33,-11,47v23,-8,49,-2,66,9xm102,-149v22,10,52,13,72,-3v-5,-24,-14,-50,-27,-66r-50,35v4,12,5,24,5,34xm262,-78v-23,-18,-72,-16,-80,13v-12,17,-26,33,-41,47v27,-13,54,-29,96,-19v9,-11,17,-28,25,-41xm95,-91v25,-13,50,-6,70,7v5,-18,12,-37,9,-59v-18,12,-53,17,-72,2v4,16,-4,35,-7,50xm56,-16v24,-13,47,-28,86,-20v7,-13,15,-26,20,-41v-17,-13,-51,-18,-71,-3",w:318},X:{d:"5,-210v8,-28,56,-51,80,-24v16,19,26,52,37,78r41,-91v14,9,29,18,48,27r-14,28r-41,-17r-30,68r69,0r-12,28r-43,0r34,77v9,28,29,-15,37,4r-41,37v-39,-18,-43,-68,-63,-104r-46,104v-14,-12,-31,-20,-51,-27r15,-32r44,18r35,-77r-67,0r13,-28r41,0v-18,-26,-16,-80,-58,-78v-7,-2,-20,18,-28,9",w:216},Y:{d:"169,-234v46,0,69,35,70,82v1,71,-32,114,-102,114v-50,0,-118,-13,-123,35v11,59,86,7,126,7v24,0,44,9,46,31v1,16,-17,24,-27,13v-15,-10,13,-30,-6,-33v-30,6,-60,34,-91,34v-32,0,-57,-16,-57,-47v0,-31,26,-48,58,-49v-1,-35,-13,-63,-48,-65r0,-5v23,-5,36,4,48,13v0,-32,-14,-61,-48,-55v-3,-7,3,-8,8,-10v20,-4,29,2,40,10v4,-39,-8,-83,-46,-66r-4,-6v29,-25,78,-16,84,26v24,-14,41,-29,72,-29xm121,-167v16,21,61,22,78,0v-5,-33,-42,-61,-78,-41r0,41xm121,-107v21,-19,58,-18,81,2v0,-18,4,-36,0,-53v-21,18,-58,23,-81,1r0,50xm200,-96v-18,-19,-60,-23,-79,-2r0,51v42,0,68,-15,79,-49xm97,-47r16,0r0,-157r-16,10r0,147",w:244},Z:{d:"36,-19v37,-16,93,-30,132,-7v8,-6,15,-28,24,-15r-36,46v-47,-24,-98,-24,-146,0v-11,-10,8,-16,13,-27v18,-23,31,-54,46,-81r-46,0r5,-12r48,0r10,-19r-50,0r6,-13r52,0v21,-28,45,-53,69,-78v-31,16,-85,30,-122,10v-9,6,-16,30,-27,18r40,-47v35,20,96,19,129,-1r4,5v-21,29,-37,60,-55,93r52,0r-6,13r-51,0r-11,19r54,0r-6,12r-56,0v-18,32,-44,58,-72,84",w:197},"`":{d:"87,-249r38,43r-57,-12r-13,-31r32,0"},a:{d:"60,-178v18,8,47,28,65,8r4,3v-21,28,-14,94,-10,138v4,10,18,-6,21,3r-38,31v-11,-11,-19,-20,-21,-39r-48,39v-13,-12,-27,-24,-28,-46v0,-30,20,-50,34,-67r-31,-55v25,0,39,-5,52,-15xm46,-108r35,14r0,-42r-61,-21xm41,-30v14,17,30,-6,40,-13r0,-43r-38,-17v-7,20,-18,55,-2,73",w:145},b:{d:"108,-178v37,22,20,96,24,152v-22,8,-40,16,-54,31v-15,-15,-40,-27,-66,-31v2,-10,9,-14,9,-29r0,-144v-1,-20,-4,-25,-16,-36r3,-4v13,5,16,7,26,15v11,-11,24,-18,41,-21r1,4v-29,14,-16,66,-19,106xm57,-41r39,17v-4,-42,12,-102,-11,-127r-28,24r0,86",w:137},c:{d:"5,-143v22,-5,42,-21,56,-35r42,24r-18,26r-30,-17r0,110r31,14v6,-3,13,-17,19,-8r-42,34v-15,-11,-33,-18,-54,-20v16,-21,9,-67,10,-105v0,-15,-1,-16,-14,-18r0,-5",w:110},d:{d:"5,-22v18,-26,9,-83,11,-128v14,-3,25,-8,34,-15r-45,-34r0,-41r109,80v3,-5,17,-21,20,-8v-19,31,-3,98,-8,144v-23,7,-35,15,-53,29v-21,-15,-38,-26,-68,-27xm53,-43r38,18r0,-110v-13,-6,-26,-29,-38,-14r0,106",w:139},e:{d:"7,-18v19,-19,12,-67,13,-107v1,-12,-10,-12,-15,-17r70,-36r44,57r-65,54r0,33r31,16r26,-18r3,5r-52,36v-14,-9,-35,-21,-55,-23xm54,-79r37,-30r-37,-47r0,77",w:124},f:{d:"8,-22v20,-25,8,-85,11,-130r-14,0r0,-19r14,0r0,-44r37,-29r35,9r-6,28r-30,-8r0,44r23,0r0,19r-23,0r0,116r18,14v5,-4,11,-13,16,-4r-38,31v-14,-13,-24,-20,-43,-27",w:96},g:{d:"98,49v-27,-12,-58,-10,-89,-1r-4,-4r42,-49r-38,-28r0,-123v21,-2,41,-10,59,-21r50,24r28,-15r0,38r-28,-8r0,83v2,33,54,71,6,91xm66,-28r18,-21r0,-89r-40,-15r0,109xm124,23v-18,-13,-38,-35,-40,-62r-47,56v33,-5,55,-5,81,10",w:151},h:{d:"57,-137v4,-40,-12,-92,21,-103r-2,-5v-17,3,-31,10,-41,22v-11,-9,-15,-13,-27,-18r-3,4v12,11,15,17,16,36r0,169r-15,12r31,25r31,-24r-11,-13r0,-97r27,-21v24,19,9,76,12,114v4,52,-26,67,-62,82r2,6v48,-19,100,-35,96,-104v-3,-47,13,-107,-25,-125",w:138},i:{d:"47,-250r30,1r-30,41r-8,-1xm6,-25v22,-18,9,-78,12,-119r-13,-10r30,-24r30,25r-12,11r0,111r10,9v5,-4,12,-13,15,-3r-37,30v-12,-13,-21,-20,-35,-30",w:83},j:{d:"54,-249r31,0r-29,41r-9,-1xm9,46v60,-32,-7,-130,25,-185r-13,-13v-6,3,-12,12,-16,3r39,-28r33,30v-42,42,12,124,-24,168v-9,11,-23,21,-41,31",w:90},k:{d:"79,-240v-30,12,-16,66,-19,106r45,-44r34,36r-38,35v25,19,21,59,40,83v5,-4,10,-10,13,-2r-38,31v-9,-8,-13,-23,-16,-38r-46,38v-8,-12,-27,-21,-42,-27r0,-5v10,-4,10,-11,11,-25r0,-142v0,-23,-3,-31,-18,-41v8,-9,23,6,30,13v13,-13,22,-17,43,-23xm60,-79r50,-45r-24,-26r-26,26r0,45xm77,-23r22,-18v-3,-22,-9,-32,-24,-43r-15,14r0,34",w:159},l:{d:"77,-239v-15,12,-18,19,-19,44r0,159v9,5,17,18,26,7r5,6r-35,28v-11,-13,-26,-22,-43,-26r0,-6v10,-4,12,-11,12,-26r0,-141v0,-22,-3,-31,-18,-40r2,-5v11,4,20,10,28,17v11,-11,24,-17,40,-23",w:93},m:{d:"228,-159v-27,22,-13,83,-15,128v4,14,18,-6,21,7r-35,29v-36,-19,-19,-90,-23,-142r-13,-14r-26,22r0,96r13,13r-29,25r-31,-25r12,-13v-4,-40,12,-97,-15,-117r-24,21r0,96r13,13r-30,25r-31,-26r13,-13v-2,-36,5,-82,-4,-111v-6,-7,-16,9,-19,-4r38,-29v16,12,19,18,20,41r48,-41v13,10,25,20,25,41r48,-41r26,28v6,-4,13,-20,18,-9",w:239},n:{d:"41,-178v12,11,21,16,21,37r44,-37r26,26v7,-5,16,-23,22,-10v-29,19,-17,86,-16,130v5,14,20,-10,22,6r-38,31v-34,-22,-19,-91,-22,-144r-14,-14r-24,21r0,98r12,13r-31,26r-31,-27r14,-13r0,-97v1,-18,-16,-10,-21,-19",w:165},o:{d:"71,5v-18,-13,-38,-27,-66,-28v17,-20,8,-83,10,-125v19,-6,36,-16,51,-30v18,12,37,21,57,26r0,128v-22,8,-35,16,-52,29xm50,-41r38,17r0,-110r-38,-16r0,109",w:128},p:{d:"103,-178v19,14,35,27,35,60r0,88v-21,11,-34,17,-48,33v-10,-5,-17,-12,-27,-13v-5,23,3,46,19,55r-3,6v-16,-5,-27,-11,-38,-22v-7,7,-19,12,-29,17r-2,-5v19,-11,18,-32,18,-61r-23,-4r0,-12r23,-3v-1,-34,3,-72,-2,-103v-3,-13,-18,2,-20,-8r35,-28v14,11,22,23,22,38xm104,-26v-5,-43,15,-104,-19,-122r-22,19r0,90v16,2,30,5,41,13",w:143},q:{d:"116,-1v-1,22,3,35,18,42v-8,12,-24,-8,-32,-11v-9,11,-25,18,-42,21r-1,-5v26,-9,22,-44,22,-79r-46,38v-20,-17,-31,-20,-30,-57r0,-96v21,-5,39,-18,54,-29v19,12,37,29,67,29v1,9,-9,10,-9,17xm57,-23r24,-19r0,-86r-39,-19v5,42,-14,103,15,124",w:138},r:{d:"17,-22v18,-20,11,-67,12,-105v1,-12,-2,-20,-9,-24v-5,4,-10,13,-15,4r36,-31v12,7,20,16,25,29r33,-30r26,32r-25,23r-21,-26r-14,12r0,102r17,13v7,-4,16,-18,22,-8r-44,36v-14,-15,-23,-20,-43,-27",w:130},s:{d:"129,-176v-3,-9,-16,-27,3,-29v24,5,7,34,-3,48r-30,42r37,21r0,71v-18,5,-35,14,-50,28v-25,-19,-56,-18,-76,0r-5,-4r46,-65r-33,-18r0,-64v20,-7,36,-17,47,-32v17,9,32,13,47,13v7,0,17,-4,17,-11xm105,-139v-20,3,-40,-1,-52,-11r0,48r18,11xm99,-26r0,-49r-21,-11r-38,54v17,-9,45,-3,59,6",w:150},t:{d:"9,-26v25,-21,7,-84,12,-125v-6,-1,-19,4,-16,-6r51,-67r0,53r30,0r0,20r-30,0r0,115r17,12v6,-4,13,-13,17,-3r-39,32v-11,-13,-25,-21,-42,-26r0,-5",w:95},u:{d:"54,5v-11,-11,-24,-22,-39,-28v0,-10,10,-9,10,-22r0,-95v-8,-9,-16,4,-20,-5r37,-33r30,26r-13,11r0,102r17,13r25,-23r0,-92r-12,-11r29,-26r30,26r-13,11r0,95v0,19,8,24,19,17r5,6r-36,28v-15,-13,-21,-19,-22,-44",w:164},v:{d:"104,-178v41,20,25,92,28,152v-21,5,-39,16,-55,31v-18,-15,-36,-28,-65,-29v21,-33,10,-116,-7,-152v1,-23,18,-37,37,-47v10,12,-28,18,-9,40v8,14,21,27,25,44xm97,-24v-5,-43,13,-104,-14,-127r-25,21r0,89v14,5,27,9,39,17",w:137},w:{d:"156,5v-19,-18,-65,-27,-80,0v-15,-15,-37,-27,-64,-27v3,-11,14,-8,14,-23r0,-75v-1,-31,-38,-57,-10,-84v7,-7,16,-14,27,-20v6,12,-26,21,-8,41v8,14,23,26,25,45r46,-40v16,9,25,22,28,40r47,-40v42,21,26,94,29,153v-24,7,-39,15,-54,30xm135,-41r39,16v-5,-43,13,-104,-15,-126r-24,21r0,89xm60,-39r39,16v-5,-43,13,-105,-14,-128r-25,21r0,91",w:214},x:{d:"42,-178v23,12,32,32,45,57r27,-57r36,19r-15,30r-28,-15r-16,33v15,29,24,68,50,85v8,-2,12,-7,16,2r-35,29v-25,-14,-36,-47,-50,-74r-35,74r-32,-19r14,-31r26,14r23,-48v-14,-23,-19,-60,-46,-68v-6,-2,-13,12,-17,1",w:162},y:{d:"114,-176v37,29,26,110,-9,130v-25,27,-77,31,-90,69v4,35,49,17,64,4v3,0,8,3,7,8v-11,24,-84,26,-80,-12v2,-21,23,-39,23,-62r-1,-104v-6,-13,-18,8,-23,-4r37,-30v16,10,23,15,23,40xm65,-31v31,-20,53,-79,24,-116r-24,19r0,97",w:143},z:{d:"63,-47v4,-27,-33,-37,-49,-21r-4,-4r50,-53r-32,-27v-8,4,-17,19,-23,7r44,-32v12,6,25,29,41,23r3,4r-46,48v40,-8,71,38,43,68v-17,19,-51,34,-61,59v-2,21,23,7,30,16v0,7,-6,8,-12,8v-13,0,-28,-10,-26,-24v5,-27,38,-45,42,-72",w:106},"\u00a0":{w:88}}}); \ No newline at end of file diff --git a/lib/fonts/Globus_500.font.js b/lib/fonts/Globus_500.font.js deleted file mode 100644 index 6bf236d1..00000000 --- a/lib/fonts/Globus_500.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:165,face:{"font-family":"Globus_500","font-weight":500,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 6 3 0 0 0 2 0 4",ascent:"288",descent:"-72",bbox:"-15 -352 305 84.3923","underline-thickness":"7.2","underline-position":"-40.68","unicode-range":"U+0020-U+0451"},glyphs:{" ":{w:180},"\u00a0":{w:180},"!":{d:"59,-72v-8,1,-19,4,-27,0v-8,-57,-8,-122,-11,-184r-14,-13v20,-8,44,-22,68,-22v7,70,-6,149,-16,219xm74,-30v-11,13,-21,23,-30,30v-12,-6,-22,-16,-31,-31v6,-8,21,-27,29,-28v6,0,17,10,32,29",w:88},'"':{d:"65,-210v15,-28,15,-37,0,-59r26,-28v36,17,25,97,-26,87xm10,-202v17,-28,14,-41,0,-60r26,-27v38,17,23,97,-26,87",w:117},"#":{d:"186,-150r-40,0r-3,19r41,0r-5,34r-40,0r-9,63r-35,0r8,-63r-19,0r-10,63r-34,0r9,-63r-39,0r5,-34r39,0r2,-19r-39,0r5,-34r39,0r8,-59r35,0r-8,59r20,0r7,-59r36,0r-9,59r42,0xm88,-131r20,0r3,-19r-20,0",w:199},"$":{d:"109,-178v42,19,62,30,65,76v-6,39,-37,97,-68,102r-1,34r-38,0r1,-46v-23,-7,-42,-14,-60,-21v2,-7,8,-25,19,-52v12,2,26,6,42,11r1,-49v-82,-34,-74,-111,2,-164r1,-38r38,0r-1,45r54,21r-21,47v-15,0,-22,-8,-34,-11r0,45xm71,-236r-14,-4v-10,17,-6,33,14,43r0,-39xm123,-55v13,-21,6,-33,-16,-48r0,43",w:176},"%":{d:"60,-135v-3,-3,-1,-5,4,-4r-2,5v-75,-31,-71,-109,-4,-150v79,22,61,125,2,149xm27,-9r144,-273r22,12r-144,272xm158,-146v68,13,70,122,9,146v-80,-21,-75,-107,-9,-146xm44,-246v-15,35,0,65,38,77v-2,8,-6,10,-11,3v21,-29,8,-69,-27,-80xm145,-108v-15,39,0,63,38,77r-3,9r-9,-5v21,-30,8,-69,-26,-81",w:211},"&":{d:"138,-114v-14,2,-22,7,-20,-17v21,0,51,-5,89,-13r-30,23r-6,71v0,3,-21,12,-23,15v15,24,17,28,-4,35v-3,-2,-8,-12,-17,-31v-10,1,-44,19,-56,18v-27,-3,-67,-77,-63,-104v-3,-31,30,-42,41,-60r-32,-78v-2,-10,80,-36,92,-36v18,0,61,71,58,98v-4,33,-31,48,-63,64v2,13,9,26,16,40v14,1,17,-6,18,-25xm123,-243v-24,7,-46,15,-68,26v5,10,11,20,18,31v35,-14,66,-29,50,-57xm98,-81v-6,-11,-12,-25,-19,-34v-16,8,-35,23,-25,47",w:212},"'":{d:"5,-202v15,-28,14,-41,-1,-60r26,-27v38,16,23,97,-25,87",w:59},"(":{d:"81,-318v-68,73,-41,269,26,321r-32,51v-78,-69,-90,-268,-11,-354v-2,-6,19,-10,11,-20",w:109},")":{d:"35,-330v84,74,90,291,-2,369r2,5r-5,-2v69,-87,40,-259,-27,-321",w:110},"*":{d:"76,-238v8,-3,25,-11,30,-20r19,13r-9,21v-13,0,-24,-2,-36,0v8,9,20,16,27,24r-7,20r-22,-2v-1,-9,-4,-20,-10,-32v-5,9,-8,20,-10,32r-22,2r-7,-22v11,-6,20,-14,27,-22v-7,-4,-27,-1,-36,0r-8,-20r17,-14v10,9,21,15,32,19v0,-3,-4,-14,-11,-33v7,-4,13,-11,20,-12v22,8,9,24,6,46",w:116},"+":{d:"131,-119r-41,-1r1,34r-48,0r1,-33v-10,0,-21,0,-35,-2r0,-46v16,-5,40,16,35,-16v1,-7,1,-12,3,-15r42,0r1,32r41,0r0,47",w:137},",":{d:"46,-108v25,-1,38,37,38,67v0,35,-35,71,-57,82v-4,0,-9,-4,-16,-10v13,-25,16,-33,15,-60v1,-7,-17,-29,-18,-32v0,-3,13,-18,38,-47",w:88},"-":{d:"178,-75v-60,3,-103,4,-127,4v-58,0,-42,-1,-34,-57v49,8,107,4,161,6v5,18,3,15,0,47",w:186},"\u00ad":{d:"178,-75v-60,3,-103,4,-127,4v-58,0,-42,-1,-34,-57v49,8,107,4,161,6v5,18,3,15,0,47",w:186},".":{d:"110,-62v-1,30,-29,46,-52,62v-13,-7,-30,-23,-52,-48v-1,-27,19,-32,32,-45v10,-10,21,-14,31,-14",w:121},"/":{d:"28,21v-7,-5,-19,-8,-21,-14r162,-311r21,12",w:176},"0":{d:"148,-133v0,58,-30,133,-76,133v-81,0,-83,-183,-30,-227v5,0,10,5,17,16v-8,47,-14,128,26,140v14,0,21,-13,21,-40v-1,-63,-36,-98,-70,-137v11,-29,20,-43,27,-43v52,0,85,101,85,158",w:157},"1":{d:"61,-3v-24,5,-15,2,-55,2r-3,-9r7,-255r56,-26",w:72},"2":{d:"149,-216v0,46,-46,108,-77,153v43,0,62,9,86,-12v10,0,11,8,8,20r-14,50v-12,7,-103,5,-137,5v-4,0,-6,-3,-6,-9v13,-36,81,-136,81,-175v0,-21,-14,-47,-33,-46v-13,0,-34,22,-41,-1v6,-25,33,-61,60,-60v53,0,73,23,73,75",w:168},"3":{d:"141,-225v6,18,-34,42,-19,55v21,19,40,35,39,76v-2,38,-54,85,-86,94v-25,0,-48,-17,-69,-50v10,-18,22,-35,36,-51v22,5,25,49,54,48v6,2,15,-18,14,-24v0,-29,-18,-53,-54,-71v2,-19,51,-33,36,-65v-13,-27,-38,-13,-65,-13r67,-65v23,8,47,36,47,66",w:168},"4":{d:"178,-75v-18,0,-24,1,-33,7r-2,65v-18,-1,-43,7,-57,0r0,-69v-29,-2,-92,11,-75,-24v11,-60,31,-129,30,-195r66,20v-5,40,-39,106,-56,146v12,1,28,6,38,0r2,-63v14,-16,21,-63,55,-52v3,51,3,41,2,115v4,2,25,2,30,3v5,18,3,15,0,47",w:186},"5":{d:"44,-97v9,44,74,56,74,7v0,-32,-29,-53,-87,-64v0,-28,21,-97,23,-134r4,-3r103,3v0,6,-4,23,-11,50r-78,3v-2,2,-4,10,-6,21v50,13,92,37,92,98v0,80,-91,162,-153,86v4,-25,19,-47,31,-66",w:167},"6":{d:"93,-212v27,-4,55,81,55,110v0,33,-34,100,-68,102v-46,3,-75,-73,-75,-125v0,-72,41,-178,117,-164v-28,34,-47,64,-58,93v4,1,24,-18,29,-16xm103,-73v1,-32,-15,-90,-45,-83v-5,43,8,68,36,93v2,0,5,-4,9,-10",w:157},"7":{d:"42,-235v-7,-2,-27,25,-34,18v-1,-26,-2,-48,5,-71r141,-3v7,11,2,27,1,41v-43,72,-64,155,-64,247v-20,3,-42,3,-65,3v-17,-77,48,-173,79,-234v-24,-2,-35,-2,-63,-1",w:164},"8":{d:"118,-167v25,30,50,48,46,97v-10,21,-50,70,-74,70v-50,-2,-120,-72,-64,-121r27,-31v-12,-17,-33,-39,-32,-65v-6,-17,46,-73,66,-74v45,-1,94,63,51,102xm95,-201v21,-21,11,-41,-10,-47v-17,1,-13,22,-5,35v5,8,9,12,15,12xm79,-120v-28,25,-13,66,17,73v7,0,11,-8,15,-24v-4,-15,-14,-31,-32,-49",w:169},"9":{d:"46,-1v24,-41,39,-56,50,-101v-1,0,-27,19,-34,18v-28,-3,-54,-68,-52,-99v3,-42,34,-104,64,-108v49,-6,85,73,84,129v-1,68,-38,163,-112,161xm61,-220v-7,36,7,87,42,79v1,-21,-20,-113,-42,-79",w:161},":":{d:"110,-192v0,30,-31,48,-52,62v-13,-6,-30,-22,-52,-47v-1,-27,19,-33,32,-46v10,-10,21,-14,31,-14xm110,-62v-1,30,-29,46,-52,62v-13,-7,-30,-23,-52,-48v-1,-27,19,-32,32,-45v10,-10,21,-14,31,-14",w:121},";":{d:"46,-108v25,-1,38,37,38,67v0,35,-35,71,-57,82v-4,0,-9,-4,-16,-10v13,-25,16,-33,15,-60v1,-7,-17,-29,-18,-32v0,-3,13,-18,38,-47xm110,-192v0,30,-31,48,-52,62v-13,-6,-30,-22,-52,-47v-1,-27,19,-33,32,-46v10,-10,21,-14,31,-14",w:121},"\u037e":{d:"46,-108v25,-1,38,37,38,67v0,35,-35,71,-57,82v-4,0,-9,-4,-16,-10v13,-25,16,-33,15,-60v1,-7,-17,-29,-18,-32v0,-3,13,-18,38,-47xm110,-192v0,30,-31,48,-52,62v-13,-6,-30,-22,-52,-47v-1,-27,19,-33,32,-46v10,-10,21,-14,31,-14",w:121},"<":{d:"53,-121r115,55r0,38r-156,-77r0,-33r156,-76r0,38",w:172},"=":{d:"10,-152r0,-46r101,0r2,46r-103,0xm10,-85r0,-43r103,0r-2,43r-101,0",w:122},">":{d:"127,-121r-114,-55r-1,-38r156,77r0,32r-156,77r0,-38"},"?":{d:"64,-291v48,0,65,23,66,71v-8,23,-32,143,-93,121v11,-23,35,-65,36,-89v2,-50,-29,-48,-61,-37v-6,1,-4,-8,-5,-14v-2,-17,35,-52,57,-52xm33,-28v-2,-9,25,-30,31,-29v8,1,22,20,29,29v-10,9,-16,27,-33,28v-7,1,-28,-21,-27,-28",w:134},"@":{d:"117,-245v54,1,87,22,87,78r0,104v-54,-1,-113,14,-113,-47v0,-42,24,-50,66,-47v0,-32,-15,-41,-45,-42v-56,-2,-41,68,-43,121v-2,52,61,41,111,42r0,36v-83,1,-162,10,-162,-78r0,-89v-2,-62,39,-79,99,-78xm140,-112v0,12,5,17,19,16r0,-32v-14,-1,-19,4,-19,16",w:222},A:{d:"37,-94v-4,-71,3,-120,37,-159v-11,-5,-25,-1,-40,-2v-7,-9,-3,-21,-2,-33r156,-2r1,286v-14,7,-39,0,-58,2r-1,-110v-14,-2,-28,-4,-41,2v8,43,15,74,-4,107r-84,1v19,-17,39,-45,36,-92xm129,-252v-37,0,-39,48,-43,91r43,-1r0,-90",w:201},B:{d:"103,-279v39,-34,83,12,83,61v0,31,-22,44,-36,61v30,14,45,38,45,73v0,29,-25,87,-54,84r-34,-34v13,-21,39,-42,32,-75v-5,-26,-18,-33,-38,-18r-1,121v-9,2,-14,3,-22,0r2,-252xm21,-5v-8,-68,7,-159,-2,-235v0,-5,-4,-11,-11,-18v22,-9,37,-27,64,-31r0,284r-51,0xm101,-153v30,1,53,-80,8,-90v-15,18,-7,45,-8,90",w:206},C:{d:"92,-139v8,-23,21,-52,32,-74v0,-18,-4,-27,-13,-27v-40,0,-53,54,-52,113v0,47,17,70,49,70v20,0,37,-21,50,-64v8,0,14,-1,18,4v0,39,-4,77,0,114v-7,2,-28,3,-62,3v-83,1,-116,-57,-108,-147v6,-73,41,-154,120,-143r59,1r-73,168v-4,-1,-11,-7,-20,-18",w:187},D:{d:"31,-293v124,-10,174,47,164,175v-5,71,-36,118,-94,117v-29,-1,-56,-3,-83,1v-4,0,-6,-2,-8,-7v19,-76,11,-100,12,-212v2,-2,12,-8,29,-19v-16,-4,-34,-6,-39,-20v-9,-23,-7,-38,19,-35xm130,-132v4,-47,-8,-121,-52,-103r0,166r-25,16v58,7,71,-8,77,-79",w:200},E:{d:"64,-138v-17,65,69,112,99,46v4,-1,8,-1,12,0v-5,21,-1,64,-4,90v-104,11,-163,-25,-163,-128v0,-112,57,-173,168,-158r-10,72r-7,0v3,0,4,0,4,-1v1,-3,-48,-26,-51,-24v-31,2,-39,26,-48,57v30,6,56,-9,78,-8r-1,66v-20,-2,-52,-16,-77,-12",w:179},F:{d:"154,-193r-11,61r-6,0v-8,-22,-16,-18,-39,-18v5,59,-9,105,-36,150v-5,0,-16,-7,-32,-21v35,-75,25,-163,-25,-210v18,5,23,6,38,-11r-33,-1r0,-46r131,-2v10,18,17,33,21,46r-93,4v9,13,17,31,25,47",w:167},G:{d:"117,-232v-69,1,-78,167,-12,175v30,-3,30,-20,31,-61v-13,-3,-37,-1,-52,-3v-1,-19,2,-17,14,-44r91,-2r-4,164v-13,7,-28,-8,-37,-9v-11,-1,-39,13,-50,12v-72,0,-96,-72,-91,-154v6,-92,48,-144,152,-136v12,0,22,-1,32,-2r-33,76v-12,-6,-25,-16,-41,-16",w:197},H:{d:"96,-200v38,-50,101,-12,101,74v0,65,-21,107,-72,160v-5,-2,-11,-8,-20,-17v19,-38,42,-66,45,-119v-18,-4,-35,0,-55,0v-2,14,-3,43,-4,87v-11,3,-6,2,-23,1v0,-57,2,-148,6,-271r82,1r16,35r-77,1v1,15,-6,37,1,48xm60,-14v-17,0,-36,4,-48,-3r1,-230r-11,-16v16,-7,43,-22,61,-21xm149,-129v1,-19,-11,-33,-28,-33v-16,0,-33,15,-26,33r54,0",w:206},I:{d:"148,-243v-20,1,-34,-5,-34,26r-2,215v-7,1,-21,6,-24,-2r2,-236v-13,60,-6,160,-8,240r-49,0v-6,-52,6,-116,7,-172v1,-25,-13,-31,-22,-45v18,-2,33,-14,47,-21v-24,-5,-19,1,-54,-3r1,-47r136,-1r0,46",w:156},J:{d:"96,-78v35,26,20,78,-41,78v-18,0,-36,-4,-55,-13v8,-12,18,-24,28,-35v12,10,21,15,28,15v8,0,12,-5,12,-13v0,-8,-12,-12,-38,-12v-2,-58,24,-135,-9,-173v10,-7,29,-13,35,-21r-44,0r0,-36r112,-2r0,36v-8,1,-20,0,-24,5r-1,168xm73,-85r8,-167v-10,20,-5,130,-8,167",w:132},K:{d:"155,-171r44,164v-9,12,-44,7,-64,4r-26,-122v-27,3,-12,48,-15,75v0,4,-1,20,-1,49r-22,0v1,-36,-5,-79,2,-110v-5,-60,0,-104,2,-175v9,-3,16,-2,23,4r-1,120v32,-29,38,-57,21,-116r77,-14v-18,35,8,65,-20,94xm63,-1v-17,-2,-44,5,-53,-5r3,-259r-8,-19v19,-3,38,-2,59,-2r4,4",w:200},L:{d:"98,-62v43,0,39,-15,63,-23r-5,81r-4,4v-36,-1,-130,3,-144,-5v18,-109,-31,-337,133,-275v11,7,21,19,30,38v-19,8,-34,25,-55,27v-11,-40,-18,-57,-41,-33r2,123v0,31,-12,49,-18,73v11,-6,24,-10,39,-10",w:171},M:{d:"288,-264v-36,64,-31,176,-11,258v-13,11,-46,2,-67,5v-10,-23,-2,-60,-2,-95v0,-87,14,-123,58,-166r-2,-2v-24,39,-81,34,-130,25v-10,-2,-26,27,-34,6v24,-59,72,-63,140,-52v17,-1,30,-12,44,0r-18,20v5,-3,21,-16,22,1xm128,-1v-6,-69,1,-150,-1,-223r55,1r3,220xm41,-1r-2,-232v1,-11,-21,-11,-34,-11r87,-44r7,3r-4,284r-54,0",w:291},N:{d:"126,-280v13,1,37,-16,51,-8v-2,12,-8,23,-18,32v5,-5,20,-9,19,5v-25,73,-30,157,-13,249v-22,3,-39,2,-60,2v-25,-84,0,-209,47,-251v-20,15,-47,25,-81,25r-3,225r-57,0r3,-203r35,-22v-11,-9,-27,-8,-41,-5v2,-30,-1,-65,49,-60v15,1,50,10,69,11",w:187},O:{d:"179,-148v0,73,-39,148,-103,148v-39,0,-67,-75,-67,-118v0,-31,28,-109,51,-113v21,7,-11,48,-6,66v-1,34,20,104,45,104v21,-8,29,-35,29,-70v0,-46,-28,-85,-83,-115v10,-15,22,-30,35,-45v55,8,99,82,99,143",w:189},P:{d:"199,-224v0,31,-34,73,-102,125r1,97r-21,2v-4,-48,-2,-43,-1,-114r-1,1r3,-175v63,-6,121,-14,121,64xm67,-3v-14,1,-40,8,-52,-1r3,-240v0,-2,-5,-6,-14,-13r59,-32r8,1xm147,-203v0,-29,-12,-30,-45,-27r-1,87v13,-16,46,-40,46,-60",w:203},Q:{d:"186,-13v-18,-7,-35,8,-49,0v15,-21,22,-24,13,-41v-23,36,-45,54,-66,54v-48,2,-77,-62,-77,-114v0,-33,19,-120,45,-117v-4,-4,-12,-12,-13,-17v6,-13,21,-33,33,-43v64,20,122,112,91,201v25,11,40,27,34,72v-3,3,-7,5,-11,5xm104,-60v14,-1,18,-29,18,-48v0,-52,-21,-92,-64,-121v1,30,-15,47,-10,81v-2,24,32,90,56,88",w:201},R:{d:"194,-2v-19,2,-37,2,-57,2r-5,-6v-7,-39,-8,-84,-19,-120v-2,0,-6,2,-14,6r-3,117v-6,4,-23,3,-25,-1r7,-285v62,-6,123,-4,123,61v0,23,-13,44,-37,65xm67,-4v-20,8,-29,3,-52,1r3,-244r-12,-16v22,-8,39,-26,66,-26xm129,-172v33,-21,22,-69,-25,-61r-1,82",w:206},S:{d:"138,-212v-27,3,-66,-22,-87,-28v-22,73,124,49,118,139v4,21,-41,100,-66,101v-36,0,-71,-22,-100,-33r19,-52r96,30v31,-66,-112,-58,-112,-140v0,-30,22,-62,66,-96r86,32",w:175},T:{d:"89,-119v-3,40,35,80,68,51r17,-19v9,0,17,3,23,10v-8,41,-42,77,-88,77v-82,0,-92,-100,-60,-167r25,-59v-20,-14,-46,46,-69,15v31,-67,86,-92,175,-74r0,63v-20,-6,-43,-9,-69,-9v-8,0,-25,97,-22,112",w:203},U:{d:"62,-142v0,42,27,106,59,65r0,-173v38,-28,43,-44,56,-40r3,227v0,3,6,11,15,23v-12,14,-27,27,-42,39v-18,-7,-29,-20,-33,-39r-54,40v-77,-39,-76,-181,-18,-234v1,-12,-24,-3,-39,-6v0,-16,-2,-33,0,-48r125,-3v-48,45,-72,94,-72,149",w:197},V:{d:"155,-291v28,0,42,66,42,105v0,45,-19,110,-38,145v-21,39,-24,44,-66,41v-61,-78,-86,-150,-51,-243v-7,-12,-39,7,-30,-28v2,-9,3,-15,6,-18r104,-1v2,4,3,8,3,12v-32,51,-61,144,-15,204v41,-35,37,-126,12,-175",w:205},W:{d:"143,-243v32,21,-9,54,-9,89v0,35,10,62,29,83r3,-182r48,-38r8,3r-4,237r-66,51v-4,0,-17,-10,-41,-30v-8,3,-30,22,-40,30v-34,-1,-58,-58,-58,-104v0,-44,14,-89,44,-134v-12,-5,-32,-2,-47,-4r0,-45r141,-4r4,17v-55,36,-92,70,-93,148v0,30,11,51,34,62v-22,-75,-3,-130,47,-179",w:230},X:{d:"116,-202v15,-35,42,-119,84,-76r24,25v-35,23,-55,37,-67,76v3,2,31,0,35,6r5,36v-14,2,-32,-1,-42,3v15,36,39,62,72,80r3,9r-44,42v-31,-3,-54,-64,-66,-102v-13,40,-37,93,-71,103v-19,0,-34,-23,-45,-36v5,-20,29,-26,45,-42v13,-12,23,-30,31,-54r-36,-1r-5,-42v14,0,32,0,41,-4v-17,-35,-35,-52,-71,-70v17,-14,31,-31,50,-44v18,3,46,65,57,91",w:238},Y:{d:"66,-262v17,-35,49,-30,81,-21r21,-4v-6,47,-36,52,-79,42v-33,19,1,87,10,118v19,-29,24,-62,22,-106v13,0,26,-5,40,-15v8,96,-40,136,-67,203v0,21,26,13,32,3v9,-7,11,-26,25,-25v-1,19,-6,40,-10,64v-40,-3,-100,19,-102,-28v-1,-17,15,-32,23,-44v-14,-61,-36,-178,-62,-209v29,6,66,-20,66,22",w:176},Z:{d:"168,-291v12,22,13,22,15,45r-113,201r36,2v10,-13,19,-33,29,-60v13,0,31,4,54,13v-3,12,-13,42,-31,90r-142,-3r-13,-43r115,-203v-24,2,-36,-9,-46,19v-4,11,-5,25,-14,32r-45,-12v7,-27,15,-54,26,-81r129,0",w:195},"[":{d:"10,10r0,-302r67,0v2,7,1,21,1,31r-34,0r0,241r34,0r0,30r-68,0",w:81},"\\":{d:"25,-6v1,-82,12,-185,-6,-251v1,-43,72,-42,92,-14v-8,11,-11,34,-26,35v-11,-7,-17,-11,-20,-11v-9,-1,-10,8,-8,16v3,4,14,9,32,16v-11,55,-5,143,-8,211v-23,7,-16,3,-53,3",w:117},"]":{d:"75,10v-22,-1,-50,3,-69,-2r0,-28r35,0r0,-241r-35,0r0,-31r69,0r0,302",w:88},"^":{d:"57,-237v-23,45,-31,46,-51,20v4,-17,24,-37,34,-52v24,-37,41,13,60,29v25,21,2,39,-11,42v-2,0,-12,-13,-32,-39",w:120},_:{d:"-1,51v0,-11,-1,-23,1,-32r186,0r0,32r-187,0",w:173},"`":{d:"79,-245v-33,-6,-63,-43,-41,-73v9,3,20,7,31,13v2,28,5,37,22,48v-2,9,-3,11,-12,12",w:151},a:{d:"154,-27v-8,7,-29,23,-37,24v-5,3,-29,-26,-31,-25v-2,-1,-37,29,-40,27v-21,2,-40,-47,-39,-71v-9,-36,60,-85,82,-105v5,-9,0,-24,-12,-22v-22,2,-29,12,-44,29r-11,-1r2,-59v64,-7,121,-6,120,67r-1,120xm59,-83v0,20,10,48,28,28r3,-83v-21,13,-31,32,-31,55",w:159},b:{d:"98,-233v26,7,41,59,41,95v0,52,-20,98,-58,138r-72,-32r1,-225r-10,-13r59,-21v9,19,1,56,3,82v13,-7,22,-13,36,-24xm85,-58v2,-39,17,-118,-21,-121r-1,113v7,5,14,8,22,8",w:145},c:{d:"91,-175v-10,0,-31,-7,-40,-10v-13,64,-2,137,50,149v-31,24,-48,36,-51,36v-30,0,-47,-55,-47,-91v0,-41,16,-88,48,-142v15,3,31,8,51,17v1,16,-2,16,-11,41",w:111},d:{d:"99,-284v9,3,45,-17,45,-1r-2,234v5,7,7,11,7,21v-28,27,-27,41,-48,19r-13,-20r-31,31v-33,-4,-53,-67,-53,-107v0,-54,20,-97,59,-126v3,0,11,6,25,16v10,-8,1,-41,-2,-54r-28,-31v11,4,26,18,41,18xm149,-30v-1,0,-6,-9,-2,-10xm84,-58r3,-127r-12,-7v-6,0,-13,15,-18,46v-5,29,2,93,27,88",w:158},e:{d:"9,-116v-3,-48,59,-174,103,-89v10,19,18,38,22,59r-71,51v16,46,44,50,89,40r-89,53v-26,-9,-52,-72,-54,-114xm55,-119v12,-8,21,-15,29,-24r-20,-47v-19,11,-13,45,-9,71",w:151},f:{d:"26,-219v-35,-69,50,-91,85,-52v-8,11,-11,34,-26,35v-11,-7,-17,-11,-20,-11v-9,-1,-10,8,-8,16v10,13,30,15,53,12v1,15,4,35,-16,29v-4,0,-7,2,-10,5r-3,181v-23,7,-16,3,-53,3r-3,-5r5,-180v-4,-8,-17,-1,-24,-7v2,-23,0,-28,20,-26",w:117},g:{d:"148,-201v-16,33,-16,149,-3,188v5,53,-19,70,-84,70v-33,0,-52,-2,-57,-5v3,-16,10,-32,22,-48v23,11,40,16,48,16v27,-3,25,-23,10,-44v-10,5,-28,24,-41,24v-44,-15,-52,-122,-24,-171v12,-20,27,-42,50,-63v27,9,54,22,79,33xm56,-160v1,41,-12,101,20,111v1,0,3,-1,5,-2r4,-119v-3,-5,-10,-9,-23,-14v-4,8,-6,16,-6,24",w:156},h:{d:"111,-233v24,7,39,101,39,137v0,57,-35,104,-61,143v-9,3,-13,-2,-25,-11v23,-63,31,-91,31,-137v0,-55,-8,-82,-25,-82r-5,5r-3,174v-13,4,-32,3,-50,3r-3,-4r5,-239v-1,-2,-6,-9,-14,-19v22,-6,41,-25,66,-21r2,74v27,-15,41,-23,43,-23",w:158},i:{d:"67,-219v-38,7,-52,-2,-65,-36v27,-6,43,-9,47,-9v12,11,2,28,18,45xm59,-6v-14,7,-27,4,-46,4r-1,-178r-10,-13r56,-20r5,7",w:73},j:{d:"67,-213v-32,7,-51,-8,-57,-43v19,-5,34,-8,45,-8v4,17,4,37,12,51xm59,-3v-1,7,17,40,15,49v1,39,-37,42,-78,36r17,-47v7,0,21,17,26,2v-5,-15,-8,-15,-25,-28r1,-183r-8,-11v24,-16,41,-24,50,-24v4,0,6,10,6,14",w:76},k:{d:"83,-214v11,-5,31,-21,43,-21v24,0,28,58,4,72r-22,21v47,25,39,70,37,140r-50,0v-4,-41,8,-93,-17,-114v-24,12,-9,68,-15,114r-49,2r-3,-4r4,-251v-1,-2,-6,-7,-14,-15v15,-8,49,-20,66,-21r-1,142v27,-14,27,-32,17,-65",w:153},l:{d:"73,0r-51,0v-5,-70,3,-167,-3,-249v-8,-10,-18,-7,-34,-4v54,-27,67,-45,91,-34",w:95},m:{d:"239,-106v0,40,-9,89,-26,106v-17,0,-30,1,-45,-3v10,-61,26,-120,3,-174v-16,-11,-19,9,-19,27v0,57,2,79,-3,150r-52,0r1,-177v-8,-10,-15,-7,-23,3r-6,174r-51,0v-6,-58,2,-128,0,-190r-13,-13v20,-10,46,-29,71,-30v0,10,-3,26,4,30v16,-14,39,-46,61,-17r12,13v2,0,41,-29,47,-26v24,-1,39,92,39,127",w:249},n:{d:"104,-233v65,30,54,175,22,232r-48,0v5,-50,22,-104,11,-157v-4,-16,-9,-24,-17,-24r-5,178v-12,7,-52,4,-54,0r2,-190r-10,-10v13,-9,44,-27,62,-27r3,20",w:155},o:{d:"75,-233v43,0,68,72,68,120v0,30,-43,117,-73,113v-37,-5,-65,-68,-65,-110v0,-39,39,-123,70,-123xm82,-57v22,-43,5,-89,-19,-123v-18,38,-5,92,19,123",w:150},p:{d:"85,-203v9,-11,18,-24,29,-26v26,3,46,71,46,102v0,68,-39,99,-82,131r-2,53r-51,2v-2,-9,-3,-26,-3,-51v-15,3,-20,-17,-14,-29v2,-2,7,-4,14,-5v0,-61,20,-130,-9,-180v14,-5,46,-25,67,-25xm86,-169v-12,28,-4,103,-4,120v27,-17,34,-60,23,-97v-4,-15,-10,-23,-19,-23",w:164},q:{d:"149,-23v26,4,17,33,-2,40v0,19,2,45,-9,52r-44,-3v-1,-24,-3,-40,-1,-67v-27,-29,-91,-50,-83,-114v-3,-38,27,-103,56,-107v4,0,13,10,29,29v2,-6,3,-16,3,-28v11,0,28,5,49,13xm95,-166v-45,3,-34,100,-4,115",w:173},r:{d:"112,-233v31,22,37,90,1,119v-15,-13,-6,-54,-29,-60v-7,51,-1,115,-4,170v-9,9,-33,2,-49,4r-4,-4r4,-182v-5,-10,-17,-11,-30,-12r75,-33v10,0,6,18,6,27v5,-3,15,-12,30,-29",w:140},s:{d:"106,-165v-15,-1,-34,-13,-48,-21v-4,44,83,50,77,106v3,19,-40,84,-57,80v-25,-1,-55,-28,-75,-40v10,-8,20,-24,29,-37v18,-1,41,19,58,29v3,-3,4,-7,4,-11v-12,-36,-82,-52,-80,-99v-2,-8,42,-81,56,-75v7,0,25,10,56,29v-5,13,-12,25,-20,39",w:143},t:{d:"79,-195v7,54,-26,156,32,156v-30,26,-48,39,-52,39v-60,-15,-28,-126,-33,-195v-1,-2,-8,-4,-21,-6r2,-26v23,-6,42,-27,56,-63v5,-1,10,-1,15,0r2,61v19,0,31,-5,30,19v1,20,-25,2,-31,15",w:119},u:{d:"68,-66v4,14,16,17,29,6r5,-170r52,0r-2,203v0,4,4,11,10,22v-28,7,-34,4,-64,2v0,-14,-1,-23,-3,-27v-18,10,-31,26,-53,31v-12,3,-30,-36,-30,-49r1,-151v-5,-3,-4,-11,-3,-18v18,-5,39,-14,58,-16r0,167"},v:{d:"134,-158v0,63,-25,107,-56,156v-10,2,-21,3,-32,0v-36,-66,-50,-134,-37,-217v15,-6,33,-9,51,-9v-4,57,-5,120,15,160v29,-27,18,-105,-8,-133v6,-7,17,-18,35,-32v21,11,32,36,32,75",w:138},w:{d:"182,-233v60,23,37,145,7,191v-7,11,-14,25,-23,41v-36,9,-40,-28,-52,-48v-15,19,-19,58,-57,48v-35,-55,-50,-127,-45,-211v22,-10,40,-15,53,-15v6,53,-6,135,19,166v31,-38,4,-76,7,-143v1,-18,26,-20,54,-22v0,80,1,111,21,162v17,-37,22,-113,-18,-134v9,-10,20,-22,34,-35",w:224},x:{d:"74,-79v-10,27,-11,44,-11,76v-16,1,-43,7,-57,-1v0,-59,19,-84,51,-117v-14,-29,-31,-70,-48,-90v59,-20,47,-41,72,4v11,20,16,33,17,33v10,-12,9,-35,10,-56v20,3,57,-10,57,11v0,29,-31,73,-51,90r56,126v-40,9,-63,5,-80,-41",w:177},y:{d:"0,-219v15,3,56,-14,67,-7v0,54,10,109,30,165v24,-55,19,-97,-9,-149v12,-6,44,-13,62,-16v34,100,-44,195,-59,286v-25,-1,-44,6,-66,-1r40,-54v-29,-57,-43,-127,-52,-202",w:164},z:{d:"40,-233v29,8,63,5,96,0v5,0,11,13,17,39v-34,62,-61,111,-80,148v31,8,33,-27,45,-44v20,4,35,10,47,16v6,18,-24,59,-31,74v-34,-13,-77,-12,-117,-2v-7,-22,-11,-30,-8,-46r84,-150v-22,-9,-20,4,-40,30v-20,-3,-28,-17,-43,-24v5,-8,15,-22,30,-41",w:169},"{":{d:"43,-138v46,23,-12,132,55,123r0,32v-53,0,-71,-5,-73,-52v-2,-35,8,-79,-20,-89r0,-30v52,-14,-22,-149,70,-139v6,0,13,-1,23,-1r0,35v-67,-9,-9,98,-55,121",w:101},"|":{d:"71,10r-39,0r0,-299r39,0r0,299",w:84},"}":{d:"60,-138v-47,-23,13,-133,-54,-123r0,-33v51,0,72,4,72,53v0,34,-8,82,20,89r0,30v-50,16,19,148,-70,139r-22,0r0,-34v65,9,8,-100,54,-121",w:104},"~":{d:"131,-218v-52,0,-73,-49,-101,2r-19,-16v13,-29,30,-44,52,-44v15,0,56,24,71,24v12,0,22,-8,30,-25r20,16v-13,29,-31,43,-53,43",w:191},"\u0451":{d:"58,-114v9,-8,22,-14,28,-24r-19,-47v-19,11,-14,45,-9,71xm12,-111v-3,-48,59,-175,102,-89v9,19,18,38,22,59r-70,51v15,45,44,50,88,40r-88,53v-27,-9,-52,-70,-54,-114xm49,-285v2,18,5,31,10,44v-27,7,-45,-7,-49,-37v17,-5,30,-7,39,-7xm108,-285v2,18,5,31,10,44v-27,7,-44,-7,-49,-37v17,-5,30,-7,39,-7",w:161},"\u0401":{d:"68,-131v-16,64,69,110,100,45v4,-1,7,-1,11,0r-3,90v-106,8,-164,-23,-164,-129v0,-111,57,-172,168,-157r-9,72r-8,0v3,0,4,0,4,-1v1,-3,-48,-25,-50,-24v-31,3,-40,25,-49,58v31,4,54,-7,78,-9r-1,66v-16,-3,-54,-14,-77,-11xm96,-293v-34,5,-52,-9,-58,-44v19,-5,34,-8,45,-8v2,19,5,37,13,52xm164,-293v-33,5,-50,-9,-57,-44v19,-5,34,-8,45,-8v4,18,5,38,12,52",w:188},"\u0410":{d:"37,-94v-4,-71,3,-120,37,-159v-12,-5,-24,-2,-40,-2v-7,-9,-3,-21,-2,-33r156,-2r1,286v-14,7,-39,0,-58,2r-1,-110v-14,-2,-28,-4,-41,2v8,43,15,74,-4,107r-84,1v19,-17,39,-45,36,-92xm129,-252v-37,0,-39,48,-43,91r43,-1r0,-90",w:201},"\u0411":{d:"19,-5v-2,-95,19,-212,-13,-277v24,-17,105,-2,149,-9r3,7v-11,27,-3,52,3,80v-16,9,-36,16,-53,24v-8,-25,-9,-53,2,-78r-30,1r0,100v51,-26,104,11,104,68v0,50,-28,74,-59,95v-3,0,-5,0,-5,-1r-29,-46v25,-11,57,-54,32,-84v-10,-11,-24,-13,-43,-6r-1,132r-56,0",w:193},"\u0412":{d:"98,-150v31,1,51,-79,9,-89v-16,10,-6,58,-9,89xm18,-1v-8,-69,5,-157,-1,-236v-1,-4,-4,-10,-11,-18v22,-9,36,-26,63,-30r0,284r-51,0xm100,-275v39,-34,84,11,84,61v0,32,-22,44,-37,61v30,14,45,38,45,72v0,31,-26,87,-53,85r-35,-34v12,-20,37,-39,33,-70v-3,-27,-17,-41,-39,-23r-1,121v-8,2,-12,3,-19,0r2,-253",w:201},"\u0413":{d:"105,-170v-8,-32,-8,-60,4,-85r-35,-1v1,84,1,169,0,253r-56,0r-3,-6r1,-244v3,-19,-22,-22,-10,-35r143,-2v0,25,-7,51,4,80v3,8,1,12,-4,14v-15,8,-28,21,-44,26",w:163},"\u0414":{d:"138,-252v-68,14,-36,135,-33,200r34,0xm166,-1r-124,-1v22,18,21,64,-2,81r-38,-32v-2,-14,24,-18,16,-39v-18,-25,12,-28,19,-50v10,-28,8,-68,8,-105v0,-47,15,-74,38,-106v-11,-4,-26,-1,-40,-2v-7,-9,-3,-21,-2,-33r156,-2r1,286v-3,2,-6,4,-11,3v0,17,13,29,24,38v-3,17,-26,25,-34,40v-2,2,-4,2,-7,2v-15,-15,-31,-38,-19,-62",w:222},"\u0415":{d:"64,-138v-17,65,69,112,99,46v4,-1,8,-1,12,0v-5,21,-1,64,-4,90v-104,11,-163,-25,-163,-129v0,-111,57,-172,168,-157r-10,72r-7,0v3,0,4,0,4,-1v1,-3,-48,-26,-51,-24v-31,2,-39,26,-48,57v30,6,56,-9,78,-8r-1,66v-20,-2,-52,-16,-77,-12",w:179},"\u0416":{d:"170,-127v-3,-8,-8,2,-12,3v-2,40,5,88,-2,123r-51,0r-4,-7r1,-116v-4,-2,-9,-10,-12,-3r-27,126r-53,0v-7,-12,4,-28,7,-42r26,-112v2,-3,3,-7,5,-12v-27,-20,-35,-58,-28,-107v1,-5,-8,-12,-8,-19v-1,-2,1,-3,5,-1r55,16v17,15,-20,42,-9,72v3,19,25,50,38,59v3,-38,1,-80,2,-120v-2,-8,-12,-19,-1,-23v0,0,57,-7,63,5v-16,31,-4,89,-7,132v21,-18,51,-46,36,-87v-1,-13,-21,-31,-6,-38v20,-4,42,-16,60,-15v-19,26,8,86,-22,109r-14,17v17,49,25,107,40,158v-3,16,-36,5,-55,8",w:264},"\u0417":{d:"121,-202v4,-41,-71,-40,-81,-13r-10,2v-1,-22,-8,-48,-6,-65v63,-34,175,-10,154,76v-4,20,-16,36,-38,48v35,13,53,55,40,101v-15,54,-117,78,-163,36v-5,-23,-1,-58,-2,-88r9,0v11,17,32,48,57,49v42,3,59,-47,29,-71v-16,-12,-40,-8,-53,0v-3,1,-4,-1,-4,-5v2,-16,-12,-56,13,-45v27,12,53,-2,55,-25",w:199},"\u0418":{d:"186,-93v0,28,-3,38,17,58r-42,39v-18,-7,-29,-20,-34,-39r-53,40v-78,-40,-76,-180,-19,-236r1,-6r-40,-1r1,-48r124,-3v-47,45,-71,95,-71,151v0,42,25,105,58,66r0,-176v38,-28,44,-44,57,-40",w:212},"\u0419":{d:"93,-301v7,-15,11,-32,12,-51v11,0,26,2,45,7v-6,35,-23,49,-57,44xm185,-94v0,27,-2,38,16,57v-13,15,-24,24,-42,38v-18,-7,-29,-20,-33,-38r-54,39v-77,-39,-74,-179,-18,-233v2,-11,-23,-6,-39,-7r0,-47r125,-3v-48,44,-72,94,-72,149v0,41,27,105,59,64r0,-173v38,-29,43,-41,57,-40",w:211},"\u041a":{d:"8,-285v14,-8,40,-2,59,-3r3,4r-4,283v-17,-2,-43,5,-53,-4r2,-261xm157,-172v18,48,28,115,45,166v-12,11,-45,6,-64,3r-26,-122v-7,3,-13,4,-17,11r0,113r-21,0r3,-287v8,1,19,-2,23,1r0,124v32,-28,37,-59,21,-117r76,-13v-18,36,9,64,-19,94",w:212},"\u041b":{d:"37,-104v-5,-68,5,-111,38,-148v-15,-1,-25,-3,-41,-1v-7,-10,-3,-21,-2,-34r156,-1r1,285v-13,7,-39,1,-58,3r-2,-251v-88,25,-6,180,-44,250r-84,1v21,-17,40,-58,36,-104",w:198},"\u041c":{d:"131,-1v1,-100,-23,-151,-21,-251v-31,1,-45,37,-47,75v-3,63,47,119,13,174r-70,2v54,-45,-10,-162,33,-228v4,-7,9,-15,15,-24v-14,-1,-23,-3,-39,-1v-8,-8,-2,-28,-2,-34r142,-1v-1,60,18,143,17,200v14,-81,-8,-199,84,-203v3,0,4,3,4,7r25,279v1,3,0,5,-3,5r-44,0v-4,0,-5,-2,-5,-5r-21,-214v-14,66,-14,146,-24,216v-13,7,-39,1,-57,3",w:300},"\u041d":{d:"66,-1v-13,1,-41,6,-51,-1r2,-240v0,-2,-4,-6,-13,-13r58,-33r8,1xm105,0v-4,-3,-17,0,-24,-2r1,-288r23,1r0,112r42,0v-1,-38,-5,-75,-12,-109v7,-10,33,-1,47,-4v3,0,4,1,5,4v17,94,16,187,0,284v-8,9,-33,2,-48,4v-3,0,-4,-1,-4,-4r13,-134r-43,0r0,136",w:209},"\u041e":{d:"179,-148v0,73,-39,148,-103,148v-39,0,-67,-75,-67,-118v0,-31,28,-109,51,-113v2,0,5,2,9,5v-3,15,-15,42,-15,61v0,34,20,104,45,104v21,-8,29,-35,29,-70v0,-46,-28,-85,-83,-115v10,-15,22,-30,35,-45v55,8,99,82,99,143",w:189},"\u041f":{d:"192,-181v0,53,-19,93,-47,131v9,11,41,-2,54,6v-1,14,3,33,-2,43r-114,0r-4,-10v53,-36,83,-138,45,-203v-16,-28,-34,-21,-55,-10r-1,194v-16,9,-33,38,-53,28r2,-232v0,-7,-24,-17,-13,-24v10,-12,22,-25,34,-35v15,1,21,24,32,33r0,6v20,-13,38,-29,60,-40v36,9,62,65,62,113",w:209},"\u0420":{d:"145,-202v0,-28,-12,-29,-46,-26r0,86v14,-15,46,-39,46,-60xm197,-222v0,31,-34,72,-102,125r1,97r-21,1r1,-288v63,-7,121,-12,121,65xm67,-17v3,25,-24,16,-45,18r1,1v-5,0,-8,-1,-10,-4r3,-240v0,-2,-5,-6,-14,-13r58,-33r9,1",w:206},"\u0421":{d:"92,-139v8,-24,21,-52,32,-74v0,-18,-4,-27,-13,-27v-40,0,-53,54,-52,113v0,47,17,70,49,70v20,0,37,-21,50,-64v8,0,14,-1,18,4v0,39,-4,77,0,114v-7,2,-28,3,-62,3v-83,1,-116,-57,-108,-147v7,-82,45,-161,142,-143r37,1r-73,168v-4,-1,-11,-7,-20,-18",w:187},"\u0422":{d:"288,-264v-36,64,-31,176,-11,258v-13,11,-46,2,-67,5v-10,-23,-2,-60,-2,-95v0,-87,14,-123,58,-166r-2,-2v-24,39,-81,34,-130,25v-10,-2,-26,27,-34,6v24,-59,72,-63,140,-52v17,-1,30,-12,44,0r-18,20v7,-2,21,-16,22,1xm128,-1v-6,-69,1,-150,-1,-223r55,1r3,220xm41,-1r-2,-232v1,-11,-21,-11,-34,-11r87,-44r7,3r-4,284r-54,0",w:291},"\u0423":{d:"135,-231v3,-41,36,-59,79,-60r0,57v-8,7,-25,7,-28,18v1,139,-19,292,-169,269v-3,0,-4,-1,-3,-3v12,-22,15,-41,23,-66v11,2,33,18,52,6v10,-7,22,-16,22,-28v-59,-34,-98,-112,-75,-204v-9,-2,-22,2,-26,-5v2,-13,-2,-33,6,-40v36,1,77,-5,110,0v-55,42,-52,175,0,220v8,-50,5,-109,9,-164",w:224},"\u0424":{d:"202,-151v0,56,-28,100,-71,118v-2,11,5,30,-4,34r-46,0v-9,-2,-3,-19,-3,-32v-80,-5,-85,-127,-46,-183v12,-17,25,-36,46,-41v2,-12,-6,-32,3,-36r46,0v9,4,2,22,4,35v50,1,71,59,71,105xm79,-217v-40,21,-38,114,0,135v1,-45,1,-90,0,-135xm131,-79v47,-18,35,-110,0,-132v-1,44,-1,88,0,132",w:211},"\u0425":{d:"116,-202v15,-35,42,-119,84,-76r24,25v-35,23,-55,37,-67,76v3,2,31,0,35,6r5,36v-14,1,-30,0,-42,3v15,36,39,62,72,80r3,9r-44,42v-31,-2,-54,-66,-66,-102v-13,40,-37,93,-71,103v-19,0,-34,-23,-45,-36v5,-20,29,-26,45,-42v13,-12,23,-30,31,-54r-36,-1r-5,-42v14,0,32,0,41,-4v-17,-35,-35,-52,-71,-70v17,-14,31,-31,50,-44v18,3,46,65,57,91",w:238},"\u0426":{d:"69,-139v0,41,27,106,58,65r0,-173v39,-28,44,-44,57,-40r2,227v1,3,6,11,16,23v-2,4,-18,13,-20,24v-4,24,7,42,24,52v-1,18,-28,24,-34,41v-24,-1,-40,-43,-26,-61r14,-18v-18,-6,-29,-19,-33,-38r-54,40v-78,-39,-75,-178,-19,-234v1,-12,-18,-4,-39,-7r1,-47r125,-3v-48,45,-72,94,-72,149",w:217},"\u0427":{d:"189,-8v0,6,-1,9,-8,8v-25,1,-47,7,-54,-8r-1,-100r-63,32v-52,-22,-54,-89,-23,-132v10,-14,23,-23,29,-39r-60,1r-1,-43r123,-1v-16,37,-57,64,-57,119v0,26,27,62,51,36r1,-113v41,-29,47,-44,60,-40",w:198},"\u0428":{d:"287,-96v0,24,-2,39,16,57v-12,14,-25,25,-41,39v-18,-7,-29,-20,-34,-39r-54,43v-22,-4,-45,-22,-49,-43r-54,40v-77,-38,-76,-179,-19,-234r1,-5r-40,-2r1,-47r125,-3v-48,45,-72,94,-72,149v0,41,27,106,58,65r0,-173v38,-28,44,-44,57,-40r2,216v1,14,33,20,40,6v2,-4,4,-7,5,-9r0,-173v38,-28,44,-44,57,-40",w:318},"\u0429":{d:"64,-141v0,40,27,106,59,65r0,-173v38,-28,44,-44,57,-40r2,216v1,15,33,20,40,6v2,-4,3,-7,4,-9r0,-173v39,-28,44,-44,57,-40r2,226v1,4,6,12,16,24v-30,17,-21,65,4,78v-2,18,-26,26,-34,41v-23,-2,-38,-43,-25,-61r13,-19v-18,-7,-29,-20,-33,-39r-55,43v-21,-4,-44,-23,-49,-43r-54,40v-76,-39,-76,-180,-18,-234v1,-12,-26,-4,-39,-7v0,-16,-3,-34,1,-47r124,-3v-48,45,-72,94,-72,149",w:321},"\u042a":{d:"99,-54v31,-22,32,-121,-30,-94r-1,148r-50,0v-9,-42,-3,-101,-3,-149v0,-41,28,-68,51,-92v2,-9,-9,-4,-15,-5r-45,1r-1,-43r123,-1v-17,36,-55,63,-57,114v47,-30,99,4,99,68v0,54,-26,89,-57,115v-15,-8,-21,-25,-33,-36",w:179},"\u042b":{d:"184,-123v-3,-52,10,-114,-17,-139v5,-13,50,-20,60,-28r8,5r0,284v-18,-2,-46,6,-55,-5xm102,-177v92,-8,75,162,18,183v-17,-8,-26,-24,-40,-35v22,-22,49,-70,24,-108v-8,-11,-22,-7,-34,-3v0,17,0,63,-1,139r-51,0v-8,-68,5,-157,-1,-235v2,-6,-20,-18,-12,-29v16,-7,44,-13,58,-22r6,2r1,119v11,-7,22,-10,32,-11",w:247},"\u042c":{d:"16,-7v-2,-93,17,-205,-12,-272v4,0,1,-6,4,-6v11,-2,54,-2,62,0r1,110v45,-31,100,2,100,67v0,53,-26,90,-57,114v-16,-6,-21,-24,-33,-35v16,-25,41,-43,41,-84v0,-34,-24,-46,-51,-36r-1,148r-51,0",w:180},"\u042d":{d:"134,-181v2,-53,-77,-73,-99,-32r-13,-2v-1,-23,-10,-51,-8,-67v98,-35,179,26,175,130v18,112,-63,182,-167,144v-19,-13,-4,-57,-9,-95r9,1v10,18,24,43,48,44v46,0,68,-36,66,-82v-30,1,-60,-1,-84,10v-3,1,-5,0,-4,-5v2,-17,-5,-44,4,-54v24,7,51,9,82,8",w:200},"\u042e":{d:"188,-223v-4,18,-14,43,-15,62v-3,47,43,156,68,80v24,-72,-8,-124,-77,-161v10,-16,22,-31,35,-47v55,8,98,83,98,146v0,75,-36,146,-102,151v-43,-9,-76,-85,-65,-138r-18,0r-3,127r-22,0r0,-249r-10,0r-1,252v-17,-2,-45,6,-54,-5r3,-178v6,-28,-29,-27,-12,-44r43,-25r-50,0v-5,-5,-5,-30,0,-36r120,0v9,3,2,22,4,32v-1,7,-11,3,-17,4r-1,84r27,0v10,-23,28,-77,49,-55",w:312},"\u042f":{d:"132,2v-7,0,-12,0,-21,1r0,-121v-10,-6,-15,-8,-16,-8r-31,127r-48,-1v-9,0,-3,-2,-7,-7r44,-151v-25,-19,-53,-59,-30,-99v17,-31,59,-33,107,-30xm111,-233v-24,-10,-62,9,-52,36v8,22,31,46,52,53r0,-89xm200,-254v14,9,-14,20,-5,47r3,204r-4,6r-51,0r0,-288v25,2,35,24,57,31",w:216},"\u0430":{d:"24,-230v64,-7,121,-6,120,67r-1,120v25,18,-16,37,-26,40v-5,3,-29,-26,-31,-25v-2,-1,-37,29,-40,27v-21,2,-40,-47,-39,-71v-9,-36,60,-85,82,-105v5,-9,0,-24,-12,-22v-22,2,-29,12,-44,29r-11,-1xm59,-83v0,20,10,48,28,28r3,-83v-21,13,-31,32,-31,55",w:159},"\u0431":{d:"90,-51v20,-45,5,-89,-19,-124v-17,40,-4,92,19,124xm39,-169v15,-24,33,-62,68,-44v24,22,42,58,42,105v0,29,-42,121,-71,113v-86,-23,-85,-219,-13,-266v22,-14,49,-31,79,-27v8,19,0,50,-24,50v-21,8,-32,-2,-49,11v-21,16,-35,29,-32,58",w:157},"\u0432":{d:"67,-5v-12,7,-39,8,-50,-1r2,-177v-3,-3,-26,-14,-14,-22v21,-5,40,-22,63,-18r0,24v28,-5,33,-43,65,-15v15,13,28,39,12,60v-6,8,-14,16,-23,25v38,15,47,76,20,103v-10,10,-18,23,-33,29v-10,-7,-31,-24,-29,-35v15,-17,25,-21,25,-49v0,-23,-16,-25,-37,-23xm69,-179r-1,56v17,-6,42,-32,25,-52v-7,-9,-16,-10,-24,-4"},"\u0433":{d:"13,-208v0,-5,-14,-13,-5,-17r110,-2v2,17,-8,49,3,74v-13,4,-29,19,-41,15v-6,-18,-5,-50,3,-66v-4,-5,-16,0,-23,-1r0,205r-43,0v-8,-62,10,-149,-4,-208",w:127},"\u0434":{d:"98,-199v-60,16,-28,120,-25,177r26,0xm28,63v-10,-9,-38,-28,-14,-44v6,-13,-21,-22,-3,-32v32,-31,-8,-126,30,-166v6,-6,10,-14,15,-21v-13,-3,-39,5,-38,-12r2,-16r122,-1r1,227v-10,12,-13,27,0,36v-1,11,-22,34,-34,23v-11,-11,-20,-31,-2,-42r12,-15r-81,0v-5,12,19,15,11,34v-4,11,-12,21,-21,29",w:151},"\u0435":{d:"9,-116v-3,-48,59,-174,103,-89v10,19,18,38,22,59r-71,51v16,46,44,50,89,40r-89,53v-26,-9,-52,-72,-54,-114xm55,-119v12,-8,21,-15,29,-24r-20,-47v-19,11,-13,45,-9,71",w:151},"\u0436":{d:"217,-70r2,69r-47,0v-2,-42,7,-94,-19,-115v-22,6,-12,39,-12,63r0,52v-17,-2,-41,4,-52,-3r0,-107v-44,3,-24,57,-29,110r-47,0v-1,-56,2,-121,48,-131v4,-18,-26,-33,-40,-40v-8,-10,-4,-43,0,-58v33,10,54,46,61,80v2,5,4,8,7,9v-2,-20,6,-47,-10,-55v10,-13,40,-31,63,-30r-1,83v3,1,6,-1,6,-6v11,-33,25,-73,63,-78v13,3,4,26,6,44v3,22,-27,10,-35,25v-6,5,-11,12,-16,22v26,12,51,28,52,66",w:230},"\u0437":{d:"92,-175v-13,-15,-53,-9,-58,8r-8,1v-1,-17,-7,-36,-5,-51v51,-24,135,-10,121,59v-3,16,-13,28,-30,37v28,12,44,42,31,79v-9,26,-38,45,-75,45v-36,0,-64,-9,-54,-56r0,-30v20,5,26,38,52,38v35,0,45,-36,23,-55v-12,-10,-31,-5,-42,0v-5,-5,-7,-32,-2,-40v21,8,51,8,52,-17v1,-7,0,-13,-5,-18",w:158},"\u0438":{d:"71,-64v4,14,17,16,28,5r6,-169r51,0r-1,203v0,3,3,10,10,22v-28,4,-35,4,-65,2v0,-14,-1,-23,-2,-27v-18,10,-33,23,-53,31v-50,-22,-24,-131,-29,-200v-5,-3,-5,-11,-3,-18v19,-5,36,-15,58,-16r0,167",w:172},"\u0439":{d:"71,-238v6,-14,11,-31,12,-51v11,0,26,2,45,7v-7,35,-24,49,-57,44xm71,-65v3,14,17,16,28,5r5,-169r52,0r-1,203v0,4,3,11,10,22v-28,7,-35,3,-65,3v0,-15,-1,-24,-2,-28v-18,10,-32,24,-53,31v-51,-22,-24,-130,-29,-200v-5,-3,-4,-11,-3,-18v18,-6,38,-13,58,-16r0,167",w:172},"\u043a":{d:"94,-135v25,14,49,21,49,65v0,22,4,46,2,69r-47,0v-3,-43,8,-93,-19,-115v-21,7,-11,40,-11,63r0,52r-53,1r0,-186v-6,-7,-19,-13,0,-20v17,-6,31,-22,53,-20r-1,87v27,-25,22,-81,69,-88v12,3,8,41,3,56v-19,4,-35,18,-45,36",w:153},"\u043b":{d:"102,-197v-67,27,-2,141,-34,196r-60,0v-12,-6,4,-11,10,-21v14,-23,9,-57,10,-91v0,-38,13,-59,32,-84v-19,-4,-48,6,-36,-28r132,0r1,222v-10,7,-33,1,-49,3r-1,-196"},"\u043c":{d:"94,0v1,-79,-18,-108,-17,-186v-14,-12,-18,7,-22,25v-12,55,27,106,9,160r-51,1v7,-35,15,-82,9,-130v3,-22,6,-49,17,-68v-12,-2,-37,5,-32,-12r1,-15r104,-1v0,46,12,112,13,157v9,-61,-7,-156,61,-159v14,67,13,151,22,223v-4,9,-25,2,-36,4v-2,0,-3,-1,-3,-4r-15,-167v-11,36,-12,121,-18,169v-8,7,-29,1,-42,3",w:218},"\u043d":{d:"154,-226v4,-1,9,2,9,6r-5,220r-48,0r1,-110r-43,0r-3,110r-48,0r1,-187v0,-8,-18,-8,-4,-18r51,-22v10,15,1,51,4,80r42,0v-1,-19,7,-44,-9,-51v0,-3,1,-5,5,-7",w:170},"\u043e":{d:"75,-233v43,0,68,72,68,120v0,30,-43,117,-73,113v-37,-5,-65,-68,-65,-110v0,-39,39,-123,70,-123xm82,-57v22,-43,5,-89,-19,-123v-18,38,-5,92,19,123",w:150},"\u043f":{d:"92,0v11,-53,23,-125,1,-172v-6,-13,-15,-8,-25,-1r-4,173r-49,0r2,-187v0,-8,-21,-11,-4,-18r55,-22v0,15,-3,48,10,31r35,-29v62,30,48,161,22,225r-43,0"},"\u0440":{d:"77,-40v29,-19,36,-62,25,-101v-4,-15,-12,-25,-22,-22xm157,-122v1,66,-38,100,-82,131r-2,53r-51,2v-3,-14,1,-32,0,-51v-18,5,-23,-15,-17,-29v3,-3,11,-4,17,-5v-2,-60,12,-138,-13,-180v20,-9,44,-22,67,-25r5,29v7,-9,20,-27,30,-27v26,0,46,71,46,102"},"\u0441":{d:"91,-175v-9,0,-31,-8,-40,-10v-13,64,-2,137,50,149v-31,24,-48,36,-51,36v-30,0,-47,-55,-47,-91v0,-41,16,-88,48,-142v15,3,31,8,51,17v1,16,-2,16,-11,41",w:111},"\u0442":{d:"79,-100v0,29,10,56,38,59v0,17,-16,38,-33,44v-78,-19,-47,-132,-19,-183v-18,-3,-45,-2,-50,13v-5,0,-8,4,-6,-5v-4,-68,70,-51,127,-57v4,0,5,1,5,3r0,41v-13,7,-26,0,-47,1v-16,13,-15,56,-15,84",w:148},"\u0443":{d:"0,-219v15,3,56,-14,67,-7v0,54,10,109,30,165v24,-55,19,-97,-9,-149v12,-6,44,-13,62,-16v34,100,-44,195,-59,286v-25,-1,-44,6,-66,-1r40,-54v-29,-58,-43,-126,-52,-202",w:164},"\u0444":{d:"171,-227v39,34,36,148,16,203v-15,40,-44,9,-57,-7r-2,80v-15,-2,-39,5,-47,-4r0,-72v-11,8,-19,23,-32,26v-50,-36,-48,-185,-4,-226v10,4,26,17,37,25v-2,-18,7,-45,-5,-55v-9,-17,21,-13,30,-21v10,-4,20,-6,28,-6r-1,82v12,-11,25,-20,37,-25xm82,-183v-41,-5,-27,84,-21,123v2,16,7,23,21,16r0,-139xm155,-60v6,-38,11,-102,-9,-126v-4,0,-8,1,-13,4r-3,136v15,10,22,7,25,-14",w:212},"\u0445":{d:"74,-79v-10,27,-11,44,-11,76v-16,1,-43,7,-57,-1v0,-59,19,-84,51,-117v-14,-29,-31,-70,-48,-90v59,-20,47,-41,72,4v11,20,16,33,17,33v10,-12,9,-35,10,-56v20,3,57,-10,57,11v0,29,-31,73,-51,90r56,126v-40,9,-63,5,-80,-41",w:177},"\u0446":{d:"130,48v-21,-15,-22,-44,-1,-58v-8,3,-17,6,-28,9r-2,-37v-23,12,-44,58,-67,14v-29,-56,-22,-148,3,-204r42,0v-12,53,-23,125,-1,172v5,12,14,9,24,1r5,-173r49,0r-2,187v1,9,15,5,5,18v-20,9,-8,38,5,44v1,1,0,2,0,3v-12,5,-18,20,-32,24",w:171},"\u0447":{d:"3,-199v3,-9,55,-37,62,-22r0,99v-1,21,25,12,33,5r0,-68r-14,-14r58,-29r9,3r-2,216v-3,17,-35,4,-51,8r0,-97r-46,29v-43,4,-39,-66,-38,-117v-2,-4,-10,-11,-11,-13",w:158},"\u0448":{d:"150,-55v2,14,16,17,27,5r5,-178r48,0r-1,191v2,9,15,6,4,18v-22,14,-20,12,-55,23v-2,-9,3,-39,-7,-35r-40,32v-19,-1,-24,-23,-32,-36r-45,36v-61,-33,-48,-166,-21,-229r43,0v-12,54,-23,128,-1,176v6,12,14,9,23,3r1,-179r51,0r0,173",w:250},"\u0449":{d:"147,-8v-22,25,-36,-11,-44,-27r-45,36v-62,-33,-47,-166,-21,-229r42,0v-11,55,-24,128,-1,176v6,12,12,9,24,3r1,-179r51,0r0,173v1,14,16,17,27,5r4,-178r49,0r-1,191v1,9,14,6,4,18v-20,11,-10,37,5,45v-3,11,-21,17,-27,27v-29,-6,-26,-46,-6,-58r-28,9v-1,-12,6,-45,-10,-32",w:254},"\u044a":{d:"62,3v-67,-15,-55,-162,-14,-200v-18,-6,-47,7,-36,-28r82,0v4,34,-28,31,-30,62v-3,8,-4,16,-5,25v10,-7,20,-14,30,-25v27,0,44,42,44,74v0,50,-29,83,-71,92xm79,-28v23,-15,18,-99,-19,-92v0,37,-4,79,19,92",w:139},"\u044b":{d:"61,3v-69,-11,-42,-118,-48,-194v-4,-7,-20,-18,1,-21v11,-5,34,-14,45,-14r0,84v13,-4,21,-27,37,-25v58,38,39,163,-35,170xm77,-29v23,-12,19,-100,-18,-93v0,34,-6,78,18,93xm147,-191v-1,-6,-20,-14,-6,-19v13,-4,38,-17,52,-16r-3,227v-16,1,-31,5,-44,-2",w:203},"\u044c":{d:"62,3v-68,-11,-42,-118,-48,-194v0,-6,-20,-14,-6,-19v14,-5,38,-16,52,-16r0,84v13,-4,21,-27,38,-25v19,16,35,42,35,77v0,49,-29,84,-71,93xm78,-29v24,-9,20,-101,-18,-93v1,35,-6,78,18,93",w:139},"\u044d":{d:"102,-112v-25,-3,-52,9,-62,5v1,-14,-3,-33,2,-43v17,3,36,8,59,6v2,-42,-54,-58,-70,-26r-10,-1v1,-20,-6,-38,-6,-53v101,-42,150,75,117,179v-13,40,-78,62,-116,32v-3,-19,0,-45,-1,-69r6,0v7,14,17,35,34,35v34,0,49,-29,47,-65",w:148},"\u044e":{d:"169,-46v16,-45,3,-105,-25,-129v-12,-10,-13,3,-14,11v-9,48,7,95,32,120v3,2,5,1,7,-2xm87,-95v-5,1,-12,3,-19,3r0,92r-53,2r0,-187v-5,-7,-18,-13,0,-19v17,-6,31,-22,53,-21r-1,88v10,0,18,1,24,2v5,-31,43,-94,66,-93v42,2,68,72,68,120v0,30,-43,117,-73,113v-36,-4,-63,-63,-65,-100",w:236},"\u044f":{d:"143,-9v-11,9,-37,9,-49,1r-1,-89r-16,-1v-10,32,-15,43,-23,87v-3,16,-23,7,-43,10v-1,-3,-2,-5,-2,-5v11,-34,17,-88,35,-116v-18,-20,-53,-52,-25,-89v23,-29,82,-13,128,-16v8,7,-6,18,-6,25xm91,-181v-25,-9,-56,8,-31,37v11,13,21,24,33,28",w:157}}}); \ No newline at end of file diff --git a/lib/fonts/Modernist_One_400.font.js b/lib/fonts/Modernist_One_400.font.js deleted file mode 100644 index eeaf2a57..00000000 --- a/lib/fonts/Modernist_One_400.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:164,face:{"font-family":"Modernist_One_400","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 6 3 0 0 2 0 3",ascent:"288",descent:"-72","x-height":"3",bbox:"-3.22222 -311 303 84","underline-thickness":"18","underline-position":"-36","unicode-range":"U+0020-U+0451"},glyphs:{" ":{w:65},"\u00a0":{w:65},"!":{d:"50,-248v25,-3,6,14,6,30r-5,161v-10,-4,-31,7,-25,-8r-13,-182v9,-5,23,1,37,-1xm37,-35v12,0,20,9,20,19v1,11,-8,19,-17,19v-11,0,-21,-6,-21,-17v0,-11,8,-21,18,-21",w:76},'"':{d:"113,-248v-3,30,6,81,-4,91r-29,0r0,-87v1,-9,21,1,33,-4xm52,-248v1,28,6,79,-3,91r-30,0r0,-87v1,-9,21,1,33,-4",w:131},"#":{d:"8,-87v-6,-11,0,-37,26,-28r8,-36v-7,-1,-24,4,-22,-4v3,-15,1,-29,28,-24r16,-69v6,-2,21,-2,28,0r-15,69r41,0r17,-69v6,-2,21,-2,28,0r-15,70v6,1,22,-4,19,3v-2,8,0,19,-5,24r-20,0r-8,37v6,1,22,-4,19,3v-2,8,-2,18,-5,24r-19,0v-8,28,-11,62,-22,87v-8,-1,-20,2,-26,-1r18,-86r-41,0v-8,28,-11,62,-22,87v-8,-1,-20,2,-26,-1r18,-86r-20,0xm71,-151r-8,36r43,0r7,-36r-42,0",w:173},"$":{d:"97,-153v28,22,56,44,59,91v-2,37,-26,57,-59,63r0,11r-15,0r0,-11v-28,-3,-56,-10,-70,-27r20,-26v12,14,29,26,50,26r0,-101v-19,-16,-43,-27,-43,-62v0,-27,19,-36,43,-40r0,-10r15,0r0,11v16,2,31,9,42,18v-4,8,-12,16,-17,23v-9,-7,-14,-14,-25,-18r0,52xm82,-206v-26,3,-19,36,0,43r0,-43xm97,-27v39,-10,27,-71,0,-87r0,87"},"%":{d:"53,-115v-59,0,-52,-115,0,-118v29,7,47,40,89,23v21,-3,29,-23,39,-38v7,-2,25,1,33,0r-151,245v-5,7,-21,1,-35,3r116,-189v-16,3,-38,4,-53,-1v5,34,-3,74,-38,75xm179,-117v51,4,58,118,0,119v-59,-1,-50,-116,0,-119xm179,-91v-35,17,6,109,12,42v-1,-17,2,-39,-12,-42xm53,-208v-20,7,-17,64,0,68v16,-2,11,-27,11,-43v0,-10,-1,-24,-11,-25",w:231},"&":{d:"76,-180v-1,22,27,19,40,26v-2,9,-6,20,-14,24v-30,2,-49,20,-51,50v2,34,22,53,56,53v25,0,48,-12,48,-39v1,-20,-8,-36,-27,-37v-10,-1,-20,19,-25,4v2,-19,14,-29,33,-31v24,-2,28,30,46,22v6,-22,18,-44,45,-46v16,0,28,12,28,28v0,34,-39,-10,-52,22v-13,31,-19,80,-48,94v-58,32,-143,1,-137,-72v0,-35,21,-55,46,-67v-44,-22,-13,-90,37,-84v24,1,46,4,57,20v-5,5,-12,19,-19,23v-13,-16,-63,-24,-63,10",w:263},"(":{d:"97,-254v-42,71,-33,204,1,275v-2,3,-4,6,-7,6v-77,-53,-77,-238,-1,-289v2,0,6,6,7,8",w:129},")":{d:"40,-262v78,55,75,235,-1,289v-3,-2,-5,-3,-7,-6v35,-72,42,-203,1,-277",w:129},"*":{d:"126,-221v9,1,16,23,10,29v-15,-2,-27,6,-39,9v7,12,18,20,27,30v-5,11,-27,26,-33,5v-9,-32,-33,-11,-37,10v-10,6,-25,-8,-29,-15v9,-11,19,-19,27,-30v-14,-9,-54,0,-37,-30v9,-19,30,8,47,6v0,-24,-11,-51,28,-39v7,8,-5,23,-1,39v14,-3,26,-7,37,-14",w:149},"+":{d:"87,-116v27,-2,49,-5,38,33r-38,0v-3,16,12,46,-16,38v-23,7,-16,-17,-17,-38r-36,0v-3,-4,-12,-44,11,-33r25,0v-1,-13,2,-27,0,-36v4,-5,25,-3,34,-1",w:140},",":{d:"27,3v-20,-5,-16,-39,6,-38v12,0,20,9,20,21v-3,23,-14,43,-38,46v-15,-7,12,-18,12,-29",w:61},"-":{d:"18,-116v34,2,73,-16,62,33r-59,0v-8,-2,-1,-20,-3,-33",w:96},"\u00ad":{d:"18,-116v34,2,73,-16,62,33r-59,0v-8,-2,-1,-20,-3,-33",w:96},".":{d:"29,-35v11,0,22,8,21,19v1,10,-10,21,-20,20v-22,1,-25,-39,-1,-39",w:61},"/":{d:"66,-86v-13,29,-21,72,-36,95r-31,-1r93,-261r33,0",w:126},"0":{d:"80,-233v53,6,63,64,68,118v-2,55,-10,117,-68,118v-59,-1,-67,-59,-68,-118v4,-54,15,-112,68,-118xm43,-115v-2,41,8,104,52,82v19,-15,21,-48,21,-82v-1,-34,-6,-81,-36,-87v-32,6,-33,54,-37,87",w:159},"1":{d:"26,-178v1,-14,-6,-20,-15,-24v12,-12,29,-22,43,-33v3,-1,5,1,5,5v2,76,-7,162,4,229v-10,3,-33,-1,-46,1v18,-44,5,-119,9,-178",w:74},"2":{d:"56,-31v32,1,72,0,89,-9v-2,19,13,48,-22,41v-33,-3,-73,1,-106,-2v-12,-40,28,-56,45,-84v19,-25,43,-50,48,-86v3,-34,-48,-42,-62,-16v-6,-10,-15,-24,-24,-31v41,-28,126,-17,121,45v-10,63,-53,104,-89,142",w:160},"3":{d:"45,-219v-3,-14,28,-12,42,-14v55,-6,74,65,32,86v26,8,38,37,38,69v5,73,-88,100,-145,67v5,-11,15,-23,21,-32v29,31,97,16,94,-34v-2,-28,-22,-58,-53,-50v-5,-5,-1,-19,-2,-28v34,6,56,-51,13,-49v-15,-2,-16,9,-25,13v-2,-11,-8,-21,-15,-28",w:168},"4":{d:"93,-153v5,-10,21,-14,29,-22v3,21,0,51,1,75v5,10,36,-5,43,6v-2,8,5,25,-4,27v-12,2,-34,-5,-39,4v1,22,-3,48,6,61v-7,4,-32,2,-43,0v7,-14,10,-44,5,-64v-22,-3,-49,1,-73,-1v-14,-1,-7,-22,-2,-33r52,-100v3,-20,18,-47,48,-30r-64,133v14,-3,41,9,41,-10r0,-46",w:170},"5":{d:"129,-82v4,-43,-51,-59,-81,-37v-4,-24,-4,-81,0,-112r100,0v3,6,4,32,2,41v-16,-11,-49,-12,-76,-9v0,12,-8,44,13,38v50,2,74,35,75,85v1,72,-94,99,-150,63r23,-32v26,31,101,16,94,-37",w:174},"6":{d:"77,-81v-1,10,11,7,13,13v0,9,-7,11,-16,11v-40,-12,-22,-76,19,-73v35,2,53,28,55,64v-3,40,-22,68,-64,69v-53,-1,-71,-40,-72,-93v2,-62,34,-103,62,-141v14,1,31,-2,43,1v-31,34,-67,75,-72,134v0,35,5,67,40,68v35,1,44,-65,7,-68v-10,0,-15,5,-15,15",w:159},"7":{d:"93,-201v-26,-7,-70,-1,-86,6v4,-17,-11,-46,20,-38r105,1v5,4,-1,15,2,22v-32,54,-61,117,-72,191v0,6,8,17,1,19v-15,-2,-35,2,-46,-3v20,-66,45,-140,76,-198",w:140},"8":{d:"77,-233v47,0,67,62,30,84v60,20,49,159,-28,152v-49,0,-66,-35,-66,-84v3,-29,10,-62,36,-68v-41,-16,-18,-84,28,-84xm77,-164v11,0,20,-9,20,-20v0,-10,-9,-21,-20,-20v-10,-1,-21,10,-20,20v-1,11,10,20,20,20xm78,-132v-47,2,-44,103,2,104v46,-3,43,-103,-2,-104",w:158},"9":{d:"66,-28v46,-3,56,-52,59,-95v-33,37,-106,8,-99,-47v2,-38,24,-61,61,-63v52,4,71,43,71,99v-2,72,-20,135,-91,138v-23,-1,-43,-5,-56,-17r26,-28v8,5,16,12,29,13xm91,-139v17,0,28,-12,28,-30v-1,-19,-12,-34,-30,-34v-18,0,-29,15,-29,34v0,18,13,31,31,30",w:169},":":{d:"30,-174v10,0,21,8,20,19v0,10,-9,21,-20,20v-21,0,-26,-40,0,-39xm29,-35v11,0,22,8,21,19v1,10,-10,21,-20,20v-22,1,-25,-39,-1,-39",w:61},";":{d:"30,-174v10,0,21,8,20,19v0,10,-9,21,-20,20v-21,0,-26,-40,0,-39xm27,3v-20,-5,-16,-39,6,-38v12,0,20,9,20,21v-3,23,-14,43,-38,46v-15,-7,12,-18,12,-29",w:61},"<":{d:"102,-165v13,-14,16,14,25,20v-12,15,-48,33,-63,45r62,41v-2,9,-13,37,-25,23v-27,-21,-60,-36,-85,-59v9,-37,62,-45,86,-70",w:140},"=":{d:"15,-142v47,7,127,-29,110,33r-107,0v-6,-3,0,-21,-3,-33xm15,-90v47,7,127,-29,110,33r-107,0v-6,-3,0,-22,-3,-33",w:140},">":{d:"26,-136v-22,-10,3,-20,7,-34v31,17,62,43,93,61v3,37,-48,40,-68,63r-25,15v-3,-10,-18,-19,-15,-28r62,-41",w:140},"?":{d:"10,-230v38,-32,122,-20,118,42v-1,46,-28,68,-55,89v-1,14,-5,28,-3,41v-8,2,-18,0,-27,0v2,-17,-3,-37,-3,-53v21,-18,49,-40,53,-75v3,-35,-48,-41,-62,-16v-5,-10,-13,-21,-21,-28xm57,-35v10,0,21,9,20,19v-1,10,-7,19,-18,19v-10,0,-20,-7,-20,-17v0,-11,6,-21,18,-21",w:137},"@":{d:"190,-179v-12,21,-14,53,-19,80v1,7,9,6,16,6v29,-1,39,-24,41,-52v-3,-47,-33,-73,-82,-74v-61,2,-92,41,-94,101v1,66,41,97,116,90v2,4,1,21,0,28v-91,6,-141,-36,-144,-118v3,-79,44,-126,122,-130v65,3,108,38,110,104v4,59,-60,103,-108,67v-27,20,-68,-1,-63,-38v0,-42,28,-76,72,-67v2,-9,30,-4,33,3xm113,-117v-3,18,21,28,31,14v2,-15,15,-39,4,-53v-25,-2,-34,16,-35,39",w:279},D:{d:"18,-32v-4,-71,10,-161,-10,-215v54,-3,98,43,128,77v40,45,48,168,-35,170r-91,0v-2,-11,10,-18,8,-32xm68,-33v44,5,64,-14,63,-54v-6,-48,-31,-94,-72,-106v-8,0,-8,5,-9,11r0,132v0,11,8,17,18,17",w:174},E:{d:"63,-32v33,0,70,2,90,-10v1,8,1,32,-2,42v-46,-2,-101,4,-143,-2v7,-10,12,-25,10,-44r0,-176v-4,-14,-11,-33,16,-25v34,1,74,-4,104,1r1,39v-17,-15,-58,-10,-88,-9v0,6,-2,15,2,17r78,1v1,7,5,27,-4,29r-72,0v-2,0,-5,0,-5,4r0,120v0,10,3,13,13,13",w:160},F:{d:"9,0v2,-11,9,-26,9,-47r-4,-202r124,2r1,40v-18,-14,-61,-12,-89,-8v0,8,-3,19,9,16r63,0v7,2,5,23,2,30v-24,1,-54,-3,-74,2r2,151v-1,7,8,10,5,16v-16,0,-32,-2,-48,0",w:153},G:{d:"155,-152v2,51,-7,120,9,154v-72,-13,-119,-65,-148,-124v-26,-64,5,-132,78,-125v21,1,49,-9,41,26v-1,7,1,16,-1,21v-26,-27,-98,-16,-92,33v6,51,36,89,72,110v7,0,8,-6,8,-13v-2,-38,7,-88,-11,-109v12,1,39,-1,51,2v-1,4,-9,16,-7,25",w:169},H:{d:"119,-150v0,-41,-46,0,-69,-18r1,149v4,9,11,25,-7,19v-13,-1,-43,7,-29,-11v4,-69,10,-171,-3,-236v10,-3,31,-1,46,0v-13,19,-10,71,24,48v10,-7,29,-6,37,2v6,-22,-12,-41,-6,-51v15,1,33,-2,46,1v-15,62,-5,155,-6,228v4,9,9,25,-8,19v-11,-1,-29,5,-35,-2v18,-33,9,-99,9,-148",w:169},I:{d:"31,-1v-22,3,-4,-13,-4,-32r-4,-215v10,-1,31,0,44,1v-2,7,-8,17,-7,29r0,189v-4,15,12,24,3,29",w:86},J:{d:"21,-33v84,-3,80,-132,65,-213v9,-3,33,-3,46,0v-12,25,-5,78,-7,116v-4,78,-41,127,-116,134v-10,-3,-1,-26,-4,-43v7,0,10,4,16,6",w:141},K:{d:"159,-242v-30,11,-53,45,-74,65r55,142v7,13,13,26,26,33v-11,5,-43,1,-59,1v4,-52,-34,-106,-46,-154r-11,9v1,49,-6,115,9,146v-15,-2,-39,4,-49,-3v5,-8,8,-16,8,-30r-2,-207v-2,-2,-6,-9,1,-8v14,3,33,-3,45,2v-13,10,-15,41,-11,64v17,-15,44,-45,48,-67v20,3,45,-1,63,3v0,2,-1,4,-3,4",w:168},L:{d:"64,-31v28,0,59,1,75,-9v1,7,7,41,-6,40v-39,-3,-86,4,-121,-1v12,-63,8,-166,3,-237v-2,-4,-7,-11,2,-10v13,3,31,-3,41,2v-18,51,-3,134,-8,198v0,9,4,17,14,17",w:148},M:{d:"112,-210v11,-10,30,-20,35,-37v18,1,41,-4,55,1v-18,55,10,142,6,213v-1,12,11,29,6,33v-15,-1,-36,4,-47,-1v17,-59,-2,-145,-6,-212v-18,11,-33,34,-50,46r-47,-44v-10,56,-10,127,-17,188v-2,10,10,19,4,24v-16,-1,-35,1,-49,-2v28,-58,15,-151,27,-231v-4,-9,-10,-20,10,-15r37,-1v9,12,21,30,36,38",w:219},N:{d:"158,-29v-3,13,12,23,3,29v-15,-2,-52,7,-39,-11v6,-21,4,-50,4,-76r-73,-105v-6,45,0,111,-2,163v-4,12,13,25,6,29v-15,-2,-38,4,-48,-3v6,-6,10,-18,9,-30r-2,-207v-1,-2,-7,-9,1,-8v16,1,38,-3,51,2v-10,37,44,71,57,102v0,-30,9,-83,-8,-102v6,-4,37,-3,49,0v-4,9,-8,13,-8,28r0,189",w:174},O:{d:"110,-248v71,1,100,53,102,123v0,74,-28,124,-102,125v-70,-3,-97,-55,-100,-125v1,-71,29,-122,100,-123xm110,-32v50,-2,67,-43,70,-93v-3,-50,-19,-90,-70,-92v-93,0,-91,186,0,185",w:222},P:{d:"11,-249v43,2,93,-3,130,5v28,36,-19,74,-33,104v-16,25,-28,54,-45,77v-16,-67,33,-98,50,-147v-7,-14,-44,-6,-62,-5r0,201v2,4,11,12,4,15v-11,-5,-54,10,-38,-13v-3,-77,9,-179,-6,-237",w:155},Q:{d:"110,-248v107,-8,126,150,75,216v4,7,14,10,18,18v-4,7,-16,17,-25,20v-7,-3,-12,-13,-16,-18v-82,38,-158,-24,-152,-113v1,-71,29,-122,100,-123xm161,-58v34,-51,24,-160,-51,-159v-93,0,-91,186,0,185v10,0,20,-2,28,-7v-12,-14,-27,-25,-38,-40v11,-7,23,-28,32,-9v10,10,17,20,29,30",w:222},R:{d:"23,1v-25,3,-1,-16,-4,-29r-1,-198v2,-12,-7,-16,-5,-23r119,1v51,24,-17,69,-26,98v19,48,35,110,58,150v-12,1,-38,3,-53,-1v11,-44,-24,-80,-33,-120v-9,15,-22,29,-27,47v-3,26,5,61,5,74v-12,0,-23,-1,-33,1xm52,-134v21,-24,39,-49,55,-78v-8,-10,-40,-5,-55,-3v-2,24,-2,57,0,81",w:165},S:{d:"164,-66v0,76,-105,83,-154,48v4,-12,15,-21,21,-32v18,31,100,35,98,-17v-1,-73,-84,-72,-90,-139v-6,-52,80,-54,106,-25v-6,7,-11,16,-18,23v-12,-8,-21,-11,-35,-12v-32,6,-10,38,6,49v30,27,66,48,66,105",w:172},T:{d:"160,-252v5,27,-25,43,-60,36r0,200v-2,7,15,17,-3,16v-13,-4,-35,6,-41,-5v5,-8,9,-15,9,-28r0,-179v-9,-13,-44,2,-57,2r0,-37v50,-3,111,7,152,-5",w:169},U:{d:"168,-228v4,80,-9,167,9,229v-102,-6,-205,-125,-146,-236v-8,-14,5,-14,21,-12v8,1,20,-3,26,1v-18,17,-28,46,-30,78v4,58,35,95,81,111v4,0,4,-5,4,-9r0,-151v5,-17,-17,-26,-4,-32r42,1v3,6,-2,13,-3,20",w:181},V:{d:"81,-56r28,-173v2,-9,-12,-16,-2,-19v15,3,34,-3,46,2v-28,65,-32,157,-50,232v0,5,8,14,1,16v-15,-6,-39,0,-54,-2v6,-75,-28,-156,-38,-229v2,-8,-10,-14,-8,-19v16,3,38,-4,49,3v-7,53,17,134,28,189",w:155},W:{d:"116,1v9,-17,0,-61,-7,-79v-3,26,-16,61,-4,79v-15,-6,-39,4,-54,-2v10,-70,-30,-161,-41,-235v-2,-4,-11,-10,-4,-13v16,1,36,-3,48,2v-14,21,0,55,3,78r22,118r18,-91r-25,-105v8,-2,24,-1,32,1v3,16,1,37,6,51v3,-17,3,-37,7,-52v9,0,21,-2,29,0r-24,104v8,29,9,66,21,92r29,-178v2,-9,-11,-15,-4,-19v15,1,34,-2,48,1v-28,67,-34,155,-50,234v-1,7,9,12,1,14v-17,-2,-34,-2,-51,0",w:218},X:{d:"76,-172v7,-20,27,-54,15,-76v17,1,43,-3,55,2v-26,26,-35,76,-52,113r51,124v2,3,13,8,6,10v-18,-1,-41,3,-55,-2v14,-27,-11,-67,-20,-92v-5,27,-31,63,-21,92v-10,3,-39,2,-53,0v29,-36,37,-87,58,-132v-17,-38,-28,-83,-52,-114v12,-1,41,-2,55,1v-13,20,9,53,13,74",w:155},Y:{d:"77,-211v7,-11,18,-21,17,-37v17,-1,43,-3,61,1v-26,16,-42,44,-60,66r3,169v1,3,8,12,0,12v-13,-1,-30,2,-41,-1v10,-48,3,-120,5,-179v-20,-22,-35,-48,-60,-65v10,-8,36,0,58,-3v-4,17,12,25,17,37",w:156},Z:{d:"92,-216v-26,1,-51,0,-68,10v2,-14,-8,-37,3,-43v36,2,80,-4,113,2r-87,212v20,6,68,6,85,-7v5,8,5,32,1,43v-39,-3,-86,-3,-126,0v-8,1,-5,-10,-4,-16",w:146},"[":{d:"24,19v17,-75,8,-202,3,-277v19,2,64,-6,80,5v-2,9,1,21,-6,25r-39,0r2,219v23,-3,58,-2,37,31r-75,0v-1,0,-2,-1,-2,-3",w:129},"\\":{d:"34,-253r91,261v-11,-1,-29,6,-34,-3r-91,-257v7,-3,22,0,34,-1",w:126},"]":{d:"106,-258v-9,76,-11,204,3,277v-10,8,-53,-2,-77,3v-6,-3,-10,-29,-1,-31r38,0v5,-69,1,-147,2,-219v-22,0,-52,7,-44,-28v17,-5,55,-2,79,-2",w:129},"^":{d:"40,-153v-9,26,-24,7,-38,-1v17,-31,43,-63,61,-93v36,-4,41,48,64,68v4,9,11,15,14,25v-11,3,-18,17,-28,15v-12,-22,-27,-41,-41,-62",w:140},_:{d:"0,51r0,-16r180,0r0,16r-180,0",w:180},a:{d:"138,-143v0,48,-2,107,5,143v-12,-1,-30,1,-39,-1v0,-2,2,-6,0,-7v-34,18,-101,12,-94,-41v1,-50,56,-52,88,-71v9,-5,10,-24,-2,-23v-22,0,-54,-2,-63,5v2,-12,-4,-30,4,-36v40,4,102,-14,101,31xm44,-48v0,34,62,23,62,1v0,-14,2,-32,-1,-44v-21,10,-59,14,-61,43",w:155},b:{d:"56,-267v8,9,-7,26,-4,42r0,44v47,21,102,35,100,103v-2,43,-18,77,-63,79r-75,-1v-1,0,-2,-2,-2,-4v6,-5,7,-17,8,-28r-1,-191v-1,-9,-12,-19,2,-23v13,-5,22,-16,35,-21xm64,-30v52,10,61,-47,45,-83v-10,-17,-35,-27,-57,-33r0,103v0,8,4,13,12,13",w:161},c:{d:"113,-29v17,-6,24,2,21,21v1,5,-2,12,-6,11v-65,-2,-114,-24,-115,-90v2,-60,39,-86,101,-89v18,-1,15,21,13,37v-9,6,-15,-8,-31,-4v-34,0,-48,23,-50,55v2,39,27,58,67,59",w:141},d:{d:"143,-32v-1,14,9,24,5,32v-25,-2,-50,0,-75,1v-72,3,-80,-116,-32,-148v18,-14,46,-24,69,-34v-1,-21,3,-45,-7,-59v14,-7,31,-27,46,-25v-14,64,-1,157,-6,233xm110,-147v-34,11,-66,23,-64,69v1,31,14,48,53,48v9,0,10,-6,11,-13r0,-104",w:161},e:{d:"87,-176v42,2,68,28,65,75r-104,43v4,37,70,38,70,-3v7,-2,33,14,29,24v-13,25,-29,39,-63,40v-51,-2,-73,-39,-74,-90v2,-50,26,-86,77,-89xm117,-118v-2,-33,-52,-38,-65,-9v-6,10,-10,25,-10,39"},f:{d:"105,-267v2,1,3,-4,7,-3v-1,11,5,27,0,35v-35,-4,-53,23,-52,61v21,2,51,-10,42,26v-3,11,-29,3,-42,5v-6,85,21,193,-57,216v0,-10,-14,-35,0,-38v43,-25,19,-116,25,-178v-16,1,-28,2,-24,-22v-1,-13,13,-8,24,-9v1,-55,23,-91,77,-93",w:109},g:{d:"11,-78v-3,-72,68,-105,133,-93r-1,149v0,62,-31,97,-93,96v-8,0,-7,-30,-2,-37v28,15,62,-7,63,-37v-65,10,-101,-19,-100,-78xm82,-32v15,1,30,1,28,-14r0,-96v-36,7,-64,21,-64,64v1,24,11,44,36,46",w:161},h:{d:"146,-132v2,43,-6,97,6,129v-5,8,-28,-1,-44,3v-8,-6,8,-18,5,-30r0,-95v-2,-31,-61,-23,-61,4v3,39,-7,92,7,118v-6,7,-29,1,-45,3v-7,-5,8,-17,6,-26r-1,-194v1,-12,-13,-21,2,-26v14,-3,25,-23,38,-19v-9,28,-8,76,-6,112v17,-36,94,-24,93,21"},i:{d:"36,-242v10,-1,21,10,20,20v0,10,-9,19,-20,19v-12,0,-18,-10,-18,-21v0,-10,7,-18,18,-18xm23,-1v-22,3,0,-14,-4,-32v1,-46,-7,-99,-2,-141v13,1,32,-3,42,2v-14,33,-2,97,-7,143v-2,16,13,24,3,29",w:70},j:{d:"43,-242v11,-1,21,10,21,20v1,10,-10,19,-20,19v-12,0,-18,-10,-18,-21v-1,-10,7,-18,17,-18xm6,72v-7,-1,-13,-32,-6,-36v51,-25,19,-151,25,-210v13,3,36,-5,42,4v-15,36,-3,100,-7,148v1,50,-18,79,-54,94",w:78},k:{d:"92,-118v20,38,38,82,62,116v-7,7,-31,-3,-46,3v-1,-30,-30,-73,-41,-99r-15,15v2,28,-3,60,7,80v-6,7,-30,-1,-45,3v-1,0,-2,-2,-2,-4v6,-5,7,-17,8,-28r-1,-190v1,-9,-12,-20,2,-24v14,-4,24,-23,38,-19v-11,37,-7,99,-6,145v14,-15,33,-29,44,-47v-3,-1,-6,-5,-2,-7v16,3,39,-4,50,3v-15,10,-40,38,-53,53",w:155},l:{d:"60,-29v-1,12,13,23,3,29v-12,-2,-45,6,-41,-6v14,-60,4,-146,5,-216v-1,-9,-11,-20,1,-24v14,-3,25,-23,39,-19v-15,65,-2,159,-7,236",w:86},m:{d:"231,-132v2,43,-6,97,6,129v-6,8,-28,-1,-44,3v-8,-6,9,-17,5,-30r0,-95v0,-29,-55,-25,-57,0v2,41,-6,95,7,122v-7,7,-28,-1,-45,3v-7,-5,8,-16,6,-30v-6,-41,20,-115,-28,-115v-14,0,-29,7,-29,20v0,41,-7,95,7,122v-5,7,-28,1,-45,3v-7,-6,8,-15,6,-26r0,-127v3,-10,-11,-15,-5,-21v14,1,33,-3,43,2v-4,3,-9,12,-5,19v10,-29,70,-28,79,0v20,-34,100,-28,99,21",w:249},n:{d:"146,-132v2,43,-6,97,6,129v-5,8,-28,-1,-44,3v-8,-7,9,-17,5,-30r0,-95v-3,-30,-60,-23,-61,4v3,39,-7,92,7,118v-5,7,-28,1,-45,3v-7,-6,8,-15,6,-26r0,-127v3,-10,-11,-15,-5,-21v14,1,33,-3,43,2v-4,3,-9,12,-5,19v19,-35,93,-25,93,21"},o:{d:"85,-176v49,3,71,39,72,89v-1,52,-20,89,-72,90v-50,-2,-70,-40,-72,-90v0,-50,22,-89,72,-89xm85,-29v56,-1,53,-115,0,-116v-55,2,-58,116,0,116",w:169},p:{d:"12,-172v71,-11,146,0,139,76v-5,58,-35,99,-101,96v1,21,-1,45,8,58v-15,5,-29,27,-45,24v15,-67,3,-163,7,-242v0,-5,-8,-9,-8,-12xm66,-30v55,1,78,-110,10,-111r-26,0r0,97v0,11,6,14,16,14",w:161},q:{d:"12,-96v-6,-76,67,-86,139,-76v0,3,-9,7,-8,12r1,216v0,9,10,23,3,28v-15,-6,-27,-19,-42,-26v9,-13,8,-35,8,-58v-66,4,-95,-39,-101,-96xm98,-30v9,0,15,-4,15,-14r0,-97v-42,-4,-70,7,-68,47v3,33,19,61,53,64",w:161},r:{d:"122,-145v-2,11,-28,17,-33,14v-5,-24,-31,-10,-34,5v-4,35,-8,95,4,123v-8,8,-30,1,-45,3v-6,-7,7,-15,6,-26r0,-127v2,-9,-12,-16,-5,-21v14,1,33,-3,43,2v-6,2,-8,12,-5,19v5,-12,19,-21,32,-22v23,0,34,12,37,30",w:130},s:{d:"116,-138v-12,-12,-58,-11,-38,9v27,21,69,33,72,79v0,63,-107,64,-137,29v6,-6,14,-35,24,-19v18,17,78,26,78,-11v0,-49,-76,-37,-79,-88v-1,-44,75,-43,97,-21v-6,7,-10,16,-17,22",w:162},t:{d:"55,-143v-5,60,3,131,65,108v-2,12,7,33,-4,37v-81,2,-100,-59,-93,-145v-6,-1,-18,2,-17,-5v0,-14,-5,-31,17,-26v2,-16,-14,-37,1,-41v13,-4,24,-23,38,-19v-5,17,-6,38,-7,60v18,1,42,-3,57,2v1,7,5,27,-4,29r-53,0",w:128},u:{d:"110,-53v-2,-40,7,-92,-8,-118v7,-8,29,0,45,-3v6,6,-6,17,-4,26r0,99v-2,35,-28,48,-63,50v-35,-1,-60,-15,-62,-50v-2,-41,6,-92,-6,-122v7,-8,29,0,45,-3v5,7,-9,18,-6,30r0,91v-1,17,15,24,29,24v16,0,30,-7,30,-24",w:160},v:{d:"72,-59v9,-34,35,-76,24,-112v6,-7,28,1,45,-3v-10,53,-48,113,-47,173v-8,4,-33,2,-45,0v1,-60,-32,-116,-46,-169v4,-8,32,-3,45,-2v-8,37,17,77,24,113",w:146},w:{d:"190,-173v6,7,-11,9,-9,21r-24,141v6,7,1,11,-11,11v-13,0,-37,3,-26,-13v-9,-21,-13,-47,-25,-65v-9,26,-19,51,-19,78v-21,-2,-48,8,-40,-18r-25,-142v0,-5,-13,-9,-6,-14v14,3,33,-3,43,3v-1,4,-8,4,-6,11r17,107r33,-87v29,6,26,61,45,86r17,-109v0,-3,-6,-4,-6,-7v5,-8,29,-2,42,-3",w:194},x:{d:"155,-2v-17,3,-54,8,-51,-13v-6,-18,-15,-33,-25,-48v-10,19,-23,36,-28,60v-6,4,-37,5,-47,0v26,-24,39,-60,58,-91v-16,-29,-28,-54,-50,-78v8,-2,42,-6,47,4v3,17,12,32,21,43v7,-13,18,-28,20,-46v8,-6,34,-2,47,-1v-21,22,-36,51,-51,78v19,31,33,67,59,92",w:158},y:{d:"112,-53v-3,-40,7,-92,-7,-119v8,-7,32,-2,45,-2v7,6,-9,16,-6,26r0,126v2,63,-36,102,-97,94v1,-11,-5,-29,2,-35v32,17,74,-15,62,-58v-19,36,-93,24,-93,-21v-2,-43,6,-97,-6,-129v7,-8,29,0,45,-3v5,7,-9,18,-6,30r0,94v3,31,59,25,61,-3"},z:{d:"55,-29v23,1,56,2,72,-7v8,4,4,21,5,33v-23,9,-79,-1,-115,4v-15,-6,3,-22,5,-31r62,-115v-22,-2,-45,6,-59,5v1,-16,-10,-41,19,-34r86,0v-16,49,-54,100,-75,145",w:142},"{":{d:"45,-128v46,4,20,75,30,119v18,2,48,-11,41,21v-5,22,-49,2,-79,10v-2,-27,30,-140,-25,-138v2,-7,-2,-20,3,-24v47,2,20,-87,25,-119r72,1v10,1,5,26,0,30r-39,0v-1,42,10,95,-28,100",w:129},"|":{d:"50,62v-22,3,0,-14,-4,-32r-4,-303v14,1,34,-3,44,2v-2,6,-8,17,-7,28r0,277v-4,15,13,24,3,29",w:124},"}":{d:"92,-258v-4,35,-22,120,25,119v-2,7,1,17,-1,23v-47,2,-26,77,-26,123v1,4,8,12,3,15v-25,-2,-59,5,-78,-3v-1,-8,-7,-25,2,-28r38,0v8,-42,-14,-113,30,-121v-42,0,-25,-59,-28,-98v-21,-2,-50,10,-45,-24v8,-14,53,-3,80,-6",w:129},"~":{d:"11,-78v1,-44,46,-42,82,-36v2,-10,31,-14,36,-4v-4,34,-42,44,-75,32v-8,0,-10,4,-13,9v-10,-2,-25,6,-30,-1",w:140},"'":{d:"52,-248v1,28,6,79,-3,91r-30,0r0,-87v1,-9,21,1,33,-4",w:70},"`":{d:"35,-254v45,-19,76,28,85,52v-12,0,-28,4,-32,-5v-17,-16,-38,-28,-53,-47",w:156},"\u0410":{d:"127,1v5,-15,13,-69,-9,-77r-52,0v-17,8,-20,60,-6,75v-13,3,-45,2,-61,0v36,-64,43,-167,61,-247v22,2,43,2,65,0v5,-1,4,6,4,11v7,84,32,174,56,238v-19,-2,-39,-2,-58,0xm84,-210r-16,98v6,11,31,2,47,5v2,-32,-11,-70,-13,-103v-2,-4,-15,-3,-18,0",w:184},"\u0411":{d:"63,-32v44,4,65,-19,66,-58v-2,-41,-26,-64,-76,-57v-8,26,0,68,-3,99v0,8,4,16,13,16xm139,-208v-21,-9,-87,-22,-89,7v1,8,-4,21,4,24v74,-10,105,31,110,90v5,81,-73,98,-154,86v1,-9,9,-15,8,-27r0,-191v2,-12,-19,-36,6,-29r112,-1v8,5,4,28,3,41",w:175},"\u0412":{d:"107,-248v47,-1,54,76,14,85v27,11,42,40,43,76v5,81,-73,98,-154,86v1,-9,9,-15,8,-27r0,-191v2,-12,-20,-33,6,-29v27,4,54,0,83,0xm50,-180v21,7,70,9,67,-18v0,-27,-37,-17,-62,-19v-11,4,-2,25,-5,37xm63,-32v44,4,65,-19,66,-58v-2,-41,-26,-64,-76,-57v-8,26,0,68,-3,99v0,8,4,16,13,16",w:175},"\u0413":{d:"15,-9v5,-71,8,-173,-3,-237v28,-3,90,4,124,-2v8,5,4,28,3,41v-18,-10,-47,-9,-75,-9v-10,0,-14,8,-14,17r2,183v-2,8,9,13,4,17v-14,-3,-34,3,-45,-2",w:148},"\u0414":{d:"3,7v2,-12,-2,-31,5,-39r25,0v5,-89,-25,-210,65,-215r88,0v1,10,-9,19,-9,32r0,183v11,1,28,-3,36,2v-1,13,3,28,0,39v-6,-7,-19,-9,-32,-9v-58,2,-141,-7,-178,7xm124,-214v-88,-10,-47,110,-56,183r77,0r0,-166v0,-14,-9,-16,-21,-17",w:218},"\u0415":{d:"63,-32v33,0,70,2,90,-10v1,8,1,32,-2,42v-46,-2,-101,4,-143,-2v7,-10,12,-25,10,-44r0,-176v-4,-14,-11,-33,16,-25v34,1,74,-4,104,1r1,39v-17,-15,-58,-10,-88,-9v0,6,-2,15,2,17r78,1v1,7,5,27,-4,29r-72,0v-2,0,-5,0,-5,4r0,120v0,10,3,13,13,13",w:160},"\u0416":{d:"111,2v-7,-5,8,-20,6,-30v4,-42,-6,-73,-26,-95r-38,102v-2,8,8,15,2,20v-16,-1,-32,-1,-47,1v21,-45,44,-104,59,-156v-13,-31,-31,-73,-57,-91v7,-5,38,-4,49,-1r-1,6v19,40,33,69,59,108v-3,-38,6,-85,-8,-113v12,-1,35,-2,48,1v-13,25,-8,79,-7,114v18,-39,48,-73,58,-116v15,2,38,-4,48,3v-27,18,-43,59,-57,91r52,143v2,6,12,8,7,13v-15,-4,-36,2,-49,-3v10,-41,-25,-81,-34,-120v-25,21,-35,84,-19,121v-16,0,-31,0,-45,2",w:266},"\u0417":{d:"60,-208v-5,-8,-12,-16,-17,-23v23,-28,113,-28,106,25v0,24,-13,40,-27,53v21,21,42,45,42,87v0,76,-105,83,-154,48v4,-11,15,-22,21,-32v18,31,100,35,98,-17v-3,-42,-20,-71,-67,-68r0,-25v30,1,49,-17,51,-47v-6,-23,-38,-11,-53,-1",w:172},"\u0418":{d:"24,-1v-26,5,-4,-14,-7,-28r-2,-202v2,-3,-12,-16,-2,-17v14,1,35,-3,45,2v-17,17,-7,71,-8,103v20,-31,45,-58,62,-92v2,-5,-11,-12,-1,-13v16,2,39,-3,51,2v-4,7,-6,17,-5,29r0,184v-5,14,14,28,5,33v-15,-1,-34,2,-47,-1v3,-8,10,-15,9,-28r-2,-163r-73,105v1,29,-4,65,8,84v-5,7,-20,0,-33,2",w:174},"\u0419":{d:"24,-1v-26,5,-4,-14,-7,-28r-2,-202v2,-3,-12,-16,-2,-17v14,1,35,-3,45,2v-17,17,-7,71,-8,103v20,-31,45,-58,62,-92v2,-5,-11,-12,-1,-13v16,2,39,-3,51,2v-4,7,-6,17,-5,29r0,184v-5,14,14,28,5,33v-15,-1,-34,2,-47,-1v3,-8,10,-15,9,-28r-2,-163r-73,105v1,29,-4,65,8,84v-5,7,-20,0,-33,2xm108,-296v14,-1,5,7,1,13v-7,11,-20,49,-29,23v-4,-12,-18,-22,-20,-34v8,-4,32,1,48,-2",w:174},"\u041a":{d:"18,-212v4,-15,-10,-31,-4,-37v14,1,31,-1,44,2v-13,27,-8,78,-7,115r59,-108v-5,-7,1,-11,10,-8v10,4,28,-4,37,2v-25,20,-44,60,-57,92v22,50,34,109,61,153v-10,3,-36,3,-51,0v11,-42,-24,-82,-34,-120v-9,14,-23,29,-26,47v-5,25,6,61,5,74v-15,0,-32,2,-45,0v1,-10,9,-16,8,-28r0,-184"},"\u041b":{d:"28,2v5,-32,-27,-63,-12,-109v22,-79,78,-121,159,-141v4,7,-7,21,-6,38v4,69,-6,148,3,210v-5,9,-30,0,-46,4v-7,-9,11,-15,7,-31r0,-158v-6,-8,-20,2,-25,6v-55,23,-83,130,-30,180v-9,4,-38,2,-50,1",w:181},"\u041c":{d:"197,-248v11,5,-5,12,-3,20r16,210v-1,8,11,14,4,18v-15,-1,-36,4,-47,-1v16,-47,2,-131,-3,-186v-20,40,-32,98,-52,139v-20,-36,-32,-100,-52,-137v-8,49,-8,108,-13,162v-1,11,10,19,4,24v-16,-1,-35,1,-49,-2v28,-58,15,-151,27,-231v-4,-9,-10,-20,10,-15v15,2,40,-11,38,12r35,102v15,-37,25,-80,42,-115r43,0",w:219},"\u041d":{d:"119,-150v0,-41,-46,0,-69,-18r1,149v4,9,11,25,-7,19v-13,-1,-43,7,-29,-11v4,-69,10,-171,-3,-236v10,-3,31,-1,46,0v-13,19,-10,71,24,48v10,-7,29,-6,37,2v6,-22,-12,-41,-6,-51v15,1,33,-2,46,1v-15,62,-5,155,-6,228v4,9,9,25,-8,19v-11,-1,-29,5,-35,-2v18,-33,9,-99,9,-148",w:169},"\u041e":{d:"110,-248v71,1,100,53,102,123v0,74,-28,124,-102,125v-70,-3,-97,-55,-100,-125v1,-71,29,-122,100,-123xm110,-32v50,-2,67,-43,70,-93v-3,-50,-19,-90,-70,-92v-93,0,-91,186,0,185",w:222},"\u041f":{d:"125,0v-28,5,-6,-13,-6,-32r0,-184r-69,-1r1,198v4,9,11,25,-7,19v-13,-1,-43,7,-29,-11v4,-69,10,-171,-3,-236v39,-3,105,-1,147,0v-15,62,-5,155,-6,228v4,9,9,25,-8,19r-20,0",w:169},"\u0420":{d:"11,-249v43,2,93,-3,130,5v28,36,-19,74,-33,104v-16,25,-28,54,-45,77v-16,-67,33,-98,50,-147v-7,-14,-44,-6,-62,-5r0,201v2,4,11,12,4,15v-11,-5,-54,10,-38,-13v-3,-77,9,-179,-6,-237",w:155},"\u0421":{d:"142,-200v-51,-29,-98,15,-98,75v0,64,46,97,106,88v0,13,4,27,0,38v-87,0,-140,-37,-140,-124v0,-83,42,-127,127,-124v12,4,5,44,5,47",w:159},"\u0422":{d:"160,-252v5,27,-25,43,-60,36r0,200v-2,7,15,17,-3,16v-13,-4,-35,6,-41,-5v5,-8,9,-15,9,-28r0,-179v-9,-13,-44,2,-57,2r0,-37v50,-3,111,7,152,-5",w:169},"\u0423":{d:"107,-92v11,-45,7,-116,1,-156v14,1,35,-3,45,2v-14,24,-6,77,-8,116v-3,79,-40,126,-115,134v-11,-1,-1,-28,-4,-43v30,16,60,-9,71,-29v-62,-22,-118,-96,-76,-170v-5,-8,1,-13,12,-9v10,1,24,-3,31,1v-27,21,-38,78,-11,110v11,15,29,30,54,44",w:160},"\u0424":{d:"104,0v-8,-5,5,-13,3,-24r0,-152v0,-6,-1,-7,-6,-7v-21,3,-69,-11,-53,17r48,72v-1,18,3,41,-2,55v-7,-7,-13,-24,-18,-32r-64,-96v-14,-24,-3,-52,29,-48r66,0v0,0,-17,-42,16,-34v7,2,20,-4,24,1v-3,5,-10,20,-8,33v46,1,131,-9,95,47r-82,128v-19,-63,32,-93,50,-137v-5,-15,-39,-4,-57,-7v-5,0,-6,2,-6,7r0,154v-3,10,13,16,4,22v-13,1,-28,-1,-39,1",w:249},"\u0425":{d:"76,-172v7,-20,27,-54,15,-76v17,1,43,-3,55,2v-26,26,-35,76,-52,113r51,124v2,3,13,8,6,10v-18,-1,-41,3,-55,-2v14,-27,-11,-67,-20,-92v-5,27,-31,63,-21,92v-10,3,-39,2,-53,0v29,-36,37,-87,58,-132v-17,-38,-28,-83,-52,-114v12,-1,41,-2,55,1v-13,20,9,53,13,74",w:155},"\u0426":{d:"46,-248v10,4,-7,18,-3,32r0,185r70,0r-4,-218v14,1,34,-3,44,2v-16,57,-3,146,-7,216r24,0r0,53v-10,-16,-20,-23,-30,-21r-136,-1v5,-8,6,-16,6,-29r-4,-219v10,-2,25,1,40,0",w:181},"\u0427":{d:"62,-249v-22,19,-40,84,-4,108v15,10,35,15,59,9r-5,-117v14,1,35,-3,45,2v-2,5,-9,17,-8,28r0,190v-2,14,12,23,4,29v-15,-2,-35,2,-44,-3v14,-21,6,-66,8,-100v-64,7,-112,-19,-113,-83v-1,-27,15,-45,16,-64v14,1,30,-2,42,1",w:168},"\u0428":{d:"213,-248v25,-6,3,14,7,28r0,204v2,6,4,12,7,16r-221,0v6,-7,8,-15,8,-29r-1,-211v0,-3,-6,-9,0,-9v14,0,33,-3,42,2v-2,5,-7,16,-6,27r0,188r53,0v-3,-60,3,-129,-5,-183v8,-4,31,-1,46,0v-16,44,-3,124,-7,182r50,0r-2,-207v0,-3,-6,-9,0,-9",w:258},"\u0429":{d:"240,17v-11,-8,-14,-19,-34,-18r-197,0v6,-7,5,-13,6,-27r-5,-222v8,-3,35,-3,46,0v-2,6,-8,16,-7,28r0,192r53,0r-3,-189v14,1,34,-3,44,2v-14,48,-2,127,-5,187r51,0r-8,-220v8,-3,35,-3,46,0v-3,9,-7,15,-7,28r1,190v6,1,17,-2,20,2",w:249},"\u042a":{d:"76,-250v25,-1,11,9,10,22r1,194v12,5,36,1,52,2v20,-2,1,-27,-4,-35r-39,-64v1,-18,-3,-41,2,-55r84,141v11,25,0,48,-30,44v-35,-2,-77,5,-108,-1v6,-6,10,-20,9,-31r1,-185v-19,-2,-42,5,-49,7v2,-12,-3,-32,4,-39r67,0",w:191},"\u042b":{d:"51,-33v19,2,73,13,58,-15v-15,-28,-34,-54,-48,-82v1,-18,-3,-41,2,-55r82,138v14,22,4,51,-29,47v-34,-4,-76,4,-107,-1v20,-60,5,-157,8,-235v-4,-5,-7,-17,5,-12v16,0,48,-5,29,14r0,201xm216,-248v-14,1,-34,-3,-44,2v10,65,7,164,2,235v-5,6,-5,16,7,11v11,-1,30,5,36,-2v-2,-6,-8,-12,-7,-26v3,-71,-7,-167,6,-220",w:225},"\u042c":{d:"51,-33v19,2,73,13,58,-15v-15,-28,-34,-54,-48,-82v1,-18,-3,-41,2,-55r82,138v14,22,4,51,-29,47v-34,-4,-76,4,-107,-1v20,-60,5,-157,8,-235v-4,-5,-7,-17,5,-12v16,0,48,-5,29,14r0,201",w:155},"\u042d":{d:"158,-169v-11,93,-65,150,-149,170v-2,-8,-9,-44,9,-38v54,-17,94,-59,105,-119r-77,0v-10,-2,-3,-18,-5,-29v24,-3,55,0,81,-1v-4,-38,-66,-34,-85,-17v1,-14,-1,-31,1,-43v59,-12,125,13,120,77",w:161},"\u042e":{d:"107,-170v-20,-5,-36,18,-57,2r1,149v4,9,11,25,-7,19v-13,-1,-43,7,-29,-11v4,-69,10,-171,-3,-236v10,-3,31,-1,46,0v-13,19,-10,71,24,48v10,-6,27,-6,36,1v16,-25,40,-46,83,-45v70,2,100,54,102,123v-1,72,-29,124,-102,125v-87,-1,-114,-91,-94,-175xm201,-27v92,0,93,-185,0,-185v-50,1,-67,44,-69,92v2,50,19,91,69,93",w:312},"\u042f":{d:"93,-121v-11,37,-44,79,-34,120v-10,3,-39,3,-54,0v29,-38,40,-99,59,-149v-11,-28,-38,-45,-47,-76v9,-42,86,-13,140,-23v-11,58,-5,157,-5,229r8,20v-11,1,-37,2,-49,-2v20,-35,4,-99,-18,-119xm118,-215v-21,-4,-71,-8,-47,18v16,21,29,44,47,63v2,-24,1,-56,0,-81",w:168},"\u0430":{d:"138,-143v0,48,-2,107,5,143v-12,-1,-30,1,-39,-1v0,-2,2,-6,0,-7v-34,18,-101,12,-94,-41v1,-50,56,-52,88,-71v9,-5,10,-24,-2,-23v-22,0,-54,-2,-63,5v2,-12,-4,-30,4,-36v40,4,102,-14,101,31xm44,-48v0,34,62,23,62,1v0,-14,2,-32,-1,-44v-21,10,-59,14,-61,43",w:155},"\u0431":{d:"85,-29v56,-1,53,-115,0,-116v-55,2,-58,116,0,116xm85,3v-115,-6,-73,-212,-3,-234v17,-6,49,-40,55,-6v-7,41,-65,31,-81,66v57,-19,105,24,101,84v-1,52,-20,89,-72,90",w:169},"\u0432":{d:"14,-172v43,-5,108,-10,104,37v-1,13,-12,30,-20,39v26,9,42,23,41,57v3,52,-73,36,-125,39v-1,0,-2,-2,-2,-4v15,-39,10,-121,2,-168xm58,-22v22,0,51,3,51,-18v-3,-30,-34,-37,-60,-43r0,53v0,5,3,9,9,8xm73,-104v13,-8,32,-47,-1,-47r-23,0r0,38",w:151},"\u0433":{d:"97,-131v-5,-3,0,-13,-10,-12v-10,-3,-20,-1,-35,-1v3,46,-8,109,7,141v-8,8,-30,1,-45,3v-6,-7,7,-15,6,-26r0,-127v2,-9,-12,-16,-5,-21v44,3,114,-15,114,31v-8,5,-20,10,-32,12",w:130},"\u0434":{d:"11,-78v-3,-72,68,-105,133,-93r-1,149v0,62,-31,97,-93,96v-8,0,-7,-30,-2,-37v28,15,62,-7,63,-37v-65,10,-101,-19,-100,-78xm82,-32v15,1,30,1,28,-14r0,-96v-36,7,-64,21,-64,64v1,24,11,44,36,46",w:161},"\u0435":{d:"87,-176v42,2,68,28,65,75r-104,43v4,37,70,38,70,-3v7,-2,33,14,29,24v-13,25,-29,39,-63,40v-51,-2,-73,-39,-74,-90v2,-50,26,-86,77,-89xm117,-118v-2,-33,-52,-38,-65,-9v-6,10,-10,25,-10,39"},"\u0436":{d:"66,-119v-16,-16,-34,-40,-53,-52v7,-5,42,-6,52,0r-4,4v10,14,31,37,45,46v-1,-19,-1,-38,-8,-51v9,-4,33,-2,47,0v-6,11,-10,34,-6,52v14,-15,33,-29,44,-47v-3,0,-6,-5,-2,-7v16,3,38,-4,49,3v-14,11,-39,38,-52,53v21,38,37,81,61,116v-5,7,-30,-3,-45,3v-2,-30,-29,-72,-42,-99r-14,15v2,27,-3,60,7,80v-6,7,-30,-1,-45,3v-5,-6,8,-19,5,-32r1,-52r-15,-14v-12,32,-38,68,-41,98v-12,-5,-48,5,-43,-5",w:244},"\u0437":{d:"143,-50v0,65,-106,63,-137,29v7,-5,14,-36,24,-19v18,17,79,25,79,-11v0,-26,-20,-43,-52,-40r0,-18v28,6,47,-30,21,-38v-13,1,-21,4,-31,9v-7,-6,-12,-15,-17,-22v21,-23,99,-23,96,21v0,15,-9,27,-17,35v17,12,33,27,34,54",w:149},"\u0438":{d:"147,-144v3,46,-7,109,7,141v-6,7,-29,-2,-45,3v6,-21,7,-73,6,-111r-63,87v-2,11,12,20,3,24v-14,0,-28,-1,-41,0v-5,-8,9,-17,5,-33v1,-46,-7,-99,-2,-141v13,1,32,-3,42,2v-12,21,-6,69,-7,103r62,-85v0,-8,-5,-15,-4,-20v14,1,34,-3,45,2v-2,5,-10,17,-8,28"},"\u0439":{d:"147,-144v3,46,-7,109,7,141v-6,7,-29,-2,-45,3v6,-21,7,-73,6,-111r-63,87v-2,11,12,20,3,24v-14,0,-28,-1,-41,0v-5,-8,9,-17,5,-33v1,-46,-7,-99,-2,-141v13,1,32,-3,42,2v-12,21,-6,69,-7,103r62,-85v0,-8,-5,-15,-4,-20v14,1,34,-3,45,2v-2,5,-10,17,-8,28xm103,-240v14,-1,5,8,2,14v-7,11,-12,24,-21,34v-11,-14,-20,-30,-29,-46v9,-4,34,1,48,-2"},"\u043a":{d:"52,-83v1,28,-3,61,7,80v-6,7,-30,-1,-45,3v-1,0,-2,-2,-2,-4v17,-34,5,-100,7,-152v0,-8,-10,-13,-5,-18v15,3,33,-2,45,2v-5,12,-10,34,-6,52v14,-15,33,-29,44,-47v-3,-1,-6,-5,-2,-7v16,3,39,-4,50,3v-15,10,-40,38,-53,53v20,38,38,82,62,116v-7,7,-31,-3,-46,3v-1,-30,-30,-73,-41,-99",w:155},"\u043c":{d:"157,-163v11,56,12,122,35,160v-6,6,-31,3,-42,2v-7,-4,8,-6,3,-12r-17,-107v-9,30,-23,56,-32,84v-29,6,-27,-61,-45,-84r-17,108v0,6,12,10,1,13v-12,-3,-24,-1,-38,-1v-3,0,-2,-3,-2,-5v25,-34,21,-105,34,-157v-5,-8,-1,-14,11,-11v13,1,37,-7,28,12v4,22,10,48,21,66v8,-26,23,-54,22,-78v10,-2,28,0,40,0v3,3,-1,7,-2,10",w:194},"\u043d":{d:"147,-144v3,46,-7,109,7,141v-6,7,-29,-2,-45,3v5,-20,8,-70,6,-106r-63,0v2,34,-6,83,7,103v-7,7,-29,-1,-45,3v-5,-8,9,-17,5,-33v1,-46,-7,-99,-2,-141v13,1,32,-3,42,2v-3,8,-9,21,-7,36r63,0v0,-13,-4,-29,-5,-38v14,1,34,-3,45,2v-2,5,-10,17,-8,28"},"\u043e":{d:"85,-176v49,3,71,39,72,89v-1,52,-20,89,-72,90v-50,-2,-70,-40,-72,-90v0,-50,22,-89,72,-89xm85,-29v56,-1,53,-115,0,-116v-55,2,-58,116,0,116",w:169},"\u043f":{d:"146,-153v3,50,-7,113,6,152v-7,3,-34,2,-45,0v18,-33,4,-99,8,-146r-65,0r3,139v2,3,8,9,0,9v-13,0,-31,3,-41,-2v16,-40,9,-131,3,-175v45,2,97,-4,138,2v-3,5,-7,11,-7,21"},"\u0440":{d:"12,-172v71,-11,146,0,139,76v-5,58,-35,99,-101,96v1,21,-1,45,8,58v-15,5,-29,27,-45,24v15,-67,3,-163,7,-242v0,-5,-8,-9,-8,-12xm66,-30v55,1,78,-110,10,-111r-26,0r0,97v0,11,6,14,16,14",w:161},"\u0441":{d:"113,-29v17,-6,24,2,21,21v1,5,-2,12,-6,11v-65,-2,-114,-24,-115,-90v2,-60,39,-86,101,-89v18,-1,15,21,13,37v-9,6,-15,-8,-31,-4v-34,0,-48,23,-50,55v2,39,27,58,67,59",w:141},"\u0442":{d:"144,-175v3,24,-31,28,-55,29r0,134v6,7,7,13,-9,11v-9,-1,-29,3,-29,-3v18,-32,4,-95,8,-141v-8,-13,-48,9,-52,-3v3,-6,0,-16,1,-24",w:151},"\u0443":{d:"112,-53v-3,-40,7,-92,-7,-119v8,-7,32,-2,45,-2v7,6,-9,16,-6,26r0,126v2,63,-36,102,-97,94v1,-11,-5,-29,2,-35v32,17,74,-15,62,-58v-19,36,-93,24,-93,-21v-2,-43,6,-97,-6,-129v7,-8,29,0,45,-3v5,7,-9,18,-6,30r0,94v3,31,59,25,61,-3"},"\u0444":{d:"156,-28v55,0,77,-111,10,-112r-26,0r0,98v0,10,7,14,16,14xm191,-269v2,9,5,26,1,36v-35,-5,-53,23,-52,61v64,-5,102,16,101,78v-4,57,-38,101,-101,95v0,44,-26,59,-57,74v-1,-10,-14,-36,0,-39v15,-5,21,-21,24,-38v-61,9,-96,-39,-99,-94v-2,-61,38,-79,100,-76v0,-55,23,-92,77,-93xm108,-142v-42,-4,-68,10,-68,48v3,33,21,60,53,63v10,0,15,-3,15,-13r0,-98",w:250},"\u0445":{d:"155,-2v-17,3,-54,8,-51,-13v-6,-18,-15,-33,-25,-48v-10,19,-23,36,-28,60v-6,4,-37,5,-47,0v26,-24,39,-60,58,-91v-16,-29,-28,-54,-50,-78v8,-2,42,-6,47,4v3,17,12,32,21,43v7,-13,18,-28,20,-46v8,-6,34,-2,47,-1v-21,22,-36,51,-51,78v19,31,33,67,59,92",w:158},"\u0446":{d:"160,17v-20,-36,-108,-5,-148,-21v12,-39,1,-87,6,-144v1,-10,-14,-24,0,-27v13,5,33,-4,41,4v-17,32,-4,95,-8,141r58,0v-3,-47,7,-107,-6,-142v5,-5,38,-4,47,1v-17,31,-4,94,-7,139v6,1,16,-2,18,2v-1,15,2,34,-1,47",w:167},"\u0447":{d:"18,-98v0,-26,2,-56,-6,-73v7,-8,29,0,45,-3v5,8,-9,17,-6,30v-1,30,-5,62,29,59v15,-2,30,-9,32,-24v0,-23,2,-50,-7,-63v6,-6,30,0,45,-2v7,6,-9,16,-6,26r0,126v-2,11,11,15,5,21r-40,1v-3,-9,8,-49,2,-70v-25,29,-94,14,-93,-28"},"\u0448":{d:"125,-173v32,-8,15,10,15,29r0,114r57,0v-3,-47,8,-109,-8,-141v8,-8,27,2,44,-3v2,0,3,1,3,3v-12,41,-8,128,0,171r-12,0v-3,-1,-2,-1,3,0r-215,0v16,-31,2,-92,7,-148v2,-10,-14,-24,0,-27v13,5,32,-4,40,4v-17,32,-4,95,-8,141r58,-1v-3,-46,5,-105,-7,-140v1,-8,15,-1,23,-2",w:257},"\u0449":{d:"125,-173v32,-8,15,10,15,29r0,114r57,0v-3,-47,8,-109,-7,-142v6,-6,30,0,45,-2v5,6,-6,16,-6,26r2,116v6,1,15,-2,17,2v-1,15,2,34,-1,47v-10,-7,-12,-21,-33,-18r-201,2v12,-36,2,-95,7,-149v1,-10,-14,-24,0,-27v13,5,31,-4,39,4v-17,32,-4,95,-8,141r58,0v-3,-47,5,-105,-7,-141v1,-8,15,-1,23,-2",w:257},"\u044a":{d:"96,-22v42,10,56,-36,26,-54v-10,-7,-23,-9,-35,-15r0,61v0,5,3,9,9,8xm63,-1v-26,4,0,-15,-5,-31r0,-110r-42,0r1,-32v28,4,51,2,77,0v0,11,-10,36,-4,56v34,14,80,22,80,69v0,52,-52,51,-107,48",w:177},"\u044b":{d:"58,-22v42,10,56,-36,26,-54v-10,-7,-23,-9,-35,-15r0,61v0,5,3,9,9,8xm46,-173v26,-5,1,15,6,30v0,8,-3,19,-1,25v35,14,80,22,81,69v1,57,-62,48,-118,49v-1,0,-2,-2,-2,-4v19,-38,2,-129,5,-170xm139,-3v18,-42,7,-129,3,-171v14,1,34,-3,45,2v-16,31,-3,97,-8,143v-1,14,12,23,4,29v-15,-2,-35,3,-44,-3",w:200},"\u044c":{d:"58,-22v42,10,56,-36,26,-54v-10,-7,-23,-9,-35,-15r0,61v0,5,3,9,9,8xm46,-173v26,-5,1,15,6,30v0,8,-3,19,-1,25v35,14,80,22,81,69v1,57,-62,48,-118,49v-1,0,-2,-2,-2,-4v19,-38,2,-129,5,-170",w:137},"\u044d":{d:"20,3v-15,-8,-8,-45,14,-32v43,-1,70,-24,67,-67r-57,0v-9,0,-9,-28,-1,-31r46,0v-9,-16,-47,-23,-65,-9v-8,-7,-11,-41,9,-40v62,3,100,28,102,89v-2,64,-50,89,-115,90",w:141},"\u044e":{d:"160,4v-56,-1,-77,-53,-70,-110r-38,0v2,34,-6,83,7,103v-7,7,-29,-1,-45,3v-5,-8,9,-17,5,-33v1,-46,-7,-99,-2,-141v13,1,32,-3,42,2v-3,8,-9,21,-7,36r47,0v10,-23,29,-39,61,-39v51,2,70,41,73,90v-2,52,-20,89,-73,89xm160,-27v55,-1,56,-116,0,-116v-56,1,-55,115,0,116",w:245},"\u044f":{d:"103,0v-27,2,0,-14,-5,-30v-1,-10,3,-23,0,-31v-8,-2,-14,-5,-21,-8v-12,21,-26,49,-26,70v-14,-4,-33,3,-45,-2v16,-22,30,-55,42,-82v-18,-9,-31,-22,-30,-47v-1,-55,67,-41,117,-44v8,6,-10,19,-5,33r5,141v-11,0,-21,-2,-32,0xm101,-138v-13,-22,-75,-5,-51,22v10,15,31,22,50,29",w:145},"\u043b":{d:"23,-10v-41,-84,30,-165,114,-169v-13,41,-3,108,-6,164v8,15,-7,15,-25,14v-21,5,-5,-9,-6,-22r0,-112v0,-1,-1,-2,-3,-2v-49,10,-79,97,-34,134v-7,4,-30,1,-42,1",w:147},"\u0401":{d:"153,-185v7,2,7,28,-1,31r-101,0v-3,33,0,74,-1,109v0,10,3,13,13,13v33,0,70,2,90,-10v1,8,1,32,-2,42v-46,-2,-101,4,-143,-2v7,-10,12,-25,10,-44r0,-176v-4,-14,-11,-33,16,-25v34,1,74,-4,104,1r1,39v-17,-15,-58,-10,-88,-9v-1,7,-4,27,2,31r100,0xm114,-311v11,0,21,9,21,20v0,11,-10,19,-21,19v-10,0,-18,-11,-17,-21v-1,-10,7,-18,17,-18xm43,-311v11,0,21,9,21,20v0,10,-10,19,-20,19v-12,0,-18,-11,-18,-21v-1,-10,7,-18,17,-18",w:160},"\u0451":{d:"116,-242v11,-1,21,10,21,20v1,10,-10,19,-20,19v-12,0,-18,-10,-18,-21v0,-9,6,-18,17,-18xm45,-242v11,-1,21,10,21,20v1,10,-10,19,-20,19v-12,0,-18,-10,-18,-21v0,-9,7,-18,17,-18xm87,-176v42,2,68,28,65,75r-104,43v4,37,70,38,70,-3v7,-2,33,14,29,24v-13,25,-29,39,-63,40v-51,-2,-73,-39,-74,-90v2,-50,26,-86,77,-89xm117,-118v-2,-33,-52,-38,-65,-9v-6,10,-10,25,-10,39"},A:{d:"127,1v5,-15,13,-69,-9,-77r-52,0v-17,8,-20,60,-6,75v-13,3,-45,2,-61,0v36,-64,43,-167,61,-247v22,2,43,2,65,0v5,-1,4,6,4,11v7,84,32,174,56,238v-19,-2,-39,-2,-58,0xm84,-210r-16,98v6,11,31,2,47,5v2,-32,-11,-70,-13,-103v-2,-4,-15,-3,-18,0",w:184},B:{d:"107,-248v47,-1,54,76,14,85v27,11,42,40,43,76v5,81,-73,98,-154,86v1,-9,9,-15,8,-27r0,-191v2,-12,-20,-33,6,-29v27,4,54,0,83,0xm50,-180v21,7,70,9,67,-18v0,-27,-37,-17,-62,-19v-11,4,-2,25,-5,37xm63,-32v44,4,65,-19,66,-58v-2,-41,-26,-64,-76,-57v-8,26,0,68,-3,99v0,8,4,16,13,16",w:175},C:{d:"142,-200v-51,-29,-98,15,-98,75v0,64,46,97,106,88v0,13,4,27,0,38v-87,0,-140,-37,-140,-124v0,-83,42,-127,127,-124v12,4,5,44,5,47",w:159}}}); \ No newline at end of file diff --git a/lib/fonts/OdessaScript_500.font.js b/lib/fonts/OdessaScript_500.font.js deleted file mode 100644 index d3e4d336..00000000 --- a/lib/fonts/OdessaScript_500.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:124,face:{"font-family":"OdessaScript_500","font-weight":500,"font-stretch":"normal","units-per-em":"360","panose-1":"0 0 0 0 0 0 0 0 0 0",ascent:"288",descent:"-72","cap-height":"2",bbox:"-107 -271 443 110","underline-thickness":"9.72","underline-position":"-53.64","unicode-range":"U+0020-U+044F"},glyphs:{" ":{w:72},"!":{d:"49,-53v7,-31,25,-62,33,-94v4,-14,24,-13,24,2v-13,26,-39,65,-57,92xm29,-25v7,0,11,4,11,12v0,7,-5,14,-14,14v-6,0,-11,-5,-11,-11v0,-7,4,-16,14,-15",w:111},'"':{d:"53,-144v5,-13,14,-64,31,-44v-8,18,-21,25,-31,44xm117,-188v-9,15,-20,29,-33,43v7,-13,12,-28,18,-43v2,-10,14,-8,15,0",w:91},"#":{d:"32,-77v-8,0,-33,1,-19,-5r22,0r15,-28v-8,1,-37,0,-20,-5r22,0v7,-10,9,-25,19,-32v4,10,-10,22,-13,32r30,0r16,-32v5,0,4,3,3,6r-13,26v8,0,34,-1,20,5r-23,0r-14,28v8,0,37,-1,20,5r-23,0v-7,9,-9,34,-21,31r15,-31r-29,0v-7,9,-10,29,-20,31v1,-13,9,-20,13,-31xm41,-82r30,0r14,-28r-29,0",w:119},"$":{d:"89,-103v20,18,32,30,34,57v1,35,-43,58,-79,47v-6,8,-8,31,-17,29v2,-12,8,-20,12,-30v-17,-4,-30,-17,-31,-36v-2,-21,30,-24,30,-4v0,12,-9,17,-22,16v4,9,12,16,25,20r33,-77v-9,-10,-22,-22,-21,-40v0,-27,26,-43,56,-42v3,-6,11,-28,14,-20r-9,21v16,1,35,10,35,26v0,8,-6,15,-15,15v-8,0,-14,-6,-14,-14v0,-8,7,-15,14,-15v-5,-5,-11,-7,-21,-8xm46,-2v51,12,70,-47,32,-75xm108,-159v-38,-4,-45,34,-23,53",w:150},"%":{d:"22,-4v0,3,-3,5,-5,2v29,-55,69,-101,106,-149v-20,58,-72,97,-101,147xm117,-75v10,0,15,7,15,18v1,20,-23,59,-44,56v-42,-17,-5,-75,29,-74xm65,-153v10,-1,15,7,15,18v1,19,-23,58,-44,56v-11,-1,-19,-14,-19,-27v0,-28,26,-45,48,-47xm117,-73v-14,-4,-38,44,-36,59v0,7,3,11,8,11v20,-1,38,-31,37,-56v0,-7,-2,-14,-9,-14xm65,-151v-15,-3,-38,44,-37,59v0,7,3,11,9,11v20,0,36,-33,36,-56v0,-8,-2,-13,-8,-14",w:144},"&":{d:"89,-108v-19,-24,-21,-75,19,-74v19,0,36,16,35,34v-2,26,-20,34,-45,44v9,16,26,47,30,63v8,-27,14,-61,46,-63v21,-1,33,26,10,29v-15,2,-12,-14,-14,-23v-23,0,-33,42,-38,66v7,16,14,41,14,63v0,43,-33,68,-79,68v-32,0,-56,-10,-57,-36v-1,-24,26,-44,51,-38v-20,5,-46,15,-46,38v1,20,22,29,47,29v64,0,85,-57,65,-116v-15,41,-109,34,-105,-19v3,-36,30,-52,67,-65xm95,-109v21,-7,42,-17,42,-39v0,-15,-13,-29,-29,-28v-35,3,-31,40,-13,67xm92,-102v-27,9,-47,26,-49,57v-3,49,67,53,82,14v-6,-15,-24,-58,-33,-71",w:197},"'":{d:"53,-144v5,-13,14,-64,31,-44v-8,18,-21,25,-31,44",w:61},"(":{d:"117,-230v-60,38,-89,169,-49,252v-48,-37,-68,-129,-23,-192v21,-29,41,-55,72,-60",w:82},")":{d:"9,22v61,-38,89,-170,49,-253v49,36,67,131,23,193v-21,30,-41,56,-72,60",w:82},"*":{d:"87,-154v-3,-14,3,-42,13,-24v-1,10,-5,16,-10,24v7,-4,21,-22,28,-11v0,8,-19,12,-28,14v11,2,37,12,21,20v-5,0,-18,-11,-22,-18v3,14,-3,39,-13,22v0,-10,6,-16,10,-23v-7,5,-22,24,-29,10v0,-8,19,-10,28,-12v-9,-5,-33,-14,-18,-21v8,0,16,12,20,19",w:118},"+":{d:"48,-71v3,-12,13,-32,26,-31v-10,6,-14,18,-15,33v13,1,28,7,40,1v-6,10,-27,15,-42,12v-5,18,-12,28,-26,36v6,-8,12,-24,14,-38v-11,-4,-26,-4,-39,-5v8,-8,25,-8,42,-8",w:103},",":{d:"28,-26v31,20,-18,53,-36,64v9,-10,33,-21,28,-38v-7,-8,-6,-27,8,-26",w:45},"-":{d:"84,-67v-9,19,-55,5,-78,5v22,-17,52,0,78,-5",w:91},".":{d:"29,-25v8,0,12,5,12,12v1,14,-25,21,-26,3v0,-7,5,-16,14,-15",w:51},"/":{d:"7,19v-1,6,-4,7,-6,3v23,-89,76,-146,102,-231v1,-4,4,-7,5,-2v-23,84,-77,150,-101,230",w:74},"0":{d:"99,-148v17,0,27,16,27,35v0,42,-41,119,-82,115v-26,-3,-39,-39,-34,-70v6,-39,48,-78,89,-80xm98,-145v-29,-5,-68,91,-68,121v0,15,6,22,17,22v39,-2,70,-65,67,-114v-1,-16,-1,-27,-16,-29",w:128},"1":{d:"113,-150v-16,48,-49,99,-53,150r-54,0r96,-138v-30,17,-64,47,-93,57",w:100},"2":{d:"115,-32v-16,79,-94,-15,-114,37v-4,-49,95,-46,94,-113v3,-15,4,-33,-15,-33v-24,0,-49,28,-48,52v0,9,5,14,13,14v15,0,25,-20,28,-36v8,14,-14,41,-27,40v-11,0,-17,-6,-17,-18v-1,-25,24,-56,50,-56v40,0,49,46,29,73v-17,23,-69,29,-89,51v24,-13,53,-2,77,4v9,2,13,-10,19,-15",w:122},"3":{d:"39,-111v-2,-41,80,-48,81,-4v-1,24,-16,32,-37,37v12,2,22,17,22,32v0,45,-94,70,-100,20v-3,-19,28,-28,29,-6v2,13,-13,14,-22,16v27,40,72,-11,69,-47v7,-25,-30,2,-22,-17v27,6,36,-19,38,-41v0,-13,-4,-21,-15,-21v-20,-1,-39,13,-39,30v0,9,4,14,14,14v13,1,16,-18,19,-29v6,14,-5,33,-19,33v-11,0,-17,-7,-18,-17"},"4":{d:"88,-48v14,3,24,-7,32,-3v-5,6,-20,6,-32,7v-2,13,-7,31,-6,44r-31,0v2,-16,10,-30,15,-44v-19,-4,-41,-11,-57,0v-3,0,-5,-2,-5,-4v0,-8,8,-8,17,-8v26,-28,38,-45,52,-84r33,-6v-7,29,-50,66,-79,91v16,0,25,6,41,7v10,-21,29,-60,48,-66v-10,18,-21,42,-28,66",w:120},"5":{d:"48,-3v27,0,45,-35,45,-62v0,-32,-43,-20,-55,-12r28,-68v22,3,58,6,71,-1v-8,31,-43,35,-77,26r-15,36v31,-18,77,-1,75,35v-1,34,-31,50,-69,50v-24,0,-44,-11,-45,-31v-2,-18,30,-24,31,-3v1,13,-11,19,-22,13v2,9,19,17,33,17",w:131},"6":{d:"39,-77v23,-22,77,-9,73,29v-2,29,-27,52,-63,51v-27,0,-45,-26,-45,-55v0,-40,43,-96,85,-96v16,0,33,8,33,23v0,7,-4,11,-11,11v-8,0,-11,-4,-11,-11v0,-6,5,-11,11,-11v-35,-25,-64,21,-72,59xm50,-2v22,0,37,-36,37,-61v0,-31,-42,-18,-51,-4v-6,20,-13,65,14,65",w:125},"7":{d:"26,26v-13,12,-30,-6,-27,-26v7,-45,70,-100,97,-137v-17,20,-43,9,-62,0v-14,-2,-13,25,-22,21r18,-37v4,4,-2,9,-3,14v21,-15,46,-2,72,-4v3,-2,6,-12,9,-7v-25,53,-83,108,-82,176",w:91},"8":{d:"29,-108v0,-39,81,-57,81,-10v0,22,-13,28,-35,36v15,16,26,23,27,48v2,48,-99,52,-99,3v0,-26,18,-35,44,-43v-7,-8,-18,-20,-18,-34xm72,-86v17,-5,30,-14,30,-34v0,-14,-9,-23,-25,-23v-26,0,-41,24,-19,42xm49,-71v-45,4,-50,70,1,70v30,0,42,-17,26,-39v-5,-8,-14,-19,-27,-31",w:111},"9":{d:"95,-72v-17,26,-68,14,-68,-24v0,-28,26,-52,55,-52v29,0,47,20,47,50v0,48,-45,101,-90,100v-24,5,-46,-28,-20,-35v8,0,12,5,12,13v1,7,-6,11,-12,11v19,16,50,5,59,-19xm84,-145v-24,0,-52,76,-14,82v26,-2,32,-29,33,-56v0,-16,-4,-26,-19,-26",w:130},":":{d:"29,-25v8,0,12,5,12,12v1,14,-25,21,-26,3v0,-7,5,-16,14,-15xm39,-94v7,0,11,4,11,12v0,7,-5,15,-14,14v-7,0,-11,-4,-11,-12v0,-7,6,-15,14,-14",w:54},";":{d:"39,-94v7,0,11,4,11,12v0,7,-5,15,-14,14v-7,0,-11,-4,-11,-12v0,-7,6,-15,14,-14xm28,-26v31,20,-18,53,-36,64v9,-10,33,-21,28,-38v-7,-8,-6,-27,8,-26",w:51},"<":{d:"76,-116v5,18,-60,36,-32,62v3,11,24,22,17,31v-12,-8,-39,-34,-43,-47v10,-14,41,-35,58,-46",w:87},"=":{d:"94,-85v-12,23,-55,0,-76,7v12,-21,54,-1,76,-7xm91,-53v-14,21,-53,4,-78,5v20,-17,53,0,78,-5",w:99},">":{d:"26,-115v14,-4,41,36,47,45v-3,9,-44,37,-59,46v-4,-11,39,-35,40,-47v-4,-12,-20,-32,-28,-44",w:86},"?":{d:"58,-139v10,32,30,10,35,-11v4,15,-7,32,-22,32v-13,0,-20,-8,-20,-21v0,-22,20,-40,45,-40v25,0,47,14,47,38v0,56,-93,38,-93,81v0,27,28,-2,31,2v-4,18,-38,20,-36,-2v3,-42,74,-40,71,-90v0,-14,-5,-24,-21,-24v-21,0,-37,15,-37,35xm41,-25v7,0,11,4,11,12v0,7,-5,14,-14,14v-6,0,-11,-5,-11,-11v0,-8,5,-16,14,-15",w:144},"@":{d:"47,-75v0,-38,51,-73,76,-43v2,-9,9,-12,21,-10v-9,24,-21,44,-27,70v0,5,2,7,8,7v26,0,45,-25,45,-53v0,-32,-29,-54,-66,-54v-46,0,-80,32,-80,78v0,71,101,88,134,38v2,-2,5,-3,6,1v-30,56,-146,40,-146,-38v0,-48,37,-84,86,-84v46,0,79,29,70,77v-5,25,-37,53,-68,39v-5,-3,-4,-12,-3,-19v-13,27,-56,31,-56,-9xm105,-125v-25,1,-43,41,-43,63v0,17,17,15,26,6v12,-12,26,-37,33,-57v-2,-6,-8,-11,-16,-12",w:182},A:{w:233},B:{d:"267,-165v0,27,-14,42,-37,51v50,30,2,118,-49,118v-35,0,-31,-36,-16,-56v7,-11,16,-18,26,-19v-16,4,-33,30,-32,52v0,11,5,17,15,17v33,1,65,-74,46,-108v-7,4,-29,7,-30,-2v0,-5,5,-8,16,-8v37,13,41,-43,31,-72v-3,-7,-8,-12,-14,-16v-61,59,-47,216,-169,211v-41,8,-66,-49,-26,-57v32,5,15,39,-6,42v40,30,81,-15,96,-47v20,-42,52,-132,99,-153v-71,-27,-166,16,-167,84v1,20,10,31,31,31v38,0,52,-52,56,-87v11,49,-6,92,-57,92v-22,0,-35,-15,-35,-36v2,-74,104,-116,184,-88v4,-3,13,-4,18,-2v-8,0,-9,0,-14,3v18,7,34,26,34,50xm194,-112v2,5,20,3,23,-1v-6,-3,-20,-6,-23,1",w:255},C:{d:"67,-112v-24,-4,-52,-29,-52,-55v0,-47,53,-68,103,-56v-59,-5,-112,38,-78,90v6,9,17,14,28,18v26,-52,76,-104,142,-105v17,-1,29,10,29,26v-11,54,-71,83,-136,87v-8,17,-19,46,-18,69v0,21,8,35,29,35v35,0,72,-39,72,-72v0,-13,-6,-21,-19,-21v-26,-1,-38,33,-29,59v-27,-17,-8,-67,29,-63v15,2,23,11,23,25v1,36,-40,76,-76,76v-64,0,-73,-70,-47,-113xm105,-111v51,-3,121,-29,121,-86v0,-12,-5,-18,-16,-18v-44,0,-86,61,-105,104",w:195},D:{d:"114,-6v-20,8,-72,19,-79,-8v9,-25,50,-13,75,-4v48,-47,51,-154,112,-186v-16,-16,-38,-24,-67,-24v-45,0,-87,45,-86,90v0,24,10,41,35,41v46,0,63,-71,41,-99v35,30,4,103,-41,103v-32,0,-52,-19,-52,-49v0,-79,118,-116,176,-67v10,-5,17,-12,31,-13v-10,3,-17,11,-25,18v62,80,0,250,-120,198xm103,-12v-14,-6,-56,-23,-63,-2v6,18,52,13,63,2xm126,-12v100,45,165,-107,103,-186v-35,42,-33,166,-103,186",w:262},E:{d:"135,-140v20,-3,53,17,24,23v-17,0,-28,-6,-37,-16v-33,11,-54,45,-53,88v0,25,10,45,35,45v35,0,73,-36,72,-69v0,-16,-8,-24,-23,-24v-30,0,-26,42,-26,58v-22,-17,-15,-62,22,-62v21,0,31,9,31,28v0,34,-39,73,-75,73v-40,0,-69,-23,-69,-59v0,-47,36,-76,81,-84v-2,-6,-8,-7,-15,-5v-29,0,-58,-10,-58,-34v0,-33,38,-57,76,-52v-33,2,-63,15,-63,48v-1,24,27,36,55,34v-14,-40,25,-72,66,-70v15,0,26,5,26,19v0,30,-36,50,-70,52xm136,-135v1,10,22,20,30,10v-2,-6,-20,-14,-30,-10xm200,-198v0,-9,-6,-15,-17,-15v-29,0,-48,28,-49,63v30,-2,66,-23,66,-48",w:182},F:{d:"191,-201v-59,-38,-145,8,-144,70v0,16,8,27,25,27v31,0,50,-51,51,-83v20,38,-5,87,-51,87v-19,0,-31,-12,-30,-31v2,-65,78,-106,153,-86v27,7,66,9,79,-13v-7,34,-51,50,-83,29xm44,-36v0,13,-12,23,-24,22v55,37,94,-35,113,-86v-24,5,-38,10,-56,24v15,-15,34,-25,58,-29v22,-49,27,-69,68,-88v-19,16,-22,58,-31,85r13,-3v-1,-17,27,-44,33,-18v-1,11,-6,14,-16,18r1,24r-22,6v-1,-10,1,-18,3,-25r-13,2v-13,62,-46,107,-120,106v-38,8,-66,-47,-26,-56v9,0,19,8,19,18xm202,-116v8,0,18,-15,7,-19v-6,0,-8,10,-7,19",w:196},G:{d:"253,-202v-8,66,-64,106,-136,116v1,54,56,42,83,11v11,-9,21,-26,34,-40v6,9,-12,19,-17,39v-9,19,-17,45,-25,76v19,-4,34,-34,48,-48v-7,21,-28,45,-48,52v-16,60,-47,96,-115,99v-46,2,-48,-43,-13,-63v20,-11,48,-23,88,-32v5,-27,11,-48,28,-61v-34,21,-90,3,-92,-33v-60,1,-77,-82,-37,-118v12,-12,40,-29,62,-28v-51,11,-84,65,-60,120v6,13,18,19,34,21v-9,-76,64,-142,137,-140v17,0,31,10,29,29xm150,13v-52,15,-91,22,-99,63v-4,23,37,26,56,16v28,-15,35,-33,43,-79xm117,-91v68,-7,131,-48,131,-111v0,-15,-8,-24,-23,-24v-45,0,-111,90,-108,135",w:237},H:{d:"118,-216v22,-3,3,33,21,33v16,-1,54,-24,60,-36v1,-3,6,-5,7,-1v-18,32,-31,63,-43,100r41,-11v24,-44,52,-85,102,-91v40,5,24,48,-6,64v-15,8,-35,17,-60,23v-12,38,-39,72,-39,116v0,11,4,17,12,17v24,-1,38,-39,53,-47v-14,26,-28,47,-55,50v-63,-6,-33,-89,-10,-126v-14,3,-28,6,-40,11v-25,56,-46,112,-115,116v-24,2,-44,-11,-44,-34v0,-13,8,-21,21,-21v11,0,19,9,19,19v-1,12,-11,22,-27,20v55,40,92,-41,105,-90v-14,2,-41,21,-54,27v8,-15,38,-26,56,-32v7,-35,28,-56,45,-80v-11,8,-27,15,-46,15v-13,0,-16,-18,-9,-30v-16,-16,-41,33,-48,30v10,-19,31,-39,54,-42xm242,-140v41,-14,73,-21,76,-59v2,-28,-32,-19,-44,-2v-8,11,-19,31,-32,61",w:261},I:{d:"8,-31v0,-13,8,-23,21,-23v9,0,18,8,17,19v-1,13,-10,23,-24,22v45,35,87,-19,94,-64v-58,-20,-42,-89,10,-118v30,-17,60,-28,94,-28v-39,29,-49,82,-65,144v26,0,37,-27,34,-54v12,27,-6,60,-35,58v-11,48,-46,78,-101,79v-22,0,-45,-13,-45,-35xm206,-219v-60,12,-109,43,-113,102v-1,17,10,32,24,36v13,-57,45,-120,89,-138",w:169},J:{d:"-17,96v-40,0,-37,-55,-8,-74v19,-13,48,-24,81,-21v32,-80,48,-178,117,-219v-61,6,-120,48,-123,106v-1,21,11,26,26,33v-22,6,-42,-17,-41,-39v5,-72,72,-97,154,-105v-36,21,-49,53,-63,109v-10,39,-16,64,-19,72r-15,43v38,-4,36,41,8,49r-2,-1v19,-7,30,-47,-7,-44v-20,41,-50,91,-108,91xm55,4v-51,0,-87,15,-87,61v0,45,42,25,60,-3v7,-12,17,-31,27,-58",w:134},K:{d:"118,-216v22,-4,3,32,21,32v26,0,45,-22,60,-36v0,17,-20,34,-23,55v-28,67,-40,163,-126,169v-25,1,-48,-12,-48,-34v-1,-13,9,-23,21,-23v12,1,18,7,18,21v0,11,-11,21,-24,20v85,46,92,-102,135,-156r19,-23v-11,8,-64,31,-64,2v0,-7,6,-18,-4,-18v-15,0,-29,24,-39,36v8,-23,31,-42,54,-45xm169,-127v2,-14,25,-4,30,2v39,-27,44,-107,109,-97v-62,4,-46,92,-106,102v10,23,7,68,7,100v0,11,3,16,8,16v13,4,37,-39,50,-46v-10,20,-33,52,-56,52v-67,2,-27,-77,-21,-120v-14,0,-21,-3,-21,-9xm190,-121v1,-5,-14,-13,-17,-6v1,4,10,7,17,6",w:261},L:{d:"215,-228v15,0,25,12,25,27v0,52,-57,108,-101,119v-13,41,-16,52,-40,73v16,3,31,8,49,8v31,0,40,-23,58,-47v4,0,2,3,1,6v-18,42,-62,55,-113,36v-19,18,-89,24,-92,-4v5,-29,49,-11,70,-6v14,-15,22,-42,29,-65v-32,0,-64,-24,-63,-59v2,-54,60,-103,118,-95v-60,2,-133,74,-90,134v8,12,21,16,37,16v17,-68,48,-143,112,-143xm229,-205v0,-10,-2,-18,-12,-18v-54,5,-62,83,-77,136v43,-14,88,-67,89,-118xm7,-10v7,23,52,12,62,-2v-17,-3,-56,-20,-62,2",w:204},M:{d:"49,-32v-1,15,-12,23,-28,23v35,21,60,-2,87,-43v39,-59,72,-128,127,-169r-54,155v-11,36,-23,49,-13,62v38,-42,63,-141,105,-183v11,-11,23,-26,35,-34v-19,53,-50,130,-50,197v0,35,25,22,39,-1r16,-24r2,2v-15,26,-22,48,-47,49v-48,3,-37,-73,-25,-107v15,-40,29,-67,53,-101v-48,41,-81,133,-112,192v-14,26,-42,16,-40,-14v4,-64,45,-138,80,-180v-49,41,-93,134,-132,185v-14,19,-32,27,-50,27v-35,0,-54,-54,-14,-57v12,0,21,9,21,21",w:310},N:{d:"259,-169v11,-20,35,-38,49,-17v-3,17,-26,4,-32,3v-32,33,-50,98,-68,148r-1,23r-30,11v1,-79,-5,-161,32,-212v-42,49,-77,152,-123,201v-25,27,-83,19,-84,-18v-1,-12,10,-23,21,-23v12,0,20,7,19,21v0,12,-10,22,-26,20v69,42,99,-53,127,-98v22,-34,41,-98,76,-112v-7,41,-16,117,-11,175v11,-40,34,-90,51,-122",w:236},O:{d:"170,-217v-77,5,-129,111,-129,188v0,17,5,28,24,28v53,0,108,-111,105,-168v-1,-12,-4,-22,-15,-22v-45,0,-79,100,-76,156v-11,-57,29,-160,77,-160v16,0,22,12,22,30v4,62,-56,170,-112,168v-55,-2,-54,-84,-33,-127v25,-51,65,-92,136,-97v23,-2,40,21,28,40v2,-18,-4,-38,-27,-36",w:164},P:{d:"48,-34v-1,12,-10,23,-25,22v48,33,84,-29,102,-75v-9,1,-17,7,-28,10v8,-6,19,-11,30,-14v17,-44,33,-94,70,-115v-73,-23,-158,19,-161,85v0,18,10,31,27,31v31,1,61,-53,59,-88v12,46,-11,92,-57,92v-22,0,-34,-15,-34,-35v3,-69,94,-115,175,-90v9,-4,16,-5,27,-5v-7,2,-14,2,-20,7v38,16,45,66,6,91v-16,11,-35,19,-57,23v-19,56,-46,93,-112,98v-36,3,-60,-49,-21,-57v12,0,19,7,19,20xm163,-99v52,-3,73,-64,43,-102v-19,25,-33,66,-43,102",w:194},Q:{d:"92,-10v-20,12,-79,25,-86,-6v8,-34,78,-27,103,-12v42,-36,76,-80,76,-149v0,-20,-8,-35,-27,-36v-45,-2,-96,52,-95,95v0,16,9,27,26,27v30,-1,54,-50,50,-88v17,39,-3,93,-50,93v-20,0,-31,-13,-31,-33v0,-45,53,-99,100,-99v39,0,60,22,60,60v0,69,-45,96,-99,133v18,6,54,12,70,0v6,-2,14,-20,22,-22v-22,52,-70,62,-119,37xm86,-13v-16,-12,-65,-33,-76,-3v0,10,12,15,36,15v16,0,29,-6,40,-12",w:207},R:{d:"265,-46v-17,28,-29,49,-57,49v-67,0,-17,-75,-7,-106v-6,3,-26,4,-26,-4v0,-4,5,-6,15,-6v8,-1,11,2,16,4v26,-12,32,-81,3,-95v-54,64,-41,207,-159,207v-21,0,-41,-13,-41,-34v0,-13,8,-23,20,-23v11,0,19,9,19,19v-1,13,-10,24,-26,23v27,20,53,8,76,-23v32,-43,47,-148,102,-173v-74,-18,-156,23,-156,87v0,18,10,31,28,31v32,0,57,-55,58,-87v14,45,-10,91,-58,91v-21,0,-33,-15,-33,-35v3,-69,91,-113,171,-91v8,-4,13,-4,23,-4v-7,0,-13,2,-17,5v17,6,37,22,37,45v-1,34,-17,47,-45,59v19,22,-4,60,-4,83v0,14,4,21,13,21v17,0,34,-25,45,-45xm200,-107v-3,-9,-36,1,-12,3v3,0,7,-1,12,-3",w:261},S:{d:"41,-146v0,-53,48,-94,103,-87v-53,4,-86,34,-86,91v0,39,30,61,71,56v16,-68,27,-143,107,-143v52,0,33,62,1,93v-22,22,-46,38,-72,48v-19,58,-43,90,-111,92v-24,1,-48,-12,-48,-35v0,-10,8,-22,20,-22v13,0,20,7,20,21v0,11,-9,23,-22,22v49,28,90,-25,103,-70v-49,3,-86,-21,-86,-66xm166,-94v44,-19,86,-52,88,-105v2,-37,-42,-24,-53,-7v-15,8,-31,104,-35,112",w:210},T:{d:"183,-205v-58,-36,-137,16,-137,74v0,16,8,27,26,27v30,0,51,-51,51,-83v19,38,-4,87,-51,87v-19,0,-30,-13,-30,-30v2,-63,77,-107,152,-87v29,8,68,10,80,-13v-5,39,-58,46,-91,25xm19,-14v46,30,91,-12,106,-57v16,-49,30,-107,78,-122v-24,22,-25,77,-38,112v-18,50,-50,83,-114,83v-24,1,-47,-12,-46,-34v0,-12,8,-21,19,-21v12,0,18,6,18,19v0,11,-9,21,-23,20",w:180},U:{d:"156,-57v-10,14,-26,53,1,53v24,0,50,-41,61,-63r75,-148r31,-2r-89,175v-5,12,-8,21,-8,28v8,21,24,7,39,-12v6,-5,12,-22,19,-20v-17,26,-26,45,-53,48v-24,2,-30,-21,-24,-43v-14,21,-26,43,-52,43v-71,0,-22,-97,-2,-127v12,-18,29,-40,30,-66v0,-23,-14,-35,-36,-35v-44,0,-91,46,-90,91v0,18,8,31,28,31v32,0,52,-58,49,-92v21,37,0,97,-48,97v-20,0,-33,-15,-33,-36v0,-50,45,-95,94,-95v69,0,70,83,35,127",w:281},V:{d:"57,6v22,-53,12,-124,52,-166r23,-30v-9,6,-33,17,-46,18v-18,1,-16,-17,-13,-31v-16,-16,-36,26,-47,31v7,-23,31,-40,54,-44v18,-3,4,32,21,32v19,0,46,-18,53,-33v2,-3,10,-7,11,0v-44,49,-42,141,-82,191r-13,21v67,-47,88,-145,147,-198v15,-14,33,-19,53,-13v5,-1,4,5,3,8v-101,-17,-109,128,-171,180v-15,13,-29,25,-45,34",w:153},W:{d:"20,-143v-1,20,9,37,28,37v28,-1,39,-49,39,-82v20,30,3,86,-39,86v-21,0,-33,-17,-33,-41v0,-74,139,-114,139,-26v0,52,-36,105,-65,138v59,-52,94,-137,148,-193v-13,62,-49,132,-47,199v32,-69,58,-137,120,-177v4,1,0,3,-1,5v-62,47,-96,120,-124,201v-45,-55,-6,-137,23,-185v-52,68,-79,134,-154,184v29,-49,64,-107,68,-177v1,-25,-9,-38,-31,-39v-38,-1,-72,33,-71,70",w:238},X:{d:"250,-194v0,-10,6,-16,15,-16v-30,-3,-44,23,-58,44v-6,16,-46,99,-46,140v0,32,31,30,47,3v7,-6,12,-26,21,-23v-11,16,-31,49,-49,48v-38,-1,-22,-57,-12,-79v-15,36,-68,81,-113,80v-24,0,-45,-13,-45,-35v0,-13,9,-20,20,-20v27,0,23,39,-5,40v9,7,15,10,30,10v67,0,109,-98,109,-172v0,-22,-9,-39,-31,-39v-49,0,-89,40,-91,84v-2,41,51,52,68,14v9,-21,13,-47,13,-73v20,44,4,102,-44,102v-25,0,-42,-18,-42,-43v0,-49,46,-90,99,-90v42,0,63,37,54,83v13,-37,28,-73,72,-79v24,-3,28,36,4,36v-10,0,-16,-6,-16,-15",w:225},Y:{d:"167,-120v-25,31,-44,81,-88,86v-17,2,-28,-11,-28,-27v0,-53,64,-87,64,-134v0,-14,-12,-20,-29,-20v-44,-1,-80,30,-80,71v0,17,8,26,25,26v24,0,43,-39,41,-73v19,26,-1,77,-41,77v-20,0,-30,-10,-30,-30v0,-44,39,-75,85,-75v54,0,62,51,37,86v-15,21,-47,63,-50,85v7,17,24,5,38,-8v45,-39,72,-125,130,-149v-54,41,-61,143,-97,206v24,-5,38,-30,53,-49v-6,26,-30,47,-55,53v-25,46,-53,94,-116,97v-43,2,-36,-47,-8,-64v18,-11,46,-23,87,-32xm103,12v-48,10,-97,22,-97,63v0,31,42,22,56,5v9,-12,23,-34,41,-68",w:195},Z:{d:"231,-215v-2,22,-40,34,-70,34v-11,15,-20,37,-28,57v12,1,31,11,37,-2v1,17,-21,21,-41,16v-16,31,-23,40,-57,64v15,-5,42,-16,60,-16v15,0,25,6,26,19v1,11,-26,32,-8,40v19,0,36,-29,49,-46v-7,27,-27,49,-53,51v-37,3,-27,-37,-14,-54v-21,-14,-70,13,-80,32v-8,8,-27,23,-39,22v-16,-2,-13,-21,-1,-29v8,-7,27,-12,40,-15v13,-15,34,-50,41,-72v-16,-1,-39,-8,-44,6v1,-22,26,-22,48,-20v10,-24,14,-38,28,-53v-46,8,-38,-35,-79,-35v-19,-1,-36,14,-35,32v0,26,26,33,48,40v-28,4,-51,-15,-53,-40v-3,-44,81,-52,97,-19v6,13,28,24,35,6v17,-16,46,-29,75,-30v12,0,18,4,18,12xm166,-186v25,-2,57,-6,60,-29v-16,-21,-53,14,-60,29",w:196},"[":{d:"140,-238v-1,10,-18,5,-28,6r-124,251r30,0r-3,6r-43,0r130,-263r38,0",w:81},"\\":{d:"21,-203r86,239r-4,0r-87,-239r5,0",w:97},"]":{d:"-41,26v1,-11,17,-6,28,-7r124,-251r-30,0r3,-6r43,0r-130,264r-38,0",w:104},"^":{d:"56,-158v-10,12,-18,31,-30,38v7,-15,26,-50,32,-57v5,18,16,38,14,59v-8,-11,-10,-27,-16,-40",w:93},_:{d:"0,4r99,0r0,5r-99,0r0,-5",w:96},"`":{d:"16,-129v-8,-5,-6,-18,5,-18v13,4,18,21,26,31v-10,3,-21,-10,-31,-13",w:61},a:{d:"70,-99v11,0,16,5,19,13v1,-13,19,-10,31,-12v-14,32,-33,59,-44,94v5,7,12,1,20,-6v6,-5,17,-22,29,-36v-3,17,-29,48,-48,49v-19,1,-22,-14,-18,-29v-14,17,-18,28,-38,28v-16,0,-26,-11,-25,-29v0,-37,36,-74,74,-72xm73,-95v-28,0,-53,68,-57,84v3,16,17,9,27,-2v16,-17,34,-43,42,-70v0,-6,-5,-13,-12,-12"},b:{d:"85,-26v-9,24,-71,48,-71,0v0,-33,22,-51,33,-77r-47,62v11,-31,45,-58,60,-87r33,-66r27,-3v-28,61,-67,117,-88,184v1,18,20,11,31,4v8,-5,14,-12,19,-19v-15,-14,-20,-69,11,-66v34,3,6,51,-6,64v13,9,21,-13,29,-16v-4,13,-16,26,-31,20xm91,-77v-22,-1,-18,34,-7,45v7,-9,18,-23,18,-36v0,-6,-4,-9,-11,-9",w:113},c:{d:"71,-99v22,-3,33,25,11,27v-5,0,-10,-4,-10,-10v0,-7,4,-11,12,-11v-35,-4,-53,43,-61,77v0,23,27,15,40,6v11,-3,22,-28,36,-36v-15,28,-31,46,-63,48v-22,1,-38,-14,-37,-35v1,-40,35,-60,72,-66",w:95},d:{d:"71,-99v10,0,16,5,18,13r55,-109r27,-3r-91,179v-3,8,-7,14,-1,18v15,-1,36,-33,46,-46v1,1,2,0,2,2v-12,23,-30,45,-51,48v-17,2,-22,-11,-18,-27v-11,27,-61,40,-62,-4v-1,-36,37,-73,75,-71xm74,-95v-29,-2,-54,70,-59,85v5,16,19,6,30,-5v16,-17,31,-41,40,-68v0,-8,-4,-12,-11,-12"},e:{d:"-1,-35v0,-36,38,-65,75,-64v24,0,21,19,9,31v-12,13,-27,22,-51,23v-6,12,-13,44,8,44v26,0,38,-25,55,-45r1,4v-14,21,-32,45,-56,45v-23,0,-42,-13,-41,-38xm35,-50v26,1,48,-16,53,-37v-18,-22,-45,20,-53,37",w:93},f:{d:"92,-45v-19,30,-33,57,-71,44r-52,101r-26,0r57,-111v-8,-4,-1,-16,5,-11r35,-66v-10,5,-29,34,-40,47v8,-31,45,-53,56,-83v13,-34,36,-70,74,-76v30,4,8,41,-3,52v-16,16,-41,39,-61,49r-43,93v32,20,48,-24,67,-41v1,0,2,1,2,2xm68,-105v27,-16,69,-48,73,-82v-6,-17,-21,-5,-32,8v-18,20,-30,47,-41,74",w:88},g:{d:"12,92v-20,13,-58,16,-57,-13v2,-38,44,-58,83,-67r15,-31v-11,24,-60,32,-57,-8v3,-36,32,-73,75,-72v11,-1,17,5,18,12v2,-12,20,-9,32,-11r-52,102v30,-10,34,-22,57,-52v-6,26,-33,51,-59,57v-18,29,-26,64,-55,83xm76,-63v5,-10,16,-30,-4,-32v-15,-1,-51,56,-56,87v23,18,48,-33,60,-55xm36,17v-34,10,-68,31,-71,66v-1,19,20,18,29,8v13,-12,31,-53,42,-74"},h:{d:"96,4v-54,-11,2,-67,12,-92v0,-3,-2,-5,-6,-5v-22,0,-72,69,-80,93r-28,0r52,-103v-16,21,-29,44,-47,63v-3,0,-2,-3,0,-5v36,-46,70,-94,95,-150r26,-3r-78,154v19,-24,35,-49,61,-54v50,12,-3,68,-9,91v0,3,2,5,6,5v14,-1,36,-34,46,-47v3,12,-14,21,-19,32v-11,14,-22,21,-31,21",w:143},i:{d:"70,-149v7,0,12,7,12,12v2,16,-26,22,-27,3v0,-8,6,-15,15,-15xm27,2v-45,-7,-7,-61,3,-83r-30,41v1,-21,26,-36,35,-55r31,-3v-14,30,-33,55,-44,88v6,19,22,5,34,-9v5,-2,11,-25,22,-26v-17,28,-24,42,-51,47",w:75},j:{d:"-45,88v-16,11,-62,26,-62,-7v0,-37,60,-54,91,-70r48,-94r-32,43v-3,-1,-3,-3,-1,-5r36,-50r29,-2r-51,100v32,-9,39,-23,61,-50v-11,34,-31,46,-64,56v-16,29,-27,61,-55,79xm70,-149v7,0,12,7,12,12v2,16,-26,22,-27,3v0,-8,6,-15,15,-15xm-91,63v-23,32,12,44,31,23v16,-18,29,-44,40,-68v-24,14,-55,25,-71,45",w:72},k:{d:"-6,0r52,-103r-46,63v-3,-1,-3,-3,-1,-5v36,-46,70,-94,95,-150r26,-2r-100,197r-26,0xm89,-8v5,2,22,-21,38,-40v-10,27,-26,46,-48,50v-41,-7,2,-50,2,-68v-10,8,-36,-3,-14,-8v29,15,30,-20,50,-24v5,0,8,3,8,8v0,6,-2,9,-8,9v-6,0,-10,-5,-7,-10v-10,6,-10,24,-26,24v22,13,-5,46,5,59"},l:{d:"27,3v-35,-7,-7,-53,3,-74v4,-9,11,-21,18,-33r-49,64v11,-30,44,-55,58,-83r37,-72r26,-2r-90,183v-1,3,-2,12,2,12v17,0,32,-33,45,-44v-10,27,-27,45,-50,49",w:75},m:{d:"71,-74v10,-16,31,-35,49,-19v5,4,6,12,4,19v8,-10,21,-24,34,-25v10,0,16,10,16,21v0,25,-24,42,-27,66v4,16,18,8,29,-3v6,-5,13,-23,25,-32v-8,24,-26,47,-52,49v-50,-11,4,-68,11,-92v-16,-13,-37,20,-45,36r-28,54r-25,0v14,-30,32,-57,44,-90v-13,-14,-35,19,-42,33r-30,57r-26,0r46,-90v-16,-14,-39,37,-55,50v7,-22,42,-75,68,-54v6,6,5,12,4,20",w:199},n:{d:"98,2v-52,-7,0,-70,9,-91v-11,-15,-38,21,-44,32r-29,57r-27,0v15,-31,34,-58,47,-91v-16,-15,-39,45,-57,50v15,-24,42,-74,70,-52v4,5,6,12,4,19v11,-13,18,-25,34,-25v11,0,17,7,17,21v1,23,-28,44,-29,67v0,5,3,8,9,8v21,-1,31,-33,47,-42v-14,25,-26,43,-51,47",w:146},o:{d:"64,-98v42,0,20,59,7,74v14,-2,19,-20,30,-23v-7,22,-32,25,-46,40v-21,23,-57,4,-57,-28v0,-30,35,-63,66,-63xm68,-94v-24,8,-45,44,-46,78v-1,23,25,13,34,3v11,-14,24,-37,25,-63v0,-12,-4,-18,-13,-18",w:97},p:{d:"58,-17v1,-31,44,-35,44,-66v0,-18,-20,-11,-29,-1v-43,50,-67,125,-102,184r-25,0r112,-217v-21,25,-37,55,-61,78v21,-45,64,-77,83,-122r26,-5r-40,82v11,-20,56,-19,53,12v5,33,-40,40,-43,63v0,5,2,7,8,7v23,-3,30,-25,48,-45r2,2v-15,25,-26,47,-52,47v-16,0,-24,-6,-24,-19",w:130},q:{d:"54,-19v-13,25,-58,31,-58,-9v0,-35,38,-73,72,-71v11,0,18,4,20,13v2,-12,19,-10,32,-12r-76,149r58,-68r23,-30v3,12,-9,18,-26,39v-28,35,-64,71,-80,112r-28,0xm85,-79v-2,-23,-26,-17,-37,1v-10,15,-28,44,-31,67v5,16,18,6,29,-6v21,-19,25,-39,39,-62"},r:{d:"53,-7v-20,20,-49,3,-39,-25v6,-16,20,-37,33,-48v-3,-3,-7,-5,-12,-8v-13,13,-23,43,-38,46v10,-18,23,-32,34,-48v-6,-3,-6,-14,3,-14v9,0,9,10,3,13v16,10,31,14,20,34v-9,16,-22,31,-27,51v0,3,1,4,5,4v19,-3,33,-32,46,-47v4,0,2,3,1,5v-12,19,-23,30,-29,37",w:78},s:{d:"7,-3v32,11,37,-53,28,-84v-13,13,-22,39,-38,46v10,-19,25,-34,37,-52v-6,-11,8,-24,12,-10v0,4,-5,7,-7,10v11,17,29,40,24,69v6,-6,12,-24,19,-22v-15,28,-26,43,-56,50v-25,5,-43,-25,-20,-32v16,4,8,20,-4,21v0,1,2,2,5,4",w:78},t:{d:"30,3v-23,3,-28,-22,-18,-39r34,-67r-47,63v19,-46,61,-75,79,-123r26,-3r-20,40v8,1,35,-3,24,4r-26,0v-17,38,-40,71,-54,112v0,5,2,8,6,8v11,1,34,-31,43,-45r2,2v-13,24,-27,46,-49,48",w:76},u:{d:"99,-2v20,-3,33,-30,49,-48v-6,22,-31,51,-52,52v-31,2,-24,-36,-13,-53v-14,20,-26,49,-51,53v-40,-5,-12,-67,0,-86r-33,44v6,-22,25,-37,36,-55r34,-3v-13,30,-30,56,-40,88v2,13,14,7,21,-2v20,-20,37,-54,49,-83r35,-3v-13,29,-34,56,-41,89v0,4,2,7,6,7",w:144},v:{d:"22,-78v17,-32,55,-15,44,17v-6,17,-19,33,-22,51v11,23,43,-9,51,-24v-19,-14,-10,-65,16,-64v10,0,14,5,14,14v-1,18,-13,35,-23,48v15,5,23,-6,29,-14v2,14,-17,22,-32,18v-11,17,-28,34,-50,34v-51,0,-12,-69,1,-88v-9,-13,-15,2,-32,20v-7,6,-15,33,-22,24xm109,-83v-17,0,-27,35,-11,46v6,-8,19,-27,19,-40v0,-4,-2,-6,-8,-6",w:127},w:{d:"148,-32v-9,14,-29,33,-48,34v-35,2,-25,-34,-17,-55v-11,22,-29,53,-51,55v-43,-5,-11,-65,0,-85r-33,43v-2,-1,-2,-3,0,-5r36,-50r34,-3v-12,30,-30,54,-39,88v0,5,2,7,5,7v28,-11,49,-57,64,-92r35,-3v-13,30,-32,53,-40,88v12,22,40,-10,50,-25v-19,-15,-10,-64,16,-63v9,0,14,4,14,13v-1,17,-13,36,-24,49v14,8,27,-2,33,-13v4,12,-20,27,-35,17xm158,-83v-18,0,-28,35,-12,45v6,-10,19,-26,20,-38v0,-5,-3,-7,-8,-7",w:181},x:{d:"20,2v-19,3,-28,-21,-10,-24v6,0,9,3,9,8v0,7,-3,10,-8,10v38,9,41,-45,45,-82v0,-4,-2,-6,-7,-6v-14,1,-38,37,-49,52v-4,0,-2,-3,-1,-5v13,-17,29,-52,53,-52v17,0,21,9,26,25v8,-10,16,-22,30,-24v17,-3,27,21,10,23v-6,0,-10,-3,-10,-9v0,-5,3,-8,8,-8v-34,-12,-40,41,-32,81v17,20,36,-26,51,-39v2,13,-29,48,-45,49v-25,0,-32,-10,-36,-30v-7,15,-18,29,-34,31",w:133},y:{d:"46,-95v49,5,4,65,-3,87v6,11,14,2,27,-9v19,-17,40,-50,53,-78r27,-3r-52,102v27,-10,41,-26,54,-49v4,-2,5,1,3,4v-17,26,-30,39,-59,50v-23,39,-34,95,-94,95v-35,0,-33,-45,-5,-63v17,-11,40,-22,70,-29r25,-47v-16,20,-25,34,-47,38v-51,-8,-6,-69,5,-91v-14,-13,-38,36,-53,50v4,-17,33,-55,49,-57xm65,17v-38,11,-76,28,-79,65v-2,22,21,22,34,10v17,-15,32,-51,45,-75",w:153},z:{d:"57,2v6,-21,-15,-27,-37,-23v-7,6,-15,31,-25,19v1,-10,11,-16,20,-20r45,-52v-11,-2,-21,-1,-30,-7v-11,12,-17,29,-30,39v2,-17,19,-27,26,-41v-9,-2,-13,-15,0,-15v6,0,12,9,7,14v7,4,17,6,29,6v12,-14,20,-22,37,-25v13,4,6,14,-4,21v-7,4,-16,6,-28,8r-45,50v23,-3,56,-8,58,18v15,-3,25,-37,39,-41v-12,22,-22,35,-38,44v2,41,-40,105,-78,105v-44,0,-35,-47,-7,-66v14,-9,33,-22,61,-34xm57,7v-43,19,-79,29,-79,71v0,13,7,19,21,19v22,0,51,-66,58,-90",w:114},"{":{d:"15,-116v71,-5,33,-140,133,-117v-18,6,-39,2,-50,22v-26,29,-15,101,-72,95v57,23,-11,82,-16,116v-3,23,22,17,35,24v-32,14,-63,-18,-42,-52v14,-23,63,-74,12,-88",w:83},"|":{d:"-6,36r87,-239r5,0r-87,239r-5,0",w:60},"}":{d:"147,-206v-3,39,-73,91,-15,112v-76,5,-33,143,-133,116v10,-6,38,-2,42,-12v26,-22,19,-111,80,-104v-57,-22,9,-79,13,-115v2,-22,-20,-20,-33,-25v19,-9,48,4,46,28",w:158},"~":{d:"80,-88v-3,32,-47,-5,-57,13v-5,-8,11,-18,23,-14v11,3,27,14,34,1",w:96},"\u0410":{d:"9,-30v0,38,56,36,81,17v23,-17,53,-51,71,-74v-7,0,-29,-4,-14,-5r18,-1v32,-40,110,-139,139,-155v-9,56,-46,105,-63,157v9,2,25,-3,29,4v-4,7,-22,1,-31,3v-6,17,-19,47,-19,65v0,6,2,9,6,9v20,-3,28,-26,44,-42r2,2v-15,27,-33,54,-61,54v-50,0,-19,-61,-6,-89r-38,-2v-27,29,-62,88,-116,91v-30,1,-47,-6,-47,-34v0,-25,35,-43,62,-37v-25,1,-57,13,-57,37xm208,-92v14,-28,39,-69,50,-88v11,-18,22,-37,35,-56r-47,50r-75,93",w:267},"\u00c0":{d:"9,-30v0,38,56,36,81,17v23,-17,53,-51,71,-74v-7,0,-29,-4,-14,-5r18,-1v32,-40,110,-139,139,-155v-9,56,-46,105,-63,157v9,2,25,-3,29,4v-4,7,-22,1,-31,3v-6,17,-19,47,-19,65v0,6,2,9,6,9v20,-3,28,-26,44,-42r2,2v-15,27,-33,54,-61,54v-50,0,-19,-61,-6,-89r-38,-2v-27,29,-62,88,-116,91v-30,1,-47,-6,-47,-34v0,-25,35,-43,62,-37v-25,1,-57,13,-57,37xm208,-92v14,-28,39,-69,50,-88v11,-18,22,-37,35,-56r-47,50r-75,93",w:267},"\u0411":{d:"332,-247v-22,73,-117,21,-177,16v-52,-4,-104,44,-105,90v0,18,9,29,26,29v35,0,56,-55,57,-89v20,42,-6,94,-56,94v-20,0,-32,-14,-32,-34v4,-64,73,-106,154,-95v45,6,108,22,133,-11xm187,-2v31,0,56,-67,56,-98v0,-31,-40,-25,-59,-14v-12,72,-52,114,-129,116v-27,0,-48,-8,-48,-31v0,-26,32,-44,64,-40v-27,1,-61,14,-58,39v6,43,76,30,95,-1v40,-43,45,-161,111,-176v-17,11,-26,58,-33,86v34,-18,84,-4,84,39v0,40,-34,86,-75,86v-38,0,-33,-40,-18,-61v8,-11,18,-18,29,-20v-18,4,-36,33,-35,56v0,11,4,19,16,19",w:278},"\u00c1":{d:"332,-247v-22,73,-117,21,-177,16v-52,-4,-104,44,-105,90v0,18,9,29,26,29v35,0,56,-55,57,-89v20,42,-6,94,-56,94v-20,0,-32,-14,-32,-34v4,-64,73,-106,154,-95v45,6,108,22,133,-11xm187,-2v31,0,56,-67,56,-98v0,-31,-40,-25,-59,-14v-12,72,-52,114,-129,116v-27,0,-48,-8,-48,-31v0,-26,32,-44,64,-40v-27,1,-61,14,-58,39v6,43,76,30,95,-1v40,-43,45,-161,111,-176v-17,11,-26,58,-33,86v34,-18,84,-4,84,39v0,40,-34,86,-75,86v-38,0,-33,-40,-18,-61v8,-11,18,-18,29,-20v-18,4,-36,33,-35,56v0,11,4,19,16,19",w:278},"\u0412":{d:"56,4v-41,0,-65,-41,-30,-62v13,-8,30,-14,46,-9v-26,-1,-57,13,-57,36v0,36,56,36,79,13v50,-49,69,-175,139,-210v-76,-30,-177,17,-179,90v-1,20,12,34,29,34v42,2,62,-51,63,-94v16,49,-6,99,-62,99v-23,0,-36,-16,-36,-39v3,-78,106,-124,196,-95v8,-3,12,-2,20,-2v-7,1,-11,0,-15,4v22,7,38,27,38,55v-1,28,-17,44,-40,53v54,31,3,133,-50,127v-36,3,-37,-32,-23,-56v8,-14,18,-22,32,-25v-16,5,-34,29,-35,53v0,14,6,21,17,21v30,1,69,-81,49,-115v-7,4,-33,7,-33,-3v0,-11,25,-8,35,-5v27,-13,29,-85,1,-98v-66,65,-52,228,-184,228xm233,-121v-7,-10,-39,2,-15,4v7,0,10,-2,15,-4",w:274},"\u00c2":{d:"56,4v-41,0,-65,-41,-30,-62v13,-8,30,-14,46,-9v-26,-1,-57,13,-57,36v0,36,56,36,79,13v50,-49,69,-175,139,-210v-76,-30,-177,17,-179,90v-1,20,12,34,29,34v42,2,62,-51,63,-94v16,49,-6,99,-62,99v-23,0,-36,-16,-36,-39v3,-78,106,-124,196,-95v8,-3,12,-2,20,-2v-7,1,-11,0,-15,4v22,7,38,27,38,55v-1,28,-17,44,-40,53v54,31,3,133,-50,127v-36,3,-37,-32,-23,-56v8,-14,18,-22,32,-25v-16,5,-34,29,-35,53v0,14,6,21,17,21v30,1,69,-81,49,-115v-7,4,-33,7,-33,-3v0,-11,25,-8,35,-5v27,-13,29,-85,1,-98v-66,65,-52,228,-184,228xm233,-121v-7,-10,-39,2,-15,4v7,0,10,-2,15,-4",w:274},"\u0413":{d:"283,-206v-42,0,-85,-20,-120,-22v-53,-2,-107,39,-107,87v0,17,10,29,27,29v36,0,56,-51,56,-89v21,42,-6,94,-55,94v-22,0,-33,-14,-33,-34v0,-77,95,-110,187,-91v43,9,92,9,119,-15v-14,23,-35,41,-74,41xm55,2v-41,0,-66,-41,-31,-61v12,-8,33,-15,48,-9v-27,0,-61,11,-59,36v2,38,63,35,86,11v48,-33,58,-169,126,-186v-37,39,-42,147,-84,180v-22,17,-50,29,-86,29",w:221},"\u00c3":{d:"283,-206v-42,0,-85,-20,-120,-22v-53,-2,-107,39,-107,87v0,17,10,29,27,29v36,0,56,-51,56,-89v21,42,-6,94,-55,94v-22,0,-33,-14,-33,-34v0,-77,95,-110,187,-91v43,9,92,9,119,-15v-14,23,-35,41,-74,41xm55,2v-41,0,-66,-41,-31,-61v12,-8,33,-15,48,-9v-27,0,-61,11,-59,36v2,38,63,35,86,11v48,-33,58,-169,126,-186v-37,39,-42,147,-84,180v-22,17,-50,29,-86,29",w:221},"\u0414":{d:"229,-219v58,68,19,221,-81,221v-28,0,-45,-15,-65,-2v-22,6,-66,7,-68,-15v8,-27,60,-14,81,-4v54,-48,54,-165,121,-201v-17,-16,-41,-24,-72,-24v-48,0,-94,47,-93,96v0,25,12,44,37,44v51,0,69,-78,45,-107v37,32,5,111,-45,111v-34,0,-55,-18,-55,-52v0,-54,54,-99,110,-97v38,1,57,8,79,24v10,-6,21,-13,34,-15v-10,6,-19,13,-28,21xm113,-13v109,50,177,-115,112,-200v-32,39,-36,127,-66,164v-9,12,-24,24,-46,36xm89,-13v-17,-7,-29,-13,-48,-13v-9,0,-20,3,-20,11v9,22,54,14,68,2",w:266},"\u00c4":{d:"229,-219v58,68,19,221,-81,221v-28,0,-45,-15,-65,-2v-22,6,-66,7,-68,-15v8,-27,60,-14,81,-4v54,-48,54,-165,121,-201v-17,-16,-41,-24,-72,-24v-48,0,-94,47,-93,96v0,25,12,44,37,44v51,0,69,-78,45,-107v37,32,5,111,-45,111v-34,0,-55,-18,-55,-52v0,-54,54,-99,110,-97v38,1,57,8,79,24v10,-6,21,-13,34,-15v-10,6,-19,13,-28,21xm113,-13v109,50,177,-115,112,-200v-32,39,-36,127,-66,164v-9,12,-24,24,-46,36xm89,-13v-17,-7,-29,-13,-48,-13v-9,0,-20,3,-20,11v9,22,54,14,68,2",w:266},"\u0415":{d:"190,-235v35,0,34,32,15,51v-15,15,-35,22,-61,26r1,8v24,-5,57,19,26,25v-15,-1,-31,-7,-40,-18v-36,11,-58,49,-57,96v0,26,12,47,38,47v37,0,79,-39,78,-75v0,-15,-11,-25,-25,-25v-29,-1,-32,39,-27,63v-24,-17,-19,-67,24,-67v21,0,32,9,32,29v0,40,-39,79,-81,79v-45,0,-74,-23,-74,-64v0,-49,39,-83,87,-89v-2,-7,-8,-8,-16,-6v-33,0,-62,-10,-63,-36v-1,-37,43,-62,82,-57v-36,7,-67,14,-67,53v0,26,28,37,58,36v-11,-44,26,-76,70,-76xm146,-145v1,11,25,21,33,11v-3,-7,-22,-15,-33,-11xm201,-186v16,-16,20,-44,-6,-44v-29,0,-53,34,-51,68v25,-3,43,-10,57,-24",w:195},"\u00c5":{d:"190,-235v35,0,34,32,15,51v-15,15,-35,22,-61,26r1,8v24,-5,57,19,26,25v-15,-1,-31,-7,-40,-18v-36,11,-58,49,-57,96v0,26,12,47,38,47v37,0,79,-39,78,-75v0,-15,-11,-25,-25,-25v-29,-1,-32,39,-27,63v-24,-17,-19,-67,24,-67v21,0,32,9,32,29v0,40,-39,79,-81,79v-45,0,-74,-23,-74,-64v0,-49,39,-83,87,-89v-2,-7,-8,-8,-16,-6v-33,0,-62,-10,-63,-36v-1,-37,43,-62,82,-57v-36,7,-67,14,-67,53v0,26,28,37,58,36v-11,-44,26,-76,70,-76xm146,-145v1,11,25,21,33,11v-3,-7,-22,-15,-33,-11xm201,-186v16,-16,20,-44,-6,-44v-29,0,-53,34,-51,68v25,-3,43,-10,57,-24",w:195},"\u0416":{d:"367,-175v8,-20,6,-69,-31,-54v-40,44,-52,122,-60,197v-4,36,24,35,41,9r20,-30v-2,20,-27,55,-48,55v-89,-27,-7,-171,20,-214v-64,57,-111,112,-131,212r-32,0r34,-98v14,-38,28,-72,41,-101v-44,47,-77,117,-119,170v-17,22,-38,31,-76,33v-22,1,-41,-21,-26,-39v0,15,3,37,26,34v79,-9,89,-95,113,-166v10,-30,12,-63,-20,-64v-26,-1,-37,28,-41,49v-9,-29,19,-59,47,-57v72,5,27,114,9,155r57,-86v16,-22,34,-43,47,-68r23,0r-25,59v-12,28,-22,57,-32,86v34,-53,77,-131,147,-143v26,-4,34,46,16,61",w:334},"\u00c6":{d:"367,-175v8,-20,6,-69,-31,-54v-40,44,-52,122,-60,197v-4,36,24,35,41,9r20,-30v-2,20,-27,55,-48,55v-89,-27,-7,-171,20,-214v-64,57,-111,112,-131,212r-32,0r34,-98v14,-38,28,-72,41,-101v-44,47,-77,117,-119,170v-17,22,-38,31,-76,33v-22,1,-41,-21,-26,-39v0,15,3,37,26,34v79,-9,89,-95,113,-166v10,-30,12,-63,-20,-64v-26,-1,-37,28,-41,49v-9,-29,19,-59,47,-57v72,5,27,114,9,155r57,-86v16,-22,34,-43,47,-68r23,0r-25,59v-12,28,-22,57,-32,86v34,-53,77,-131,147,-143v26,-4,34,46,16,61",w:334},"\u0417":{d:"91,4v-34,0,-52,-18,-54,-47v0,-26,18,-55,44,-55v46,0,37,53,3,59r-2,-1v17,-7,34,-53,-1,-53v-21,0,-39,28,-38,49v0,27,18,42,47,42v44,0,89,-79,69,-123v-9,7,-49,9,-31,-6v6,-4,19,-3,28,-1v20,-14,34,-42,35,-75v0,-18,-8,-29,-25,-29v-33,-1,-56,27,-68,48v-4,-31,36,-53,68,-54v32,0,55,17,55,48v-1,34,-21,60,-54,64v18,4,30,28,30,49v-1,54,-47,85,-106,85",w:213},"\u00c7":{d:"91,4v-34,0,-52,-18,-54,-47v0,-26,18,-55,44,-55v46,0,37,53,3,59r-2,-1v17,-7,34,-53,-1,-53v-21,0,-39,28,-38,49v0,27,18,42,47,42v44,0,89,-79,69,-123v-9,7,-49,9,-31,-6v6,-4,19,-3,28,-1v20,-14,34,-42,35,-75v0,-18,-8,-29,-25,-29v-33,-1,-56,27,-68,48v-4,-31,36,-53,68,-54v32,0,55,17,55,48v-1,34,-21,60,-54,64v18,4,30,28,30,49v-1,54,-47,85,-106,85",w:213},"\u0418":{d:"138,-248v57,0,80,60,52,108v-14,41,-58,72,-58,118v0,13,6,19,16,19v20,0,54,-44,66,-69r80,-159r34,-2r-96,188v-6,12,-9,22,-9,29v0,9,4,13,12,13v21,0,34,-32,51,-48v-6,27,-33,50,-55,53v-28,3,-34,-21,-28,-46v-13,21,-29,46,-55,46v-75,0,-26,-102,-4,-135v14,-20,33,-43,33,-73v0,-20,-14,-37,-38,-37v-48,0,-99,51,-98,98v1,20,11,34,32,34v36,0,52,-65,52,-100v22,43,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103",w:283},"\u00c8":{d:"138,-248v57,0,80,60,52,108v-14,41,-58,72,-58,118v0,13,6,19,16,19v20,0,54,-44,66,-69r80,-159r34,-2r-96,188v-6,12,-9,22,-9,29v0,9,4,13,12,13v21,0,34,-32,51,-48v-6,27,-33,50,-55,53v-28,3,-34,-21,-28,-46v-13,21,-29,46,-55,46v-75,0,-26,-102,-4,-135v14,-20,33,-43,33,-73v0,-20,-14,-37,-38,-37v-48,0,-99,51,-98,98v1,20,11,34,32,34v36,0,52,-65,52,-100v22,43,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103",w:283},"\u0419":{d:"132,-21v6,34,37,17,55,-9v44,-60,70,-135,107,-201r34,-2r-96,188v-8,17,-17,40,2,43v16,3,39,-35,52,-49v-8,28,-33,50,-55,53v-27,3,-34,-22,-28,-46v-13,21,-29,46,-55,46v-75,0,-26,-102,-4,-135v14,-20,33,-43,33,-73v0,-21,-15,-37,-40,-37v-47,0,-97,52,-96,98v1,20,11,34,32,34v36,1,52,-64,52,-100v22,43,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103v44,0,68,33,62,80v-5,37,-61,99,-68,147xm300,-261v-8,35,-81,34,-88,0v0,-11,21,-14,21,0v0,4,-1,7,-5,9v16,14,35,13,54,1v-7,-7,-1,-19,8,-20v7,0,10,4,10,10",w:283},"\u00c9":{d:"132,-21v6,34,37,17,55,-9v44,-60,70,-135,107,-201r34,-2r-96,188v-8,17,-17,40,2,43v16,3,39,-35,52,-49v-8,28,-33,50,-55,53v-27,3,-34,-22,-28,-46v-13,21,-29,46,-55,46v-75,0,-26,-102,-4,-135v14,-20,33,-43,33,-73v0,-21,-15,-37,-40,-37v-47,0,-97,52,-96,98v1,20,11,34,32,34v36,1,52,-64,52,-100v22,43,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103v44,0,68,33,62,80v-5,37,-61,99,-68,147xm300,-261v-8,35,-81,34,-88,0v0,-11,21,-14,21,0v0,4,-1,7,-5,9v16,14,35,13,54,1v-7,-7,-1,-19,8,-20v7,0,10,4,10,10",w:283},"\u041a":{d:"181,-138v6,-11,28,-4,33,4v31,-20,55,-124,119,-104v-71,4,-50,97,-116,109v9,23,5,58,7,90v1,11,0,34,10,34v18,0,38,-33,51,-50v-5,24,-34,56,-58,57v-72,3,-29,-89,-23,-129v-10,0,-22,-2,-23,-11xm127,-232v23,-4,4,36,23,35v24,-1,46,-17,59,-36v2,-3,6,-5,7,-1v-53,80,-46,229,-166,238v-26,2,-48,-12,-48,-34v0,-25,37,-42,64,-37v-24,1,-61,15,-58,37v5,37,62,39,83,3v31,-52,46,-139,93,-179v-13,7,-33,17,-50,17v-15,0,-20,-7,-19,-23v-3,-16,-14,-10,-24,2r-22,26v8,-25,34,-44,58,-48xm204,-130v1,-8,-13,-13,-19,-8v1,6,9,8,19,8",w:281},"\u00ca":{d:"181,-138v6,-11,28,-4,33,4v31,-20,55,-124,119,-104v-71,4,-50,97,-116,109v9,23,5,58,7,90v1,11,0,34,10,34v18,0,38,-33,51,-50v-5,24,-34,56,-58,57v-72,3,-29,-89,-23,-129v-10,0,-22,-2,-23,-11xm127,-232v23,-4,4,36,23,35v24,-1,46,-17,59,-36v2,-3,6,-5,7,-1v-53,80,-46,229,-166,238v-26,2,-48,-12,-48,-34v0,-25,37,-42,64,-37v-24,1,-61,15,-58,37v5,37,62,39,83,3v31,-52,46,-139,93,-179v-13,7,-33,17,-50,17v-15,0,-20,-7,-19,-23v-3,-16,-14,-10,-24,2r-22,26v8,-25,34,-44,58,-48xm204,-130v1,-8,-13,-13,-19,-8v1,6,9,8,19,8",w:281},"\u041b":{d:"207,4v-34,-4,-21,-34,-9,-65v24,-63,67,-128,98,-175v-71,63,-128,168,-203,227v-27,22,-86,18,-87,-20v0,-24,36,-43,62,-38v-26,0,-59,14,-57,39v3,41,79,31,96,3v66,-64,126,-166,199,-223v-13,72,-72,154,-84,232v0,4,1,6,4,6v21,-8,24,-21,41,-43v1,2,2,2,2,5v-17,25,-28,49,-62,52",w:265},"\u00cb":{d:"207,4v-34,-4,-21,-34,-9,-65v24,-63,67,-128,98,-175v-71,63,-128,168,-203,227v-27,22,-86,18,-87,-20v0,-24,36,-43,62,-38v-26,0,-59,14,-57,39v3,41,79,31,96,3v66,-64,126,-166,199,-223v-13,72,-72,154,-84,232v0,4,1,6,4,6v21,-8,24,-21,41,-43v1,2,2,2,2,5v-17,25,-28,49,-62,52",w:265},"\u041c":{d:"10,-30v3,34,58,37,80,14v60,-64,96,-169,168,-222r-57,169v-10,37,-22,52,-14,65v39,-42,59,-134,99,-180v15,-18,33,-38,51,-54v-21,52,-54,140,-54,212v0,34,22,25,40,4v7,-9,11,-27,23,-27v-10,19,-30,51,-51,51v-52,0,-44,-71,-28,-115v14,-41,35,-75,57,-108v-48,42,-79,121,-110,186v-12,24,-22,36,-29,36v-30,2,-27,-40,-19,-67v17,-58,46,-118,81,-157v-47,49,-84,106,-121,170v-18,32,-37,53,-75,57v-41,4,-66,-42,-29,-61v14,-8,29,-13,46,-10v-23,2,-60,12,-58,37",w:342},"\u00cc":{d:"10,-30v3,34,58,37,80,14v60,-64,96,-169,168,-222r-57,169v-10,37,-22,52,-14,65v39,-42,59,-134,99,-180v15,-18,33,-38,51,-54v-21,52,-54,140,-54,212v0,34,22,25,40,4v7,-9,11,-27,23,-27v-10,19,-30,51,-51,51v-52,0,-44,-71,-28,-115v14,-41,35,-75,57,-108v-48,42,-79,121,-110,186v-12,24,-22,36,-29,36v-30,2,-27,-40,-19,-67v17,-58,46,-118,81,-157v-47,49,-84,106,-121,170v-18,32,-37,53,-75,57v-41,4,-66,-42,-29,-61v14,-8,29,-13,46,-10v-23,2,-60,12,-58,37",w:342},"\u041d":{d:"338,-240v34,-4,29,42,9,58v-17,13,-53,31,-80,37v-15,35,-37,84,-43,124v3,31,33,15,50,1v10,-5,16,-28,28,-31v-18,28,-31,50,-66,52v-28,1,-42,-18,-42,-45v0,-19,11,-49,31,-91v-16,3,-30,6,-44,12v-27,66,-53,119,-123,125v-36,3,-40,-47,-11,-57v2,8,-18,11,-14,28v0,29,39,29,56,10v19,-21,34,-63,49,-95v-20,3,-48,25,-59,29v12,-16,38,-26,60,-35v13,-39,25,-60,49,-85v-11,5,-33,15,-45,15v-16,0,-22,-11,-18,-27v-15,-21,-38,23,-48,30v10,-23,33,-43,58,-47v24,-4,4,35,23,35v21,0,58,-30,69,-42v-5,31,-39,71,-43,110v14,-4,28,-8,43,-11v27,-50,55,-94,111,-100xm269,-150v30,-11,81,-21,81,-62v0,-32,-33,-24,-46,-5v-6,9,-18,31,-35,67",w:297},"\u00cd":{d:"338,-240v34,-4,29,42,9,58v-17,13,-53,31,-80,37v-15,35,-37,84,-43,124v3,31,33,15,50,1v10,-5,16,-28,28,-31v-18,28,-31,50,-66,52v-28,1,-42,-18,-42,-45v0,-19,11,-49,31,-91v-16,3,-30,6,-44,12v-27,66,-53,119,-123,125v-36,3,-40,-47,-11,-57v2,8,-18,11,-14,28v0,29,39,29,56,10v19,-21,34,-63,49,-95v-20,3,-48,25,-59,29v12,-16,38,-26,60,-35v13,-39,25,-60,49,-85v-11,5,-33,15,-45,15v-16,0,-22,-11,-18,-27v-15,-21,-38,23,-48,30v10,-23,33,-43,58,-47v24,-4,4,35,23,35v21,0,58,-30,69,-42v-5,31,-39,71,-43,110v14,-4,28,-8,43,-11v27,-50,55,-94,111,-100xm269,-150v30,-11,81,-21,81,-62v0,-32,-33,-24,-46,-5v-6,9,-18,31,-35,67",w:297},"\u041e":{d:"20,-63v6,-101,65,-165,161,-175v25,-2,43,22,31,43v6,-57,-66,-41,-92,-11v-30,34,-75,110,-75,175v0,48,53,30,78,1v30,-34,54,-89,59,-151v0,-13,-4,-25,-15,-25v-47,2,-86,109,-82,169v-14,-67,34,-168,82,-173v41,5,19,68,12,96v-14,50,-56,118,-108,118v-34,0,-53,-28,-51,-67",w:176},"\u00ce":{d:"20,-63v6,-101,65,-165,161,-175v25,-2,43,22,31,43v6,-57,-66,-41,-92,-11v-30,34,-75,110,-75,175v0,48,53,30,78,1v30,-34,54,-89,59,-151v0,-13,-4,-25,-15,-25v-47,2,-86,109,-82,169v-14,-67,34,-168,82,-173v41,5,19,68,12,96v-14,50,-56,118,-108,118v-34,0,-53,-28,-51,-67",w:176},"\u041f":{d:"380,-247v-27,78,-151,22,-218,16v-54,-5,-104,39,-105,89v-1,16,9,29,25,29v34,0,57,-52,57,-88v21,42,-6,94,-55,94v-22,0,-33,-12,-33,-35v3,-64,66,-102,143,-95v54,5,116,14,167,5v7,-3,13,-8,19,-15xm242,-59v-2,41,23,52,60,43v-8,10,-31,18,-48,18v-29,-1,-45,-25,-43,-57v5,-63,47,-123,99,-150v-33,27,-66,96,-68,146xm52,-3v103,-1,93,-183,173,-204v-54,67,-39,209,-170,209v-26,0,-47,-11,-48,-33v-1,-25,40,-45,64,-37v-27,0,-58,11,-58,36v0,20,18,29,39,29",w:320},"\u00cf":{d:"380,-247v-27,78,-151,22,-218,16v-54,-5,-104,39,-105,89v-1,16,9,29,25,29v34,0,57,-52,57,-88v21,42,-6,94,-55,94v-22,0,-33,-12,-33,-35v3,-64,66,-102,143,-95v54,5,116,14,167,5v7,-3,13,-8,19,-15xm242,-59v-2,41,23,52,60,43v-8,10,-31,18,-48,18v-29,-1,-45,-25,-43,-57v5,-63,47,-123,99,-150v-33,27,-66,96,-68,146xm52,-3v103,-1,93,-183,173,-204v-54,67,-39,209,-170,209v-26,0,-47,-11,-48,-33v-1,-25,40,-45,64,-37v-27,0,-58,11,-58,36v0,20,18,29,39,29",w:320},"\u0420":{d:"53,4v-26,1,-47,-11,-47,-35v0,-24,38,-44,63,-36v-27,-1,-57,13,-57,36v0,19,19,29,39,29v46,0,73,-49,85,-92v-11,2,-24,10,-32,11v8,-8,22,-10,33,-15v17,-50,35,-97,74,-123v-77,-26,-172,21,-172,91v0,20,9,33,29,33v35,0,64,-59,64,-94v11,51,-13,101,-62,99v-23,0,-36,-16,-36,-38v2,-76,100,-121,187,-97v9,-3,17,-5,29,-5v-7,2,-15,4,-20,8v39,10,45,70,10,94v-12,8,-42,23,-66,28v-21,61,-49,104,-121,106xm175,-107v54,-1,81,-69,46,-109v-22,33,-32,60,-46,109",w:209},"\u00d0":{d:"53,4v-26,1,-47,-11,-47,-35v0,-24,38,-44,63,-36v-27,-1,-57,13,-57,36v0,19,19,29,39,29v46,0,73,-49,85,-92v-11,2,-24,10,-32,11v8,-8,22,-10,33,-15v17,-50,35,-97,74,-123v-77,-26,-172,21,-172,91v0,20,9,33,29,33v35,0,64,-59,64,-94v11,51,-13,101,-62,99v-23,0,-36,-16,-36,-38v2,-76,100,-121,187,-97v9,-3,17,-5,29,-5v-7,2,-15,4,-20,8v39,10,45,70,10,94v-12,8,-42,23,-66,28v-21,61,-49,104,-121,106xm175,-107v54,-1,81,-69,46,-109v-22,33,-32,60,-46,109",w:209},"\u0421":{d:"80,-120v-27,-6,-57,-31,-56,-60v0,-48,57,-73,112,-60v-51,2,-95,14,-95,65v0,25,20,46,41,51v26,-54,83,-112,152,-113v17,0,33,10,31,28v-8,60,-78,89,-146,94v-14,29,-43,112,13,112v37,0,75,-36,76,-78v0,-15,-7,-22,-20,-22v-29,0,-39,37,-32,63v-29,-22,-7,-67,32,-67v16,0,25,12,25,27v0,37,-42,81,-81,81v-70,0,-79,-74,-52,-121xm121,-120v69,-2,130,-30,130,-93v0,-12,-5,-18,-16,-18v-49,3,-94,66,-114,111",w:219},"\u00d1":{d:"80,-120v-27,-6,-57,-31,-56,-60v0,-48,57,-73,112,-60v-51,2,-95,14,-95,65v0,25,20,46,41,51v26,-54,83,-112,152,-113v17,0,33,10,31,28v-8,60,-78,89,-146,94v-14,29,-43,112,13,112v37,0,75,-36,76,-78v0,-15,-7,-22,-20,-22v-29,0,-39,37,-32,63v-29,-22,-7,-67,32,-67v16,0,25,12,25,27v0,37,-42,81,-81,81v-70,0,-79,-74,-52,-121xm121,-120v69,-2,130,-30,130,-93v0,-12,-5,-18,-16,-18v-49,3,-94,66,-114,111",w:219},"\u0422":{d:"53,-141v1,-51,60,-100,118,-97r215,10v30,0,34,-4,50,-19v-32,84,-187,16,-272,16v-53,0,-103,34,-106,89v0,16,9,29,26,29v34,0,56,-53,57,-88v21,42,-5,94,-56,94v-20,0,-32,-14,-32,-34xm295,-58v0,38,24,52,60,42v-31,29,-94,25,-88,-35v6,-64,47,-134,101,-151v-30,21,-73,94,-73,144xm293,-206v-29,51,-63,135,-84,206r-30,0v12,-39,60,-145,79,-184v6,-10,23,-16,35,-22xm13,-32v4,43,71,31,95,4v42,-46,49,-158,117,-180v-54,65,-38,210,-170,210v-27,0,-47,-9,-48,-33v-1,-25,38,-45,64,-37v-27,0,-60,11,-58,36",w:368},"\u00d2":{d:"53,-141v1,-51,60,-100,118,-97r215,10v30,0,34,-4,50,-19v-32,84,-187,16,-272,16v-53,0,-103,34,-106,89v0,16,9,29,26,29v34,0,56,-53,57,-88v21,42,-5,94,-56,94v-20,0,-32,-14,-32,-34xm295,-58v0,38,24,52,60,42v-31,29,-94,25,-88,-35v6,-64,47,-134,101,-151v-30,21,-73,94,-73,144xm293,-206v-29,51,-63,135,-84,206r-30,0v12,-39,60,-145,79,-184v6,-10,23,-16,35,-22xm13,-32v4,43,71,31,95,4v42,-46,49,-158,117,-180v-54,65,-38,210,-170,210v-27,0,-47,-9,-48,-33v-1,-25,38,-45,64,-37v-27,0,-60,11,-58,36",w:368},"\u0423":{d:"34,-18v1,-27,37,-39,68,-34v-25,2,-56,6,-55,30v1,34,51,29,75,18v45,-18,67,-83,92,-131v-21,24,-47,71,-83,74v-78,-25,24,-102,24,-149v0,-14,-12,-21,-32,-21v-42,0,-86,37,-86,77v0,16,9,26,23,27v31,-1,52,-41,49,-78v22,34,-5,83,-49,83v-16,0,-29,-14,-28,-32v1,-45,44,-82,93,-82v48,0,68,44,43,82v-17,25,-34,48,-44,78v0,6,3,9,10,9v65,-18,91,-134,155,-152v-44,32,-46,116,-77,161v-29,42,-62,65,-128,66v-33,0,-50,-9,-50,-26",w:240},"\u00d3":{d:"34,-18v1,-27,37,-39,68,-34v-25,2,-56,6,-55,30v1,34,51,29,75,18v45,-18,67,-83,92,-131v-21,24,-47,71,-83,74v-78,-25,24,-102,24,-149v0,-14,-12,-21,-32,-21v-42,0,-86,37,-86,77v0,16,9,26,23,27v31,-1,52,-41,49,-78v22,34,-5,83,-49,83v-16,0,-29,-14,-28,-32v1,-45,44,-82,93,-82v48,0,68,44,43,82v-17,25,-34,48,-44,78v0,6,3,9,10,9v65,-18,91,-134,155,-152v-44,32,-46,116,-77,161v-29,42,-62,65,-128,66v-33,0,-50,-9,-50,-26",w:240},"\u0424":{d:"167,-243v23,-4,4,37,23,36v16,-1,57,-27,64,-40v5,-5,13,0,8,5v-17,17,-28,50,-39,76v20,-21,85,-29,85,15v0,43,-26,86,-65,84v-21,0,-37,-12,-44,-27v-28,61,-59,106,-148,103v-32,0,-48,-9,-48,-27v1,-27,36,-39,66,-34v-25,-1,-53,10,-53,30v-2,34,56,25,77,17v30,-11,55,-54,69,-90v-19,23,-83,30,-85,-14v-3,-58,82,-111,118,-59v15,-24,30,-46,52,-63v-20,13,-47,31,-71,32v-17,1,-24,-9,-20,-25v-16,-18,-36,21,-46,26v10,-23,33,-41,57,-45xm192,-161v-3,-10,-15,-17,-27,-17v-36,-1,-52,40,-57,70v2,34,50,21,59,1xm202,-103v6,13,15,25,31,26v25,1,47,-48,44,-79v-3,-30,-40,-17,-57,-1v-3,22,-12,39,-18,54",w:311},"\u00d4":{d:"167,-243v23,-4,4,37,23,36v16,-1,57,-27,64,-40v5,-5,13,0,8,5v-17,17,-28,50,-39,76v20,-21,85,-29,85,15v0,43,-26,86,-65,84v-21,0,-37,-12,-44,-27v-28,61,-59,106,-148,103v-32,0,-48,-9,-48,-27v1,-27,36,-39,66,-34v-25,-1,-53,10,-53,30v-2,34,56,25,77,17v30,-11,55,-54,69,-90v-19,23,-83,30,-85,-14v-3,-58,82,-111,118,-59v15,-24,30,-46,52,-63v-20,13,-47,31,-71,32v-17,1,-24,-9,-20,-25v-16,-18,-36,21,-46,26v10,-23,33,-41,57,-45xm192,-161v-3,-10,-15,-17,-27,-17v-36,-1,-52,40,-57,70v2,34,50,21,59,1xm202,-103v6,13,15,25,31,26v25,1,47,-48,44,-79v-3,-30,-40,-17,-57,-1v-3,22,-12,39,-18,54",w:311},"\u0425":{d:"293,-176v27,-8,23,-56,-9,-51v-73,12,-87,104,-102,179v0,28,12,46,40,46v43,0,81,-48,81,-92v0,-25,-12,-44,-37,-43v-35,2,-53,62,-49,106v-24,-45,-4,-110,48,-110v28,0,44,20,44,47v1,46,-40,98,-87,98v-48,0,-53,-57,-37,-96v-19,49,-65,96,-126,96v-42,0,-55,-49,-14,-57r2,2v-10,5,-23,12,-22,25v0,16,13,27,31,25v75,-9,115,-99,120,-186v2,-27,-9,-43,-33,-44v-51,-2,-98,46,-98,93v0,24,13,44,39,42v37,-2,50,-60,49,-106v20,43,4,109,-48,109v-31,0,-44,-16,-45,-46v0,-50,51,-99,106,-97v47,2,68,40,58,90v17,-45,31,-79,81,-85v32,-4,44,48,13,56",w:305},"\u00d5":{d:"293,-176v27,-8,23,-56,-9,-51v-73,12,-87,104,-102,179v0,28,12,46,40,46v43,0,81,-48,81,-92v0,-25,-12,-44,-37,-43v-35,2,-53,62,-49,106v-24,-45,-4,-110,48,-110v28,0,44,20,44,47v1,46,-40,98,-87,98v-48,0,-53,-57,-37,-96v-19,49,-65,96,-126,96v-42,0,-55,-49,-14,-57r2,2v-10,5,-23,12,-22,25v0,16,13,27,31,25v75,-9,115,-99,120,-186v2,-27,-9,-43,-33,-44v-51,-2,-98,46,-98,93v0,24,13,44,39,42v37,-2,50,-60,49,-106v20,43,4,109,-48,109v-31,0,-44,-16,-45,-46v0,-50,51,-99,106,-97v47,2,68,40,58,90v17,-45,31,-79,81,-85v32,-4,44,48,13,56",w:305},"\u0426":{d:"256,-19v-11,31,-73,28,-64,-15r2,-10v-13,21,-30,44,-55,46v-27,2,-43,-17,-42,-42v3,-69,63,-99,71,-166v3,-23,-15,-37,-38,-37v-48,0,-99,51,-98,98v1,20,11,34,32,34v36,0,52,-64,52,-100v22,43,0,104,-52,104v-24,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103v58,0,76,59,52,109v-16,34,-58,74,-58,117v0,13,6,19,16,19v20,0,54,-44,66,-69r80,-159r34,-2r-96,188v-6,11,-8,21,-8,29v0,19,22,12,31,2v4,-5,10,-20,16,-16r-6,31v7,-3,15,-11,21,-10v-5,10,-27,13,-25,33v-2,15,-9,34,-22,34v-20,0,-12,-28,-1,-38v11,-9,27,-18,27,-39xm249,10v-10,8,-27,19,-26,35v3,13,12,9,18,-4v4,-9,6,-20,8,-31",w:291},"\u00d6":{d:"256,-19v-11,31,-73,28,-64,-15r2,-10v-13,21,-30,44,-55,46v-27,2,-43,-17,-42,-42v3,-69,63,-99,71,-166v3,-23,-15,-37,-38,-37v-48,0,-99,51,-98,98v1,20,11,34,32,34v36,0,52,-64,52,-100v22,43,0,104,-52,104v-24,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103v58,0,76,59,52,109v-16,34,-58,74,-58,117v0,13,6,19,16,19v20,0,54,-44,66,-69r80,-159r34,-2r-96,188v-6,11,-8,21,-8,29v0,19,22,12,31,2v4,-5,10,-20,16,-16r-6,31v7,-3,15,-11,21,-10v-5,10,-27,13,-25,33v-2,15,-9,34,-22,34v-20,0,-12,-28,-1,-38v11,-9,27,-18,27,-39xm249,10v-10,8,-27,19,-26,35v3,13,12,9,18,-4v4,-9,6,-20,8,-31",w:291},"\u0427":{d:"93,-236v53,0,70,50,41,86v-10,12,-29,40,-29,54v0,7,4,10,11,10v54,-14,92,-92,116,-142r34,-3r-89,175v-8,18,-12,31,-12,39v1,18,21,15,31,4v7,-5,17,-26,30,-38v-10,28,-27,51,-53,52v-53,3,-23,-70,-10,-96r19,-34v-16,21,-41,46,-70,49v-73,-16,11,-91,11,-130v0,-14,-12,-21,-30,-21v-48,0,-87,35,-87,78v0,38,46,29,60,0v9,-19,11,-35,12,-53v21,35,-5,84,-48,84v-19,0,-29,-11,-29,-32v0,-44,45,-82,92,-82",w:223},"\u00d7":{d:"93,-236v53,0,70,50,41,86v-10,12,-29,40,-29,54v0,7,4,10,11,10v54,-14,92,-92,116,-142r34,-3r-89,175v-8,18,-12,31,-12,39v1,18,21,15,31,4v7,-5,17,-26,30,-38v-10,28,-27,51,-53,52v-53,3,-23,-70,-10,-96r19,-34v-16,21,-41,46,-70,49v-73,-16,11,-91,11,-130v0,-14,-12,-21,-30,-21v-48,0,-87,35,-87,78v0,38,46,29,60,0v9,-19,11,-35,12,-53v21,35,-5,84,-48,84v-19,0,-29,-11,-29,-32v0,-44,45,-82,92,-82",w:223},"\u0428":{d:"159,-248v51,0,74,47,57,96v-13,39,-56,89,-63,130v6,33,37,16,54,-8v44,-60,71,-134,108,-201r33,-2r-95,188v-6,12,-9,22,-9,29v0,8,4,12,12,12v18,-1,68,-52,73,-68r81,-159r33,-2r-95,188v-8,17,-17,37,2,41v21,-2,33,-29,50,-48v-2,21,-34,54,-53,54v-28,0,-34,-27,-26,-52v-5,13,-51,55,-69,52v-27,2,-35,-22,-28,-46v-9,17,-36,46,-55,46v-26,0,-42,-16,-42,-42v0,-45,71,-114,71,-166v0,-21,-14,-37,-39,-37v-47,0,-98,52,-97,98v1,20,11,34,32,34v34,0,52,-65,52,-100v21,44,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103",w:397},"\u00d8":{d:"159,-248v51,0,74,47,57,96v-13,39,-56,89,-63,130v6,33,37,16,54,-8v44,-60,71,-134,108,-201r33,-2r-95,188v-6,12,-9,22,-9,29v0,8,4,12,12,12v18,-1,68,-52,73,-68r81,-159r33,-2r-95,188v-8,17,-17,37,2,41v21,-2,33,-29,50,-48v-2,21,-34,54,-53,54v-28,0,-34,-27,-26,-52v-5,13,-51,55,-69,52v-27,2,-35,-22,-28,-46v-9,17,-36,46,-55,46v-26,0,-42,-16,-42,-42v0,-45,71,-114,71,-166v0,-21,-14,-37,-39,-37v-47,0,-98,52,-97,98v1,20,11,34,32,34v34,0,52,-65,52,-100v21,44,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103",w:397},"\u0429":{d:"159,-248v74,0,73,89,37,137v-16,20,-44,71,-43,90v0,12,5,17,16,17v19,0,53,-45,65,-68r81,-159r33,-2r-95,188v-6,12,-9,22,-9,30v0,7,4,11,12,11v18,-1,68,-52,73,-68r81,-159r33,-2r-95,188v-7,17,-18,38,2,41v16,2,25,-19,34,-28v6,6,-4,23,-4,33v6,-1,18,-15,21,-8v-11,8,-25,12,-25,31v0,15,-9,34,-22,34v-20,0,-12,-28,0,-38v9,-9,27,-18,26,-39v-12,33,-73,26,-62,-20r3,-11v-5,13,-51,55,-69,52v-26,2,-37,-23,-28,-46v-9,17,-36,49,-55,46v-89,-12,-11,-128,15,-165v22,-32,20,-80,-25,-80v-47,0,-98,52,-97,98v1,20,10,34,32,34v34,0,52,-65,52,-100v21,44,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103xm374,10v-11,9,-26,17,-27,35v4,13,14,9,18,-4",w:397},"\u00d9":{d:"159,-248v74,0,73,89,37,137v-16,20,-44,71,-43,90v0,12,5,17,16,17v19,0,53,-45,65,-68r81,-159r33,-2r-95,188v-6,12,-9,22,-9,30v0,7,4,11,12,11v18,-1,68,-52,73,-68r81,-159r33,-2r-95,188v-7,17,-18,38,2,41v16,2,25,-19,34,-28v6,6,-4,23,-4,33v6,-1,18,-15,21,-8v-11,8,-25,12,-25,31v0,15,-9,34,-22,34v-20,0,-12,-28,0,-38v9,-9,27,-18,26,-39v-12,33,-73,26,-62,-20r3,-11v-5,13,-51,55,-69,52v-26,2,-37,-23,-28,-46v-9,17,-36,49,-55,46v-89,-12,-11,-128,15,-165v22,-32,20,-80,-25,-80v-47,0,-98,52,-97,98v1,20,10,34,32,34v34,0,52,-65,52,-100v21,44,0,104,-52,104v-23,0,-36,-16,-36,-38v-1,-49,51,-103,101,-103xm374,10v-11,9,-26,17,-27,35v4,13,14,9,18,-4",w:397},"\u042a":{d:"99,-253v-26,7,-52,46,-53,74v0,14,7,23,21,23v25,1,29,-27,28,-49v15,23,1,52,-27,52v-18,0,-27,-9,-27,-26v0,-42,31,-78,71,-84v23,-3,6,36,24,35v24,-2,53,-17,64,-35v3,-6,14,-3,10,4v-22,35,-35,77,-54,115v37,-22,82,6,82,51v0,52,-39,97,-87,97v-73,0,-68,-85,-38,-131v20,-30,32,-61,54,-91r12,-18v-15,9,-40,18,-57,19v-19,1,-22,-14,-19,-31v0,-3,-1,-4,-4,-5xm213,-112v0,-36,-38,-41,-60,-24v-18,36,-29,53,-31,94v0,20,5,40,22,40v36,2,69,-70,69,-110",w:240},"\u00da":{d:"99,-253v-26,7,-52,46,-53,74v0,14,7,23,21,23v25,1,29,-27,28,-49v15,23,1,52,-27,52v-18,0,-27,-9,-27,-26v0,-42,31,-78,71,-84v23,-3,6,36,24,35v24,-2,53,-17,64,-35v3,-6,14,-3,10,4v-22,35,-35,77,-54,115v37,-22,82,6,82,51v0,52,-39,97,-87,97v-73,0,-68,-85,-38,-131v20,-30,32,-61,54,-91r12,-18v-15,9,-40,18,-57,19v-19,1,-22,-14,-19,-31v0,-3,-1,-4,-4,-5xm213,-112v0,-36,-38,-41,-60,-24v-18,36,-29,53,-31,94v0,20,5,40,22,40v36,2,69,-70,69,-110",w:240},"\u042b":{d:"241,-15v5,21,23,5,36,-7v5,-5,13,-19,23,-29v-9,30,-31,52,-57,54v-29,2,-34,-29,-22,-53r88,-181r34,-3r-92,189v-7,13,-10,23,-10,30xm111,4v-90,0,-55,-115,-25,-158v-20,13,-38,36,-59,45v23,-17,49,-43,69,-66r31,-59r34,-3r-48,93v41,-19,89,0,89,51v0,52,-39,97,-91,97xm177,-112v0,-39,-43,-38,-68,-24v-11,24,-33,64,-33,91v-1,21,13,42,32,43v36,3,69,-70,69,-110",w:298},"\u00db":{d:"241,-15v5,21,23,5,36,-7v5,-5,13,-19,23,-29v-9,30,-31,52,-57,54v-29,2,-34,-29,-22,-53r88,-181r34,-3r-92,189v-7,13,-10,23,-10,30xm111,4v-90,0,-55,-115,-25,-158v-20,13,-38,36,-59,45v23,-17,49,-43,69,-66r31,-59r34,-3r-48,93v41,-19,89,0,89,51v0,52,-39,97,-91,97xm177,-112v0,-39,-43,-38,-68,-24v-11,24,-33,64,-33,91v-1,21,13,42,32,43v36,3,69,-70,69,-110",w:298},"\u042c":{d:"104,-144v41,-20,93,0,93,51v0,53,-39,97,-90,97v-70,0,-69,-78,-42,-128v3,-6,6,-16,12,-30v-16,14,-33,42,-54,44v22,-15,45,-42,64,-65r33,-67r34,-3xm172,-112v0,-39,-46,-39,-71,-24v-10,18,-29,65,-29,91v0,21,12,43,31,43v39,1,69,-61,69,-110",w:205},"\u00dc":{d:"104,-144v41,-20,93,0,93,51v0,53,-39,97,-90,97v-70,0,-69,-78,-42,-128v3,-6,6,-16,12,-30v-16,14,-33,42,-54,44v22,-15,45,-42,64,-65r33,-67r34,-3xm172,-112v0,-39,-46,-39,-71,-24v-10,18,-29,65,-29,91v0,21,12,43,31,43v39,1,69,-61,69,-110",w:205},"\u042d":{d:"180,-134v-3,7,-23,14,-35,15v-12,-9,-32,-16,-49,-9v9,-4,26,-14,36,-14v13,6,28,23,48,8xm81,4v-33,0,-54,-20,-55,-50v0,-29,15,-51,44,-52v27,-1,41,26,25,45v-5,5,-15,14,-23,12v17,-8,33,-53,-1,-53v-22,0,-40,23,-39,47v0,28,18,45,48,45v59,0,112,-95,109,-161v-2,-44,-6,-67,-41,-69v-33,-2,-61,21,-61,52v0,10,6,19,15,18v21,0,29,-25,32,-42v4,24,-13,49,-37,48v-13,0,-24,-10,-24,-23v0,-35,39,-59,76,-59v49,0,71,39,71,90v0,71,-70,152,-139,152",w:201},"\u00dd":{d:"180,-134v-3,7,-23,14,-35,15v-12,-9,-32,-16,-49,-9v9,-4,26,-14,36,-14v13,6,28,23,48,8xm81,4v-33,0,-54,-20,-55,-50v0,-29,15,-51,44,-52v27,-1,41,26,25,45v-5,5,-15,14,-23,12v17,-8,33,-53,-1,-53v-22,0,-40,23,-39,47v0,28,18,45,48,45v59,0,112,-95,109,-161v-2,-44,-6,-67,-41,-69v-33,-2,-61,21,-61,52v0,10,6,19,15,18v21,0,29,-25,32,-42v4,24,-13,49,-37,48v-13,0,-24,-10,-24,-23v0,-35,39,-59,76,-59v49,0,71,39,71,90v0,71,-70,152,-139,152",w:201},"\u042e":{d:"344,-210v41,0,18,69,11,96v-13,50,-57,118,-108,118v-67,0,-61,-83,-34,-132r-43,11v-21,56,-53,113,-120,119v-45,4,-51,-54,-14,-61v-3,7,-22,16,-19,30v9,43,61,30,81,-10v27,-52,39,-126,81,-164v-16,7,-38,20,-58,12v-15,-6,9,-30,-6,-32v-16,2,-37,27,-46,39v8,-25,34,-45,58,-48v23,-4,3,37,23,35v20,-1,58,-29,69,-41v-1,21,-18,35,-26,57r-16,45r45,-10v26,-48,69,-89,136,-92v25,-1,41,20,31,43v2,-18,-7,-42,-30,-39v-79,6,-104,87,-129,157v-12,33,-20,72,16,76v72,-11,103,-101,113,-180v-1,-14,-3,-24,-16,-25v-45,8,-86,98,-81,169v-15,-60,32,-173,82,-173",w:370},"\u00de":{d:"344,-210v41,0,18,69,11,96v-13,50,-57,118,-108,118v-67,0,-61,-83,-34,-132r-43,11v-21,56,-53,113,-120,119v-45,4,-51,-54,-14,-61v-3,7,-22,16,-19,30v9,43,61,30,81,-10v27,-52,39,-126,81,-164v-16,7,-38,20,-58,12v-15,-6,9,-30,-6,-32v-16,2,-37,27,-46,39v8,-25,34,-45,58,-48v23,-4,3,37,23,35v20,-1,58,-29,69,-41v-1,21,-18,35,-26,57r-16,45r45,-10v26,-48,69,-89,136,-92v25,-1,41,20,31,43v2,-18,-7,-42,-30,-39v-79,6,-104,87,-129,157v-12,33,-20,72,16,76v72,-11,103,-101,113,-180v-1,-14,-3,-24,-16,-25v-45,8,-86,98,-81,169v-15,-60,32,-173,82,-173",w:370},"\u042f":{d:"104,-168v0,-57,86,-80,122,-43r7,-15r32,-3r-79,184v-4,10,-6,18,-6,26v0,7,1,13,10,13v20,0,38,-34,51,-47r2,2v-21,33,-29,51,-66,53v-28,2,-31,-27,-21,-51r34,-79v-41,25,-86,132,-166,132v-37,0,-41,-51,-9,-57v-21,11,-23,53,9,50v56,-6,73,-90,120,-111v4,-2,15,-6,31,-12v-35,8,-71,-9,-71,-42xm132,-162v0,30,35,36,62,25r29,-68v-31,-32,-91,-1,-91,43",w:237},"\u00df":{d:"104,-168v0,-57,86,-80,122,-43r7,-15r32,-3r-79,184v-4,10,-6,18,-6,26v0,7,1,13,10,13v20,0,38,-34,51,-47r2,2v-21,33,-29,51,-66,53v-28,2,-31,-27,-21,-51r34,-79v-41,25,-86,132,-166,132v-37,0,-41,-51,-9,-57v-21,11,-23,53,9,50v56,-6,73,-90,120,-111v4,-2,15,-6,31,-12v-35,8,-71,-9,-71,-42xm132,-162v0,30,35,36,62,25r29,-68v-31,-32,-91,-1,-91,43",w:237},"\u0430":{d:"-4,-29v-2,-41,39,-78,79,-77v14,0,20,4,20,13v2,-14,20,-11,34,-13v-15,35,-35,65,-48,102v21,9,38,-29,54,-46v3,1,1,4,0,6v-23,30,-24,43,-52,48v-19,3,-24,-16,-19,-32v-15,28,-66,47,-68,-1xm78,-103v-20,-6,-63,74,-61,94v4,13,17,6,27,-3v16,-14,40,-48,47,-77v0,-9,-4,-14,-13,-14",w:133},"\u00e0":{d:"-4,-29v-2,-41,39,-78,79,-77v14,0,20,4,20,13v2,-14,20,-11,34,-13v-15,35,-35,65,-48,102v21,9,38,-29,54,-46v3,1,1,4,0,6v-23,30,-24,43,-52,48v-19,3,-24,-16,-19,-32v-15,28,-66,47,-68,-1xm78,-103v-20,-6,-63,74,-61,94v4,13,17,6,27,-3v16,-14,40,-48,47,-77v0,-9,-4,-14,-13,-14",w:133},"\u0431":{d:"260,-237v-10,21,-38,16,-58,8v-22,7,-20,26,-34,49v-33,52,-52,125,-94,165v-23,20,-78,29,-78,-15v0,-39,39,-76,80,-76v11,0,17,6,19,14r65,-125v11,-37,69,-8,100,-20xm80,-102v-35,5,-52,62,-63,94v0,4,2,6,6,6v34,-7,56,-53,68,-87v0,-7,-3,-13,-11,-13",w:133},"\u00e1":{d:"260,-237v-10,21,-38,16,-58,8v-22,7,-20,26,-34,49v-33,52,-52,125,-94,165v-23,20,-78,29,-78,-15v0,-39,39,-76,80,-76v11,0,17,6,19,14r65,-125v11,-37,69,-8,100,-20xm80,-102v-35,5,-52,62,-63,94v0,4,2,6,6,6v34,-7,56,-53,68,-87v0,-7,-3,-13,-11,-13",w:133},"\u0432":{d:"97,-198v12,-19,52,-21,52,7v0,27,-45,54,-67,70v-14,34,-47,66,-47,106v0,9,4,13,12,13v13,0,28,-11,44,-32v-22,-10,-25,-68,7,-68v38,0,12,53,-2,66v17,4,19,-12,29,-13v-5,13,-13,18,-31,17v-10,28,-80,57,-80,5v0,-30,19,-44,28,-68v-15,14,-26,41,-44,49v7,-14,38,-51,50,-61xm143,-190v0,-15,-14,-17,-22,-7v-8,9,-27,51,-36,68v18,-14,57,-38,58,-61xm93,-37v6,-11,30,-44,4,-46v-23,0,-19,38,-4,46",w:122},"\u00e2":{d:"97,-198v12,-19,52,-21,52,7v0,27,-45,54,-67,70v-14,34,-47,66,-47,106v0,9,4,13,12,13v13,0,28,-11,44,-32v-22,-10,-25,-68,7,-68v38,0,12,53,-2,66v17,4,19,-12,29,-13v-5,13,-13,18,-31,17v-10,28,-80,57,-80,5v0,-30,19,-44,28,-68v-15,14,-26,41,-44,49v7,-14,38,-51,50,-61xm143,-190v0,-15,-14,-17,-22,-7v-8,9,-27,51,-36,68v18,-14,57,-38,58,-61xm93,-37v6,-11,30,-44,4,-46v-23,0,-19,38,-4,46",w:122},"\u0433":{d:"60,-74v16,-5,14,-24,-4,-22v-18,-2,-28,13,-40,14v10,-23,72,-35,75,3v3,43,-66,32,-69,64v8,26,35,10,51,-8v8,-8,14,-25,24,-27v-10,24,-35,50,-62,52v-30,2,-38,-34,-20,-52v9,-9,29,-19,45,-24",w:93},"\u00e3":{d:"60,-74v16,-5,14,-24,-4,-22v-18,-2,-28,13,-40,14v10,-23,72,-35,75,3v3,43,-66,32,-69,64v8,26,35,10,51,-8v8,-8,14,-25,24,-27v-10,24,-35,50,-62,52v-30,2,-38,-34,-20,-52v9,-9,29,-19,45,-24",w:93},"\u0434":{d:"14,98v-21,15,-66,20,-63,-13v4,-45,42,-57,90,-73r17,-33v-7,11,-21,23,-37,23v-15,0,-25,-15,-25,-32v0,-38,39,-79,80,-77v11,0,17,4,19,14v2,-14,21,-11,35,-13r-56,110v27,-5,44,-35,61,-55v4,0,3,4,1,6v-25,33,-27,43,-64,54v-18,30,-30,69,-58,89xm92,-87v0,-9,-5,-15,-14,-15v-19,-7,-63,76,-60,92v3,13,16,4,26,-4v21,-16,35,-48,48,-73xm-37,89v-1,23,25,18,35,4v12,-16,29,-54,41,-75v-34,7,-75,36,-76,71",w:133},"\u00e4":{d:"14,98v-21,15,-66,20,-63,-13v4,-45,42,-57,90,-73r17,-33v-7,11,-21,23,-37,23v-15,0,-25,-15,-25,-32v0,-38,39,-79,80,-77v11,0,17,4,19,14v2,-14,21,-11,35,-13r-56,110v27,-5,44,-35,61,-55v4,0,3,4,1,6v-25,33,-27,43,-64,54v-18,30,-30,69,-58,89xm92,-87v0,-9,-5,-15,-14,-15v-19,-7,-63,76,-60,92v3,13,16,4,26,-4v21,-16,35,-48,48,-73xm-37,89v-1,23,25,18,35,4v12,-16,29,-54,41,-75v-34,7,-75,36,-76,71",w:133},"\u0435":{d:"-1,-38v0,-36,41,-70,80,-68v13,0,20,4,20,13v-5,24,-32,45,-64,44v-7,13,-17,48,7,48v30,0,41,-27,60,-49v0,16,-21,30,-24,37v-25,29,-79,17,-79,-25xm37,-53v28,-1,52,-17,57,-41v-20,-23,-47,23,-57,41",w:101},"\u00e5":{d:"-1,-38v0,-36,41,-70,80,-68v13,0,20,4,20,13v-5,24,-32,45,-64,44v-7,13,-17,48,7,48v30,0,41,-27,60,-49v0,16,-21,30,-24,37v-25,29,-79,17,-79,-25xm37,-53v28,-1,52,-17,57,-41v-20,-23,-47,23,-57,41",w:101},"\u0436":{d:"237,-86v-9,1,-14,-10,-9,-17v-30,9,-27,56,-38,88v0,8,5,12,13,12v27,-1,43,-26,58,-46r3,2v-16,25,-32,49,-62,49v-53,0,-18,-71,-5,-94v-28,19,-63,52,-71,92r-30,0r33,-87v-32,23,-51,55,-81,82v-15,9,-53,11,-53,-14v0,-12,6,-19,16,-19v8,0,14,5,14,14v0,14,-18,20,-25,9v34,33,72,-29,72,-72v0,-10,-4,-15,-13,-15v-16,0,-24,17,-30,28v-10,-13,19,-38,36,-36v37,3,19,51,6,73v15,-20,39,-42,61,-58v0,-12,15,-9,26,-9r-22,66v23,-31,51,-67,99,-70v8,0,11,4,13,11v0,5,-5,11,-11,11",w:261},"\u00e6":{d:"237,-86v-9,1,-14,-10,-9,-17v-30,9,-27,56,-38,88v0,8,5,12,13,12v27,-1,43,-26,58,-46r3,2v-16,25,-32,49,-62,49v-53,0,-18,-71,-5,-94v-28,19,-63,52,-71,92r-30,0r33,-87v-32,23,-51,55,-81,82v-15,9,-53,11,-53,-14v0,-12,6,-19,16,-19v8,0,14,5,14,14v0,14,-18,20,-25,9v34,33,72,-29,72,-72v0,-10,-4,-15,-13,-15v-16,0,-24,17,-30,28v-10,-13,19,-38,36,-36v37,3,19,51,6,73v15,-20,39,-42,61,-58v0,-12,15,-9,26,-9r-22,66v23,-31,51,-67,99,-70v8,0,11,4,13,11v0,5,-5,11,-11,11",w:261},"\u0437":{d:"-6,-2v15,-27,92,-58,51,-91v-24,6,-29,34,-45,48v7,-25,30,-62,60,-62v34,0,28,57,1,63v-4,3,-33,11,-37,18v26,-3,58,-7,61,19v19,-7,21,-29,42,-44v-10,22,-24,38,-41,48v-5,54,-32,113,-85,113v-46,0,-36,-51,-6,-72v16,-11,37,-24,66,-36v6,-23,-17,-30,-40,-24v-6,7,-19,33,-27,20xm-25,83v-3,22,27,28,40,12v15,-18,37,-58,45,-88v-44,22,-80,34,-85,76",w:123},"\u00e7":{d:"-6,-2v15,-27,92,-58,51,-91v-24,6,-29,34,-45,48v7,-25,30,-62,60,-62v34,0,28,57,1,63v-4,3,-33,11,-37,18v26,-3,58,-7,61,19v19,-7,21,-29,42,-44v-10,22,-24,38,-41,48v-5,54,-32,113,-85,113v-46,0,-36,-51,-6,-72v16,-11,37,-24,66,-36v6,-23,-17,-30,-40,-24v-6,7,-19,33,-27,20xm-25,83v-3,22,27,28,40,12v15,-18,37,-58,45,-88v-44,22,-80,34,-85,76",w:123},"\u0438":{d:"106,2v-40,4,-26,-44,-14,-63v-14,23,-30,60,-56,63v-30,4,-24,-39,-15,-60r19,-45r34,-2v-14,31,-33,59,-43,94v3,14,16,8,24,-2v20,-23,41,-59,54,-90r35,-2v-14,30,-35,61,-44,94v0,6,2,9,7,9v17,3,36,-41,53,-50v-14,26,-31,51,-54,54",w:154},"\u00e8":{d:"106,2v-40,4,-26,-44,-14,-63v-14,23,-30,60,-56,63v-30,4,-24,-39,-15,-60r19,-45r34,-2v-14,31,-33,59,-43,94v3,14,16,8,24,-2v20,-23,41,-59,54,-90r35,-2v-14,30,-35,61,-44,94v0,6,2,9,7,9v17,3,36,-41,53,-50v-14,26,-31,51,-54,54",w:154},"\u0439":{d:"148,-165v-10,32,-81,34,-88,-1v0,-7,4,-10,11,-10v12,-1,12,14,5,21v14,12,36,11,53,1v-7,-7,-1,-23,9,-22v4,1,11,5,10,11xm106,2v-40,4,-26,-44,-14,-63v-14,23,-30,60,-56,63v-30,4,-24,-39,-15,-60r19,-45r34,-2v-14,31,-33,59,-43,94v3,14,16,8,24,-2v20,-23,41,-59,54,-90r35,-2v-14,30,-35,61,-44,94v0,6,2,9,7,9v17,3,36,-41,53,-50v-14,26,-31,51,-54,54",w:154},"\u00e9":{d:"148,-165v-10,32,-81,34,-88,-1v0,-7,4,-10,11,-10v12,-1,12,14,5,21v14,12,36,11,53,1v-7,-7,-1,-23,9,-22v4,1,11,5,10,11xm106,2v-40,4,-26,-44,-14,-63v-14,23,-30,60,-56,63v-30,4,-24,-39,-15,-60r19,-45r34,-2v-14,31,-33,59,-43,94v3,14,16,8,24,-2v20,-23,41,-59,54,-90r35,-2v-14,30,-35,61,-44,94v0,6,2,9,7,9v17,3,36,-41,53,-50v-14,26,-31,51,-54,54",w:154},"\u043a":{d:"21,0r-27,0r49,-96r-43,53v3,-24,35,-46,49,-66r29,-3xm126,-109v8,0,10,4,12,11v1,10,-12,14,-19,8v-2,-2,-4,-10,-2,-14v-9,2,-10,34,-26,32v23,11,3,41,0,57v6,13,16,2,26,-11v4,-6,21,-33,19,-19v-17,23,-26,42,-51,47v-37,-4,-7,-55,4,-67v2,-12,-26,2,-27,-9v1,-10,21,-5,26,0v20,0,14,-36,38,-35",w:133},"\u00ea":{d:"21,0r-27,0r49,-96r-43,53v3,-24,35,-46,49,-66r29,-3xm126,-109v8,0,10,4,12,11v1,10,-12,14,-19,8v-2,-2,-4,-10,-2,-14v-9,2,-10,34,-26,32v23,11,3,41,0,57v6,13,16,2,26,-11v4,-6,21,-33,19,-19v-17,23,-26,42,-51,47v-37,-4,-7,-55,4,-67v2,-12,-26,2,-27,-9v1,-10,21,-5,26,0v20,0,14,-36,38,-35",w:133},"\u043b":{d:"4,-29v15,-1,18,23,6,27v41,-11,67,-66,89,-103r31,-2v-6,26,-33,72,-25,95v5,1,20,-15,34,-38r3,2v-15,24,-25,44,-49,48v-35,-9,-3,-71,5,-93v-16,26,-48,90,-88,95v-23,3,-28,-29,-6,-31",w:138},"\u00eb":{d:"4,-29v15,-1,18,23,6,27v41,-11,67,-66,89,-103r31,-2v-6,26,-33,72,-25,95v5,1,20,-15,34,-38r3,2v-15,24,-25,44,-49,48v-35,-9,-3,-71,5,-93v-16,26,-48,90,-88,95v-23,3,-28,-29,-6,-31",w:138},"\u043c":{d:"9,-28v13,-1,19,23,6,27v49,-7,60,-95,107,-108v2,39,-18,63,-24,99v0,3,2,5,5,6v23,-30,33,-93,72,-105v1,34,-15,59,-18,92v5,24,18,14,34,-5r21,-27v5,10,-14,24,-20,34v-18,30,-55,18,-55,-17v0,-23,8,-38,15,-55v-17,18,-44,96,-50,88v-40,-9,-13,-78,3,-94v-30,28,-43,88,-90,95v-27,3,-26,-29,-6,-30",w:211},"\u00ec":{d:"9,-28v13,-1,19,23,6,27v49,-7,60,-95,107,-108v2,39,-18,63,-24,99v0,3,2,5,5,6v23,-30,33,-93,72,-105v1,34,-15,59,-18,92v5,24,18,14,34,-5r21,-27v5,10,-14,24,-20,34v-18,30,-55,18,-55,-17v0,-23,8,-38,15,-55v-17,18,-44,96,-50,88v-40,-9,-13,-78,3,-94v-30,28,-43,88,-90,95v-27,3,-26,-29,-6,-30",w:211},"\u043d":{d:"104,2v-29,2,-31,-35,-18,-52r-20,0r-26,50r-29,0v15,-32,34,-60,47,-94v0,-5,-3,-8,-8,-8v-12,-3,-37,50,-52,56v15,-24,26,-57,58,-61v25,-3,25,37,12,50r21,0r26,-46r28,-2v-15,32,-35,58,-46,94v0,6,2,8,8,10v21,-2,32,-30,51,-49v-3,21,-33,51,-52,52",w:154},"\u00ed":{d:"104,2v-29,2,-31,-35,-18,-52r-20,0r-26,50r-29,0v15,-32,34,-60,47,-94v0,-5,-3,-8,-8,-8v-12,-3,-37,50,-52,56v15,-24,26,-57,58,-61v25,-3,25,37,12,50r21,0r26,-46r28,-2v-15,32,-35,58,-46,94v0,6,2,8,8,10v21,-2,32,-30,51,-49v-3,21,-33,51,-52,52",w:154},"\u043e":{d:"69,-106v44,1,23,63,7,80v16,-1,24,-10,32,-24v1,0,2,1,3,2v-6,17,-19,27,-39,27v-15,36,-74,29,-74,-16v0,-35,38,-69,71,-69xm87,-82v0,-12,-3,-20,-14,-20v-20,-1,-52,63,-50,85v1,9,1,16,12,16v27,2,53,-52,52,-81",w:108},"\u00ee":{d:"69,-106v44,1,23,63,7,80v16,-1,24,-10,32,-24v1,0,2,1,3,2v-6,17,-19,27,-39,27v-15,36,-74,29,-74,-16v0,-35,38,-69,71,-69xm87,-82v0,-12,-3,-20,-14,-20v-20,-1,-52,63,-50,85v1,9,1,16,12,16v27,2,53,-52,52,-81",w:108},"\u043f":{d:"129,-6v-16,13,-50,13,-48,-16v2,-29,25,-51,34,-74v-12,-14,-40,22,-47,34r-32,62r-28,0v16,-33,37,-62,50,-98v-17,-11,-44,40,-59,56v-3,-14,15,-23,20,-35v21,-27,35,-40,55,-22v3,4,4,14,2,20v10,-12,21,-26,37,-27v11,0,18,10,18,22v0,30,-28,46,-32,72v20,25,44,-21,60,-38v-3,18,-25,38,-30,44",w:158},"\u00ef":{d:"129,-6v-16,13,-50,13,-48,-16v2,-29,25,-51,34,-74v-12,-14,-40,22,-47,34r-32,62r-28,0v16,-33,37,-62,50,-98v-17,-11,-44,40,-59,56v-3,-14,15,-23,20,-35v21,-27,35,-40,55,-22v3,4,4,14,2,20v10,-12,21,-26,37,-27v11,0,18,10,18,22v0,30,-28,46,-32,72v20,25,44,-21,60,-38v-3,18,-25,38,-30,44",w:158},"\u0440":{d:"62,-16v3,-30,48,-40,46,-74v-1,-20,-19,-12,-30,-1v-8,7,-14,15,-20,26r-89,172r-27,0r120,-233r-63,84v-4,0,-2,-4,-1,-6v29,-42,65,-77,88,-125r29,-5r-44,87v15,-23,57,-18,57,15v0,32,-45,44,-47,66v0,5,4,8,10,8v18,-1,40,-34,51,-49v2,15,-23,34,-23,37v-14,20,-53,24,-57,-2",w:140},"\u00f0":{d:"62,-16v3,-30,48,-40,46,-74v-1,-20,-19,-12,-30,-1v-8,7,-14,15,-20,26r-89,172r-27,0r120,-233r-63,84v-4,0,-2,-4,-1,-6v29,-42,65,-77,88,-125r29,-5r-44,87v15,-23,57,-18,57,15v0,32,-45,44,-47,66v0,5,4,8,10,8v18,-1,40,-34,51,-49v2,15,-23,34,-23,37v-14,20,-53,24,-57,-2",w:140},"\u0441":{d:"0,-33v0,-36,38,-75,77,-73v27,-4,32,26,11,29v-6,0,-11,-5,-11,-11v0,-7,4,-12,13,-11v-28,-17,-66,59,-65,82v0,10,5,15,14,15v29,-1,49,-26,64,-47v-8,30,-34,49,-66,51v-21,1,-38,-14,-37,-35",w:102},"\u00f1":{d:"0,-33v0,-36,38,-75,77,-73v27,-4,32,26,11,29v-6,0,-11,-5,-11,-11v0,-7,4,-12,13,-11v-28,-17,-66,59,-65,82v0,10,5,15,14,15v29,-1,49,-26,64,-47v-8,30,-34,49,-66,51v-21,1,-38,-14,-37,-35",w:102},"\u0442":{d:"77,-80v10,-25,51,-41,57,-5r0,6v9,-20,55,-44,55,-6v0,30,-27,46,-31,73v8,18,22,4,36,-12v7,-7,15,-27,23,-25v-10,21,-33,53,-54,51v-59,-6,3,-74,9,-99v-14,-14,-38,26,-49,39r-29,58r-27,0v15,-33,34,-61,46,-96v-16,-15,-30,20,-45,34r-31,62r-28,0r49,-97v-19,-13,-43,39,-59,53v1,-16,23,-31,31,-46v11,-11,20,-17,28,-17v13,0,21,12,19,27",w:214},"\u00f2":{d:"77,-80v10,-25,51,-41,57,-5r0,6v9,-20,55,-44,55,-6v0,30,-27,46,-31,73v8,18,22,4,36,-12v7,-7,15,-27,23,-25v-10,21,-33,53,-54,51v-59,-6,3,-74,9,-99v-14,-14,-38,26,-49,39r-29,58r-27,0v15,-33,34,-61,46,-96v-16,-15,-30,20,-45,34r-31,62r-28,0r49,-97v-19,-13,-43,39,-59,53v1,-16,23,-31,31,-46v11,-11,20,-17,28,-17v13,0,21,12,19,27",w:214},"\u0443":{d:"32,-93v11,-16,43,-12,43,12v0,20,-24,50,-28,73v10,17,21,-4,42,-24v19,-19,31,-45,43,-71r29,-3r-56,110v29,-11,41,-31,62,-54v-11,32,-35,45,-64,60v-24,42,-36,100,-99,100v-45,0,-34,-54,4,-72v18,-9,39,-19,64,-25r27,-51v-15,19,-28,39,-51,41v-54,-7,-5,-75,5,-98v-14,-13,-40,40,-56,54v2,-18,24,-36,35,-52xm-13,85v-2,21,24,25,37,12v16,-17,33,-55,47,-79v-40,12,-80,29,-84,67",w:165},"\u00f3":{d:"32,-93v11,-16,43,-12,43,12v0,20,-24,50,-28,73v10,17,21,-4,42,-24v19,-19,31,-45,43,-71r29,-3r-56,110v29,-11,41,-31,62,-54v-11,32,-35,45,-64,60v-24,42,-36,100,-99,100v-45,0,-34,-54,4,-72v18,-9,39,-19,64,-25r27,-51v-15,19,-28,39,-51,41v-54,-7,-5,-75,5,-98v-14,-13,-40,40,-56,54v2,-18,24,-36,35,-52xm-13,85v-2,21,24,25,37,12v16,-17,33,-55,47,-79v-40,12,-80,29,-84,67",w:165},"\u0444":{d:"5,-35v0,-55,70,-103,107,-58r48,-94r27,0r-48,94v23,-20,73,-25,71,16v-2,39,-19,77,-62,78v-22,0,-38,-9,-44,-25r-61,122r-27,0r57,-113v-17,25,-68,18,-68,-20xm108,-84v-2,-9,-14,-18,-25,-18v-38,0,-47,49,-53,80v-3,19,21,19,31,10v21,-11,34,-49,47,-72xm136,-9v34,-2,65,-75,30,-88v-36,2,-44,41,-58,66v5,14,14,22,28,22",w:214},"\u00f4":{d:"5,-35v0,-55,70,-103,107,-58r48,-94r27,0r-48,94v23,-20,73,-25,71,16v-2,39,-19,77,-62,78v-22,0,-38,-9,-44,-25r-61,122r-27,0r57,-113v-17,25,-68,18,-68,-20xm108,-84v-2,-9,-14,-18,-25,-18v-38,0,-47,49,-53,80v-3,19,21,19,31,10v21,-11,34,-49,47,-72xm136,-9v34,-2,65,-75,30,-88v-36,2,-44,41,-58,66v5,14,14,22,28,22",w:214},"\u0445":{d:"13,-5v22,9,31,-13,43,-34v-2,-20,1,-36,4,-53v-4,-14,-17,-7,-25,3r-35,46v-3,-15,18,-29,26,-42v16,-28,53,-26,58,8v8,-10,18,-27,33,-27v17,-4,27,23,9,25v-6,0,-9,-3,-9,-9v-2,-7,12,-7,5,-11v-32,0,-40,34,-34,70v1,15,-2,24,11,25v20,-3,28,-32,48,-46v-13,25,-28,51,-51,51v-24,0,-34,-10,-38,-32v-8,17,-19,30,-37,33v-19,3,-30,-26,-11,-26v7,0,11,3,11,10v0,6,-3,9,-8,9",w:143},"\u00f5":{d:"13,-5v22,9,31,-13,43,-34v-2,-20,1,-36,4,-53v-4,-14,-17,-7,-25,3r-35,46v-3,-15,18,-29,26,-42v16,-28,53,-26,58,8v8,-10,18,-27,33,-27v17,-4,27,23,9,25v-6,0,-9,-3,-9,-9v-2,-7,12,-7,5,-11v-32,0,-40,34,-34,70v1,15,-2,24,11,25v20,-3,28,-32,48,-46v-13,25,-28,51,-51,51v-24,0,-34,-10,-38,-32v-8,17,-19,30,-37,33v-19,3,-30,-26,-11,-26v7,0,11,3,11,10v0,6,-3,9,-8,9",w:143},"\u0446":{d:"138,-15v-16,31,-75,15,-54,-25v2,-6,4,-13,8,-21v-17,25,-38,79,-75,56v-17,-31,10,-61,18,-84v-10,14,-24,28,-35,46v1,-21,27,-41,38,-60r36,-2v-14,32,-34,56,-42,94v2,15,14,6,22,-2v21,-23,40,-59,54,-90r36,-2v-14,32,-34,59,-44,95v8,20,32,0,39,-14v7,5,-1,18,-2,26v6,-2,12,-8,17,-8v-4,9,-23,10,-20,27v-2,10,-8,28,-18,27v-22,-10,3,-39,16,-43xm132,10v-10,5,-30,23,-16,34v10,-2,13,-23,16,-34",w:154},"\u00f6":{d:"138,-15v-16,31,-75,15,-54,-25v2,-6,4,-13,8,-21v-17,25,-38,79,-75,56v-17,-31,10,-61,18,-84v-10,14,-24,28,-35,46v1,-21,27,-41,38,-60r36,-2v-14,32,-34,56,-42,94v2,15,14,6,22,-2v21,-23,40,-59,54,-90r36,-2v-14,32,-34,59,-44,95v8,20,32,0,39,-14v7,5,-1,18,-2,26v6,-2,12,-8,17,-8v-4,9,-23,10,-20,27v-2,10,-8,28,-18,27v-22,-10,3,-39,16,-43xm132,10v-10,5,-30,23,-16,34v10,-2,13,-23,16,-34",w:154},"\u0447":{d:"96,-11v-12,17,-48,18,-47,-8v1,-28,16,-48,34,-66v-21,17,-42,27,-53,1r-31,42v-2,-21,31,-31,27,-56v-2,-11,17,-21,18,-7v-1,5,-4,8,-7,11v13,42,51,-5,73,-15v16,28,-39,67,-42,103v18,16,41,-33,56,-47v-3,17,-19,30,-28,42",w:120},"\u00f7":{d:"96,-11v-12,17,-48,18,-47,-8v1,-28,16,-48,34,-66v-21,17,-42,27,-53,1r-31,42v-2,-21,31,-31,27,-56v-2,-11,17,-21,18,-7v-1,5,-4,8,-7,11v13,42,51,-5,73,-15v16,28,-39,67,-42,103v18,16,41,-33,56,-47v-3,17,-19,30,-28,42",w:120},"\u0448":{d:"179,-3v18,0,33,-29,48,-47v-5,24,-31,50,-49,52v-40,5,-26,-43,-15,-63v-15,23,-30,60,-56,63v-35,4,-28,-42,-15,-63v-15,23,-30,58,-58,63v-46,-5,-11,-73,3,-91r-37,46v2,-21,28,-41,39,-60r35,-2v-14,32,-34,56,-42,94v2,15,14,7,22,-2v21,-24,42,-57,55,-90r35,-2v-13,31,-35,58,-43,94v5,17,18,7,29,-7v19,-26,37,-53,50,-85r35,-2v-14,32,-35,57,-44,94v0,5,2,8,8,8",w:226},"\u00f8":{d:"179,-3v18,0,33,-29,48,-47v-5,24,-31,50,-49,52v-40,5,-26,-43,-15,-63v-15,23,-30,60,-56,63v-35,4,-28,-42,-15,-63v-15,23,-30,58,-58,63v-46,-5,-11,-73,3,-91r-37,46v2,-21,28,-41,39,-60r35,-2v-14,32,-34,56,-42,94v2,15,14,7,22,-2v21,-24,42,-57,55,-90r35,-2v-13,31,-35,58,-43,94v5,17,18,7,29,-7v19,-26,37,-53,50,-85r35,-2v-14,32,-35,57,-44,94v0,5,2,8,8,8",w:226},"\u0449":{d:"206,-12v-11,21,-55,20,-55,-11v0,-11,7,-28,12,-38v-15,23,-29,60,-56,63v-37,4,-26,-43,-15,-63v-15,24,-30,57,-58,63v-46,-8,-9,-69,2,-91r-36,46v2,-21,28,-40,39,-60r35,-2v-14,32,-34,56,-42,94v2,15,14,6,22,-2v21,-24,41,-58,55,-90r35,-2v-13,31,-35,58,-43,94v5,17,18,7,29,-7v19,-26,36,-53,49,-85r36,-2v-15,32,-34,59,-45,95v10,20,35,-3,41,-14v2,8,-3,18,-4,26v6,-2,13,-8,18,-7v-4,6,-13,8,-19,12v-3,15,-6,42,-21,41v-22,-10,2,-37,17,-43xm201,10v-14,10,-29,23,-15,35v10,-3,12,-20,15,-35",w:221},"\u00f9":{d:"206,-12v-11,21,-55,20,-55,-11v0,-11,7,-28,12,-38v-15,23,-29,60,-56,63v-37,4,-26,-43,-15,-63v-15,24,-30,57,-58,63v-46,-8,-9,-69,2,-91r-36,46v2,-21,28,-40,39,-60r35,-2v-14,32,-34,56,-42,94v2,15,14,6,22,-2v21,-24,41,-58,55,-90r35,-2v-13,31,-35,58,-43,94v5,17,18,7,29,-7v19,-26,36,-53,49,-85r36,-2v-15,32,-34,59,-45,95v10,20,35,-3,41,-14v2,8,-3,18,-4,26v6,-2,13,-8,18,-7v-4,6,-13,8,-19,12v-3,15,-6,42,-21,41v-22,-10,2,-37,17,-43xm201,10v-14,10,-29,23,-15,35v10,-3,12,-20,15,-35",w:221},"\u044a":{d:"30,-93v-9,-12,11,-34,16,-16v0,2,-1,5,-4,9v8,14,50,14,53,-5r27,-2r-18,36v18,-20,65,-11,61,22v7,53,-98,77,-98,17v0,-21,6,-31,16,-50v-18,3,-39,6,-50,-7r-34,47v0,-19,23,-34,31,-51xm145,-55v0,-30,-36,-23,-46,-6v-10,17,-18,58,8,60v21,1,38,-32,38,-54",w:172},"\u00fa":{d:"30,-93v-9,-12,11,-34,16,-16v0,2,-1,5,-4,9v8,14,50,14,53,-5r27,-2r-18,36v18,-20,65,-11,61,22v7,53,-98,77,-98,17v0,-21,6,-31,16,-50v-18,3,-39,6,-50,-7r-34,47v0,-19,23,-34,31,-51xm145,-55v0,-30,-36,-23,-46,-6v-10,17,-18,58,8,60v21,1,38,-32,38,-54",w:172},"\u044b":{d:"154,3v-29,0,-21,-26,-13,-50v5,-14,14,-32,25,-54v-25,23,-36,70,-75,73v-10,28,-77,50,-77,1v0,-31,22,-51,31,-77r-45,60v-2,-1,-2,-3,-1,-5v17,-24,30,-43,41,-55r36,-4v-13,28,-39,62,-42,95v-2,18,23,13,32,5v9,-5,16,-13,22,-22v-10,-5,-22,-21,-22,-35v0,-14,15,-12,22,-1v8,8,9,21,6,34v34,-4,45,-52,69,-72r35,-4v-15,33,-35,63,-45,100v0,4,2,6,4,6v18,-2,34,-31,48,-48v-9,28,-28,53,-51,53",w:204},"\u00fb":{d:"154,3v-29,0,-21,-26,-13,-50v5,-14,14,-32,25,-54v-25,23,-36,70,-75,73v-10,28,-77,50,-77,1v0,-31,22,-51,31,-77r-45,60v-2,-1,-2,-3,-1,-5v17,-24,30,-43,41,-55r36,-4v-13,28,-39,62,-42,95v-2,18,23,13,32,5v9,-5,16,-13,22,-22v-10,-5,-22,-21,-22,-35v0,-14,15,-12,22,-1v8,8,9,21,6,34v34,-4,45,-52,69,-72r35,-4v-15,33,-35,63,-45,100v0,4,2,6,4,6v18,-2,34,-31,48,-48v-9,28,-28,53,-51,53",w:204},"\u044c":{d:"48,4v-68,0,-40,-76,-17,-109r29,-2r-20,36v19,-19,62,-13,62,22v0,27,-26,53,-54,53xm82,-58v0,-27,-38,-19,-46,-3v-10,16,-19,58,8,60v21,2,38,-36,38,-57",w:117},"\u00fc":{d:"48,4v-68,0,-40,-76,-17,-109r29,-2r-20,36v19,-19,62,-13,62,22v0,27,-26,53,-54,53xm82,-58v0,-27,-38,-19,-46,-3v-10,16,-19,58,8,60v21,2,38,-36,38,-57",w:117},"\u044d":{d:"87,-82v0,-19,-18,-24,-33,-17v9,4,10,21,-4,21v-7,0,-10,-4,-10,-11v1,-16,15,-17,32,-18v21,0,43,18,42,40v-1,39,-38,72,-82,70v-34,7,-48,-41,-14,-45v5,0,12,2,7,7v-10,-5,-22,1,-21,12v1,16,10,21,27,21v31,2,56,-48,56,-80xm69,-49v-25,11,-28,-23,-52,-8v6,-5,15,-12,25,-12v13,5,22,23,40,11v-3,5,-9,6,-13,9",w:118},"\u00fd":{d:"87,-82v0,-19,-18,-24,-33,-17v9,4,10,21,-4,21v-7,0,-10,-4,-10,-11v1,-16,15,-17,32,-18v21,0,43,18,42,40v-1,39,-38,72,-82,70v-34,7,-48,-41,-14,-45v5,0,12,2,7,7v-10,-5,-22,1,-21,12v1,16,10,21,27,21v31,2,56,-48,56,-80xm69,-49v-25,11,-28,-23,-52,-8v6,-5,15,-12,25,-12v13,5,22,23,40,11v-3,5,-9,6,-13,9",w:118},"\u044e":{d:"161,-26v16,-3,21,-13,31,-26v2,16,-15,29,-34,31v-19,42,-90,22,-73,-29r-19,0r-25,50r-30,0v15,-32,35,-60,47,-95v-2,-12,-13,-8,-20,1v-12,7,-26,42,-40,48v16,-25,27,-61,59,-61v26,0,22,36,11,51r19,0v6,-23,39,-50,68,-50v43,0,22,66,6,80xm159,-102v-28,8,-67,75,-39,101v34,-3,53,-43,53,-81v0,-12,-3,-20,-14,-20",w:190},"\u00fe":{d:"161,-26v16,-3,21,-13,31,-26v2,16,-15,29,-34,31v-19,42,-90,22,-73,-29r-19,0r-25,50r-30,0v15,-32,35,-60,47,-95v-2,-12,-13,-8,-20,1v-12,7,-26,42,-40,48v16,-25,27,-61,59,-61v26,0,22,36,11,51r19,0v6,-23,39,-50,68,-50v43,0,22,66,6,80xm159,-102v-28,8,-67,75,-39,101v34,-3,53,-43,53,-81v0,-12,-3,-20,-14,-20",w:190},"\u044f":{d:"2,-28v16,-2,17,24,8,27v35,-5,32,-53,67,-59v-13,0,-29,-10,-29,-22v0,-30,46,-42,63,-20v2,-11,20,-5,31,-6v-15,33,-34,63,-47,99v0,3,1,4,4,5v14,-3,30,-34,43,-46v1,0,1,1,2,2v-11,19,-31,49,-50,50v-21,1,-26,-18,-16,-37r30,-62v-11,-21,-40,-1,-39,18v0,11,11,21,18,13v5,1,2,7,-1,8v-13,5,-31,68,-71,60v-28,6,-36,-27,-13,-30",w:140},"\u00ff":{d:"2,-28v16,-2,17,24,8,27v35,-5,32,-53,67,-59v-13,0,-29,-10,-29,-22v0,-30,46,-42,63,-20v2,-11,20,-5,31,-6v-15,33,-34,63,-47,99v0,3,1,4,4,5v14,-3,30,-34,43,-46v1,0,1,1,2,2v-11,19,-31,49,-50,50v-21,1,-26,-18,-16,-37r30,-62v-11,-21,-40,-1,-39,18v0,11,11,21,18,13v5,1,2,7,-1,8v-13,5,-31,68,-71,60v-28,6,-36,-27,-13,-30",w:140},"\u00a0":{w:72}}}); \ No newline at end of file diff --git a/lib/fonts/Quake_Cyr.font.js b/lib/fonts/Quake_Cyr.font.js deleted file mode 100644 index ca6fa349..00000000 --- a/lib/fonts/Quake_Cyr.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:267,face:{"font-family":"Quake_Cyr","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 4 9 0 0 2 0 4",ascent:"288",descent:"-72","x-height":"4",bbox:"10.37 -358 428.519 123","underline-thickness":"7.2","underline-position":"-44.28","unicode-range":"U+0020-U+0451"},glyphs:{" ":{w:180},"%":{d:"172,5v24,0,42,-14,42,-39v0,-26,-17,-43,-40,-43v-25,0,-42,17,-42,43v0,25,17,39,40,39xm51,-73v24,0,42,-14,42,-39v0,-25,-16,-42,-40,-42v-26,0,-42,17,-42,42v0,24,17,39,40,39xm51,-142v15,-1,28,15,28,30v0,15,-14,25,-28,25v-15,0,-27,-12,-27,-26v0,-15,12,-29,27,-29xm172,-64v15,-1,28,15,28,30v0,14,-14,24,-28,24v-15,0,-27,-11,-27,-26v0,-15,13,-28,27,-28xm162,-151r-9,-5r-93,162r9,6",w:225},"&":{d:"11,-40v0,46,61,46,94,31v7,1,14,15,19,7v2,-25,-15,-80,20,-76v3,0,4,-1,4,-3v-21,-12,-106,17,-105,-33v0,-24,12,-35,35,-35v25,0,35,23,39,43v8,-5,2,-27,3,-39v-25,-14,-99,-20,-99,25v0,23,18,34,46,41v-33,5,-56,9,-56,39xm37,-40v0,-29,26,-38,58,-35v16,14,11,67,-25,67v-18,0,-34,-13,-33,-32",w:159},"'":{d:"11,-112v39,-3,66,-74,18,-85v-7,0,-17,6,-16,16v2,13,20,14,20,30v0,15,-13,25,-22,39",w:66},"(":{d:"92,0v-83,-34,-70,-263,0,-288v-95,21,-104,204,-38,266v11,9,23,17,38,22",w:102},")":{d:"11,-288v77,36,79,251,0,288v113,-22,105,-269,0,-288",w:102},"*":{d:"55,-284r-6,27r-23,-17r13,25r-28,1r26,11r-21,20r27,-9r-3,28r15,-24r15,24r-4,-28r27,9r-21,-20r27,-11r-29,-1r13,-25r-22,17",w:109},"+":{d:"196,-87v4,0,5,-4,5,-9v0,-4,-2,-6,-4,-6r-84,0r0,-83v-1,-5,-16,-7,-15,2r0,81r-83,0v-5,1,-7,16,2,15r81,0r0,83v0,4,4,4,9,4v4,0,6,-1,6,-3r0,-84r83,0",w:211},",":{d:"17,53v21,-18,36,-28,39,-56v3,-25,-37,-42,-42,-14v1,15,20,15,20,31v3,14,-17,28,-22,39r5,0",w:66},"-":{d:"104,-82v7,0,9,-3,8,-10v0,-4,-2,-6,-6,-6r-87,0v-12,-2,-10,15,-3,16r88,0",w:122},".":{d:"31,4v11,0,21,-10,21,-21v0,-10,-10,-20,-21,-20v-10,0,-21,10,-20,20v0,11,10,21,20,21",w:62},"/":{d:"103,-288r-92,288r122,-278",w:143},"0":{d:"299,-144v0,-86,-58,-144,-144,-144v-86,0,-144,58,-144,144v0,87,57,144,144,144v86,0,144,-59,144,-144xm266,-144v0,68,-45,112,-111,112v-66,0,-112,-46,-112,-112v0,-66,45,-112,112,-112v66,0,111,45,111,112",w:309},"1":{d:"31,-27v0,14,-8,25,-20,27r82,0v-14,-4,-21,-13,-21,-27r0,-232v-1,-15,9,-26,20,-29r-81,0v13,3,20,12,20,29r0,232",w:103},"2":{d:"174,-135v-3,-77,-17,-148,-93,-151v-25,0,-42,4,-55,16r-15,-18r0,77v13,-37,78,-63,112,-24v11,12,21,27,25,46v-85,2,-132,48,-136,131v13,-47,34,-87,96,-87v21,0,43,3,66,10xm12,-41r0,41r150,0r21,-67v-17,44,-114,20,-171,26",w:194},"3":{d:"37,0v68,-3,128,-30,128,-95v0,-47,-42,-69,-81,-82v35,-30,57,-61,73,-111r-146,0r0,66r26,-59r94,0v-17,43,-41,95,-95,96v42,14,90,37,90,90v0,57,-46,79,-89,95",w:175},"4":{d:"131,-85v-2,35,11,86,-27,85r85,0v-45,-8,-28,-43,-31,-85r40,0r1,6r30,-56v-11,20,-39,22,-71,21r0,-174r-147,203r120,0xm46,-114r85,-119r0,119r-85,0",w:239},"5":{d:"157,-82v0,-69,-49,-101,-118,-104r7,-56r90,0r0,-46r-15,17r-84,0r-26,123v64,-14,117,17,118,79v0,31,-14,54,-43,69v46,-3,71,-35,71,-82",w:167},"6":{d:"57,-164v4,-59,34,-107,81,-124v-114,2,-155,153,-107,249v11,22,33,39,65,39v-61,-23,-61,-155,0,-177v-17,0,-29,6,-39,13xm126,0v72,1,104,-100,57,-150v-13,-14,-32,-27,-57,-27v60,20,61,157,0,177",w:217},"7":{d:"141,-252v11,0,16,9,13,19r17,-55r-139,0r-21,63v12,-38,81,-25,130,-27xm151,-222r-105,222r73,0v-12,-3,-18,-15,-18,-37v0,-39,17,-101,50,-185",w:181},"8":{d:"98,0v-60,-16,-65,-144,0,-161v-48,-13,-46,-114,1,-127v-39,3,-68,25,-68,66v0,37,30,57,65,61v-73,-2,-113,93,-56,138v14,12,35,23,58,23xm121,-288v44,13,47,113,3,127v30,13,48,39,48,78v0,44,-17,70,-50,83v49,-4,87,-33,87,-84v0,-47,-37,-72,-83,-77v68,0,84,-104,20,-122v-8,-3,-17,-5,-25,-5",w:219},"9":{d:"161,-124v-4,59,-33,110,-81,124v98,-6,142,-108,121,-211v-8,-39,-33,-75,-80,-77v61,22,62,156,0,177v18,0,28,-6,40,-13xm91,-288v-88,-1,-105,140,-31,170v10,4,20,7,31,7v-60,-20,-61,-157,0,-177",w:217},":":{d:"31,-100v10,0,19,-10,19,-20v0,-11,-9,-20,-19,-20v-11,0,-20,9,-20,20v0,10,9,20,20,20xm33,3v11,0,20,-8,20,-20v0,-11,-8,-20,-20,-19v-10,0,-19,9,-19,19v0,11,9,20,19,20",w:64},";":{d:"11,52v39,-2,67,-76,19,-84v-9,-1,-16,6,-16,15v1,15,19,15,20,31v1,14,-12,27,-23,38xm35,-100v11,1,20,-10,20,-20v0,-11,-9,-20,-20,-20v-10,0,-21,9,-20,20v-1,10,10,21,20,20",w:66},"=":{d:"195,-109v6,0,5,-5,5,-11v0,-2,-1,-3,-3,-3r-182,0v-6,0,-3,6,-4,11v0,2,1,3,2,3r182,0xm195,-63v6,0,3,-5,4,-10v0,-2,-1,-3,-2,-3r-186,3v0,3,-1,10,2,10r182,0",w:210},"?":{d:"59,-129v93,25,126,-108,49,-145v-9,-5,-18,-7,-28,-7v25,10,43,34,43,67v1,58,-47,83,-104,69r48,98xm63,-16v0,8,8,16,17,16v23,0,18,-33,0,-33v-10,0,-17,7,-17,17xm62,-283r-43,-5r-8,51v9,-24,26,-39,51,-46",w:163},"@":{d:"145,-50v48,9,77,-29,77,-72v0,-59,-42,-94,-101,-94v-66,0,-110,45,-110,111v0,65,44,105,110,110v40,3,64,-29,98,-38r2,-5r-36,0v-52,48,-159,13,-154,-67v3,-54,37,-86,90,-90v71,-6,110,79,61,126v-5,3,-11,5,-17,6r0,-103r-18,7v-42,-18,-87,10,-86,54v0,43,41,71,84,55xm82,-105v0,-32,39,-50,64,-31r0,62v-25,18,-64,2,-64,-31",w:232},A:{d:"218,-55v7,16,29,51,-2,55r84,0v-49,-38,-69,-109,-94,-168r-51,-120r-100,229v-17,34,-32,53,-44,59r57,0v-26,-4,-10,-42,-5,-54v9,-24,18,-39,51,-40v-47,-11,3,-70,11,-95v11,-34,23,-22,33,0v11,23,24,48,29,76v-1,12,-13,15,-23,19v33,-1,43,15,54,39",w:310},B:{d:"257,-76v0,-45,-33,-65,-73,-72v29,-10,52,-34,52,-71v0,-46,-40,-74,-89,-67v63,13,59,131,-6,139v37,8,68,30,68,70v0,45,-34,65,-73,73v60,13,121,-12,121,-72xm71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23"},C:{d:"145,4v-50,-24,-84,-72,-84,-142v0,-75,32,-126,84,-151v-118,1,-176,167,-93,249v22,23,53,44,93,44xm172,4v51,-2,47,-9,76,-9v10,0,17,2,21,8r0,-87v-29,56,-62,85,-97,88xm175,-289v49,11,88,38,93,91r0,-91r-93,0",w:279},D:{d:"31,-29v1,15,-10,24,-20,29r82,0v-14,-3,-21,-12,-21,-29r0,-230v-1,-16,10,-25,20,-29r-81,0v13,3,20,12,20,29r0,230xm141,-288v51,25,82,75,82,148v0,70,-34,116,-83,140v120,3,171,-158,95,-242v-21,-25,-53,-45,-94,-46",w:283},E:{d:"74,-87v-5,-46,16,-58,58,-58v-29,-5,-60,2,-58,-30v3,-40,-14,-104,21,-113r-84,0v11,3,22,16,22,32v0,80,-21,187,31,228v18,14,42,27,70,28v-34,-13,-56,-45,-60,-87xm167,0v38,4,69,-23,96,-1r0,-93v-31,60,-62,91,-96,94xm150,-288v52,11,92,40,98,97r0,-97r-98,0",w:273},F:{d:"130,-145v-42,-1,-59,-11,-55,-56v4,-40,26,-75,59,-87v-51,5,-101,35,-101,87r0,173v0,14,-11,26,-22,28r85,0v-37,-9,-16,-73,-21,-113v3,-27,23,-28,55,-32xm157,-288v39,9,71,31,75,75r0,-75r-75,0",w:243},G:{d:"181,1v-72,-13,-122,-65,-122,-145v0,-75,38,-123,98,-142v-88,6,-146,61,-146,150v0,90,75,144,170,137xm265,-112v-1,-17,11,-29,22,-32r-85,0v14,3,22,14,22,32v-3,89,18,200,-60,215v57,-2,101,-33,101,-86r0,-129xm183,-286v42,10,78,32,82,80r0,-80r-82,0",w:298},H:{d:"201,-288v33,8,16,70,20,109v-2,19,-16,31,-41,34v55,5,39,63,41,117v0,16,-6,25,-20,28r82,0v-12,-2,-21,-14,-21,-28r0,-230v0,-17,7,-27,20,-30r-81,0xm31,-29v0,15,-8,26,-20,29r81,0v-34,-7,-15,-70,-20,-107v2,-21,16,-33,42,-38v-56,-3,-40,-62,-42,-115v-1,-15,10,-26,21,-28r-82,0v13,3,20,13,20,29r0,230",w:293},I:{d:"31,-29v-1,15,-10,25,-20,29r82,0v-14,-3,-21,-12,-21,-29r0,-230v1,-14,9,-24,20,-29r-81,0v13,3,20,12,20,29r0,230",w:103},J:{d:"50,-288v13,5,23,15,23,33r0,237v0,50,-18,82,-62,90v56,-5,107,-35,107,-90r0,-237v-1,-16,13,-28,23,-33r-91,0",w:151},K:{d:"91,0v-34,-8,-20,-69,-20,-107v0,-22,12,-35,31,-38v-49,-10,-31,-64,-31,-113v0,-14,10,-25,21,-28r-81,0v13,3,20,13,20,29r0,228v-2,14,-8,26,-20,29r80,0xm274,10v6,-86,-29,-143,-88,-169r107,-139r-164,154v71,25,129,75,145,154",w:304},L:{d:"31,-29v-1,15,-10,25,-20,29r82,0v-14,-3,-21,-12,-21,-29r0,-230v0,-16,9,-25,20,-29r-81,0v13,3,20,12,20,29r0,230xm132,-1v38,7,77,-27,106,-1r0,-102v-24,42,-52,92,-106,103",w:248},M:{d:"11,-287v14,2,20,13,20,32r0,222v0,18,-6,30,-20,33r55,0v-14,-5,-21,-16,-21,-33r0,-162r86,210r103,-235r0,187v0,14,-9,30,-20,33r81,0v-14,-3,-20,-16,-20,-33r0,-225v0,-13,9,-27,19,-29r-81,0v12,3,17,14,14,28r-85,191r-78,-203v0,-6,11,-15,14,-16r-67,0",w:305},N:{d:"69,0v-14,-2,-21,-16,-21,-32r0,-193r198,244r0,-275v0,-17,6,-28,19,-30r-58,0v15,4,22,14,22,30r0,176r-147,-184v-4,-9,-2,-21,8,-22r-79,0v13,3,19,17,20,30r0,224v0,17,-6,29,-20,32r58,0",w:276},O:{d:"185,4v113,-2,151,-165,86,-247v-19,-23,-46,-45,-85,-46v42,23,66,71,66,145v0,74,-18,123,-67,148xm130,-289v-137,1,-153,229,-48,280v15,7,30,13,48,13v-89,-36,-94,-255,0,-293",w:315},P:{d:"93,0v-13,-2,-20,-14,-21,-28v-1,-24,5,-37,23,-41v-15,-7,-23,-21,-23,-43r0,-148v-1,-15,10,-25,21,-28r-82,0v14,3,19,14,20,30r0,230v0,13,-8,26,-20,28r82,0xm127,-288v41,17,71,55,71,108v0,55,-29,97,-71,114v98,4,149,-126,79,-190v-20,-18,-46,-31,-79,-32",w:251},Q:{d:"93,-283v-71,22,-108,138,-60,210v23,35,53,67,103,73v-4,47,12,82,20,123v6,-40,17,-75,15,-123v143,2,168,-240,45,-283v67,25,90,141,35,200v-19,20,-44,41,-80,41v1,-27,-6,-60,17,-65r-67,0v23,5,13,40,15,65v-85,-5,-137,-110,-93,-191v11,-19,28,-36,50,-50",w:309},R:{d:"30,-39v1,17,-8,24,-19,28r78,0v-34,-7,-20,-65,-20,-102v0,-22,12,-34,30,-38v-47,-8,-30,-63,-30,-109v0,-15,10,-25,20,-28r-78,0v13,2,20,14,19,29r0,220xm271,0v3,-83,-29,-133,-85,-158v22,-8,44,-29,42,-59v-3,-45,-43,-75,-96,-70v35,3,57,33,57,68v0,42,-33,58,-66,69v76,21,129,72,148,150",w:282},S:{d:"59,-195v-31,-33,3,-85,38,-92v-84,-9,-115,109,-44,142v39,30,119,30,119,88v0,35,-27,56,-60,60v89,14,123,-104,52,-143v-34,-19,-80,-28,-105,-55xm88,3v-27,-2,-53,-27,-77,-75r0,75v20,-17,43,4,77,0xm119,-287v37,9,66,29,71,70r0,-70r-71,0",w:215},T:{d:"141,-259v0,-16,8,-24,20,-29r-83,0v14,3,21,13,21,30r0,165r22,136r20,-132r0,-170xm172,-288v38,13,53,41,58,86r0,-86r-58,0xm11,-202v4,-44,21,-74,57,-86r-57,0r0,86",w:240},U:{d:"75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187xm166,7v63,-3,106,-37,106,-100r0,-163v2,-17,10,-27,23,-31r-88,0v14,6,23,13,23,31r0,190v-1,44,-27,66,-64,73",w:305},V:{d:"174,-69r-94,-201v0,-10,6,-15,17,-17r-86,0v11,5,19,13,24,24r125,276r121,-271v5,-13,14,-24,26,-29r-58,0v13,5,20,12,14,23",w:317},W:{d:"190,-266v0,-12,4,-19,14,-21r-73,0v10,5,17,13,20,25r74,275r92,-271v6,-15,12,-25,19,-29r-48,0v11,5,16,13,12,24r-62,165xm173,-138r-37,49r-67,-181v0,-10,5,-15,15,-17r-73,0v8,6,15,14,19,24r103,275",w:347},X:{d:"300,0r-188,-236v-14,-20,-25,-38,-5,-52r-96,0r199,247v9,16,11,34,-5,41r95,0xm206,-288v28,32,14,68,-13,107r106,-107r-93,0xm104,0v-28,-31,-13,-69,13,-107r-106,107r93,0",w:311},Y:{d:"11,-288v81,26,61,155,64,258v0,18,-7,28,-22,30r86,0v-40,-27,-7,-143,-25,-202v-15,-49,-43,-84,-103,-86xm167,-286v7,5,11,14,11,26v0,28,-17,66,-52,115r121,-141r-80,0",w:257},Z:{d:"86,0v-19,-2,-14,-27,-7,-39r142,-249r-72,0v23,9,4,41,-5,56r-133,232r75,0xm122,-288r-109,0r0,114v12,-59,46,-106,109,-114xm106,0r115,0r0,-112v-13,60,-46,108,-115,112",w:232},"[":{d:"69,46v0,-3,0,-4,-2,-4v-12,-2,-34,5,-37,-5r0,-286v5,-10,25,-2,36,-7v0,0,1,-7,-3,-7r-52,0r0,314r56,0v2,0,2,-1,2,-5",w:80},"\\":{d:"41,-288r-30,13r151,275",w:173},"]":{d:"69,51r0,-314v-18,2,-43,-4,-55,3v0,3,-2,6,4,5v10,3,28,-3,32,6r0,286v-3,10,-25,3,-37,5v-3,0,-2,10,1,9r55,0",w:80},"^":{d:"129,-197v3,4,15,0,9,-5v-22,-20,-40,-43,-66,-59v-25,16,-43,39,-61,62v1,4,4,4,9,1r54,-25",w:149},_:{d:"191,40r0,-9r-180,0r0,9r180,0",w:201},"{":{d:"26,-88v45,-31,-4,-130,25,-170r13,-8v-61,-10,-34,91,-34,134v0,24,-7,38,-19,43v52,28,-36,178,52,179v-37,-12,-17,-81,-16,-119v0,-28,-10,-41,-21,-59",w:74},"}":{d:"11,90v59,8,34,-90,34,-134v0,-24,6,-38,19,-45v-54,-23,37,-176,-53,-177v36,10,16,79,16,118v0,27,14,40,21,60v-6,20,-21,34,-21,59v-1,42,24,103,-16,119",w:74},a:{d:"218,-55v7,16,29,51,-2,55r84,0v-49,-38,-69,-109,-94,-168r-51,-120r-100,229v-17,34,-32,53,-44,59r57,0v-26,-4,-10,-42,-5,-54v9,-24,18,-39,51,-40v-47,-11,3,-70,11,-95v11,-34,23,-22,33,0v11,23,24,48,29,76v-1,12,-13,15,-23,19v33,-1,43,15,54,39",w:310},b:{d:"257,-76v0,-45,-33,-65,-73,-72v29,-10,52,-34,52,-71v0,-46,-40,-74,-89,-67v63,13,59,131,-6,139v37,8,68,30,68,70v0,45,-34,65,-73,73v60,13,121,-12,121,-72xm71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23"},c:{d:"145,4v-50,-24,-84,-72,-84,-142v0,-75,32,-126,84,-151v-118,1,-176,167,-93,249v22,23,53,44,93,44xm172,4v51,-2,47,-9,76,-9v10,0,17,2,21,8r0,-87v-29,56,-62,85,-97,88xm175,-289v49,11,88,38,93,91r0,-91r-93,0",w:279},d:{d:"31,-29v1,15,-10,24,-20,29r82,0v-14,-3,-21,-12,-21,-29r0,-230v-1,-16,10,-25,20,-29r-81,0v13,3,20,12,20,29r0,230xm141,-288v51,25,82,75,82,148v0,70,-34,116,-83,140v120,3,171,-158,95,-242v-21,-25,-53,-45,-94,-46",w:283},e:{d:"74,-87v-5,-46,16,-58,58,-58v-29,-5,-60,2,-58,-30v3,-40,-14,-104,21,-113r-84,0v11,3,22,16,22,32v0,80,-21,187,31,228v18,14,42,27,70,28v-34,-13,-56,-45,-60,-87xm167,0v38,4,69,-23,96,-1r0,-93v-31,60,-62,91,-96,94xm150,-288v52,11,92,40,98,97r0,-97r-98,0",w:273},f:{d:"130,-145v-42,-1,-59,-11,-55,-56v4,-40,26,-75,59,-87v-51,5,-101,35,-101,87r0,173v0,14,-11,26,-22,28r85,0v-37,-9,-16,-73,-21,-113v3,-27,23,-28,55,-32xm157,-288v39,9,71,31,75,75r0,-75r-75,0",w:243},g:{d:"181,1v-72,-13,-122,-65,-122,-145v0,-75,38,-123,98,-142v-88,6,-146,61,-146,150v0,90,75,144,170,137xm265,-112v-1,-17,11,-29,22,-32r-85,0v14,3,22,14,22,32v-3,89,18,200,-60,215v57,-2,101,-33,101,-86r0,-129xm183,-286v42,10,78,32,82,80r0,-80r-82,0",w:298},h:{d:"201,-288v33,8,16,70,20,109v-2,19,-16,31,-41,34v55,5,39,63,41,117v0,16,-6,25,-20,28r82,0v-12,-2,-21,-14,-21,-28r0,-230v0,-17,7,-27,20,-30r-81,0xm31,-29v0,15,-8,26,-20,29r81,0v-34,-7,-15,-70,-20,-107v2,-21,16,-33,42,-38v-56,-3,-40,-62,-42,-115v-1,-15,10,-26,21,-28r-82,0v13,3,20,13,20,29r0,230",w:293},i:{d:"31,-29v-1,15,-10,25,-20,29r82,0v-14,-3,-21,-12,-21,-29r0,-230v1,-14,9,-24,20,-29r-81,0v13,3,20,12,20,29r0,230",w:103},j:{d:"50,-288v13,5,23,15,23,33r0,237v0,50,-18,82,-62,90v56,-5,107,-35,107,-90r0,-237v-1,-16,13,-28,23,-33r-91,0",w:151},k:{d:"91,0v-34,-8,-20,-69,-20,-107v0,-22,12,-35,31,-38v-49,-10,-31,-64,-31,-113v0,-14,10,-25,21,-28r-81,0v13,3,20,13,20,29r0,228v-2,14,-8,26,-20,29r80,0xm274,10v6,-86,-29,-143,-88,-169r107,-139r-164,154v71,25,129,75,145,154",w:304},l:{d:"31,-29v-1,15,-10,25,-20,29r82,0v-14,-3,-21,-12,-21,-29r0,-230v0,-16,9,-25,20,-29r-81,0v13,3,20,12,20,29r0,230xm132,-1v38,7,77,-27,106,-1r0,-102v-24,42,-52,92,-106,103",w:248},m:{d:"11,-287v14,2,20,13,20,32r0,222v0,18,-6,30,-20,33r55,0v-14,-5,-21,-16,-21,-33r0,-162r86,210r103,-235r0,187v0,14,-9,30,-20,33r81,0v-14,-3,-20,-16,-20,-33r0,-225v0,-13,9,-27,19,-29r-81,0v12,3,17,14,14,28r-85,191r-78,-203v0,-6,11,-15,14,-16r-67,0",w:305},n:{d:"69,0v-14,-2,-21,-16,-21,-32r0,-193r198,244r0,-275v0,-17,6,-28,19,-30r-58,0v15,4,22,14,22,30r0,176r-147,-184v-4,-9,-2,-21,8,-22r-79,0v13,3,19,17,20,30r0,224v0,17,-6,29,-20,32r58,0",w:276},o:{d:"185,4v113,-2,151,-165,86,-247v-19,-23,-46,-45,-85,-46v42,23,66,71,66,145v0,74,-18,123,-67,148xm130,-289v-137,1,-153,229,-48,280v15,7,30,13,48,13v-89,-36,-94,-255,0,-293",w:315},p:{d:"93,0v-13,-2,-20,-14,-21,-28v-1,-24,5,-37,23,-41v-15,-7,-23,-21,-23,-43r0,-148v-1,-15,10,-25,21,-28r-82,0v14,3,19,14,20,30r0,230v0,13,-8,26,-20,28r82,0xm127,-288v41,17,71,55,71,108v0,55,-29,97,-71,114v98,4,149,-126,79,-190v-20,-18,-46,-31,-79,-32",w:251},q:{d:"93,-283v-71,22,-108,138,-60,210v23,35,53,67,103,73v-4,47,12,82,20,123v6,-40,17,-75,15,-123v143,2,168,-240,45,-283v67,25,90,141,35,200v-19,20,-44,41,-80,41v1,-27,-6,-60,17,-65r-67,0v23,5,13,40,15,65v-85,-5,-137,-110,-93,-191v11,-19,28,-36,50,-50",w:309},r:{d:"30,-39v1,17,-8,24,-19,28r78,0v-34,-7,-20,-65,-20,-102v0,-22,12,-34,30,-38v-47,-8,-30,-63,-30,-109v0,-15,10,-25,20,-28r-78,0v13,2,20,14,19,29r0,220xm271,0v3,-83,-29,-133,-85,-158v22,-8,44,-29,42,-59v-3,-45,-43,-75,-96,-70v35,3,57,33,57,68v0,42,-33,58,-66,69v76,21,129,72,148,150",w:282},s:{d:"59,-195v-31,-33,3,-85,38,-92v-84,-9,-115,109,-44,142v39,30,119,30,119,88v0,35,-27,56,-60,60v89,14,123,-104,52,-143v-34,-19,-80,-28,-105,-55xm88,3v-27,-2,-53,-27,-77,-75r0,75v20,-17,43,4,77,0xm119,-287v37,9,66,29,71,70r0,-70r-71,0",w:215},t:{d:"141,-259v0,-16,8,-24,20,-29r-83,0v14,3,21,13,21,30r0,165r22,136r20,-132r0,-170xm172,-288v38,13,53,41,58,86r0,-86r-58,0xm11,-202v4,-44,21,-74,57,-86r-57,0r0,86",w:240},u:{d:"75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187xm166,7v63,-3,106,-37,106,-100r0,-163v2,-17,10,-27,23,-31r-88,0v14,6,23,13,23,31r0,190v-1,44,-27,66,-64,73",w:305},v:{d:"174,-69r-94,-201v0,-10,6,-15,17,-17r-86,0v11,5,19,13,24,24r125,276r121,-271v5,-13,14,-24,26,-29r-58,0v13,5,20,12,14,23",w:317},w:{d:"190,-266v0,-12,4,-19,14,-21r-73,0v10,5,17,13,20,25r74,275r92,-271v6,-15,12,-25,19,-29r-48,0v11,5,16,13,12,24r-62,165xm173,-138r-37,49r-67,-181v0,-10,5,-15,15,-17r-73,0v8,6,15,14,19,24r103,275",w:347},x:{d:"300,0r-188,-236v-14,-20,-25,-38,-5,-52r-96,0r199,247v9,16,11,34,-5,41r95,0xm206,-288v28,32,14,68,-13,107r106,-107r-93,0xm104,0v-28,-31,-13,-69,13,-107r-106,107r93,0",w:311},y:{d:"11,-288v81,26,61,155,64,258v0,18,-7,28,-22,30r86,0v-40,-27,-7,-143,-25,-202v-15,-49,-43,-84,-103,-86xm167,-286v7,5,11,14,11,26v0,28,-17,66,-52,115r121,-141r-80,0",w:257},z:{d:"86,0v-19,-2,-14,-27,-7,-39r142,-249r-72,0v23,9,4,41,-5,56r-133,232r75,0xm122,-288r-109,0r0,114v12,-59,46,-106,109,-114xm106,0r115,0r0,-112v-13,60,-46,108,-115,112",w:232},"$":{d:"69,8v29,0,50,-19,50,-47v0,-49,-75,-32,-86,-72v0,-15,9,-22,27,-22v17,0,36,31,40,-2v5,-9,-1,-17,-14,-15r-17,2r0,-77v1,-6,-3,-8,-9,-7v-8,22,0,60,-3,87v-28,9,-41,23,-41,43v0,47,85,30,85,74v0,40,-58,39,-72,8v-6,-5,-10,-24,-18,-17v3,12,2,28,9,37v13,2,22,8,37,8r0,78v-1,8,8,8,12,6r0,-84",w:129},"!":{d:"60,-55r12,-233r-61,13v16,7,33,80,49,220xm41,-15v0,7,7,15,16,15v8,0,15,-7,15,-15v0,-10,-6,-16,-15,-16v-10,0,-16,7,-16,16",w:83},"#":{d:"164,-113r-35,0r13,-40r-13,0r-12,40r-36,0r12,-40r-13,0r-12,40r-36,0r-2,13r34,0r-15,47r-35,0r-3,13r34,0r-12,40r12,0r13,-40r36,0r-13,40r13,0r13,-40r35,0r3,-13r-34,0r14,-47r36,0xm113,-100r-15,47r-36,0r15,-47r36,0",w:174},"\u0410":{d:"218,-55v7,16,29,51,-2,55r84,0v-49,-38,-69,-109,-94,-168r-51,-120r-100,229v-17,34,-32,53,-44,59r57,0v-26,-4,-10,-42,-5,-54v9,-24,18,-39,51,-40v-47,-11,3,-70,11,-95v11,-34,23,-22,33,0v11,23,24,48,29,76v-1,12,-13,15,-23,19v33,-1,43,15,54,39",w:310},"\u0411":{d:"71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm141,-147v37,8,68,30,68,70v0,45,-34,65,-73,73v72,22,151,-39,110,-106v-18,-29,-61,-35,-105,-37xm139,-286v50,9,92,32,97,86r0,-86r-97,0"},"\u0412":{d:"257,-76v0,-45,-33,-65,-73,-72v29,-10,52,-34,52,-71v0,-46,-40,-74,-89,-67v63,13,59,131,-6,139v37,8,68,30,68,70v0,45,-34,65,-73,73v60,13,121,-12,121,-72xm71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23"},"\u0413":{d:"11,-288v11,3,23,16,22,32r0,169r21,128r20,-128r0,-169v0,-18,7,-29,21,-32r-84,0xm114,-288v52,11,92,40,98,97r0,-97r-98,0",w:222},"\u0414":{d:"114,-29v-12,18,-45,22,-71,29r133,0v-13,-3,-20,-12,-20,-29r0,-230v-1,-16,10,-25,19,-29r-81,0v14,3,20,12,20,29r0,230xm185,-288v51,25,82,75,82,148v0,70,-34,116,-83,140v120,2,171,-158,95,-242v-21,-25,-53,-45,-94,-46xm11,-213v2,-51,33,-68,79,-75r-79,0r0,75",w:327},"\u0415":{d:"74,-87v-5,-46,16,-58,58,-58v-29,-5,-60,2,-58,-30v3,-40,-14,-104,21,-113r-84,0v11,3,22,16,22,32v0,80,-21,187,31,228v18,14,42,27,70,28v-34,-13,-56,-45,-60,-87xm167,0v38,4,69,-23,96,-1r0,-93v-31,60,-62,91,-96,94xm150,-288v52,11,92,40,98,97r0,-97r-98,0",w:273},"\u0416":{d:"263,-145v-11,-6,-28,-16,-30,-32v3,-39,-12,-99,20,-109r-80,0v32,12,19,75,19,116v0,15,-16,20,-29,25v44,5,29,71,29,116v0,13,-8,25,-20,29r82,0v-34,-13,-15,-75,-20,-117v3,-14,17,-23,29,-28xm396,10v6,-81,-12,-146,-69,-169v33,-43,55,-95,88,-139r-145,154v67,24,113,76,126,154xm30,10v13,-78,59,-130,127,-154r-146,-154v34,44,54,96,89,139v-58,23,-75,87,-70,169",w:426},"\u0417":{d:"17,19v76,-9,135,-42,148,-114v-4,-47,-42,-69,-81,-82v31,-13,48,-24,50,-57v2,-55,-71,-67,-110,-39r-13,-15r0,66v2,-34,19,-56,51,-56v27,0,41,17,41,50v0,36,-34,43,-67,43v42,14,90,37,90,90v0,62,-60,94,-109,114",w:175},"\u0418":{d:"209,-287v11,4,21,14,21,29r0,231v0,16,-7,26,-20,28r81,0v-12,-2,-20,-13,-20,-28r0,-230v0,-17,6,-27,20,-30r-82,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187",w:301},"\u0419":{d:"209,-287v11,4,21,14,21,29r0,231v0,16,-7,26,-20,28r81,0v-12,-2,-20,-13,-20,-28r0,-230v0,-17,6,-27,20,-30r-82,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187xm95,-344v-5,-3,-13,-1,-9,5v23,19,39,44,66,59v23,-18,43,-40,61,-63v-1,-5,-6,-2,-10,-1r-53,25",w:301},"\u041a":{d:"91,0v-34,-8,-20,-69,-20,-107v0,-22,12,-35,31,-38v-49,-10,-31,-64,-31,-113v0,-14,10,-25,21,-28r-81,0v13,3,20,13,20,29r0,228v-2,14,-8,26,-20,29r80,0xm274,10v6,-86,-29,-143,-88,-169r107,-139r-164,154v71,25,129,75,145,154",w:304},"\u041b":{d:"171,-277v11,3,21,13,20,28r0,222v0,15,-6,24,-19,27r78,0v-11,-3,-20,-12,-20,-27r0,-221v0,-15,7,-27,19,-29r-78,0xm106,-262v-70,51,-90,159,-95,273v21,-96,49,-188,98,-249v17,-22,36,-22,48,-39v-19,0,-37,5,-51,15",w:260},"\u041c":{d:"11,-287v14,2,20,13,20,32r0,222v0,18,-6,30,-20,33r55,0v-14,-5,-21,-16,-21,-33r0,-162r86,210r103,-235r0,187v0,14,-9,30,-20,33r81,0v-14,-3,-20,-16,-20,-33r0,-225v0,-13,9,-27,19,-29r-81,0v12,3,17,14,14,28r-85,191r-78,-203v0,-6,11,-15,14,-16r-67,0",w:305},"\u041d":{d:"201,-288v33,8,16,70,20,109v-2,19,-16,31,-41,34v55,5,39,63,41,117v0,16,-6,25,-20,28r82,0v-12,-2,-21,-14,-21,-28r0,-230v0,-17,7,-27,20,-30r-81,0xm31,-29v0,15,-8,26,-20,29r81,0v-34,-7,-15,-70,-20,-107v2,-21,16,-33,42,-38v-56,-3,-40,-62,-42,-115v-1,-15,10,-26,21,-28r-82,0v13,3,20,13,20,29r0,230",w:293},"\u041e":{d:"185,4v113,-2,151,-165,86,-247v-19,-23,-46,-45,-85,-46v42,23,66,71,66,145v0,74,-18,123,-67,148xm130,-289v-137,1,-153,229,-48,280v15,7,30,13,48,13v-89,-36,-94,-255,0,-293",w:315},"\u041f":{d:"158,-288v21,6,54,9,63,28r0,232v0,16,-6,25,-20,28r82,0v-12,-2,-21,-14,-21,-28r0,-230v0,-17,7,-27,20,-30r-124,0xm31,-29v0,15,-8,26,-20,29r81,0v-13,-3,-20,-12,-20,-29r0,-231v8,-22,40,-21,64,-28r-125,0v13,3,20,13,20,29r0,230",w:293},"\u0420":{d:"93,0v-13,-2,-20,-14,-21,-28v-1,-24,5,-37,23,-41v-15,-7,-23,-21,-23,-43r0,-148v-1,-15,10,-25,21,-28r-82,0v14,3,19,14,20,30r0,230v0,13,-8,26,-20,28r82,0xm127,-288v41,17,71,55,71,108v0,55,-29,97,-71,114v98,4,149,-126,79,-190v-20,-18,-46,-31,-79,-32",w:251},"\u0421":{d:"145,4v-50,-24,-84,-72,-84,-142v0,-75,32,-126,84,-151v-118,1,-176,167,-93,249v22,23,53,44,93,44xm172,4v51,-2,47,-9,76,-9v10,0,17,2,21,8r0,-87v-29,56,-62,85,-97,88xm175,-289v49,11,88,38,93,91r0,-91r-93,0",w:279},"\u0422":{d:"141,-259v0,-16,8,-24,20,-29r-83,0v14,3,21,13,21,30r0,165r22,136r20,-132r0,-170xm172,-288v38,13,53,41,58,86r0,-86r-58,0xm11,-202v4,-44,21,-74,57,-86r-57,0r0,86",w:240},"\u0423":{d:"247,-288v-120,1,-111,132,-109,256v-4,20,-10,31,-20,32r86,0v-14,-2,-21,-12,-21,-30v3,-103,-17,-233,64,-258xm90,-286r-79,0r120,141v-34,-49,-51,-87,-51,-115v0,-12,3,-21,10,-26",w:257},"\u0424":{d:"139,-69v29,2,28,67,1,69r82,0v-27,-3,-29,-68,2,-69v-12,-5,-19,-15,-22,-29r0,-160v0,-16,11,-25,20,-30r-82,0v14,4,20,12,20,30r0,160v-2,14,-9,23,-21,29xm239,-270v40,17,70,44,70,97v-1,56,-28,85,-71,104v96,8,153,-115,79,-174v-18,-16,-47,-27,-78,-27xm124,-69v-42,-20,-70,-48,-71,-104v0,-53,31,-80,71,-97v-97,-8,-150,110,-79,172v18,16,47,28,79,29",w:362},"\u0425":{d:"300,0r-188,-236v-14,-20,-25,-38,-5,-52r-96,0r199,247v9,16,11,34,-5,41r95,0xm206,-288v28,32,14,68,-13,107r106,-107r-93,0xm104,0v-28,-31,-13,-69,13,-107r-106,107r93,0",w:311},"\u0426":{d:"209,-287v11,4,21,14,21,29r0,231v0,16,-7,26,-20,28r71,0v-10,22,-27,37,-54,42v57,-5,99,-36,107,-90r-45,0v0,18,-1,32,-7,45v-6,-6,-11,-13,-11,-25r0,-230v0,-17,6,-27,20,-30r-82,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187",w:344},"\u0427":{d:"175,-69v30,3,30,65,2,69r82,0v-12,-1,-20,-14,-20,-28r0,-230v-1,-16,7,-27,19,-30r-81,0v11,3,21,13,21,28r0,148v0,22,-8,36,-23,43xm11,-288v41,18,2,106,27,151v20,37,51,70,105,71v-42,-19,-71,-56,-71,-114v0,-39,-13,-99,20,-108r-81,0",w:269},"\u0428":{d:"139,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r82,0v-12,-2,-20,-12,-20,-28r0,-230v0,-17,6,-27,19,-30r-81,0xm262,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r81,0v-11,-2,-21,-13,-20,-28r0,-230v0,-17,7,-27,20,-30r-81,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v8,105,-37,253,89,257v-33,-5,-46,-32,-46,-70r0,-187",w:354},"\u0429":{d:"262,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r72,0v-10,22,-27,37,-54,42v57,-4,99,-37,107,-90r-45,0v0,18,-1,32,-7,45v-6,-6,-12,-13,-12,-25r0,-230v0,-17,7,-27,20,-30r-81,0xm139,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r82,0v-12,-2,-20,-12,-20,-28r0,-230v0,-17,6,-27,19,-30r-81,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v8,105,-37,253,89,257v-33,-5,-46,-32,-46,-70r0,-187",w:397},"\u042a":{d:"129,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-139,0r0,97v6,-44,24,-84,65,-90v9,-1,13,14,13,23r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm199,-147v37,8,68,30,68,70v0,46,-34,64,-73,73v72,22,151,-40,110,-107v-17,-28,-61,-35,-105,-36",w:325},"\u042b":{d:"71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm309,-29v0,16,-8,26,-21,29r82,0v-14,-3,-20,-12,-20,-29r0,-231v-1,-15,9,-26,20,-28r-81,0v13,3,20,13,20,29r0,230xm141,-147v37,8,68,30,68,70v0,45,-34,65,-73,73v72,22,151,-40,110,-107v-17,-28,-61,-35,-105,-36",w:380},"\u042c":{d:"71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm141,-147v37,8,68,30,68,70v0,45,-34,65,-73,73v72,22,151,-40,110,-107v-17,-28,-61,-35,-105,-36"},"\u042d":{d:"140,2v56,-4,101,-34,101,-87v0,-66,13,-143,-31,-175v-18,-13,-42,-27,-70,-28v44,17,65,45,60,112v-2,30,-30,31,-59,33v36,3,66,11,59,58v-6,42,-25,74,-60,87xm107,-288v-38,-4,-69,23,-96,1r0,93v31,-60,62,-91,96,-94xm107,2v-34,-2,-65,-34,-96,-93r0,92v25,-23,59,6,96,1",w:252},"\u042e":{d:"31,-29v0,15,-8,26,-20,29r81,0v-34,-7,-15,-70,-20,-107v2,-21,16,-33,42,-38v-56,-3,-40,-62,-42,-115v-1,-15,10,-26,21,-28r-82,0v13,3,20,13,20,29r0,230xm312,2v137,0,153,-227,49,-279v-16,-8,-31,-13,-48,-13v42,22,66,71,66,144v0,76,-18,123,-67,148xm257,2v-90,-35,-94,-255,0,-292v-114,1,-150,166,-86,247v18,23,46,45,86,45",w:442},"\u042f":{d:"158,-151v42,5,27,67,30,112v0,16,-7,25,-20,28r78,0v-11,-4,-20,-11,-19,-28r0,-220v-1,-15,6,-27,19,-29r-78,0v32,8,20,67,20,105v0,16,-10,26,-30,32xm30,-217v-2,31,19,51,41,59v-54,21,-62,81,-60,158v16,-75,49,-133,123,-150v-32,-11,-66,-27,-66,-69v0,-35,22,-65,57,-68v-50,-5,-92,24,-95,70",w:257},"\u0430":{d:"218,-55v7,16,29,51,-2,55r84,0v-49,-38,-69,-109,-94,-168r-51,-120r-100,229v-17,34,-32,53,-44,59r57,0v-26,-4,-10,-42,-5,-54v9,-24,18,-39,51,-40v-47,-11,3,-70,11,-95v11,-34,23,-22,33,0v11,23,24,48,29,76v-1,12,-13,15,-23,19v33,-1,43,15,54,39",w:310},"\u0431":{d:"71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm141,-147v37,8,68,30,68,70v0,45,-34,65,-73,73v72,22,151,-39,110,-106v-18,-29,-61,-35,-105,-37xm139,-286v50,9,92,32,97,86r0,-86r-97,0"},"\u0432":{d:"257,-76v0,-45,-33,-65,-73,-72v29,-10,52,-34,52,-71v0,-46,-40,-74,-89,-67v63,13,59,131,-6,139v37,8,68,30,68,70v0,45,-34,65,-73,73v60,13,121,-12,121,-72xm71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23"},"\u0433":{d:"11,-288v11,3,23,16,22,32r0,169r21,128r20,-128r0,-169v0,-18,7,-29,21,-32r-84,0xm114,-288v52,11,92,40,98,97r0,-97r-98,0",w:222},"\u0434":{d:"114,-29v-12,18,-45,22,-71,29r133,0v-13,-3,-20,-12,-20,-29r0,-230v-1,-16,10,-25,19,-29r-81,0v14,3,20,12,20,29r0,230xm185,-288v51,25,82,75,82,148v0,70,-34,116,-83,140v120,2,171,-158,95,-242v-21,-25,-53,-45,-94,-46xm11,-213v2,-51,33,-68,79,-75r-79,0r0,75",w:327},"\u0435":{d:"74,-87v-5,-46,16,-58,58,-58v-29,-5,-60,2,-58,-30v3,-40,-14,-104,21,-113r-84,0v11,3,22,16,22,32v0,80,-21,187,31,228v18,14,42,27,70,28v-34,-13,-56,-45,-60,-87xm167,0v38,4,69,-23,96,-1r0,-93v-31,60,-62,91,-96,94xm150,-288v52,11,92,40,98,97r0,-97r-98,0",w:273},"\u0436":{d:"263,-145v-11,-6,-28,-16,-30,-32v3,-39,-12,-99,20,-109r-80,0v32,12,19,75,19,116v0,15,-16,20,-29,25v44,5,29,71,29,116v0,13,-8,25,-20,29r82,0v-34,-13,-15,-75,-20,-117v3,-14,17,-23,29,-28xm396,10v6,-81,-12,-146,-69,-169v33,-43,55,-95,88,-139r-145,154v67,24,113,76,126,154xm30,10v13,-78,59,-130,127,-154r-146,-154v34,44,54,96,89,139v-58,23,-75,87,-70,169",w:426},"\u0437":{d:"17,19v76,-9,135,-42,148,-114v-4,-47,-42,-69,-81,-82v31,-13,48,-24,50,-57v2,-55,-71,-67,-110,-39r-13,-15r0,66v2,-34,19,-56,51,-56v27,0,41,17,41,50v0,36,-34,43,-67,43v42,14,90,37,90,90v0,62,-60,94,-109,114",w:175},"\u0438":{d:"209,-287v11,4,21,14,21,29r0,231v0,16,-7,26,-20,28r81,0v-12,-2,-20,-13,-20,-28r0,-230v0,-17,6,-27,20,-30r-82,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187",w:301},"\u0439":{d:"209,-287v11,4,21,14,21,29r0,231v0,16,-7,26,-20,28r81,0v-12,-2,-20,-13,-20,-28r0,-230v0,-17,6,-27,20,-30r-82,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187xm95,-344v-4,-4,-13,-1,-9,5v23,19,39,44,66,59v23,-18,43,-40,61,-63v-1,-5,-6,-2,-10,-1r-53,25",w:301},"\u043a":{d:"91,0v-34,-8,-20,-69,-20,-107v0,-22,12,-35,31,-38v-49,-10,-31,-64,-31,-113v0,-14,10,-25,21,-28r-81,0v13,3,20,13,20,29r0,228v-2,14,-8,26,-20,29r80,0xm274,10v6,-86,-29,-143,-88,-169r107,-139r-164,154v71,25,129,75,145,154",w:304},"\u043b":{d:"171,-277v11,3,21,13,20,28r0,222v0,15,-6,24,-19,27r78,0v-11,-3,-20,-12,-20,-27r0,-221v0,-15,7,-27,19,-29r-78,0xm106,-262v-70,51,-90,159,-95,273v21,-96,49,-188,98,-249v17,-22,36,-22,48,-39v-19,0,-37,5,-51,15",w:260},"\u043c":{d:"11,-287v14,2,20,13,20,32r0,222v0,18,-6,30,-20,33r55,0v-14,-5,-21,-16,-21,-33r0,-162r86,210r103,-235r0,187v0,14,-9,30,-20,33r81,0v-14,-3,-20,-16,-20,-33r0,-225v0,-13,9,-27,19,-29r-81,0v12,3,17,14,14,28r-85,191r-78,-203v0,-6,11,-15,14,-16r-67,0",w:305},"\u043d":{d:"201,-288v33,8,16,70,20,109v-2,19,-16,31,-41,34v55,5,39,63,41,117v0,16,-6,25,-20,28r82,0v-12,-2,-21,-14,-21,-28r0,-230v0,-17,7,-27,20,-30r-81,0xm31,-29v0,15,-8,26,-20,29r81,0v-34,-7,-15,-70,-20,-107v2,-21,16,-33,42,-38v-56,-3,-40,-62,-42,-115v-1,-15,10,-26,21,-28r-82,0v13,3,20,13,20,29r0,230",w:293},"\u043e":{d:"185,4v113,-2,151,-165,86,-247v-19,-23,-46,-45,-85,-46v42,23,66,71,66,145v0,74,-18,123,-67,148xm130,-289v-137,1,-153,229,-48,280v15,7,30,13,48,13v-89,-36,-94,-255,0,-293",w:315},"\u043f":{d:"158,-288v21,6,54,9,63,28r0,232v0,16,-6,25,-20,28r82,0v-12,-2,-21,-14,-21,-28r0,-230v0,-17,7,-27,20,-30r-124,0xm31,-29v0,15,-8,26,-20,29r81,0v-13,-3,-20,-12,-20,-29r0,-231v8,-22,40,-21,64,-28r-125,0v13,3,20,13,20,29r0,230",w:293},"\u0440":{d:"93,0v-13,-2,-20,-14,-21,-28v-1,-24,5,-37,23,-41v-15,-7,-23,-21,-23,-43r0,-148v-1,-15,10,-25,21,-28r-82,0v14,3,19,14,20,30r0,230v0,13,-8,26,-20,28r82,0xm127,-288v41,17,71,55,71,108v0,55,-29,97,-71,114v98,4,149,-126,79,-190v-20,-18,-46,-31,-79,-32",w:251},"\u0441":{d:"145,4v-50,-24,-84,-72,-84,-142v0,-75,32,-126,84,-151v-118,1,-176,167,-93,249v22,23,53,44,93,44xm172,4v51,-2,47,-9,76,-9v10,0,17,2,21,8r0,-87v-29,56,-62,85,-97,88xm175,-289v49,11,88,38,93,91r0,-91r-93,0",w:279},"\u0442":{d:"141,-259v0,-16,8,-24,20,-29r-83,0v14,3,21,13,21,30r0,165r22,136r20,-132r0,-170xm172,-288v38,13,53,41,58,86r0,-86r-58,0xm11,-202v4,-44,21,-74,57,-86r-57,0r0,86",w:240},"\u0443":{d:"247,-288v-120,1,-111,132,-109,256v-4,20,-10,31,-20,32r86,0v-14,-2,-21,-12,-21,-30v3,-103,-17,-233,64,-258xm90,-286r-79,0r120,141v-34,-49,-51,-87,-51,-115v0,-12,3,-21,10,-26",w:257},"\u0444":{d:"139,-69v29,2,28,67,1,69r82,0v-27,-3,-29,-68,2,-69v-12,-5,-19,-15,-22,-29r0,-160v0,-16,11,-25,20,-30r-82,0v14,4,20,12,20,30r0,160v-2,14,-9,23,-21,29xm239,-270v40,17,70,44,70,97v-1,56,-28,85,-71,104v96,8,153,-115,79,-174v-18,-16,-47,-27,-78,-27xm124,-69v-42,-20,-70,-48,-71,-104v0,-53,31,-80,71,-97v-97,-8,-150,110,-79,172v18,16,47,28,79,29",w:362},"\u0445":{d:"300,0r-188,-236v-14,-20,-25,-38,-5,-52r-96,0r199,247v9,16,11,34,-5,41r95,0xm206,-288v28,32,14,68,-13,107r106,-107r-93,0xm104,0v-28,-31,-13,-69,13,-107r-106,107r93,0",w:311},"\u0446":{d:"209,-287v11,4,21,14,21,29r0,231v0,16,-7,26,-20,28r71,0v-10,22,-27,37,-54,42v57,-5,99,-36,107,-90r-45,0v0,18,-1,32,-7,45v-6,-6,-11,-13,-11,-25r0,-230v0,-17,6,-27,20,-30r-82,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v6,83,-19,188,32,232v19,16,43,31,75,31v-33,-10,-64,-34,-64,-76r0,-187",w:344},"\u0447":{d:"175,-69v30,3,30,65,2,69r82,0v-12,-1,-20,-14,-20,-28r0,-230v-1,-16,7,-27,19,-30r-81,0v11,3,21,13,21,28r0,148v0,22,-8,36,-23,43xm11,-288v41,18,2,106,27,151v20,37,51,70,105,71v-42,-19,-71,-56,-71,-114v0,-39,-13,-99,20,-108r-81,0",w:269},"\u0448":{d:"139,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r82,0v-12,-2,-20,-12,-20,-28r0,-230v0,-17,6,-27,19,-30r-81,0xm262,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r81,0v-11,-2,-21,-13,-20,-28r0,-230v0,-17,7,-27,20,-30r-81,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v8,105,-37,253,89,257v-33,-5,-46,-32,-46,-70r0,-187",w:354},"\u0449":{d:"262,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r72,0v-10,22,-27,37,-54,42v57,-4,99,-37,107,-90r-45,0v0,18,-1,32,-7,45v-6,-6,-12,-13,-12,-25r0,-230v0,-17,7,-27,20,-30r-81,0xm139,-287v10,4,20,13,20,29r0,231v0,16,-6,26,-20,28r82,0v-12,-2,-20,-12,-20,-28r0,-230v0,-17,6,-27,19,-30r-81,0xm75,-256v0,-18,8,-24,23,-31r-87,0v12,4,19,14,21,31v8,105,-37,253,89,257v-33,-5,-46,-32,-46,-70r0,-187",w:397},"\u044a":{d:"129,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-139,0r0,97v6,-44,24,-84,65,-90v9,-1,13,14,13,23r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm199,-147v37,8,68,30,68,70v0,46,-34,64,-73,73v72,22,151,-40,110,-107v-17,-28,-61,-35,-105,-36",w:325},"\u044b":{d:"71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm309,-29v0,16,-8,26,-21,29r82,0v-14,-3,-20,-12,-20,-29r0,-231v-1,-15,9,-26,20,-28r-81,0v13,3,20,13,20,29r0,230xm141,-147v37,8,68,30,68,70v0,45,-34,65,-73,73v72,22,151,-40,110,-107v-17,-28,-61,-35,-105,-36",w:380},"\u044c":{d:"71,-23v1,-49,-10,-110,29,-122v-42,-8,-26,-67,-29,-113v4,-17,11,-26,21,-28r-81,0v13,3,20,13,20,30r0,233v-2,13,-8,21,-20,23r80,0v-10,-2,-20,-11,-20,-23xm141,-147v37,8,68,30,68,70v0,45,-34,65,-73,73v72,22,151,-40,110,-107v-17,-28,-61,-35,-105,-36"},"\u044d":{d:"140,2v56,-4,101,-34,101,-87v0,-66,13,-143,-31,-175v-18,-13,-42,-27,-70,-28v44,17,65,45,60,112v-2,30,-30,31,-59,33v36,3,66,11,59,58v-6,42,-25,74,-60,87xm107,-288v-38,-4,-69,23,-96,1r0,93v31,-60,62,-91,96,-94xm107,2v-34,-2,-65,-34,-96,-93r0,92v25,-23,59,6,96,1",w:252},"\u044e":{d:"31,-29v0,15,-8,26,-20,29r81,0v-34,-7,-15,-70,-20,-107v2,-21,16,-33,42,-38v-56,-3,-40,-62,-42,-115v-1,-15,10,-26,21,-28r-82,0v13,3,20,13,20,29r0,230xm312,2v137,0,153,-227,49,-279v-16,-8,-31,-13,-48,-13v42,22,66,71,66,144v0,76,-18,123,-67,148xm257,2v-90,-35,-94,-255,0,-292v-114,1,-150,166,-86,247v18,23,46,45,86,45",w:442},"\u044f":{d:"158,-151v42,5,27,67,30,112v0,16,-7,25,-20,28r78,0v-11,-4,-20,-11,-19,-28r0,-220v-1,-15,6,-27,19,-29r-78,0v32,8,20,67,20,105v0,16,-10,26,-30,32xm30,-217v-2,31,19,51,41,59v-54,21,-62,81,-60,158v16,-75,49,-133,123,-150v-32,-11,-66,-27,-66,-69v0,-35,22,-65,57,-68v-50,-5,-92,24,-95,70",w:257},"\u0451":{d:"74,-87v-5,-46,16,-58,58,-58v-29,-5,-60,2,-58,-30v3,-40,-14,-104,21,-113r-84,0v11,3,22,16,22,32v0,80,-21,187,31,228v18,14,42,27,70,28v-34,-13,-56,-45,-60,-87xm167,0v38,4,69,-23,96,-1r0,-93v-31,60,-62,91,-96,94xm150,-288v52,11,92,40,98,97r0,-97r-98,0xm99,-358v-13,0,-24,10,-24,22v0,12,11,23,24,22v13,0,26,-9,26,-22v0,-12,-13,-22,-26,-22xm172,-358v-13,0,-24,10,-24,22v0,12,11,23,24,22v13,0,26,-9,26,-22v0,-12,-13,-22,-26,-22",w:273},"\u0401":{d:"74,-87v-5,-46,16,-58,58,-58v-29,-5,-60,2,-58,-30v3,-40,-14,-104,21,-113r-84,0v11,3,22,16,22,32v0,80,-21,187,31,228v18,14,42,27,70,28v-34,-13,-56,-45,-60,-87xm167,0v38,4,69,-23,96,-1r0,-93v-31,60,-62,91,-96,94xm150,-288v52,11,92,40,98,97r0,-97r-98,0xm99,-358v-13,0,-24,10,-24,22v0,12,11,23,24,22v13,0,26,-9,26,-22v0,-12,-13,-22,-26,-22xm172,-358v-13,0,-24,10,-24,22v0,12,11,23,24,22v13,0,26,-9,26,-22v0,-12,-13,-22,-26,-22",w:273},"\u00a0":{w:180}}}); \ No newline at end of file diff --git a/lib/fonts/Tallys_400.font.js b/lib/fonts/Tallys_400.font.js deleted file mode 100644 index c1443b86..00000000 --- a/lib/fonts/Tallys_400.font.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * The following copyright notice may not be removed under any circumstances. - * - * Copyright: - * Copyright (c) 2006 by Jos Buivenga. All rights reserved. - * - * Trademark: - * Tallys is a trademark of Jos Buivenga. - * - * Description: - * Copyright (c) 2006 by Jos Buivenga. All rights reserved. - * - * Manufacturer: - * Jos Buivenga - * - * Designer: - * Jos Buivenga, exljbris - * - * Vendor URL: - * http://www.josbuivenga.demon.nl - */ -Cufon.registerFont({"w":140,"face":{"font-family":"Tallys_400","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 3 2 0 0 2 0 3","ascent":"288","descent":"-72","x-height":"4","bbox":"-14 -260.628 297 85","underline-thickness":"18","underline-position":"-18","stemh":"15","stemv":"14","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":72},"$":{"d":"87,-217r-10,0v-9,-19,3,-48,16,-26xm72,8r10,-1v1,15,10,31,-6,37v-15,-6,-7,-22,-4,-36xm89,-213v9,0,44,0,44,13v0,53,-9,1,-63,3v-17,0,-26,13,-26,31v0,39,91,52,91,107v0,33,-19,63,-63,63v-18,0,-55,-3,-55,-18v0,-11,4,-21,6,-23v14,24,88,43,88,-7v0,-50,-91,-63,-91,-112v0,-46,38,-57,69,-57","w":153},"%":{"d":"95,-178v0,23,-15,48,-47,48v-23,0,-36,-19,-36,-40v0,-23,16,-47,48,-47v23,0,35,19,35,39xm54,-207v-17,0,-24,14,-24,31v0,17,6,36,24,36v18,0,24,-14,24,-31v0,-18,-6,-36,-24,-36xm143,-221r-59,241v0,0,-12,-3,-12,-7r59,-241v0,0,12,3,12,7xm204,-42v0,23,-15,47,-47,47v-23,0,-36,-18,-36,-39v0,-23,15,-47,47,-47v23,0,36,19,36,39xm163,-71v-17,0,-24,14,-24,31v0,17,6,36,24,36v18,0,23,-14,23,-31v0,-18,-5,-36,-23,-36","w":213},"&":{"d":"129,-59v18,-37,31,-74,86,-67v0,10,-33,18,-33,18v-21,5,-31,32,-44,58v42,39,69,38,70,38v-2,10,-8,16,-19,16v-22,0,-43,-14,-63,-33v-26,58,-117,31,-117,-28v0,-26,16,-53,42,-67v-25,-42,-9,-89,44,-89v32,0,45,21,45,42v-1,19,-10,47,-26,46v10,-26,10,-75,-23,-77v-18,0,-28,14,-28,27v0,30,31,78,66,116xm57,-112v-35,23,-22,101,21,102v14,0,29,-8,39,-27v-26,-25,-50,-56,-60,-75","w":219},"(":{"d":"84,31v-103,-23,-89,-222,0,-252v0,10,-4,13,-8,16v-59,42,-62,177,-5,222v6,5,13,10,13,14","w":99},")":{"d":"6,-221v103,23,89,222,0,252v0,-10,4,-13,8,-16v59,-42,62,-177,5,-222v-6,-5,-13,-10,-13,-14","w":91},"*":{"d":"58,-249v5,-15,19,-16,23,0v0,0,-8,49,-12,49v-4,0,-11,-49,-11,-49xm81,-193v6,-7,41,-49,53,-30v10,20,-42,29,-53,30xm81,-180v10,2,64,10,52,32v0,0,-10,9,-16,4v0,0,-38,-33,-36,-36xm80,-124v-5,15,-19,17,-24,0v0,0,9,-49,13,-49v4,0,11,49,11,49xm57,-180v-6,7,-41,49,-53,30v0,0,-3,-13,4,-16v0,0,47,-18,49,-14xm57,-193v-10,-2,-64,-10,-52,-32v0,0,10,-9,16,-4v0,0,38,33,36,36","w":137},"+":{"d":"73,-121r-1,30r36,-2v0,0,-1,17,-5,17r-32,2r-2,38v0,0,-18,0,-18,-9r2,-28r-37,1v0,0,1,-18,7,-18r31,-1r1,-37v0,0,18,1,18,7","w":123},",":{"d":"12,-12v0,-4,15,-19,18,-19v4,0,18,16,18,16v-3,21,-18,54,-40,42v11,-7,16,-13,18,-23v0,0,-14,-12,-14,-16","w":60},"-":{"d":"27,-90r63,-3v0,0,-5,18,-9,18r-65,3v0,0,7,-18,11,-18","w":105},".":{"d":"48,-13v0,4,-14,17,-18,17v-4,0,-16,-13,-16,-17v0,-4,14,-17,17,-17v4,0,17,13,17,17","w":61},"\/":{"d":"15,26r59,-241v0,0,15,4,14,8r-59,240v0,0,-15,-3,-14,-7","w":89},"0":{"d":"131,-83v0,52,-22,87,-68,87v-33,0,-54,-33,-54,-73v0,-53,23,-88,68,-88v35,0,54,23,54,74xm71,-144v-24,1,-38,19,-38,55v0,49,12,81,36,80v27,-1,38,-20,38,-62v0,-55,-13,-74,-36,-73"},"1":{"d":"87,-156v10,35,0,93,2,135v0,10,37,13,36,21r-94,0v1,-8,34,-11,34,-21r2,-109r-40,0v0,0,1,-9,8,-11"},"2":{"d":"23,-129v-3,-22,6,-28,42,-28v33,0,47,25,47,48v0,30,-37,62,-77,92r73,-2v14,0,19,-16,28,-16v0,0,-3,35,-7,35r-115,0v-14,-10,3,-17,9,-24v43,-42,63,-60,63,-85v-1,-39,-39,-38,-63,-20"},"3":{"d":"22,-129v-3,-22,7,-21,42,-28v54,1,65,63,23,86r-21,8v44,3,54,29,54,51v0,42,-49,76,-90,76v-5,0,-16,-2,-18,-10v50,-4,82,-34,82,-63v0,-21,-16,-37,-50,-40v-4,0,-8,-8,-8,-8v33,-13,53,-34,53,-53v0,-32,-48,-38,-67,-19"},"4":{"d":"113,-42v8,1,20,-2,26,1v0,12,-27,17,-27,17v-3,34,3,87,-31,87v0,0,8,-6,8,-85v-28,-2,-71,5,-88,-6r96,-128v0,0,17,0,17,18xm89,-42r4,-84r-66,84r62,0"},"5":{"d":"122,-131r-74,0r-6,43v124,11,86,151,-11,151v-5,0,-15,-1,-18,-10v105,-4,107,-113,14,-124v-7,-18,5,-52,7,-74v18,-8,57,-8,81,-8v9,0,10,6,7,22"},"6":{"d":"57,-118v30,-37,86,13,77,48v0,35,-19,74,-68,74v-42,0,-57,-41,-57,-75v0,-68,50,-138,109,-138v6,0,12,2,16,9v-55,7,-98,55,-98,126v0,35,19,65,43,65v22,0,30,-27,30,-51v0,-23,-6,-58,-52,-58"},"7":{"d":"19,-150v37,2,85,-4,116,3r-52,140v-22,49,-40,83,-78,71v21,-12,38,-22,53,-67r45,-130r-42,1v-33,1,-41,16,-51,15"},"8":{"d":"55,-111v-54,-28,-42,-99,27,-101v32,0,48,21,48,41v0,23,-15,36,-40,52v60,35,54,123,-30,123v-83,0,-52,-91,-5,-115xm108,-46v0,-35,-36,-57,-39,-58v-15,10,-35,33,-35,56v0,15,11,39,35,39v24,0,39,-18,39,-37xm78,-126v3,-3,27,-19,27,-42v0,-13,-9,-32,-31,-32v-21,0,-31,20,-31,32v0,23,33,41,35,42"},"9":{"d":"85,-35v-30,37,-86,-13,-77,-48v0,-35,19,-74,68,-74v42,0,58,41,58,75v0,68,-47,147,-106,147v-6,0,-12,-2,-16,-9v55,-7,95,-64,95,-135v0,-34,-20,-65,-44,-65v-22,0,-30,27,-30,51v0,23,4,58,52,58"},":":{"d":"48,-104v0,4,-14,16,-18,16v-4,0,-16,-13,-16,-17v0,-4,14,-17,17,-17v4,0,17,14,17,18xm48,-13v0,4,-13,17,-17,17v-4,0,-16,-13,-16,-17v0,-4,13,-17,16,-17v4,0,17,13,17,17","w":62},";":{"d":"53,-104v0,4,-13,16,-17,16v-4,0,-16,-13,-16,-17v0,-4,14,-17,17,-17v4,0,16,14,16,18xm17,-12v0,-4,15,-19,18,-19v4,0,18,16,18,16v-3,21,-19,54,-41,42v11,-7,17,-13,19,-23v0,0,-14,-12,-14,-16","w":67},"<":{"d":"94,-151r-47,63r44,62v-7,6,-80,-57,-80,-63v0,-6,77,-68,83,-62","w":101},"=":{"d":"30,-107r81,-2v0,0,-6,17,-11,17r-84,3v0,0,9,-18,14,-18xm30,-64r82,-3v0,0,-7,17,-12,17r-84,4v0,0,9,-18,14,-18","w":127},">":{"d":"55,-88r-47,-63v6,-6,83,56,83,62v0,6,-73,69,-80,63","w":101},"?":{"d":"24,-235v15,20,77,39,70,64v0,28,-48,52,-49,88r-1,34v0,0,-15,0,-15,-4v-9,-52,32,-82,39,-111v-2,-30,-64,-17,-44,-71xm53,-13v0,4,-14,17,-18,17v-4,0,-16,-13,-16,-17v0,-4,14,-17,17,-17v4,0,17,13,17,17","w":99},"@":{"d":"131,-7v-31,22,-66,7,-66,-37v0,-50,49,-106,105,-79v0,39,-5,73,-17,111v30,34,63,-22,62,-54v-4,-127,-182,-127,-182,-1v0,50,36,103,91,105v-3,7,-10,9,-16,9v-59,0,-95,-62,-95,-113v0,-137,219,-159,221,-6v1,51,-59,119,-103,65xm130,-15v7,-32,18,-69,18,-102v-41,0,-57,32,-57,63v0,20,10,47,39,39","w":248},"A":{"d":"23,-23r82,-189v0,0,16,3,18,9r58,180v5,14,22,15,21,23r-71,0v1,-8,26,-9,22,-23r-19,-65r-66,0r-28,65v-6,15,24,15,23,23r-61,0v1,-8,15,-9,21,-23xm107,-181r-34,79r57,0","w":204},"B":{"d":"9,-210r86,-2v69,1,65,80,13,96v84,7,73,121,-5,119r-94,-3v1,-8,23,-10,23,-23r3,-164v0,-13,-26,-15,-26,-23xm59,-104r-2,90v37,6,79,5,79,-36v0,-40,-29,-62,-77,-54xm59,-197r0,79r36,0v33,-13,34,-81,-11,-80","w":181},"C":{"d":"186,-168v0,0,-30,-29,-65,-29v-56,0,-82,45,-82,91v0,47,33,89,83,89v50,0,74,-32,74,-16v0,22,-51,36,-82,36v-67,0,-104,-46,-104,-98v0,-59,39,-118,118,-118v26,0,64,4,64,19v0,8,-2,21,-6,26","w":197},"D":{"d":"63,-197r-3,181v0,0,33,2,52,2v62,0,91,-45,91,-90v0,-37,-28,-88,-80,-90xm14,-210r114,-2v59,0,100,30,100,96v0,58,-34,123,-117,120r-99,-4v1,-8,23,-10,23,-23r3,-164v0,-13,-24,-15,-24,-23","w":239},"E":{"d":"59,-117r58,-1v13,0,15,-16,23,-16r-1,55v-8,0,-9,-23,-22,-23r-58,-1r-1,87r67,0v17,0,26,-27,35,-27r-8,43r-140,0v1,-8,21,-10,21,-23r3,-164v0,-13,-29,-15,-27,-23r145,0r-5,42v-9,0,-11,-25,-32,-25r-56,-1","w":169},"F":{"d":"59,-103r-1,80v0,13,23,15,22,23r-68,0v1,-8,21,-10,21,-23r3,-164v0,-13,-29,-15,-27,-23r145,0r-5,42v-9,0,-11,-25,-32,-25r-56,-1r-2,77r58,-1v13,0,15,-16,23,-16r-1,55v-8,0,-9,-23,-22,-23","w":157},"G":{"d":"121,-12v38,0,40,-10,40,-54v0,-13,-18,-15,-18,-23r65,0v-1,8,-22,10,-22,23v0,17,2,48,-5,58v0,0,-38,11,-67,11v-61,0,-103,-36,-103,-99v0,-58,36,-117,116,-117v30,0,65,3,65,20v0,9,-3,22,-6,25v0,0,-30,-29,-61,-29v-59,0,-86,42,-86,88v0,49,32,97,82,97","w":206},"H":{"d":"169,-210r69,0v-2,8,-24,10,-24,21r-4,168v0,11,24,13,23,21r-69,0v1,-8,21,-9,21,-20r1,-82r-131,0r-2,81v0,11,24,13,23,21r-69,0v1,-8,21,-10,21,-21r3,-168v0,-11,-20,-13,-18,-21r68,0v-1,8,-24,10,-24,21r-2,69r132,0r1,-69v0,-11,-20,-13,-19,-21","w":245},"I":{"d":"60,-189r-3,168v0,11,27,13,26,21r-75,0v1,-8,24,-10,24,-21r3,-168v0,-11,-25,-13,-23,-21r73,0v-1,8,-25,10,-25,21","w":92},"J":{"d":"14,-210r75,0v-1,8,-25,10,-25,23r-2,135v-1,62,-3,108,-57,115v-9,-3,-11,-22,-11,-22v42,0,42,-7,42,-35r3,-193v0,-13,-26,-15,-25,-23","w":89},"K":{"d":"145,-210r41,0v-1,8,-22,12,-33,23r-67,68r85,96v10,12,26,15,25,23r-43,0v-5,-13,-94,-113,-94,-113v0,0,79,-83,86,-97xm60,-189r-3,168v0,11,25,13,24,21r-74,0v1,-8,25,-10,25,-23r3,-164v0,-13,-24,-15,-23,-23r73,0v-1,8,-25,10,-25,21","w":199},"L":{"d":"57,-16r63,0v17,0,27,-27,36,-27r-8,43r-140,0v1,-8,24,-10,24,-23r3,-166v0,-11,-25,-13,-23,-21r73,0v-1,8,-25,10,-25,21","w":155,"k":{"T":18}},"M":{"d":"59,-179r-3,156v0,13,34,15,34,23r-76,0v0,-8,24,-10,24,-23r4,-164v0,-13,-29,-15,-29,-23r58,0r80,173r80,-173r53,0v-1,8,-25,10,-25,23r-3,164v0,13,29,15,29,23r-81,0v0,-8,26,-10,26,-23r5,-158r-87,186v0,0,-6,0,-8,-4v0,0,-80,-163,-81,-180","w":293},"N":{"d":"35,-23r2,-164v0,-13,-29,-15,-29,-23r56,0r141,171r1,-148v0,-13,-32,-15,-32,-23r68,0v-1,8,-18,10,-18,22r-2,181v0,7,-16,10,-16,10v0,0,-144,-168,-153,-189r1,163v0,13,33,15,33,23r-76,0v0,-8,24,-10,24,-23","w":250},"O":{"d":"221,-116v0,58,-39,120,-117,120v-60,0,-93,-48,-93,-99v0,-60,42,-118,118,-118v58,0,92,44,92,97xm114,-12v48,0,80,-44,80,-90v0,-48,-27,-96,-78,-96v-46,0,-78,44,-78,90v0,48,34,96,76,96","w":231},"P":{"d":"81,0r-76,0v1,-8,25,-10,25,-23r3,-164v0,-13,-25,-15,-25,-23r95,-2v37,1,54,26,54,52v0,35,-23,65,-62,65v0,0,-22,-1,-26,-13v49,0,59,-24,59,-47v0,-30,-32,-50,-70,-42r-3,174v0,13,26,15,26,23","w":165},"Q":{"d":"239,48v0,0,5,23,-30,23v-32,0,-80,-29,-111,-68v-56,-3,-87,-49,-87,-98v0,-60,42,-118,118,-118v132,0,115,206,-10,216v40,30,75,46,120,45xm114,-12v48,0,80,-44,80,-90v0,-48,-27,-96,-78,-96v-46,0,-78,44,-78,90v0,48,34,96,76,96","w":231},"R":{"d":"62,-197r-2,89v40,5,68,-11,68,-43v0,-33,-27,-54,-66,-46xm59,-95r-1,74v0,11,26,13,26,21r-76,0v1,-8,25,-10,25,-23r3,-164v0,-13,-27,-14,-27,-23r93,-2v73,2,66,89,13,112r55,77v10,14,25,14,25,23r-43,0r-63,-95r-30,0","w":196},"S":{"d":"89,-213v9,0,44,0,44,13v0,53,-9,1,-63,3v-17,0,-26,13,-26,31v0,39,91,52,91,107v0,33,-19,63,-63,63v-18,0,-55,-3,-55,-18v0,-11,4,-21,6,-23v14,24,88,43,88,-7v0,-50,-91,-63,-91,-112v0,-46,38,-57,69,-57","w":153},"T":{"d":"162,-193r-52,0r-4,170v0,13,32,15,31,23r-80,0v1,-8,24,-10,24,-23r3,-170r-49,0v-18,0,-24,28,-32,27r3,-45v23,3,165,3,188,0r-1,45v-8,1,-12,-27,-31,-27","w":195},"U":{"d":"202,-187v-3,93,11,191,-89,191v-111,0,-81,-99,-83,-191v0,-13,-24,-15,-24,-23r74,0v-1,8,-25,10,-25,23v2,77,-25,176,64,175v38,0,62,-20,63,-90r2,-85v0,-13,-29,-15,-29,-23r70,0v-2,8,-23,10,-23,23","w":227},"V":{"d":"180,-187r-85,194v0,0,-7,1,-8,-3r-68,-191v-5,-14,-19,-14,-17,-23r71,0v-1,8,-28,9,-23,23r49,147r62,-147v6,-15,-25,-15,-24,-23r64,0v-2,8,-15,8,-21,23","w":200},"W":{"d":"277,-187r-83,194v0,0,-7,1,-8,-3r-39,-116r-52,119v0,0,-7,1,-8,-3r-68,-191v-5,-14,-19,-14,-17,-23r71,0v-1,8,-28,9,-23,23r49,147r40,-94r-18,-53v-5,-14,-16,-14,-15,-23r69,0v-1,8,-29,9,-24,23r47,147r60,-147v6,-15,-25,-15,-24,-23r63,0v-2,8,-14,8,-20,23","w":297},"X":{"d":"80,-105r-44,-82v-8,-15,-23,-14,-21,-23r68,0v-1,8,-25,8,-17,23r31,60r41,-60v11,-16,-15,-15,-14,-23r59,0v-2,8,-12,7,-23,22r-53,75r49,90v9,16,26,14,25,23r-67,0v1,-8,19,-8,12,-21r-37,-70r-50,72v-7,10,21,11,20,19r-59,0v1,-8,11,-9,17,-18","w":183},"Y":{"d":"106,-103r-2,80v0,13,30,15,29,23r-79,0v1,-8,25,-10,25,-23r1,-73r-57,-91v-10,-17,-23,-15,-21,-23r72,0v-1,8,-29,7,-20,23r42,71r52,-71v10,-14,-21,-15,-20,-23r66,0v-2,8,-13,8,-24,22","w":194},"Z":{"d":"18,-210r154,0v4,0,8,6,8,6r-128,174v-7,10,-15,15,-15,15v122,-3,118,-5,140,-24v4,11,2,39,-9,39r-160,0v-4,0,-6,-6,-6,-6r129,-172v7,-10,16,-17,16,-17v-118,3,-116,11,-136,20v-2,-8,-1,-36,7,-35","w":181},"[":{"d":"12,28r4,-245r50,-3v-1,9,-35,14,-35,14r-4,223v0,0,35,5,34,14","w":68},"\\":{"d":"59,30r-59,-241v0,0,15,-4,16,0r60,241v0,0,-16,4,-17,0","w":75},"]":{"d":"59,-217r-4,245r-49,3v-1,-9,34,-14,34,-14r4,-223v0,0,-34,-5,-35,-14","w":68},"^":{"d":"19,-132r-10,-11r74,-74r74,74r-11,11r-63,-64","w":168},"_":{"d":"7,5r134,0v0,0,-1,16,-5,16r-134,0v0,0,1,-16,5,-16","w":144},"a":{"d":"85,-60v-24,5,-48,-3,-46,25v0,13,7,25,18,25v5,0,27,-15,27,-16xm85,-68v-3,-22,10,-50,-19,-49v-20,0,-30,18,-36,23v-4,-5,-4,-19,-4,-23v0,-10,27,-13,36,-13v26,0,48,13,47,35r-2,73v0,12,20,14,20,22r-43,3r2,-21v-18,30,-72,30,-72,-14v0,-35,41,-39,71,-36","w":132},"b":{"d":"49,-105r-2,89v4,3,19,7,31,7v26,0,38,-25,38,-51v1,-46,-33,-67,-67,-45xm49,-115v38,-34,92,-5,92,44v0,36,-22,75,-60,75v-16,0,-57,-4,-57,-17r4,-185v0,-14,-18,-14,-18,-22r43,-11v-7,33,-3,77,-4,116","w":152},"c":{"d":"78,-130v40,0,34,21,29,33v0,0,-18,-20,-34,-20v-17,0,-37,19,-37,50v0,48,38,65,75,45v1,20,-23,25,-44,26v-37,0,-57,-29,-57,-61v0,-35,23,-73,68,-73","w":118},"d":{"d":"75,-117v-55,1,-48,100,-2,103v13,0,34,-14,34,-15r1,-84xm135,-231r-6,209v0,12,18,14,18,22r-41,3r4,-27v-10,15,-29,28,-48,28v-31,0,-52,-29,-52,-60v0,-50,41,-88,98,-70r2,-72v0,-14,-18,-14,-18,-22","w":155},"e":{"d":"37,-71v-3,49,41,72,78,47v1,22,-27,28,-49,28v-36,0,-55,-29,-55,-61v0,-35,23,-73,68,-73v24,0,45,22,44,52v-22,6,-60,4,-86,7xm38,-80r62,-4v-3,-17,-17,-34,-29,-34v-14,0,-29,19,-33,38","w":130},"f":{"d":"27,-19r2,-80v0,-11,-20,-15,-19,-25r19,-3v4,-47,-5,-86,77,-104v7,0,12,9,13,24v-43,0,-64,2,-65,33r-1,48r36,0v-1,13,-24,15,-37,18r-2,89v0,10,36,11,36,19r-76,0v1,-8,17,-10,17,-19","w":92,"k":{"?":-25}},"g":{"d":"46,-7v30,12,88,0,88,39v0,33,-37,53,-70,53v-26,0,-57,-13,-57,-41v0,-13,6,-27,20,-27v-10,31,17,50,43,50v20,0,49,-11,49,-28v0,-26,-87,-12,-102,-40v0,-12,30,-19,45,-24v-32,0,-48,-24,-48,-48v0,-38,53,-74,90,-48r36,-9v12,22,-11,29,-26,18v30,53,-20,89,-68,105xm68,-120v-18,0,-32,18,-32,40v0,22,12,45,34,45v43,0,40,-83,-2,-85","w":143},"h":{"d":"53,-109v29,-30,89,-32,88,23r-1,67v0,9,22,11,22,19r-63,0v1,-8,17,-10,17,-19r1,-62v-4,-60,-48,-24,-64,-16r-2,78v0,9,23,11,23,19r-63,0v0,-8,17,-10,17,-19r4,-179v0,-14,-18,-14,-18,-22r43,-11v-3,39,-3,81,-4,122","w":166},"i":{"d":"28,-19r2,-83v0,-14,-18,-13,-18,-21r43,-11v-3,36,-3,77,-4,115v0,9,23,11,22,19r-63,0v1,-8,18,-10,18,-19xm58,-180v0,4,-13,16,-17,16v-4,0,-16,-13,-16,-17v0,-4,13,-17,16,-17v4,0,17,14,17,18","w":77},"j":{"d":"28,27r2,-129v0,-14,-18,-13,-18,-21r43,-11v-4,42,-3,88,-4,132v-1,33,0,73,-53,87v-11,0,-12,-22,-12,-22v43,0,42,-5,42,-36xm59,-180v0,4,-13,16,-17,16v-4,0,-16,-13,-16,-17v0,-4,13,-17,16,-17v4,0,17,14,17,18","w":75},"k":{"d":"148,-126v-13,12,-54,30,-71,46r58,61v11,11,25,10,25,19r-41,0v0,-8,-66,-76,-66,-76v16,-13,35,-24,49,-39v0,-3,-9,-5,-8,-11r54,0xm28,-19r4,-179v0,-14,-22,-13,-17,-22r43,-11v-7,66,-4,142,-7,212v0,9,23,11,23,19r-61,0v1,-8,15,-10,15,-19","w":159},"l":{"d":"57,-231v-7,66,-4,142,-7,212v0,9,24,11,23,19r-63,0v1,-8,17,-10,17,-19r4,-179v0,-14,-20,-14,-17,-22","w":81},"m":{"d":"203,-81v-5,-58,-44,-26,-64,-16r-1,78v0,9,22,11,22,19r-63,0v1,-8,17,-10,17,-19r2,-62v-3,-59,-50,-24,-65,-16r-1,78v0,9,22,11,22,19r-63,0v1,-8,18,-10,18,-19r1,-82v0,-15,-19,-13,-18,-21r41,-12r-3,28v24,-26,72,-37,88,0v28,-31,92,-38,91,20r-1,67v0,9,22,11,22,19r-63,0v1,-8,17,-10,17,-19","w":253},"n":{"d":"116,-81v-3,-59,-50,-24,-65,-16r-1,78v0,9,22,11,22,19r-63,0v1,-8,18,-10,18,-19r1,-82v0,-15,-19,-13,-18,-21r41,-12r-3,28v28,-31,92,-38,91,20r-1,67v0,9,22,11,22,19r-63,0v1,-8,17,-10,17,-19","w":164},"o":{"d":"10,-57v0,-35,25,-73,74,-73v36,0,55,28,55,60v0,35,-24,74,-73,74v-36,0,-56,-29,-56,-61xm113,-62v0,-28,-14,-56,-38,-56v-25,0,-39,27,-39,54v0,28,15,56,39,56v25,0,38,-27,38,-54","w":149},"p":{"d":"52,-98r-2,88v45,8,73,-13,73,-52v0,-50,-39,-63,-71,-36xm50,1r-1,65v0,9,29,11,29,19r-71,0v0,-8,19,-10,19,-19r4,-167v0,-15,-23,-13,-18,-21r40,-12r-3,28v32,-44,101,-23,99,35v-2,51,-40,88,-98,72","w":159},"q":{"d":"128,-126v8,56,-2,130,0,192v0,9,21,11,21,19r-65,0v0,-8,21,-10,21,-19r2,-77v-39,34,-95,6,-95,-45v0,-37,22,-77,60,-74xm107,-21r1,-90v-40,-10,-72,5,-72,46v0,27,13,53,39,53v12,0,31,-9,32,-9","w":154},"r":{"d":"52,-134r-3,28v10,-12,24,-25,43,-25v22,0,18,19,10,32v-12,-21,-40,-11,-50,-1r-1,81v0,10,31,11,31,19r-72,0v1,-8,18,-10,18,-19r2,-82v0,-14,-18,-13,-18,-21","w":108},"s":{"d":"65,-130v6,0,31,0,31,10v0,8,-5,23,-5,23v0,0,-15,-21,-36,-21v-17,0,-20,7,-20,18v0,20,63,31,63,62v0,31,-24,42,-50,42v-15,0,-36,-4,-36,-16v0,-8,5,-17,5,-17v7,17,58,33,58,0v0,-26,-61,-33,-61,-65v0,-29,27,-36,51,-36","w":110},"t":{"d":"26,-128v7,-9,4,-28,22,-26r0,28r46,0v-3,15,-31,14,-46,18v1,32,-13,96,21,94v7,2,20,-6,25,-3v-11,32,-72,30,-71,-20r1,-62v0,-10,-18,-17,-18,-25","w":98},"u":{"d":"140,-134v-3,36,-3,75,-4,112v0,12,18,14,18,22r-41,3r4,-27v-22,33,-94,45,-92,-16r2,-62v0,-14,-18,-13,-18,-21r43,-11v3,41,-23,121,23,121v13,0,39,-19,39,-19r0,-70v0,-14,-18,-13,-18,-21","w":164},"v":{"d":"133,-126v-28,34,-42,88,-63,131v0,0,-8,1,-9,-3r-48,-109v-5,-10,-14,-10,-12,-19r56,0v-1,8,-23,9,-19,19r33,83r31,-83v4,-10,-15,-11,-14,-19r45,0","w":131},"w":{"d":"195,-107r-47,112v0,0,-8,1,-9,-3r-36,-80v-9,30,-22,55,-33,83v0,0,-8,1,-9,-3r-48,-109v-5,-10,-14,-10,-12,-19r56,0v-1,8,-23,9,-19,19r33,83r26,-69v-2,-14,-18,-23,-19,-33r57,0v-1,8,-23,9,-19,19r33,83r31,-83v4,-10,-15,-11,-14,-19r45,0v-2,8,-11,9,-16,19","w":209},"x":{"d":"61,-54r-28,35v-6,7,17,11,16,19r-50,0v16,-21,39,-41,55,-63r-30,-44v-6,-9,-18,-10,-16,-19r56,0v-1,8,-20,10,-14,19r18,30r24,-30v7,-9,-8,-11,-7,-19r43,0v-2,8,-14,10,-21,19r-32,39r33,49v5,8,19,11,18,19r-53,0v1,-8,14,-11,9,-19","w":127},"y":{"d":"60,0r-46,-107v-4,-10,-15,-10,-13,-19r57,0v-1,8,-23,9,-19,19r32,83r31,-83v4,-10,-16,-11,-15,-19r47,0v-2,8,-11,9,-16,19r-68,160v-5,22,-49,51,-54,10v48,1,48,-34,64,-63","w":132},"z":{"d":"24,-126r88,0v4,0,7,6,7,6v-28,34,-53,75,-83,106r43,-1v20,0,22,-12,35,-16v0,0,1,31,-10,31r-89,0v-4,0,-6,-6,-6,-6v27,-34,53,-77,84,-107r-43,1v-20,1,-22,15,-33,14v0,0,1,-28,7,-28","w":126},"{":{"d":"27,-94v41,30,13,106,40,114v19,6,20,15,20,15v-75,1,-31,-91,-81,-129v51,-37,10,-132,85,-130v0,0,0,9,-20,15v-27,8,-2,85,-44,115","w":92},"|":{"d":"0,-252r7,0r0,310r-7,0r0,-310","w":6},"}":{"d":"68,-94v-40,-30,-12,-107,-38,-115v-20,-6,-21,-15,-21,-15v75,-1,31,92,80,130v-50,37,-9,131,-84,129v0,0,1,-9,21,-15v27,-8,1,-84,42,-114","w":92},"~":{"d":"82,-79v8,-5,16,-22,25,-11v-12,38,-47,21,-62,-2v-8,4,-17,22,-25,11v11,-39,49,-20,62,2","w":128},"'":{"d":"12,-192v0,-4,15,-18,18,-18v4,0,18,15,18,15v-3,21,-18,55,-40,43v11,-7,16,-14,18,-24v0,0,-14,-12,-14,-16","w":52},"`":{"d":"73,-160v-2,2,-52,-35,-52,-35v-6,-13,4,-21,16,-16v0,0,38,49,36,51","w":91},"#":{"d":"21,-84r44,-1r4,-35r-41,2v0,0,1,-19,8,-19r35,0r8,-66v0,0,18,2,17,10r-8,55r39,0r8,-65v0,0,18,2,17,10r-8,54r49,0v0,0,0,17,-7,17r-44,1r-4,35r39,-1v0,0,1,17,-6,17r-36,1r-9,67v0,0,-15,-2,-14,-9r7,-57r-40,1r-8,65v0,0,-16,-2,-15,-9r7,-56r-50,1v0,0,1,-18,8,-18xm86,-120r-5,35r40,-1r4,-35","w":198},"!":{"d":"57,-233v0,66,-8,122,-12,184v0,0,-14,0,-14,-4r-2,-144v0,0,20,-38,28,-36xm55,-13v0,4,-14,17,-18,17v-4,0,-15,-13,-15,-17v0,-4,13,-17,16,-17v4,0,17,13,17,17","w":76},"\"":{"d":"12,-192v0,-4,15,-18,18,-18v4,0,18,15,18,15v-3,21,-18,55,-40,43v11,-7,16,-14,18,-24v0,0,-14,-12,-14,-16xm59,-192v0,-4,15,-18,18,-18v4,0,18,15,18,15v-3,21,-18,55,-41,43v11,-7,17,-14,19,-24v0,0,-14,-12,-14,-16","w":99},"\u00a0":{"w":72}}}); diff --git a/lib/fonts/Terminator_Cyr.font.js b/lib/fonts/Terminator_Cyr.font.js deleted file mode 100644 index 17ea85c2..00000000 --- a/lib/fonts/Terminator_Cyr.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:410,face:{"font-family":"Terminator_Cyr","font-weight":400,"font-stretch":"semi-expanded","units-per-em":"360","panose-1":"2 6 3 0 2 0 0 2 0 4",ascent:"288",descent:"-72","x-height":"1","cap-height":"1",bbox:"17.1866 -373 463 101","underline-thickness":"14.2383","underline-position":"-21.6211","unicode-range":"U+0020-U+044F"},glyphs:{" ":{w:233},"!":{d:"87,-266r0,168r-69,0r0,-168r69,0xm87,0r-69,0r0,-68r69,0r0,68",w:104},'"':{d:"103,-188r18,0r0,-24r-21,0r0,-54r76,0v4,68,4,135,-73,132r0,-54xm18,-266r73,0v4,68,4,135,-73,132r0,-54r19,0r0,-24r-19,0r0,-54",w:194},"#":{d:"136,-194r0,-76r43,0r0,76r52,0r0,51r-213,0r0,-51r52,0r0,-76r43,0r0,76r23,0xm136,0r0,-76r-23,0r0,76r-43,0r0,-76r-52,0r0,-51r213,0r0,51r-52,0r0,76r-43,0",w:248},"$":{d:"18,-183v0,-45,32,-80,77,-80r92,0r0,-28r71,0r0,28r155,0r0,65r-323,0r0,31r255,0v49,3,83,33,83,81v0,50,-35,85,-84,85r-86,0r0,24r-71,0r0,-24r-153,0r0,-68r325,0r0,-30r-263,0v-47,-5,-78,-36,-78,-84",w:446},"%":{d:"190,-184v0,49,-31,86,-79,86v-54,0,-93,-29,-93,-82v0,-50,32,-82,82,-82v51,0,90,28,90,78xm432,-83v0,49,-35,81,-85,81v-49,0,-85,-32,-85,-81v0,-50,32,-85,81,-85v53,0,89,33,89,85xm214,0r0,-265r25,0r0,265r-25,0xm90,-196r0,28r30,0r0,-28r-30,0xm361,-69r0,-29r-30,0r0,29r30,0",w:449},"&":{d:"32,-156v-27,-47,2,-110,59,-110r304,0r0,68r-297,0r230,54r0,-25r68,0r0,41r26,7r0,71r-26,-5v-11,29,-28,56,-66,56r-223,0v-80,4,-107,-90,-75,-157xm316,-69r-226,-52r0,52r226,0",w:439},"'":{d:"18,-194r0,-49r66,0v3,61,4,122,-65,119r0,-47r17,0r0,-23r-18,0",w:101},"(":{d:"90,33v-44,-1,-72,-28,-72,-72r0,-194v3,-41,30,-65,72,-67r0,57r-20,0r0,219r20,0r0,57",w:108},")":{d:"18,-298v44,1,73,25,73,67v0,73,6,158,-5,223v-10,26,-33,43,-68,44r0,-58r20,0r0,-219r-20,0r0,-57",w:108},"*":{d:"101,-187r19,-32r42,24r-17,33r37,0r0,44r-37,0r19,34r-41,23r-21,-30r-20,30r-43,-23r18,-34r-39,0r0,-44r42,0r-22,-33r43,-24",w:200},"+":{d:"83,-232r65,0r0,65r64,0r0,64r-64,0r0,65r-65,0r0,-65r-65,0r0,-64r65,0r0,-65",w:230},",":{d:"18,0r0,-49r65,0v-2,40,10,90,-21,105v-10,8,-26,15,-42,15r0,-48r16,0r0,-23r-18,0",w:101},"-":{d:"18,-121r0,-60r169,0r0,60r-169,0",w:205},".":{d:"18,0r0,-72r77,0r0,72r-77,0",w:113},"/":{d:"376,-265r-264,265r-94,0r265,-265r93,0",w:393},"0":{d:"18,-189v8,-110,169,-76,279,-76v55,0,89,33,89,87r0,90v-2,52,-33,86,-84,86r-193,0v-53,-2,-91,-35,-91,-86r0,-101xm85,-197r0,126r237,0r0,-126r-237,0",w:404},"1":{d:"64,-244v40,-39,120,-20,120,47r0,197r-68,0r0,-201r-50,51r-48,-51",w:201},"2":{d:"312,-206v5,56,-10,104,-56,104r-184,0r0,33r234,0r0,69r-286,0v-2,-78,-9,-167,66,-167r176,0r0,-34r-244,0r0,-65r237,0v30,5,54,27,57,60",w:330},"3":{d:"371,-134v42,53,1,133,-68,133r-284,0r0,-68r300,0r0,-29r-301,0r0,-69r301,0r0,-31r-301,0r0,-68r279,0v72,-4,113,75,74,132",w:406},"4":{d:"121,-73v-68,1,-104,-26,-103,-93r0,-100r73,0r0,125r246,0r0,-125r70,0r0,125r29,0r0,68r-29,0r0,73r-70,0r0,-73r-216,0",w:453},"5":{d:"400,-87v0,61,-47,87,-108,87r-273,0r0,-69r312,0r0,-30r-313,0r0,-166r366,0r0,66r-296,0r0,30r227,0v50,3,85,32,85,82",w:418},"6":{d:"18,-179v2,-62,45,-86,106,-86r263,0r0,68r-298,0r0,30r231,0v49,3,81,33,81,82v0,51,-35,85,-86,85r-215,0v-84,-2,-85,-89,-82,-179xm89,-98r0,28r243,0r0,-28r-243,0",w:419},"7":{d:"318,-265v68,-4,97,88,41,125r-214,141r-119,0r298,-197r-306,0r0,-69r300,0",w:409},"8":{d:"382,-134v46,59,-4,139,-79,133v-114,-8,-280,36,-285,-81v0,-20,8,-37,17,-49v-38,-57,-3,-135,72,-135r209,0v68,-3,107,78,66,132xm329,-201r-240,0r0,32r240,0r0,-32xm329,-98r-240,0r0,28r240,0r0,-28",w:417},"9":{d:"18,-181v0,-52,40,-84,92,-84r199,0v58,2,96,31,96,87r0,93v-4,50,-37,85,-87,85r-285,0r0,-69r302,0r0,-30r-230,0v-50,-3,-87,-31,-87,-82xm85,-197r0,31r250,0r0,-31r-250,0",w:422},":":{d:"18,-143r0,-74r77,0r0,74r-77,0xm18,-40r0,-73r77,0r0,73r-77,0",w:113},";":{d:"18,0r0,-54r81,0v4,72,4,143,-79,138r0,-56r23,0r0,-28r-25,0xm18,-82r0,-54r81,0r0,54r-81,0",w:117},"<":{d:"18,-135r230,-97r0,65r-76,32r76,32r0,65",w:265},"=":{d:"18,-194r130,0r0,51r-130,0r0,-51xm18,-127r130,0r0,51r-130,0r0,-51",w:165},">":{d:"237,-135r-219,97r0,-65r72,-32r-72,-32r0,-65",w:254},"?":{d:"410,-185v0,53,-37,85,-89,85r-141,0r0,-67r160,0r0,-31r-322,0r0,-67r299,0v54,2,93,27,93,80xm180,1r0,-69r69,0r0,69r-69,0",w:427},"@":{d:"99,-80v6,-59,30,-104,90,-104v18,0,31,7,40,20r9,-15r43,0r-29,117v0,6,3,10,9,10v42,-5,60,-42,60,-85v0,-64,-49,-95,-115,-95v-87,0,-142,49,-146,137v-5,121,156,145,238,82r21,29v-107,83,-308,43,-301,-110v5,-111,75,-177,187,-177v91,0,156,41,156,134v0,69,-39,120,-106,120v-26,0,-40,-9,-42,-28v-26,46,-121,34,-114,-35xm193,-150v-33,4,-40,38,-44,71v-3,36,44,31,53,6v8,-23,27,-73,-9,-77",w:379},A:{d:"94,0r-76,0r119,-227v12,-36,79,-57,105,-21v53,73,89,167,134,248r-74,0r-40,-69r-131,0xm165,-137r63,0r-31,-57",w:393},B:{d:"382,-134v47,49,3,134,-69,134r-295,0r0,-266r283,0v78,-6,120,68,81,132xm326,-69r0,-30r-237,0r0,30r237,0xm326,-168r0,-30r-237,0r0,30r237,0",w:420},C:{d:"18,-167v0,-66,35,-98,101,-98r277,0r0,66r-309,0r0,133r309,0r0,66r-291,0v-48,-3,-87,-29,-87,-78r0,-89",w:414},D:{d:"393,-83v-4,51,-39,83,-92,83r-283,0r0,-266r284,0v53,3,91,31,91,84r0,99xm323,-66r0,-133r-237,0r0,133r237,0"},E:{d:"18,-181v2,-56,38,-84,94,-85r279,0r0,68r-305,0r0,31r305,0r0,69r-305,0r0,29r305,0r0,70r-279,0v-55,-2,-94,-32,-94,-86r0,-96",w:409},F:{d:"18,-179v2,-59,40,-83,100,-84r265,0r0,67r-298,0r0,29r297,0r0,67r-297,0r0,100r-67,0r0,-179",w:400},G:{d:"18,-192v2,-53,42,-74,97,-74r283,0r0,67r-313,0r0,130r243,0r0,-30r-119,0r0,-69r188,0r0,85v-5,116,-167,82,-281,82v-56,0,-98,-28,-98,-85r0,-106",w:415},H:{d:"85,-266r0,98r245,0r0,-98r68,0r0,266r-68,0r0,-100r-245,0r0,100r-67,0r0,-266r67,0",w:415},I:{d:"92,-266r0,268r-74,0r0,-268r74,0",w:110},J:{d:"390,-75v-2,46,-32,75,-75,75r-215,0v-51,-3,-80,-40,-82,-92r71,0r0,23r233,0r0,-196r68,0r0,190",w:408},K:{d:"256,-266r138,0r-229,133r231,133r-140,0r-135,-78v-14,-9,-22,-19,-29,-35r0,113r-74,0r0,-266r74,0r0,115v11,-22,27,-34,48,-46",w:413},L:{d:"100,0v-46,-4,-82,-34,-82,-82r0,-184r70,0r0,197r302,0r0,69r-290,0",w:407},M:{d:"280,-216v18,-74,132,-57,132,24r0,192r-65,0r0,-195r-76,165v-12,35,-71,51,-98,17v-40,-49,-60,-121,-91,-180r0,195r-64,-2r0,-200v-4,-69,98,-85,125,-30v26,54,47,114,71,170",w:429},N:{d:"389,-70v5,69,-77,93,-123,48r-181,-177r0,199r-67,0r0,-207v2,-62,77,-82,122,-38r181,178r0,-198r68,0r0,195",w:406},O:{d:"18,-186v8,-114,176,-79,290,-79v50,0,84,35,84,85r0,98v-4,50,-35,81,-85,81r-204,0v-52,-3,-85,-31,-85,-85r0,-100xm322,-196r-235,0r0,128r235,0r0,-128"},P:{d:"407,-183v0,51,-36,85,-87,85r-231,0r0,98r-71,0r0,-266r294,0v54,3,95,31,95,83xm89,-198r0,34r247,0r0,-34r-247,0",w:424},Q:{d:"297,-263v53,2,89,29,89,79r0,115r28,0r0,69r-311,0v-47,-5,-85,-26,-85,-73r0,-110v3,-50,35,-80,86,-80r193,0xm320,-69r0,-126r-239,0r0,126r239,0",w:431},R:{d:"374,-135v27,25,16,86,18,135r-68,0r0,-99r-236,0r0,99r-70,0r0,-265r290,0v65,0,104,78,66,130xm88,-166r236,0r0,-32r-236,0r0,32"},S:{d:"18,-181v0,-56,43,-82,100,-82r290,0r0,65r-317,0r0,32r245,0v52,3,90,32,90,84v0,51,-38,82,-90,82r-301,0r0,-67r322,0r0,-31r-248,0v-53,-3,-91,-31,-91,-83",w:443},T:{d:"18,-265r378,0r0,67r-155,0r0,198r-67,0r0,-198r-156,0r0,-67",w:413},U:{d:"100,0v-49,-6,-82,-36,-82,-86r0,-180r70,0r0,199r241,0r0,-199r71,0r0,189v-6,44,-34,77,-80,77r-220,0",w:417},V:{d:"95,-265r106,198r107,-199r77,0r-126,237v-16,32,-75,42,-103,13v-12,-13,-22,-27,-31,-44r-107,-205r77,0",w:402},W:{d:"89,-266r36,197v19,-57,30,-121,54,-173v16,-35,93,-42,111,-1v23,51,35,114,54,170r38,-193r68,0r-40,210v-7,45,-68,80,-107,44v-43,-39,-44,-125,-67,-186v-24,61,-27,143,-70,184v-37,35,-99,5,-108,-43r-40,-209r71,0",w:467},X:{d:"389,-266r-113,134r115,132r-83,0v-34,-40,-75,-72,-104,-117v-25,45,-62,77,-92,117r-89,0r114,-133r-119,-133r90,0r96,118v26,-46,67,-77,98,-118r87,0",w:409},Y:{d:"169,-78r-151,-188r85,0r98,122r98,-122r84,0r-147,188r0,78r-67,0r0,-78",w:400},Z:{d:"101,-1v-84,10,-115,-117,-30,-136r284,-62r-326,0r0,-67r333,0v72,-7,98,104,38,128v-88,35,-196,44,-292,68r313,0r0,69r-320,0",w:451},"[":{d:"94,-194r0,118r44,0r0,76r-120,0r0,-270r120,0r0,76r-44,0",w:155},"\\":{d:"111,-265r264,265r-93,0r-264,-265r93,0",w:393},"]":{d:"62,-194r-44,0r0,-76r120,0r0,270r-120,0r0,-76r44,0r0,-118",w:155},"^":{d:"92,-280r75,86r-52,0r-23,-23r-22,23r-52,0",w:185},_:{d:"18,101r0,-52r184,0r0,52r-184,0",w:220},"`":{d:"18,-194r0,-49r66,0v3,61,4,122,-65,119r0,-47r17,0r0,-23r-18,0",w:101},a:{d:"94,0r-76,0r119,-227v12,-36,79,-57,105,-21v53,73,89,167,134,248r-74,0r-40,-69r-131,0xm165,-137r63,0r-31,-57",w:393},b:{d:"382,-134v47,49,3,134,-69,134r-295,0r0,-266r283,0v78,-6,120,68,81,132xm326,-69r0,-30r-237,0r0,30r237,0xm326,-168r0,-30r-237,0r0,30r237,0",w:420},c:{d:"18,-167v0,-66,35,-98,101,-98r277,0r0,66r-309,0r0,133r309,0r0,66r-291,0v-48,-3,-87,-29,-87,-78r0,-89",w:414},d:{d:"393,-83v-4,51,-39,83,-92,83r-283,0r0,-266r284,0v53,3,91,31,91,84r0,99xm323,-66r0,-133r-237,0r0,133r237,0"},e:{d:"18,-181v2,-56,38,-84,94,-85r279,0r0,68r-305,0r0,31r305,0r0,69r-305,0r0,29r305,0r0,70r-279,0v-55,-2,-94,-32,-94,-86r0,-96",w:409},f:{d:"18,-179v2,-59,40,-83,100,-84r265,0r0,67r-298,0r0,29r297,0r0,67r-297,0r0,100r-67,0r0,-179",w:400},g:{d:"18,-192v2,-53,42,-74,97,-74r283,0r0,67r-313,0r0,130r243,0r0,-30r-119,0r0,-69r188,0r0,85v-5,116,-167,82,-281,82v-56,0,-98,-28,-98,-85r0,-106",w:415},h:{d:"85,-266r0,98r245,0r0,-98r68,0r0,266r-68,0r0,-100r-245,0r0,100r-67,0r0,-266r67,0",w:415},i:{d:"92,-266r0,268r-74,0r0,-268r74,0",w:110},j:{d:"390,-75v-2,46,-32,75,-75,75r-215,0v-51,-3,-80,-40,-82,-92r71,0r0,23r233,0r0,-196r68,0r0,190",w:408},k:{d:"256,-266r138,0r-229,133r231,133r-140,0r-135,-78v-14,-9,-22,-19,-29,-35r0,113r-74,0r0,-266r74,0r0,115v11,-22,27,-34,48,-46",w:413},l:{d:"100,0v-46,-4,-82,-34,-82,-82r0,-184r70,0r0,197r302,0r0,69r-290,0",w:407},m:{d:"280,-216v18,-74,132,-57,132,24r0,192r-65,0r0,-195r-76,165v-12,35,-71,51,-98,17v-40,-49,-60,-121,-91,-180r0,195r-64,-2r0,-200v-4,-69,98,-85,125,-30v26,54,47,114,71,170",w:429},n:{d:"389,-70v5,69,-77,93,-123,48r-181,-177r0,199r-67,0r0,-207v2,-62,77,-82,122,-38r181,178r0,-198r68,0r0,195",w:406},o:{d:"18,-186v8,-114,176,-79,290,-79v50,0,84,35,84,85r0,98v-4,50,-35,81,-85,81r-204,0v-52,-3,-85,-31,-85,-85r0,-100xm322,-196r-235,0r0,128r235,0r0,-128"},p:{d:"407,-183v0,51,-36,85,-87,85r-231,0r0,98r-71,0r0,-266r294,0v54,3,95,31,95,83xm89,-198r0,34r247,0r0,-34r-247,0",w:424},q:{d:"297,-263v53,2,89,29,89,79r0,115r28,0r0,69r-311,0v-47,-5,-85,-26,-85,-73r0,-110v3,-50,35,-80,86,-80r193,0xm320,-69r0,-126r-239,0r0,126r239,0",w:431},r:{d:"374,-135v27,25,16,86,18,135r-68,0r0,-99r-236,0r0,99r-70,0r0,-265r290,0v65,0,104,78,66,130xm88,-166r236,0r0,-32r-236,0r0,32"},s:{d:"18,-181v0,-56,43,-82,100,-82r290,0r0,65r-317,0r0,32r245,0v52,3,90,32,90,84v0,51,-38,82,-90,82r-301,0r0,-67r322,0r0,-31r-248,0v-53,-3,-91,-31,-91,-83",w:443},t:{d:"18,-265r378,0r0,67r-155,0r0,198r-67,0r0,-198r-156,0r0,-67",w:413},u:{d:"100,0v-49,-6,-82,-36,-82,-86r0,-180r70,0r0,199r241,0r0,-199r71,0r0,189v-6,44,-34,77,-80,77r-220,0",w:417},v:{d:"95,-265r106,198r107,-199r77,0r-126,237v-16,32,-75,42,-103,13v-12,-13,-22,-27,-31,-44r-107,-205r77,0",w:402},w:{d:"89,-266r36,197v19,-57,30,-121,54,-173v16,-35,93,-42,111,-1v23,51,35,114,54,170r38,-193r68,0r-40,210v-7,45,-68,80,-107,44v-43,-39,-44,-125,-67,-186v-24,61,-27,143,-70,184v-37,35,-99,5,-108,-43r-40,-209r71,0",w:467},x:{d:"389,-266r-113,134r115,132r-83,0v-34,-40,-75,-72,-104,-117v-25,45,-62,77,-92,117r-89,0r114,-133r-119,-133r90,0r96,118v26,-46,67,-77,98,-118r87,0",w:409},y:{d:"169,-78r-151,-188r85,0r98,122r98,-122r84,0r-147,188r0,78r-67,0r0,-78",w:400},z:{d:"101,-1v-84,10,-115,-117,-30,-136r284,-62r-326,0r0,-67r333,0v72,-7,98,104,38,128v-88,35,-196,44,-292,68r313,0r0,69r-320,0",w:451},"{":{d:"116,-194r0,118r44,0r0,76r-119,0r0,-112r-23,-23r23,-23r0,-112r119,0r0,76r-44,0",w:178},"|":{d:"70,-288r0,306r-52,0r0,-306r52,0",w:87},"}":{d:"62,-194r-44,0r0,-76r120,0r0,112r22,23r-22,23r0,112r-120,0r0,-76r44,0r0,-118",w:178},"~":{d:"65,-180v27,0,40,12,51,25r22,-15v21,31,1,79,-38,79v-26,0,-42,-12,-52,-26r-22,15v-18,-30,-2,-78,39,-78",w:164},"\u0410":{d:"94,0r-76,0r119,-227v12,-35,78,-57,104,-21v55,73,89,167,135,248r-74,0r-40,-69r-131,0xm165,-137r63,0r-31,-57",w:393},"\u00c0":{d:"94,0r-76,0r119,-227v12,-35,78,-57,104,-21v55,73,89,167,135,248r-74,0r-40,-69r-131,0xm165,-137r63,0r-31,-57",w:393},"\u0411":{d:"404,-82v0,120,-175,75,-291,83r-95,0r0,-180v3,-50,36,-86,86,-86r286,0r0,70r-303,0r0,31r230,0v50,4,87,29,87,82xm340,-71r0,-31r-253,0r0,31r253,0",w:422},"\u00c1":{d:"404,-82v0,120,-175,75,-291,83r-95,0r0,-180v3,-50,36,-86,86,-86r286,0r0,70r-303,0r0,31r230,0v50,4,87,29,87,82xm340,-71r0,-31r-253,0r0,31r253,0",w:422},"\u0412":{d:"403,-86v0,52,-37,86,-90,86r-295,0r0,-266r283,0v78,-7,120,69,81,132v9,14,21,27,21,48xm326,-69r0,-30r-237,0r0,30r237,0xm326,-168r0,-30r-237,0r0,30r237,0",w:420},"\u00c2":{d:"403,-86v0,52,-37,86,-90,86r-295,0r0,-266r283,0v78,-7,120,69,81,132v9,14,21,27,21,48xm326,-69r0,-30r-237,0r0,30r237,0xm326,-168r0,-30r-237,0r0,30r237,0",w:420},"\u0413":{d:"18,-185v4,-47,34,-81,82,-81r290,0r0,69r-302,0r0,197r-70,0r0,-185",w:407},"\u00c3":{d:"18,-185v4,-47,34,-81,82,-81r290,0r0,69r-302,0r0,197r-70,0r0,-185",w:407},"\u0414":{d:"123,-263v112,0,276,-36,281,79r0,114r28,0r0,70r-414,0r0,-70r18,0r0,-113v4,-50,34,-80,87,-80xm338,-70r0,-125r-239,0r0,125r239,0",w:450},"\u00c4":{d:"123,-263v112,0,276,-36,281,79r0,114r28,0r0,70r-414,0r0,-70r18,0r0,-113v4,-50,34,-80,87,-80xm338,-70r0,-125r-239,0r0,125r239,0",w:450},"\u0415":{d:"18,-181v2,-56,38,-84,94,-85r279,0r0,68r-305,0r0,31r305,0r0,69r-305,0r0,29r305,0r0,70r-279,0v-55,-2,-94,-32,-94,-86r0,-96",w:409},"\u00c5":{d:"18,-181v2,-56,38,-84,94,-85r279,0r0,68r-305,0r0,31r305,0r0,69r-305,0r0,29r305,0r0,70r-279,0v-55,-2,-94,-32,-94,-86r0,-96",w:409},"\u0416":{d:"108,-266v31,38,68,71,96,112r0,-112r74,0r0,114v27,-43,65,-75,96,-114r88,0r-114,134r115,132r-82,0r-94,-100v-2,-5,-6,-9,-9,-13r0,113r-74,0r0,-111v-30,39,-69,74,-103,111r-83,0r116,-132r-114,-134r88,0",w:481},"\u00c6":{d:"108,-266v31,38,68,71,96,112r0,-112r74,0r0,114v27,-43,65,-75,96,-114r88,0r-114,134r115,132r-82,0r-94,-100v-2,-5,-6,-9,-9,-13r0,113r-74,0r0,-111v-30,39,-69,74,-103,111r-83,0r116,-132r-114,-134r88,0",w:481},"\u0417":{d:"371,-134v42,53,1,133,-68,133r-284,0r0,-68r300,0r0,-29r-301,0r0,-69r301,0r0,-31r-301,0r0,-68r279,0v72,-4,113,75,74,132",w:406},"\u00c7":{d:"371,-134v42,53,1,133,-68,133r-284,0r0,-68r300,0r0,-29r-301,0r0,-69r301,0r0,-31r-301,0r0,-68r279,0v72,-4,113,75,74,132",w:406},"\u0418":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-182,177v-36,48,-122,24,-122,-48r0,-195r68,0r0,198",w:406},"\u00c8":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-182,177v-36,48,-122,24,-122,-48r0,-195r68,0r0,198",w:406},"\u0419":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-193,188v-44,33,-111,5,-111,-59r0,-195r68,0r0,198xm109,-312r0,-61r201,0r0,61r-201,0",w:406},"\u00c9":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-193,188v-44,33,-111,5,-111,-59r0,-195r68,0r0,198xm109,-312r0,-61r201,0r0,61r-201,0",w:406},"\u041a":{d:"256,-265r138,0r-229,132r231,133r-140,0r-135,-78v-14,-9,-22,-19,-29,-35r0,113r-74,0r0,-266r74,0r0,115v9,-22,28,-34,48,-46",w:413},"\u00ca":{d:"256,-265r138,0r-229,132r231,133r-140,0r-135,-78v-14,-9,-22,-19,-29,-35r0,113r-74,0r0,-266r74,0r0,115v9,-22,28,-34,48,-46",w:413},"\u041b":{d:"18,-179v5,-49,33,-86,82,-86r300,0r0,266r-71,0r0,-199r-241,0r0,199r-70,0r0,-180",w:417},"\u00cb":{d:"18,-179v5,-49,33,-86,82,-86r300,0r0,266r-71,0r0,-199r-241,0r0,199r-70,0r0,-180",w:417},"\u041c":{d:"291,-236v34,-54,121,-24,121,44r0,192r-65,0r0,-195v-31,61,-51,132,-90,186v-26,35,-86,6,-100,-24r-75,-160r0,193r-64,0r0,-200v-4,-69,98,-85,125,-30v26,54,47,114,71,170r66,-156v3,-8,7,-13,11,-20",w:429},"\u00cc":{d:"291,-236v34,-54,121,-24,121,44r0,192r-65,0r0,-195v-31,61,-51,132,-90,186v-26,35,-86,6,-100,-24r-75,-160r0,193r-64,0r0,-200v-4,-69,98,-85,125,-30v26,54,47,114,71,170r66,-156v3,-8,7,-13,11,-20",w:429},"\u041d":{d:"85,-266r0,98r245,0r0,-98r68,0r0,266r-68,0r0,-100r-245,0r0,100r-67,0r0,-266r67,0",w:415},"\u00cd":{d:"85,-266r0,98r245,0r0,-98r68,0r0,266r-68,0r0,-100r-245,0r0,100r-67,0r0,-266r67,0",w:415},"\u041e":{d:"18,-186v8,-114,175,-79,290,-79v50,0,84,35,84,85r0,98v-4,50,-35,81,-85,81r-204,0v-52,-3,-85,-31,-85,-85r0,-100xm322,-196r-235,0r0,128r235,0r0,-128"},"\u00ce":{d:"18,-186v8,-114,175,-79,290,-79v50,0,84,35,84,85r0,98v-4,50,-35,81,-85,81r-204,0v-52,-3,-85,-31,-85,-85r0,-100xm322,-196r-235,0r0,128r235,0r0,-128"},"\u041f":{d:"88,1r-70,0r0,-266r382,0r0,266r-71,0r0,-199r-241,0r0,199",w:417},"\u00cf":{d:"88,1r-70,0r0,-266r382,0r0,266r-71,0r0,-199r-241,0r0,199",w:417},"\u0421":{d:"18,-167v-1,-68,35,-97,101,-98r277,0r0,66r-309,0r0,133r309,0r0,66r-291,0v-48,-3,-87,-29,-87,-78r0,-89",w:414},"\u00d1":{d:"18,-167v-1,-68,35,-97,101,-98r277,0r0,66r-309,0r0,133r309,0r0,66r-291,0v-48,-3,-87,-29,-87,-78r0,-89",w:414},"\u0422":{d:"18,-265r378,0r0,67r-155,0r0,198r-69,0r0,-198r-154,0r0,-67",w:413},"\u00d2":{d:"18,-265r378,0r0,67r-155,0r0,198r-69,0r0,-198r-154,0r0,-67",w:413},"\u0423":{d:"105,-99v-50,-3,-87,-31,-87,-82r0,-84r63,0r0,100r253,0r0,-100r71,0r0,180v-4,50,-37,85,-87,85r-285,0r0,-69r302,0r0,-30r-230,0",w:422},"\u00d3":{d:"105,-99v-50,-3,-87,-31,-87,-82r0,-84r63,0r0,100r253,0r0,-100r71,0r0,180v-4,50,-37,85,-87,85r-285,0r0,-69r302,0r0,-30r-230,0",w:422},"\u0424":{d:"18,-173v2,-70,95,-52,165,-54r0,-42r72,0r0,42v73,2,170,-16,171,58r0,68v-7,67,-97,55,-171,56r0,43r-72,0r0,-43v-74,-1,-165,9,-165,-59r0,-69xm366,-173r-111,0r0,71r111,0r0,-71xm183,-173r-108,0r0,71r108,0r0,-71",w:444},"\u00d4":{d:"18,-173v2,-70,95,-52,165,-54r0,-42r72,0r0,42v73,2,170,-16,171,58r0,68v-7,67,-97,55,-171,56r0,43r-72,0r0,-43v-74,-1,-165,9,-165,-59r0,-69xm366,-173r-111,0r0,71r111,0r0,-71xm183,-173r-108,0r0,71r108,0r0,-71",w:444},"\u0425":{d:"389,-266r-113,134r115,132r-83,0r-96,-103r-8,-14v-25,45,-62,77,-92,117r-89,0r114,-133r-119,-133r90,0r96,118v26,-46,67,-77,98,-118r87,0",w:409},"\u00d5":{d:"389,-266r-113,134r115,132r-83,0r-96,-103r-8,-14v-25,45,-62,77,-92,117r-89,0r114,-133r-119,-133r90,0r96,118v26,-46,67,-77,98,-118r87,0",w:409},"\u0426":{d:"103,0v-48,-3,-85,-24,-85,-73r0,-190r69,0r0,193r231,0r0,-193r68,0r0,193r28,0r0,70r-311,0",w:431},"\u00d6":{d:"103,0v-48,-3,-85,-24,-85,-73r0,-190r69,0r0,193r231,0r0,-193r68,0r0,193r28,0r0,70r-311,0",w:431},"\u0428":{d:"88,-265r0,199r79,0r0,-199r72,0r0,199r83,0r0,-199r70,0r0,267r-374,0r0,-267r70,0"},"\u00d8":{d:"88,-265r0,199r79,0r0,-199r72,0r0,199r83,0r0,-199r70,0r0,267r-374,0r0,-267r70,0"},"\u0429":{d:"88,-265r0,199r80,0r0,-199r71,0r0,199r83,0r0,-199r70,0r0,199r39,0r0,68r-413,0r0,-267r70,0",w:448},"\u00d9":{d:"88,-265r0,199r80,0r0,-199r71,0r0,199r83,0r0,-199r70,0r0,199r39,0r0,68r-413,0r0,-267r70,0",w:448},"\u042a":{d:"439,-81v0,53,-40,82,-94,82r-294,0r0,-216r-33,0r0,-51r104,0r0,100r230,0v51,3,87,33,87,85xm122,-66r247,0r0,-34r-247,0r0,34",w:457},"\u00da":{d:"439,-81v0,53,-40,82,-94,82r-294,0r0,-216r-33,0r0,-51r104,0r0,100r230,0v51,3,87,33,87,85xm122,-66r247,0r0,-34r-247,0r0,34",w:457},"\u042b":{d:"320,-81v0,121,-184,73,-302,82r0,-266r71,0r0,99r145,0v49,3,86,34,86,85xm416,-265r0,267r-65,0r0,-267r65,0xm89,-66r161,0r0,-34r-161,0r0,34",w:434},"\u00db":{d:"320,-81v0,121,-184,73,-302,82r0,-266r71,0r0,99r145,0v49,3,86,34,86,85xm416,-265r0,267r-65,0r0,-267r65,0xm89,-66r161,0r0,-34r-161,0r0,34",w:434},"\u042c":{d:"406,-81v0,53,-42,82,-95,82r-293,0r0,-266r71,0r0,99r230,0v51,3,87,33,87,85xm89,-66r247,0r0,-34r-247,0r0,34",w:424},"\u00dc":{d:"406,-81v0,53,-42,82,-95,82r-293,0r0,-266r71,0r0,99r230,0v51,3,87,33,87,85xm89,-66r247,0r0,-34r-247,0r0,34",w:424},"\u042f":{d:"36,-135v-37,-51,1,-130,66,-130r290,0r0,265r-70,0r0,-99r-236,0r0,99r-68,0v2,-49,-9,-110,18,-135xm322,-166r0,-32r-236,0r0,32r236,0"},"\u00df":{d:"36,-135v-37,-51,1,-130,66,-130r290,0r0,265r-70,0r0,-99r-236,0r0,99r-68,0v2,-49,-9,-110,18,-135xm322,-166r0,-32r-236,0r0,32r236,0"},"\u0430":{d:"94,0r-76,0r119,-227v12,-35,78,-57,104,-21v55,73,89,167,135,248r-74,0r-40,-69r-131,0xm165,-137r63,0r-31,-57",w:393},"\u00e0":{d:"94,0r-76,0r119,-227v12,-35,78,-57,104,-21v55,73,89,167,135,248r-74,0r-40,-69r-131,0xm165,-137r63,0r-31,-57",w:393},"\u0431":{d:"404,-82v0,120,-175,75,-291,83r-95,0r0,-180v3,-50,36,-86,86,-86r286,0r0,70r-303,0r0,31r230,0v50,4,87,29,87,82xm340,-71r0,-31r-253,0r0,31r253,0",w:422},"\u00e1":{d:"404,-82v0,120,-175,75,-291,83r-95,0r0,-180v3,-50,36,-86,86,-86r286,0r0,70r-303,0r0,31r230,0v50,4,87,29,87,82xm340,-71r0,-31r-253,0r0,31r253,0",w:422},"\u0432":{d:"403,-86v0,52,-37,86,-90,86r-295,0r0,-266r283,0v78,-7,120,69,81,132v9,14,21,27,21,48xm326,-69r0,-30r-237,0r0,30r237,0xm326,-168r0,-30r-237,0r0,30r237,0",w:420},"\u00e2":{d:"403,-86v0,52,-37,86,-90,86r-295,0r0,-266r283,0v78,-7,120,69,81,132v9,14,21,27,21,48xm326,-69r0,-30r-237,0r0,30r237,0xm326,-168r0,-30r-237,0r0,30r237,0",w:420},"\u0433":{d:"18,-185v4,-47,34,-81,82,-81r290,0r0,69r-302,0r0,197r-70,0r0,-185",w:407},"\u00e3":{d:"18,-185v4,-47,34,-81,82,-81r290,0r0,69r-302,0r0,197r-70,0r0,-185",w:407},"\u0434":{d:"123,-263v112,0,276,-36,281,79r0,114r28,0r0,70r-414,0r0,-70r18,0r0,-113v4,-50,34,-80,87,-80xm338,-70r0,-125r-239,0r0,125r239,0",w:450},"\u00e4":{d:"123,-263v112,0,276,-36,281,79r0,114r28,0r0,70r-414,0r0,-70r18,0r0,-113v4,-50,34,-80,87,-80xm338,-70r0,-125r-239,0r0,125r239,0",w:450},"\u0435":{d:"18,-181v2,-56,38,-84,94,-85r279,0r0,68r-305,0r0,31r305,0r0,69r-305,0r0,29r305,0r0,70r-279,0v-55,-2,-94,-32,-94,-86r0,-96",w:409},"\u00e5":{d:"18,-181v2,-56,38,-84,94,-85r279,0r0,68r-305,0r0,31r305,0r0,69r-305,0r0,29r305,0r0,70r-279,0v-55,-2,-94,-32,-94,-86r0,-96",w:409},"\u0436":{d:"108,-266v31,38,68,71,96,112r0,-112r74,0r0,114v27,-43,65,-75,96,-114r88,0r-114,134r115,132r-82,0r-94,-100v-2,-5,-6,-9,-9,-13r0,113r-74,0r0,-111v-30,39,-69,74,-103,111r-83,0r116,-132r-114,-134r88,0",w:481},"\u00e6":{d:"108,-266v31,38,68,71,96,112r0,-112r74,0r0,114v27,-43,65,-75,96,-114r88,0r-114,134r115,132r-82,0r-94,-100v-2,-5,-6,-9,-9,-13r0,113r-74,0r0,-111v-30,39,-69,74,-103,111r-83,0r116,-132r-114,-134r88,0",w:481},"\u0437":{d:"371,-134v42,53,1,133,-68,133r-284,0r0,-68r300,0r0,-29r-301,0r0,-69r301,0r0,-31r-301,0r0,-68r279,0v72,-4,113,75,74,132",w:406},"\u00e7":{d:"371,-134v42,53,1,133,-68,133r-284,0r0,-68r300,0r0,-29r-301,0r0,-69r301,0r0,-31r-301,0r0,-68r279,0v72,-4,113,75,74,132",w:406},"\u0438":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-182,177v-36,48,-122,24,-122,-48r0,-195r68,0r0,198",w:406},"\u00e8":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-182,177v-36,48,-122,24,-122,-48r0,-195r68,0r0,198",w:406},"\u0439":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-193,188v-44,33,-111,5,-111,-59r0,-195r68,0r0,198xm109,-312r0,-61r201,0r0,61r-201,0",w:406},"\u00e9":{d:"267,-245v39,-46,122,-28,122,38r0,207r-67,0r0,-199r-193,188v-44,33,-111,5,-111,-59r0,-195r68,0r0,198xm109,-312r0,-61r201,0r0,61r-201,0",w:406},"\u043a":{d:"256,-265r138,0r-229,132r231,133r-140,0r-135,-78v-14,-9,-22,-19,-29,-35r0,113r-74,0r0,-266r74,0r0,115v9,-22,28,-34,48,-46",w:413},"\u00ea":{d:"256,-265r138,0r-229,132r231,133r-140,0r-135,-78v-14,-9,-22,-19,-29,-35r0,113r-74,0r0,-266r74,0r0,115v9,-22,28,-34,48,-46",w:413},"\u043b":{d:"18,-179v5,-49,33,-86,82,-86r300,0r0,266r-71,0r0,-199r-241,0r0,199r-70,0r0,-180",w:417},"\u00eb":{d:"18,-179v5,-49,33,-86,82,-86r300,0r0,266r-71,0r0,-199r-241,0r0,199r-70,0r0,-180",w:417},"\u043c":{d:"291,-236v34,-54,121,-24,121,44r0,192r-65,0r0,-195v-31,61,-51,132,-90,186v-26,35,-86,6,-100,-24r-75,-160r0,193r-64,0r0,-200v-4,-69,98,-85,125,-30v26,54,47,114,71,170r66,-156v3,-8,7,-13,11,-20",w:429},"\u00ec":{d:"291,-236v34,-54,121,-24,121,44r0,192r-65,0r0,-195v-31,61,-51,132,-90,186v-26,35,-86,6,-100,-24r-75,-160r0,193r-64,0r0,-200v-4,-69,98,-85,125,-30v26,54,47,114,71,170r66,-156v3,-8,7,-13,11,-20",w:429},"\u043d":{d:"85,-266r0,98r245,0r0,-98r68,0r0,266r-68,0r0,-100r-245,0r0,100r-67,0r0,-266r67,0",w:415},"\u00ed":{d:"85,-266r0,98r245,0r0,-98r68,0r0,266r-68,0r0,-100r-245,0r0,100r-67,0r0,-266r67,0",w:415},"\u043e":{d:"18,-186v8,-114,175,-79,290,-79v50,0,84,35,84,85r0,98v-4,50,-35,81,-85,81r-204,0v-52,-3,-85,-31,-85,-85r0,-100xm322,-196r-235,0r0,128r235,0r0,-128"},"\u00ee":{d:"18,-186v8,-114,175,-79,290,-79v50,0,84,35,84,85r0,98v-4,50,-35,81,-85,81r-204,0v-52,-3,-85,-31,-85,-85r0,-100xm322,-196r-235,0r0,128r235,0r0,-128"},"\u043f":{d:"88,1r-70,0r0,-266r382,0r0,266r-71,0r0,-199r-241,0r0,199",w:417},"\u00ef":{d:"88,1r-70,0r0,-266r382,0r0,266r-71,0r0,-199r-241,0r0,199",w:417},"\u0441":{d:"18,-167v-1,-68,35,-97,101,-98r277,0r0,66r-309,0r0,133r309,0r0,66r-291,0v-48,-3,-87,-29,-87,-78r0,-89",w:414},"\u00f1":{d:"18,-167v-1,-68,35,-97,101,-98r277,0r0,66r-309,0r0,133r309,0r0,66r-291,0v-48,-3,-87,-29,-87,-78r0,-89",w:414},"\u0442":{d:"18,-265r378,0r0,67r-155,0r0,198r-69,0r0,-198r-154,0r0,-67",w:413},"\u00f2":{d:"18,-265r378,0r0,67r-155,0r0,198r-69,0r0,-198r-154,0r0,-67",w:413},"\u0443":{d:"105,-99v-50,-3,-87,-31,-87,-82r0,-84r63,0r0,100r253,0r0,-100r71,0r0,180v-4,50,-37,85,-87,85r-285,0r0,-69r302,0r0,-30r-230,0",w:422},"\u00f3":{d:"105,-99v-50,-3,-87,-31,-87,-82r0,-84r63,0r0,100r253,0r0,-100r71,0r0,180v-4,50,-37,85,-87,85r-285,0r0,-69r302,0r0,-30r-230,0",w:422},"\u0444":{d:"18,-173v2,-70,95,-52,165,-54r0,-42r72,0r0,42v73,2,170,-16,171,58r0,68v-7,67,-97,55,-171,56r0,43r-72,0r0,-43v-74,-1,-165,9,-165,-59r0,-69xm366,-173r-111,0r0,71r111,0r0,-71xm183,-173r-108,0r0,71r108,0r0,-71",w:444},"\u00f4":{d:"18,-173v2,-70,95,-52,165,-54r0,-42r72,0r0,42v73,2,170,-16,171,58r0,68v-7,67,-97,55,-171,56r0,43r-72,0r0,-43v-74,-1,-165,9,-165,-59r0,-69xm366,-173r-111,0r0,71r111,0r0,-71xm183,-173r-108,0r0,71r108,0r0,-71",w:444},"\u0445":{d:"389,-266r-113,134r115,132r-83,0r-96,-103r-8,-14v-25,45,-62,77,-92,117r-89,0r114,-133r-119,-133r90,0r96,118v26,-46,67,-77,98,-118r87,0",w:409},"\u00f5":{d:"389,-266r-113,134r115,132r-83,0r-96,-103r-8,-14v-25,45,-62,77,-92,117r-89,0r114,-133r-119,-133r90,0r96,118v26,-46,67,-77,98,-118r87,0",w:409},"\u0446":{d:"103,0v-48,-3,-85,-24,-85,-73r0,-190r69,0r0,193r231,0r0,-193r68,0r0,193r28,0r0,70r-311,0",w:431},"\u00f6":{d:"103,0v-48,-3,-85,-24,-85,-73r0,-190r69,0r0,193r231,0r0,-193r68,0r0,193r28,0r0,70r-311,0",w:431},"\u0447":{d:"121,-73v-62,-1,-103,-32,-103,-93r0,-100r73,0r0,125r248,0r0,-125r68,0r0,266r-68,0r0,-73r-218,0",w:424},"\u00f7":{d:"121,-73v-62,-1,-103,-32,-103,-93r0,-100r73,0r0,125r248,0r0,-125r68,0r0,266r-68,0r0,-73r-218,0",w:424},"\u0448":{d:"88,-265r0,199r79,0r0,-199r72,0r0,199r83,0r0,-199r70,0r0,267r-374,0r0,-267r70,0"},"\u00f8":{d:"88,-265r0,199r79,0r0,-199r72,0r0,199r83,0r0,-199r70,0r0,267r-374,0r0,-267r70,0"},"\u0449":{d:"88,-265r0,199r80,0r0,-199r71,0r0,199r83,0r0,-199r70,0r0,199r39,0r0,68r-413,0r0,-267r70,0",w:448},"\u00f9":{d:"88,-265r0,199r80,0r0,-199r71,0r0,199r83,0r0,-199r70,0r0,199r39,0r0,68r-413,0r0,-267r70,0",w:448},"\u044a":{d:"439,-81v0,53,-40,82,-94,82r-294,0r0,-216r-33,0r0,-51r104,0r0,100r230,0v51,3,87,33,87,85xm122,-66r247,0r0,-34r-247,0r0,34",w:457},"\u00fa":{d:"439,-81v0,53,-40,82,-94,82r-294,0r0,-216r-33,0r0,-51r104,0r0,100r230,0v51,3,87,33,87,85xm122,-66r247,0r0,-34r-247,0r0,34",w:457},"\u044b":{d:"320,-81v0,121,-184,73,-302,82r0,-266r71,0r0,99r145,0v49,3,86,34,86,85xm416,-265r0,267r-65,0r0,-267r65,0xm89,-66r161,0r0,-34r-161,0r0,34",w:434},"\u00fb":{d:"320,-81v0,121,-184,73,-302,82r0,-266r71,0r0,99r145,0v49,3,86,34,86,85xm416,-265r0,267r-65,0r0,-267r65,0xm89,-66r161,0r0,-34r-161,0r0,34",w:434},"\u044c":{d:"406,-81v0,53,-42,82,-95,82r-293,0r0,-266r71,0r0,99r230,0v51,3,87,33,87,85xm89,-66r247,0r0,-34r-247,0r0,34",w:424},"\u00fc":{d:"406,-81v0,53,-42,82,-95,82r-293,0r0,-266r71,0r0,99r230,0v51,3,87,33,87,85xm89,-66r247,0r0,-34r-247,0r0,34",w:424},"\u044f":{d:"36,-135v-37,-51,1,-130,66,-130r290,0r0,265r-70,0r0,-99r-236,0r0,99r-68,0v2,-49,-9,-110,18,-135xm322,-166r0,-32r-236,0r0,32r236,0"},"\u00ff":{d:"36,-135v-37,-51,1,-130,66,-130r290,0r0,265r-70,0r0,-99r-236,0r0,99r-68,0v2,-49,-9,-110,18,-135xm322,-166r0,-32r-236,0r0,32r236,0"},"\u0420":{d:"407,-183v0,51,-36,85,-87,85r-231,0r0,98r-71,0r0,-266r294,0v54,3,95,30,95,83xm89,-198r0,34r247,0r0,-34r-247,0",w:424},"\u00d0":{d:"407,-183v0,51,-36,85,-87,85r-231,0r0,98r-71,0r0,-266r294,0v54,3,95,30,95,83xm89,-198r0,34r247,0r0,-34r-247,0",w:424},"\u0427":{d:"121,-73v-62,-1,-103,-32,-103,-93r0,-100r73,0r0,125r248,0r0,-125r68,0r0,266r-68,0r0,-73r-218,0",w:424},"\u00d7":{d:"121,-73v-62,-1,-103,-32,-103,-93r0,-100r73,0r0,125r248,0r0,-125r68,0r0,266r-68,0r0,-73r-218,0",w:424},"\u042d":{d:"391,-85v-3,54,-39,86,-94,86r-279,0r0,-70r305,0r0,-29r-305,0r0,-69r305,0r0,-31r-305,0r0,-68r279,0v56,1,94,29,94,85r0,96",w:409},"\u00dd":{d:"391,-85v-3,54,-39,86,-94,86r-279,0r0,-70r305,0r0,-29r-305,0r0,-69r305,0r0,-31r-305,0r0,-68r279,0v56,1,94,29,94,85r0,96",w:409},"\u042e":{d:"143,-170v-5,-62,34,-95,83,-95r96,0v49,4,83,36,83,85r0,98v-4,50,-35,81,-85,81r-103,0v-46,-8,-77,-36,-74,-94r-55,0r0,94r-70,0r0,-261r70,0r0,92r55,0xm335,-196r-124,0r0,128r124,0r0,-128",w:422},"\u00de":{d:"143,-170v-5,-62,34,-95,83,-95r96,0v49,4,83,36,83,85r0,98v-4,50,-35,81,-85,81r-103,0v-46,-8,-77,-36,-74,-94r-55,0r0,94r-70,0r0,-261r70,0r0,92r55,0xm335,-196r-124,0r0,128r124,0r0,-128",w:422},"\u0440":{d:"407,-183v0,51,-36,85,-87,85r-231,0r0,98r-71,0r0,-266r294,0v54,3,95,30,95,83xm89,-198r0,34r247,0r0,-34r-247,0",w:424},"\u00f0":{d:"407,-183v0,51,-36,85,-87,85r-231,0r0,98r-71,0r0,-266r294,0v54,3,95,30,95,83xm89,-198r0,34r247,0r0,-34r-247,0",w:424},"\u044d":{d:"391,-85v-3,54,-39,86,-94,86r-279,0r0,-70r305,0r0,-29r-305,0r0,-69r305,0r0,-31r-305,0r0,-68r279,0v56,1,94,29,94,85r0,96",w:409},"\u00fd":{d:"391,-85v-3,54,-39,86,-94,86r-279,0r0,-70r305,0r0,-29r-305,0r0,-69r305,0r0,-31r-305,0r0,-68r279,0v56,1,94,29,94,85r0,96",w:409},"\u044e":{d:"143,-170v-5,-62,34,-95,83,-95r96,0v49,4,83,36,83,85r0,98v-4,50,-35,81,-85,81r-103,0v-46,-8,-77,-36,-74,-94r-55,0r0,94r-70,0r0,-261r70,0r0,92r55,0xm335,-196r-124,0r0,128r124,0r0,-128",w:422},"\u00fe":{d:"143,-170v-5,-62,34,-95,83,-95r96,0v49,4,83,36,83,85r0,98v-4,50,-35,81,-85,81r-103,0v-46,-8,-77,-36,-74,-94r-55,0r0,94r-70,0r0,-261r70,0r0,92r55,0xm335,-196r-124,0r0,128r124,0r0,-128",w:422},"\u00a0":{w:233}}}); \ No newline at end of file diff --git a/lib/fonts/Times_New_Roman.font.js b/lib/fonts/Times_New_Roman.font.js deleted file mode 100644 index faa59f98..00000000 --- a/lib/fonts/Times_New_Roman.font.js +++ /dev/null @@ -1,17 +0,0 @@ -/*! - * The following copyright notice may not be removed under any circumstances. - * - * Copyright: - * 2006 The Monotype Corporation. All Rights Reserved. - * - * Trademark: - * Times New Roman is a trademark of The Monotype Corporation in the United States - * and/or other countries. - * - * Manufacturer: - * The Monotype Corporation - * - * Designer: - * Monotype Type Drawing Office - Stanley Morison, Victor Lardent 1932 - */ -Cufon.registerFont({"w":180,"face":{"font-family":"Times New Roman","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 2 6 3 5 4 5 2 3 4","ascent":"288","descent":"-72","x-height":"5","bbox":"-28 -317.085 357 78.0844","underline-thickness":"17.5781","underline-position":"-30.4102","unicode-range":"U+0020-U+0451"},"glyphs":{" ":{"w":90,"k":{"Y":13,"W":7,"V":7,"T":7,"A":20}},"\u00a0":{"w":90},"!":{"d":"60,-244v17,0,21,19,19,39r-16,142r-6,0r-17,-156v0,-13,8,-25,20,-25xm40,-15v0,-10,10,-19,20,-19v9,0,20,9,19,19v1,10,-9,20,-19,20v-10,0,-21,-10,-20,-20","w":119},"\"":{"d":"105,-244v24,1,19,29,15,51r-10,52r-9,0v-4,-28,-11,-52,-13,-82v-1,-14,5,-21,17,-21xm41,-244v39,8,3,71,3,103r-7,0r-14,-81v0,-15,6,-21,18,-22","w":146},"#":{"d":"20,5r17,-80r-30,0r0,-14r32,0r13,-61r-45,0r0,-14r48,0r16,-80r14,0r-16,80r60,0r17,-80r14,0r-16,80r29,0r0,14r-32,0r-12,61r44,0r0,14r-47,0r-17,80r-14,0r16,-80r-59,0r-17,80r-15,0xm54,-89r60,0r12,-61r-60,0"},"$":{"d":"81,5v-26,-1,-41,-5,-62,-14r0,-50r8,0v2,33,21,49,54,52r0,-102v-37,-26,-62,-31,-62,-76v0,-32,27,-55,62,-57r0,-16r11,0r0,16v30,2,25,3,58,15r0,53r-6,0v-4,-36,-17,-52,-52,-56r0,89v44,35,70,32,70,82v0,37,-31,62,-70,64r0,22r-11,0r0,-22xm81,-230v-31,0,-43,34,-27,58v5,7,14,15,27,23r0,-81xm92,-7v34,-1,52,-36,35,-65v-5,-7,-17,-17,-35,-30r0,95"},"%":{"d":"245,-244r-174,254r-16,0r174,-254r16,0xm13,-179v0,-35,18,-65,51,-65v69,0,64,130,0,129v-33,-1,-51,-29,-51,-64xm63,-124v33,-4,33,-106,0,-110v-19,5,-22,23,-22,55v0,29,0,50,22,55xm186,-54v0,-35,18,-64,51,-64v31,0,50,28,50,64v0,37,-19,64,-50,64v-32,0,-51,-29,-51,-64xm237,0v32,-6,32,-104,0,-109v-32,2,-33,107,0,109","w":299},"&":{"d":"200,-127v0,-10,-7,-19,-16,-20r0,-6r74,0r0,6v-31,5,-28,10,-46,40v-11,18,-22,37,-35,53v18,30,74,50,86,6r6,5v-6,28,-23,48,-54,48v-30,0,-43,-15,-62,-34v-25,21,-40,33,-77,34v-35,1,-63,-21,-63,-52v0,-46,31,-62,73,-86v-28,-46,-13,-111,47,-111v25,0,49,18,47,43v-2,37,-23,45,-57,64v15,26,30,50,46,72v21,-25,31,-45,31,-62xm133,-231v-41,4,-34,51,-16,82v24,-11,43,-25,43,-53v0,-15,-11,-30,-27,-29xm50,-63v-2,51,65,61,94,24v-27,-38,-33,-45,-52,-82v-23,13,-41,28,-42,58","w":280},"'":{"d":"31,-244v40,7,4,71,5,103r-8,0r-14,-81v0,-14,5,-21,17,-22","w":64},"(":{"d":"112,-243v-87,44,-86,269,0,313r0,7v-86,-33,-127,-169,-70,-263v18,-30,41,-51,70,-64r0,7","w":119},")":{"d":"8,70v88,-43,84,-268,0,-313r0,-7v86,33,127,170,70,263v-18,30,-41,51,-70,64r0,-7","w":119},"*":{"d":"25,-207v16,-33,46,14,62,23v0,0,-27,-60,4,-66v26,6,4,47,3,66v18,-8,26,-35,47,-35v7,0,14,6,14,13v0,22,-41,19,-58,29v18,10,57,6,57,30v0,7,-6,13,-13,13v-21,-2,-29,-27,-47,-37v0,24,24,60,-3,67v-30,-4,-5,-47,-4,-67v-20,11,-43,58,-62,24v3,-24,38,-19,58,-30v-18,-10,-58,-7,-58,-30"},"+":{"d":"94,-25r0,-87r-87,0r0,-15r87,0r0,-87r14,0r0,87r88,0r0,15r-88,0r0,87r-14,0","w":203},",":{"d":"42,-35v32,1,38,48,17,70v-9,9,-22,19,-40,25r0,-8v20,-6,38,-22,38,-45v1,-12,-12,-4,-19,-2v-12,0,-19,-7,-19,-19v0,-12,11,-21,23,-21","w":90},"-":{"d":"15,-94r90,0r0,26r-90,0r0,-26","w":119},"\u00ad":{"d":"15,-94r90,0r0,26r-90,0r0,-26","w":119},".":{"d":"25,-15v0,-28,40,-22,40,0v1,10,-10,20,-20,20v-10,0,-21,-10,-20,-20","w":90},"\/":{"d":"101,-250r-86,255r-14,0r86,-255r14,0","w":100},"0":{"d":"89,4v-99,-5,-105,-242,2,-247v101,7,104,241,-2,247xm91,-232v-43,5,-44,72,-44,119v0,48,6,99,42,106v45,-10,44,-61,44,-122v0,-47,-3,-95,-42,-103"},"1":{"d":"77,-171v1,-35,-1,-52,-32,-39r-3,-5v22,-9,38,-23,64,-28r0,201v0,30,0,35,30,35r0,7r-90,0r0,-7v31,0,31,-3,31,-35r0,-129","k":{"1":13}},"2":{"d":"45,-27v42,-3,101,11,114,-19r6,0r-17,46r-140,0r0,-7v58,-58,103,-84,112,-158v4,-28,-20,-52,-47,-51v-27,0,-44,18,-52,40r-6,0v4,-39,27,-67,68,-67v36,0,67,27,67,62v0,63,-85,129,-105,154"},"3":{"d":"109,-179v-1,-49,-66,-52,-85,-11r-6,-3v13,-28,29,-50,65,-50v61,0,74,69,23,102v82,31,37,154,-50,145v-23,-2,-39,-3,-41,-19v9,-29,43,4,65,4v23,0,45,-22,44,-47v-1,-39,-27,-61,-69,-60r0,-6v28,-4,54,-22,54,-55"},"4":{"d":"168,-88r0,25r-32,0r0,63r-29,0r0,-63r-101,0r0,-22r110,-158r20,0r0,155r32,0xm107,-88r0,-118r-84,118r84,0"},"5":{"d":"130,-67v-4,-53,-44,-78,-105,-79r46,-92r85,0r-13,30r-72,0r-16,32v51,7,97,36,97,90v0,56,-40,87,-94,90v-22,1,-39,-7,-41,-23v9,-31,40,5,61,5v28,0,54,-25,52,-53"},"6":{"d":"90,4v-70,-5,-93,-97,-62,-158v24,-47,63,-92,133,-89r0,6v-64,6,-90,49,-106,104v47,-38,111,-9,111,53v0,43,-34,86,-76,84xm135,-61v0,-39,-19,-86,-60,-71v-5,2,-13,6,-23,12v-7,51,-3,114,43,114v24,0,40,-25,40,-55"},"7":{"d":"136,-210v-49,1,-106,-8,-118,30r-5,-2r23,-56r128,0v-22,86,-54,161,-79,243r-20,0"},"8":{"d":"22,-54v0,-34,21,-45,47,-66v-29,-25,-45,-32,-45,-67v0,-32,30,-56,66,-56v34,0,64,22,64,51v0,32,-20,39,-49,60v32,27,51,36,54,75v2,35,-31,61,-69,61v-37,0,-68,-24,-68,-58xm90,-233v-41,0,-51,46,-22,70r29,24v21,-22,30,-25,32,-55v1,-24,-15,-39,-39,-39xm49,-55v-6,57,85,68,85,13v0,-38,-25,-41,-57,-71v-17,13,-25,32,-28,58"},"9":{"d":"165,-145v-4,83,-57,149,-146,150r0,-7v62,-1,92,-51,106,-103v-49,39,-111,9,-111,-53v0,-44,32,-86,75,-85v47,1,78,51,76,98xm46,-176v0,57,39,94,82,58v8,-51,0,-106,-43,-114v-25,2,-39,23,-39,56"},":":{"d":"31,-146v-1,-10,10,-20,20,-20v10,0,20,10,19,20v1,10,-10,19,-19,19v-10,0,-20,-9,-20,-19xm31,-15v0,-9,10,-19,19,-19v11,0,20,9,20,19v1,10,-10,21,-20,20v-10,0,-19,-10,-19,-20","w":100},";":{"d":"30,-147v0,-10,10,-19,20,-19v9,0,19,10,19,19v0,10,-9,20,-19,20v-10,1,-21,-10,-20,-20xm48,-35v31,1,37,48,17,70v-9,9,-22,19,-40,25r0,-8v21,-6,46,-30,34,-52v-13,7,-35,6,-34,-14v0,-12,11,-21,23,-21","w":100},"\u037e":{"d":"30,-147v0,-10,10,-19,20,-19v9,0,19,10,19,19v0,10,-9,20,-19,20v-10,1,-21,-10,-20,-20xm48,-35v31,1,37,48,17,70v-9,9,-22,19,-40,25r0,-8v21,-6,46,-30,34,-52v-13,7,-35,6,-34,-14v0,-12,11,-21,23,-21","w":100},"<":{"d":"7,-124r189,-82r0,15r-163,71r163,71r0,16r-189,-82r0,-9","w":203},"=":{"d":"7,-155r189,0r0,14r-189,0r0,-14xm7,-98r189,0r0,15r-189,0r0,-15","w":203},">":{"d":"196,-115r-189,82r0,-15r162,-71r-162,-71r0,-16r189,83r0,8","w":203},"?":{"d":"145,-188v0,59,-68,74,-65,132r-7,0v-3,-55,34,-80,40,-129v5,-47,-64,-68,-74,-26v1,14,24,45,-3,45v-12,0,-21,-12,-20,-27v1,-30,28,-51,63,-51v39,0,66,20,66,56xm58,-15v0,-10,9,-19,19,-19v11,0,20,8,20,19v1,10,-10,21,-20,20v-10,0,-19,-10,-19,-20","w":159},"@":{"d":"184,-169v17,0,26,10,30,24r6,-20r28,-3v-12,46,-29,87,-37,137v-1,8,6,13,13,13v46,-6,74,-62,74,-115v0,-66,-48,-108,-114,-108v-91,0,-149,75,-150,168v-1,85,55,140,137,140v71,0,119,-42,142,-97r10,0v-19,59,-78,109,-153,108v-91,-2,-153,-64,-153,-156v0,-99,69,-172,166,-172v75,0,126,46,126,120v0,63,-36,125,-97,125v-27,0,-31,-23,-24,-50v-26,30,-37,43,-69,50v-19,-1,-33,-20,-32,-41v4,-54,43,-123,97,-123xm135,-27v45,-6,73,-64,73,-109v0,-13,-9,-25,-22,-25v-41,8,-65,66,-71,109v-2,12,8,26,20,25","w":331},"A":{"d":"162,-7v49,0,8,-52,3,-73r-93,0v-6,18,-20,40,-22,59v2,12,11,12,28,14r0,7r-75,0r0,-7v29,-4,28,-14,39,-41r84,-196r6,0v34,75,61,161,101,229v5,5,13,7,23,8r0,7r-94,0r0,-7xm160,-93r-41,-96r-41,96r82,0","w":259,"k":{"y":33,"w":33,"v":27,"Y":33,"W":29,"V":46,"T":40," ":20}},"B":{"d":"209,-175v0,28,-18,45,-43,53v33,6,54,25,54,57v0,86,-124,62,-214,65r0,-7v26,1,34,-5,34,-35r0,-154v1,-31,-8,-36,-34,-36r0,-6v86,3,203,-19,203,63xm173,-176v0,-43,-54,-60,-99,-47r0,92v46,7,99,2,99,-45xm180,-62v0,-48,-53,-61,-106,-53r0,98v48,13,106,1,106,-45","w":240},"C":{"d":"134,-244v26,-6,68,37,77,0r6,0r5,81r-5,0v-13,-41,-34,-68,-80,-68v-61,0,-84,50,-84,116v-1,64,30,105,89,105v42,0,56,-18,80,-49r6,3v-21,37,-47,60,-99,61v-67,1,-117,-51,-116,-120v1,-75,49,-126,121,-129","w":240},"D":{"d":"246,-120v0,75,-52,120,-133,120r-107,0r0,-7v26,1,34,-4,34,-35r0,-154v2,-32,-7,-36,-34,-36r0,-6r97,0v95,-3,143,35,143,118xm206,-119v0,-75,-56,-123,-132,-101r0,203v78,21,132,-27,132,-102","w":259},"E":{"d":"187,-186v1,-55,-62,-36,-112,-39r0,94v41,-2,94,12,90,-35r7,0r0,83r-7,0v3,-49,-48,-32,-90,-35r0,78v-7,40,31,25,60,27v46,3,51,-17,70,-47r7,0r-21,60r-184,0r0,-7v26,1,34,-5,34,-35r0,-155v2,-32,-6,-35,-34,-35r0,-6r184,0r3,52r-7,0","w":219},"F":{"d":"179,-186v-4,-47,-54,-39,-105,-39r0,93v36,-1,76,9,74,-32r7,0r0,80r-7,0v5,-42,-38,-32,-74,-33v7,43,-23,118,34,110r0,7r-102,0r0,-7v27,1,34,-4,34,-35r0,-154v3,-30,-8,-36,-34,-36r0,-6r177,0r2,52r-6,0","w":200,"k":{"A":27,".":29,",":29}},"G":{"d":"206,-229v6,-1,9,-5,8,-15r7,0r6,75r-6,0v-11,-39,-36,-62,-79,-63v-56,-1,-89,51,-89,109v0,82,69,143,141,103v-6,-39,19,-109,-31,-103r0,-7r92,0v0,4,1,9,-5,7v-39,2,-16,71,-22,107v-25,14,-48,21,-84,21v-75,3,-131,-49,-131,-120v0,-74,47,-127,126,-129v27,-1,43,10,67,15","w":259},"H":{"d":"108,-232v-52,-8,-29,61,-34,104r111,0v-6,-41,20,-111,-34,-104r0,-6r102,0v2,7,-4,6,-9,6v-21,1,-26,10,-26,36r0,154v-2,30,9,36,35,35r0,7r-102,0r0,-7v54,9,28,-66,34,-108r-111,0v6,43,-21,116,34,108r0,7r-102,0r0,-7v27,1,34,-4,34,-35r0,-154v3,-30,-7,-37,-34,-36r0,-6r102,0r0,6","w":259},"I":{"d":"77,-42v-3,30,8,35,34,35r0,7r-102,0r0,-7v27,1,34,-4,34,-35r0,-154v3,-30,-8,-37,-34,-36r0,-6r102,0v2,7,-4,6,-9,6v-21,2,-26,9,-25,36r0,154","w":119},"J":{"d":"70,-196v3,-30,-8,-36,-34,-36r0,-6r102,0v2,7,-4,6,-9,6v-21,2,-25,9,-25,36v0,83,22,195,-61,201v-32,2,-51,-40,-18,-45v17,-2,18,28,32,33v9,-2,14,-11,13,-26r0,-163","w":140},"K":{"d":"166,-222v-1,-9,-10,-11,-22,-10r0,-6r88,0r0,6v-50,11,-46,25,-88,64r-36,36v39,37,80,89,124,117v9,6,21,7,31,8r0,7r-113,0r0,-7v24,0,20,-17,6,-31r-82,-81v7,43,-23,120,34,112r0,7r-102,0r0,-7v27,1,34,-4,34,-35r0,-154v3,-30,-8,-37,-34,-36r0,-6r102,0v2,7,-4,6,-9,6v-43,-1,-19,70,-25,109v21,-25,93,-76,92,-99","w":259},"L":{"d":"112,-15v59,2,80,-9,94,-51r6,1r-20,65r-185,0r0,-7v26,1,34,-3,34,-35r0,-154v2,-32,-7,-36,-34,-36r0,-6r108,0r0,6v-32,2,-41,4,-40,40r0,150v1,28,5,26,37,27","w":219,"k":{"y":20,"Y":36,"W":27,"V":33,"T":33," ":13}},"M":{"d":"211,-7v26,1,34,-5,34,-34r0,-160r-92,201r-6,0r-92,-201r0,160v-1,31,8,34,34,34r0,7r-83,0r0,-7v26,0,34,-5,34,-34r0,-156v-1,-27,-7,-34,-34,-35r0,-6r67,0r87,186r85,-186r68,0v2,7,-4,6,-9,6v-21,1,-26,9,-25,35r0,156v-1,31,8,34,34,34r0,7r-102,0r0,-7","w":320},"N":{"d":"42,-207v-15,-17,-19,-23,-47,-25r0,-6r65,0r146,178r0,-137v1,-31,-8,-35,-34,-35r0,-6r83,0v2,7,-4,6,-9,6v-21,1,-26,9,-25,35r0,201r-6,0r-157,-192r0,147v-2,31,7,34,33,34r0,7r-83,0r0,-7v26,1,34,-5,34,-34r0,-166","w":259},"O":{"d":"13,-120v0,-68,51,-124,119,-124v62,0,114,57,114,123v0,68,-51,126,-117,126v-67,0,-116,-55,-116,-125xm206,-116v-1,-66,-19,-115,-78,-115v-54,0,-75,50,-75,110v0,61,20,114,75,114v53,0,79,-44,78,-109","w":259},"P":{"d":"188,-172v1,55,-59,76,-114,60v6,40,-21,113,34,105r0,7r-102,0r0,-7v26,1,34,-3,34,-35r0,-154v1,-31,-8,-36,-34,-36r0,-6v83,0,180,-13,182,66xm147,-169v0,-41,-30,-64,-73,-52r0,99v38,13,73,-7,73,-47","w":200,"k":{"A":33,".":40,",":40," ":13}},"Q":{"d":"246,-119v0,61,-38,108,-87,122v21,35,42,57,86,62r0,5v-63,-3,-112,-34,-147,-67v-52,-21,-83,-55,-85,-123v-2,-68,53,-124,118,-124v63,0,115,58,115,125xm206,-115v-1,-62,-18,-115,-77,-115v-55,0,-76,48,-76,110v0,61,21,113,76,113v55,0,77,-47,77,-108","w":259},"R":{"d":"192,-177v0,35,-25,54,-59,61v24,30,51,78,79,100v7,6,18,8,31,9r0,7r-63,0r-81,-111r-25,0v6,40,-21,112,34,104r0,7r-102,0r0,-7v26,1,34,-3,34,-35r0,-154v2,-32,-7,-36,-34,-36r0,-6v81,2,185,-18,186,61xm74,-123v80,22,110,-99,28,-102v-7,0,-16,1,-28,3r0,99","w":240,"k":{"y":14,"Y":20,"W":20,"V":29,"T":22}},"S":{"d":"92,-244v21,-6,60,33,67,0r6,0r0,83r-6,0v-5,-41,-26,-66,-66,-69v-22,-2,-46,17,-43,37v9,61,132,56,131,132v0,38,-34,68,-75,66v-22,3,-47,-13,-64,-13v-7,0,-10,4,-11,13r-6,0r0,-81r6,0v7,43,27,65,71,68v27,2,47,-16,48,-39v-11,-68,-127,-56,-128,-134v0,-35,33,-64,70,-63","w":200},"T":{"d":"93,-223v-44,-2,-76,0,-75,41r-7,0r3,-56r194,0r3,56r-7,0v0,-43,-34,-42,-77,-41r0,182v-1,31,8,34,34,34r0,7r-101,0r0,-7v25,1,33,-5,33,-34r0,-182","w":219,"k":{"y":25,"w":25,"u":13,"s":25,"r":13,"o":25,"i":13,"e":25,"c":25,"a":25,"O":7,"A":29,";":20,":":18,".":27,"-":33,",":27," ":7}},"U":{"d":"206,-196v1,-31,-8,-36,-34,-36r0,-6r84,0v2,7,-4,6,-9,6v-44,4,-25,89,-25,134v0,72,-27,104,-92,104v-71,0,-93,-27,-93,-109r0,-93v0,-29,-8,-37,-35,-36r0,-6r103,0v2,7,-4,6,-9,6v-22,1,-26,11,-26,36v0,79,-22,190,62,187v52,-2,74,-27,74,-91r0,-96","w":259},"V":{"d":"199,-187v14,-28,10,-40,-17,-45r0,-6r74,0v1,12,-16,8,-20,14v-39,68,-65,155,-99,229r-7,0r-99,-224v-7,-8,-14,-11,-28,-13r0,-6r98,0r0,6v-32,1,-31,18,-19,44r61,139","w":259,"k":{"y":40,"u":22,"r":22,"o":46,"i":22,"e":40,"a":40,"A":46,";":27,":":27,".":46,"-":33,",":46," ":7}},"W":{"d":"284,-187v11,-28,13,-44,-18,-45r0,-6r71,0r0,6v-28,3,-27,17,-37,45r-67,192r-7,0r-54,-152r-54,152r-6,0r-81,-224v-5,-8,-12,-13,-26,-13r0,-6r88,0v0,4,1,7,-4,6v-25,3,-21,17,-12,43r47,134r40,-114v-12,-25,-11,-62,-46,-63r0,-6r93,0v1,6,-2,7,-7,6v-27,2,-20,22,-11,47r46,130","w":339,"k":{"y":22,"u":14,"r":14,"o":29,"i":14,"e":29,"a":29,"A":40,";":13,":":13,".":33,"-":20,",":33," ":7}},"X":{"d":"181,-198v16,-15,12,-37,-15,-34r0,-6r84,0r0,6v-33,3,-37,16,-56,40r-47,60v24,34,57,91,83,116v7,6,15,8,26,9r0,7r-103,0r0,-7v29,2,26,-17,13,-37r-41,-61v-20,29,-45,52,-61,85v2,11,9,12,23,13r0,7r-84,0r0,-7v30,-5,41,-17,58,-39r57,-71v-23,-32,-52,-85,-80,-106v-9,-6,-19,-9,-31,-9r0,-6r111,0r0,6v-26,0,-29,13,-16,33r36,54","w":259},"Y":{"d":"185,-190v16,-21,16,-42,-13,-42r0,-6r83,0v-1,12,-26,7,-34,22v-27,33,-51,78,-75,115v6,38,-19,103,33,94r0,7r-101,0r0,-7v49,9,31,-51,34,-91r-81,-122v-4,-4,-15,-12,-28,-12r0,-6r102,0v1,4,0,7,-5,6v-24,2,-25,16,-11,38r49,77","w":259,"k":{"v":36,"u":40,"q":40,"p":33,"o":36,"i":20,"e":36,"a":36,"A":40,";":33,":":33,".":46,"-":40,",":46," ":13}},"Z":{"d":"158,-224v-55,4,-128,-17,-125,45r-7,0r5,-59r176,0r-157,224r98,0v38,-1,45,-16,56,-50r6,1r-11,63r-194,0r0,-7","w":219},"[":{"d":"107,71r-77,0r0,-315r77,0r0,14r-51,0r0,288r51,0r0,13","w":119},"\\":{"d":"15,-250r86,255r-14,0r-86,-255r14,0","w":100},"]":{"d":"13,-244r78,0r0,316r-78,0r0,-14r51,0r0,-288r-51,0r0,-14","w":119},"^":{"d":"88,-243r74,126r-16,0r-61,-103r-62,103r-16,0r75,-126r6,0","w":168},"_":{"d":"183,78r-186,0r0,-15r186,0r0,15"},"`":{"d":"21,-244r39,0r19,60r-7,0","w":119},"a":{"d":"102,-23v-28,19,-24,24,-51,26v-23,1,-41,-19,-38,-41v6,-48,42,-47,89,-69v1,-29,-3,-48,-29,-48v-17,0,-27,12,-24,30v2,10,-7,17,-15,17v-8,0,-16,-7,-15,-17v1,-25,28,-42,59,-41v37,2,53,10,53,55v0,39,-9,123,28,78v-4,39,-57,53,-57,10xm42,-46v4,34,35,37,60,11r0,-61v-35,15,-53,16,-60,50","w":159},"b":{"d":"26,-182v0,-33,4,-51,-24,-42r-3,-6v19,-6,33,-18,56,-20r0,117v37,-64,113,-25,113,46v0,75,-86,119,-142,72r0,-167xm137,-77v0,-55,-51,-84,-82,-45r0,96v11,10,21,19,39,18v28,-1,43,-34,43,-69"},"c":{"d":"93,-22v27,-1,40,-16,50,-42r5,3v-5,36,-31,66,-67,66v-40,0,-69,-39,-69,-85v0,-46,33,-86,77,-86v27,0,53,17,54,39v0,9,-6,15,-16,15v-29,0,-12,-45,-44,-42v-65,7,-49,134,10,132","w":159},"d":{"d":"154,-64v0,35,-3,51,25,43r2,6v-19,6,-33,18,-56,20r0,-23v-38,50,-113,9,-113,-56v0,-57,62,-121,113,-78v-4,-35,14,-88,-25,-72r-2,-6v19,-6,33,-18,56,-20r0,186xm44,-88v0,53,44,99,81,58v-2,-51,13,-125,-37,-125v-29,0,-44,32,-44,67"},"e":{"d":"13,-78v0,-70,70,-114,119,-70v12,12,18,28,18,48r-112,0v-10,70,88,107,106,38r6,3v-4,30,-31,65,-66,64v-41,-1,-71,-37,-71,-83xm113,-111v2,-38,-37,-54,-61,-31v-8,8,-13,18,-14,31r75,0","w":159},"f":{"d":"98,-237v-31,4,-22,33,-24,76r42,0r0,13r-42,0r0,105v-1,33,9,38,37,37r0,6r-96,0v-1,-6,2,-7,7,-6v19,-3,23,-12,23,-37r0,-105r-31,0r0,-13r31,0v-3,-53,22,-83,67,-89v26,-3,64,34,30,45v-19,-2,-20,-35,-44,-32","w":119,"k":{"f":7}},"g":{"d":"43,-1v-29,-15,-13,-41,11,-58v-52,-22,-29,-107,34,-107v15,0,29,3,40,11v14,1,34,-2,44,2v7,18,-14,14,-31,14v32,46,-17,104,-78,84v-13,7,-21,28,1,30v3,0,12,1,25,1v52,0,82,0,82,39v0,66,-133,87,-160,29v6,-22,12,-23,32,-45xm120,-102v0,-28,-9,-55,-35,-55v-45,0,-39,97,4,97v21,0,32,-18,31,-42xm159,22v0,-30,-83,-13,-106,-22v-9,9,-16,18,-17,31v11,40,123,33,123,-9"},"h":{"d":"29,-182v-1,-33,5,-51,-24,-42r-3,-6v19,-6,33,-18,57,-20r0,118v20,-21,25,-34,53,-34v54,0,42,74,42,130v0,23,2,30,24,30r0,6r-79,0v0,-3,-1,-7,3,-6v39,2,18,-55,23,-87v10,-62,-44,-60,-66,-28r0,85v-2,27,4,28,26,30r0,6r-80,0r0,-6v19,-1,25,-6,24,-30r0,-146"},"i":{"d":"34,-232v0,-11,7,-18,18,-18v11,0,18,7,18,18v0,9,-8,18,-18,18v-8,0,-18,-10,-18,-18xm38,-36v-7,-39,19,-116,-25,-104r-2,-6v19,-6,33,-18,56,-20r0,130v0,24,2,29,24,30r0,6r-78,0r0,-6v22,0,24,-8,25,-30","w":100},"j":{"d":"34,-232v-1,-9,9,-19,18,-18v9,-1,19,9,18,18v1,9,-9,19,-18,18v-9,1,-19,-9,-18,-18xm38,-98v0,-32,5,-48,-24,-42r-3,-6v19,-6,33,-18,56,-20v-8,93,32,241,-63,244v-17,1,-30,-7,-32,-18v6,-31,37,-3,50,4v18,-5,16,-18,16,-47r0,-115","w":100},"k":{"d":"30,-182v-1,-33,3,-50,-24,-42r-3,-6v19,-6,33,-18,56,-20r0,160v18,-20,42,-33,57,-56v0,-5,-5,-9,-12,-9r0,-6r70,0r0,6v-45,1,-59,37,-86,57v27,29,47,67,79,90v3,1,8,2,15,2r0,6r-78,0r0,-6v15,0,12,-10,4,-21r-49,-63v5,33,-16,89,26,84r0,6r-82,0r0,-6v22,0,27,-7,27,-29r0,-147"},"l":{"d":"37,-183v0,-32,4,-49,-23,-41r-3,-6v19,-6,33,-18,56,-20r0,214v0,25,4,29,26,30r0,6r-79,0r0,-6v20,0,24,-8,23,-30r0,-147","w":100},"m":{"d":"30,-36v-5,-40,19,-116,-24,-104r-3,-6v19,-6,33,-18,56,-20r0,35v15,-15,28,-35,56,-35v22,0,37,15,41,35v20,-22,27,-34,56,-35v55,-2,42,75,42,130v0,23,4,29,24,30r0,6r-79,0v0,-3,-1,-7,3,-6v41,1,19,-65,23,-100v6,-52,-50,-44,-69,-15v2,26,0,57,1,85v0,25,4,29,26,30r0,6r-81,0r0,-6v46,4,20,-64,26,-100v8,-52,-54,-41,-69,-17r0,87v0,25,3,29,26,30r0,6r-79,0r0,-6v20,-1,27,-7,24,-30","w":280},"n":{"d":"29,-36v-5,-40,20,-117,-24,-104r-3,-6v19,-6,33,-18,56,-20r0,34v34,-51,100,-45,96,27v6,36,-18,101,24,99r0,6r-79,0v0,-3,-1,-7,3,-6v41,1,19,-62,23,-96v6,-53,-43,-50,-67,-19r0,85v0,25,3,29,26,30r0,6r-79,0v0,-3,-1,-7,3,-6v18,-2,24,-8,21,-30"},"o":{"d":"12,-79v2,-47,31,-86,78,-87v43,-1,80,39,78,83v-2,46,-29,88,-80,88v-44,0,-77,-40,-76,-84xm135,-70v-1,-42,-13,-84,-50,-84v-30,0,-40,27,-40,60v0,39,16,86,51,86v29,0,39,-24,39,-62"},"p":{"d":"27,-114v2,-23,-7,-33,-25,-25r-2,-6v19,-6,33,-18,56,-20r0,38v13,-22,25,-39,51,-39v91,0,75,175,-13,171v-19,-1,-26,-5,-38,-14v5,32,-16,86,27,79r0,7r-84,0v0,0,-1,-9,4,-7v20,0,24,-5,24,-31r0,-153xm136,-70v5,-58,-49,-95,-80,-47v2,49,-14,114,38,111v32,-2,39,-30,42,-64"},"q":{"d":"12,-73v0,-63,62,-116,116,-82v10,-3,14,-11,26,-11r0,207v0,24,2,29,26,29r0,7r-81,0v0,-3,-2,-8,3,-7v42,3,16,-65,23,-98v-18,20,-26,33,-53,33v-36,0,-60,-36,-60,-78xm41,-86v0,55,55,88,84,47v-3,-47,15,-116,-36,-114v-32,1,-48,29,-48,67"},"r":{"d":"29,-36v-5,-39,21,-118,-25,-104r-2,-6v19,-6,33,-18,56,-20r0,36v13,-24,28,-36,42,-36v23,0,31,34,7,36v-7,1,-20,-12,-25,-12v-13,3,-15,14,-24,27v5,40,-18,110,28,109r0,6r-82,0r0,-6v20,-1,28,-6,25,-30","w":119,"k":{"g":7,".":20,"-":7,",":14}},"s":{"d":"66,-166v12,-3,39,17,44,0r5,0r0,55r-5,0v-8,-28,-16,-42,-44,-44v-22,-2,-37,21,-22,37v19,23,86,34,83,74v-3,46,-55,58,-97,42v-4,0,-5,6,-12,4r0,-57r6,0v5,28,23,48,50,50v14,0,27,-11,27,-25v-2,-46,-83,-36,-83,-89v0,-27,21,-48,48,-47","w":140},"t":{"d":"4,-155v23,-14,38,-29,49,-59r5,0r0,53r38,0r0,12r-38,0r0,105v-6,31,29,32,36,12r7,0v-6,18,-21,35,-41,35v-53,0,-24,-99,-31,-152r-25,0r0,-6","w":100},"u":{"d":"123,-131v-1,-19,-5,-22,-25,-24r0,-6r54,0r0,98v0,34,-2,50,25,42r2,6v-19,6,-33,18,-56,20r0,-34v-23,22,-25,34,-54,34v-56,0,-38,-78,-41,-135v0,-21,-8,-24,-28,-25r0,-6r57,0r0,108v-3,50,49,40,66,13r0,-91"},"v":{"d":"139,-131v8,-16,4,-25,-15,-24r0,-6r53,0r0,6v-17,1,-19,9,-24,22r-57,138r-7,0r-65,-150v-5,-6,-9,-8,-21,-10r0,-6r76,0v1,12,-22,3,-19,19v9,38,28,68,41,103","k":{".":23,",":23}},"w":{"d":"219,-130v6,-14,6,-26,-13,-25r0,-6r51,0r0,6v-10,2,-18,9,-23,21r-54,139r-7,0r-40,-103r-47,103r-7,0v-21,-50,-36,-108,-61,-153v-2,-5,-18,-2,-16,-13r68,0r0,6v-16,0,-17,12,-12,25r34,92r35,-75v-9,-17,-8,-43,-35,-42r0,-6r77,0r0,6v-15,-1,-25,7,-20,21r36,93","w":259,"k":{".":23,",":23}},"x":{"d":"43,-18v0,8,8,12,16,12r0,6r-53,0v-2,-9,8,-7,11,-11v15,-13,41,-51,56,-71v-22,-23,-31,-69,-68,-73r0,-6r76,0r0,6v-24,1,-8,21,-2,31r12,19v6,-10,25,-35,26,-41v0,-5,-6,-9,-13,-9r0,-6r55,0v2,10,-11,5,-15,11v-13,9,-34,40,-46,56r61,83v4,3,10,5,17,5r0,6r-76,0r0,-6v20,-3,17,-12,4,-31r-23,-34v-10,14,-32,40,-38,53"},"y":{"d":"10,58v0,-32,40,-1,55,-15v9,-10,17,-34,24,-49r-58,-122v-7,-10,-13,-26,-29,-27r0,-6r75,0v2,11,-21,4,-19,18v8,38,31,68,45,101v12,-35,31,-65,39,-104v-2,-7,-7,-8,-16,-9r0,-6r52,0v-3,14,-20,8,-24,31r-65,160v-9,25,-29,46,-55,48v-13,1,-24,-9,-24,-20","k":{".":23,",":23}},"z":{"d":"46,-12v44,-3,104,15,99,-37r6,0r-2,49r-142,0r0,-6r107,-143v-40,2,-95,-12,-89,33r-7,0r1,-45r135,0r0,6","w":159},"{":{"d":"108,31v2,22,17,35,40,41r0,6v-35,-4,-65,-32,-66,-68v-1,-14,9,-43,8,-56v-2,-19,-19,-34,-40,-37r0,-7v22,-3,40,-16,40,-37v0,-33,-17,-74,10,-99v13,-12,28,-21,48,-24r0,6v-24,5,-38,18,-40,41v-1,14,9,42,8,56v-1,31,-24,51,-52,60v28,10,50,31,52,62v1,14,-9,42,-8,56","w":172},"|":{"d":"43,-250r0,328r-15,0r0,-328r15,0","w":72},"}":{"d":"71,-203v-2,-23,-16,-36,-40,-41r0,-6v35,4,65,32,66,68v1,14,-9,42,-8,55v1,20,18,35,40,37r0,7v-21,3,-38,18,-40,37v4,34,18,75,-10,100v-13,12,-28,21,-48,24r0,-6v23,-6,37,-18,40,-41v1,-14,-9,-42,-8,-56v1,-31,24,-52,52,-61v-28,-10,-51,-30,-52,-61v-1,-15,9,-42,8,-56","w":172},"~":{"d":"150,-86v20,1,32,-13,33,-33r8,0v0,27,-17,49,-43,49v-35,0,-125,-71,-137,0r-7,0v1,-28,15,-49,41,-49v30,0,78,31,105,33","w":194},"\u0401":{"d":"122,-281v-1,-10,10,-20,20,-19v10,-1,19,9,18,19v1,10,-9,19,-18,19v-10,0,-20,-9,-20,-19xm60,-281v0,-9,9,-20,19,-19v10,-1,21,9,20,19v0,9,-10,19,-19,19v-10,0,-20,-9,-20,-19xm187,-186v1,-55,-62,-36,-112,-39r0,94v41,-2,94,12,90,-35r7,0r0,83r-7,0v3,-49,-48,-32,-90,-35r0,78v-7,40,31,25,60,27v46,3,51,-17,70,-47r7,0r-21,60r-184,0r0,-7v26,1,34,-5,34,-35r0,-155v2,-32,-6,-35,-34,-35r0,-6r184,0r3,52r-7,0","w":219},"\u0410":{"d":"162,-7v49,0,8,-52,3,-73r-93,0v-6,18,-20,40,-22,59v2,12,11,12,28,14r0,7r-75,0r0,-7v29,-4,28,-14,39,-41r84,-196r6,0v34,75,61,161,101,229v5,5,13,7,23,8r0,7r-94,0r0,-7xm160,-93r-41,-96r-41,96r82,0","w":259,"k":{"\u0444":14,"\u0443":18,"\u0442":18,"\u0441":9,"\u043e":18,"\u0435":9,"\u0431":18,"\u0430":5,"\u042d":9,"\u0427":55,"\u0424":23,"\u0423":32,"\u0422":32,"\u0421":18,"\u041e":18,"\u0417":9}},"\u0411":{"d":"41,-195v0,-30,-5,-35,-33,-37r0,-6r169,0r3,52r-7,0v-4,-48,-49,-38,-98,-39r0,94v69,-1,120,6,120,64v0,44,-33,67,-88,67r-101,0r0,-7v31,-2,34,-4,35,-36r0,-152xm155,-66v1,-42,-37,-56,-80,-51r0,103v45,10,80,-12,80,-52","w":206,"k":{"\u0443":9,"\u043b":5,"\u0434":9,"\u042f":12,"\u042a":14,"\u0427":18,"\u0425":9,"\u0424":5,"\u0423":13,"\u0422":5,"\u0421":2,"\u041e":2,"\u041b":9,"\u0416":9,"\u0414":14,"\u0410":5}},"\u0412":{"d":"209,-175v0,28,-18,45,-43,53v33,6,54,25,54,57v0,86,-124,62,-214,65r0,-7v26,1,34,-5,34,-35r0,-154v1,-31,-8,-36,-34,-36r0,-6v86,3,203,-19,203,63xm173,-176v0,-43,-54,-60,-99,-47r0,92v46,7,99,2,99,-45xm180,-62v0,-48,-53,-61,-106,-53r0,98v48,13,106,1,106,-45","w":240,"k":{"\u0447":9,"\u0445":5,"\u0443":5,"\u0434":9,"\u042f":18,"\u042a":19,"\u0427":18,"\u0425":9,"\u0423":29,"\u0422":5,"\u041b":14,"\u0416":9,"\u0414":14,"\u0410":23}},"\u0413":{"d":"41,-195v-1,-32,-3,-35,-34,-37r0,-6r191,0r1,55r-7,0v4,-56,-64,-40,-117,-42r0,182v1,32,3,34,34,36r0,7r-102,0r0,-7v31,-2,34,-4,34,-36r0,-152","w":208,"k":{"\u044f":27,"\u044e":18,"\u044c":23,"\u044b":23,"\u0443":14,"\u0440":23,"\u043e":32,"\u043d":14,"\u043c":14,"\u043b":27,"\u0438":14,"\u0435":27,"\u0434":27,"\u0432":14,"\u0430":9,"\u042f":27,"\u0421":5,"\u041e":9,"\u041c":5,"\u041b":27,"\u0417":-9,"\u0414":32,"\u0410":39,".":41,",":41}},"\u0414":{"d":"82,-193v0,-31,-7,-39,-40,-39r0,-6r197,0r0,6v-31,2,-34,5,-34,37r0,132v3,45,-7,54,32,56r0,76r-5,0v-10,-42,-29,-69,-80,-69r-60,0v-50,-2,-74,31,-81,69r-6,0r0,-76v65,-8,77,-116,77,-186xm138,-13v33,-1,33,0,33,-31r0,-181r-71,0v-6,111,-10,159,-50,212r88,0","w":245,"k":{"\u0437":-9,"\u0435":-4,"\u042d":-9,"\u0423":-4,"\u0417":-9}},"\u0415":{"d":"187,-186v1,-55,-62,-36,-112,-39r0,94v41,-2,94,12,90,-35r7,0r0,83r-7,0v3,-49,-48,-32,-90,-35r0,78v-7,40,31,25,60,27v46,3,51,-17,70,-47r7,0r-21,60r-184,0r0,-7v26,1,34,-5,34,-35r0,-155v2,-32,-6,-35,-34,-35r0,-6r184,0r3,52r-7,0","w":219,"k":{"\u041b":5,"\u0417":-4}},"\u0416":{"d":"178,-116v7,43,-22,117,35,109r0,7r-103,0r0,-7v56,7,27,-67,34,-109v-32,2,-24,11,-45,51r-35,65r-61,0r0,-7v59,-7,56,-74,102,-115v-24,-11,-27,-65,-41,-88v-13,-21,-51,26,-57,-11v0,-13,13,-20,29,-20v74,0,29,121,108,112v-6,-41,20,-110,-34,-103r0,-6r103,0r0,6v-56,-7,-29,61,-35,103v79,10,34,-117,108,-112v28,-5,42,36,12,36v-11,0,-32,-22,-40,-5v-12,24,-18,78,-41,88v35,22,45,113,102,115r0,7r-60,0r-62,-111v-4,-4,-11,-8,-19,-5","w":322,"k":{"\u0443":18,"\u043e":18,"\u0435":18,"\u0431":18,"\u0430":9,"\u042a":4,"\u0423":5,"\u0422":6,"\u0421":9,"\u041e":9,"\u0417":9}},"\u0417":{"d":"82,-228v-36,0,-51,24,-58,54r-6,0r0,-69v11,-1,8,14,19,11v14,-3,38,-12,58,-12v36,0,66,26,66,59v-1,32,-24,51,-50,60v30,4,54,31,54,64v1,42,-36,67,-79,66v-34,0,-59,-15,-78,-47r6,-4v11,18,34,35,62,35v31,0,51,-23,50,-53v-1,-35,-27,-57,-71,-55r0,-12v45,1,68,-15,71,-53v2,-26,-18,-45,-44,-44","k":{"\u043b":5,"\u0434":9,"\u042f":14,"\u0427":14,"\u0423":9,"\u041b":16,"\u0416":5,"\u0414":22}},"\u0418":{"d":"109,-232v-31,2,-34,5,-34,37r0,137r110,-141v0,-29,-7,-32,-35,-33r0,-6r103,0r0,6v-31,2,-34,5,-34,37r0,152v1,32,3,34,34,36r0,7r-103,0r0,-7v31,-2,34,-4,35,-36r0,-137r-110,142v-1,28,7,30,34,31r0,7r-102,0r0,-7v31,-2,34,-4,34,-36r0,-152v-1,-32,-3,-35,-34,-37r0,-6r102,0r0,6","w":259},"\u0419":{"d":"130,-271v29,5,32,-43,54,-46v8,-1,15,7,14,15v-1,52,-133,54,-135,0v0,-8,5,-16,13,-15v23,3,23,51,54,46xm109,-232v-31,2,-34,5,-34,37r0,137r110,-141v0,-29,-7,-32,-35,-33r0,-6r103,0r0,6v-31,2,-34,5,-34,37r0,152v1,32,3,34,34,36r0,7r-103,0r0,-7v31,-2,34,-4,35,-36r0,-137r-110,142v-1,28,7,30,34,31r0,7r-102,0r0,-7v31,-2,34,-4,34,-36r0,-152v-1,-32,-3,-35,-34,-37r0,-6r102,0r0,6","w":259},"\u041a":{"d":"229,-222v0,34,-47,-6,-58,12v-13,22,-32,83,-56,87v23,1,75,92,88,101v9,10,22,15,36,15r0,7r-62,0v-7,-11,-19,-31,-42,-60v-32,-41,-23,-51,-60,-55v7,42,-21,115,34,108r0,7r-102,0r0,-7v32,-1,34,-4,34,-36r0,-152v-1,-32,-3,-35,-34,-37r0,-6r102,0r0,6v-55,-7,-27,62,-34,104v86,7,48,-113,127,-113v18,0,27,6,27,19","w":240,"k":{"\u044d":5,"\u0443":27,"\u0442":14,"\u0441":9,"\u043e":18,"\u0437":5,"\u0435":14,"\u0430":5,"\u042d":-4,"\u0427":5,"\u0424":16,"\u0423":7,"\u0421":9,"\u041e":9}},"\u041b":{"d":"135,-7v31,-2,34,-4,34,-36r0,-182r-73,0r0,66v-3,100,-2,150,-66,162v-15,0,-27,-8,-27,-21v0,-26,30,-10,43,-5v10,0,17,-9,24,-26v9,-21,11,-99,10,-146v-1,-32,-3,-35,-34,-37r0,-6r191,0r0,6v-31,2,-34,5,-34,37r0,152v1,32,3,34,34,36r0,7r-102,0r0,-7","w":244,"k":{"\u0443":9,"\u043e":9,"\u0435":2,"\u0431":5,"\u0424":5}},"\u041c":{"d":"211,-7v26,1,34,-5,34,-34r0,-160r-92,201r-6,0r-92,-201r0,160v-1,31,8,34,34,34r0,7r-83,0r0,-7v26,0,34,-5,34,-34r0,-156v-1,-27,-7,-34,-34,-35r0,-6r67,0r87,186r85,-186r68,0v2,7,-4,6,-9,6v-21,1,-26,9,-25,35r0,156v-1,31,8,34,34,34r0,7r-102,0r0,-7","w":320,"k":{"\u0447":14,"\u0443":9,"\u043e":9,"\u0435":5,"\u0424":5}},"\u041d":{"d":"108,-232v-52,-8,-29,61,-34,104r111,0v-6,-41,20,-111,-34,-104r0,-6r102,0v2,7,-4,6,-9,6v-21,1,-26,10,-26,36r0,154v-2,30,9,36,35,35r0,7r-102,0r0,-7v54,9,28,-66,34,-108r-111,0v6,43,-21,116,34,108r0,7r-102,0r0,-7v27,1,34,-4,34,-35r0,-154v3,-30,-7,-37,-34,-36r0,-6r102,0r0,6","w":259},"\u041e":{"d":"13,-120v0,-68,51,-124,119,-124v62,0,114,57,114,123v0,68,-51,126,-117,126v-67,0,-116,-55,-116,-125xm206,-116v-1,-66,-19,-115,-78,-115v-54,0,-75,50,-75,110v0,61,20,114,75,114v53,0,79,-44,78,-109","w":259,"k":{"\u0434":5,"\u042f":26,"\u0427":9,"\u0425":28,"\u0424":-4,"\u0423":20,"\u0421":-4,"\u041b":18,"\u0416":9,"\u0414":18,"\u0410":18}},"\u041f":{"d":"151,-7v32,-1,34,-4,34,-36r0,-182r-110,0r0,182v1,32,3,34,34,36r0,7r-102,0r0,-7v31,-2,34,-4,34,-36r0,-152v-1,-32,-3,-35,-34,-37r0,-6r246,0r0,6v-31,2,-34,5,-34,37r0,152v1,32,3,34,34,36r0,7r-102,0r0,-7","w":259},"\u0420":{"d":"188,-172v1,55,-59,76,-114,60v6,40,-21,113,34,105r0,7r-102,0r0,-7v26,1,34,-3,34,-35r0,-154v1,-31,-8,-36,-34,-36r0,-6v83,0,180,-13,182,66xm147,-169v0,-41,-30,-64,-73,-52r0,99v38,13,73,-7,73,-47","w":200,"k":{"\u044f":14,"\u044d":-9,"\u043e":9,"\u0435":5,"\u0434":14,"\u042f":23,"\u0425":25,"\u0424":6,"\u0423":9,"\u0422":-4,"\u0421":-4,"\u041e":-4,"\u041b":27,"\u0417":-4,"\u0416":13,"\u0414":27,"\u0410":46,";":-13,":":-13,".":45,",":45}},"\u0421":{"d":"134,-244v26,-6,68,37,77,0r6,0r5,81r-5,0v-13,-41,-34,-68,-80,-68v-61,0,-84,50,-84,116v-1,64,30,105,89,105v42,0,56,-18,80,-49r6,3v-21,37,-47,60,-99,61v-67,1,-117,-51,-116,-120v1,-75,49,-126,121,-129","w":240,"k":{"\u044d":-4,"\u0447":5,"\u0443":9,"\u0442":5,"\u0441":-4,"\u0435":-4,"\u0431":-4,"\u042a":5,"\u0427":9,"\u0425":9,"\u0423":5,"\u041b":9,"\u0414":18,"\u0410":18}},"\u0422":{"d":"93,-223v-44,-2,-76,0,-75,41r-7,0r3,-56r194,0r3,56r-7,0v0,-43,-34,-42,-77,-41r0,182v-1,31,8,34,34,34r0,7r-101,0r0,-7v25,1,33,-5,33,-34r0,-182","w":219,"k":{"\u044f":14,"\u044e":18,"\u044c":23,"\u044b":18,"\u0449":14,"\u0445":18,"\u0443":18,"\u0441":14,"\u0440":14,"\u043f":14,"\u043e":27,"\u043c":9,"\u043b":18,"\u043a":9,"\u0438":9,"\u0435":14,"\u0432":18,"\u0430":9,"\u042f":14,"\u0424":8,"\u041e":5,"\u041c":5,"\u041b":18,"\u0414":23,"\u0410":18,".":36,",":36}},"\u0423":{"d":"54,-14v0,-24,32,-12,45,-5v9,0,20,-10,31,-29r-87,-152v-12,-20,-16,-27,-38,-32r0,-6r96,0r0,6v-43,7,-25,22,-6,56r52,91v15,-39,42,-90,50,-130v0,-9,-8,-15,-23,-17r0,-6r75,0r0,6v-18,2,-31,14,-40,36r-74,168v-12,19,-28,33,-52,33v-14,0,-29,-6,-29,-19","w":254,"k":{"\u044f":41,"\u044e":32,"\u0449":32,"\u0448":32,"\u0446":32,"\u0445":36,"\u0441":43,"\u0440":32,"\u043f":32,"\u043e":41,"\u043d":32,"\u043c":32,"\u043b":41,"\u043a":32,"\u0439":18,"\u0438":32,"\u0437":32,"\u0436":32,"\u0435":43,"\u0434":50,"\u0433":32,"\u0432":41,"\u0431":23,"\u042f":41,"\u042d":5,"\u0424":27,"\u041e":18,"\u041b":41,"\u0417":5,"\u0414":36,"\u0410":69,";":14,":":14,".":59,",":59}},"\u0424":{"d":"159,-33v0,25,9,25,35,26r0,7r-103,0r0,-7v24,-1,34,-2,34,-26v-69,2,-112,-30,-112,-87v0,-60,46,-85,112,-84v-1,-25,-9,-27,-34,-28r0,-6r103,0r0,6v-27,1,-33,4,-35,28v67,0,112,23,112,84v0,58,-42,89,-112,87xm159,-46v83,15,102,-110,41,-138v-10,-4,-24,-7,-41,-7r0,145xm125,-191v-87,-15,-99,115,-37,140v11,4,23,5,37,5r0,-145","w":284,"k":{"\u043b":18,"\u042f":32,"\u0427":23,"\u0423":27,"\u0422":9,"\u041e":-4,"\u041b":27,"\u0414":32,"\u0410":23}},"\u0425":{"d":"181,-198v16,-15,12,-37,-15,-34r0,-6r84,0r0,6v-33,3,-37,16,-56,40r-47,60v24,34,57,91,83,116v7,6,15,8,26,9r0,7r-103,0r0,-7v29,2,26,-17,13,-37r-41,-61v-20,29,-45,52,-61,85v2,11,9,12,23,13r0,7r-84,0r0,-7v30,-5,41,-17,58,-39r57,-71v-23,-32,-52,-85,-80,-106v-9,-6,-19,-9,-31,-9r0,-6r111,0r0,6v-26,0,-29,13,-16,33r36,54","w":259,"k":{"\u0443":32,"\u043e":23,"\u042d":5,"\u0424":32,"\u0421":14,"\u041e":18,"\u0417":9}},"\u0426":{"d":"219,-43v1,32,1,36,34,36r0,76r-6,0v-7,-37,-31,-69,-79,-69r-161,0r0,-7v31,-2,34,-4,34,-36r0,-152v-1,-32,-3,-35,-34,-37r0,-6r102,0r0,6v-31,2,-34,5,-34,37r0,159v-10,43,50,16,84,23v30,-2,26,4,26,-26r0,-156v-1,-33,-4,-35,-35,-37r0,-6r103,0r0,6v-31,2,-34,5,-34,37r0,152","w":259,"k":{"\u043e":5,"\u041e":5}},"\u0427":{"d":"67,-194v1,41,-8,88,34,86v18,0,37,-4,58,-14v-6,-44,21,-118,-34,-110r0,-6r102,0r0,6v-28,1,-34,5,-34,38r0,150v-1,32,6,36,34,37r0,7r-102,0r0,-7v53,9,29,-59,34,-101v-60,29,-126,36,-126,-46v0,-39,11,-86,-34,-78r0,-6r103,0r0,6v-29,0,-37,6,-35,38","w":233},"\u0428":{"d":"322,-44v0,30,3,36,31,37r0,7r-343,0r0,-7v26,-1,31,-7,31,-37r0,-151v-1,-30,-4,-34,-31,-37r0,-6r91,0r0,6v-25,3,-26,7,-26,37r0,151v-10,45,30,31,66,31v29,0,24,0,24,-31r0,-151v-1,-27,-2,-34,-27,-37r0,-6r87,0r0,6v-25,3,-27,10,-27,37r0,151v-10,49,36,25,73,31v21,-2,18,-4,18,-31r0,-151v-1,-29,-2,-33,-27,-37r0,-6r91,0r0,6v-26,1,-32,8,-31,37r0,151","w":363},"\u0429":{"d":"347,69v-12,-49,-29,-69,-89,-69r-248,0r0,-7v26,-1,31,-7,31,-37r0,-151v-1,-30,-4,-34,-31,-37r0,-6r91,0r0,6v-25,3,-26,7,-26,37r0,151v-10,45,30,31,66,31v29,0,24,0,24,-31r0,-151v-1,-27,-2,-34,-27,-37r0,-6r87,0r0,6v-25,3,-27,10,-27,37r0,151v-10,49,36,25,73,31v21,-2,18,-4,18,-31r0,-151v-1,-29,-2,-33,-27,-37r0,-6r91,0r0,6v-26,1,-32,8,-31,37r0,151v0,30,3,36,31,37r0,76r-6,0","w":363,"k":{"\u0443":-4}},"\u042a":{"d":"156,-232v-54,-7,-28,60,-34,101v69,-1,120,6,120,64v0,45,-32,67,-87,67r-101,0r0,-7v31,-2,34,-4,34,-36r0,-182v-43,-1,-71,-2,-71,39r-8,0r3,-52r144,0r0,6xm203,-66v0,-41,-38,-56,-81,-51r0,103v45,10,81,-12,81,-52","w":254,"k":{"\u042f":22}},"\u042b":{"d":"109,-232v-54,-7,-28,60,-34,101v69,-1,120,6,120,64v0,44,-33,67,-88,67r-100,0r0,-7v31,-2,34,-4,34,-36r0,-152v-1,-32,-3,-35,-34,-37r0,-6r102,0r0,6xm155,-66v1,-42,-37,-56,-80,-51r0,103v45,10,80,-12,80,-52xm273,-42v-1,29,6,36,34,35r0,7r-102,0r0,-7v27,0,34,-5,34,-35r0,-154v1,-30,-6,-37,-34,-36r0,-6r102,0v1,4,0,7,-5,6v-24,1,-29,9,-29,36r0,154","w":313},"\u042c":{"d":"109,-232v-54,-7,-28,60,-34,101v69,-1,120,6,120,64v0,44,-33,67,-88,67r-101,0r0,-7v31,-2,34,-4,35,-36r0,-152v-1,-33,-4,-35,-35,-37r0,-6r103,0r0,6xm155,-66v1,-42,-37,-56,-80,-51r0,103v45,10,80,-12,80,-52","w":206,"k":{"\u042f":19,"\u042d":5,"\u0427":40,"\u0425":26,"\u0422":27,"\u0421":9,"\u041e":9,"\u041c":14,"\u041b":14,"\u0417":14,"\u0416":23,"\u0414":26,"\u0410":15}},"\u042d":{"d":"224,-118v0,-96,-90,-151,-180,-113v-6,2,-9,-12,-20,-12r-4,79r7,0v7,-58,87,-93,130,-43v15,17,25,42,27,78r-93,0r0,13r93,0v-2,60,-27,107,-86,108v-33,0,-61,-15,-83,-45r-5,3v23,37,55,55,95,55v69,0,119,-55,119,-123","w":237,"k":{"\u043b":5,"\u0434":9,"\u042f":20,"\u0425":18,"\u0424":-2,"\u041e":-4,"\u041b":23,"\u0417":-4,"\u0416":9,"\u0414":30}},"\u042e":{"d":"240,5v-72,-2,-113,-50,-116,-120r-49,0v7,41,-23,115,34,108r0,7r-102,0r0,-7v27,0,34,-5,34,-35r0,-154v1,-30,-6,-37,-34,-36r0,-6r102,0v1,5,-1,7,-6,6v-47,-4,-22,65,-28,105r49,0v1,-64,55,-118,119,-117v62,0,114,58,114,124v0,67,-50,127,-117,125xm317,-116v0,-64,-20,-115,-78,-115v-53,0,-75,48,-75,110v0,60,21,114,75,114v54,0,79,-48,78,-109","w":370,"k":{"\u043b":5,"\u0436":-4,"\u0434":9,"\u0427":14,"\u0425":33,"\u0422":9,"\u041e":-4,"\u041b":18,"\u0416":25,"\u0414":27,"\u0410":14}},"\u042f":{"d":"48,-177v0,35,25,54,59,61v-24,30,-51,78,-79,100v-7,6,-18,8,-31,9r0,7r63,0r81,-111r25,0v-6,40,21,112,-34,104r0,7r102,0r0,-7v-26,1,-34,-3,-34,-35r0,-154v-2,-32,7,-36,34,-36r0,-6v-81,2,-185,-18,-186,61xm166,-123v-80,22,-110,-99,-28,-102v7,0,16,1,28,3r0,99","w":240},"\u0430":{"d":"102,-23v-28,19,-24,24,-51,26v-23,1,-41,-19,-38,-41v6,-48,42,-47,89,-69v1,-29,-3,-48,-29,-48v-17,0,-27,12,-24,30v2,10,-7,17,-15,17v-8,0,-16,-7,-15,-17v1,-25,28,-42,59,-41v37,2,53,10,53,55v0,39,-9,123,28,78v-4,39,-57,53,-57,10xm42,-46v4,34,35,37,60,11r0,-61v-35,15,-53,16,-60,50","w":159,"k":{"\u0447":14,"\u0443":18,"\u0442":9,"\u043f":5,"\u043b":-3}},"\u0431":{"d":"174,-250v-11,30,-24,40,-66,38v-67,-3,-75,41,-82,97v13,-34,37,-51,69,-51v44,0,77,40,76,83v-1,44,-32,88,-80,88v-53,0,-81,-52,-77,-107v5,-78,18,-139,110,-139v29,0,32,2,43,-9r7,0xm99,-7v62,0,46,-149,-10,-147v-28,1,-40,26,-40,61v0,45,16,86,50,86","w":183,"k":{"\u044f":9,"\u044a":9,"\u0447":14,"\u0445":14,"\u0443":14,"\u043c":4,"\u043b":9,"\u0436":9,"\u0435":5,"\u0434":9}},"\u0432":{"d":"8,-161v58,3,140,-15,140,40v0,18,-12,31,-35,36v29,6,45,20,45,41v0,59,-89,41,-150,44r0,-7v23,0,24,-6,24,-31r0,-85v0,-27,0,-30,-24,-31r0,-7xm116,-121v-1,-26,-23,-30,-54,-29r0,61v31,2,54,-6,54,-32xm124,-44v0,-28,-31,-37,-62,-33r0,63v27,8,62,-1,62,-30","w":169,"k":{"\u044f":5,"\u044a":9,"\u0447":14,"\u0444":5,"\u0443":12,"\u0442":9,"\u0441":2,"\u043e":2,"\u043c":6,"\u043b":5,"\u0436":10,"\u0435":2,"\u0434":9,"\u0431":5,"\u0430":5}},"\u0433":{"d":"33,-123v0,-27,-2,-31,-28,-31r0,-7r134,0r6,44r-7,0v-5,-39,-34,-32,-76,-33r0,112v-1,27,1,30,24,31r0,7r-81,0r0,-7v26,-1,27,-3,28,-31r0,-85","w":147,"k":{"\u044f":9,"\u043e":9,"\u043c":5,"\u043b":18,"\u0435":5,"\u0434":18,".":41,",":41}},"\u0434":{"d":"5,-7v45,-2,53,-67,55,-116v0,-20,-9,-30,-27,-31r0,-7r142,0r0,7v-23,1,-24,4,-24,31r0,79v1,30,-2,36,24,37r0,52r-6,0v0,-48,-48,-45,-101,-45v-39,0,-53,14,-57,45r-6,0r0,-52xm41,-11v32,-6,90,18,81,-23r0,-116r-50,0v1,61,-9,110,-31,139","w":183,"k":{"\u044d":-9,"\u0437":-4}},"\u0435":{"d":"13,-78v0,-70,70,-114,119,-70v12,12,18,28,18,48r-112,0v-10,70,88,107,106,38r6,3v-4,30,-31,65,-66,64v-41,-1,-71,-37,-71,-83xm113,-111v2,-38,-37,-54,-61,-31v-8,8,-13,18,-14,31r75,0","w":159,"k":{"\u0447":9,"\u0445":5,"\u0444":-4,"\u0443":9,"\u0441":-9,"\u0437":-4,"\u0434":5,"\u0430":-4,"e":-4}},"\u0436":{"d":"139,-81v3,32,-11,78,25,74r0,7r-79,0r0,-7v36,2,22,-41,25,-74v-22,1,-18,4,-28,23r-30,58r-48,0r0,-7v43,0,38,-80,76,-82v-14,-1,-18,-44,-35,-47v-14,5,-36,9,-36,-11v0,-10,10,-17,21,-16v47,-1,30,77,80,73v-2,-31,8,-66,-25,-64r0,-7r79,0r0,7v-33,-1,-23,32,-25,64v48,4,35,-76,80,-73v24,-3,28,31,6,32v-17,-5,-32,-9,-36,14v-6,16,-13,25,-20,28v39,0,32,82,76,82r0,7r-48,0v-13,-24,-28,-59,-43,-78v-3,-2,-7,-3,-15,-3","w":248,"k":{"\u044a":5,"\u0447":9,"\u0441":7,"\u043e":9,"\u0437":-4,"\u0435":5,"\u0431":5}},"\u0437":{"d":"92,-127v0,-15,-12,-28,-29,-28v-21,0,-35,14,-42,44r-6,0r0,-50v15,7,38,-5,54,-5v27,0,54,13,55,39v0,18,-14,32,-42,40v32,7,49,22,49,45v1,40,-56,59,-95,40v-10,-5,-21,-12,-32,-23r5,-5v31,28,88,35,88,-14v0,-23,-15,-36,-45,-37r0,-10v25,2,39,-15,40,-36","w":142,"k":{"\u044a":6,"\u0447":7,"\u0444":2,"\u0443":8,"\u043e":2,"\u043c":5,"\u0437":-4,"\u0436":7,"\u0434":7}},"\u0438":{"d":"86,-154v-23,1,-24,4,-24,31r0,73r69,-80v-1,-17,-4,-24,-21,-24r0,-7r75,0r0,7v-23,1,-26,3,-25,31r0,85v0,27,1,30,25,31r0,7r-78,0r0,-7v23,0,24,-6,24,-31r0,-76r-69,81v1,18,1,26,20,26r0,7r-74,0r0,-7v24,0,25,-7,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7","w":192},"\u0439":{"d":"154,-226v-4,45,-114,53,-115,0v0,-7,4,-13,12,-13v18,0,20,45,45,40v28,5,25,-40,45,-40v8,0,12,6,13,13xm86,-154v-23,1,-24,4,-24,31r0,73r69,-80v-1,-17,-4,-24,-21,-24r0,-7r75,0r0,7v-23,1,-26,3,-25,31r0,85v0,27,1,30,25,31r0,7r-78,0r0,-7v23,0,24,-6,24,-31r0,-76r-69,81v1,18,1,26,20,26r0,7r-74,0r0,-7v24,0,25,-7,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7","w":192},"\u043a":{"d":"96,-89v31,6,35,83,77,82r0,7r-48,0v-18,-24,-31,-52,-47,-77v-3,-4,-9,-4,-16,-4v4,32,-14,81,27,74r0,7r-81,0r0,-7v24,0,25,-7,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r81,0r0,7v-39,-7,-24,31,-27,62v52,9,34,-73,82,-71v22,-4,30,31,6,31v-16,0,-27,-10,-34,9v-7,21,-8,21,-20,34","w":174,"k":{"\u044d":5,"\u0447":14,"\u0444":9,"\u0443":5,"\u0442":5,"\u0441":9,"\u043e":18,"\u0437":5,"\u0435":9,"\u0431":9,"\u0430":5}},"\u043b":{"d":"52,-78v0,-34,13,-80,-24,-76r0,-7r144,0r0,7v-24,1,-24,4,-25,31r0,85v0,27,1,30,25,31r0,7r-84,0r0,-7v27,1,30,-4,30,-31r0,-112r-53,0v-5,61,18,149,-40,153v-25,2,-31,-30,-10,-33v7,-1,18,12,22,12v16,-7,15,-29,15,-60","w":179},"\u043c":{"d":"33,-123v0,-28,-1,-30,-25,-31r0,-7r57,0r50,119r51,-119r54,0r0,7v-24,1,-24,4,-25,31r0,85v0,25,2,31,25,31r0,7r-78,0r0,-7v23,0,24,-6,24,-31r0,-97r-57,135r-6,0r-58,-135r0,97v0,25,2,31,25,31r0,7r-62,0r0,-7v24,0,25,-7,25,-31r0,-85","w":227,"k":{"\u044d":-4,"\u0430":2}},"\u043d":{"d":"86,-154v-36,-6,-21,36,-24,65r69,0v-3,-29,11,-70,-24,-65r0,-7r78,0r0,7v-23,0,-25,6,-25,31r0,85v-1,25,3,30,25,31r0,7r-78,0r0,-7v37,5,20,-41,24,-71r-69,0v4,30,-13,76,24,71r0,7r-78,0r0,-7v24,0,25,-7,25,-31r0,-85v0,-24,-2,-30,-25,-31r0,-7r78,0r0,7","w":192},"\u043e":{"d":"12,-79v2,-47,31,-86,78,-87v43,-1,80,39,78,83v-2,46,-29,88,-80,88v-44,0,-77,-40,-76,-84xm135,-70v-1,-42,-13,-84,-50,-84v-30,0,-40,27,-40,60v0,39,16,86,51,86v29,0,39,-24,39,-62","k":{"\u044f":7,"\u044d":-4,"\u0447":9,"\u0445":9,"\u0443":14,"\u0442":5,"\u0441":-9,"\u043c":7,"\u043b":5,"\u0436":9,"\u0435":-4,"\u0434":10}},"\u043f":{"d":"107,-7v23,0,24,-6,24,-31r0,-112r-69,0r0,112v-1,27,1,30,24,31r0,7r-78,0r0,-7v24,0,25,-7,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r177,0r0,7v-23,1,-26,3,-25,31r0,85v0,27,1,30,25,31r0,7r-78,0r0,-7","w":192},"\u0440":{"d":"27,-114v2,-23,-7,-33,-25,-25r-2,-6v19,-6,33,-18,56,-20r0,38v13,-22,25,-39,51,-39v91,0,75,175,-13,171v-19,-1,-26,-5,-38,-14v5,32,-16,86,27,79r0,7r-84,0v0,0,-1,-9,4,-7v20,0,24,-5,24,-31r0,-153xm136,-70v5,-58,-49,-95,-80,-47v2,49,-14,114,38,111v32,-2,39,-30,42,-64","k":{"\u044d":-9,"\u0447":9,"\u0443":5,"\u0442":5,"\u043c":5,"\u043b":5,"\u0437":-4,"\u0434":5}},"\u0441":{"d":"93,-22v27,-1,40,-16,50,-42r5,3v-5,36,-31,66,-67,66v-40,0,-69,-39,-69,-85v0,-46,33,-86,77,-86v27,0,53,17,54,39v0,9,-6,15,-16,15v-29,0,-12,-45,-44,-42v-65,7,-49,134,10,132","w":159,"k":{"\u044d":-4,"\u0447":7,"\u0445":5,"\u0444":-4,"\u0443":5,"\u0437":-9,"\u0435":-4,"\u0431":-4,"\u0430":-4}},"\u0442":{"d":"64,-150v-35,-3,-49,5,-54,33r-8,0r7,-44r139,0r7,44r-8,0v-3,-29,-20,-35,-54,-33r0,112v0,30,2,30,32,31r0,7r-88,0r0,-7v25,-1,27,-4,27,-31r0,-112","w":157,"k":{"\u044f":5,"\u044d":-9,"\u0443":5,"\u0441":-4,"\u0440":-4,"\u043e":5,"\u043b":9,"\u0437":-4,"\u0436":-4,"\u0434":5,"\u0430":-4,".":27,",":27}},"\u0443":{"d":"10,58v0,-32,40,-1,55,-15v9,-10,17,-34,24,-49r-58,-122v-7,-10,-13,-26,-29,-27r0,-6r75,0v2,11,-21,4,-19,18v8,38,31,68,45,101v12,-35,31,-65,39,-104v-2,-7,-7,-8,-16,-9r0,-6r52,0v-3,14,-20,8,-24,31r-65,160v-9,25,-29,46,-55,48v-13,1,-24,-9,-24,-20","k":{"\u044f":9,"\u0444":9,"\u043e":9,"\u043c":5,"\u043b":16,"\u0436":5,"\u0435":5,"\u0434":23,"\u0431":5,"\u0430":5,";":5,":":5,".":36,",":36}},"\u0444":{"d":"103,-149v-4,-31,13,-91,-25,-75r-3,-6v19,-6,32,-18,55,-20r0,99v44,-43,88,16,88,71v0,53,-47,115,-88,69v4,36,-16,91,32,81r0,7r-87,0r0,-7v44,7,23,-48,28,-81v-41,45,-88,-16,-88,-71v0,-53,48,-114,88,-67xm46,-76v0,50,27,93,57,53r0,-110v-7,-14,-15,-21,-25,-21v-27,0,-32,38,-32,78xm156,-7v25,-4,31,-33,31,-70v1,-69,-22,-96,-57,-63r0,114v3,11,14,18,26,19","w":233,"k":{"\u044f":5,"\u0447":10,"\u0444":2,"\u0443":9,"\u043b":9,"\u0434":9}},"\u0445":{"d":"43,-18v0,8,8,12,16,12r0,6r-53,0v-2,-9,8,-7,11,-11v15,-13,41,-51,56,-71v-22,-23,-31,-69,-68,-73r0,-6r76,0r0,6v-24,1,-8,21,-2,31r12,19v6,-10,25,-35,26,-41v0,-5,-6,-9,-13,-9r0,-6r55,0v2,10,-11,5,-15,11v-13,9,-34,40,-46,56r61,83v4,3,10,5,17,5r0,6r-76,0r0,-6v20,-3,17,-12,4,-31r-23,-34v-10,14,-32,40,-38,53","k":{"\u044d":5,"\u044a":14,"\u0447":18,"\u0444":14,"\u0443":14,"\u0442":9,"\u0441":10,"\u043e":14,"\u0437":5,"\u0435":9,"\u0431":14,"\u0430":5}},"\u0446":{"d":"160,-40v1,27,-1,33,25,33r0,52r-7,0v1,-69,-106,-39,-170,-45r0,-7v24,0,25,-7,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7v-23,1,-24,4,-24,31r0,91v-7,32,24,21,48,21v23,0,21,0,21,-23r0,-89v0,-25,-1,-31,-24,-31r0,-7r78,0r0,7v-23,1,-26,3,-25,31r0,83","w":192,"k":{"\u0437":-4}},"\u0447":{"d":"57,-123v0,28,-2,45,26,45v13,0,26,-4,37,-11v-3,-29,11,-71,-25,-65r0,-7r78,0r0,7v-23,1,-24,4,-24,31r0,85v-1,26,1,31,24,31r0,7r-82,0r0,-7v42,8,25,-38,29,-70v-17,9,-36,13,-55,13v-37,0,-37,-22,-37,-59v0,-23,-1,-31,-23,-31r0,-7r76,0r0,7v-23,1,-24,4,-24,31","w":181},"\u0448":{"d":"245,-47v0,32,-3,39,24,40r0,7r-261,0r0,-7v24,0,25,-6,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7v-23,1,-24,4,-24,31r0,89v-5,31,17,23,42,23v21,0,20,-2,20,-27r0,-85v-1,-26,0,-30,-24,-31r0,-7r75,0r0,7v-20,1,-22,7,-22,31r0,91v-5,30,20,21,43,21v24,0,20,-1,20,-26r0,-86v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7v-23,1,-24,4,-24,31r0,76","w":277},"\u0449":{"d":"263,45v-4,-33,-18,-46,-59,-45r-196,0r0,-7v24,0,25,-6,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7v-23,1,-24,4,-24,31r0,89v-5,31,17,23,42,23v21,0,20,-2,20,-27r0,-85v-1,-26,0,-30,-24,-31r0,-7r75,0r0,7v-20,1,-22,7,-22,31r0,91v-5,30,20,21,43,21v24,0,20,-1,20,-26r0,-86v0,-28,-1,-30,-25,-31r0,-7r78,0r0,7v-23,1,-24,4,-24,31r0,76v0,32,-3,39,24,40r0,52r-6,0","w":277},"\u044a":{"d":"54,-150v-31,0,-37,7,-44,33r-8,0r7,-44r105,0r0,7v-43,-8,-28,29,-31,63v49,-1,91,3,92,46v1,58,-85,43,-145,45r0,-7v23,0,24,-6,24,-31r0,-112xm142,-45v0,-27,-27,-39,-59,-33r0,64v29,10,59,-4,59,-31","w":186},"\u044b":{"d":"180,-123v0,-27,-1,-31,-27,-31r0,-7r81,0r0,7v-23,0,-24,5,-24,31r0,85v-1,26,1,31,24,31r0,7r-81,0r0,-7v26,2,27,-5,27,-31r0,-85xm92,-154v-43,-8,-28,30,-31,65v48,-5,94,8,92,44v-3,58,-85,43,-145,45r0,-7v23,0,24,-6,24,-31r0,-85v-1,-27,0,-30,-24,-31r0,-7r84,0r0,7xm61,-14v27,9,58,-4,59,-30v1,-26,-25,-36,-59,-34r0,64","w":241},"\u044c":{"d":"92,-154v-43,-8,-27,30,-30,65v48,-5,93,8,91,44v-4,58,-85,43,-145,45r0,-7v24,0,25,-7,25,-31r0,-85v0,-28,-1,-30,-25,-31r0,-7r84,0r0,7xm62,-14v27,10,57,-4,58,-30v1,-25,-24,-36,-58,-34r0,64","w":164,"k":{"\u0447":27,"\u0442":14}},"\u044d":{"d":"142,-83v0,-62,-55,-100,-112,-75v-4,0,-8,-4,-14,-3r0,50r6,0v1,-36,49,-61,71,-26v8,11,13,27,15,46r-52,0r0,11r53,0v12,73,-65,98,-98,46r-6,3v40,72,137,25,137,-52","w":154,"k":{"\u044f":5,"\u0445":14,"\u0444":2,"\u043c":3,"\u043b":7,"\u0436":13,"\u0434":19}},"\u044e":{"d":"177,5v-44,0,-75,-39,-76,-83r-40,0v4,29,-13,78,25,71r0,7r-78,0r0,-7v25,2,23,-7,24,-31r0,-85v-1,-27,0,-30,-24,-31r0,-7r78,0r0,7v-37,-6,-22,36,-25,65r41,0v5,-42,34,-76,77,-77v45,-1,78,39,78,83v0,48,-31,88,-80,88xm224,-70v0,-41,-16,-84,-51,-84v-27,0,-40,26,-39,60v0,39,16,86,51,86v26,0,39,-20,39,-62","w":268,"k":{"\u0447":14,"\u0445":14,"\u0444":2,"\u0442":5,"\u043c":5,"\u043b":9,"\u0436":9,"\u0434":18}},"\u044f":{"d":"22,-121v1,-52,81,-39,136,-40r0,7v-22,1,-25,6,-25,31r0,85v-2,25,4,30,25,31r0,7r-78,0r0,-7v35,5,21,-37,24,-66r-13,0r-51,73r-40,0r0,-7v18,0,15,-2,25,-17r37,-54v-27,-9,-40,-24,-40,-43xm56,-120v0,23,21,38,48,36r0,-64v-25,-7,-48,6,-48,28","w":165},"\u0451":{"d":"99,-216v-1,-10,10,-19,19,-19v9,0,19,10,19,19v0,9,-9,20,-19,19v-10,1,-20,-9,-19,-19xm37,-216v0,-10,10,-19,19,-19v9,0,19,9,19,19v0,9,-9,20,-19,19v-10,1,-19,-10,-19,-19xm13,-78v0,-70,70,-114,119,-70v12,12,18,28,18,48r-112,0v-10,70,88,107,106,38r6,3v-4,30,-31,65,-66,64v-41,-1,-71,-37,-71,-83xm113,-111v2,-38,-37,-54,-61,-31v-8,8,-13,18,-14,31r75,0","w":159}}}); diff --git a/lib/fonts/Vampire95.font.js b/lib/fonts/Vampire95.font.js deleted file mode 100644 index 774fc278..00000000 --- a/lib/fonts/Vampire95.font.js +++ /dev/null @@ -1 +0,0 @@ -Cufon.registerFont({w:166,face:{"font-family":"Vampire95","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"4 1 5 2 6 1 1 1 3 3",ascent:"288",descent:"-72","x-height":"35","cap-height":"60",bbox:"-0.519922 -273 339.783 76.0236","underline-thickness":"36.72","underline-position":"-37.08","unicode-range":"U+0020-U+0451"},glyphs:{" ":{w:84},"!":{d:"13,-203v0,-23,27,-9,45,-13v21,4,6,49,10,75v-6,9,0,70,-8,84v-8,-4,-9,-19,-12,-29v-5,0,-16,64,-21,25v5,-79,-14,-76,-14,-142xm33,4v-16,-9,-15,-37,9,-37v27,1,15,31,5,45v-4,-10,-6,0,-12,3v-3,0,-2,-7,-2,-11",w:88},'"':{d:"55,-199v-2,-17,6,-14,17,-12v16,0,6,25,7,36v1,29,-7,47,-12,25v0,17,-2,26,-7,26v-6,-10,-3,-56,-5,-75xm20,-211v33,-9,19,29,19,48v0,25,-7,35,-11,11v0,20,-2,31,-6,31v-8,-12,-8,-55,-8,-76v0,-9,2,-14,6,-14",w:94},"#":{d:"132,-189v-7,15,-6,33,-9,51v17,1,39,-15,39,6v0,8,-12,17,-6,28v0,2,-1,3,-3,3v-5,-2,2,-17,-3,-19v-1,-1,-8,14,-10,13v0,-7,-17,-16,-18,-4r-3,38v7,8,32,-12,32,7v-6,4,-2,28,-17,21v-2,0,-3,7,-5,21v-11,4,1,-20,-10,-20r-6,33v-2,0,-2,-1,-3,-4v-1,2,-8,47,-12,18v-1,-6,4,-17,0,-20v-2,5,-7,25,-9,9v2,-14,6,-26,5,-43v-3,3,-8,3,-14,3v-1,8,-9,17,-10,0v-13,5,-10,35,-10,52v1,7,-9,9,-7,1v0,-4,1,-8,-1,-11v-5,14,-8,-10,-9,8v-1,5,-2,7,-2,7v-12,-10,6,-45,-4,-59v-8,-3,-11,17,-14,19v-3,-5,-2,-18,-9,-13v-9,-6,-6,-40,12,-26v26,7,21,-26,15,-44v-4,-1,-10,14,-10,1r-7,22v-4,-1,0,-29,-12,-21v-2,-4,-1,-26,6,-30v25,5,29,3,31,-33v-7,-30,24,-25,29,-17v-2,8,1,36,-8,27v0,8,-3,17,-1,24v8,-10,33,11,31,-13v2,-14,-7,-50,11,-39v7,0,22,-3,21,4xm100,-108v-2,-20,-9,6,-18,-5v-3,0,-5,25,-9,9v4,-6,-4,-16,-6,-5v5,12,-12,34,2,40v4,-5,12,-3,22,-3v6,1,9,-27,9,-36xm17,-17v9,10,11,27,4,33v-16,1,-12,-8,-7,-20v2,-6,3,-10,3,-13xm139,-9v9,13,16,35,3,41v-17,-5,-8,-21,-3,-41",w:167},"$":{d:"59,9v-1,0,-6,-35,-10,-32v-7,-1,-12,21,-14,2v-8,-9,-15,-26,-14,-47v0,-7,3,-10,7,-10v13,11,20,38,43,43v-4,-25,14,-60,-9,-70v-18,-9,-54,-33,-49,-51v-2,-37,29,-57,64,-63v0,-14,-3,-33,11,-33v31,0,7,21,14,36v13,3,62,8,50,33v-1,14,-1,42,-12,42r-10,-36v-5,-2,-11,14,-15,13v-4,2,-8,-21,-12,-20v-4,0,-7,19,-10,55v9,3,18,16,26,8v4,-1,9,16,11,17v26,12,34,51,20,77v-10,-9,-15,10,-26,17v-18,3,-38,13,-28,43v-1,20,-8,-4,-14,7v-4,0,-3,-10,-3,-15v-1,5,-3,8,-5,8v-5,-7,-1,-56,-15,-24xm80,-183v-11,-1,-23,15,-22,25v0,6,6,12,19,20xm96,-35v17,-2,35,-27,15,-43v-7,-5,-11,-10,-15,-11v2,18,-10,43,0,54xm149,-15v11,9,10,37,0,39v-21,-1,-2,-31,0,-39xm26,-12v7,11,10,26,2,31v-11,-3,-7,-19,-2,-31",w:165},"%":{d:"75,-216v22,3,51,14,46,46v-1,8,-6,51,-19,42v-6,2,1,17,-3,23v-2,1,-6,-13,-8,-12r-7,28v-5,0,-7,-7,-7,-21v-8,11,-24,-7,-22,20v1,16,-5,15,-5,1v0,-18,-4,-26,-14,-31v-4,-1,-4,13,-8,12v-21,-42,-16,-117,47,-108xm54,-186v-2,8,1,15,-8,16v-11,10,-2,42,19,37v23,6,30,-39,21,-50v-6,10,-11,0,-17,-3v-1,0,-3,21,-7,18xm155,-185v15,-43,23,-24,42,-13v-8,21,-21,29,-17,50v0,15,-12,-9,-15,12v-4,29,-21,14,-21,54v-1,26,-7,11,-10,1v-4,0,-7,5,-8,15v0,30,-14,-2,-21,21v-9,6,-6,29,-12,37r-5,-14v-5,0,-8,8,-8,26v4,10,-4,28,-9,10v2,-7,-3,-22,-7,-11v-1,27,-6,-9,-16,2v-15,-3,-4,-15,3,-22v32,-34,82,-103,104,-168xm208,-107v22,4,45,14,45,47v0,14,-7,32,-14,42v-4,-1,-8,-2,-7,4v0,5,3,15,-1,17r-8,-11r-7,28v-4,0,-6,-7,-7,-21v-8,9,-24,-7,-21,20v2,15,-7,16,-6,1v2,-18,-4,-27,-14,-30v-4,-1,-4,12,-8,11v-19,-42,-17,-118,48,-108xm186,-77v-2,6,3,17,-7,15v-11,9,-3,44,18,38v23,6,30,-40,21,-51v-5,11,-11,1,-16,-2v-2,-1,-4,20,-8,18v-4,2,-4,-20,-8,-18xm24,-88v8,21,14,34,3,44v-15,-6,-6,-24,-3,-44xm241,15v5,13,10,24,2,31v-14,-4,-7,-15,-2,-31xm107,17v8,8,9,28,3,33v-19,-1,-4,-25,-3,-33",w:256},"&":{d:"149,-15v-2,25,-9,3,-18,17v-25,-5,-24,23,-31,35v-6,-4,-1,-43,-14,-38v-3,1,-10,27,-13,6v-2,-15,-15,-11,-18,0v-7,-4,-5,-27,-15,-26v-3,1,-6,-22,-9,-20v-3,9,-7,22,-9,0v-15,-35,15,-58,32,-72v-1,-6,-16,-29,-18,-7v-1,7,-2,10,-3,10v-1,-20,-19,-61,-1,-79v28,-27,17,-29,61,-31v9,-1,34,13,43,12v14,3,-3,21,3,34v1,6,-12,48,-14,21v0,-6,-2,-9,-3,-9v-6,9,-11,20,-14,-4v-2,-21,-5,-17,-13,-10v-2,1,-6,-11,-8,-10v-2,3,-9,33,-10,8v0,-3,-2,-4,-6,-4v-19,7,-5,45,15,42v24,-3,22,18,16,35v0,11,-7,17,-11,6v-1,-5,-3,-7,-5,-7v-2,18,-14,-3,-25,11v-25,32,10,66,53,62v23,-2,40,-40,33,-66v-11,-2,-12,-1,-14,14v-2,11,-4,16,-5,16r-6,-24r-4,7v-2,0,-3,-9,-3,-27v-1,-14,8,-13,16,-9v17,-6,39,-3,55,-11v11,4,34,3,30,23v1,18,-9,32,-12,15v-7,7,-12,-17,-13,5v0,18,-2,27,-5,27v-2,1,-5,-13,-7,-12v-6,13,-11,42,-18,54v-5,-7,-10,-11,-12,6xm199,-41v20,15,-4,53,-12,27v0,-7,12,-13,12,-27xm69,28v7,15,14,27,0,32v-13,-5,-6,-17,0,-32",w:218},"'":{d:"20,-211v34,-7,18,28,19,48v0,25,-7,35,-11,11v0,20,-2,31,-6,31v-8,-10,-6,-57,-8,-76v0,-9,2,-14,6,-14",w:52},"(":{d:"21,-53v-24,-64,7,-150,60,-158v25,-4,36,37,21,45r-4,-14r-11,33v0,-8,-6,-20,-9,-27v-10,25,-21,15,-21,65v0,45,17,73,36,97v-7,11,-10,25,-15,38v1,-3,-13,-45,-25,-28v-2,1,-5,-9,-7,-8v-2,0,-5,27,-8,24v-2,0,-4,-8,-5,-22v-1,-15,-1,-23,-1,-23v-2,-1,-4,8,-6,7v-2,0,-5,-28,-5,-29xm19,-19v5,22,15,39,2,49v-16,-8,-5,-22,-2,-49xm71,68v-23,-4,2,-31,-1,-45v7,14,12,38,1,45",w:110},")":{d:"3,-190v0,-10,16,-19,25,-19v38,-2,71,60,71,101v0,17,-10,54,-10,64v0,10,-4,16,-9,16v-2,1,-7,54,-10,20v-2,-22,-12,-4,-17,1v-8,3,-15,17,-28,10r-8,19v-5,-2,-7,-37,1,-42v23,-14,37,-34,36,-88v0,-9,-3,-45,-9,-44v-3,5,-10,25,-11,1v-1,-17,-5,-15,-9,-26v-2,1,-10,58,-12,19v-1,-22,-10,-7,-10,-32xm49,1v5,16,8,29,8,38v0,6,-3,9,-8,9v-16,-8,-5,-21,0,-47",w:110},"*":{d:"77,-210v21,5,-2,32,-6,40v5,-1,34,-28,34,-5v0,11,-2,31,-7,36v-5,-7,-2,-22,-17,-18v-15,4,-3,9,1,14v12,15,3,16,4,30v0,2,-1,3,-3,3v-2,0,-3,-10,-6,-9v-5,9,-11,36,-13,5v-1,-8,-10,-23,-12,-27v-6,9,-12,30,-15,42v-3,0,-2,-7,-2,-10v0,-12,-16,-12,-14,-22v1,-8,35,-23,15,-26v-7,6,-21,1,-23,17v-3,-2,-14,-33,-1,-34v9,1,19,7,27,5v-13,-7,-26,-46,6,-34v2,15,9,28,10,27v7,-9,0,-40,22,-34",w:113},"+":{d:"87,-44v-5,1,-4,27,-10,11v0,8,1,15,-7,15v-8,-15,11,-98,-29,-55r-8,-10v-5,-2,-8,30,-11,11v2,-17,-9,-9,-7,-27v2,-24,53,14,53,-23v0,-16,-8,-42,3,-51v10,2,28,1,33,7v0,18,-7,44,-2,59v15,1,39,-9,48,0v-2,15,-1,45,-9,41v1,-13,-29,-30,-32,-6v0,8,-1,12,-2,12r-9,-17v-1,19,7,58,-2,68v-3,0,-4,-6,-6,-18v-1,-11,-2,-17,-3,-17"},",":{d:"16,39v12,-32,-26,-77,16,-81v26,8,6,64,0,77v-1,0,-3,-5,-5,-4v-4,3,-9,22,-11,8",w:55},"-":{d:"54,-73v-7,-1,-10,12,-15,2v-2,6,-7,29,-9,12v-3,-22,-18,-7,-14,-43v0,-4,2,-6,7,-6v25,6,51,6,76,0v13,2,0,51,-5,46v4,-25,-10,7,-13,-13v-18,-5,-12,15,-17,16v-2,-2,-3,-17,-10,-14",w:114},"\u2010":{d:"54,-73v-7,-1,-10,12,-15,2v-2,6,-7,29,-9,12v-3,-22,-18,-7,-14,-43v0,-4,2,-6,7,-6v25,6,51,6,76,0v13,2,0,51,-5,46v4,-25,-10,7,-13,-13v-18,-5,-12,15,-17,16v-2,-2,-3,-17,-10,-14",w:114},".":{d:"23,3v-16,-10,-15,-37,10,-37v26,1,14,32,4,41r-3,-4v-4,3,-12,22,-11,0",w:58},"/":{d:"102,-193v15,-43,21,-27,45,-17v-4,23,-20,22,-21,51v-1,13,-2,17,-7,9v-13,20,-22,53,-26,84r-6,-16v-5,0,-8,19,-10,26v-8,-8,-10,-1,-17,14v-1,0,-6,32,-11,29r-7,-14v-3,0,-6,12,-7,36v-1,13,-10,17,-10,3v0,0,4,-18,-3,-18v-2,5,-8,22,-8,8v0,-11,-14,4,-12,-11v40,-55,74,-111,100,-184xm118,-108v6,13,9,28,1,34v-14,-5,-5,-16,-1,-34xm64,-16v5,6,7,17,2,21v-14,0,-2,-15,-2,-21",w:150},"0":{d:"23,-50v-29,-70,-9,-160,67,-160v60,0,90,71,68,130v-9,23,-5,41,-18,49r-7,31v-1,0,-5,-24,-7,-22v-3,-1,-12,23,-16,20r-23,-4v-3,-2,-7,20,-10,18r-6,-25v-2,-1,-8,13,-9,12v-2,0,-8,-9,-10,-9r-8,24v-4,0,-6,-16,-5,-47r-9,29v-2,-1,-7,-46,-7,-46xm49,-105v0,31,11,69,36,68v46,9,54,-94,37,-119v-1,0,-7,14,-9,13v-6,-13,-9,-30,-21,-35r-10,32v-1,-7,-9,-17,-15,-20v-10,21,-18,13,-18,61xm145,0v5,17,13,28,0,33v-11,-6,-5,-15,0,-33xm67,14v6,13,9,23,9,30v0,6,-3,10,-9,10v-21,-1,-1,-32,0,-40",w:173},"1":{d:"82,-217v31,10,14,108,14,143v0,26,11,69,0,87r-7,-20v-7,3,-12,20,-15,2v-1,-6,-4,-9,-6,-9v-4,7,-9,39,-15,21v3,-44,4,-89,-1,-130v-1,-6,-4,-38,-11,-37v-10,-3,-13,22,-18,25v-5,-16,-15,-25,-17,-43v25,-11,50,-30,76,-39xm18,-122v5,10,16,29,1,32v-16,-3,-7,-18,-1,-32",w:109},"2":{d:"117,-37v12,10,25,-8,33,-12v18,2,6,55,1,61v-1,0,-8,-16,-12,-15v-3,-1,-8,11,-11,11v-3,1,-6,-19,-9,-17r-11,30v1,-28,-43,-29,-57,-13v-2,-5,-4,-22,-6,-23v-5,0,-3,32,-12,16v-2,-2,-3,-4,-4,-4v-4,-2,-9,19,-11,19v-4,0,-6,-9,-6,-27v20,-19,32,-57,57,-71v5,-1,5,-15,8,-17v15,-21,27,-32,28,-58v1,-31,-22,-3,-30,-17v-3,-1,-5,17,-6,22r-8,-23v-7,-1,-10,24,-12,34v-4,1,-4,-14,-8,-13r-7,22v-3,0,-6,-25,-10,-11v-2,3,-3,4,-5,4v-20,-52,1,-74,46,-77v34,-17,90,6,92,46v1,21,-17,46,-21,69v-14,-11,-19,-1,-25,25v-3,13,-6,19,-8,19v-4,1,-5,-18,-9,-16v-1,0,-6,6,-15,18v-9,11,-13,18,-13,20v1,8,30,-3,34,7xm42,-125v6,11,15,29,1,33v-14,-3,-8,-19,-1,-33xm50,17v6,17,8,30,8,39v0,7,-2,11,-7,11v-18,-7,-5,-28,-1,-50",w:168},"3":{d:"15,-204v15,-7,49,-29,76,-17v44,5,55,65,35,105r-7,-18v-6,13,-6,21,-24,25v-1,1,26,13,25,12v20,14,11,75,-7,87v-2,1,-4,-8,-7,-7r-15,20v-2,0,-2,-10,-5,-9v-2,0,-5,13,-8,11v-3,1,-6,-9,-9,-8r-10,22r-8,-34v-4,-2,-13,18,-15,17v-2,1,-12,-16,-15,-14v-17,0,-13,-29,-2,-31v19,-10,27,11,46,10v26,0,36,-9,35,-36v1,-7,-20,-17,-26,-17r-7,16v-4,-9,-8,-38,-14,-17v-5,-9,-11,-1,-15,4v-8,-6,-16,-34,2,-34v26,-5,57,-12,57,-45v0,-12,-19,-22,-32,-22v-10,-5,-13,26,-19,30v-2,0,-3,-16,-5,-14r-10,17v-25,0,-30,-39,-16,-53xm114,0v5,17,7,30,7,39v0,8,-3,11,-9,11v-14,-8,-4,-29,2,-50",w:145},"4":{d:"28,-96v13,-40,33,-74,44,-125v13,9,35,8,54,3v37,1,2,38,13,67v0,22,-7,50,-2,69v6,-3,30,-16,35,-2v0,27,-2,40,-6,40r-8,-18v-5,-1,-10,15,-14,14v-10,-2,-11,-16,-11,9v0,20,-6,63,-7,23v0,-7,-1,-10,-4,-10v-2,9,-4,38,-8,39v-2,1,-4,-14,-6,-13v-3,3,-7,19,-9,12v0,-17,7,-55,-1,-64v-16,-3,-18,10,-21,19v-4,2,-8,-19,-11,-18v-8,3,-16,8,-20,13v-2,0,-8,-12,-12,-11r-8,25v-3,-16,-12,-21,-15,-38v-2,-14,13,-28,17,-34xm54,-86v5,11,31,-3,43,5v8,-8,-1,-72,-3,-78v-2,0,-9,11,-22,33v-12,22,-18,36,-18,40xm39,-26v5,17,8,30,8,39v0,8,-2,11,-6,11v-20,-5,-6,-28,-2,-50xm132,10v5,10,16,29,1,32v-16,-4,-7,-17,-1,-32",w:180},"5":{d:"146,-161v9,9,11,28,3,33v-19,0,-4,-24,-3,-33xm85,-216v23,-3,62,-18,69,8v1,5,-6,39,-8,39v-2,1,-6,-12,-8,-11r-7,26v-3,1,-3,-23,-8,-20v-3,-1,-6,30,-9,27v-5,-7,-6,-33,-21,-29v-5,-2,-8,22,-10,2v-2,-16,-9,-3,-12,0v-2,1,-5,-10,-7,-9v0,5,-14,49,2,49v18,0,22,8,44,8v22,12,41,59,25,98r-5,-3v-3,0,-9,22,-14,19v-1,0,-7,20,-9,18v-1,0,-3,-28,-8,-24v-3,14,-11,33,-24,20r-9,29r-8,-38v-7,-2,-15,11,-18,12v-2,0,-9,-31,-14,-27v-3,-2,-4,14,-7,13v-7,-8,-7,-39,5,-42r19,-5v9,5,16,28,30,24v28,0,49,-43,21,-61v-8,-6,-18,-9,-30,-9r-6,16v-1,1,-8,-15,-12,-13v-3,-1,-5,16,-8,15v-5,-6,-6,-24,-15,-19v-7,0,-6,-84,-12,-104v-2,-33,56,-3,74,-9xm109,12v10,8,8,33,2,36v-12,-4,-6,-21,-2,-36",w:161},"6":{d:"57,-125v9,-8,41,-23,52,-10v8,-7,15,3,19,7v29,16,26,72,7,98v-7,-9,-10,8,-17,9v-4,0,-7,23,-9,30r-9,-26v-4,5,-6,17,-22,11v0,0,-10,18,-12,17v-6,-2,-11,-30,-18,-11v-2,1,-6,-35,-11,-31v-2,-1,-5,11,-8,10v-30,-74,-30,-204,69,-203v6,-2,37,17,40,17v11,7,11,45,1,53v-3,-6,-9,-24,-18,-11v-1,-8,-15,-25,-21,-9v-3,-1,-8,-7,-14,-6v-11,-4,-16,25,-20,32v-4,1,-5,-13,-7,-12v-4,1,-15,34,-2,35xm73,-86v-3,-32,-9,7,-23,-8v2,23,11,62,37,52v17,11,32,-12,33,-28v1,-24,-8,-22,-14,-11v-1,0,-6,-23,-8,-21v-2,-1,-5,9,-7,9v-2,1,-4,-11,-6,-9r-9,31xm19,-19v6,17,14,37,2,45v-17,-5,-7,-28,-2,-45xm135,-14v7,11,15,32,0,36v-18,-2,1,-27,0,-36",w:159},"7":{d:"32,-207v32,-12,68,4,109,-5v33,7,-7,64,-5,83v1,12,-28,45,-18,57v-5,16,-8,61,-18,75v-4,2,-6,-8,-8,-8v-3,1,-8,25,-9,6v-1,-4,2,-15,-2,-15v-5,10,-11,20,-15,32v-23,-15,13,-52,14,-68v2,-33,11,-73,19,-107v-15,-14,-54,-3,-57,17r-8,-20v-3,0,-5,4,-7,14v-2,9,-4,14,-5,14v-4,-23,-13,-23,-14,-54v0,-15,9,-31,24,-21xm49,-127v5,17,8,30,8,38v0,8,-2,12,-7,12v-18,-7,-6,-27,-1,-50",w:158},"8":{d:"112,-104v33,11,32,64,13,82v-2,0,-4,-3,-7,-11v2,33,-20,4,-22,34v-1,10,-4,16,-5,16r-11,-22v-12,5,-25,9,-31,-3v-8,6,-15,24,-17,-6v-1,-13,-1,-19,-1,-19r-8,21v-11,-28,-10,-74,21,-90v-11,-6,-19,-27,-23,-41v-3,3,-7,19,-9,7v-2,-25,17,-63,36,-66v10,1,13,-9,20,-10v66,-12,102,46,68,98v-9,-9,-13,8,-24,10xm58,-158v-11,13,3,49,25,44v21,0,30,-42,12,-52v-6,12,-17,-1,-22,-5v-1,1,-4,41,-10,19v-1,-4,-3,-6,-5,-6xm67,-35v13,-7,41,-7,40,-30v-1,-11,-27,-37,-35,-16v-4,10,-11,5,-17,1v-13,10,-7,46,12,45xm11,-122v6,10,9,26,2,32v-11,-3,-8,-20,-2,-32xm78,14v9,15,11,33,3,40v-22,-4,-9,-17,-3,-40",w:155},"9":{d:"28,-190v23,-29,108,-28,108,17v0,8,14,44,14,54v0,53,-19,62,-32,97v-2,0,-4,-17,-8,-15v-4,0,-7,6,-10,20v-5,25,-6,21,-14,9v-4,6,-8,22,-14,11v-10,-9,-20,2,-26,6v-3,1,-27,-8,-27,-12r-6,-18v11,-11,42,-12,59,-12v14,0,36,-36,31,-53v-7,-3,-14,21,-16,22v-4,-6,-8,-23,-15,-11v-15,-13,-15,20,-26,-2v-9,-18,-20,-12,-30,-34v-15,-32,-2,-62,12,-79xm60,-159v-21,13,-5,57,27,48v6,1,14,-6,18,4v0,-32,-3,-48,-9,-48v0,0,-5,10,-8,9r-8,-16v-2,3,-4,21,-11,7v-2,-3,-5,-4,-9,-4xm118,23v0,20,-17,20,-15,4v3,-13,10,-18,10,-40v4,15,5,27,5,36",w:154},":":{d:"24,-111v-15,-9,-15,-38,9,-38v26,0,15,33,5,41r-3,-5v-4,-1,-8,22,-11,7r0,-5xm23,3v-16,-10,-15,-37,10,-37v26,1,14,32,4,41r-3,-4v-4,3,-12,22,-11,0",w:58},";":{d:"20,-111v-19,-9,-5,-34,12,-33v27,0,14,34,4,41r-3,-5v-2,3,-12,23,-11,1v1,-1,0,-3,-2,-4xm19,39v12,-32,-27,-76,16,-81v27,8,6,62,0,77r-5,-4v-4,-1,-8,26,-11,8",w:58},"<":{d:"44,-123v37,-15,58,-40,91,-62v4,8,24,13,13,23r-5,25r-5,-13v-7,6,-19,13,-18,27v1,12,-6,12,-8,1v0,-6,-1,-9,-2,-9v-6,-3,-9,23,-12,23v-2,1,-5,-9,-7,-9v-11,0,-7,20,-26,16v-3,1,-4,2,-4,3v10,10,11,25,32,30v14,4,21,32,37,28v16,1,7,25,0,27v-6,28,-11,14,-21,7v-7,0,-9,-14,-14,-15v3,10,-6,19,-8,6v7,-13,-7,-33,-12,-16v-4,0,-7,-30,-17,-19v-3,-1,-5,-13,-13,-10v-8,0,1,-16,-6,-17v-3,-1,-6,22,-11,13v6,-18,-7,-31,3,-45v-3,-8,2,-9,13,-14xm71,18v-15,-6,-1,-38,-1,-47v6,18,14,39,1,47"},"=":{d:"146,-134v20,4,3,35,-7,39r-5,-10v-5,13,-8,-6,-17,-4v-3,6,-10,36,-13,5v0,-4,-11,-10,-12,-1v0,3,-1,5,-2,5v-3,1,-5,-10,-6,-11v-6,-3,-16,19,-20,2r-6,16v-3,1,-12,-21,-16,-8v-2,7,-6,0,-9,-2r-7,11v-9,-16,-21,-52,16,-41xm51,-47v-8,-2,-14,13,-18,2v-4,-1,-2,21,-6,19v-6,0,-2,-29,-14,-20v2,-6,-6,-28,7,-28v37,7,77,2,115,2v13,0,16,4,17,16v0,5,-7,28,-12,26v-3,-1,-7,-19,-10,-7r0,4v-3,1,-6,-10,-8,-10v-8,4,-17,7,-19,-4v-3,1,-6,31,-9,7v-3,-25,-10,13,-14,-3v-1,-3,-1,-4,-2,-4v-20,-5,-15,13,-20,16xm90,-24v9,10,11,27,3,33v-19,0,-4,-25,-3,-33"},">":{d:"30,-141v-5,-17,-12,-40,12,-44v19,7,62,57,88,63v26,12,9,39,10,61r-9,-15v-3,3,-7,17,-15,16v-1,4,0,15,-9,9v-3,0,-6,3,-7,11v-3,16,-5,8,-9,1v-8,2,-18,12,-11,24v1,7,-8,12,-8,3v0,-3,1,-8,-1,-9v-3,3,-4,20,-14,11v-4,-2,-6,16,-9,15v-5,-9,-29,-34,-11,-41v22,4,26,-27,42,-30v18,-4,20,-23,32,-29v-2,-6,-11,-12,-19,-7v-1,-1,-7,-18,-11,-15v-2,-1,-5,9,-8,9v-2,1,-5,-27,-11,-24v-2,0,-5,20,-7,18v-8,-8,-3,-37,-19,-39v-2,-1,-3,13,-6,12xm100,-27v2,11,14,41,0,46v-13,-5,-5,-31,0,-46"},"?":{d:"63,-41v-4,0,-1,-30,-10,-17v-7,-19,-19,-70,21,-61v13,-6,29,-12,24,-39v1,-13,-20,-23,-32,-23v-13,-4,-12,31,-29,21v-7,-3,-10,21,-12,21v-1,0,-5,-17,-7,-15v-6,0,-13,-34,-5,-39v9,0,38,-30,51,-28v66,-4,89,53,63,108r-6,-17v-2,-1,-10,20,-10,19v-5,4,-39,6,-28,28v-3,9,-6,32,-13,14v-1,0,-3,31,-7,28xm119,-102v5,15,8,27,8,36v0,8,-3,12,-9,12v-14,-8,-5,-29,1,-48xm55,5v-17,-8,-11,-38,10,-37v26,1,15,33,4,41r-3,-4v-3,3,-12,21,-11,0",w:142},"@":{d:"135,-146v-4,-24,14,-3,25,-7v15,3,-4,19,2,31v-1,3,-4,2,-5,0v-2,10,-5,36,5,36v14,0,22,-12,22,-37v0,-12,-7,-51,-16,-50v-13,-2,-23,-12,-30,-19v-6,2,-5,37,-15,15v1,-11,-14,-5,-21,-11v-6,2,-6,13,-19,10v-3,-1,-10,13,-12,12v-62,16,-34,139,28,139v33,0,49,-13,68,-23v23,1,4,10,6,24v0,6,-1,9,-4,9v-3,-6,-12,-26,-12,-8v0,14,-1,22,-4,22v-7,0,-8,-19,-14,-17v-11,-4,-9,23,-17,26v-4,2,-7,-12,-8,-12v-8,-4,-13,24,-14,25v-4,-6,-1,-18,-13,-16v-5,0,-10,-16,-11,-3v-1,4,-3,5,-7,5r-6,-27v-5,-1,-6,19,-10,17v-12,-33,-42,-62,-42,-103v0,-54,50,-108,105,-108v61,0,91,30,91,91v1,7,-6,33,-13,32v-2,-1,-15,29,-18,26v-11,-4,-16,2,-20,9v-3,2,-7,-14,-9,-14v-2,-1,-4,7,-6,6v-2,1,-4,-15,-6,-14v-3,5,-4,18,-10,11v-4,6,-12,15,-24,10v-4,-1,-3,16,-8,6v2,-12,-12,-21,-17,-15v0,2,-1,4,-3,4v-26,-46,9,-113,60,-80v1,0,2,-1,2,-2xm92,-121v-13,11,1,48,23,43v14,-7,29,-33,15,-52v-5,10,-12,1,-16,-2v-2,0,-5,20,-7,18v-4,-1,-9,-26,-8,-6v-1,3,-5,-1,-7,-1xm77,3v5,20,11,43,0,51v-23,-8,3,-26,0,-51",w:217},A:{d:"182,-23v0,12,-6,30,-15,17r-8,23v-11,-10,1,-61,-17,-68v-4,1,-3,-19,-6,-18v-7,-1,-22,8,-28,7v-2,0,-6,23,-11,20r-6,-18v-4,-1,-8,8,-11,7v-3,1,-12,-15,-15,-13v-21,8,13,73,-27,65v-5,-1,-4,24,-9,22v-2,0,-6,-41,-10,-22v-3,7,-11,7,-11,-2v12,-31,12,-87,33,-110r34,-98v24,-31,50,17,64,31v7,12,15,52,24,65v30,52,40,68,28,103v-3,0,-7,-7,-9,-11xm64,-97v6,7,67,14,70,3v-5,-6,-30,-13,-19,-31v0,-1,-2,-8,-8,-20v-3,-8,-7,-12,-10,-12v-21,0,-18,46,-30,53v-2,3,-3,6,-3,7xm191,-8v4,11,11,31,2,38v-22,0,-1,-27,-2,-38xm45,31r9,32v0,5,-3,7,-10,7v-11,-9,-4,-19,1,-39",w:200},B:{d:"28,-211v22,8,64,-4,87,-5v57,-2,73,74,24,101v6,9,38,34,33,44v1,11,-8,55,-15,22v-1,26,-16,21,-24,41v-12,31,-18,-9,-44,5v-10,-16,-30,12,-41,1v-5,0,-12,36,-18,13v5,-78,-2,-144,-9,-211v0,-7,2,-11,7,-11xm81,-156v-3,0,-14,-31,-13,-7r1,43v29,10,64,-2,61,-38v-1,-13,-14,-31,-23,-14v-5,1,-11,-14,-15,-13v-2,0,-6,32,-11,29xm111,-99v-24,-3,-26,20,-38,6v-4,1,-10,58,8,53v20,-6,49,-1,51,-26v0,-6,-14,-34,-21,-33xm165,-29v7,10,11,26,2,31v-17,-2,-10,-18,-2,-31xm59,24v9,17,13,29,4,38v-20,-2,-11,-25,-4,-38",w:182},C:{d:"103,-213v52,0,105,21,86,70v0,14,-2,22,-5,22v-8,-9,-5,-21,-12,-30r-4,18v-11,-13,-23,-29,-31,-42v-5,1,-8,44,-16,20v-4,-12,-20,-24,-23,-9v-11,-6,-19,1,-23,7v-18,-1,-25,33,-25,54v0,31,22,64,52,64v54,0,46,-32,81,-39v21,1,2,32,2,43v0,7,-2,11,-5,11v-2,-15,-15,-27,-18,1v-2,19,1,21,-9,15v0,0,-5,-17,-8,-15v-4,0,-8,6,-11,19v-5,20,-14,10,-21,2r-14,24v-4,-6,-6,-22,-13,-11v-5,3,-8,-26,-11,-8v-1,4,-3,6,-7,6v0,-1,-5,-30,-6,-28v-4,-1,-11,13,-15,12v-12,-32,-37,-55,-37,-98v0,-52,43,-108,93,-108xm160,3v4,21,12,47,-1,55v-22,-9,4,-26,1,-55",w:204},D:{d:"22,11v6,-71,7,-153,-6,-213v-3,-16,15,-11,27,-11r70,-1v61,-2,103,50,103,105v0,27,-28,78,-39,86r-9,-4v-3,12,-19,59,-25,22v-2,-10,-2,-15,-3,-15r-15,27v-5,1,-9,-12,-14,-11v-5,-2,-21,18,-25,17v-4,0,-10,-7,-17,-22v-2,0,-4,15,-8,13v-12,-18,-25,12,-34,14v-3,0,-5,-2,-5,-7xm66,-76v0,32,1,47,21,48v43,3,86,-32,85,-74v-2,-30,-8,-66,-42,-64v-2,1,-18,-19,-21,-17v-6,-2,-13,43,-16,12v-1,-7,-3,-10,-7,-10v-2,-1,-7,18,-10,15v-7,0,-10,30,-10,90xm205,-48v7,24,11,38,11,43v3,27,-22,30,-21,4v0,-5,4,-21,10,-47xm69,50v4,22,-18,23,-18,7v0,-13,3,-27,10,-41v5,18,8,29,8,34",w:223},E:{d:"82,-177v-6,-1,-7,17,-13,16v0,21,1,34,2,40v24,1,43,-2,70,-2v12,0,5,13,4,20v0,39,-7,45,-16,16v-3,-5,-16,-4,-20,-6v-2,-1,-11,16,-14,14v-5,-14,-24,-24,-27,1v-1,14,-5,44,20,39v12,1,50,-9,62,-8v10,1,22,36,2,37v-2,0,-7,28,-13,25r-6,-28v-5,8,-8,29,-13,5v-7,-5,-25,-5,-27,4v-2,-1,-3,-11,-7,-9v-3,0,-9,33,-14,30r-6,-20v-9,4,-19,5,-25,-3v-6,2,-16,18,-18,1r9,-93v3,-29,-26,-97,4,-110v26,9,85,-5,115,-4v31,1,7,53,2,66v-12,-13,-20,-36,-50,-30v-2,0,-5,24,-9,21v-6,2,-7,-24,-12,-22xm52,14v11,27,19,43,-2,50v-17,-8,-5,-24,2,-50",w:173},F:{d:"105,-177v-8,11,-31,-10,-29,12v-9,10,-5,31,-7,48v10,-5,16,-2,24,1v17,2,47,-8,54,5v1,2,-14,16,-13,18v0,16,-1,24,-5,24v-9,-7,-6,-23,-30,-18r-9,23v-3,1,-6,-29,-12,-25v-26,12,8,86,-13,106r-7,-21v-3,-1,-9,7,-10,7v-2,-8,-5,-49,-13,-17v-2,8,-3,13,-4,13v-4,0,-6,-6,-5,-17v5,-54,6,-97,-4,-147v-13,-3,-11,-48,5,-45v42,7,89,1,126,-5v14,1,12,19,6,32v-8,19,-7,9,-22,6v-3,8,-6,23,-15,23v-7,-3,-5,-27,-17,-23xm114,-75v9,23,15,39,1,50v-5,0,-7,-3,-7,-10v0,-6,2,-20,6,-40xm32,8v6,19,9,32,9,39v3,15,-19,21,-21,7v0,-8,14,-37,12,-46",w:168},G:{d:"119,-99v17,3,69,2,75,9v-2,14,1,34,-6,43v-4,1,-5,-20,-8,-19v-14,14,16,68,-5,77v-7,-9,-14,-11,-18,3v-13,2,-2,-38,-11,-40v-4,0,-17,32,-33,22v-3,-2,-14,17,-16,16v-4,-3,-7,-14,-13,-4v-3,1,-6,-12,-7,-11r-10,24v-5,0,-7,-7,-6,-21v4,-32,-17,-16,-21,-5v-7,-31,-32,-72,-32,-102v0,-49,46,-104,95,-104v51,0,105,21,86,71v3,35,-11,39,-12,8v-4,-14,-12,13,-13,-9v-1,-17,-14,-18,-27,-28v-4,2,-9,45,-16,16v0,-23,-3,-20,-11,-13r-10,16v-4,-5,-10,-17,-22,-16v-17,-2,-31,47,-31,66v0,31,24,64,53,63v26,0,39,-10,39,-29v0,-12,-35,3,-35,-12v-1,-4,10,-21,15,-21xm127,67v-14,2,-12,-15,-9,-23v5,-7,8,-21,11,-41v4,25,13,54,-2,64xm41,4v2,15,8,31,-1,36v-16,-1,2,-28,1,-36",w:204},H:{d:"58,-218v11,2,9,28,11,38v0,16,-2,38,-5,65v21,0,44,1,65,5v15,-1,3,-25,6,-41v2,-12,-14,-48,-14,-57v15,-11,44,10,62,-2v12,4,-1,29,0,40r4,70v0,6,-2,10,-5,10v-1,0,-2,-19,-6,-17v-17,29,21,96,4,128v-3,0,-6,-25,-11,-22v-2,-1,-5,10,-7,10v-5,2,-6,-27,-12,-25v-3,7,4,30,-6,30v-13,-9,7,-71,-7,-83v-3,-1,-5,8,-8,8v-3,-10,-17,-11,-29,-12v-1,0,-1,7,-3,6v-3,1,-6,-10,-8,-9v-4,-2,-9,16,-12,15r-12,-15v-3,29,2,62,6,85v0,4,-2,5,-6,5v-5,1,-8,-18,-15,-16v-3,-6,-9,-12,-14,1v-2,5,-10,13,-10,1v4,-59,-9,-141,-19,-203v-4,-21,20,-8,33,-8v3,1,16,-7,18,-7xm183,-78v3,8,10,18,1,21v-10,-2,-4,-13,-1,-21xm31,15v4,9,14,24,1,27v-13,-3,-5,-14,-1,-27xm172,53v-1,6,-1,8,-9,7v-20,-3,-9,-21,-1,-39v6,10,10,21,10,32",w:205},I:{d:"64,-217v9,2,9,27,9,37v0,67,-4,130,8,189v0,4,-4,6,-12,6v-2,0,-9,-17,-14,-15v-4,0,-5,-8,-5,-23v0,-24,-6,-33,-8,-14v0,10,0,14,-2,14v-20,-3,4,-78,-12,-86v-8,0,-10,-75,-16,-94v2,-27,35,2,52,-14xm35,13v5,11,16,29,1,32v-16,-4,-7,-17,-1,-32",w:91},J:{d:"61,-191v-3,-43,21,-13,51,-22v20,-2,7,25,7,40v0,50,7,106,-5,147v0,18,-3,28,-10,28v-1,0,-7,-28,-10,-25r-17,30v-4,-1,-8,25,-14,22r-16,-30r-9,27v-4,1,-4,-18,-8,-17v-30,0,-32,-48,-10,-57v14,1,15,27,29,27v28,0,33,-20,33,-54v0,-23,-18,-75,-21,-116xm37,37v4,8,14,23,1,26v-13,-3,-6,-14,-1,-26",w:141},K:{d:"18,-215v38,0,59,11,54,56v-2,18,-1,30,-3,42v14,6,19,-24,25,-26v13,-6,31,-74,42,-72r41,8v21,8,-11,37,-9,53v-5,1,-5,-17,-9,-16v-11,16,-45,55,-47,66v0,2,11,17,34,45v22,28,33,44,33,49v0,5,-3,7,-9,7v-3,0,-11,14,-16,12r-11,-24r-10,18v-9,-20,-21,-44,-25,-67r-9,21v0,0,-14,-41,-19,-37v-3,1,-8,-9,-10,-9v-7,17,7,93,-3,108v-4,-7,-6,-40,-11,-22v-1,16,-7,3,-10,0v-4,6,-15,25,-18,8v11,-68,-16,-140,-16,-206v0,-9,2,-14,6,-14xm167,-143v6,9,11,29,3,36v-17,-1,-8,-22,-3,-36xm133,29v9,10,12,26,3,32v-13,2,-9,-11,-6,-19v2,-6,3,-11,3,-13",w:189},L:{d:"78,-39v26,-1,62,-2,77,-12v14,5,0,56,-5,62v-10,-4,-16,-12,-36,-11v-3,0,-9,-12,-12,-11r-7,11v-2,0,-8,-7,-11,-6v-4,0,-4,28,-13,15v-8,-5,-10,-8,-14,-14v-7,-3,-12,30,-18,28v-6,0,-8,-8,-8,-24v13,-49,-12,-136,-12,-189v0,-32,28,-14,47,-23v25,1,0,36,3,49v2,43,-13,99,9,125xm142,19v5,17,8,29,8,38v0,7,-2,10,-6,10v-26,-6,-8,-15,-2,-48",w:165},M:{d:"111,-44v-15,-37,-24,-71,-47,-105v3,27,0,54,-2,81v2,16,19,54,3,68v-3,2,-8,-14,-11,-13v-6,4,-12,16,-18,21v-15,-41,-15,-154,-22,-202v-2,-22,11,-17,23,-14r29,-5v37,13,37,87,60,110v15,-17,25,-75,46,-96v1,-5,1,-15,7,-16v17,9,66,-8,55,25v3,19,-9,32,-12,43v-10,45,10,107,-12,134r-6,-19v-3,0,-4,11,-4,34v-2,0,-4,-7,-5,-9r-6,15v-12,-40,-12,-95,-9,-147v1,-4,0,-5,-2,-5v-11,15,-18,70,-30,85v0,0,-4,-7,-5,-6r-8,32v-8,4,-15,-23,-18,-24xm109,-37v9,25,16,32,2,42v-15,-6,-8,-19,-2,-42xm212,-3v7,21,14,30,4,39v-26,-3,-9,-13,-4,-39xm38,23v7,14,4,40,-8,27v-7,-11,6,-18,8,-27",w:240},N:{d:"60,-209v17,-13,31,20,36,35v0,6,12,21,34,47v22,25,36,38,40,38v-6,-63,-10,-80,-3,-122v2,-12,17,-1,25,0v13,0,35,-12,33,8v-7,60,-27,122,-19,191v0,5,-2,7,-5,7v-1,0,-9,-19,-12,-16v-6,0,-10,5,-12,16v-2,11,0,16,6,16v-21,-1,-21,-21,-17,-44v-1,-21,-10,-6,-15,-1v-3,0,-4,-5,-4,-13v-1,-3,-36,-69,-44,-46v-3,-4,-5,-27,-9,-15v0,3,-1,5,-2,5v-1,-10,-18,-36,-24,-43v3,27,0,54,-2,81v2,16,11,25,11,47v0,24,-11,23,-22,15r-8,-23v-3,11,-9,25,-14,35v-14,-20,0,-73,0,-103v0,-62,-1,-67,-13,-100v-1,-34,23,-2,40,-15xm150,-22v5,11,12,22,-1,25v-13,-2,-3,-17,1,-25xm201,3v5,12,8,21,8,27v0,7,-3,10,-10,10v-16,-4,-5,-26,2,-37xm67,24v8,8,10,23,1,26v-14,-1,-6,-18,-1,-26",w:235},O:{d:"14,-112v0,-50,42,-99,93,-99v64,0,103,33,103,95v0,41,-16,43,-16,75v0,10,-1,15,-4,15v-2,1,-5,-20,-8,-18v-4,13,-24,47,-41,25v-5,1,-13,29,-24,15v-3,-2,-14,16,-16,16v-5,-4,-7,-13,-14,-4r-7,-11r-9,24v-4,0,-7,-34,-9,-45v-5,1,-12,8,-14,14v-9,-31,-34,-72,-34,-102xm121,-173v-3,7,-14,15,-17,21v-6,-5,-10,-15,-22,-14v-16,0,-22,42,-22,66v0,30,16,63,43,63v60,0,79,-77,55,-123v-8,9,-11,-4,-17,-5v-7,1,-2,21,-11,22v-9,1,-3,-34,-9,-30xm187,-13v5,20,12,42,-1,49v-21,-8,4,-23,1,-49xm87,21v1,20,7,26,10,38v0,7,-3,11,-9,11v-19,-6,-7,-27,-1,-49",w:217},P:{d:"26,-212v23,6,47,2,69,-1v81,-12,106,76,50,114v-2,0,-9,17,-15,16v-3,0,-6,-12,-9,-11v-3,-1,-16,26,-19,14v-7,-6,-9,10,-13,14r-15,-20v-4,13,-6,68,1,83v0,6,-1,9,-3,9v-8,2,-12,-36,-18,-12v-6,25,-13,-15,-27,1v-3,0,-4,-1,-4,-4v20,-43,0,-142,-4,-192v0,-7,2,-11,7,-11xm100,-161v-6,-4,-21,-22,-31,-7v-3,13,1,33,0,48v12,15,77,12,64,-29v1,-9,-11,-26,-20,-25v-2,-1,-10,15,-13,13xm135,-72v0,12,17,34,1,39v-16,-5,-6,-21,-1,-39xm46,14r14,42v0,5,-4,8,-13,8v-19,-7,-7,-26,-1,-50",w:181},Q:{d:"29,-48v-46,-59,0,-167,73,-167v64,0,103,33,103,95v0,39,-14,44,-16,73v0,11,-1,16,-4,16r-10,-25v-3,0,-7,7,-9,21v-6,37,-23,-7,-30,17v7,15,62,30,39,62v-4,7,-9,11,-13,11r-15,-27v-12,8,-16,7,-26,-10v-15,-25,-11,-9,-20,4v-4,-13,-7,-27,-14,-35v0,1,-9,22,-13,19v-4,-7,-13,-23,-20,-22v-2,1,-7,-21,-11,-19v-3,-1,-7,8,-9,8v-4,1,-5,-17,-5,-21xm76,-164v-39,7,-24,123,22,123v43,0,64,-27,64,-79v0,-30,-2,-45,-6,-45v-13,22,-13,8,-20,-4v-8,0,-3,22,-11,22v-3,-5,1,-26,-2,-32v-3,0,-5,7,-7,21v-4,41,-6,4,-16,0v-2,-1,-3,16,-7,14r-7,-32v-2,-1,-9,13,-10,12xm36,-21v3,17,9,36,-1,43v-18,-7,2,-21,1,-43xm102,31v1,18,6,22,9,33v0,6,-3,9,-8,9v-14,-5,-6,-26,-1,-42",w:215},R:{d:"29,2v9,-63,12,-161,-7,-205v5,-19,52,-4,76,-12v42,-1,78,21,77,61v0,33,-22,52,-53,56v1,10,71,72,42,92r-7,-17v-5,10,-17,20,-23,29v-8,-7,-18,-65,-30,-64r-15,-26v-3,-1,-4,9,-7,9v-4,2,-7,-14,-8,-14v-7,11,1,90,-9,98r-7,-24v-6,-4,-9,31,-14,16v-5,-5,-6,-6,-8,2v0,4,-1,6,-2,6v-3,0,-5,-2,-5,-7xm85,-168v-1,22,-8,4,-12,1v-2,0,-4,17,-4,50v29,3,71,6,64,-34v1,-6,-16,-27,-23,-26v-2,0,-7,12,-10,10v-3,-1,-6,-14,-13,-12v0,0,-1,4,-2,11xm150,6v6,16,14,31,-1,36v-18,-4,-5,-18,1,-36xm66,31v12,13,15,34,4,41v-20,0,-12,-10,-8,-25v2,-8,4,-13,4,-16",w:187},S:{d:"64,-158v-1,9,41,55,50,39v4,-1,9,17,12,16v24,14,36,51,19,77r-6,-3v-8,11,-17,24,-33,27v-2,0,-5,18,-8,16v-7,-2,-18,-30,-29,-14v-8,7,-10,4,-14,-1v-2,-1,-5,15,-7,13v-3,1,-4,-34,-10,-31v-7,-1,-14,19,-16,1v0,-8,-15,-11,-13,-20v-2,-18,5,-52,19,-33v8,18,21,23,32,36v20,6,42,-3,42,-22v0,-9,-8,-32,-14,-18v-3,1,-5,-10,-6,-10v-5,0,-11,35,-12,7v0,-8,-1,-14,-2,-16v-9,-11,-54,-33,-49,-60v-1,-45,28,-54,61,-64v25,7,84,2,67,43v-5,11,-4,31,-11,39r-13,-36v-4,-1,-8,11,-12,10v-6,-5,-7,-18,-22,-16v-6,6,-6,15,-19,6v-4,0,-6,5,-6,14xm145,-17v12,11,13,35,4,41v-21,1,-13,-11,-9,-25v3,-8,4,-13,5,-16xm33,16v10,28,19,35,5,48v-19,-6,-10,-22,-5,-48",w:162},T:{d:"49,-166v-7,-11,-7,4,-12,7v-2,1,-6,-10,-9,-9v-2,0,-2,36,-7,25v-6,-6,-8,12,-12,11v-1,-13,-8,-89,5,-76v30,6,61,-1,87,6v13,-4,27,-9,33,2v17,-1,48,-14,58,-1v2,21,2,85,-10,43v-4,3,-11,10,-11,-4v0,-5,3,-18,-2,-18v-19,3,-26,25,-46,10v-3,19,6,59,5,79v-11,4,-10,29,-11,52r-5,-26v-12,13,1,47,0,67v0,10,-4,15,-11,15r-8,-34r-8,26v-15,-48,-3,-118,-9,-181v-1,0,-23,7,-27,6xm23,-133v4,13,7,23,7,32v0,5,-3,7,-8,7v-14,-5,-6,-23,1,-39xm120,3v5,16,14,32,3,40v-16,-5,-5,-19,-3,-40xm85,32v5,13,7,25,7,36v0,5,-3,7,-7,7v-18,-4,-6,-29,0,-43",w:196},U:{d:"111,5v-15,-2,-35,-26,-46,-14r-14,-25r-7,20v-9,0,-12,-15,-8,-44v-3,3,-9,13,-9,-2v0,-48,7,-105,-6,-142v0,-13,8,-9,19,-9v18,0,41,-15,38,16v6,55,-35,160,39,160v33,0,40,-16,30,-38v4,-41,7,-81,-3,-117v5,-20,31,-16,53,-20v10,7,-3,28,-2,40r6,70v0,6,-2,10,-6,10r-5,-17v-14,21,10,75,14,98v1,7,-18,13,-29,12v-2,0,-6,-5,-8,-16v-7,-34,-10,-1,-19,3v-1,0,-4,-12,-5,-11v-3,-2,-12,15,-15,14v-5,-2,-14,12,-17,12xm30,-28v5,19,8,32,8,42v0,4,-2,6,-7,6v-18,-7,-6,-20,-1,-48xm150,16v6,19,13,33,3,42v-16,-4,-5,-25,-3,-42",w:217},V:{d:"170,-179v5,-44,33,-15,53,-29v5,0,8,4,8,13r-15,53r-7,-25r-9,35v-1,0,-4,-4,-6,-3v-5,0,-8,10,-8,29r-26,68v-4,2,-7,-18,-9,-17v-10,9,-5,55,-27,51v-15,-2,-7,44,-16,41v-4,0,-8,-11,-10,-32v-3,-21,-5,-32,-4,-32v-5,8,-8,22,-12,-1v-8,-45,-31,-59,-36,-104v-4,-1,-5,15,-7,14v-2,0,-4,-6,-6,-18v3,-38,-18,-29,-22,-61v1,-18,26,-4,34,-2v19,-5,33,-15,33,21v11,23,21,104,39,126v25,-34,25,-58,48,-104v2,-3,3,-10,5,-23xm209,-107v6,38,12,54,1,70v-17,-5,-1,-55,-1,-70xm36,-104v6,10,13,35,3,42v-18,-5,-8,-23,-3,-42",w:235},W:{d:"319,-167v-19,26,-22,75,-40,101v-1,9,0,10,-8,11r-7,32r-9,-24r-13,45v-6,-1,-15,17,-23,15r-28,-67r-8,15v-3,-11,-2,-76,-16,-76v-9,30,-23,59,-26,96r-6,-16v-7,9,-7,26,-21,28v-3,0,-6,5,-9,15v-3,10,-5,15,-7,15r-10,-28v-1,0,-4,9,-7,8v-7,-5,-5,-60,-17,-66v-3,-1,-2,8,-6,7v-8,-21,-7,-68,-23,-83v-4,-1,-5,8,-7,8v-2,0,-5,-28,-7,-30v0,-8,-36,-36,-2,-36v20,-18,70,-11,56,27v-2,11,20,38,11,50v11,19,21,75,24,68v13,-38,49,-99,35,-142v4,-15,30,-1,43,-8v32,9,16,74,29,109v-4,14,11,40,12,40v2,0,6,-7,10,-22v8,-38,17,-20,21,-59v3,-25,11,-39,16,-60v15,-14,37,-7,56,-14v17,4,1,30,0,42v-2,16,-4,23,-7,23v-2,-5,-4,-23,-6,-24xm329,-123v10,9,15,28,3,33v-22,2,-7,-22,-3,-33xm23,-118v7,21,14,42,1,50v-9,-9,-4,-28,-1,-50xm270,46v-9,-1,-9,-4,-9,-15v0,-6,2,-20,6,-42v12,30,21,43,3,57xm134,15v12,23,17,43,6,56v-24,-1,-9,-41,-6,-56",w:341},X:{d:"138,-109v14,16,5,23,34,34v11,13,43,34,49,49v0,18,-2,27,-6,27r-10,-24r-8,42v-3,0,-5,-5,-5,-15v0,-24,-11,-18,-18,-28v-4,-2,-7,13,-8,14v-2,0,-8,-23,-9,-31v-2,0,-4,3,-6,11v-1,8,-3,12,-4,12v-3,0,-4,-5,-4,-14v1,-21,-14,-36,-32,-39v-3,0,-8,6,-16,18v-18,26,-18,15,-30,51v-3,2,-5,-16,-8,-14r-17,30r-7,-22v-1,0,-5,16,-7,14v-6,0,-15,-22,-14,-28v24,-17,50,-46,71,-73v-3,-20,-25,-39,-39,-47v-5,9,-14,48,-14,10v13,-37,-36,-45,-13,-71v22,-2,55,-18,61,11v4,22,25,45,35,60v13,-12,28,-51,35,-74v7,-7,17,2,25,3v9,-2,19,-10,28,-5v2,19,-8,64,-16,35v-10,3,-17,27,-21,41v-2,1,-5,-8,-6,-7v-2,-1,-21,28,-20,30xm197,-94v-11,0,-12,1,-12,-10v0,-7,3,-21,9,-42v9,19,13,29,10,45v0,5,-3,7,-7,7xm66,9v6,30,15,40,1,51v-17,-5,-3,-36,-1,-51",w:223},Y:{d:"91,5v-15,-21,2,-59,-5,-100v-3,9,-6,14,-9,14v-6,0,-4,-22,-4,-33v3,-4,-34,-48,-38,-44v-3,-1,-5,19,-9,17r-8,-37v-6,0,-22,-31,-7,-33v21,1,43,-7,52,14v-1,6,22,19,24,22v0,25,18,29,26,46v9,-11,11,-23,27,-28v5,-9,0,-31,14,-33v9,-4,6,-33,21,-19v8,-3,22,-7,24,3v0,7,7,13,12,17v0,12,-20,15,-22,27v-8,20,-8,26,-20,18v-13,3,-23,51,-39,58v-5,21,1,42,6,58v1,4,-8,7,-9,7v1,11,9,29,2,37v-2,1,-10,-21,-13,-19v-2,1,-5,13,-10,11v-2,0,-3,-13,-3,-40xm181,-127v7,18,10,32,10,42v0,7,-3,10,-8,10v-21,-7,-8,-24,-2,-52xm109,19v7,11,11,22,11,33v0,5,-3,7,-9,7v-19,-5,-10,-21,-2,-40",w:213},Z:{d:"95,-72v-10,5,-26,19,-32,31v20,2,44,12,59,1v24,8,44,-11,63,-14v16,2,5,61,0,67r-10,-15v-8,8,-13,18,-14,-10v-2,0,-6,33,-10,30r-8,-21v-30,-2,-54,-2,-83,0r-8,-7v-2,0,-5,34,-8,32v-2,1,-5,-27,-9,-25v-1,-1,-7,13,-9,12v-1,1,-8,-23,-12,-21v-11,-3,-9,-15,2,-23v21,-16,41,-58,68,-70v2,0,4,-11,4,-12v27,-33,40,-51,40,-53v-9,-16,-41,13,-47,-2r-6,10v-2,1,-4,-14,-6,-13v-12,2,-19,22,-34,10v-2,0,-4,24,-8,21v-3,0,-5,-25,-10,-11v-2,3,-3,5,-4,5v-3,0,-5,-15,-5,-45v0,-30,27,-15,41,-10v22,-4,50,-13,70,-5v27,-8,76,-6,82,18v-7,11,-21,26,-21,46v-2,1,-7,-12,-11,-11v-20,-2,-22,58,-30,68v-3,1,-3,-23,-7,-21v-1,0,-36,38,-37,38xm17,-136v4,20,11,34,1,42v-16,-5,-6,-22,-1,-42xm115,59v0,17,-24,9,-25,-4v0,-4,4,-18,12,-40v9,22,13,37,13,44",w:204},"[":{d:"71,1v-7,18,-41,-18,-39,12v0,4,-1,6,-4,6v-3,0,-5,-5,-5,-16v2,-6,-14,-11,-13,-16v11,-58,14,-137,6,-195v8,-17,26,-3,42,-5v20,-2,50,-9,36,19v0,8,1,29,-3,29r-7,-21v-9,11,-20,-15,-20,15v0,10,11,29,-3,31v2,32,-3,65,-6,98v-3,24,12,17,27,15v4,0,6,3,6,10v0,7,-12,8,-4,16v1,18,-9,27,-11,10v0,-5,-1,-8,-2,-8xm58,19v13,23,21,44,0,54v-23,-3,0,-41,0,-54",w:101},"\\":{d:"3,-210v5,-2,21,-11,28,-13v33,56,66,155,113,208r-2,-5v4,5,12,17,1,19v-4,-2,-7,-4,-7,4v0,3,-1,5,-3,5v-2,1,-1,-16,-5,-14v-3,0,-4,3,-3,11v0,6,1,17,-4,16v-8,-1,-8,-55,-13,-48v-4,9,-9,22,-14,2v-3,-12,-7,-44,-21,-31v-2,-8,-5,-26,-10,-26v-2,9,-9,28,-9,1v0,-33,-12,-34,-18,-60v-2,-10,-6,-11,-8,-4v-4,-2,-4,-16,-5,-27v3,-3,-16,-19,-20,-38xm26,-125v9,18,15,42,0,49v-17,-7,-7,-26,0,-49xm88,-4v16,14,-5,46,-11,22v-1,-3,12,-18,11,-22",w:150},"]":{d:"19,-24v46,7,15,-40,26,-75v-3,3,-9,2,-8,-3v5,-24,9,-62,2,-84v-3,0,-5,4,-6,12v-2,8,-3,12,-4,12v-2,-6,-4,-37,-12,-14v-4,-4,-12,-39,-2,-43v17,8,44,6,69,3v14,1,5,15,3,27v-9,51,10,163,-11,195v0,10,-2,15,-5,15v-6,-5,-9,-29,-25,-17v0,2,1,6,-1,6v-4,0,-12,-16,-13,1v0,10,-7,13,-7,3v1,-9,4,-15,-10,-15v-5,-3,-6,-24,4,-23xm77,22v12,13,9,34,0,43v-23,-2,1,-32,0,-43",w:101},"^":{d:"50,-112v-7,15,-24,5,-24,29v-7,-12,-7,-38,13,-52r40,-45v33,8,19,18,48,45v15,13,19,23,19,26v-7,4,-13,11,-8,25v0,4,-1,6,-4,6v-9,-2,3,-20,-12,-21v-4,-5,-6,-21,-13,-14v-6,3,-13,-29,-17,-27v-1,0,-3,8,-5,8r-6,-19v-6,0,-10,5,-14,16v-3,11,-2,17,4,17v-3,0,-4,-4,-4,-11v0,-2,-1,-3,-1,-3xm66,-54v-23,-5,-4,-32,-2,-49v10,21,13,40,2,49"},_:{d:"107,19v1,15,-23,26,-31,16r-40,0v-3,4,-6,18,-10,5v-1,-15,-18,-1,-21,1v-6,-6,-13,-36,14,-27r81,0v4,0,7,2,7,5",w:103},"`":{d:"12,-198v24,-21,55,12,74,24v0,16,-14,-3,-14,9v-1,2,-2,4,-4,4v-2,0,-7,-11,-10,-10v0,2,0,5,-2,5v-3,-1,-15,-16,-21,-14v-2,1,-5,13,-7,0v-2,-10,-5,-5,-8,-1v-4,1,-8,-12,-8,-17",w:115},a:{d:"77,-46v-6,17,-17,-12,-22,4v0,34,-7,52,-21,37v-5,-3,-12,14,-14,14v-24,-12,1,-51,-3,-77v-1,-7,16,-20,17,-24v11,-26,19,-57,32,-80v19,-18,35,6,48,18v17,16,17,44,30,63v31,47,36,56,5,78v1,20,-11,24,-15,9r-6,-24v-2,-4,-16,-10,-12,-21v-9,3,-25,-2,-26,9v-2,5,-7,8,-8,0v-1,-2,0,-7,-5,-6xm84,-123v-15,2,-12,34,-23,43v0,3,12,4,37,4v6,0,9,-1,9,-3v-4,-6,-19,-7,-11,-22v0,0,-2,-4,-6,-14v-2,-6,-4,-8,-6,-8xm70,-22v-4,17,26,58,1,58v-8,0,-11,-6,-11,-17v0,-8,3,-22,10,-41xm165,-16v3,9,12,34,1,40v-16,-1,0,-30,-1,-40",w:174},b:{d:"142,-55v-1,5,-5,40,-13,24v0,11,-10,15,-18,19v1,26,-25,2,-37,14v-11,-11,-25,6,-35,-2v-3,0,-6,25,-11,22v-16,-35,5,-101,-13,-148v-3,-19,-10,-38,4,-43v26,4,55,-1,82,-2v46,-2,68,66,18,81v2,3,26,24,23,35xm76,-143v-4,10,-10,33,-16,10v-3,10,0,26,0,38v28,8,62,-16,38,-44v-2,4,-5,12,-9,12v-4,1,-9,-18,-13,-16xm93,-72v-15,-4,-24,20,-32,4v-2,7,-4,34,6,34v12,-5,37,-1,37,-17v0,-4,-7,-21,-11,-21xm127,-11v0,6,21,45,3,47v-17,-1,-4,-38,-3,-47",w:158},c:{d:"104,-108v-7,-4,-15,-42,-21,-18v-2,9,-7,1,-10,-1v-10,14,-20,8,-20,47v0,24,19,45,42,45v24,0,33,-32,58,-30v18,2,6,23,4,33v1,12,-8,21,-9,7v-1,-4,-2,-6,-3,-6r-9,27v-6,1,-10,-12,-16,-13v-8,2,-12,41,-26,16v-1,4,-11,52,-14,16v2,-18,-10,3,-11,-12v-12,7,-13,-2,-15,-17v-5,4,-13,19,-17,-1v-11,-23,-25,-37,-25,-69v0,-41,34,-88,75,-87v41,1,88,16,73,57v0,12,-2,18,-6,18v-4,0,-5,-5,-5,-15v1,-9,-4,-10,-5,-3v-4,14,-10,11,-15,-4v-10,-1,-9,-15,-16,-18v-5,2,-2,33,-9,28xm119,1v6,20,10,32,10,39v0,8,-4,13,-11,13v-9,1,-13,-9,-10,-17v3,-3,6,-15,11,-35",w:174},d:{d:"181,-84v-6,22,-19,77,-40,67v-3,18,-14,27,-18,44r-11,-39v-2,1,-5,28,-11,24v-4,1,-6,-11,-9,-11v-4,-1,-9,11,-14,10v-4,1,-11,-11,-13,-10v-3,4,-12,45,-17,13v-2,-8,-3,-12,-4,-12v-2,2,-23,30,-23,8v0,-55,4,-122,-6,-166v-3,-14,12,-10,24,-11r59,-1v48,-1,81,40,83,84xm84,-122v-3,-5,-4,-20,-11,-15v0,4,-2,6,-5,6v-4,0,-5,24,-5,73v-1,17,-1,35,15,35v41,0,73,-39,55,-83v-15,11,-7,-29,-25,-24v-2,1,-13,-10,-13,-10v-2,0,-6,21,-11,18xm92,23v6,16,9,26,9,29v0,9,-3,13,-10,13v-16,-8,-9,-19,1,-42",w:191},e:{d:"24,-77v0,-27,-27,-96,17,-86r82,-5v27,0,10,45,3,55v-8,-8,-10,-31,-40,-23r-7,16v-7,3,-8,-16,-9,-17v-9,4,-10,32,-7,41v14,-1,36,2,53,-2v11,0,5,13,4,20v2,37,-12,26,-16,10v-12,-6,-18,2,-24,8v-7,-10,-20,-22,-20,9v0,51,75,-19,75,34v0,11,-15,7,-11,19v0,8,-2,12,-5,12v-6,0,-8,-15,-9,-22v-3,7,-8,21,-12,4v-3,-12,-22,9,-23,-1v-1,-2,-2,-3,-2,-3v-3,7,-6,33,-10,33v-4,0,-6,-8,-6,-25v-13,10,-24,-10,-32,4v-21,-7,4,-62,-1,-81xm107,19v6,17,9,28,9,34v0,7,-3,10,-8,10v-16,-6,-5,-21,-1,-44",w:145},f:{d:"74,-52r-8,-16v-20,18,8,69,-11,87r-6,-23v-5,4,-13,16,-13,-4v0,-12,-1,-18,-3,-18v-4,6,-7,27,-14,14v1,-41,7,-69,-2,-109v1,-9,-5,-8,-7,-11v-1,-14,-4,-35,11,-34v35,3,72,4,102,-4v8,0,11,4,11,13v-1,16,-10,32,-27,21r-8,17v-5,-3,-8,-29,-21,-15v-5,0,-14,-6,-13,4v-5,10,-3,15,-6,36v15,-4,33,4,54,0v15,1,2,15,-2,21v0,5,-4,30,-7,29v-6,-9,-3,-27,-22,-23xm18,4v5,28,13,43,-1,53v-26,-2,2,-41,1,-53",w:135},g:{d:"122,-127v-4,5,1,20,-8,20v-4,0,-6,-5,-6,-16v0,-11,-4,-1,-7,-1v-3,8,-13,22,-14,-3v-42,3,-44,98,6,95v11,2,43,-13,20,-17v-22,1,-21,-25,-5,-30v16,3,68,1,69,9v-3,11,2,30,-7,35v-6,3,-3,-11,-7,-14v-2,19,17,77,-19,52v-5,-1,-3,12,-7,11v-9,0,-6,-26,-8,-33v-4,3,-12,26,-25,18v-6,2,-14,23,-19,6v-5,6,-8,5,-10,-4v0,11,-3,17,-8,17r-9,-32r-19,12v-3,0,-7,-13,-7,-18v-5,-20,-24,-38,-20,-64v-3,-38,44,-83,83,-83v42,0,93,16,77,57v0,6,-2,25,-6,25v-4,0,-6,-6,-6,-19v-3,-3,-6,4,-8,3v-4,1,-7,-19,-11,-17v-8,-1,-6,-11,-19,-9xm59,20v6,20,9,34,9,40v2,15,-20,18,-20,4v-1,-8,12,-39,11,-44",w:182},h:{d:"6,-159v1,-23,35,-1,47,-13v11,0,5,21,9,31v0,13,-1,29,-3,49v17,0,43,11,53,0v2,-25,-8,-53,-12,-71v11,-13,39,8,54,-3v11,3,0,23,1,32v0,22,9,53,0,69v-4,1,-6,-7,-6,-17v-9,26,20,86,2,109r-7,-24v-2,8,-9,17,-11,-2v-1,-8,-1,-12,-2,-12v-6,-2,-7,26,-12,24v-11,-5,1,-52,-5,-65v-2,-1,-4,11,-6,10v-4,0,-6,-4,-6,-11r-15,-4v0,9,-3,14,-7,5v-1,-4,-2,-6,-4,-6r-5,17v-3,2,-10,-15,-12,-15v-1,24,3,43,5,64v0,3,-2,5,-7,5v-7,-4,-12,-17,-18,-21v-5,-1,-14,30,-18,8v3,-48,-4,-128,-15,-159xm64,20v6,14,9,25,9,33v0,5,-3,7,-8,7v-19,-4,-8,-23,-1,-40"},i:{d:"58,-172v13,1,6,21,10,31v-3,51,-2,105,6,149v-7,18,-15,-11,-24,1r-5,-13v-4,8,-24,16,-18,-6v0,-46,-6,-122,-15,-149v-1,-20,19,-8,31,-8v3,1,11,-6,15,-5xm31,22v0,12,18,43,0,46v-21,-1,1,-37,0,-46",w:91},j:{d:"31,-35v18,25,33,16,33,-22v0,-13,5,-40,-1,-47v0,0,-1,7,-3,6v-12,-12,-19,-60,-3,-71v15,7,43,-4,49,9v-9,43,8,101,-8,142v0,11,-10,38,-17,15r-5,-8v-2,0,-10,25,-14,21v-4,3,-3,27,-11,25v-5,-10,-4,-25,-12,-31v-4,4,-2,24,-8,21v-7,3,-1,-20,-12,-12v-15,-7,-25,-49,-1,-54v5,0,10,1,13,6xm70,18v6,13,9,23,9,29v2,14,-16,15,-15,2v0,-4,2,-14,6,-31",w:124},k:{d:"16,-170v30,1,49,4,47,38v-3,40,-2,38,-2,38v8,4,12,-18,17,-19v5,0,23,-59,34,-57v11,3,36,3,40,13v-2,8,-13,32,-15,38v-4,2,-6,-10,-6,-12v-5,6,-9,28,-16,19v-12,-1,-20,18,-20,30v5,14,47,55,53,74v0,5,-3,8,-9,8v-2,0,-6,25,-12,22r-10,-28v-2,11,-10,24,-14,3v-4,-22,-12,-17,-13,-45v-1,0,-2,19,-7,16v-7,-12,-14,-31,-23,-35v-2,26,9,68,-2,84v-2,0,-4,-7,-7,-21v-1,12,-11,13,-14,4v-2,9,-14,19,-15,4v9,-46,-13,-120,-13,-161v0,-9,2,-14,7,-13xm134,-106v7,12,12,22,2,29v-14,-3,-6,-15,-2,-29xm85,-8v4,18,6,29,6,32v2,19,-17,18,-16,2v4,-8,5,-13,10,-34",w:154},l:{d:"21,-49v9,-50,-25,-100,2,-124v13,6,39,-9,42,7v-9,32,-4,77,-10,112v4,5,4,17,13,17v20,0,46,0,59,-10v14,2,4,44,-1,50v-11,-5,-30,-8,-45,-11v-6,9,-9,6,-11,-1v-5,2,-11,25,-16,9v-12,-11,-21,6,-24,14v-13,-13,-8,-38,-9,-63xm54,7v6,18,9,30,9,36v0,8,-3,11,-8,11v-14,-8,-5,-24,-1,-47",w:136},m:{d:"92,-32v-14,-24,-16,-53,-34,-75v1,20,-2,36,-3,54v4,12,17,44,1,55r-8,-10v-7,2,-10,13,-17,16v-15,-30,-15,-122,-19,-160v-3,-29,28,-4,45,-18v28,10,30,65,47,87v2,0,5,-6,8,-19v7,-30,14,-33,26,-55v-1,-19,16,-11,32,-11v8,0,26,2,25,8v-1,18,-3,36,-11,45v-8,36,9,86,-10,107v-2,0,-5,-5,-5,-6v-2,26,-10,1,-12,22v-1,6,-2,9,-5,9v-9,-31,-12,-87,-6,-127v-9,10,-12,55,-25,66v-3,1,-5,-10,-5,0v2,23,-10,25,-16,12v0,-3,-1,-7,-3,-10v-1,7,-3,10,-5,10xm121,-17v6,26,15,33,1,41v-17,-7,-6,-15,-1,-41xm53,10v6,26,13,34,0,43v-21,-3,-2,-29,0,-43",w:202},n:{d:"150,-15v-1,5,-1,23,-7,25v-24,1,-13,-28,-17,-43v-6,4,-12,16,-13,-4v0,-2,-4,-9,-13,-19v-8,-10,-13,-15,-15,-15v0,12,-1,18,-4,18v-3,0,-5,-9,-5,-27v-1,3,-2,4,-4,4v-2,1,-16,-29,-17,-28v4,30,1,63,7,90v5,24,-22,22,-23,4v0,-6,-1,-9,-2,-9v-7,5,-7,25,-13,28v-5,0,-7,-6,-7,-18v0,-44,9,-117,-6,-143v-1,-31,30,0,41,-18v12,3,25,21,25,34v0,6,18,26,54,60v-4,-50,-9,-58,-2,-89v4,-17,27,5,43,-5v6,0,8,4,8,11v-8,36,-21,105,-15,150v0,5,-1,7,-6,7v-2,1,-7,-15,-9,-13xm114,-13v4,18,7,28,7,32v2,15,-16,16,-16,2v0,-6,3,-18,9,-34xm46,10v5,15,8,24,8,26v1,12,-8,13,-14,8v-4,-11,5,-23,6,-34",w:184},o:{d:"104,3v-8,-7,-10,7,-15,12v-4,0,-7,-3,-9,-9v-4,7,-6,2,-10,-1v-1,-1,-4,16,-8,14r-7,-35v-7,1,-12,5,-15,11v-10,-21,-28,-59,-28,-82v0,-41,38,-79,78,-79v74,0,107,68,75,122v0,6,-3,43,-11,20v-1,-5,-1,-7,-1,-7v-8,9,-20,38,-36,19v-2,-1,-10,17,-13,15xm71,-127v-25,9,-19,95,20,95v30,0,45,-20,45,-60v-1,-23,-1,-34,-11,-28v-2,-1,-11,-14,-11,-2v0,10,-1,14,-4,14v-4,0,-6,-5,-6,-17v0,-5,-1,-7,-3,-7v-8,3,-13,27,-21,8xm142,-2v6,21,10,35,10,42v2,19,-21,20,-21,3v5,-13,7,-16,11,-45xm47,32v-1,6,19,37,1,39v-15,-5,-8,-24,-1,-39",w:188},p:{d:"81,-58v-5,2,-6,23,-12,4v-4,-6,-7,-13,-8,-3v-3,25,11,59,-3,70v-4,0,-6,-18,-8,-23v-1,-1,-11,15,-12,14v-5,-4,-10,-19,-17,-6v-3,0,-4,-2,-4,-7v14,-34,-1,-109,-4,-148v5,-25,42,0,65,-12v84,-9,76,88,28,110v-4,0,-5,-6,-7,-9v-4,5,-11,19,-18,10xm78,-132v-25,-10,-19,11,-18,38v13,13,57,-1,40,-33v-5,-10,-8,-9,-10,0v-2,4,-3,6,-5,6v-4,0,-7,-4,-7,-11xm75,2v1,27,4,33,7,44v0,7,-3,10,-9,10v-13,-11,-4,-25,2,-54",w:149},q:{d:"159,24v1,9,-12,31,-21,29v-4,0,-9,-8,-14,-23v-13,5,-16,-16,-24,-23v-3,-1,-8,19,-11,17v-4,0,-6,-5,-6,-16v2,-7,-5,-11,-8,-12r-8,25v-2,-1,-6,-32,-13,-28v-5,3,-10,-26,-13,-12v-1,2,-2,3,-2,3v-13,-16,-26,-36,-26,-66v0,-42,36,-85,78,-85v50,0,86,29,86,77v0,28,-12,34,-12,60v0,7,-2,10,-5,10r-8,-16v-11,-4,-4,27,-13,28v-4,-5,-16,-11,-19,-1v0,1,44,27,39,33xm55,-82v-1,26,15,47,41,47v38,9,49,-66,29,-87v-2,4,-5,19,-7,1v-1,-10,-6,-13,-7,-3v-1,4,-2,6,-4,6v-4,0,0,-21,-6,-18v-10,-3,-1,51,-11,25v0,-10,-3,-11,-5,-2v0,4,-1,6,-3,6r-4,-22v-2,0,-5,12,-8,10v-12,0,-15,23,-15,37xm40,-8v6,19,9,31,9,37v2,17,-17,17,-17,2v0,-7,9,-33,8,-39xm102,22v-1,8,19,44,-1,45v-14,-8,-4,-23,1,-45",w:186},r:{d:"106,14v-8,-6,-11,-60,-24,-46v-6,3,-8,-31,-13,-23v-8,13,-10,-16,-11,-2v0,19,2,69,-6,71r-6,-23v-4,-2,-7,17,-10,17v-4,-1,-12,-20,-12,-1v0,2,0,4,-2,4v-4,0,-6,-3,-6,-8v9,-44,9,-131,-6,-160v9,-18,49,-5,71,-12v35,-1,63,18,63,50v0,27,-19,45,-41,50v7,10,53,50,31,68v-4,1,-4,-9,-6,-14v-8,7,-16,19,-22,29xm80,-127v-8,1,-10,-22,-12,-1v-1,16,-5,7,-10,1v-1,0,-1,12,-1,36v33,11,67,-27,30,-44v0,0,-4,10,-7,8xm130,5v4,10,10,23,2,28v-13,-2,-8,-17,-2,-28xm45,12v7,18,10,29,10,33v0,8,-2,12,-8,12v-18,-3,-4,-31,-2,-45",w:150},s:{d:"78,-138v-3,17,-20,-6,-18,15v0,7,11,17,34,30v4,-4,7,-2,10,4v18,20,37,43,18,74v-11,-4,-19,11,-35,15v-1,5,-1,14,-6,13v-3,1,-18,-13,-21,-12v-8,5,-13,12,-16,5v-2,6,-4,9,-6,9r-8,-24v-4,3,-13,11,-14,-1v-1,-8,-10,-5,-10,-16v0,-16,-2,-36,12,-37v12,10,16,31,41,33v23,2,24,-22,14,-30v-4,6,-7,3,-9,-5v0,4,-9,26,-10,5v0,-29,-39,-26,-40,-61v-1,-41,45,-60,86,-46v8,0,28,7,27,15v-1,11,-5,36,-10,49v-3,0,-6,-5,-8,-15v-5,-24,-5,-12,-14,-8v-4,-2,-7,-14,-17,-12xm128,14v3,15,-18,17,-15,3r5,-22v7,9,10,16,10,19xm26,7v5,19,7,29,7,33v0,7,-2,11,-7,11v-15,-8,-6,-18,0,-44",w:135},t:{d:"85,24r-9,-35v-2,0,-4,4,-5,13v-1,5,-2,8,-5,8v-15,-30,4,-86,-5,-140v-8,0,-19,8,-23,0r-4,16v-2,-6,-8,-22,-10,-4v-1,8,-10,1,-6,18v0,4,-2,6,-6,6v-3,0,-4,-21,-4,-63v4,-18,30,1,50,-7v17,4,32,4,47,-2v7,16,41,-5,54,5v1,18,6,45,-5,54v-2,-18,-17,3,-14,-26v-19,-3,-21,17,-35,6r4,54v-11,4,-3,33,-9,45v-3,0,-4,-5,-5,-13v-4,16,-4,34,-2,53v0,8,-3,12,-8,12xm112,-26v5,14,8,24,8,31v0,4,-3,6,-8,6v-15,-3,1,-27,0,-37xm45,-6v5,18,7,29,7,35v0,7,-3,10,-9,10v-15,0,-3,-38,2,-45",w:164},u:{d:"167,-159v-7,26,-1,55,0,84v0,7,-2,10,-6,10v-4,1,-3,-8,-5,-13v-6,30,7,51,14,75v-3,10,-32,20,-35,-1v-6,-36,-11,21,-20,-7v-5,8,-16,15,-25,21v-7,-6,-19,-11,-29,-15r-7,17v-2,-11,-7,-48,-16,-24v0,5,-2,7,-3,7v-3,0,-4,-10,-4,-30v0,-7,-5,-2,-7,0v-14,-26,6,-96,-10,-124v3,-16,31,-6,45,-13v12,-1,6,23,8,31v0,41,-24,112,28,112v25,0,28,-13,21,-28v8,-23,2,-67,-2,-92v4,-16,29,-15,48,-17v3,0,5,2,5,7xm182,-34v0,10,-13,12,-14,1v1,-8,3,-16,1,-24v8,8,13,16,13,23xm42,29v0,6,-3,14,-10,13v-15,-7,-5,-17,-1,-41v8,13,11,22,11,28",w:180},v:{d:"51,-166v21,23,21,92,39,120v16,-33,32,-68,43,-113v16,-14,25,1,39,-9v22,4,-4,55,-5,65r-5,-19r-7,27r-3,-1v-8,20,-19,39,-23,63v-2,12,-6,17,-11,7r-2,-8v-3,8,-7,35,-21,34v-7,6,-13,48,-19,12v-1,-7,-2,-25,-5,-24v-2,7,-4,10,-6,10v-7,-27,-29,-62,-32,-92v0,1,-5,13,-6,12v-8,-7,-1,-53,-14,-54v-8,-9,-16,-29,2,-31v12,6,24,6,36,1xm160,-75v5,16,7,26,7,29v3,17,-15,18,-16,6v4,-10,7,-23,9,-35xm56,4v8,15,13,30,1,36v-18,-4,-10,-20,-1,-36",w:187},w:{d:"67,5v-11,0,-3,-74,-20,-46v-10,-11,-5,-90,-22,-60v-4,0,-5,-5,-5,-15v0,-17,-15,-24,-16,-34v1,-12,23,-10,30,-17v58,-4,29,80,56,115v2,-34,34,-70,21,-101v1,-14,26,-5,40,-10v21,3,18,29,19,54v7,12,9,43,16,56v13,-27,25,-70,33,-102v9,-12,38,-5,53,-12v16,3,2,29,1,41v0,12,-9,22,-9,5v0,-7,-2,-10,-5,-10v-8,28,-20,51,-29,78v-1,17,-11,-7,-10,8v1,15,-6,45,-9,18v0,-4,-1,-6,-3,-6v-2,0,-9,33,-14,29v-4,-1,-12,16,-17,14r-21,-51v-2,-1,-4,9,-7,8v-6,-15,-1,-45,-12,-58v0,0,-2,8,-7,24v-6,18,-9,27,-14,44v-3,0,-5,-4,-5,-12v-4,0,-11,26,-16,25v-10,0,-8,29,-13,27v-4,-8,-5,-23,-15,-12xm24,-81v6,14,8,24,8,30v0,5,-3,8,-9,8v-13,-7,-8,-19,1,-38xm237,-37v5,28,13,36,1,47v-9,1,-9,-2,-10,-9xm103,-2v8,18,11,29,11,33v3,18,-21,18,-21,4v-1,-4,10,-36,10,-37",w:282},x:{d:"95,-48v-10,17,-27,24,-31,47v-1,5,-3,7,-5,7v-5,1,-4,-7,-6,-11v-9,-2,-8,27,-13,24v-3,0,-4,-5,-6,-16v-1,7,-3,10,-5,10v-5,1,-14,-19,-14,-24v17,-15,39,-38,56,-58v-4,-15,-21,-27,-31,-35v-2,6,-5,23,-9,23v-2,0,-4,-8,-4,-24r0,-20v-14,-4,-35,-44,-1,-43v12,0,18,-9,27,-7v7,-1,15,17,16,24v4,20,21,37,27,51v9,-16,20,-36,26,-57v5,-17,13,-12,25,-9v9,2,32,-15,31,4v0,8,-8,51,-15,24v-13,4,-7,35,-19,42v0,-2,-2,-5,-4,-5v-4,-1,-15,17,-14,21v-1,2,11,7,9,16v-2,8,24,14,25,17v1,2,33,27,32,32v0,6,-3,24,-7,24r-9,-19v-1,0,-2,7,-2,22v0,7,-1,11,-4,11v-4,0,-6,-6,-6,-18v0,-9,-8,-9,-12,-16v-3,5,-10,15,-15,14r-6,-27v-2,-1,-4,20,-8,18v-4,-13,-12,-45,-28,-42xm167,-110v5,20,11,31,0,38v-16,-4,-5,-18,0,-38xm62,18v8,21,13,32,0,40v-21,-6,-1,-19,0,-40",w:190},y:{d:"74,5v-17,-11,1,-45,-6,-72v-2,2,-3,4,-5,4v-5,1,-5,-19,-5,-28v2,-2,-25,-31,-27,-29v-3,-1,-3,16,-8,14r-6,-29v-10,-2,-22,-43,4,-33v29,-11,40,17,56,30v1,26,9,9,16,31v6,2,12,-18,16,-19v13,-1,1,-27,17,-27v8,-3,8,-27,19,-14v8,-4,20,-6,22,4v14,14,5,26,-9,38v-6,17,-7,24,-17,17v-9,5,-15,32,-29,40v-7,21,14,42,-2,53v9,15,-2,52,-11,24v2,-24,-16,12,-16,-20v0,-10,0,-15,-1,-15xm160,-103v5,22,13,33,1,41v-16,-6,-6,-19,-1,-41xm23,-95v7,17,10,29,10,37v0,7,-3,11,-9,11v-18,-8,-6,-20,-1,-48",w:181},z:{d:"32,-124r-7,20v-3,0,-4,-6,-5,-18v-2,5,-4,7,-6,7v-8,-13,-13,-74,18,-52v18,12,49,-11,65,0v20,-8,62,-5,66,16v0,4,-13,14,-13,19v0,5,-4,28,-6,27v-4,1,-7,-11,-10,-11v-7,0,-13,12,-15,36v-1,13,-8,21,-9,6v0,-7,-1,-10,-3,-10v-13,19,-23,32,-41,53v36,6,58,-5,83,-12v15,1,6,54,-1,57v-3,-6,-8,-18,-13,-4v-3,1,-4,-10,-5,-10v-2,-1,-5,20,-8,18v-3,0,-5,-4,-5,-13v-16,-9,-42,-3,-66,-3v-1,1,-1,-8,-3,-7v-3,0,-5,4,-6,13v-1,9,-2,13,-3,13r-8,-19v-3,-1,-5,9,-7,9v-4,1,-7,-17,-9,-16v-10,-2,-10,-12,-1,-21v28,-27,55,-68,75,-104v-13,-2,-14,11,-22,3v-3,11,-8,3,-11,-3v-8,3,-15,17,-24,6xm24,-96v6,15,9,25,9,31v0,7,-3,11,-8,11v-17,-6,-8,-21,-1,-42xm116,26v6,13,9,23,9,29v0,5,-2,8,-7,8v-19,-5,-7,-15,-2,-37"},"{":{d:"74,-25v29,-8,20,19,25,37v0,5,-3,7,-8,7v-5,-3,0,-24,-17,-20v-7,-2,-5,12,-10,13v-2,0,-3,-3,-3,-11v-6,-2,-13,22,-15,7v-1,-13,-10,-16,-11,-29v-2,-1,-8,17,-8,5v-2,-26,13,-67,-8,-76v-3,-2,-7,8,-8,8v-4,0,-6,-9,-6,-26v1,-7,4,-16,15,-13v29,-7,-6,-97,45,-95v15,1,56,-2,35,16v3,20,-6,45,-9,13v-8,8,-17,-9,-17,10r-3,63v-3,-10,-4,-20,-10,-2v-3,7,-5,10,-7,11v27,2,5,67,20,82xm62,22v5,23,11,36,0,45v-17,-8,-7,-19,0,-45",w:109},"|":{d:"19,-263v8,-9,26,6,36,-2v9,12,-1,45,2,66v0,0,-1,-1,-7,-2v6,40,4,97,0,137v-1,0,-2,-1,-4,-3v3,33,0,50,4,78v1,12,-5,22,-10,14v3,-5,1,-24,-2,-9v-1,4,-2,6,-3,6v-10,-5,2,-34,-5,-42v-8,0,1,24,-8,25v-9,-17,1,-66,3,-87v-2,2,-4,9,-7,5v-2,-33,14,-69,1,-96v3,-17,12,-46,4,-62v-2,9,2,27,-6,29v-5,-15,2,-39,2,-57",w:67},"}":{d:"33,-25v14,-18,-3,-76,21,-83v-17,-4,-15,-25,-16,-50v-13,1,5,-31,-8,-34r-6,17v-2,-4,-3,-22,-6,-14v0,2,-1,3,-4,3v-4,0,-6,-6,-6,-18v-8,-26,25,-15,43,-15v25,0,29,41,25,72v-3,20,7,21,24,20v7,4,7,32,-9,28r-7,13v-18,8,7,54,-7,71v-7,-1,1,-20,-4,-23v-6,12,1,40,-5,51r-5,-20v-3,18,-30,-6,-32,10v0,0,-6,-11,-4,1v3,10,-7,18,-6,2v1,-8,-6,-6,-8,-3v0,-2,-2,-8,-4,-17v9,-13,9,-13,24,-11xm80,15v7,21,12,35,1,43v-18,-7,-8,-18,-1,-43",w:109},"~":{d:"19,-61v-25,-28,4,-73,36,-73v19,0,33,8,43,25v2,4,8,6,17,6v15,5,15,-28,24,-33v3,0,10,2,20,5v-1,10,1,40,-10,28v-3,15,-19,21,-10,41v0,4,-2,5,-5,5v-2,0,-2,-23,-7,-20v-15,-5,-15,22,-23,8v1,-10,-17,-21,-18,-11v-1,4,-2,5,-3,5v-2,1,-10,-31,-15,-27v-7,-3,-7,21,-10,21v-2,0,-4,-27,-8,-24v-17,-2,-10,36,-26,28v-5,2,3,16,-5,16xm142,-52v4,20,12,36,0,43v-13,-8,-4,-19,0,-43xm35,-48v4,13,6,27,0,33v-16,-5,-5,-15,0,-33"},"\u0401":{d:"74,-177v-7,-1,-7,17,-13,16v0,21,0,34,1,40v25,1,43,-2,70,-2v13,0,4,13,4,20v0,23,-2,34,-6,34v-2,0,-5,-6,-9,-18v-8,-4,-21,-12,-27,1v-9,19,-12,-10,-22,-8v-13,3,-15,18,-13,39v4,45,100,-25,96,33v0,5,-6,13,-11,12v-2,-1,-7,28,-13,25r-6,-28v-5,8,-8,29,-13,5v-6,-5,-26,-5,-27,4v-2,0,-3,-10,-7,-9v-2,0,-10,33,-14,30r-7,-20v-9,4,-19,6,-24,-3v-6,1,-16,18,-18,1v-1,-18,8,-76,8,-93v0,-18,-10,-71,-9,-88v1,-21,12,-21,30,-19v18,2,79,-8,99,-7v31,1,7,53,2,66v-12,-13,-20,-36,-51,-30v-2,6,-3,21,-9,21xm44,14v10,27,20,43,-3,50v-5,0,-7,-3,-7,-10v0,-7,3,-20,10,-40xm48,-253v-3,-19,26,-22,26,-4v1,27,-8,9,-14,20v-2,1,-13,-13,-12,-16xm102,-238v-14,-4,-15,-32,7,-29v7,0,10,4,10,14v0,7,-6,12,-8,19v-4,1,-8,-15,-9,-4",w:164},"\u0410":{d:"182,-23v0,12,-6,30,-15,17r-8,23v-11,-10,1,-61,-17,-68v-4,1,-3,-19,-6,-18v-7,-1,-22,8,-28,7v-2,0,-6,23,-11,20r-6,-18v-4,-1,-8,8,-11,7v-3,1,-12,-15,-15,-13v-21,8,13,73,-27,65v-5,-1,-4,24,-9,22v-2,0,-6,-41,-10,-22v-3,7,-11,7,-11,-2v12,-31,12,-87,33,-110r34,-98v24,-31,50,17,64,31v7,12,15,52,24,65v30,52,40,68,28,103v-3,0,-7,-7,-9,-11xm64,-97v6,7,67,14,70,3v-5,-6,-30,-13,-19,-31v0,-1,-2,-8,-8,-20v-3,-8,-7,-12,-10,-12v-21,0,-18,46,-30,53v-2,3,-3,6,-3,7xm191,-8v4,11,11,31,2,38v-22,0,-1,-27,-2,-38xm45,31r9,32v0,5,-3,7,-10,7v-11,-9,-4,-19,1,-39",w:201},"\u0411":{d:"150,-162v9,12,14,22,2,27v-14,-2,-4,-12,-2,-27xm165,-29v7,10,11,26,2,31v-17,-2,-10,-18,-2,-31xm27,-211v42,12,87,-4,125,-4v14,0,13,20,6,32v-7,21,-8,8,-22,6v0,2,-9,28,-15,24v-7,-2,-5,-28,-17,-24v-8,10,-31,-9,-29,13v-9,9,-5,29,-7,45v13,5,25,0,41,0v49,-1,76,45,53,82v-2,0,-4,-4,-6,-11v-1,26,-16,21,-24,41v-12,29,-18,-10,-44,4v-6,-3,-9,-9,-17,-3v0,20,-8,33,-11,13v1,-15,-14,2,-15,-8v-4,6,-11,22,-9,28v-5,-6,-9,-16,-6,-28v-5,0,-6,-6,-6,-17v2,-46,8,-93,0,-136v-9,-13,-21,-50,3,-57xm59,24v9,17,13,29,4,38v-20,-2,-11,-25,-4,-38xm111,-99v-24,-3,-26,20,-38,6v-4,1,-10,58,8,53v20,-6,49,-1,51,-26v0,-6,-14,-34,-21,-33",w:180},"\u0412":{d:"20,-211v22,8,65,-5,88,-5v35,0,53,20,53,59v1,13,-12,27,-30,42v6,9,38,34,33,44v0,12,-8,55,-15,22v1,27,-17,21,-24,41v-11,29,-17,-5,-35,4v-10,2,-12,-1,-18,-5v-7,1,-26,16,-32,7v-4,0,-12,35,-18,13v5,-78,-2,-144,-9,-211v0,-7,2,-11,7,-11xm73,-156v-3,0,-12,-31,-12,-7r0,43v29,9,65,-1,61,-38v0,-6,-7,-23,-13,-22v-2,0,-7,8,-10,8v-4,1,-11,-14,-15,-13v-2,0,-6,32,-11,29xm77,-90v-2,8,-10,-3,-12,-3v-3,1,-8,58,8,53v20,-5,50,-2,52,-26v1,-6,-15,-33,-22,-33v-14,0,-22,3,-26,9xm159,2v-17,-3,-10,-18,-2,-31v8,10,12,26,2,31xm52,24v7,17,12,29,3,38v-18,-2,-11,-26,-3,-38",w:173},"\u0413":{d:"104,-177v-8,11,-31,-9,-29,12v-16,24,-1,71,-10,105v9,14,9,71,-1,77r-7,-21v-3,-1,-9,7,-10,7v-2,-8,-5,-49,-13,-17v-2,8,-4,13,-4,13v-5,0,-7,-6,-6,-17v6,-54,8,-97,-3,-147v-13,-3,-11,-48,5,-45v42,7,89,1,126,-5v14,1,12,19,6,32v-8,19,-7,9,-22,6v0,2,-8,26,-15,23v-7,-3,-5,-27,-17,-23xm149,-162v9,22,15,40,1,50v-14,-8,-4,-22,-1,-50xm31,8v6,19,9,32,9,39v3,15,-19,21,-21,7v0,-8,14,-37,12,-46",w:167},"\u0414":{d:"88,-215v21,-27,55,11,58,35v7,55,41,78,41,134v0,11,5,13,13,15v3,25,9,53,-1,65v-5,-14,-10,-14,-10,-36v-4,-4,-5,0,-6,5r2,26v-3,-3,-7,-22,-17,-27v-1,4,-1,17,-5,15v-2,0,-3,-6,-5,-18v-36,-7,-73,-4,-109,1v0,6,-4,15,-5,4v0,-3,-1,-5,-1,-5v-6,4,-7,58,-14,21r-3,-26v-3,6,-7,52,-20,33v-4,-29,5,-50,17,-64v10,-59,25,-135,53,-172v-1,-2,13,-4,12,-6xm192,45v-1,2,-14,7,-12,-3v0,-1,1,-4,4,-9v5,9,8,12,8,12xm195,39v3,10,11,30,2,37v-14,-1,-11,-9,-6,-21v2,-8,4,-13,4,-16xm168,19v2,8,21,40,-1,39v-10,-9,-4,-19,1,-39xm38,51v4,16,10,19,-7,21v-10,-8,-4,-18,2,-35xm12,37v0,9,21,40,-1,39v-7,0,-5,-9,-5,-15v0,-3,2,-11,6,-24xm129,-101v-23,-8,0,-39,-27,-56v-16,-3,-16,35,-21,41v-14,25,-18,40,-18,84v39,-7,60,-9,93,-1v-6,-17,-13,-29,-20,-44v-3,0,-5,3,-5,-3v0,-8,5,-18,-2,-21xm54,26v-9,5,-19,-1,-8,-12v5,9,8,12,8,12",w:209},"\u0415":{d:"72,-177v-6,-1,-7,17,-12,16v0,21,0,34,1,40v25,1,43,-2,70,-2v13,0,4,13,4,20v0,23,-2,34,-6,34v-2,0,-5,-6,-9,-18v-8,-4,-21,-12,-27,1v-9,19,-12,-10,-22,-8v-13,3,-15,18,-13,39v4,46,99,-25,96,33v0,5,-6,13,-11,12v-3,2,-14,48,-17,11v0,-9,-1,-14,-2,-14v-5,8,-9,29,-13,5v-6,-5,-26,-6,-28,4v-1,0,-3,-11,-6,-9v-2,0,-10,33,-14,30r-7,-20v-8,4,-19,6,-25,-3v-5,1,-16,18,-17,1v-1,-18,8,-76,8,-93v0,-17,-11,-70,-9,-88v1,-21,12,-21,30,-19v18,2,79,-7,98,-7v32,1,8,53,3,66v-12,-13,-21,-36,-51,-30v-2,0,-3,24,-9,21v-6,2,-6,-24,-12,-22xm42,14v11,27,20,43,-2,50v-5,0,-7,-3,-7,-10v0,-7,3,-20,9,-40",w:162},"\u0416":{d:"253,-143v6,9,12,29,4,36v-19,0,-7,-21,-4,-36xm152,19v-4,0,-1,-22,-5,-26v-5,1,-4,12,-8,12v-3,0,-3,-11,-9,-8v-2,20,-8,27,-9,0v-11,-4,0,-21,0,-31v0,-19,6,-48,1,-60v-7,10,-15,7,-21,28v-9,30,-9,12,-16,-2v-5,21,-13,33,-19,54v-2,9,-4,13,-7,13r-9,-18r-11,23v-5,1,-13,-13,-17,-12v-6,0,-9,-2,-9,-7v0,-4,12,-20,34,-48v22,-28,34,-43,34,-45v0,-9,-37,-53,-48,-66v-4,-2,-4,17,-8,15v-1,-7,-27,-48,-10,-52v36,-6,49,-21,65,31v9,29,22,37,37,59v22,-9,-13,-81,10,-94v12,5,54,-18,54,9v0,17,-14,79,-14,88v11,5,20,-25,24,-26v14,-7,38,-77,49,-73v10,1,46,3,47,13v-5,8,-17,33,-20,46v-6,2,-2,-16,-7,-15v-16,21,-43,42,-53,67v-2,2,65,89,60,92v0,4,-3,7,-9,7v-4,0,-13,14,-18,12r-9,-23r-11,19v-9,-15,-18,-48,-20,-67r-10,21v-2,1,-12,-43,-17,-36v-4,1,-7,-12,-10,-8v-3,32,-2,61,2,90v0,5,-3,7,-8,7v-1,7,-3,11,-5,11xm220,29v8,11,12,27,2,32v-18,1,-3,-24,-2,-32xm30,-129v5,13,-13,25,-13,5v0,-10,2,-18,7,-26v4,9,6,16,6,21",w:292},"\u0417":{d:"15,-204v15,-7,49,-29,76,-17v44,5,55,65,35,105r-7,-18v-6,13,-6,21,-24,25v-1,1,26,13,25,12v20,14,11,75,-7,87v-2,1,-4,-8,-7,-7r-15,20v-2,0,-2,-10,-5,-9v-2,0,-5,13,-8,11v-3,1,-6,-9,-9,-8r-10,22r-8,-34v-4,-2,-13,18,-15,17v-2,1,-12,-16,-15,-14v-17,0,-13,-29,-2,-31v19,-10,27,11,46,10v26,0,36,-9,35,-36v1,-7,-20,-17,-26,-17r-7,16v-4,-9,-8,-38,-14,-17v-5,-9,-11,-1,-15,4v-8,-6,-16,-34,2,-34v26,-5,57,-12,57,-45v0,-12,-19,-22,-32,-22v-10,-5,-13,26,-19,30v-2,0,-3,-16,-5,-14r-10,17v-25,0,-30,-39,-16,-53xm114,0v5,17,7,30,7,39v0,8,-3,11,-9,11v-14,-8,-4,-29,2,-50",w:142},"\u0418":{d:"26,-12v4,-68,-13,-132,-13,-193v0,-22,13,-3,27,-6v10,-2,23,-14,26,3v6,41,1,57,-4,119v6,4,78,-79,73,-85v5,-13,20,-48,37,-35v15,11,24,-6,39,-6v16,22,-11,42,-6,80v-9,38,-3,81,0,123v0,14,-2,21,-7,21v-3,-12,-10,-22,-13,-35v-4,0,-6,4,-7,12v0,16,-5,11,-13,17v-21,-6,-4,-56,1,-68v-2,-26,-5,-54,-2,-81v-4,6,-23,26,-24,43v-2,1,-4,-10,-5,-10v-1,6,-4,30,-12,15v-3,0,-8,8,-21,23v-17,21,-12,28,-21,41v-2,0,-8,-7,-9,-11v-15,4,4,39,-6,48v-11,3,-20,19,-22,-8v-1,-11,-1,-16,-1,-16v-5,-1,-13,28,-17,9xm165,24v4,7,13,23,-1,26v-9,-3,-8,-18,1,-26xm82,-22v4,8,14,22,1,25v-13,-2,-6,-14,-1,-25xm41,33v0,5,-3,7,-8,7v-18,-4,-9,-20,-2,-37v7,10,10,20,10,30",w:226},"\u0419":{d:"26,-12v4,-68,-13,-132,-13,-193v0,-22,13,-3,27,-6v10,-2,23,-14,26,3v6,41,1,57,-4,119v6,4,78,-79,73,-85v5,-13,20,-48,37,-35v15,11,24,-6,39,-6v16,22,-11,42,-6,80v-9,38,-3,81,0,123v0,14,-2,21,-7,21v-3,-12,-10,-22,-13,-35v-4,0,-6,4,-7,12v0,16,-5,11,-13,17v-21,-6,-4,-56,1,-68v-2,-26,-5,-54,-2,-81v-4,6,-23,26,-24,43v-2,1,-4,-10,-5,-10v-1,6,-4,30,-12,15v-3,0,-8,8,-21,23v-17,21,-12,28,-21,41v-2,0,-8,-7,-9,-11v-15,4,4,39,-6,48v-11,3,-20,19,-22,-8v-1,-11,-1,-16,-1,-16v-5,-1,-13,28,-17,9xm122,-273v11,15,20,32,12,47v-8,2,-22,1,-23,-7v-3,8,-18,6,-18,-5v0,-6,3,-15,8,-27v5,7,8,14,9,22v1,-8,5,-17,12,-30xm165,24v4,7,13,23,-1,26v-9,-3,-8,-18,1,-26xm199,18v3,8,12,24,0,26v-11,-3,-5,-14,0,-26xm41,33v0,5,-3,7,-8,7v-18,-4,-9,-20,-2,-37v7,10,10,20,10,30",w:226},"\u041a":{d:"19,-215v39,0,60,12,54,56r-2,42v13,6,18,-23,24,-26v13,-6,32,-76,43,-72v10,4,45,3,48,15r-17,46v-4,1,-5,-17,-8,-16v-7,9,-49,58,-48,66v0,2,11,17,34,45v22,28,33,44,33,49v0,5,-3,7,-8,7v-5,-1,-12,13,-17,12r-11,-24r-10,18v-9,-17,-21,-47,-25,-67v-3,-1,-5,23,-9,21v-4,-10,-13,-37,-19,-37v-3,1,-7,-9,-9,-9v-9,16,6,92,-4,108v-4,-7,-6,-40,-11,-22v-1,16,-7,3,-10,0v-4,6,-15,25,-18,8v13,-67,-16,-140,-16,-206v0,-9,2,-14,6,-14xm168,-143v6,9,10,28,4,36v-19,0,-9,-22,-4,-36xm134,29v10,10,13,26,3,32v-13,2,-9,-11,-6,-19v2,-6,3,-11,3,-13",w:191},"\u041b":{d:"163,-115v-24,-39,-14,-96,-61,-110v-16,1,-19,6,-22,21v-30,31,-21,58,-49,107v-15,28,-9,65,-23,94v0,5,2,7,6,7v3,1,6,-9,7,-10v4,9,8,42,13,16v0,-15,5,-10,16,-10v12,-3,8,-37,7,-51v6,-10,3,-43,13,-56v9,-12,8,-50,27,-50v10,5,21,27,16,46v4,9,19,13,14,35v11,-7,9,19,15,25v17,5,5,49,17,68v2,0,4,-26,8,-23v2,0,4,6,8,5v7,1,4,-33,10,-16v3,3,4,5,6,5v12,-33,3,-53,-28,-103xm191,-8v4,11,11,31,2,38v-22,0,-1,-27,-2,-38xm31,29v0,0,20,37,-1,40v-6,0,-5,-9,-5,-15v0,-3,2,-11,6,-25",w:201},"\u041c":{d:"109,-44v-13,-37,-24,-72,-47,-105v3,27,0,54,-2,81v3,18,20,53,3,68r-10,-13v-7,4,-13,16,-18,21v-16,-40,-17,-152,-22,-202v-2,-23,10,-17,23,-14r28,-5v38,13,38,86,61,110v14,-19,25,-74,45,-96v2,-5,2,-14,7,-16v16,9,65,-9,55,25v1,19,-6,33,-12,43v-6,41,4,82,-3,119v-2,10,-5,15,-9,15v-1,0,-3,-21,-5,-19v-3,0,-5,11,-5,34v0,0,-3,-10,-5,-9r-5,15v-17,-38,-7,-104,-11,-152v-12,14,-19,68,-30,85v-2,1,-4,-7,-6,-6r-8,32v-11,6,-15,-40,-20,-17v-1,4,-2,6,-4,6xm108,-37v8,25,15,32,1,42v-16,-7,-8,-19,-1,-42xm211,-3v6,21,13,29,4,39v-27,-3,-10,-13,-4,-39xm36,23v9,14,5,40,-8,27v-5,-11,6,-18,8,-27",w:242},"\u041d":{d:"167,9v0,0,-9,-37,-12,-21v1,8,3,26,-5,26v-14,-8,7,-71,-7,-83v-4,-1,-5,8,-8,8v-4,-8,-16,-12,-29,-12r-3,6v-3,1,-6,-9,-8,-9v-4,-2,-10,16,-12,15v-4,3,-9,-16,-12,-15v-3,29,2,61,5,85v0,4,-2,5,-5,5v-7,-4,-13,-20,-22,-23v-6,-2,-14,30,-18,9v4,-59,-8,-141,-18,-203v-3,-21,20,-8,33,-8v4,1,15,-8,18,-7v11,2,8,29,11,38v0,16,-2,38,-5,65v20,0,44,5,65,5v15,0,3,-28,5,-41v8,-17,-34,-66,1,-61v14,2,32,10,48,2v9,7,-1,28,-1,40r5,70v0,6,-2,10,-5,10r-6,-17v-18,28,23,99,3,128v-2,1,-5,-24,-10,-22v-3,-1,-6,11,-8,10xm188,-78v8,9,4,30,-3,16v0,-5,1,-10,3,-16xm36,15v5,9,15,24,2,27v-13,-3,-5,-14,-2,-27xm177,53v0,7,-1,8,-8,7v-20,-3,-9,-21,-2,-39v7,10,10,21,10,32",w:201},"\u041e":{d:"94,12v-4,-3,-7,-14,-13,-4v-3,1,-6,-11,-8,-11v-2,-1,-6,26,-9,24v-4,0,-7,-34,-9,-45v-5,1,-12,8,-14,14v-9,-31,-33,-72,-33,-102v0,-50,42,-99,92,-99v64,0,103,33,103,95v0,41,-16,43,-16,75v0,10,-1,15,-4,15v-2,1,-5,-20,-8,-18v-4,15,-25,46,-41,25v-5,1,-13,29,-24,15v-3,-2,-14,16,-16,16xm114,-173v-4,6,-14,15,-17,21v-5,-5,-11,-15,-22,-14v-16,0,-21,41,-21,66v0,30,15,63,42,63v60,0,80,-78,54,-123v-8,12,-17,-19,-20,4v1,9,-12,22,-12,3v0,-13,-1,-20,-4,-20xm180,-13v4,20,12,42,-1,49v-19,-8,3,-24,1,-49xm80,21v1,20,7,26,10,38v0,7,-3,11,-9,11v-19,-6,-8,-27,-1,-49",w:208},"\u041f":{d:"188,-78v8,9,4,30,-3,16v0,-5,1,-10,3,-16xm131,-159v1,-10,-27,-25,-32,-10v-3,1,-6,-8,-8,-9v-6,-2,-11,20,-11,19r-13,-19v2,61,-1,136,9,187v0,4,-2,5,-5,5v-7,-4,-13,-20,-22,-23v-6,-2,-14,30,-18,9v4,-59,-5,-141,-18,-203v0,-26,28,0,42,-11v45,-13,96,17,134,4v9,7,-1,28,-1,40r5,70v0,6,-2,10,-5,10r-6,-17v-18,28,23,99,3,128v-2,1,-5,-24,-10,-22v-3,-1,-6,11,-8,10v0,0,-9,-37,-12,-21v1,8,3,26,-5,26v-10,-6,-2,-53,-2,-70v-2,-2,-1,-161,-17,-103xm177,53v0,7,-1,8,-8,7v-20,-3,-9,-21,-2,-39v7,10,10,21,10,32xm36,15v5,9,15,24,2,27v-13,-3,-5,-14,-2,-27",w:201},"\u0420":{d:"19,-212v24,6,47,2,70,-1v80,-11,106,76,49,114v-2,1,-9,18,-15,16v-2,1,-6,-12,-8,-11v-4,-1,-16,26,-20,14v-1,-1,-2,-2,-4,-2v-1,-1,-7,18,-9,16r-14,-20v-6,10,-6,69,1,83v0,6,-1,9,-3,9v-5,3,-12,-20,-14,-20v-2,-1,-7,20,-10,17v-5,-4,-11,-19,-21,-8v-3,0,-4,-1,-4,-4v19,-44,0,-140,-4,-192v0,-7,2,-11,6,-11xm94,-161v-8,-5,-22,-23,-31,-7v-6,11,1,33,0,48v13,16,76,10,64,-29v0,-8,-12,-26,-20,-25v-1,0,-12,14,-13,13xm129,-72v0,12,15,34,0,39v-15,-6,-4,-21,0,-39xm40,14r14,42v0,5,-5,8,-14,8v-18,-7,-6,-26,0,-50",w:173},"\u0421":{d:"101,-213v51,0,104,21,85,70v0,14,-1,22,-5,22v-7,-10,-5,-23,-11,-30r-4,18v-11,-12,-23,-30,-32,-42v-4,1,-7,43,-15,20v0,-13,-13,-9,-16,-18v-6,5,-8,11,-20,6v-2,-1,-9,11,-10,10v-17,-1,-25,33,-25,54v0,31,22,64,51,64v41,0,52,-15,64,-33v7,-6,27,-12,27,4v-3,12,-5,39,-13,44v-2,-16,-15,-26,-18,1v-1,12,-2,18,-1,18v-11,2,-8,-17,-16,-18v-3,0,-8,6,-11,19v-5,21,-14,7,-21,2r-13,24v-3,-8,-6,-21,-14,-11v-3,-3,-8,-22,-10,-8v-1,4,-4,6,-7,6r-6,-28v-4,-1,-12,13,-15,12v-13,-30,-37,-55,-37,-98v0,-52,42,-108,93,-108xm158,3v4,21,12,47,-1,55v-10,1,-12,-12,-8,-19v4,-6,7,-18,9,-36",w:195},"\u0422":{d:"170,-180v-18,2,-27,25,-46,10v-2,25,4,54,5,79v-11,4,-10,29,-11,52v-3,0,-4,-6,-4,-18v0,-5,0,-8,-1,-8v-12,13,1,47,0,67v0,10,-4,15,-11,15r-8,-34r-8,26v-17,-48,-4,-118,-10,-181v-11,1,-26,10,-32,1v0,0,-4,14,-6,12v-2,1,-6,-10,-9,-9r-6,27r-4,-3v-2,-1,-8,13,-9,12v-1,-7,-9,-88,5,-76v30,6,60,-1,87,6v12,-4,28,-9,32,2v14,1,52,-16,59,-1v-2,12,4,59,-5,58v-1,-6,-6,-22,-11,-10v-9,1,-2,-23,-7,-27xm23,-133v5,13,7,23,7,32v0,5,-2,7,-7,7v-15,-4,-6,-23,0,-39xm121,3v5,16,14,32,3,40v-16,-5,-6,-19,-3,-40xm86,32v4,13,7,25,7,36v0,5,-3,7,-8,7v-19,-5,-5,-29,1,-43",w:198},"\u0423":{d:"31,0v3,-31,15,-42,35,-73v3,-9,24,-6,22,-22v-1,7,-7,6,-14,6v13,-30,-24,-61,-36,-69r-9,17r-9,-37v-4,0,-21,-30,-7,-33v21,1,44,-7,52,14v-1,6,24,19,24,22v0,26,18,30,27,46v8,-11,11,-23,26,-28v5,-7,3,-32,14,-33v9,-4,6,-33,21,-19v9,-3,23,-7,25,3v2,11,21,20,2,30v-17,2,-16,50,-32,32v-11,5,-21,34,-32,53v-16,11,-28,24,-31,49v-2,18,-4,27,-5,27v-6,-15,-14,-8,-17,6v-2,10,-11,31,-15,17v0,0,2,-10,0,-11v-8,1,-19,9,-26,5v1,-3,-2,-13,2,-12v-6,0,-12,6,-17,10xm183,-127v7,18,10,32,10,42v0,7,-2,10,-8,10v-19,-7,-7,-24,-2,-52xm104,0v7,11,10,22,10,33v0,5,-3,7,-8,7v-20,-5,-9,-21,-2,-40",w:218},"\u0424":{d:"104,-18v-12,20,-11,-1,-23,7v-3,2,-6,-8,-8,-8v-2,-1,-6,20,-9,18r-9,-36v-7,0,-12,7,-14,11v-9,-25,-34,-59,-33,-84v2,-42,27,-69,67,-80v-3,-21,14,-15,27,-12v6,0,24,-16,25,0v0,2,0,5,1,9v73,1,92,85,59,132v0,7,1,23,-4,22v-2,0,-5,-17,-8,-15v-4,12,-22,37,-41,21v-7,10,7,36,4,51v-9,15,-19,-11,-32,-1v-6,-6,-1,-21,-2,-35xm150,-150v-7,11,-18,-15,-20,6r-3,85v34,-10,44,-64,23,-91xm81,-156v-34,1,-33,62,-17,86v7,9,16,14,26,16v1,-13,3,-49,-5,-46v0,-17,-2,-30,-4,-56xm128,30v5,8,15,24,1,26v-15,-3,-7,-13,-1,-26xm94,0v4,20,10,41,-1,49v-9,1,-9,-11,-7,-18v4,-5,7,-16,8,-31",w:208},"\u0425":{d:"136,-109v15,16,3,22,34,34v11,13,43,34,50,49v0,18,-2,27,-7,27v-2,0,-6,-27,-10,-24r-8,42v-2,0,-5,-5,-5,-15v0,-25,-11,-17,-18,-28v-2,0,-4,3,-6,7v-1,5,-2,7,-2,7r-9,-31v-4,8,-14,39,-14,9v0,-29,-33,-58,-48,-21v-17,26,-18,15,-30,51v-3,1,-4,-16,-8,-14r-17,30r-7,-22v-2,0,-5,16,-7,14v-6,0,-15,-22,-14,-28v24,-17,50,-46,71,-73v-4,-20,-24,-39,-39,-47v-5,9,-14,48,-14,10v13,-36,-34,-45,-13,-71v25,-3,55,-18,61,11v5,22,25,43,35,60v14,-13,28,-51,36,-74v7,-7,16,2,24,3v8,1,21,-12,28,-5v2,19,-8,64,-16,35v-10,1,-16,31,-21,41v-2,-1,-4,-7,-6,-7xm203,-101v-2,9,-23,12,-20,-3v0,-7,3,-21,9,-42v10,21,12,25,11,45xm64,9v5,21,8,34,8,38v0,9,-2,13,-7,13v-15,-5,-3,-37,-1,-51",w:224},"\u0426":{d:"135,-21v-9,7,-22,21,-33,26v-14,-2,-35,-26,-45,-14r-14,-25r-7,20v-10,0,-12,-15,-8,-44v-3,3,-9,14,-9,-2v0,-48,7,-105,-6,-142v0,-14,8,-8,19,-9v17,-2,42,-16,37,16v9,52,-35,160,39,160v35,0,41,-16,31,-38v5,-41,6,-83,-3,-117v5,-20,31,-16,52,-20v12,4,-1,29,0,40r4,70v0,6,-1,10,-5,10v-1,0,-2,-19,-6,-17v-12,9,1,61,7,72v10,3,29,15,19,29v-2,0,-6,-1,-11,-3v1,1,-7,33,-8,24v-8,-21,-14,14,-22,-11v-7,-11,-9,-30,-14,-33v-1,0,-9,21,-12,19v-2,0,-3,-12,-5,-11xm210,0v5,18,8,32,8,41v0,4,-2,7,-7,7v-18,-8,-6,-20,-1,-48xm188,24v5,20,13,34,1,42v-15,-5,-4,-26,-1,-42xm181,30v0,7,-9,9,-12,1v0,-7,1,-5,5,-13v4,9,7,12,7,12",w:223},"\u0427":{d:"135,-75v-8,8,-21,20,-32,26v-15,-4,-33,-26,-45,-14r-14,-26r-7,20v-10,0,-12,-14,-8,-43v-4,3,-9,14,-9,-2v1,-35,4,-62,-7,-88v0,-13,8,-9,19,-9v17,0,42,-15,38,14v6,28,-6,24,-6,52v0,37,15,55,45,55v60,0,32,-62,28,-100v5,-20,29,-16,52,-20v11,6,-1,28,-1,40r5,70v0,6,-2,10,-5,10r-6,-17v-13,23,8,75,15,98v0,0,-17,32,-16,14v-4,-15,-36,17,-34,-17v1,-21,-3,-44,1,-62v-5,9,-7,15,-10,4v0,-3,-1,-5,-3,-5xm182,17v6,18,9,32,9,41v0,4,-3,6,-7,6v-18,-6,-6,-20,-2,-47xm22,-99v2,6,10,43,-2,49v-16,-8,-2,-22,2,-49",w:204},"\u0428":{d:"135,-21v-9,7,-22,21,-33,26v-14,-2,-35,-26,-45,-14r-14,-25r-7,20v-10,0,-12,-15,-8,-44v-3,3,-9,14,-9,-2v0,-48,7,-105,-6,-142v0,-14,8,-8,19,-9v17,-2,42,-16,37,16v9,52,-35,160,39,160v35,0,41,-16,31,-38v8,-41,4,-90,-4,-129v3,-18,34,-6,50,-14v11,1,6,27,8,37v0,5,-7,63,-7,89v0,37,15,55,45,55v32,1,40,-15,31,-37v5,-41,6,-84,-3,-118v4,-20,30,-15,52,-19v11,6,-1,28,-1,39r5,70v0,7,-2,10,-5,10r-6,-17v-14,22,10,74,14,98v1,8,-17,13,-29,12r-14,-31r-12,18v-2,1,-4,-12,-6,-11v-9,8,-22,21,-32,27v-14,-3,-35,-28,-45,-14r-15,-25v-3,5,-3,18,-7,19r-6,-15v-1,0,-9,21,-12,19v-2,0,-3,-12,-5,-11xm143,16v5,20,13,34,1,42v-15,-5,-4,-26,-1,-42xm30,14v-2,9,-17,8,-16,-4v0,-5,2,-18,7,-38v6,19,9,32,9,42xm318,-87v6,12,14,22,2,26v-17,-1,-7,-15,-2,-26",w:334},"\u0429":{d:"332,36v0,4,-2,6,-7,6v-20,-9,-4,-21,1,-57v4,13,6,30,6,51xm135,-21v-9,7,-22,21,-33,26v-14,-2,-35,-26,-45,-14r-14,-25r-7,20v-10,0,-12,-15,-8,-44v-3,3,-9,14,-9,-2v0,-48,7,-105,-6,-142v0,-14,8,-8,19,-9v17,-2,42,-16,37,16v9,52,-35,160,39,160v35,0,41,-16,31,-38v8,-41,4,-90,-4,-129v3,-18,34,-6,50,-14v11,1,6,27,8,37v0,5,-7,63,-7,89v0,37,15,55,45,55v25,0,43,-21,31,-44v8,-36,4,-80,-3,-111v4,-20,30,-15,52,-19v11,6,-1,28,-1,39r5,70v0,7,-2,10,-5,10v-3,-7,-7,-29,-9,-5v-2,10,5,24,2,36v2,10,29,23,24,41v-15,-7,-6,24,-23,29v-5,-5,-10,-8,-15,-8v-5,1,-13,-40,-14,-38r-12,18r-6,-10v-6,-1,-11,17,-15,21v-3,-1,-15,13,-17,12v-14,-3,-35,-28,-45,-14r-15,-25v-3,5,-3,18,-7,19r-6,-15v-1,0,-9,21,-12,19v-2,0,-3,-12,-5,-11xm297,47v0,16,-17,19,-23,6v-2,-15,13,-34,14,-39v6,18,9,29,9,33xm105,17v6,11,14,22,2,25v-16,0,-6,-16,-2,-25xm30,14v-2,9,-17,8,-16,-4v0,-5,2,-18,7,-38v6,19,9,32,9,42xm311,29v-1,3,-14,6,-12,-3v0,-1,1,-4,5,-8v4,8,7,11,7,11",w:336},"\u042a":{d:"93,-117v64,-14,115,31,86,80v-2,0,-4,-4,-6,-11v-1,26,-16,21,-24,41v-12,29,-19,-10,-44,4v-11,-16,-29,12,-42,1v-3,2,-12,35,-17,13r-1,-186v-6,-15,-13,-3,-21,4v1,-6,-7,-19,-13,-14r1,-28r38,-3v12,13,43,14,47,32v0,7,-14,-1,-11,12r-1,53v3,1,5,2,8,2xm181,-29v9,10,11,26,3,31v-17,-2,-10,-18,-3,-31xm24,-166v7,13,12,35,4,44v-22,-1,-9,-33,-4,-44xm127,-99v-23,-3,-26,20,-37,6v-4,1,-10,58,8,53v20,-6,50,-1,51,-26v0,-6,-13,-34,-22,-33xm20,-170v0,3,-2,4,-7,4v-8,0,-5,-12,-2,-18v6,10,9,14,9,14",w:194},"\u042b":{d:"209,-217v11,2,7,26,10,37v-4,67,-5,129,7,189v0,4,-3,6,-11,6v-5,0,-7,-17,-15,-15v-3,0,-5,-8,-5,-23v0,-23,-6,-34,-7,-14v0,10,-1,14,-3,14v-20,-4,5,-78,-12,-86v-5,0,-11,-77,-16,-94v2,-26,36,2,52,-14xm69,-117v64,-13,114,29,87,80v-3,0,-5,-4,-7,-11v1,26,-17,21,-24,41v-10,28,-18,-6,-35,3v-10,2,-12,-1,-18,-5v-7,0,-25,17,-32,7v-4,1,-12,35,-18,13v5,-77,-2,-144,-9,-210v-1,-18,13,-10,24,-9v10,-1,36,22,35,31v0,7,-15,0,-11,14r0,44v3,1,6,2,8,2xm193,33v0,4,-2,6,-7,6v-21,-1,-1,-43,0,-53v5,7,7,23,7,47xm119,45v-16,-3,-10,-17,-3,-31v10,11,13,26,3,31xm53,24v8,17,11,29,4,38v-21,-1,-13,-25,-4,-38xm74,-40v20,-6,50,-1,51,-26v1,-7,-14,-35,-21,-33v-23,-3,-26,20,-38,6v-3,1,-8,58,8,53",w:234},"\u042c":{d:"69,-117v64,-13,114,29,87,80v-3,0,-5,-4,-7,-11v1,26,-17,21,-24,41v-10,28,-18,-6,-35,3v-10,2,-12,-1,-18,-5v-7,0,-25,17,-32,7v-4,1,-12,35,-18,13v5,-77,-2,-144,-9,-210v-1,-18,13,-10,24,-9v10,-1,36,22,35,31v0,7,-15,0,-11,14r0,44v3,1,6,2,8,2xm160,2v-17,-3,-10,-18,-2,-31v8,10,12,26,2,31xm53,24v8,17,11,29,4,38v-21,-1,-13,-25,-4,-38xm74,-40v20,-6,50,-1,51,-26v1,-7,-14,-35,-21,-33v-23,-3,-26,20,-38,6v-3,1,-8,58,8,53",w:170},"\u042d":{d:"103,-67v-14,-4,-16,24,-16,-13v0,-21,-8,-62,24,-47r40,4v1,1,2,23,1,24v-7,0,-23,19,-28,6v-4,-1,-5,22,-11,9v-1,-2,-3,-3,-5,-3xm97,-213v50,0,93,56,93,108v0,47,-22,58,-37,98v-4,1,-11,-13,-15,-12r-6,28v-10,2,-6,-23,-12,-5v-4,11,-7,5,-12,2v-2,-1,-5,17,-7,16v-7,-13,-13,-30,-26,-14v-9,0,-13,-36,-20,-31v-6,2,-5,20,-15,18v-8,3,-6,-19,-13,-36v-2,-1,-3,18,-7,17v-4,-6,-22,-54,-3,-54v17,0,20,8,29,22v7,11,24,17,53,17v29,1,51,-33,51,-64v0,-21,-7,-55,-25,-54v-5,-5,-11,-14,-22,-7v-4,-9,-10,-11,-15,-1v-11,-2,-7,15,-13,17v-10,1,-6,-26,-12,-27v-9,14,-21,30,-31,42r-4,-18v-5,11,-5,18,-11,30v-8,0,-6,-32,-9,-42v0,-35,46,-50,89,-50xm152,0v4,12,14,28,0,31v-15,-3,-6,-19,0,-31xm40,3v2,23,7,30,11,43v0,8,-3,12,-10,12v-13,-8,-5,-35,-1,-55",w:195},"\u042e":{d:"183,-211v90,0,125,91,86,158v2,1,1,31,-4,27v-1,1,-4,-20,-8,-18v-7,11,-11,36,-33,32v-4,1,-4,-8,-8,-7v-1,-1,-13,21,-16,19v-9,-12,-18,8,-24,12v-4,-4,-7,-13,-13,-4v-2,1,-6,-12,-7,-11r-9,24v-6,0,-7,-34,-9,-45v-6,1,-12,8,-15,14v-4,1,-5,-16,-5,-20v-13,-22,-28,-59,-28,-82v0,-50,42,-99,93,-99xm196,-173v-2,8,-14,14,-17,21v-5,-5,-10,-14,-21,-14v-17,0,-22,40,-22,66v0,30,16,63,43,63v58,0,79,-77,54,-123v-10,12,-17,-19,-21,4v1,10,-12,21,-12,3v0,-13,-1,-20,-4,-20xm263,-13v3,20,10,42,-1,49v-9,1,-11,-11,-7,-17v4,-5,6,-16,8,-32xm80,-122v6,10,17,28,2,32v-16,-4,-8,-16,-2,-32xm64,-217v11,1,8,28,10,37v-3,67,-4,130,8,189v0,4,-4,6,-11,6v-4,1,-9,-17,-15,-15v-4,0,-6,-8,-6,-23v0,-16,-1,-24,-2,-24v-6,-2,-3,27,-7,24v-21,-4,6,-78,-13,-86v-6,0,-10,-76,-15,-94v-1,-21,20,-8,32,-8v4,1,16,-6,19,-6xm41,-14v0,21,7,25,9,39v0,7,-3,10,-9,10v-18,-7,-6,-27,0,-49",w:290},"\u042f":{d:"161,-203v-19,45,-16,141,-7,205v1,6,-8,12,-7,1v-1,-4,-2,-6,-3,-6v-3,-2,-6,8,-8,8v-2,1,-6,-23,-11,-20r-7,24v-11,-5,-2,-85,-9,-98v-2,0,-4,16,-8,14r-7,-9v-2,-1,-13,29,-16,26v-11,-1,-21,57,-30,64v-7,-11,-17,-19,-22,-29r-7,17v-28,-20,40,-82,41,-92v-31,-4,-52,-24,-52,-56v-1,-51,54,-69,109,-58v14,0,45,-5,44,9xm118,17v3,13,9,22,9,38v-7,7,-21,7,-19,-14v0,-6,3,-14,10,-24xm28,28v0,6,-3,8,-9,8v-14,-5,-5,-20,-1,-36v7,13,10,22,10,28xm50,-151v-6,42,32,36,63,34v-1,-46,0,-60,-12,-40r-6,-22v-7,-2,-8,12,-13,12v-4,2,-7,-10,-9,-10v-7,-1,-24,20,-23,26",w:169},"\u0430":{d:"6,-2v10,-25,10,-69,27,-88r27,-79v21,-23,39,11,51,25v8,9,12,41,19,52v25,41,33,54,23,83v-2,1,-7,-8,-7,-9v-2,10,-5,23,-13,13r-6,19v-10,-8,2,-50,-14,-55v-2,1,-1,-15,-5,-14v-4,-1,-18,5,-22,5v0,0,-6,18,-8,16v-2,1,-4,-15,-6,-14v-7,10,-13,1,-20,-5v-16,8,9,59,-21,52v-4,0,-7,33,-10,7v-3,-25,-9,8,-15,-8xm51,-78v4,7,54,13,56,2v-7,-3,-24,-10,-15,-24v-2,-3,-8,-27,-15,-26v-16,3,-15,39,-26,48xm153,-6v2,8,10,24,1,29v-11,-1,-7,-7,-5,-17v2,-6,3,-10,4,-12xm36,24v5,17,7,26,7,27v0,3,-3,5,-8,5v-8,-7,-3,-15,1,-32",w:161},"\u0431":{d:"120,-129v12,9,5,28,-4,17v0,-3,1,-9,4,-17xm131,-23v8,8,9,20,3,25v-12,-2,-8,-14,-3,-25xm84,-142v-6,9,-26,-6,-24,11v-8,6,-4,24,-6,36v8,2,16,0,25,1v-1,0,-2,0,-2,-1v46,-5,72,32,53,65v-2,0,-4,-3,-5,-9v-1,21,-13,16,-20,33v-10,25,-15,-8,-35,3v-1,1,-7,-4,-7,-4v-10,-1,-7,25,-12,21v-1,-10,-7,-18,-14,-11v0,0,0,-2,-1,-4v-3,5,-8,18,-7,23v-5,-5,-7,-12,-5,-23v-4,0,-5,-4,-5,-13v0,-38,6,-75,0,-109v-6,-12,-17,-41,3,-46v33,9,69,2,99,-3v11,1,9,15,6,26v-6,21,-18,-5,-22,14v-2,6,-5,9,-9,9v-3,-3,-4,-22,-12,-19xm48,19v6,12,9,24,3,31v-16,-2,-10,-20,-3,-31xm89,-79v-18,-4,-22,15,-31,4v-1,0,-2,9,-2,26v-1,25,15,13,30,13v30,0,19,-39,3,-43",w:144},"\u0432":{d:"129,-126v0,10,-10,22,-25,34v5,6,31,27,27,35v0,8,-5,43,-12,18v1,22,-13,16,-19,33v-9,23,-15,-6,-35,3v-9,-12,-23,11,-33,1v-3,0,-10,27,-14,11r0,-91r-8,-78v-1,-14,12,-7,20,-6v44,-6,99,-17,99,40xm58,-125v-1,-1,-11,-24,-9,-6v1,12,-6,34,6,37v37,9,55,-30,32,-50v-6,11,-14,1,-20,-4v-2,6,-3,23,-9,23xm82,-79v-18,-3,-21,15,-30,4v-2,0,-3,9,-3,26v-1,24,16,15,31,13v9,0,19,-6,19,-16v0,-6,-10,-28,-17,-27xm125,-23v8,8,10,21,2,25v-10,-2,-8,-15,-2,-25xm41,19v7,12,10,24,4,31v-16,-1,-10,-19,-4,-31",w:138},"\u0433":{d:"84,-142v-7,9,-25,-7,-24,10v-13,19,0,56,-8,84v6,8,8,58,-1,61r-5,-16v-7,1,-10,12,-10,-6v0,-17,-6,-15,-9,-2r-3,10v-14,-36,13,-99,-12,-134v-3,-11,-4,-34,9,-32v34,4,71,0,100,-5v11,1,11,14,6,25v-4,22,-17,-4,-22,15v-2,6,-5,9,-9,9v-3,-3,-4,-22,-12,-19xm119,-129v7,17,14,33,1,40v-12,-7,-3,-18,-1,-40xm24,6v6,16,8,26,8,31v3,14,-16,18,-17,6v0,-6,12,-29,9,-37",w:134},"\u0434":{d:"21,-5v-3,4,-6,45,-16,26v-3,-22,4,-40,13,-51v13,-60,18,-137,68,-150v34,7,32,65,48,88v6,8,16,41,16,55v0,10,3,10,10,13v2,18,6,41,0,51v-3,-12,-9,-10,-8,-29v-4,-3,-4,0,-5,4r1,21v-2,0,-7,-24,-14,-19v0,7,-1,10,-3,10v-2,0,-3,-5,-4,-15v-28,-5,-59,-4,-87,1v-2,4,-3,13,-5,3r0,-4v-3,0,-5,7,-5,19v0,6,-2,9,-4,9v-3,-2,-3,-24,-5,-32xm148,27v4,11,10,9,-1,11v-5,-2,-3,-6,1,-11xm156,32v2,7,10,25,1,29v-16,0,0,-22,-1,-29xm135,15v0,0,16,30,-1,31v-9,-6,-3,-15,1,-31xm21,54v0,-11,1,-10,5,-24v8,12,12,37,-5,24xm17,55v0,4,-3,6,-8,6v-9,-7,-4,-15,1,-31v5,16,7,25,7,25xm81,-126v-20,23,-31,62,-31,100v32,-5,48,-8,75,0r-16,-36v0,0,-5,3,-4,-2v6,-22,-18,-15,-9,-36v-1,-3,-8,-27,-15,-26xm37,12v1,4,13,11,-1,11v-4,-2,-4,-6,1,-11",w:167},"\u0435":{d:"58,-141v-11,1,-11,37,-9,44v19,2,38,2,56,-2v11,1,3,10,3,17v0,18,-2,27,-5,27v-3,-1,-7,-23,-24,-19v-4,2,-10,20,-14,5v-3,-4,-6,-6,-8,-6v-12,2,-21,47,6,44r50,-6v8,2,17,28,1,29v-3,3,-11,40,-13,9v0,-7,-1,-11,-2,-11r-6,13v-1,-7,-18,-22,-26,-6v-1,1,-3,-8,-5,-7v-2,-1,-9,27,-12,24r-5,-16v-6,3,-17,4,-20,-3v-4,1,-12,14,-14,1v7,-43,8,-102,-1,-144v1,-18,10,-18,24,-16r79,-6v25,1,6,43,2,53v-8,-11,-18,-28,-40,-24v-2,-1,-4,19,-8,17v-4,2,-6,-18,-9,-17xm34,11v8,22,16,34,-2,40v-14,-6,-2,-20,2,-40",w:130},"\u0436":{d:"203,-114v5,6,7,22,3,28v-14,1,-8,-17,-3,-28xm170,-142v15,-42,26,-31,58,-25v4,9,-13,29,-15,41v-4,2,-2,-14,-5,-13v-6,11,-36,36,-42,54v-1,2,8,14,24,35v28,36,30,39,2,54v-1,0,-5,-20,-7,-18v-2,-1,-8,15,-9,15v-7,-14,-12,-37,-16,-54r-8,17v-1,-1,-9,-31,-13,-29v-4,1,-5,-7,-8,-7v-4,26,-2,49,1,73v0,4,-2,5,-6,5v-1,6,-3,9,-4,9v-3,0,0,-29,-8,-17v0,15,-7,-6,-10,2v-2,8,-3,12,-4,12v-1,0,-3,-5,-3,-14v-10,-13,9,-51,1,-73v-8,3,-21,24,-23,37r-7,-16v-7,13,-12,41,-20,53r-8,-14r-9,18v-6,-4,-17,-8,-21,-15r54,-75v-1,-8,-29,-41,-38,-52v-4,7,-6,22,-12,-1v-1,-7,-6,-19,-8,-23v2,-9,30,-10,39,-12v18,8,26,73,54,78v4,-26,-13,-61,3,-75v15,3,42,-13,43,7v1,14,-12,62,-11,71v9,4,16,-22,19,-22v6,-4,12,-13,17,-26xm176,23v7,8,9,22,2,26v-11,2,-6,-10,-5,-16v2,-5,2,-8,3,-10xm24,-103v0,7,2,14,-8,12v-6,-5,-2,-23,3,-29v3,7,5,13,5,17",w:233},"\u0437":{d:"78,-129v1,-11,-17,-18,-26,-18v-8,-4,-10,21,-15,24r-4,-12v-1,0,-7,16,-9,14v-19,0,-24,-31,-12,-42v12,-6,39,-23,61,-14v34,4,44,52,28,84r-6,-14v-3,9,-7,17,-19,20v17,7,32,13,29,46v0,7,-12,48,-20,27v-5,4,-10,22,-14,13v0,-2,-1,-4,-2,-4v-2,-1,-4,10,-6,9v-4,1,-5,-7,-8,-6r-7,17r-7,-28v-3,-1,-10,14,-12,14v-2,1,-9,-12,-12,-10v-18,-7,-5,-30,10,-28v13,13,59,18,53,-19v0,-4,-17,-14,-21,-13r-6,13v-4,-8,-6,-30,-11,-14v-1,-4,-10,-2,-11,3v-29,-43,53,-18,47,-62xm91,0v4,18,13,34,-1,40v-13,-7,-4,-23,1,-40",w:113},"\u0438":{d:"16,-174v8,17,34,-11,37,7v5,34,1,45,-4,96v5,4,63,-63,59,-68v4,-10,16,-39,30,-29v11,15,35,-22,36,9v-15,39,-10,99,-10,150v0,10,-2,16,-5,16r-11,-28v-3,0,-6,6,-7,19v-10,5,-18,7,-17,-13v9,-31,5,-67,7,-102v-4,6,-18,21,-19,34r-4,-7v-1,4,-4,24,-9,11v-3,0,-7,7,-17,19v-14,17,-12,22,-17,33v-4,-2,-12,-18,-12,1v9,19,-18,53,-18,22v0,-9,-1,-13,0,-13v-4,-2,-11,23,-14,8v4,-56,-6,-104,-11,-155v0,-7,2,-10,6,-10xm132,19v12,9,-2,35,-5,11v0,-2,2,-6,5,-11xm66,-18v9,8,3,31,-5,15v0,-3,1,-8,5,-15xm25,3v5,8,16,26,1,29v-14,-3,-6,-16,-1,-29",w:180},"\u0439":{d:"16,-174v8,17,34,-11,37,7v5,34,1,45,-4,96v5,4,63,-63,59,-68v4,-10,16,-39,30,-29v11,15,35,-22,36,9v-15,39,-10,99,-10,150v0,10,-2,16,-5,16r-11,-28v-3,0,-6,6,-7,19v-10,5,-18,7,-17,-13v9,-31,5,-67,7,-102v-4,6,-18,21,-19,34r-4,-7v-1,4,-4,24,-9,11v-3,0,-7,7,-17,19v-14,17,-12,22,-17,33v-4,-2,-12,-18,-12,1v9,19,-18,53,-18,22v0,-9,-1,-13,0,-13v-4,-2,-11,23,-14,8v4,-56,-6,-104,-11,-155v0,-7,2,-10,6,-10xm109,-188v0,5,-3,8,-9,8v-6,0,-10,-2,-11,-6v-2,7,-16,4,-15,-4v0,-5,2,-12,7,-22v4,6,6,11,7,17v1,-6,4,-13,10,-23v8,10,11,20,11,30xm132,19v12,9,-2,35,-5,11v0,-2,2,-6,5,-11xm159,15v2,5,10,18,1,20v-11,-2,-5,-12,-1,-20xm25,3v5,8,16,26,1,29v-14,-3,-6,-16,-1,-29",w:180},"\u043a":{d:"43,4v-6,-17,-15,18,-20,0v9,-53,-7,-115,-13,-165v-2,-15,8,-10,20,-10v37,-2,28,44,27,77v11,4,14,-20,19,-20v10,-6,25,-61,34,-58v12,5,32,2,39,12r-14,37v-6,-9,-4,-21,-16,-1v-7,11,-31,37,-29,41v-5,6,76,76,47,80v-2,0,-9,11,-13,10r-9,-19r-7,15v-10,-12,-15,-37,-21,-54v-5,7,-5,30,-13,2v-6,-18,-10,-13,-17,-22v-6,14,6,72,-2,86v-2,0,-6,-18,-7,-23v-1,-1,-3,14,-5,12xm134,-114v5,7,9,23,3,28v-13,1,-6,-18,-3,-28xm108,23v7,8,9,22,2,26v-12,1,-7,-9,-5,-16v2,-7,2,-7,3,-10",w:153},"\u043b":{d:"117,-124v-5,-23,-9,-48,-35,-56v-13,0,-15,6,-18,17v-25,24,-18,48,-40,86v-12,21,-8,53,-18,75v4,13,9,0,11,-3r6,21v7,-2,0,-24,17,-16v15,-21,0,-61,16,-86v6,-9,7,-39,21,-40v9,3,18,23,13,37v3,7,16,10,12,28v7,-3,7,5,9,12v7,20,14,14,12,50v0,9,1,13,4,13r6,-19v2,0,5,5,7,4r6,-17v0,1,5,10,7,9v20,-31,-28,-77,-36,-115xm153,-6v2,8,10,24,1,29v-11,-1,-7,-7,-5,-17v2,-6,3,-10,4,-12xm25,23v5,17,7,26,7,26v0,4,-3,6,-8,6v-8,-8,-4,-16,1,-32",w:161},"\u043c":{d:"87,-35v-10,-29,-19,-58,-37,-84v1,38,-5,73,7,101v0,4,-3,19,-7,18v-7,-16,-16,-3,-22,6v-14,-32,-14,-123,-18,-162v-3,-23,28,-6,41,-15v31,9,30,70,49,89v15,-29,24,-64,42,-90v18,6,57,-7,43,29v1,13,-7,17,-9,26v-7,36,8,86,-9,107v-1,0,-3,-17,-5,-16v-2,0,-3,9,-3,27r-4,-6r-5,11v-13,-26,-5,-87,-9,-122v-8,12,-14,53,-24,69r-4,-5v-2,0,-4,20,-6,25v-11,5,-13,-33,-17,-13v-1,3,-2,5,-3,5xm86,-30v7,20,14,27,1,34v-12,-5,-7,-16,-1,-34xm168,-2v6,16,12,23,4,31v-20,-3,-9,-9,-4,-31xm29,18v12,15,-5,37,-7,15",w:194},"\u043d":{d:"25,0v4,-47,-5,-113,-15,-163v2,-20,31,4,41,-11v15,16,6,47,5,82v17,0,34,2,52,4v15,-13,-3,-60,-7,-78v11,-10,35,8,50,-1v9,5,-1,22,-1,31v-1,21,9,49,0,64r-4,-14v-15,23,18,80,2,103v-2,-12,-9,-25,-14,-10v-4,2,-6,-30,-10,-17v1,7,3,22,-4,22v-11,-8,5,-59,-6,-67v-4,7,-9,5,-12,-1v-8,-1,-17,-6,-20,2v-6,-12,-12,-2,-16,5r-9,-12v-3,23,1,50,4,69v0,2,-1,4,-4,4v-6,-4,-11,-17,-18,-20v-4,-1,-10,23,-14,8xm151,-63v5,8,4,24,-3,13v0,-4,1,-8,3,-13xm29,13v4,6,11,19,1,21v-11,-2,-5,-13,-1,-21xm134,16v5,11,16,29,1,32v-17,-4,-7,-17,-1,-32",w:161},"\u043e":{d:"6,-90v0,-40,34,-78,74,-78v75,0,99,75,70,126v0,7,1,22,-4,21v0,0,-4,-16,-6,-14v-4,11,-17,36,-33,20v-4,0,-10,24,-19,12v-3,-2,-11,14,-13,13v-4,-10,-13,0,-16,-12r-8,18v-3,0,-6,-26,-7,-35v-10,4,-15,23,-16,-5v-9,-19,-22,-46,-22,-66xm60,-133v-26,14,-24,106,17,103v47,8,63,-60,44,-98v-8,9,-14,-14,-17,3v1,13,-10,15,-10,3v0,-14,-2,-22,-5,-13v-4,5,-9,8,-12,13v-4,-3,-8,-12,-17,-11xm144,-10v3,16,9,33,-1,39v-16,-6,2,-20,1,-39xm64,17v1,16,5,21,8,31v0,5,-2,8,-7,8v-15,-5,-6,-22,-1,-39"},"\u043f":{d:"151,-63v5,8,4,24,-3,13v0,-4,1,-8,3,-13xm25,0v4,-47,-5,-113,-15,-163v1,-20,24,2,34,-8v36,-10,74,12,107,4v9,5,-1,22,-1,31v-1,21,9,49,0,64r-4,-14v-15,23,18,80,2,103v-2,-12,-9,-25,-14,-10v-4,2,-6,-30,-10,-17v1,7,3,22,-4,22v-8,-31,2,-119,-9,-149v-5,2,-6,19,-9,3v-2,-5,-23,-10,-23,-1v-4,-5,-8,-11,-12,-1r-3,9r-10,-16r2,107r5,44v0,2,-1,4,-4,4v-6,-4,-11,-17,-18,-20v-4,-1,-10,23,-14,8xm134,16v5,11,16,29,1,32v-17,-4,-7,-17,-1,-32xm29,13v4,6,11,19,1,21v-11,-2,-5,-13,-1,-21",w:161},"\u0440":{d:"16,-170v52,4,119,-13,119,49v0,20,-21,41,-36,55v-7,-21,-17,12,-26,1r-7,12r-12,-16v-8,12,1,61,-1,74v-5,2,-10,-17,-11,-17r-8,15v-4,-4,-10,-15,-17,-7v-3,0,-4,-1,-3,-3v14,-35,0,-111,-4,-153v0,-7,2,-10,6,-10xm82,-91v28,1,25,-45,3,-48v-9,21,-24,-10,-35,4v0,12,-6,42,7,45xm103,-58v0,10,13,29,0,32v-12,-4,-4,-18,0,-32xm32,12v0,13,24,37,0,39v-14,-5,-5,-21,0,-39",w:138},"\u0441":{d:"81,-171v40,0,83,17,68,57v2,23,-8,16,-9,6v0,-1,-2,-14,-4,-13r-4,14r-24,-33v-5,1,-7,36,-13,16v-3,-10,-16,-19,-19,-7v-8,-6,-14,1,-18,5v-34,13,-22,95,21,95v44,0,39,-25,66,-32v15,4,2,37,-3,44v-1,-12,-13,-22,-15,0v-1,10,-1,15,0,15v-10,2,-7,-13,-13,-14v-3,0,-7,5,-9,15v-4,16,-12,5,-17,2v-3,0,-14,31,-14,12v0,-10,-4,-5,-7,-2v-3,1,-6,-11,-7,-11v-1,1,-3,11,-7,9r-5,-22v-8,1,-12,20,-17,-1v-12,-23,-25,-36,-25,-68v0,-41,34,-87,75,-87xm126,2v3,17,10,36,0,44v-20,-7,3,-20,0,-44",w:156},"\u0442":{d:"69,8v-12,-40,-3,-96,-8,-146v-9,1,-21,11,-26,1v-1,2,-3,17,-8,6v-1,-2,-2,-3,-4,-3v-3,6,0,24,-8,19v-2,-1,-5,9,-7,9v-1,-5,-7,-70,4,-60v31,2,63,8,88,-1v6,16,43,-6,54,6v2,20,-1,66,-8,35v-4,4,-8,7,-8,-4v0,-4,1,-13,-2,-14v-14,3,-22,20,-37,8r4,63v-8,9,-6,28,-9,42r-4,-21v-14,12,14,58,-9,65r-6,-27xm19,-106v2,12,11,27,-1,31v-12,-4,-5,-19,1,-31xm96,3v5,12,12,25,3,32v-12,-4,-4,-15,-3,-32xm69,26v2,12,11,30,-1,34v-14,-4,-5,-23,1,-34",w:159},"\u0443":{d:"24,0v4,-24,13,-34,29,-59v2,-7,21,-4,17,-17v0,5,-7,6,-11,4v11,-23,-20,-49,-29,-55v-2,0,-3,16,-7,14v-2,-19,-13,-34,-17,-50v6,-11,44,-10,46,6v0,4,18,15,19,17v0,13,3,19,8,19r14,18r12,-19v16,2,6,-26,20,-30v7,-3,6,-28,16,-15v18,-9,21,7,30,16v0,9,-19,12,-18,22v-9,33,-16,-1,-29,32v-11,27,-40,48,-41,84v-1,-2,-3,-7,-9,-6v-2,7,-16,47,-16,16v0,0,-22,14,-22,-1v0,-5,5,-3,-1,-4v-2,-1,-8,9,-11,8xm147,-102v5,14,8,26,8,34v0,5,-2,8,-7,8v-16,-7,-6,-19,-1,-42xm83,0v6,10,14,27,2,32v-16,-3,-8,-18,-2,-32",w:174},"\u0444":{d:"28,-34v-35,-41,-26,-106,32,-118v-2,-24,24,-4,37,-15v5,0,5,8,5,13v57,2,74,66,48,105v0,6,1,18,-4,17v0,-1,-4,-13,-6,-11v-4,10,-19,31,-33,16v-8,11,17,43,-5,46v-6,-1,-6,-12,-17,-6v-4,-3,-1,-20,-2,-27v-10,16,-8,-1,-19,5v-2,1,-5,-8,-5,-7r-8,15v-4,-8,-2,-36,-12,-27v-5,4,-10,14,-11,-6xm121,-120v-8,11,-16,-14,-17,5r-2,68v26,-8,35,-50,19,-73xm65,-125v-26,2,-27,50,-14,69v6,7,12,11,21,13v3,-37,-7,-44,-7,-82xm102,24v5,7,13,19,1,21v-12,-2,-7,-11,-1,-21xm75,0v4,15,9,33,0,39v-16,-7,1,-20,0,-39"},"\u0445":{d:"147,-138v-13,-2,-12,44,-22,27v-1,0,-17,22,-16,24v3,6,9,8,9,16v12,9,50,34,58,50v0,15,-2,22,-5,22v-3,1,-5,-21,-9,-19r-6,33v-3,-15,-6,-26,-18,-34v-8,3,-7,22,-11,-2r-3,-12v-3,5,-11,30,-11,8v0,-25,-26,-47,-39,-17v-13,18,-14,15,-24,40v-2,-1,-3,-13,-6,-11r-13,25r-6,-18v-2,-1,-4,12,-6,11v-3,1,-12,-18,-11,-22v-1,-3,32,-24,31,-27v-3,-3,27,-32,26,-32v-3,-15,-19,-31,-31,-38v-4,7,-11,39,-11,9v0,-6,1,-22,-1,-25v-16,-13,-21,-20,-10,-32v23,-4,50,-14,51,18v6,12,18,26,26,38v13,-9,20,-50,33,-61v12,9,27,-3,37,1v1,14,-4,53,-12,28xm162,-81v-1,8,-18,10,-16,-2v0,-6,3,-17,8,-34v7,16,9,20,8,36xm51,8v5,23,13,32,1,40v-12,-3,-2,-28,-1,-40",w:179},"\u0446":{d:"150,-72v-1,0,-3,-15,-5,-14v-10,7,1,49,6,58v8,3,18,8,17,21v-2,4,-5,1,-11,-1v0,4,-5,21,-7,21v-6,-17,-10,9,-17,-10v-5,-8,-8,-23,-11,-26v0,0,-8,17,-10,15r-4,-9v-16,21,-37,23,-56,6v-9,10,-12,-10,-18,-16r-5,15v-8,0,-10,-11,-6,-34v-4,2,-8,10,-8,-2v0,-38,6,-86,-5,-114v-1,-9,9,-8,15,-6v14,-4,31,-13,31,12v0,43,-29,128,31,128v26,1,33,-13,24,-30v3,-33,5,-65,-2,-94v3,-16,22,-13,42,-15v7,5,-1,22,-1,31v-1,21,9,49,0,64xm168,0v3,19,14,32,1,38v-15,-5,-4,-17,-1,-38xm150,19v4,16,10,26,2,34v-14,-3,-4,-21,-2,-34xm139,15v8,5,5,21,-4,10v0,-5,0,-4,4,-10",w:178},"\u0447":{d:"155,-162v-7,24,-3,54,-1,82v0,9,-5,12,-6,1v0,-4,-1,-7,-2,-7v-19,26,30,76,-1,95v3,-22,-30,12,-28,-19v1,-17,-2,-36,2,-50v-6,13,-6,7,-11,0v-9,4,-20,28,-32,17v-12,-2,-22,-18,-30,-7v-1,0,-10,-23,-11,-21r-5,16v-8,0,-10,-11,-7,-35v-2,2,-7,11,-7,-1v1,-28,3,-50,-5,-71v-1,-10,9,-7,15,-6v13,-4,33,-13,30,11v4,22,-6,18,-5,41v0,30,12,44,36,44v48,0,26,-50,22,-80v4,-16,22,-12,42,-15v3,0,4,1,4,5xm146,13v4,15,7,26,7,33v0,4,-2,5,-6,5v-15,-5,-4,-16,-1,-38xm18,-79v1,4,8,35,-2,39v-13,-6,-2,-16,2,-39",w:163},"\u0448":{d:"243,-85v-12,17,7,60,12,78v0,7,-8,10,-24,10r-11,-26v-5,6,-10,22,-14,7r-26,21v-11,-4,-27,-22,-36,-11v-5,-5,-11,-32,-15,-13v-1,7,-1,11,-2,8r-5,-12v0,0,-8,17,-10,15r-4,-9v-16,21,-37,23,-56,6v-9,10,-12,-10,-18,-16r-5,15v-8,0,-10,-11,-6,-34v-4,2,-8,10,-8,-2v0,-38,6,-86,-5,-114v-1,-9,9,-8,15,-6v14,-4,31,-13,31,12v0,43,-29,128,31,128v26,1,33,-13,24,-30v4,-37,4,-72,-3,-104v4,-14,28,-4,40,-11v24,24,-31,145,37,145v47,0,18,-42,28,-84r-6,-40v5,-14,23,-14,42,-15v7,6,-1,22,-1,31v-1,21,9,49,0,64xm114,13v4,15,11,26,2,33v-14,-3,-4,-20,-2,-33xm17,-22v3,17,14,32,1,38v-14,-6,-4,-16,-1,-38xm254,-69v6,9,12,17,2,20v-13,0,-5,-12,-2,-20",w:267},"\u0449":{d:"266,29v0,4,-2,5,-6,5v-16,-7,-3,-19,1,-46v3,10,5,24,5,41xm243,-85v-7,7,2,29,-1,38v5,9,21,17,20,33v-3,-1,-8,-6,-8,1v2,13,-4,12,-11,22v-4,-4,-8,-6,-12,-6v-3,1,-11,-32,-11,-31r-10,15r-4,-9v-5,0,-8,13,-12,17v-3,-2,-12,10,-14,10v-11,-4,-27,-22,-36,-11v-5,-5,-11,-32,-15,-13v-1,7,-1,11,-2,8r-5,-12v0,0,-8,17,-10,15r-4,-9v-16,21,-37,23,-56,6v-9,10,-12,-10,-18,-16r-5,15v-8,0,-10,-11,-6,-34v-4,2,-8,10,-8,-2v0,-38,6,-86,-5,-114v-1,-9,9,-8,15,-6v14,-4,31,-13,31,12v0,43,-29,128,31,128v26,1,33,-13,24,-30v4,-37,4,-72,-3,-104v4,-14,28,-4,40,-11v24,24,-31,145,37,145v41,0,22,-47,28,-84r-6,-40v5,-14,23,-14,42,-15v7,6,-1,22,-1,31v-1,21,9,49,0,64xm230,11v7,23,14,29,0,38v-21,0,-3,-33,0,-38xm84,13v11,11,6,28,-5,17v0,-5,1,-11,5,-17xm17,-22v3,17,14,32,1,38v-14,-6,-4,-16,-1,-38xm249,23v0,2,-2,2,-7,2v-5,-2,-3,-6,1,-11v4,7,6,9,6,9",w:269},"\u044a":{d:"90,-95v45,-5,73,32,53,65v-1,0,-3,-3,-5,-9v0,21,-13,17,-19,33v-10,25,-15,-8,-35,3v-9,-10,-22,9,-33,2v-3,-1,-10,26,-14,10r-1,-149v-2,-3,-5,-4,-6,-8r-10,12v-1,-2,-6,-17,-11,-12v4,-10,-9,-25,10,-23r21,-2v9,12,34,10,37,26v-11,0,-8,31,-9,52v7,2,17,0,25,1v-2,0,-2,0,-3,-1xm145,-23v7,8,10,21,2,25v-11,-2,-9,-15,-2,-25xm19,-133v6,11,11,29,3,36v-16,-1,-8,-28,-3,-36xm102,-79v-18,-4,-20,15,-30,4v-2,0,-3,9,-3,26v-1,24,16,13,31,13v28,0,18,-39,2,-43xm9,-147v7,4,9,21,-3,12v0,-5,0,-7,3,-12",w:155},"\u044b":{d:"126,-162v1,-22,30,3,41,-12v21,38,-7,114,13,166v0,10,6,20,-8,20v-4,0,-7,-14,-12,-12v-2,0,-4,-6,-4,-19v0,-13,-1,-19,-2,-19v-2,0,-4,3,-4,8v0,8,0,12,-2,12v-15,-3,3,-62,-9,-69v-6,0,-8,-60,-13,-75xm16,-169v15,1,39,12,41,27v1,7,-10,1,-8,11r0,36v7,2,17,0,25,1v-2,0,-2,0,-3,-1v45,-4,72,31,54,65v-2,0,-4,-3,-6,-9v1,21,-13,17,-19,33v-10,25,-15,-8,-35,3v-9,-11,-22,9,-33,2v-3,-1,-10,26,-14,10r0,-90r-8,-79v0,-6,2,-9,6,-9xm154,26v0,3,-1,5,-5,5v-15,-4,-3,-33,0,-43v4,6,5,19,5,38xm93,11v6,8,9,21,2,25v-11,-2,-9,-15,-2,-25xm42,19v7,12,10,24,3,31v-15,-2,-9,-20,-3,-31xm83,-79v-18,-4,-21,15,-30,4v-2,0,-3,9,-3,26v-1,24,16,13,31,13v29,0,18,-40,2,-43",w:187},"\u044c":{d:"16,-169v15,1,39,12,41,27v1,7,-10,1,-8,11r0,36v7,2,17,0,25,1v-2,0,-2,0,-3,-1v45,-4,72,31,54,65v-2,0,-4,-3,-6,-9v1,21,-13,17,-19,33v-10,25,-15,-8,-35,3v-9,-11,-22,9,-33,2v-3,-1,-10,26,-14,10r0,-90r-8,-79v0,-6,2,-9,6,-9xm126,-23v6,8,9,21,2,25v-11,-2,-9,-15,-2,-25xm42,19v7,12,10,24,3,31v-15,-2,-9,-20,-3,-31xm83,-79v-18,-4,-21,15,-30,4v-2,0,-3,9,-3,26v-1,24,16,13,31,13v29,0,18,-40,2,-43",w:136},"\u044d":{d:"122,-79v-6,-2,-18,16,-23,5v-3,5,-6,14,-13,4v-3,6,0,18,-8,16v-2,-1,-6,8,-6,7v-6,-6,-1,-34,-2,-51v7,-15,30,2,51,-1xm78,-171v41,0,74,46,74,87v0,38,-18,47,-30,78v-2,2,-10,-10,-11,-9r-6,22v-3,2,-6,-7,-6,-9v-4,7,-7,14,-13,7v-1,-1,-3,14,-5,12v-4,0,-9,-29,-15,-14v-3,2,-5,3,-6,3v-7,1,-11,-27,-16,-24v-5,1,-5,16,-12,14v-4,0,-7,-10,-9,-29v-5,-2,-4,15,-7,14v-3,-6,-18,-44,-2,-44v12,0,16,7,23,18v5,9,19,14,42,14v23,1,41,-27,41,-51v0,-17,-6,-45,-20,-44v-4,-4,-9,-11,-18,-5v-2,-8,-8,-7,-12,-1v-9,-2,-5,13,-10,14v-7,1,-5,-21,-9,-22r-25,33v-2,-13,-7,-15,-8,-1v0,3,-2,7,-5,11v-5,-1,-4,-26,-7,-33v0,-30,38,-41,72,-41xm122,0v2,10,10,22,0,25v-11,-2,-5,-15,0,-25xm32,2v1,20,6,24,9,35v0,6,-3,9,-8,9v-12,-6,-4,-27,-1,-44",w:156},"\u044e":{d:"146,-168v50,0,82,25,82,75v0,32,-11,36,-12,60v0,8,-2,12,-4,12v0,0,-4,-16,-6,-14v-4,11,-17,36,-33,20v-6,5,-12,19,-19,12v-3,-2,-11,14,-13,13v-4,-10,-13,0,-16,-12r-8,18v-3,0,-6,-26,-7,-35v-10,4,-16,23,-16,-5v-9,-19,-22,-46,-22,-66v0,-40,33,-78,74,-78xm109,-80v0,23,12,50,34,50v46,0,63,-61,43,-98v-7,8,-16,-13,-16,3v0,13,-10,15,-10,3v0,-11,-1,-17,-3,-17v-3,7,-10,11,-14,17v-4,-3,-9,-11,-17,-11v-14,-1,-17,34,-17,53xm210,-10v3,16,9,33,-1,39v-16,-6,2,-20,1,-39xm64,-97v5,7,13,23,1,25v-12,-2,-6,-14,-1,-25xm51,-174v21,35,-6,115,13,166v1,10,8,20,-7,20v-5,1,-6,-13,-12,-12v-3,0,-5,-6,-5,-19v0,-13,-1,-19,-2,-19v-4,-1,-3,22,-5,20v-17,-3,3,-62,-10,-69v-5,0,-8,-60,-13,-75v2,-22,30,3,41,-12xm33,-11v1,16,6,20,7,31v0,5,-2,8,-7,8v-14,-5,-5,-22,0,-39",w:232},"\u044f":{d:"129,-162v-16,36,-13,112,-6,164v0,5,-5,8,-6,1v0,-4,-1,-5,-1,-5v-3,-1,-6,5,-7,6v-3,1,-5,-19,-9,-17v0,0,-4,22,-6,20v-8,-5,0,-68,-7,-78v-2,8,-7,15,-12,4v-2,-1,-10,22,-12,21v-10,-1,-18,44,-24,51v-5,-10,-15,-16,-18,-24v-3,9,-10,23,-11,1v-6,-7,38,-58,38,-60v-23,-4,-42,-18,-42,-45v0,-49,57,-51,107,-48v11,0,16,3,16,9xm95,14v-3,9,20,34,-3,33v-10,-5,-7,-23,3,-33xm22,22v0,5,-2,7,-7,7v-11,-3,-4,-17,-1,-29v6,11,8,18,8,22xm58,-141v-18,2,-29,48,1,48v11,0,23,3,32,-1v0,-35,0,-49,-10,-31r-5,-18v-5,-2,-6,9,-10,9v-3,1,-5,-8,-8,-7",w:135},"\u0451":{d:"59,-141v-12,0,-11,38,-9,44v19,2,37,2,56,-2v11,1,3,10,3,17v0,31,-5,36,-13,12v-11,-8,-22,0,-26,7v-2,-1,-8,-14,-13,-12v-11,3,-20,47,7,44r50,-6v8,2,16,28,1,29v-2,0,-6,23,-10,21r-5,-23r-6,13v-1,-7,-16,-22,-26,-6v-4,-6,-6,-12,-10,5v-2,8,-5,12,-7,12r-5,-16v-8,3,-16,4,-20,-3v-5,1,-12,14,-14,1v6,-45,8,-100,-1,-144v0,-18,11,-18,24,-16r79,-6v25,2,6,41,2,53v-10,-10,-17,-28,-40,-24v-2,-1,-4,19,-8,17v-4,1,-5,-19,-9,-17xm35,11v8,22,16,34,-2,40v-14,-6,-2,-20,2,-40xm38,-202v0,-14,20,-18,21,-4v2,21,-6,8,-11,16v-2,1,-10,-10,-10,-12xm95,-202v0,8,-7,20,-13,8r-1,4v-10,-4,-12,-26,6,-24v6,0,8,4,8,12",w:131},"\u00a0":{w:84}}}); \ No newline at end of file From 8f0aee3ba17a2f0465a83daeaa13163f7af76c62 Mon Sep 17 00:00:00 2001 From: kangax Date: Thu, 14 Mar 2013 13:24:45 +0100 Subject: [PATCH 49/60] Update dependencies --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index eb590af2..040e4d9d 100644 --- a/package.json +++ b/package.json @@ -14,14 +14,14 @@ "test": "node test.js && jshint src" }, "dependencies": { - "canvas": "~1.0.0", - "jsdom": ">=0.2.3", - "xmldom": ">=0.1.7" + "canvas": "1.0.x", + "jsdom": "0.5.x", + "xmldom": "0.1.x" }, "devDependencies": { "qunit": "0.5.x", - "jshint": "0.9.x", - "uglify-js": ">=2.0.0" + "jshint": "1.1.x", + "uglify-js": "2.2.x" }, "engines": { "node": ">=0.4.0 && <1.0.0" }, "main": "./dist/all.js" From 2622a380bf6fdc016b6ef78a3bd1b40880a92abb Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 16 Mar 2013 16:41:19 +0100 Subject: [PATCH 50/60] [BACK_INCOMPAT] fabric.Group#objects -> fabric.Group._objects (making it consistent with canvas._objects). Objects in group always have `group` reference to a group they're in. bringToFront, sendToBack, etc. now work in relation to group when called on objects within group. --- src/group.class.js | 54 ++++++++++++++++++++++---------------- src/object.class.js | 28 +++++++++++++++++--- src/static_canvas.class.js | 8 +++--- test/unit/group.js | 47 ++++++++++++++++++++++++++++++--- 4 files changed, 102 insertions(+), 35 deletions(-) diff --git a/src/group.class.js b/src/group.class.js index 43592715..4079d441 100644 --- a/src/group.class.js +++ b/src/group.class.js @@ -49,9 +49,12 @@ initialize: function(objects, options) { options = options || { }; - this.objects = objects || []; - this.originalState = { }; + this._objects = objects || []; + for (var i = this._objects.length; i--; ) { + this._objects[i].group = this; + } + this.originalState = { }; this.callSuper('initialize'); this._calcBounds(); @@ -111,7 +114,7 @@ * @return {Array} group objects */ getObjects: function() { - return this.objects; + return this._objects; }, /** @@ -123,7 +126,8 @@ */ addWithUpdate: function(object) { this._restoreObjectsState(); - this.objects.push(object); + this._objects.push(object); + object.group = this; this._calcBounds(); this._updateObjectsCoords(); return this; @@ -138,7 +142,8 @@ */ removeWithUpdate: function(object) { this._restoreObjectsState(); - removeFromArray(this.objects, object); + removeFromArray(this._objects, object); + delete object.group; object.setActive(false); this._calcBounds(); this._updateObjectsCoords(); @@ -153,7 +158,8 @@ * @chainable */ add: function(object) { - this.objects.push(object); + this._objects.push(object); + object.group = this; return this; }, @@ -165,7 +171,8 @@ * @chainable */ remove: function(object) { - removeFromArray(this.objects, object); + removeFromArray(this._objects, object); + delete object.group; return this; }, @@ -201,10 +208,10 @@ */ _set: function(key, value) { if (key in this.delegatedProperties) { - var i = this.objects.length; + var i = this._objects.length; this[key] = value; while (i--) { - this.objects[i].set(key, value); + this._objects[i].set(key, value); } } else { @@ -219,7 +226,7 @@ * @return {Boolean} `true` if group contains an object */ contains: function(object) { - return this.objects.indexOf(object) > -1; + return this._objects.indexOf(object) > -1; }, /** @@ -230,7 +237,7 @@ */ toObject: function(propertiesToInclude) { return extend(this.callSuper('toObject', propertiesToInclude), { - objects: invoke(this.objects, 'toObject', propertiesToInclude) + objects: invoke(this._objects, 'toObject', propertiesToInclude) }); }, @@ -248,9 +255,9 @@ this.clipTo && fabric.util.clipContext(this, ctx); //The array is now sorted in order of highest first, so start from end. - for (var i = this.objects.length; i > 0; i--) { + for (var i = this._objects.length; i > 0; i--) { - var object = this.objects[i-1], + var object = this._objects[i-1], originalScaleFactor = object.borderScaleFactor, originalHasRotatingPoint = object.hasRotatingPoint; @@ -302,7 +309,7 @@ * @chainable */ _restoreObjectsState: function() { - this.objects.forEach(this._restoreObjectState, this); + this._objects.forEach(this._restoreObjectState, this); return this; }, @@ -334,6 +341,7 @@ delete object.__origHasControls; object.setActive(false); object.setCoords(); + delete object.group; return this; }, @@ -439,10 +447,10 @@ aY = [], minX, minY, maxX, maxY, o, width, height, i = 0, - len = this.objects.length; + len = this._objects.length; for (; i < len; ++i) { - o = this.objects[i]; + o = this._objects[i]; o.setCoords(); for (var prop in o.oCoords) { aX.push(o.oCoords[prop].x); @@ -491,9 +499,9 @@ * @chainable */ toGrayscale: function() { - var i = this.objects.length; + var i = this._objects.length; while (i--) { - this.objects[i].toGrayscale(); + this._objects[i].toGrayscale(); } return this; }, @@ -505,8 +513,8 @@ */ toSVG: function() { var objectsMarkup = [ ]; - for (var i = this.objects.length; i--; ) { - objectsMarkup.push(this.objects[i].toSVG()); + for (var i = this._objects.length; i--; ) { + objectsMarkup.push(this._objects[i].toSVG()); } return ( @@ -527,8 +535,8 @@ return this[prop]; } else { - for (var i = 0, len = this.objects.length; i < len; i++) { - if (this.objects[i][prop]) { + for (var i = 0, len = this._objects.length; i < len; i++) { + if (this._objects[i][prop]) { return true; } } @@ -537,7 +545,7 @@ } else { if (prop in this.delegatedProperties) { - return this.objects[0] && this.objects[0].get(prop); + return this._objects[0] && this._objects[0].get(prop); } return this[prop]; } diff --git a/src/object.class.js b/src/object.class.js index bf4353b3..f69383d1 100644 --- a/src/object.class.js +++ b/src/object.class.js @@ -1062,7 +1062,12 @@ * @chainable */ sendToBack: function() { - this.canvas.sendToBack(this); + if (this.group) { + fabric.StaticCanvas.prototype.sendToBack.call(this.group, this); + } + else { + this.canvas.sendToBack(this); + } return this; }, @@ -1073,7 +1078,12 @@ * @chainable */ bringToFront: function() { - this.canvas.bringToFront(this); + if (this.group) { + fabric.StaticCanvas.prototype.bringToFront.call(this.group, this); + } + else { + this.canvas.bringToFront(this); + } return this; }, @@ -1084,7 +1094,12 @@ * @chainable */ sendBackwards: function() { - this.canvas.sendBackwards(this); + if (this.group) { + fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this); + } + else { + this.canvas.sendBackwards(this); + } return this; }, @@ -1095,7 +1110,12 @@ * @chainable */ bringForward: function() { - this.canvas.bringForward(this); + if (this.group) { + fabric.StaticCanvas.prototype.bringForward.call(this.group, this); + } + else { + this.canvas.bringForward(this); + } return this; } }); diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 65fac8e3..53ffb7fa 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -1068,7 +1068,7 @@ sendToBack: function (object) { removeFromArray(this._objects, object); this._objects.unshift(object); - return this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -1081,7 +1081,7 @@ bringToFront: function (object) { removeFromArray(this._objects, object); this._objects.push(object); - return this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -1113,7 +1113,7 @@ removeFromArray(this._objects, object); this._objects.splice(nextIntersectingIdx, 0, object); } - return this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -1147,7 +1147,7 @@ removeFromArray(objects, object); objects.splice(nextIntersectingIdx, 0, object); } - this.renderAll(); + return this.renderAll && this.renderAll(); }, /** diff --git a/test/unit/group.js b/test/unit/group.js index 30472656..a942dc4f 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -311,23 +311,62 @@ equal(group.get('lockMovementX'), false); - group.objects[0].lockMovementX = true; + group.getObjects()[0].lockMovementX = true; equal(group.get('lockMovementX'), true); - group.objects[0].lockMovementX = false; + group.getObjects()[0].lockMovementX = false; equal(group.get('lockMovementX'), false); group.set('lockMovementX', true); equal(group.get('lockMovementX'), true); group.set('lockMovementX', false); - group.objects[0].lockMovementY = true; - group.objects[1].lockRotation = true; + group.getObjects()[0].lockMovementY = true; + group.getObjects()[1].lockRotation = true; equal(group.get('lockMovementY'), true); equal(group.get('lockRotation'), true); }); + test('z-index methods with group objects', function() { + + var textBg = new fabric.Rect({ + fill : '#abc', + width : 100, + height : 100 + }); + + var text = new fabric.Text('text'); + var group = new fabric.Group([ textBg, text ]); + + canvas.add(group); + + ok(group.getObjects()[0] === textBg); + ok(group.getObjects()[1] === text); + + textBg.bringToFront(); + + ok(group.getObjects()[0] === text); + ok(group.getObjects()[1] === textBg); + + textBg.sendToBack(); + + ok(group.getObjects()[0] === textBg); + ok(group.getObjects()[1] === text); + }); + + test('group reference on an object', function() { + var group = makeGroupWith2Objects(); + var firstObjInGroup = group.getObjects()[0]; + var secondObjInGroup = group.getObjects()[1]; + + equal(firstObjInGroup.group, group); + equal(secondObjInGroup.group, group); + + group.remove(firstObjInGroup); + ok(typeof firstObjInGroup.group == 'undefined'); + }); + // asyncTest('cloning group with image', function() { // var rect = new fabric.Rect({ top: 100, left: 100, width: 30, height: 10 }), // img = new fabric.Image(_createImageElement()), From 7123ea357f02c962de1e037c8eaac5eefdc9ead6 Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 16 Mar 2013 16:41:36 +0100 Subject: [PATCH 51/60] Fix JSHint warnings --- src/path.class.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/path.class.js b/src/path.class.js index b123d6b6..31083836 100644 --- a/src/path.class.js +++ b/src/path.class.js @@ -88,7 +88,8 @@ result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th]; } - return (arcToSegmentsCache[argsString] = result); + arcToSegmentsCache[argsString] = result; + return result; } function segmentToBezier(cx, cy, th0, th1, rx, ry, sin_th, cos_th) { @@ -111,11 +112,13 @@ var x2 = x3 + t * Math.sin(th1); var y2 = y3 - t * Math.cos(th1); - return (segmentToBezierCache[argsString] = [ + segmentToBezierCache[argsString] = [ a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3 - ]); + ]; + + return segmentToBezierCache[argsString]; } "use strict"; From ecc97413da26fa68c61afdd053eaf8f877186660 Mon Sep 17 00:00:00 2001 From: kangax Date: Sat, 16 Mar 2013 16:41:54 +0100 Subject: [PATCH 52/60] Version 1.1.1. Closes #447 --- HEADER.js | 2 +- dist/all.js | 109 +++++++++++++++++++++++++++++---------------- dist/all.min.js | 12 ++--- dist/all.min.js.gz | Bin 45867 -> 45942 bytes package.json | 2 +- 5 files changed, 78 insertions(+), 47 deletions(-) diff --git a/HEADER.js b/HEADER.js index 83e69dd9..b4c11a0a 100644 --- a/HEADER.js +++ b/HEADER.js @@ -1,6 +1,6 @@ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.1.0" }; +var fabric = fabric || { version: "1.1.1" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; diff --git a/dist/all.js b/dist/all.js index 9ad7628b..842eb325 100644 --- a/dist/all.js +++ b/dist/all.js @@ -1,7 +1,7 @@ /* build: `node build.js modules=ALL exclude=gestures` */ /*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */ -var fabric = fabric || { version: "1.1.0" }; +var fabric = fabric || { version: "1.1.1" }; if (typeof exports !== 'undefined') { exports.fabric = fabric; @@ -4576,10 +4576,10 @@ fabric.util.string = { this.type = options.type || 'linear'; coords = { - x1: options.coords ? options.coords.x1 : 0, - y1: options.coords ? options.coords.y1 : 0, - x2: options.coords ? options.coords.x2 : 0, - y2: options.coords ? options.coords.y2 : 0 + x1: options.coords.x1 || 0, + y1: options.coords.y1 || 0, + x2: options.coords.x2 || 0, + y2: options.coords.y2 || 0 }; if (this.type === 'radial') { @@ -6932,7 +6932,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { sendToBack: function (object) { removeFromArray(this._objects, object); this._objects.unshift(object); - return this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -6945,7 +6945,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { bringToFront: function (object) { removeFromArray(this._objects, object); this._objects.push(object); - return this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -6977,7 +6977,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { removeFromArray(this._objects, object); this._objects.splice(nextIntersectingIdx, 0, object); } - return this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -7011,7 +7011,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { removeFromArray(objects, object); objects.splice(nextIntersectingIdx, 0, object); } - this.renderAll(); + return this.renderAll && this.renderAll(); }, /** @@ -10422,7 +10422,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ sendToBack: function() { - this.canvas.sendToBack(this); + if (this.group) { + fabric.StaticCanvas.prototype.sendToBack.call(this.group, this); + } + else { + this.canvas.sendToBack(this); + } return this; }, @@ -10433,7 +10438,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ bringToFront: function() { - this.canvas.bringToFront(this); + if (this.group) { + fabric.StaticCanvas.prototype.bringToFront.call(this.group, this); + } + else { + this.canvas.bringToFront(this); + } return this; }, @@ -10444,7 +10454,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ sendBackwards: function() { - this.canvas.sendBackwards(this); + if (this.group) { + fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this); + } + else { + this.canvas.sendBackwards(this); + } return this; }, @@ -10455,7 +10470,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ bringForward: function() { - this.canvas.bringForward(this); + if (this.group) { + fabric.StaticCanvas.prototype.bringForward.call(this.group, this); + } + else { + this.canvas.bringForward(this); + } return this; } }); @@ -12964,7 +12984,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th]; } - return (arcToSegmentsCache[argsString] = result); + arcToSegmentsCache[argsString] = result; + return result; } function segmentToBezier(cx, cy, th0, th1, rx, ry, sin_th, cos_th) { @@ -12987,11 +13008,13 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati var x2 = x3 + t * Math.sin(th1); var y2 = y3 - t * Math.cos(th1); - return (segmentToBezierCache[argsString] = [ + segmentToBezierCache[argsString] = [ a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3 - ]); + ]; + + return segmentToBezierCache[argsString]; } "use strict"; @@ -13981,9 +14004,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati initialize: function(objects, options) { options = options || { }; - this.objects = objects || []; - this.originalState = { }; + this._objects = objects || []; + for (var i = this._objects.length; i--; ) { + this._objects[i].group = this; + } + this.originalState = { }; this.callSuper('initialize'); this._calcBounds(); @@ -14043,7 +14069,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {Array} group objects */ getObjects: function() { - return this.objects; + return this._objects; }, /** @@ -14055,7 +14081,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ addWithUpdate: function(object) { this._restoreObjectsState(); - this.objects.push(object); + this._objects.push(object); + object.group = this; this._calcBounds(); this._updateObjectsCoords(); return this; @@ -14070,7 +14097,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ removeWithUpdate: function(object) { this._restoreObjectsState(); - removeFromArray(this.objects, object); + removeFromArray(this._objects, object); + delete object.group; object.setActive(false); this._calcBounds(); this._updateObjectsCoords(); @@ -14085,7 +14113,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ add: function(object) { - this.objects.push(object); + this._objects.push(object); + object.group = this; return this; }, @@ -14097,7 +14126,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ remove: function(object) { - removeFromArray(this.objects, object); + removeFromArray(this._objects, object); + delete object.group; return this; }, @@ -14133,10 +14163,10 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ _set: function(key, value) { if (key in this.delegatedProperties) { - var i = this.objects.length; + var i = this._objects.length; this[key] = value; while (i--) { - this.objects[i].set(key, value); + this._objects[i].set(key, value); } } else { @@ -14151,7 +14181,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @return {Boolean} `true` if group contains an object */ contains: function(object) { - return this.objects.indexOf(object) > -1; + return this._objects.indexOf(object) > -1; }, /** @@ -14162,7 +14192,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ toObject: function(propertiesToInclude) { return extend(this.callSuper('toObject', propertiesToInclude), { - objects: invoke(this.objects, 'toObject', propertiesToInclude) + objects: invoke(this._objects, 'toObject', propertiesToInclude) }); }, @@ -14180,9 +14210,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati this.clipTo && fabric.util.clipContext(this, ctx); //The array is now sorted in order of highest first, so start from end. - for (var i = this.objects.length; i > 0; i--) { + for (var i = this._objects.length; i > 0; i--) { - var object = this.objects[i-1], + var object = this._objects[i-1], originalScaleFactor = object.borderScaleFactor, originalHasRotatingPoint = object.hasRotatingPoint; @@ -14234,7 +14264,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ _restoreObjectsState: function() { - this.objects.forEach(this._restoreObjectState, this); + this._objects.forEach(this._restoreObjectState, this); return this; }, @@ -14266,6 +14296,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati delete object.__origHasControls; object.setActive(false); object.setCoords(); + delete object.group; return this; }, @@ -14371,10 +14402,10 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati aY = [], minX, minY, maxX, maxY, o, width, height, i = 0, - len = this.objects.length; + len = this._objects.length; for (; i < len; ++i) { - o = this.objects[i]; + o = this._objects[i]; o.setCoords(); for (var prop in o.oCoords) { aX.push(o.oCoords[prop].x); @@ -14423,9 +14454,9 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati * @chainable */ toGrayscale: function() { - var i = this.objects.length; + var i = this._objects.length; while (i--) { - this.objects[i].toGrayscale(); + this._objects[i].toGrayscale(); } return this; }, @@ -14437,8 +14468,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati */ toSVG: function() { var objectsMarkup = [ ]; - for (var i = this.objects.length; i--; ) { - objectsMarkup.push(this.objects[i].toSVG()); + for (var i = this._objects.length; i--; ) { + objectsMarkup.push(this._objects[i].toSVG()); } return ( @@ -14459,8 +14490,8 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati return this[prop]; } else { - for (var i = 0, len = this.objects.length; i < len; i++) { - if (this.objects[i][prop]) { + for (var i = 0, len = this._objects.length; i < len; i++) { + if (this._objects[i][prop]) { return true; } } @@ -14469,7 +14500,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @scope fabric.Stati } else { if (prop in this.delegatedProperties) { - return this.objects[0] && this.objects[0].get(prop); + return this._objects[0] && this._objects[0].get(prop); } return this[prop]; } diff --git a/dist/all.min.js b/dist/all.min.js index 811cfcf8..dcf9dbf5 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,6 +1,6 @@ -/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.0"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&& -(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.canvas.sendToBack(this),this},bringToFront:function(){return this.canvas.bringToFront(this),this},sendBackwards:function(){return this.canvas.sendBackwards(this),this},bringForward:function(){return this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this.objects=e||[],this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this.objects},addWithUpdate:function(e){return this._restoreObjectsState(),this.objects.push(e),this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this.objects,e),e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this.objects.push(e),this},remove:function(e){return o(this.objects,e),this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this.objects.length;this[e]=t;while(n--)this.objects[n].set(e,t)}else this[e]=t},contains:function(e){return this.objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this.objects,"toObject",e)})},render:function(e,n){e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this.objects.length;i>0;i--){var s=this.objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this.objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this.objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this.objects.length;while(e--)this.objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this.objects.length;t--;)e.push(this.objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this.objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+ -r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file +/* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.1"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&& +(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this):this.canvas.sendBackwards(this),this},bringForward:function(){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this):this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth +()/2,top:i.getTop()-i.getHeight()/2}),i},t.util.createAccessors(t.Text)}(typeof exports!="undefined"?exports:this),function(){function request(e,t,n){var r=URL.parse(e),i=HTTP.request({hostname:r.hostname,port:r.port,path:r.pathname,method:"GET"},function(e){var r="";t&&e.setEncoding(t),e.on("end",function(){n(r)}),e.on("data",function(t){e.statusCode===200&&(r+=t)})});i.on("error",function(e){e.errno===process.ECONNREFUSED?fabric.log("ECONNREFUSED: connection refused to "+r.hostname+":"+r.port):fabric.log(e.message)})}function request_fs(e,t){var n=require("fs"),r=n.createReadStream(e),i="";r.on("data",function(e){i+=e}),r.on("end",function(){t(i)})}if(typeof document!="undefined"&&typeof window!="undefined")return;var DOMParser=(new require("xmldom")).DOMParser,URL=require("url"),HTTP=require("http"),Canvas=require("canvas"),Image=require("canvas").Image;fabric.util.loadImage=function(e,t,n){var r=function(r){i.src=new Buffer(r,"binary"),i._src=e,t&&t.call(n,i)},i=new Image;e&&e.indexOf("data")===0?(i.src=i._src=e,t&&t.call(n,i)):e&&e.indexOf("http")!==0?request_fs(e,r):e&&request(e,"binary",r)},fabric.loadSVGFromURL=function(e,t){e=e.replace(/^\n\s*/,"").replace(/\?.*$/,"").trim(),request(e,"",function(e){fabric.loadSVGFromString(e,t)})},fabric.loadSVGFromString=function(e,t){var n=(new DOMParser).parseFromString(e);fabric.parseSVGDocument(n.documentElement,function(e,n){t(e,n)})},fabric.util.getScript=function(url,callback){request(url,"",function(body){eval(body),callback&&callback()})},fabric.Image.fromObject=function(e,t){fabric.util.loadImage(e.src,function(n){var r=new fabric.Image(n);r._initConfig(e),r._initFilters(e),t(r)})},fabric.createCanvasForNode=function(e,t){var n=fabric.document.createElement("canvas"),r=new Canvas(e||600,t||600);n.style={},n.width=r.width,n.height=r.height;var i=fabric.Canvas||fabric.StaticCanvas,s=new i(n);return s.contextContainer=r.getContext("2d"),s.nodeCanvas=r,s.Font=Canvas.Font,s},fabric.StaticCanvas.prototype.createPNGStream=function(){return this.nodeCanvas.createPNGStream()},fabric.StaticCanvas.prototype.createJPEGStream=function(e){return this.nodeCanvas.createJPEGStream(e)};var origSetWidth=fabric.StaticCanvas.prototype.setWidth;fabric.StaticCanvas.prototype.setWidth=function(e){return origSetWidth.call(this,e),this.nodeCanvas.width=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setWidth=fabric.StaticCanvas.prototype.setWidth);var origSetHeight=fabric.StaticCanvas.prototype.setHeight;fabric.StaticCanvas.prototype.setHeight=function(e){return origSetHeight.call(this,e),this.nodeCanvas.height=e,this},fabric.Canvas&&(fabric.Canvas.prototype.setHeight=fabric.StaticCanvas.prototype.setHeight)}(); \ No newline at end of file diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 6b3be75c2b11b8a4f1a06d4af3b15768253e0bc8..e554cb69ca486ceee06e9681b5cfb73442893ff2 100644 GIT binary patch literal 45942 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", "keywords": ["canvas", "graphic", "graphics", "SVG", "node-canvas", "parser", "HTML5", "object model"], "repository": "git://github.com/kangax/fabric.js", From 9bb38c144c5e4e6cb612b0444cb2c2232c340b68 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 18 Mar 2013 13:03:54 +0100 Subject: [PATCH 53/60] Fix toDataURL not honoring format. Thanks ebirbal. --- dist/all.js | 2 +- dist/all.min.js | 2 +- dist/all.min.js.gz | Bin 45942 -> 45942 bytes src/static_canvas.class.js | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/all.js b/dist/all.js index 842eb325..52c08915 100644 --- a/dist/all.js +++ b/dist/all.js @@ -6631,7 +6631,7 @@ fabric.Shadow = fabric.util.createClass(/** @scope fabric.Shadow.prototype */ { this.renderAll(true); - var data = this.toDataURL(format, quality); + var data = this.__toDataURL(format, quality); ctx.scale(1 / multiplier, 1 / multiplier); this.setWidth(origWidth).setHeight(origHeight); diff --git a/dist/all.min.js b/dist/all.min.js index dcf9dbf5..4cb1faa0 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ /* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.1"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&& -(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this):this.canvas.sendBackwards(this),this},bringForward:function(){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this):this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index e554cb69ca486ceee06e9681b5cfb73442893ff2..19a99b6e6176f674d5a8eb36ccafb36a93b83588 100644 GIT binary patch delta 25427 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 O8vlQvvEyd0iUI(JW)YkK diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 53ffb7fa..40764bac 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -767,7 +767,7 @@ this.renderAll(true); - var data = this.toDataURL(format, quality); + var data = this.__toDataURL(format, quality); ctx.scale(1 / multiplier, 1 / multiplier); this.setWidth(origWidth).setHeight(origHeight); From e8e32e80de6f8ccb0972a6ef603b20b9af22d494 Mon Sep 17 00:00:00 2001 From: kangax Date: Mon, 18 Mar 2013 13:11:31 +0100 Subject: [PATCH 54/60] Fix gradient colorStops initialization. Thanks @Kienz --- dist/all.js | 2 +- dist/all.min.js | 2 +- dist/all.min.js.gz | Bin 45942 -> 45941 bytes src/gradient.class.js | 2 +- test/unit/gradient.js | 25 ++++++++++++++----------- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/dist/all.js b/dist/all.js index 52c08915..c2aabc72 100644 --- a/dist/all.js +++ b/dist/all.js @@ -4589,7 +4589,7 @@ fabric.util.string = { this.coords = coords; this.gradientUnits = options.gradientUnits || 'objectBoundingBox'; - this.colorStops = fabric.util.object.clone(options.colorStops); + this.colorStops = options.colorStops.slice(); }, /** diff --git a/dist/all.min.js b/dist/all.min.js index 4cb1faa0..532cddfa 100644 --- a/dist/all.min.js +++ b/dist/all.min.js @@ -1,5 +1,5 @@ /* build: `node build.js modules=ALL exclude=gestures` *//*! Fabric.js Copyright 2008-2013, Printio (Juriy Zaytsev, Maxim Chernyak) */var fabric=fabric||{version:"1.1.1"};typeof exports!="undefined"&&(exports.fabric=fabric),typeof document!="undefined"&&typeof window!="undefined"?(fabric.document=document,fabric.window=window):(fabric.document=require("jsdom").jsdom(""),fabric.window=fabric.document.createWindow()),fabric.isTouchSupported="ontouchstart"in fabric.document.documentElement,fabric.isLikelyNode=typeof Buffer!="undefined"&&typeof window=="undefined";var Cufon=function(){function r(e){var t=this.face=e.face;this.glyphs=e.glyphs,this.w=e.w,this.baseSize=parseInt(t["units-per-em"],10),this.family=t["font-family"].toLowerCase(),this.weight=t["font-weight"],this.style=t["font-style"]||"normal",this.viewBox=function(){var e=t.bbox.split(/\s+/),n={minX:parseInt(e[0],10),minY:parseInt(e[1],10),maxX:parseInt(e[2],10),maxY:parseInt(e[3],10)};return n.width=n.maxX-n.minX,n.height=n.maxY-n.minY,n.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},n}(),this.ascent=-parseInt(t.ascent,10),this.descent=-parseInt(t.descent,10),this.height=-this.ascent+this.descent}function i(){var e={},t={oblique:"italic",italic:"oblique"};this.add=function(t){(e[t.style]||(e[t.style]={}))[t.weight]=t},this.get=function(n,r){var i=e[n]||e[t[n]]||e.normal||e.italic||e.oblique;if(!i)return null;r={normal:400,bold:700}[r]||parseInt(r,10);if(i[r])return i[r];var s={1:1,99:0}[r%100],o=[],u,a;s===undefined&&(s=r>400),r==500&&(r=400);for(var f in i){f=parseInt(f,10);if(!u||fa)a=f;o.push(f)}return ra&&(r=a),o.sort(function(e,t){return(s?e>r&&t>r?et:et:e=i.length+e?r():setTimeout(arguments.callee,10)}),function(t){e?t():n.push(t)}}(),supports:function(e,t){var n=fabric.document.createElement("span").style;return n[e]===undefined?!1:(n[e]=t,n[e]===t)},textAlign:function(e,t,n,r){return t.get("textAlign")=="right"?n>0&&(e=" "+e):nk&&(k=N),A.push(N),N=0;continue}var O=t.glyphs[T[b]]||t.missingGlyph;if(!O)continue;N+=C=Number(O.w||t.w)+h}A.push(N),N=Math.max(k,N);var M=[];for(var b=A.length;b--;)M[b]=N-A[b];if(C===null)return null;d+=l.width-C,m+=l.minX;var _,D;if(f)_=u,D=u.firstChild;else{_=fabric.document.createElement("span"),_.className="cufon cufon-canvas",_.alt=n,D=fabric.document.createElement("canvas"),_.appendChild(D);if(i.printable){var P=fabric.document.createElement("span");P.className="cufon-alt",P.appendChild(fabric.document.createTextNode(n)),_.appendChild(P)}}var H=_.style,B=D.style||{},j=c.convert(l.height-p+v),F=Math.ceil(j),I=F/j;D.width=Math.ceil(c.convert(N+d-m)*I),D.height=F,p+=l.minY,B.top=Math.round(c.convert(p-t.ascent))+"px",B.left=Math.round(c.convert(m))+"px";var q=Math.ceil(c.convert(N*I)),R=q+"px",U=c.convert(t.height),z=(i.lineHeight-1)*c.convert(-t.ascent/5)*(L-1);Cufon.textOptions.width=q,Cufon.textOptions.height=U*L+z,Cufon.textOptions.lines=L,Cufon.textOptions.totalLineHeight=z,e?(H.width=R,H.height=U+"px"):(H.paddingLeft=R,H.paddingBottom=U-1+"px");var W=Cufon.textOptions.context||D.getContext("2d"),X=F/l.height;Cufon.textOptions.fontAscent=t.ascent*X,Cufon.textOptions.boundaries=null;for(var V=Cufon.textOptions.shadowOffsets,b=y.length;b--;)V[b]=[y[b][0]*X,y[b][1]*X];W.save(),W.scale(X,X),W.translate(-m-1/X*D.width/2+(Cufon.fonts[t.family].offsetLeft||0),-p-Cufon.textOptions.height/X/2+(Cufon.fonts[t.family].offsetTop||0)),W.lineWidth=t.face["underline-thickness"],W.save();var J=Cufon.getTextDecoration(i),K=i.fontStyle==="italic";W.save(),Q();if(g)for(var b=0,w=g.length;b.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}'),function(e,t,i,s,o,u,a){var f=t===null;f&&(t=o.alt);var l=e.viewBox,c=i.computedFontSize||(i.computedFontSize=new Cufon.CSS.Size(n(u,i.get("fontSize"))+"px",e.baseSize)),h=i.computedLSpacing;h==undefined&&(h=i.get("letterSpacing"),i.computedLSpacing=h=h=="normal"?0:~~c.convertFrom(r(u,h)));var p,d;if(f)p=o,d=o.firstChild;else{p=fabric.document.createElement("span"),p.className="cufon cufon-vml",p.alt=t,d=fabric.document.createElement("span"),d.className="cufon-vml-canvas",p.appendChild(d);if(s.printable){var v=fabric.document.createElement("span");v.className="cufon-alt",v.appendChild(fabric.document.createTextNode(t)),p.appendChild(v)}a||p.appendChild(fabric.document.createElement("cvml:shape"))}var m=p.style,g=d.style,y=c.convert(l.height),b=Math.ceil(y),w=b/y,E=l.minX,S=l.minY;g.height=b,g.top=Math.round(c.convert(S-e.ascent)),g.left=Math.round(c.convert(E)),m.height=c.convert(e.height)+"px";var x=Cufon.getTextDecoration(s),T=i.get("color"),N=Cufon.CSS.textTransform(t,i).split(""),C=0,k=0,L=null,A,O,M=s.textShadow;for(var _=0,D=0,P=N.length;_r?n:i-t;s(u(f,a,l,n));if(i>r||o()){e.onComplete&&e.onComplete();return}h(c)}()}function p(e,t,n){if(e){var r=new Image;r.onload=function(){t&&t.call(n,r),r=r.onload=null},r.src=e}else t&&t.call(n,e)}function d(e,t){function n(e){return fabric[fabric.util.string.camelize(fabric.util.string.capitalize(e))]}function r(){++s===o&&t&&t(i)}var i=[],s=0,o=e.length;e.forEach(function(e,t){if(!e.type)return;var s=n(e.type);s.async?s.fromObject(e,function(e,n){n||(i[t]=e),r()}):(i[t]=s.fromObject(e),r())})}function v(e,t,n){var r;if(e.length>1){var i=e.some(function(e){return e.type==="text"});i?(r=new fabric.Group([],t),e.reverse().forEach(function(e){e.cx&&(e.left=e.cx),e.cy&&(e.top=e.cy),r.addWithUpdate(e)})):r=new fabric.PathGroup(e,t)}else r=e[0];return typeof n!="undefined"&&r.setSourcePath(n),r}function m(e,t,n){if(n&&Object.prototype.toString.call(n)==="[object Array]")for(var r=0,i=n.length;rr)r+=u[p++%h],r>l&&(r=l),n[d?"lineTo":"moveTo"](r,0),d=!d;n.restore()}function y(e){return e||(e=fabric.document.createElement("canvas")),!e.getContext&&typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager.initElement(e),e}function b(e){var t=e.prototype;for(var n=t.stateProperties.length;n--;){var r=t.stateProperties[n],i=r.charAt(0).toUpperCase()+r.slice(1),s="set"+i,o="get"+i;t[o]||(t[o]=function(e){return new Function('return this.get("'+e+'")')}(r)),t[s]||(t[s]=function(e){return new Function("value",'return this.set("'+e+'", value)')}(r))}}function w(e,t){t.save(),t.beginPath(),e.clipTo(t),t.clip()}var e=Math.sqrt,t=Math.atan2;fabric.util={};var i=Math.PI/180,c=fabric.window.requestAnimationFrame||fabric.window.webkitRequestAnimationFrame||fabric.window.mozRequestAnimationFrame||fabric.window.oRequestAnimationFrame||fabric.window.msRequestAnimationFrame||function(e){fabric.window.setTimeout(e,1e3/60)},h=function(){return c.apply(fabric.window,arguments)};fabric.util.removeFromArray=n,fabric.util.degreesToRadians=s,fabric.util.radiansToDegrees=o,fabric.util.rotatePoint=u,fabric.util.toFixed=a,fabric.util.getRandomInt=r,fabric.util.falseFunction=f,fabric.util.animate=l,fabric.util.requestAnimFrame=h,fabric.util.loadImage=p,fabric.util.enlivenObjects=d,fabric.util.groupSVGElements=v,fabric.util.populateWithProperties=m,fabric.util.drawDashedLine=g,fabric.util.createCanvasElement=y,fabric.util.createAccessors=b,fabric.util.clipContext=w}(),function(){function t(t,n){var r=e.call(arguments,2),i=[];for(var s=0,o=t.length;s=r&&(r=e[n][t]);else while(n--)e[n]>=r&&(r=e[n]);return r}function r(e,t){if(!e||e.length===0)return undefined;var n=e.length-1,r=t?e[n][t]:e[n];if(t)while(n--)e[n][t]>>0;if(n===0)return-1;var r=0;arguments.length>0&&(r=Number(arguments[1]),r!==r?r=0:r!==0&&r!==Number.POSITIVE_INFINITY&&r!==Number.NEGATIVE_INFINITY&&(r=(r>0||-1)*Math.floor(Math.abs(r))));if(r>=n)return-1;var i=r>=0?r:Math.max(n-Math.abs(r),0);for(;i>>0;n>>0;r>>0;n>>0;n>>0;i>>0,n=0,r;if(arguments.length>1)r=arguments[1];else do{if(n in this){r=this[n++];break}if(++n>=t)throw new TypeError}while(!0);for(;n/g,">")}String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,"")}),fabric.util.string={camelize:e,capitalize:t,escapeXml:n}}(),function(){var e=Array.prototype.slice,t=Function.prototype.apply,n=function(){};Function.prototype.bind||(Function.prototype.bind=function(r){var i=this,s=e.call(arguments,1),o;return s.length?o=function(){return t.call(i,this instanceof n?this:r,s.concat(e.call(arguments)))}:o=function(){return t.call(i,this instanceof n?this:r,arguments)},n.prototype=this.prototype,o.prototype=new n,o})}(),function(){function i(){}function s(t){var n=this.constructor.superclass.prototype[t];return arguments.length>1?n.apply(this,e.call(arguments,1)):n.call(this)}function o(){function u(){this.initialize.apply(this,arguments)}var n=null,o=e.call(arguments,0);typeof o[0]=="function"&&(n=o.shift()),u.superclass=n,u.subclasses=[],n&&(i.prototype=n.prototype,u.prototype=new i,n.subclasses.push(u));for(var a=0,f=o.length;a-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);this.constructor.superclass=n;if(e!=="initialize")return i}}(i):e.prototype[i]=t[i],n&&(t.toString!==Object.prototype.toString&&(e.prototype.toString=t.toString),t.valueOf!==Object.prototype.valueOf&&(e.prototype.valueOf=t.valueOf))};fabric.util.createClass=o}(),function(){function e(e){var t=Array.prototype.slice.call(arguments,1),n,r,i=t.length;for(r=0;r-1?s(e,t.match(/opacity:\s*(\d?\.?\d*)/)[1]):e;for(var r in t)if(r==="opacity")s(e,t[r]);else{var i=r==="float"||r==="cssFloat"?typeof n.styleFloat=="undefined"?"cssFloat":"styleFloat":r;n[i]=t[r]}return e}var t=fabric.document.createElement("div"),n=typeof t.style.opacity=="string",r=typeof t.style.filter=="string",i=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,s=function(e){return e};n?s=function(e,t){return e.style.opacity=t,e}:r&&(s=function(e,t){var n=e.style;return e.currentStyle&&!e.currentStyle.hasLayout&& -(n.zoom=1),i.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)=.9999?"":"alpha(opacity="+t*100+")",n.filter=n.filter.replace(i,t)):n.filter+=" alpha(opacity="+t*100+")",e}),fabric.util.setStyle=e}(),function(){function t(e){return typeof e=="string"?fabric.document.getElementById(e):e}function s(e,t){var n=fabric.document.createElement(e);for(var r in t)r==="class"?n.className=t[r]:r==="for"?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function o(e,t){(" "+e.className+" ").indexOf(" "+t+" ")===-1&&(e.className+=(e.className?" ":"")+t)}function u(e,t,n){return typeof t=="string"&&(t=s(t,n)),e.parentNode&&e.parentNode.replaceChild(t,e),t.appendChild(e),t}function a(e){var t=0,n=0;do t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent;while(e);return{left:n,top:t}}var e=Array.prototype.slice,n=function(t){return e.call(t,0)},r;try{r=n(fabric.document.childNodes)instanceof Array}catch(i){}r||(n=function(e){var t=new Array(e.length),n=e.length;while(n--)t[n]=e[n];return t});var f;fabric.document.defaultView&&fabric.document.defaultView.getComputedStyle?f=function(e){return fabric.document.defaultView.getComputedStyle(e,null).position}:f=function(e){var t=e.style.position;return!t&&e.currentStyle&&(t=e.currentStyle.position),t},function(){function n(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=fabric.util.falseFunction),t?e.style[t]="none":typeof e.unselectable=="string"&&(e.unselectable="on"),e}function r(e){return typeof e.onselectstart!="undefined"&&(e.onselectstart=null),t?e.style[t]="":typeof e.unselectable=="string"&&(e.unselectable=""),e}var e=fabric.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";fabric.util.makeElementUnselectable=n,fabric.util.makeElementSelectable=r}(),function(){function e(e,t){var n=fabric.document.getElementsByTagName("head")[0],r=fabric.document.createElement("script"),i=!0;r.type="text/javascript",r.setAttribute("runat","server"),r.onload=r.onreadystatechange=function(e){if(i){if(typeof this.readyState=="string"&&this.readyState!=="loaded"&&this.readyState!=="complete")return;i=!1,t(e||fabric.window.event),r=r.onload=r.onreadystatechange=null}},r.src=e,n.appendChild(r)}fabric.util.getScript=e}(),fabric.util.getById=t,fabric.util.toArray=n,fabric.util.makeElement=s,fabric.util.addClass=o,fabric.util.wrapElement=u,fabric.util.getElementOffset=a,fabric.util.getElementPosition=f}(),function(){function e(e,t){return e+(/\?/.test(e)?"&":"?")+t}function n(){}function r(r,i){i||(i={});var s=i.method?i.method.toUpperCase():"GET",o=i.onComplete||function(){},u=t(),a;return u.onreadystatechange=function(){u.readyState===4&&(o(u),u.onreadystatechange=n)},s==="GET"&&(a=null,typeof i.parameters=="string"&&(r=e(r,i.parameters))),u.open(s,r,!0),(s==="POST"||s==="PUT")&&u.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),u.send(a),u}var t=function(){var e=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml2.XMLHTTP.3.0")},function(){return new XMLHttpRequest}];for(var t=e.length;t--;)try{var n=e[t]();if(n)return e[t]}catch(r){}}();fabric.util.request=r}(),function(){function e(e,t,n,r){return n*(e/=r)*e+t}function t(e,t,n,r){return-n*(e/=r)*(e-2)+t}function n(e,t,n,r){return e/=r/2,e<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}function r(e,t,n,r){return n*(e/=r)*e*e+t}function i(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function s(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t}function o(e,t,n,r){return n*(e/=r)*e*e*e+t}function u(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t}function a(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t}function f(e,t,n,r){return n*(e/=r)*e*e*e*e+t}function l(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t}function c(e,t,n,r){return e/=r/2,e<1?n/2*e*e*e*e*e+t:n/2*((e-=2)*e*e*e*e+2)+t}function h(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}function p(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t}function d(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t}function v(e,t,n,r){return e===0?t:n*Math.pow(2,10*(e/r-1))+t}function m(e,t,n,r){return e===r?t+n:n*(-Math.pow(2,-10*e/r)+1)+t}function g(e,t,n,r){return e===0?t:e===r?t+n:(e/=r/2,e<1?n/2*Math.pow(2,10*(e-1))+t:n/2*(-Math.pow(2,-10*--e)+2)+t)}function y(e,t,n,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t}function b(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t}function w(e,t,n,r){return e/=r/2,e<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t}function E(e,t,n,r){var i=1.70158,s=0,o=n;return e===0?t:(e/=r,e===1?t+n:(s||(s=r*.3),o-1;e=e.split(/\s+/);var n=[],r,i;if(t){r=0,i=e.length;for(;r/i,"")));if(!s.documentElement)return;t.parseSVGDocument(s.documentElement,function(r,i){d.set(e,{objects:t.util.array.invoke(r,"toObject"),options:i}),n(r,i)},r)}e=e.replace(/^\n\s*/,"").trim(),d.has(e,function(r){r?d.get(e,function(e){var t=m(e);n(t.objects,t.options)}):new t.util.request(e,{method:"get",onComplete:i})})}function m(e){var n=e.objects,i=e.options;return n=n.map(function(e){return t[r(e.type)].fromObject(e)}),{objects:n,options:i}}function g(e,n,r){e=e.trim();var i;if(typeof DOMParser!="undefined"){var s=new DOMParser;s&&s.parseFromString&&(i=s.parseFromString(e,"text/xml"))}else t.window.ActiveXObject&&(i=new ActiveXObject("Microsoft.XMLDOM"),i.async="false",i.loadXML(e.replace(//i,"")));t.parseSVGDocument(i.documentElement,function(e,t){n(e,t)},r)}function y(e){var t="";for(var n=0,r=e.length;n',"",""].join("")),t}function b(e){var t="";return e.backgroundColor&&e.backgroundColor.source&&(t=['',''].join("")),t}var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.string.capitalize,i=t.util.object.clone,s={cx:"left",x:"left",cy:"top",y:"top",r:"radius","fill-opacity":"opacity","fill-rule":"fillRule","stroke-width":"strokeWidth",transform:"transformMatrix","text-decoration":"textDecoration","font-size":"fontSize","font-weight":"fontWeight","font-style":"fontStyle","font-family":"fontFamily"};t.parseTransformAttribute=function(){function e(e,t){var n=t[0];e[0]=Math.cos(n),e[1]=Math.sin(n),e[2]=-Math.sin(n),e[3]=Math.cos(n)}function t(e,t){var n=t[0],r=t.length===2?t[1]:t[0];e[0]=n,e[3]=r}function n(e,t){e[2]=t[0]}function r(e,t){e[1]=t[0]}function i(e,t){e[4]=t[0],t.length===2&&(e[5]=t[1])}var s=[1,0,0,1,0,0],o="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",u="(?:\\s+,?\\s*|,\\s*)",a="(?:(skewX)\\s*\\(\\s*("+o+")\\s*\\))",f="(?:(skewY)\\s*\\(\\s*("+o+")\\s*\\))",l="(?:(rotate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+")"+u+"("+o+"))?\\s*\\))",c="(?:(scale)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",h="(?:(translate)\\s*\\(\\s*("+o+")(?:"+u+"("+o+"))?\\s*\\))",p="(?:(matrix)\\s*\\(\\s*("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+u+"("+o+")"+"\\s*\\))",d="(?:"+p+"|"+h+"|"+c+"|"+l+"|"+a+"|"+f+")",v="(?:"+d+"(?:"+u+d+")*"+")",m="^\\s*(?:"+v+"?)\\s*$",g=new RegExp(m),y=new RegExp(d);return function(o){var u=s.concat();return!o||o&&!g.test(o)?u:(o.replace(y,function(s){var o=(new RegExp(d)).exec(s).filter(function(e){return e!==""&&e!=null}),a=o[1],f=o.slice(2).map(parseFloat);switch(a){case"translate":i(u,f);break;case"rotate":e(u,f);break;case"scale":t(u,f);break;case"skewX":n(u,f);break;case"skewY":r(u,f);break;case"matrix":u=f}}),u)}}(),t.parseSVGDocument=function(){function s(e,t){while(e&&(e=e.parentNode))if(t.test(e.nodeName))return!0;return!1}var e=/^(path|circle|polygon|polyline|ellipse|rect|line|image|text)$/,n="(?:[-+]?\\d+(?:\\.\\d+)?(?:e[-+]?\\d+)?)",r=new RegExp("^\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*,?"+"\\s*("+n+"+)\\s*"+"$");return function(n,o,u){if(!n)return;var a=new Date,f=t.util.toArray(n.getElementsByTagName("*"));if(f.length===0){f=n.selectNodes("//*[name(.)!='svg']");var l=[];for(var c=0,p=f.length;c']:this.type==="radial"&&(i=["']);for(var s=0;s');return i.push(this.type==="linear"?"":""),i.join("")}}),fabric.util.object.extend(fabric.Gradient,{fromElement:function(n,r){var i=n.getElementsByTagName("stop"),s=n.nodeName==="linearGradient"?"linear":"radial",o=n.getAttribute("gradientUnits")||"objectBoundingBox",u=[],a={};s==="linear"?a={x1:n.getAttribute("x1")||0,y1:n.getAttribute("y1")||0,x2:n.getAttribute("x2")||"100%",y2:n.getAttribute("y2")||0}:s==="radial"&&(a={x1:n.getAttribute("fx")||n.getAttribute("cx")||"50%",y1:n.getAttribute("fy")||n.getAttribute("cy")||"50%",r1:0,x2:n.getAttribute("cx")||"50%",y2:n.getAttribute("cy")||"50%",r2:n.getAttribute("r")||"50%"});for(var f=i.length;f--;)u.push(e(i[f]));return t(r,a),new fabric.Gradient({type:s,coords:a,gradientUnits:o,colorStops:u})},forObject:function(e,n){return n||(n={}),t(e,n),new fabric.Gradient(n)}}),fabric.getGradientDefs=r}(),fabric.Pattern=fabric.util.createClass({repeat:"repeat",initialize:function(e){e||(e={}),e.source&&(this.source=typeof e.source=="string"?new Function(e.source):e.source),e.repeat&&(this.repeat=e.repeat)},toObject:function(){var e;return typeof this.source=="function"?e=String(this.source).match(/function\s+\w*\s*\(.*\)\s+\{([\s\S]*)\}/)[1]:typeof this.source.src=="string"&&(e=this.source.src),{source:e,repeat:this.repeat}},toLive:function(e){var t=typeof this.source=="function"?this.source():this.source;return e.createPattern(t,this.repeat)}}),fabric.Shadow=fabric.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,initialize:function(e){for(var t in e)this[t]=e[t]},toObject:function(){return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY}},toSVG:function(){}}),function(e){"use strict";function n(e,t){arguments.length>0&&this.init(e,t)}var t=e.fabric||(e.fabric={});if(t.Point){t.warn("fabric.Point is already defined");return}t.Point=n,n.prototype={constructor:n,init:function(e,t){this.x=e,this.y=t},add:function(e){return new n(this.x+e.x,this.y+e.y)},addEquals:function(e){return this.x+=e.x,this.y+=e.y,this},scalarAdd:function(e){return new n(this.x+e,this.y+e)},scalarAddEquals:function(e){return this.x+=e,this.y+=e,this},subtract:function(e){return new n(this.x-e.x,this.y-e.y)},subtractEquals:function(e){return this.x-=e.x,this.y-=e.y,this},scalarSubtract:function(e){return new n(this.x-e,this.y-e)},scalarSubtractEquals:function(e){return this.x-=e,this.y-=e,this},multiply:function(e){return new n(this.x*e,this.y*e)},multiplyEquals:function(e){return this.x*=e,this.y*=e,this},divide:function(e){return new n(this.x/e,this.y/e)},divideEquals:function(e){return this.x/=e,this.y/=e,this},eq:function(e){return this.x===e.x&&this.y===e.y},lt:function(e){return this.xe.x&&this.y>e.y},gte:function(e){return this.x>=e.x&&this.y>=e.y},lerp:function(e,t){return new n(this.x+(e.x-this.x)*t,this.y+(e.y-this.y)*t)},distanceFrom:function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},midPointFrom:function(e){return new n(this.x+(e.x-this.x)/2,this.y+(e.y-this.y)/2)},min:function(e){return new n(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new n(Math.max(this.x,e.x),Math.max(this.y,e.y))},toString:function(){return this.x+","+this.y},setXY:function(e,t){this.x=e,this.y=t},setFromPoint:function(e){this.x=e.x,this.y=e.y},swap:function(e){var t=this.x,n=this.y;this.x=e.x,this.y=e.y,e.x=t,e.y=n}}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){arguments.length>0&&this.init(e)}var t=e.fabric||(e.fabric={});if(t.Intersection){t.warn("fabric.Intersection is already defined");return}t.Intersection=n,t.Intersection.prototype={init:function(e){this.status=e,this.points=[]},appendPoint:function(e){this.points.push(e)},appendPoints:function(e){this.points=this.points.concat(e)}},t.Intersection.intersectLineLine=function(e,r,i,s){var o,u=(s.x-i.x)*(e.y-i.y)-(s.y-i.y)*(e.x-i.x),a=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),f=(s.y-i.y)*(r.x-e.x)-(s.x-i.x)*(r.y-e.y);if(f!==0){var l=u/f,c=a/f;0<=l&&l<=1&&0<=c&&c<=1?(o=new n("Intersection"),o.points.push(new t.Point(e.x+l*(r.x-e.x),e.y+l*(r.y-e.y)))):o=new n("No Intersection")}else u===0||a===0?o=new n("Coincident"):o=new n("Parallel");return o},t.Intersection.intersectLinePolygon=function(e,t,r){var i=new n("No Intersection"),s=r.length;for(var o=0;o0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonPolygon=function(e,t){var r=new n("No Intersection"),i=e.length;for(var s=0;s0&&(r.status="Intersection"),r},t.Intersection.intersectPolygonRectangle=function(e,r,i){var s=r.min(i),o=r.max(i),u=new t.Point(o.x,s.y),a=new t.Point(s.x,o.y),f=n.intersectLinePolygon(s,u,e),l=n.intersectLinePolygon(u,o,e),c=n.intersectLinePolygon(o,a,e),h=n.intersectLinePolygon(a,s,e),p=new n("No Intersection");return p.appendPoints(f.points),p.appendPoints(l.points),p.appendPoints(c.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function n(e){e?this._tryParsingColor(e):this.setSource([0,0,0,1])}var t=e.fabric||(e.fabric={});if(t.Color){t.warn("fabric.Color is already defined.");return}t.Color=n,t.Color.prototype={_tryParsingColor:function(e){var t;e in n.colorNameMap&&(e=n.colorNameMap[e]),t=n.sourceFromHex(e),t||(t=n.sourceFromRgb(e)),t&&this.setSource(t)},getSource:function(){return this._source},setSource:function(e){this._source=e},toRgb:function(){var e=this.getSource();return"rgb("+e[0]+","+e[1]+","+e[2]+")"},toRgba:function(){var e=this.getSource();return"rgba("+e[0]+","+e[1]+","+e[2]+","+e[3]+")"},toHex:function(){var e=this.getSource(),t=e[0].toString(16);t=t.length===1?"0"+t:t;var n=e[1].toString(16);n=n.length===1?"0"+n:n;var r=e[2].toString(16);return r=r.length===1?"0"+r:r,t.toUpperCase()+n.toUpperCase()+r.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(e){var t=this.getSource();return t[3]=e,this.setSource(t),this},toGrayscale:function(){var e=this.getSource(),t=parseInt((e[0]*.3+e[1]*.59+e[2]*.11).toFixed(0),10),n=e[3];return this.setSource([t,t,t,n]),this},toBlackWhite:function(e){var t=this.getSource(),n=(t[0]*.3+t[1]*.59+t[2]*.11).toFixed(0),r=t[3];return e=e||127,n=Number(n)',''),t.push("',"Created with Fabric.js ",fabric.version,"","",fabric.createSVGFontFacesMarkup(this.getObjects()),fabric.createSVGRefElementsMarkup(this),""),this.backgroundColor&&this.backgroundColor.source&&t.push('"),this.backgroundImage&&t.push(''),this.overlayImage&&t.push('');for(var n=0,r=this.getObjects(),i=r.length;n"),t.join("")},isEmpty:function(){return this._objects.length===0},remove:function(e){this.getActiveObject()===e&&(this.fire("before:selection:cleared",{target:e}),this.discardActiveObject(),this.fire("selection:cleared"));var t=this._objects,n=t.indexOf(e);return n!==-1&&(t.splice(n,1),this.fire("object:removed",{target:e})),this.renderAll(),e},sendToBack:function(e){return n(this._objects,e),this._objects.unshift(e),this.renderAll&&this.renderAll()},bringToFront:function(e){return n(this._objects,e),this._objects.push(e),this.renderAll&&this.renderAll()},sendBackwards:function(e){var t=this._objects.indexOf(e),r=t;if(t!==0){for(var i=t-1;i>=0;--i){var s=e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e);if(s){r=i;break}}n(this._objects,e),this._objects.splice(r,0,e)}return this.renderAll&&this.renderAll()},bringForward:function(e){var t=this.getObjects(),r=t.indexOf(e),i=r;if(r!==t.length-1){for(var s=r+1,o=this._objects.length;s"},e(fabric.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',toGrayscale:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;a0&&(t>this.targetFindTolerance?t-=this.targetFindTolerance:t=0,n>this.targetFindTolerance?n-=this.targetFindTolerance:n=0);var o=!0,u=r.getImageData(t,n,this.targetFindTolerance*2||1,this.targetFindTolerance*2||1);for(var a=3;a0?0:-n),t.ey-(r>0?0:-r),i,o),e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor;if(this.selectionDashArray.length>1){var u=t.ex+a-(n>0?0:i),f=t.ey+a-(r>0?0:o);e.beginPath(),fabric.util.drawDashedLine(e,u,f,u+i,f,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f+o-1,u+i,f+o-1,this.selectionDashArray),fabric.util.drawDashedLine(e,u,f,u,f+o,this.selectionDashArray),fabric.util.drawDashedLine(e,u+i-1,f,u+i-1,f+o,this.selectionDashArray),e.closePath(),e.stroke()}else e.strokeRect(t.ex+a-(n>0?0:i),t.ey+a-(r>0?0:o),i,o)},_findSelectedObjects:function(e){var t=[],n=this._groupSelector.ex,r=this._groupSelector.ey,i=n+this._groupSelector.left,s=r+this._groupSelector.top,a,f=new fabric.Point(o(n,i),o(r,s)),l=new fabric.Point(u(n,i),u(r,s));for(var c=0,h=this._objects.length;c1&&(t=new fabric.Group(t),this.setActiveGroup(t),t.saveCoords(),this.fire("selection:created",{target:t})),this.renderAll()},findTarget:function(e,t){var n,r=this.getPointer(e);if(this.controlsAboveOverlay&&this.lastRenderedObjectWithControlsAboveOverlay&&this.containsPoint(e,this.lastRenderedObjectWithControlsAboveOverlay)&&this.lastRenderedObjectWithControlsAboveOverlay._findTargetCorner(e,this._offset))return n=this.lastRenderedObjectWithControlsAboveOverlay,n;var i=this.getActiveGroup();if(i&&!t&&this.containsPoint(e,i))return n=i,n;var s=[];for(var o=this._objects.length;o--;)if(this._objects[o]&&this.containsPoint(e,this._objects[o])){if(!this.perPixelTargetFind&&!this._objects[o].perPixelTargetFind){n=this._objects[o],this.relatedTarget=n;break}s[s.length]=this._objects[o]}for(var u=0,a=s.length;u"},get:function(e){return this[e]},set:function(e,t){if(typeof e=="object")for(var n in e)this._set(n,e[n]);else typeof t=="function"?this._set(e,t(this.get(e))):this._set(e,t);return this},_set:function(e,t){var n=e==="scaleX"||e==="scaleY";n&&(t=this._constrainScale(t));if(e==="scaleX"&&t<0)this.flipX=!this.flipX,t*=-1;else if(e==="scaleY"&&t<0)this.flipY=!this.flipY,t*=-1;else if(e==="width"||e==="height")this.minScaleLimit=r(Math.min(.1,1/Math.max(this.width,this.height)),2);return this[e]=t,this},toggle:function(e){var t=this.get(e);return typeof t=="boolean"&&this.set(e,!t),this},setSourcePath:function(e){return this.sourcePath=e,this},render:function(e,n){if(this.width===0||this.height===0||!this.visible)return;e.save();var r=this.transformMatrix;r&&!this.group&&e.setTransform(r[0],r[1],r[2],r[3],r[4],r[5]),n||this.transform(e);if(this.stroke||this.strokeDashArray)e.lineWidth=this.strokeWidth,this.stroke&&this.stroke.toLive?e.strokeStyle=this.stroke.toLive(e):e.strokeStyle=this.stroke;this.overlayFill?e.fillStyle=this.overlayFill:this.fill&&(e.fillStyle=this.fill.toLive?this.fill.toLive(e):this.fill),r&&this.group&&(e.translate(-this.group.width/2,-this.group.height/2),e.transform(r[0],r[1],r[2],r[3],r[4],r[5])),this._setShadow(e),this.clipTo&&t.util.clipContext(this,e),this._render(e,n),this.clipTo&&e.restore(),this._removeShadow(e),this.active&&!n&&(this.drawBorders(e),this.drawControls(e)),e.restore()},_setShadow:function(e){if(!this.shadow)return;e.shadowColor=this.shadow.color,e.shadowBlur=this.shadow.blur,e.shadowOffsetX=this.shadow.offsetX,e.shadowOffsetY=this.shadow.offsetY},_removeShadow:function(e){e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},clone:function(e,n){return this.constructor.fromObject?this.constructor.fromObject(this.toObject(n),e):new t.Object(this.toObject(n))},cloneAsImage:function(e){if(t.Image){var n=new o;n.onload=function(){e&&e(new t.Image(n),r),n=n.onload=null};var r={angle:this.getAngle(),flipX:this.getFlipX(),flipY:this.getFlipY()};this.set({angle:0,flipX:!1,flipY:!1}),this.toDataURL(function(e){n.src=e})}return this},toDataURL:function(e){function i(t){t.left=n.width/2,t.top=n.height/2,t.setActive(!1),r.add(t);var i=r.toDataURL();r.dispose(),r=t=null,e&&e(i)}var n=t.util.createCanvasElement();n.width=this.getBoundingRectWidth(),n.height=this.getBoundingRectHeight(),t.util.wrapElement(n,"div");var r=new t.Canvas(n);r.backgroundColor="transparent",r.renderAll(),this.constructor.async?this.clone(i):i(this.clone())},hasStateChanged:function(){return this.stateProperties.some(function(e){return this[e]!==this.originalState[e]},this)},saveState:function(e){return this.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),e&&e.stateProperties&&e.stateProperties.forEach(function(e){this.originalState[e]=this.get(e)},this),this},setupState:function(){this.originalState={},this.saveState()},isType:function(e){return this.type===e},toGrayscale:function(){var e=this.get("fill");return e&&this.set("overlayFill",(new t.Color(e)).toGrayscale().toRgb()),this},complexity:function(){return 0},toJSON:function(e){return this.toObject(e)},setGradient:function(e,n){n||(n={});var r={colorStops:[]};r.type=n.type||(n.r1||n.r2?"radial":"linear"),r.coords={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2};if(n.r1||n.r2)r.coords.r1=n.r1,r.coords.r2=n.r2;for(var i in n.colorStops){var s=new t.Color(n.colorStops[i]);r.colorStops.push({offset:i,color:s.toRgb(),opacity:s.getAlpha()})}this.set(e,t.Gradient.forObject(this,r))},setPatternFill:function(e){this.set("fill",new t.Pattern(e))},setShadow:function(e){this.set("shadow",new t.Shadow(e))},animate:function(){if(arguments[0]&&typeof arguments[0]=="object")for(var e in arguments[0])this._animate(e,arguments[0][e],arguments[1]);else this._animate.apply(this,arguments);return this},_animate:function(e,n,r){var i=this,s;n=n.toString(),r?r=t.util.object.clone(r):r={},~e.indexOf(".")&&(s=e.split("."));var o=s?this.get(s[0])[s[1]]:this.get(e);"from"in r||(r.from=o),~n.indexOf("=")?n=o+parseFloat(n.replace("=","")):n=parseFloat(n),t.util.animate({startValue:r.from,endValue:n,byValue:r.by,easing:r.easing,duration:r.duration,onChange:function(t){s?i[s[0]][s[1]]=t:i.set(e,t),r.onChange&&r.onChange()},onComplete:function(){i.setCoords(),r.onComplete&&r.onComplete()}})},centerH:function(){return this.canvas.centerObjectH(this),this},centerV:function(){return this.canvas.centerObjectV(this),this},center:function(){return this.centerH().centerV()},remove:function(){return this.canvas.remove(this)},sendToBack:function(){return this.group?t.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?t.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas.bringToFront(this),this},sendBackwards:function(){return this.group?t.StaticCanvas.prototype.sendBackwards.call(this.group,this):this.canvas.sendBackwards(this),this},bringForward:function(){return this.group?t.StaticCanvas.prototype.bringForward.call(this.group,this):this.canvas.bringForward(this),this}}),t.util.createAccessors(t.Object),t.Object.prototype.rotate=t.Object.prototype.setAngle,n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.__uid=0}(typeof exports!="undefined"?exports:this),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{translateToCenterPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x+this.getWidth()/2:n==="right"&&(i=t.x-this.getWidth()/2),r==="top"?s=t.y+this.getHeight()/2:r==="bottom"&&(s=t.y-this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},translateToOriginPoint:function(t,n,r){var i=t.x,s=t.y;return n==="left"?i=t.x-this.getWidth()/2:n==="right"&&(i=t.x+this.getWidth()/2),r==="top"?s=t.y-this.getHeight()/2:r==="bottom"&&(s=t.y+this.getHeight()/2),fabric.util.rotatePoint(new fabric.Point(i,s),t,e(this.angle))},getCenterPoint:function(){return this.translateToCenterPoint(new fabric.Point(this.left,this.top),this.originX,this.originY)},toLocalPoint:function(t,n,r){var i=this.getCenterPoint(),s,o;return n!==undefined&&r!==undefined?(n==="left"?s=i.x-this.getWidth()/2:n==="right"?s=i.x+this.getWidth()/2:s=i.x,r==="top"?o=i.y-this.getHeight()/2:r==="bottom"?o=i.y+this.getHeight()/2:o=i.y):(s=this.left,o=this.top),fabric.util.rotatePoint(new fabric.Point(t.x,t.y),i,-e(this.angle)).subtractEquals(new fabric.Point(s,o))},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(t){var n=e(this.angle),r=this.getWidth()/2,i=Math.cos(n)*r,s=Math.sin(n)*r,o=this.getWidth(),u=Math.cos(n)*o,a=Math.sin(n)*o;this.originX==="center"&&t==="left"||this.originX==="right"&&t==="center"?(this.left-=i,this.top-=s):this.originX==="left"&&t==="center"||this.originX==="center"&&t==="right"?(this.left+=i,this.top+=s):this.originX==="left"&&t==="right"?(this.left+=u,this.top+=a):this.originX==="right"&&t==="left"&&(this.left-=u,this.top-=a),this.setCoords(),this.originX=t}})}(),function(){var e=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{intersectsWithRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y),o=new fabric.Point(n.br.x,n.br.y),u=fabric.Intersection.intersectPolygonRectangle([r,i,o,s],e,t);return u.status==="Intersection"},intersectsWithObject:function(e){function t(e){return{tl:new fabric.Point(e.tl.x,e.tl.y),tr:new fabric.Point(e.tr.x,e.tr.y),bl:new fabric.Point(e.bl.x,e.bl.y),br:new fabric.Point(e.br.x,e.br.y)}}var n=t(this.oCoords),r=t(e.oCoords),i=fabric.Intersection.intersectPolygonPolygon([n.tl,n.tr,n.br,n.bl],[r.tl,r.tr,r.br,r.bl]);return i.status==="Intersection"},isContainedWithinObject:function(e){return this.isContainedWithinRect(e.oCoords.tl,e.oCoords.br)},isContainedWithinRect:function(e,t){var n=this.oCoords,r=new fabric.Point(n.tl.x,n.tl.y),i=new fabric.Point(n.tr.x,n.tr.y),s=new fabric.Point(n.bl.x,n.bl.y);return r.x>e.x&&i.xe.y&&s.y1?this.strokeWidth:0,n=this.padding,r=e(this.angle);this.currentWidth=(this.width+t)*this.scaleX+n*2,this.currentHeight=(this.height+t)*this.scaleY+n*2,this.currentWidth<0&&(this.currentWidth=Math.abs(this.currentWidth));var i=Math.sqrt(Math.pow(this.currentWidth/2,2)+Math.pow(this.currentHeight/2,2)),s=Math.atan(this.currentHeight/this.currentWidth),o=Math.cos(s+r)*i,u=Math.sin(s+r)*i,a=Math.sin(r),f=Math.cos(r),l=this.getCenterPoint(),c={x:l.x-o,y:l.y-u},h={x:c.x+this.currentWidth*f,y:c.y+this.currentWidth*a},p={x:h.x-this.currentHeight*a,y:h.y+this.currentHeight*f},d={x:c.x-this.currentHeight*a,y:c.y+this.currentHeight*f},v={x:c.x-this.currentHeight/2*a,y:c.y+this.currentHeight/2*f},m={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a},g={x:h.x-this.currentHeight/2*a,y:h.y+this.currentHeight/2*f},y={x:d.x+this.currentWidth/2*f,y:d.y+this.currentWidth/2*a},b={x:c.x+this.currentWidth/2*f,y:c.y+this.currentWidth/2*a};return this.oCoords={tl:c,tr:h,br:p,bl:d,ml:v,mt:m,mr:g,mb:y,mtr:b},this._setCornerCoords(),this}})}(),function(){var e=fabric.util.getPointer,t=fabric.util.degreesToRadians;fabric.util.object.extend(fabric.Object.prototype,{_findTargetCorner:function(t,n){if(!this.hasControls||!this.active)return!1;var r=e(t,this.canvas.upperCanvasEl),i=r.x-n.left,s=r.y-n.top,o,u;for(var a in this.oCoords){if(a==="mtr"&&!this.hasRotatingPoint)continue;if(!(!this.get("lockUniScaling")||a!=="mt"&&a!=="mr"&&a!=="mb"&&a!=="ml"))continue;u=this._getImageLines(this.oCoords[a].corner,a),o=this._findCrossPoints(i,s,u);if(o%2===1&&o!==0)return this.__corner=a,a}return!1},_findCrossPoints:function(e,t,n){var r,i,s,o,u,a,f=0,l;for(var c in n){l=n[c];if(l.o.y=t&&l.d.y>=t)continue;l.o.x===l.d.x&&l.o.x>=e?(u=l.o.x,a=t):(r=0,i=(l.d.y-l.o.y)/(l.d.x-l.o.x),s=t-r*e,o=l.o.y-i*l.o.x,u=-(s-o)/(r-i),a=s+r*u),u>=e&&(f+=1);if(f===2)break}return f},_getImageLines:function(e){return{topline:{o:e.tl,d:e.tr},rightline:{o:e.tr,d:e.br},bottomline:{o:e.br,d:e.bl},leftline:{o:e.bl,d:e.tl}}},_setCornerCoords:function(){var e=this.oCoords,n=t(this.angle),r=t(45-this.angle),i=Math.sqrt(2*Math.pow(this.cornerSize,2))/2,s=i*Math.cos(r),o=i*Math.sin(r),u=Math.sin(n),a=Math.cos(n);e.tl.corner={tl:{x:e.tl.x-o,y:e.tl.y-s},tr:{x:e.tl.x+s,y:e.tl.y-o},bl:{x:e.tl.x-s,y:e.tl.y+o},br:{x:e.tl.x+o,y:e.tl.y+s}},e.tr.corner={tl:{x:e.tr.x-o,y:e.tr.y-s},tr:{x:e.tr.x+s,y:e.tr.y-o},br:{x:e.tr.x+o,y:e.tr.y+s},bl:{x:e.tr.x-s,y:e.tr.y+o}},e.bl.corner={tl:{x:e.bl.x-o,y:e.bl.y-s},bl:{x:e.bl.x-s,y:e.bl.y+o},br:{x:e.bl.x+o,y:e.bl.y+s},tr:{x:e.bl.x+s,y:e.bl.y-o}},e.br.corner={tr:{x:e.br.x+s,y:e.br.y-o},bl:{x:e.br.x-s,y:e.br.y+o},br:{x:e.br.x+o,y:e.br.y+s},tl:{x:e.br.x-o,y:e.br.y-s}},e.ml.corner={tl:{x:e.ml.x-o,y:e.ml.y-s},tr:{x:e.ml.x+s,y:e.ml.y-o},bl:{x:e.ml.x-s,y:e.ml.y+o},br:{x:e.ml.x+o,y:e.ml.y+s}},e.mt.corner={tl:{x:e.mt.x-o,y:e.mt.y-s},tr:{x:e.mt.x+s,y:e.mt.y-o},bl:{x:e.mt.x-s,y:e.mt.y+o},br:{x:e.mt.x+o,y:e.mt.y+s}},e.mr.corner={tl:{x:e.mr.x-o,y:e.mr.y-s},tr:{x:e.mr.x+s,y:e.mr.y-o},bl:{x:e.mr.x-s,y:e.mr.y+o},br:{x:e.mr.x+o,y:e.mr.y+s}},e.mb.corner={tl:{x:e.mb.x-o,y:e.mb.y-s},tr:{x:e.mb.x+s,y:e.mb.y-o},bl:{x:e.mb.x-s,y:e.mb.y+o},br:{x:e.mb.x+o,y:e.mb.y+s}},e.mtr.corner={tl:{x:e.mtr.x-o+u*this.rotatingPointOffset,y:e.mtr.y-s-a*this.rotatingPointOffset},tr:{x:e.mtr.x+s+u*this.rotatingPointOffset,y:e.mtr.y-o-a*this.rotatingPointOffset},bl:{x:e.mtr.x-s+u*this.rotatingPointOffset,y:e.mtr.y+o-a*this.rotatingPointOffset},br:{x:e.mtr.x+o+u*this.rotatingPointOffset,y:e.mtr.y+s-a*this.rotatingPointOffset}}},drawBorders:function(e){if(!this.hasBorders)return;var t=this.padding,n=t*2,r=this.strokeWidth>1?this.strokeWidth:0;e.save(),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=this.borderColor;var i=1/this._constrainScale(this.scaleX),s=1/this._constrainScale(this.scaleY);e.lineWidth=1/this.borderScaleFactor,e.scale(i,s);var o=this.getWidth(),u=this.getHeight();e.strokeRect(~~(-(o/2)-t-r/2*this.scaleX)+.5,~~(-(u/2)-t-r/2*this.scaleY)+.5,~~(o+n+r*this.scaleX),~~(u+n+r*this.scaleY));if(this.hasRotatingPoint&&!this.get("lockRotation")&&this.hasControls){var a=(this.flipY?u+r*this.scaleY+t*2:-u-r*this.scaleY-t*2)/2;e.beginPath(),e.moveTo(0,a),e.lineTo(0,a+(this.flipY?this.rotatingPointOffset:-this.rotatingPointOffset)),e.closePath(),e.stroke()}return e.restore(),this},drawControls:function(e){if(!this.hasControls)return;var t=this.cornerSize,n=t/2,r=this.strokeWidth/2,i=-(this.width/2),s=-(this.height/2),o,u,a=t/this.scaleX,f=t/this.scaleY,l=this.padding/this.scaleX,c=this.padding/this.scaleY,h=n/this.scaleY,p=n/this.scaleX,d=(n-t)/this.scaleX,v=(n-t)/this.scaleY,m=this.height,g=this.width,y=this.transparentCorners?"strokeRect":"fillRect",b=typeof G_vmlCanvasManager!="undefined";return e.save(),e.lineWidth=1/Math.max(this.scaleX,this.scaleY),e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,e.strokeStyle=e.fillStyle=this.cornerColor,o=i-p-r-l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g-p+r+l,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),this.get("lockUniScaling")||(o=i+g/2-p,u=s-h-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g/2-p,u=s+m+v+r+c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i+g+d+r+l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f),o=i-p-r-l,u=s+m/2-h,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),this.hasRotatingPoint&&(o=i+g/2-p,u=this.flipY?s+m+this.rotatingPointOffset/this.scaleY-f/2+r+c:s-this.rotatingPointOffset/this.scaleY-f/2-r-c,b||e.clearRect(o,u,a,f),e[y](o,u,a,f)),e.restore(),this}})}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r={x1:1,x2:1,y1:1,y2:1};if(t.Line){t.warn("fabric.Line is already defined");return}t.Line=t.util.createClass(t.Object,{type:"line",initialize:function(e,t){t=t||{},e||(e=[0,0,0,0]),this.callSuper("initialize",t),this.set("x1",e[0]),this.set("y1",e[1]),this.set("x2",e[2]),this.set("y2",e[3]),this._setWidthHeight(t)},_setWidthHeight:function(e){e||(e={}),this.set("width",this.x2-this.x1||1),this.set("height",this.y2-this.y1||1),this.set("left","left"in e?e.left:this.x1+this.width/2),this.set("top","top"in e?e.top:this.y1+this.height/2)},_set:function(e,t){return this[e]=t,e in r&&this._setWidthHeight(),this},_render:function(e){e.beginPath(),this.group&&e.translate(-this.group.width/2+this.left,-this.group.height/2+this.top),e.moveTo(this.width===1?0:-this.width/2,this.height===1?0:-this.height/2),e.lineTo(this.width===1?0:this.width/2,this.height===1?0:this.height/2),e.lineWidth=this.strokeWidth;var t=e.strokeStyle;e.strokeStyle=e.fillStyle,e.stroke(),e.strokeStyle=t},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{x1:this.get("x1"),y1:this.get("y1"),x2:this.get("x2"),y2:this.get("y2")})},toSVG:function(){var e=[];return this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Line.ATTRIBUTE_NAMES="x1 y1 x2 y2 stroke stroke-width transform".split(" "),t.Line.fromElement=function(e,r){var i=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),s=[i.x1||0,i.y1||0,i.x2||0,i.y2||0];return new t.Line(s,n(i,r))},t.Line.fromObject=function(e){var n=[e.x1,e.y1,e.x2,e.y2];return new t.Line(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function i(e){return"radius"in e&&e.radius>0}var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Circle){t.warn("fabric.Circle is already defined.");return}t.Circle=t.util.createClass(t.Object,{type:"circle",initialize:function(e){e=e||{},this.set("radius",e.radius||0),this.callSuper("initialize",e);var t=this.get("radius")*2;this.set("width",t).set("height",t)},toObject:function(e){return r(this.callSuper("toObject",e),{radius:this.get("radius")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},_render:function(e,t){e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,e.arc(t?this.left:0,t?this.top:0,this.radius,0,n,!1),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.stroke&&e.stroke()},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(e){this.radius=e,this.set("width",e*2).set("height",e*2)},complexity:function(){return 1}}),t.Circle.ATTRIBUTE_NAMES="cx cy r fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Circle.fromElement=function(e,n){n||(n={});var s=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!i(s))throw new Error("value of `r` attribute is required and can not be negative");"left"in s&&(s.left-=n.width/2||0),"top"in s&&(s.top-=n.height/2||0);var o=new t.Circle(r(s,n));return o.cx=parseFloat(e.getAttribute("cx"))||0,o.cy=parseFloat(e.getAttribute("cy"))||0,o},t.Circle.fromObject=function(e){return new t.Circle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={});if(t.Triangle){t.warn("fabric.Triangle is already defined");return}t.Triangle=t.util.createClass(t.Object,{type:"triangle",initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("width",e.width||100).set("height",e.height||100)},_render:function(e){var t=this.width/2,n=this.height/2;e.beginPath(),e.moveTo(-t,n),e.lineTo(0,-n),e.lineTo(t,n),e.closePath(),this.fill&&e.fill(),this.stroke&&e.stroke()},complexity:function(){return 1},toSVG:function(){var e=[],t=this.width/2,n=this.height/2,r=[-t+" "+n,"0 "+ -n,t+" "+n].join(",");return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!0)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!0)),e.push("'),e.join("")}}),t.Triangle.fromObject=function(e){return new t.Triangle(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.PI*2,r=t.util.object.extend;if(t.Ellipse){t.warn("fabric.Ellipse is already defined.");return}t.Ellipse=t.util.createClass(t.Object,{type:"ellipse",rx:0,ry:0,initialize:function(e){e=e||{},this.callSuper("initialize",e),this.set("rx",e.rx||0),this.set("ry",e.ry||0),this.set("width",this.get("rx")*2),this.set("height",this.get("ry")*2)},toObject:function(e){return r(this.callSuper("toObject",e),{rx:this.get("rx"),ry:this.get("ry")})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")},render:function(e,t){if(this.rx===0||this.ry===0)return;return this.callSuper("render",e,t)},_render:function(e,t){e.beginPath(),e.save(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.cx,this.cy),e.transform(1,0,0,this.ry/this.rx,0,0),e.arc(t?this.left:0,t?this.top:0,this.rx,0,n,!1),this.stroke&&e.stroke(),this._removeShadow(e),this.fill&&e.fill(),e.restore()},complexity:function(){return 1}}),t.Ellipse.ATTRIBUTE_NAMES="cx cy rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Ellipse.fromElement=function(e,n){n||(n={});var i=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES),s=i.left,o=i.top;"left"in i&&(i.left-=n.width/2||0),"top"in i&&(i.top-=n.height/2||0);var u=new t.Ellipse(r(i,n));return u.cx=s||0,u.cy=o||0,u},t.Ellipse.fromObject=function(e){return new t.Ellipse(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";function r(e){return e.left=e.left||0,e.top=e.top||0,e}var t=e.fabric||(e.fabric={}),n=t.util.object.extend;if(t.Rect){console.warn("fabric.Rect is already defined");return}t.Rect=t.util.createClass(t.Object,{type:"rect",rx:0,ry:0,initialize:function(e){e=e||{},this._initStateProperties(),this.callSuper("initialize",e),this._initRxRy(),this.x=0,this.y=0},_initStateProperties:function(){this.stateProperties=this.stateProperties.concat(["rx","ry"])},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(e){var t=this.rx||0,n=this.ry||0,r=-this.width/2,i=-this.height/2,s=this.width,o=this.height;e.beginPath(),e.globalAlpha=this.group?e.globalAlpha*this.opacity:this.opacity,this.transformMatrix&&this.group&&e.translate(this.width/2+this.x,this.height/2+this.y),!this.transformMatrix&&this.group&&e.translate(-this.group.width/2+this.width/2+this.x,-this.group.height/2+this.height/2+this.y),e.moveTo(r+t,i),e.lineTo(r+s-t,i),e.quadraticCurveTo(r+s,i,r+s,i+n,r+s,i+n),e.lineTo(r+s,i+o-n),e.quadraticCurveTo(r+s,i+o,r+s-t,i+o,r+s-t,i+o),e.lineTo(r+t,i+o),e.quadraticCurveTo(r,i+o,r,i+o-n,r,i+o-n),e.lineTo(r,i+n),e.quadraticCurveTo(r,i,r+t,i,r+t,i),e.closePath(),this.fill&&e.fill(),this._removeShadow(e),this.strokeDashArray?this._renderDashedStroke(e):this.stroke&&e.stroke()},_renderDashedStroke:function(e){function u(u,a){var f=0,l=0,c=(a?i.height:i.width)+s*2;while(fc&&(l=f-c),u?n+=h*u-(l*u||0):r+=h*a-(l*a||0),e[1&t?"moveTo":"lineTo"](n,r),t>=o&&(t=0)}}1&this.strokeDashArray.length&&this.strokeDashArray.push.apply(this.strokeDashArray,this.strokeDashArray);var t=0,n=-this.width/2,r=-this.height/2,i=this,s=this.padding,o=this.strokeDashArray.length;e.save(),e.beginPath(),u(1,0),u(0,1),u(-1,0),u(0,-1),e.stroke(),e.closePath(),e.restore()},_normalizeLeftTopProperties:function(e){return e.left&&this.set("left",e.left+this.getWidth()/2),this.set("x",e.left||0),e.top&&this.set("top",e.top+this.getHeight()/2),this.set("y",e.top||0),this},complexity:function(){return 1},toObject:function(e){return n(this.callSuper("toObject",e),{rx:this.get("rx")||0,ry:this.get("ry")||0})},toSVG:function(){var e=[];return this.fill&&this.fill.toLive&&e.push(this.fill.toSVG(this,!1)),this.stroke&&this.stroke.toLive&&e.push(this.stroke.toSVG(this,!1)),e.push("'),e.join("")}}),t.Rect.ATTRIBUTE_NAMES="x y width height rx ry fill fill-opacity opacity stroke stroke-width transform".split(" "),t.Rect.fromElement=function(e,i){if(!e)return null;var s=t.parseAttributes(e,t.Rect.ATTRIBUTE_NAMES);s=r(s);var o=new t.Rect(n(i?t.util.object.clone(i):{},s));return o._normalizeLeftTopProperties(s),o},t.Rect.fromObject=function(e){return new t.Rect(e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.toFixed;if(t.Polyline){t.warn("fabric.Polyline is already defined");return}t.Polyline=t.util.createClass(t.Object,{type:"polyline",initialize:function(e,t,n){t=t||{},this.set("points",e),this.callSuper("initialize",t),this._calcDimensions(n)},_calcDimensions:function(e){return t.Polygon.prototype._calcDimensions.call(this,e)},toObject:function(e){return t.Polygon.prototype.toObject.call(this,e)},toSVG:function(){var e=[],t=[];for(var r=0,i=this.points.length;r'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n'),t.join("")},_render:function(e){var t;e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y);for(var n=0,r=this.points.length;n1&&(g=Math.sqrt(g),n*=g,i*=g);var y=d/n,b=p/n,w=-p/i,E=d/i,S=y*l+b*c,x=w*l+E*c,T=y*e+b*t,N=w*e+E*t,C=(T-S)*(T-S)+(N-x)*(N-x),k=1/C-.25;k<0&&(k=0);var L=Math.sqrt(k);a===u&&(L=-L);var A=.5*(S+T)-L*(N-x),O=.5*(x+N)+L*(T-S),M=Math.atan2(x-O,S-A),_=Math.atan2(N-O,T-A),D=_-M;D<0&&a===1?D+=2*Math.PI:D>0&&a===0&&(D-=2*Math.PI);var P=Math.ceil(Math.abs(D/(Math.PI*.5+.001))),H=[];for(var B=0;B"},toObject:function(e){var t=h(this.callSuper("toObject",e),{path:this.path});return this.sourcePath&&(t.sourcePath=this.sourcePath),this.transformMatrix&&(t.transformMatrix=this.transformMatrix),t},toDatalessObject:function(e){var t=this.toObject(e);return this.sourcePath&&(t.path=this.sourcePath),delete t.sourcePath,t},toSVG:function(){var e=[],t=[];for(var n=0,r=this.path.length;n',"",""),t.join("")},complexity:function(){return this.path.length},_parsePath:function(){var e=[],n,r,i;for(var s=0,o,u=this.path.length;sc)for(var h=1,p=o.length;h"];for(var n=0,r=e.length;n"),t.join("")},toString:function(){return"#"},isSameColor:function(){var e=this.getObjects()[0].get("fill");return this.getObjects().every(function(t){return t.get("fill")===e})},complexity:function(){return this.paths.reduce(function(e,t){return e+(t&&t.complexity?t.complexity():0)},0)},toGrayscale:function(){var e=this.paths.length;while(e--)this.paths[e].toGrayscale();return this},getObjects:function(){return this.paths}}),t.PathGroup.fromObject=function(e){var n=u(e.paths);return new t.PathGroup(n,e)}}(typeof exports!="undefined"?exports:this),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.array.min,i=t.util.array.max,s=t.util.array.invoke,o=t.util.removeFromArray;if(t.Group)return;var u={lockMovementX:!0,lockMovementY:!0,lockRotation:!0,lockScalingX:!0,lockScalingY:!0,lockUniScaling:!0};t.Group=t.util.createClass(t.Object,{type:"group",initialize:function(e,t){t=t||{},this._objects=e||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;this.originalState={},this.callSuper("initialize"),this._calcBounds(),this._updateObjectsCoords(),t&&n(this,t),this._setOpacityIfSame(),this.setCoords(!0),this.saveCoords()},_updateObjectsCoords:function(){var e=this.left,t=this.top;this.forEachObject(function(n){var r=n.get("left"),i=n.get("top");n.set("originalLeft",r),n.set("originalTop",i),n.set("left",r-e),n.set("top",i-t),n.setCoords(),n.__origHasControls=n.hasControls,n.hasControls=!1},this)},toString:function(){return"#"},getObjects:function(){return this._objects},addWithUpdate:function(e){return this._restoreObjectsState(),this._objects.push(e),e.group=this,this._calcBounds(),this._updateObjectsCoords(),this},removeWithUpdate:function(e){return this._restoreObjectsState(),o(this._objects,e),delete e.group,e.setActive(!1),this._calcBounds(),this._updateObjectsCoords(),this},add:function(e){return this._objects.push(e),e.group=this,this},remove:function(e){return o(this._objects,e),delete e.group,this},size:function(){return this.getObjects().length},delegatedProperties:{fill:!0,opacity:!0,fontFamily:!0,fontWeight:!0,fontSize:!0,fontStyle:!0,lineHeight:!0,textDecoration:!0,textShadow:!0,textAlign:!0,backgroundColor:!0},_set:function(e,t){if(e in this.delegatedProperties){var n=this._objects.length;this[e]=t;while(n--)this._objects[n].set(e,t)}else this[e]=t},contains:function(e){return this._objects.indexOf(e)>-1},toObject:function(e){return n(this.callSuper("toObject",e),{objects:s(this._objects,"toObject",e)})},render:function(e,n){e.save(),this.transform(e);var r=Math.max(this.scaleX,this.scaleY);this.clipTo&&t.util.clipContext(this,e);for(var i=this._objects.length;i>0;i--){var s=this._objects[i-1],o=s.borderScaleFactor,u=s.hasRotatingPoint;s.borderScaleFactor=r,s.hasRotatingPoint=!1,s.render(e),s.borderScaleFactor=o,s.hasRotatingPoint=u}this.clipTo&&e.restore(),!n&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore(),this.setCoords()},item:function(e){return this.getObjects()[e]},complexity:function(){return this.getObjects().reduce(function(e,t){return e+=typeof t.complexity=="function"?t.complexity():0,e},0)},_restoreObjectsState:function(){return this._objects.forEach(this._restoreObjectState,this),this},_restoreObjectState:function(e){var t=this.get("left"),n=this.get("top"),r=this.getAngle()*(Math.PI/180),i=Math.cos(r)*e.get("top")+Math.sin(r)*e.get("left"),s=-Math.sin(r)*e.get("top")+Math.cos(r)*e.get("left");return e.setAngle(e.getAngle()+this.getAngle()),e.set("left",t+s*this.get("scaleX")),e.set("top",n+i*this.get("scaleY")),e.set("scaleX",e.get("scaleX")*this.get("scaleX")),e.set("scaleY",e.get("scaleY")*this.get("scaleY")),e.setCoords(),e.hasControls=e.__origHasControls,delete e.__origHasControls,e.setActive(!1),e.setCoords(),delete e.group,this},destroy:function(){return this._restoreObjectsState()},saveCoords:function(){return this._originalLeft=this.get("left"),this._originalTop=this.get("top"),this},hasMoved:function(){return this._originalLeft!==this.get("left")||this._originalTop!==this.get("top")},setObjectsCoords:function(){return this.forEachObject(function(e){e.setCoords()}),this},activateAllObjects:function(){return this.forEachObject(function(e){e.setActive()}),this},forEachObject:t.StaticCanvas.prototype.forEachObject,_setOpacityIfSame:function(){var e=this.getObjects(),t=e[0]?e[0].get("opacity"):1,n=e.every(function(e){return e.get("opacity")===t});n&&(this.opacity=t)},_calcBounds:function(){var e=[],t=[],n,s,o,u,a,f,l,c=0,h=this._objects.length;for(;ce.x&&i-ne.y},toGrayscale:function(){var e=this._objects.length;while(e--)this._objects[e].toGrayscale();return this},toSVG:function(){var e=[];for(var t=this._objects.length;t--;)e.push(this._objects[t].toSVG());return''+e.join("")+""},get:function(e){if(e in u){if(this[e])return this[e];for(var t=0,n=this._objects.length;t'+'"+""},getSrc:function(){return this.getElement().src||this.getElement()._src},toString:function(){return'#'},clone:function(e,t){this.constructor.fromObject(this.toObject(t),e)},applyFilters:function(e){if(this.filters.length===0){this.setElement(this._originalImage),e&&e();return}var t=typeof Buffer!="undefined"&&typeof window=="undefined",n=this._originalImage,r=fabric.util.createCanvasElement(),i=t?new(require("canvas").Image):fabric.document.createElement("img"),s=this;r.width=n.width,r.height=n.height,r.getContext("2d").drawImage(n,0,0,n.width,n.height),this.filters.forEach(function(e){e&&e.applyTo(r)}),i.onload=function(){s._element=i,e&&e(),i.onload=r=n=null},i.width=n.width,i.height=n.height;if(t){var o=r.toDataURL("image/png").substring(22);i.src=new Buffer(o,"base64"),s._element=i,e&&e()}else i.src=r.toDataURL("image/png");return this},_render:function(e){e.drawImage(this._element,-this.width/2,-this.height/2,this.width,this.height)},_resetWidthHeight:function(){var e=this.getElement();this.set("width",e.width),this.set("height",e.height)},_initElement:function(e){this.setElement(fabric.util.getById(e)),fabric.util.addClass(this.getElement(),fabric.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e){e.filters&&e.filters.length&&(this.filters=e.filters.map(function(e){return e&&fabric.Image.filters[e.type].fromObject(e)}))},_setWidthHeight:function(e){this.width="width"in e?e.width:this.getElement().width||0,this.height="height"in e?e.height:this.getElement().height||0},complexity:function(){return 1}}),fabric.Image.CSS_CANVAS="canvas-img",fabric.Image.prototype.getSvgSrc=fabric.Image.prototype.getSrc,fabric.Image.fromObject=function(e,t){var n=fabric.document.createElement("img"),r=e.src;e.width&&(n.width=e.width),e.height&&(n.height=e.height),n.onload=function(){fabric.Image.prototype._initFilters.call(e,e);var r=new fabric.Image(n,e);t&&t(r),n=n.onload=n.onerror=null},n.onerror=function(){fabric.log("Error loading "+n.src),t&&t(null,!0),n=n.onload=n.onerror=null},n.src=r},fabric.Image.fromURL=function(e,t,n){var r=fabric.document.createElement("img");r.onload=function(){t&&t(new fabric.Image(r,n)),r=r.onload=null},r.src=e},fabric.Image.ATTRIBUTE_NAMES="x y width height fill fill-opacity opacity stroke stroke-width transform xlink:href".split(" "),fabric.Image.fromElement=function(e,n,r){var i=fabric.parseAttributes(e,fabric.Image.ATTRIBUTE_NAMES);fabric.Image.fromURL(i["xlink:href"],n,t(r?fabric.util.object.clone(r):{},i))},fabric.Image.async=!0}(typeof exports!="undefined"?exports:this),fabric.util.object.extend(fabric.Object.prototype,{_getAngleValueForStraighten:function(){var e=this.getAngle()%360;return e>0?Math.round((e-1)/90)*90:Math.round(e/90)*90},straighten:function(){return this.setAngle(this._getAngleValueForStraighten()),this},fxStraighten:function(e){e=e||{};var t=function(){},n=e.onComplete||t,r=e.onChange||t,i=this;return fabric.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){i.setAngle(e),r()},onComplete:function(){i.setCoords(),n()},onStart:function(){i.setActive(!1)}}),this}}),fabric.util.object.extend(fabric.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.renderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.renderAll.bind(this)}),this}}),fabric.Image.filters={},fabric.Image.filters.Grayscale=fabric.util.createClass({type:"Grayscale",applyTo:function(e){var t=e.getContext("2d"),n=t.getImageData(0,0,e.width,e.height),r=n.data,i=n.width,s=n.height,o,u,a,f;for(a=0;ao&&f>o&&l>o&&u(a-f)0&&(r[s]=a,r[s+1]=f,r[s+2]=l);t.putImageData(n,0,0)},toJSON:function(){return{type:this.type,color:this.color}}}),fabric.Image.filters.Tint.fromObject=function(e){return new fabric.Image.filters.Tint(e)},fabric.Image.filters.Convolute=fabric.util.createClass({type:"Convolute",initialize:function(e){e||(e={}),this.opaque=e.opaque,this.matrix=e.matrix||[0,0,0,0,1,0,0,0,0];var t=fabric.util.createCanvasElement();this.tmpCtx=t.getContext("2d")},_createImageData:function(e,t){return this.tmpCtx.createImageData(e,t)},applyTo:function(e){var t=this.matrix,n=e.getContext("2d"),r=n.getImageData(0,0,e.width,e.height),i=Math.round(Math.sqrt(t.length)),s=Math.floor(i/2),o=r.data,u=r.width,a=r.height,f=u,l=a,c=this._createImageData(f,l),h=c.data,p=this.opaque?1:0;for(var d=0;d=0&&N=0&&C'},_render:function(e){typeof Cufon=="undefined"||this.useNative===!0?this._renderViaNative(e):this._renderViaCufon(e)},_renderViaCufon:function(e){var t=Cufon.textOptions||(Cufon.textOptions={});t.left=this.left,t.top=this.top,t.context=e,t.color=this.fill;var n=this._initDummyElementForCufon();this.transform(e),Cufon.replaceElement(n,{engine:"canvas",separate:"none",fontFamily:this.fontFamily,fontWeight:this.fontWeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,fontStyle:this.fontStyle,lineHeight:this.lineHeight,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor}),this.width=t.width,this.height=t.height,this._totalLineHeight=t.totalLineHeight,this._fontAscent=t.fontAscent,this._boundaries=t.boundaries,this._shadowOffsets=t.shadowOffsets,this._shadows=t.shadows||[],n=null,this.setCoords()},_renderViaNative:function(e){this.transform(e),this._setTextStyles(e);var n=this.text.split(/\r?\n/);this.width=this._getTextWidth(e,n),this.height=this._getTextHeight(e,n),this._renderTextBackground(e,n),this.textAlign!=="left"&&this.textAlign!=="justify"&&(e.save(),e.translate(this.textAlign==="center"?this.width/2:this.width,0)),this._setTextShadow(e),this.clipTo&&t.util.clipContext(this,e),this._renderTextFill(e,n),this._renderTextStroke(e,n),this.clipTo&&e.restore(),this.textShadow&&e.restore(),this.textAlign!=="left"&&this.textAlign!=="justify"&&e.restore(),this._renderTextDecoration(e,n),this._setBoundaries(e,n),this._totalLineHeight=0,this.setCoords()},_setBoundaries:function(e,t){this._boundaries=[];for(var n=0,r=t.length;nn&&(n=s)}return n},_setTextShadow:function(e){if(this.textShadow){var t=/\s+(-?\d+)(?:px)?\s+(-?\d+)(?:px)?\s+(\d+)(?:px)?\s*/,n=this.textShadow,r=t.exec(this.textShadow),i=n.replace(t,"");e.save(),e.shadowColor=i,e.shadowOffsetX=parseInt(r[1],10),e.shadowOffsetY=parseInt(r[2],10),e.shadowBlur=parseInt(r[3],10),this._shadows=[{blur:e.shadowBlur,color:e.shadowColor,offX:e.shadowOffsetX,offY:e.shadowOffsetY}],this._shadowOffsets=[[parseInt(e.shadowOffsetX,10),parseInt(e.shadowOffsetY,10)]]}},_drawTextLine:function(e,t,n,r,i){if(this.textAlign!=="justify"){t[e](n,r,i);return}var s=t.measureText(n).width,o=this.width;if(o>s){var u=n.split(/\s+/),a=t.measureText(n.replace(/\s+/g,"")).width,f=o-a,l=u.length-1,c=f/l,h=0;for(var p=0,d=u.length;p-1&&i(this.fontSize),this.textDecoration.indexOf("line-through")>-1&&i(this.fontSize/2),this.textDecoration.indexOf("overline")>-1&&i(0)},_getFontDeclaration:function(){return[t.isLikelyNode?this.fontWeight:this.fontStyle,t.isLikelyNode?this.fontStyle:this.fontWeight,this.fontSize+"px",t.isLikelyNode?'"'+this.fontFamily+'"':this.fontFamily].join(" ")},_initDummyElementForCufon:function(){var e=t.document.createElement("pre"),n=t.document.createElement("div");return n.appendChild(e),typeof G_vmlCanvasManager=="undefined"?e.innerHTML=this.text:e.innerText=this.text.replace(/\r?\n/gi,"\r"),e.style.fontSize=this.fontSize+"px",e.style.letterSpacing="normal",e},render:function(e,t){e.save(),this._render(e),!t&&this.active&&(this.drawBorders(e),this.drawControls(e)),e.restore()},toObject:function(e){return n(this.callSuper("toObject",e),{text:this.text,fontSize:this.fontSize,fontWeight:this.fontWeight,fontFamily:this.fontFamily,fontStyle:this.fontStyle,lineHeight:this.lineHeight,textDecoration:this.textDecoration,textShadow:this.textShadow,textAlign:this.textAlign,path:this.path,strokeStyle:this.strokeStyle,strokeWidth:this.strokeWidth,backgroundColor:this.backgroundColor,textBackgroundColor:this.textBackgroundColor,useNative:this.useNative})},toSVG:function(){var e=this.text.split(/\r?\n/),t=this.useNative?this.fontSize*this.lineHeight:-this._fontAscent-this._fontAscent/5*this.lineHeight,n=-(this.width/2),r=this.useNative?this.fontSize-1:this.height/2-e.length*this.fontSize-this._totalLineHeight,s=this._getSVGTextAndBg(t,n,e),o=this._getSVGShadows(t,e);return r+=this._fontAscent?this._fontAscent/5*this.lineHeight:0,['',s.textBgRects.join(""),"',o.join(""),s.textSpans.join(""),"",""].join("")},_getSVGShadows:function(e,n){var r=[],s,o,u,a,f=1;if(!this._shadows||!this._boundaries)return r;for(s=0,u=this._shadows.length;s",t.util.string.escapeXml(n[o]),""),f=1}else f++;return r},_getSVGTextAndBg:function(e,n,r){var s=[],o=[],u,a,f,l=1;this.backgroundColor&&this._boundaries&&o.push("');for(u=0,f=r.length;u",t.util.string.escapeXml(r[u]),""),l=1):l++;if(!this.textBackgroundColor||!this._boundaries)continue;o.push("')}return{textSpans:s,textBgRects:o}},_getFillAttributes:function(e){var n=e?new t.Color(e):"";return!n||!n.getSource()||n.getAlpha()===1?'fill="'+e+'"':'opacity="'+n.getAlpha()+'" fill="'+n.setAlpha(1).toRgb()+'"'},setColor:function(e){return this.set("fill",e),this},getText:function(){return this.text},_set:function(e,t){e==="fontFamily"&&this.path&&(this.path=this.path.replace(/(.*?)([^\/]*)(\.font\.js)/,"$1"+t+"$3")),this.callSuper("_set",e,t),e in s&&(this._initDimensions(),this.setCoords())}}),t.Text.ATTRIBUTE_NAMES="x y fill fill-opacity opacity stroke stroke-width transform font-family font-style font-weight font-size text-decoration".split(" "),t.Text.fromObject=function(e){return new t.Text(e.text,r(e))},t.Text.fromElement=function(e,n){if(!e)return null;var r=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES);n=t.util.object.extend(n?t.util.object.clone(n):{},r);var i=new t.Text(e.textContent,n);return i.set({left:i.getLeft()+i.getWidth diff --git a/dist/all.min.js.gz b/dist/all.min.js.gz index 19a99b6e6176f674d5a8eb36ccafb36a93b83588..ff479ad79e609d0ec6ce9292540c1970f4492ee5 100644 GIT binary patch delta 28417 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

  • ;>yuGIn@| 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 lNZ{5i-ibEZ`siN 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