(function($,window,document,undefined){var rmatrix=/progid:DXImageTransform\.Microsoft\.Matrix\(.*?\)/,rfxnum=/^([\+\-]=)?([\d+.\-]+)(.*)$/,rperc=/%/;var m=document.createElement('modernizr'),m_style=m.style;function stripUnits(arg){return parseFloat(arg)}function getVendorPrefix(){var property={transformProperty:'',MozTransform:'-moz-',WebkitTransform:'-webkit-',OTransform:'-o-',msTransform:'-ms-'};for(var p in property){if(typeof m_style[p]!='undefined'){return property[p]}}return null}function supportCssTransforms(){if(typeof(window.Modernizr)!=='undefined'){return Modernizr.csstransforms}var props=['transformProperty','WebkitTransform','MozTransform','OTransform','msTransform'];for(var i in props){if(m_style[props[i]]!==undefined){return true}}}var vendorPrefix=getVendorPrefix(),transformProperty=vendorPrefix!==null?vendorPrefix+'transform':false,transformOriginProperty=vendorPrefix!==null?vendorPrefix+'transform-origin':false;$jq.support.csstransforms=supportCssTransforms();if(vendorPrefix=='-ms-'){transformProperty='msTransform';transformOriginProperty='msTransformOrigin'}$jq.extend({transform:function(elem){elem.transform=this;this.$elem=$(elem);this.applyingMatrix=false;this.matrix=null;this.height=null;this.width=null;this.outerHeight=null;this.outerWidth=null;this.boxSizingValue=null;this.boxSizingProperty=null;this.attr=null;this.transformProperty=transformProperty;this.transformOriginProperty=transformOriginProperty}});$jq.extend($jq.transform,{funcs:['matrix','origin','reflect','reflectX','reflectXY','reflectY','rotate','scale','scaleX','scaleY','skew','skewX','skewY','translate','translateX','translateY']});$jq.fn.transform=function(funcs,options){return this.each(function(){var t=this.transform||new $jq.transform(this);if(funcs){t.exec(funcs,options)}})};$jq.transform.prototype={exec:function(funcs,options){options=$jq.extend(true,{forceMatrix:false,preserve:false},options);this.attr=null;if(options.preserve){funcs=$jq.extend(true,this.getAttrs(true,true),funcs)}else{funcs=$jq.extend(true,{},funcs)}this.setAttrs(funcs);if($jq.support.csstransforms&&!options.forceMatrix){return this.execFuncs(funcs)}else if($jq.browser.msie||($jq.support.csstransforms&&options.forceMatrix)){return this.execMatrix(funcs)}return false},execFuncs:function(funcs){var values=[];for(var func in funcs){if(func=='origin'){this[func].apply(this,$jq.isArray(funcs[func])?funcs[func]:[funcs[func]])}else if($jq.inArray(func,$jq.transform.funcs)!==-1){values.push(this.createTransformFunc(func,funcs[func]))}}this.$elem.css(transformProperty,values.join(' '));return true},execMatrix:function(funcs){var matrix,tempMatrix,args;var elem=this.$elem[0],_this=this;function normalPixels(val,i){if(rperc.test(val)){return parseFloat(val)/100*_this['safeOuter'+(i?'Height':'Width')]()}return toPx(elem,val)}var rtranslate=/translate[X|Y]?/,trans=[];for(var func in funcs){switch($jq.type(funcs[func])){case'array':args=funcs[func];break;case'string':args=$jq.map(funcs[func].split(','),$jq.trim);break;default:args=[funcs[func]]}if($jq.matrix[func]){if($jq.cssAngle[func]){args=$jq.map(args,$jq.angle.toDegree)}else if(!$jq.cssNumber[func]){args=$jq.map(args,normalPixels)}else{args=$jq.map(args,stripUnits)}tempMatrix=$jq.matrix[func].apply(this,args);if(rtranslate.test(func)){trans.push(tempMatrix)}else{matrix=matrix?matrix.x(tempMatrix):tempMatrix}}else if(func=='origin'){this[func].apply(this,args)}}matrix=matrix||$jq.matrix.identity();$jq.each(trans,function(i,val){matrix=matrix.x(val)});var a=parseFloat(matrix.e(1,1).toFixed(6)),b=parseFloat(matrix.e(2,1).toFixed(6)),c=parseFloat(matrix.e(1,2).toFixed(6)),d=parseFloat(matrix.e(2,2).toFixed(6)),tx=matrix.rows===3?parseFloat(matrix.e(1,3).toFixed(6)):0,ty=matrix.rows===3?parseFloat(matrix.e(2,3).toFixed(6)):0;if($jq.support.csstransforms&&vendorPrefix==='-moz-'){this.$elem.css(transformProperty,'matrix('+a+', '+b+', '+c+', '+d+', '+tx+'px, '+ty+'px)')}else if($jq.support.csstransforms){this.$elem.css(transformProperty,'matrix('+a+', '+b+', '+c+', '+d+', '+tx+', '+ty+')')}else if($jq.browser.msie){var filterType=', FilterType=\'nearest neighbor\'';var style=this.$elem[0].style;var matrixFilter='progid:DXImageTransform.Microsoft.Matrix('+'M11='+a+', M12='+c+', M21='+b+', M22='+d+', sizingMethod=\'auto expand\''+filterType+')';var filter=style.filter||$jq.curCSS(this.$elem[0],"filter")||"";style.filter=rmatrix.test(filter)?filter.replace(rmatrix,matrixFilter):filter?filter+' '+matrixFilter:matrixFilter;this.applyingMatrix=true;this.matrix=matrix;this.fixPosition(matrix,tx,ty);this.applyingMatrix=false;this.matrix=null}return true},origin:function(x,y){if($jq.support.csstransforms){if(typeof y==='undefined'){this.$elem.css(transformOriginProperty,x)}else{this.$elem.css(transformOriginProperty,x+' '+y)}return true}switch(x){case'left':x='0';break;case'right':x='100%';break;case'center':case undefined:x='50%'}switch(y){case'top':y='0';break;case'bottom':y='100%';break;case'center':case undefined:y='50%'}this.setAttr('origin',[rperc.test(x)?x:toPx(this.$elem[0],x)+'px',rperc.test(y)?y:toPx(this.$elem[0],y)+'px']);return true},createTransformFunc:function(func,value){if(func.substr(0,7)==='reflect'){var m=value?$jq.matrix[func]():$jq.matrix.identity();return'matrix('+m.e(1,1)+', '+m.e(2,1)+', '+m.e(1,2)+', '+m.e(2,2)+', 0, 0)'}if(func=='matrix'){if(vendorPrefix==='-moz-'){value[4]=value[4]?value[4]+'px':0;value[5]=value[5]?value[5]+'px':0}}return func+'('+($jq.isArray(value)?value.join(', '):value)+')'},fixPosition:function(matrix,tx,ty,height,width){var calc=new $jq.matrix.calc(matrix,this.safeOuterHeight(),this.safeOuterWidth()),origin=this.getAttr('origin');var offset=calc.originOffset(new $jq.matrix.V2(rperc.test(origin[0])?parseFloat(origin[0])/100*calc.outerWidth:parseFloat(origin[0]),rperc.test(origin[1])?parseFloat(origin[1])/100*calc.outerHeight:parseFloat(origin[1])));var sides=calc.sides();var cssPosition=this.$elem.css('position');if(cssPosition=='static'){cssPosition='relative'}var pos={top:0,left:0};var css={'position':cssPosition,'top':(offset.top+ty+sides.top+pos.top)+'px','left':(offset.left+tx+sides.left+pos.left)+'px','zoom':1};this.$elem.css(css)}};function toPx(elem,val){var parts=rfxnum.exec($jq.trim(val));if(parts[3]&&parts[3]!=='px'){var prop='paddingBottom',orig=$jq.style(elem,prop);$jq.style(elem,prop,val);val=cur(elem,prop);$jq.style(elem,prop,orig);return val}return parseFloat(val)}function cur(elem,prop){if(elem[prop]!=null&&(!elem.style||elem.style[prop]==null)){return elem[prop]}var r=parseFloat($jq.css(elem,prop));return r&&r>-10000?r:0}})(jQuery,this,this.document);(function($,window,document,undefined){$jq.extend($jq.transform.prototype,{safeOuterHeight:function(){return this.safeOuterLength('height')},safeOuterWidth:function(){return this.safeOuterLength('width')},safeOuterLength:function(dim){var funcName='outer'+(dim=='width'?'Width':'Height');if(!$jq.support.csstransforms&&$jq.browser.msie){dim=dim=='width'?'width':'height';if(this.applyingMatrix&&!this[funcName]&&this.matrix){var calc=new $jq.matrix.calc(this.matrix,1,1),ratio=calc.offset(),length=this.$elem[funcName]()/ratio[dim];this[funcName]=length;return length}else if(this.applyingMatrix&&this[funcName]){return this[funcName]}var side={height:['top','bottom'],width:['left','right']};var elem=this.$elem[0],outerLen=parseFloat($jq.curCSS(elem,dim,true)),boxSizingProp=this.boxSizingProperty,boxSizingValue=this.boxSizingValue;if(!this.boxSizingProperty){boxSizingProp=this.boxSizingProperty=_findBoxSizingProperty()||'box-sizing';boxSizingValue=this.boxSizingValue=this.$elem.css(boxSizingProp)||'content-box'}if(this[funcName]&&this[dim]==outerLen){return this[funcName]}else{this[dim]=outerLen}if(boxSizingProp&&(boxSizingValue=='padding-box'||boxSizingValue=='content-box')){outerLen+=parseFloat($jq.curCSS(elem,'padding-'+side[dim][0],true))||0+parseFloat($jq.curCSS(elem,'padding-'+side[dim][1],true))||0}if(boxSizingProp&&boxSizingValue=='content-box'){outerLen+=parseFloat($jq.curCSS(elem,'border-'+side[dim][0]+'-width',true))||0+parseFloat($jq.curCSS(elem,'border-'+side[dim][1]+'-width',true))||0}this[funcName]=outerLen;return outerLen}return this.$elem[funcName]()}});var _boxSizingProperty=null;function _findBoxSizingProperty(){if(_boxSizingProperty){return _boxSizingProperty}var property={boxSizing:'box-sizing',MozBoxSizing:'-moz-box-sizing',WebkitBoxSizing:'-webkit-box-sizing',OBoxSizing:'-o-box-sizing'},elem=document.body;for(var p in property){if(typeof elem.style[p]!='undefined'){_boxSizingProperty=property[p];return _boxSizingProperty}}return null}})(jQuery,this,this.document);(function($,window,document,undefined){var rfuncvalue=/([\w\-]*?)\((.*?)\)/g,attr='data-transform',rspace=/\s/,rcspace=/,\s?/;$jq.extend($jq.transform.prototype,{setAttrs:function(funcs){var string='',value;for(var func in funcs){value=funcs[func];if($jq.isArray(value)){value=value.join(', ')}string+=' '+func+'('+value+')'}this.attr=$jq.trim(string);this.$elem.attr(attr,this.attr)},setAttr:function(func,value){if($jq.isArray(value)){value=value.join(', ')}var transform=this.attr||this.$elem.attr(attr);if(!transform||transform.indexOf(func)==-1){this.attr=$jq.trim(transform+' '+func+'('+value+')');this.$elem.attr(attr,this.attr)}else{var funcs=[],parts;rfuncvalue.lastIndex=0;while(parts=rfuncvalue.exec(transform)){if(func==parts[1]){funcs.push(func+'('+value+')')}else{funcs.push(parts[0])}}this.attr=funcs.join(' ');this.$elem.attr(attr,this.attr)}},getAttrs:function(){var transform=this.attr||this.$elem.attr(attr);if(!transform){return{}}var attrs={},parts,value;rfuncvalue.lastIndex=0;while((parts=rfuncvalue.exec(transform))!==null){if(parts){value=parts[2].split(rcspace);attrs[parts[1]]=value.length==1?value[0]:value}}return attrs},getAttr:function(func){var attrs=this.getAttrs();if(typeof attrs[func]!=='undefined'){return attrs[func]}if(func==='origin'&&$jq.support.csstransforms){return this.$elem.css(this.transformOriginProperty).split(rspace)}else if(func==='origin'){return['50%','50%']}return $jq.cssDefault[func]||0}});if(typeof($jq.cssAngle)=='undefined'){$jq.cssAngle={}}$jq.extend($jq.cssAngle,{rotate:true,skew:true,skewX:true,skewY:true});if(typeof($jq.cssDefault)=='undefined'){$jq.cssDefault={}}$jq.extend($jq.cssDefault,{scale:[1,1],scaleX:1,scaleY:1,matrix:[1,0,0,1,0,0],origin:['50%','50%'],reflect:[1,0,0,1,0,0],reflectX:[1,0,0,1,0,0],reflectXY:[1,0,0,1,0,0],reflectY:[1,0,0,1,0,0]});if(typeof($jq.cssMultipleValues)=='undefined'){$jq.cssMultipleValues={}}$jq.extend($jq.cssMultipleValues,{matrix:6,origin:{length:2,duplicate:true},reflect:6,reflectX:6,reflectXY:6,reflectY:6,scale:{length:2,duplicate:true},skew:2,translate:2});$jq.extend($jq.cssNumber,{matrix:true,reflect:true,reflectX:true,reflectXY:true,reflectY:true,scale:true,scaleX:true,scaleY:true});$jq.each($jq.transform.funcs,function(i,func){$jq.cssHooks[func]={set:function(elem,value){var transform=elem.transform||new $jq.transform(elem),funcs={};funcs[func]=value;transform.exec(funcs,{preserve:true})},get:function(elem,computed){var transform=elem.transform||new $jq.transform(elem);return transform.getAttr(func)}}});$jq.each(['reflect','reflectX','reflectXY','reflectY'],function(i,func){$jq.cssHooks[func].get=function(elem,computed){var transform=elem.transform||new $jq.transform(elem);return transform.getAttr('matrix')||$jq.cssDefault[func]}})})(jQuery,this,this.document);(function($,window,document,undefined){var rfxnum=/^([+\-]=)?([\d+.\-]+)(.*)$/;var _animate=$jq.fn.animate;$jq.fn.animate=function(prop,speed,easing,callback){var optall=$jq.speed(speed,easing,callback),mv=$jq.cssMultipleValues;optall.complete=optall.old;if(!$jq.isEmptyObject(prop)){if(typeof optall.original==='undefined'){optall.original={}}$jq.each(prop,function(name,val){if(mv[name]||$jq.cssAngle[name]||(!$jq.cssNumber[name]&&$jq.inArray(name,$jq.transform.funcs)!==-1)){var specialEasing=null;if(jQuery.isArray(prop[name])){var mvlen=1,len=val.length;if(mv[name]){mvlen=(typeof mv[name].length==='undefined'?mv[name]:mv[name].length)}if(len>mvlen||(len<mvlen&&len==2)||(len==2&&mvlen==2&&isNaN(parseFloat(val[len-1])))){specialEasing=val[len-1];val.splice(len-1,1)}}optall.original[name]=val.toString();prop[name]=parseFloat(val)}})}return _animate.apply(this,[arguments[0],optall])};var prop='paddingBottom';function cur(elem,prop){if(elem[prop]!=null&&(!elem.style||elem.style[prop]==null)){}var r=parseFloat($jq.css(elem,prop));return r&&r>-10000?r:0}var _custom=$jq.fx.prototype.custom;$jq.fx.prototype.custom=function(from,to,unit){var multiple=$jq.cssMultipleValues[this.prop],angle=$jq.cssAngle[this.prop];if(multiple||(!$jq.cssNumber[this.prop]&&$jq.inArray(this.prop,$jq.transform.funcs)!==-1)){this.values=[];if(!multiple){multiple=1}var values=this.options.original[this.prop],currentValues=$(this.elem).css(this.prop),defaultValues=$jq.cssDefault[this.prop]||0;if(!$jq.isArray(currentValues)){currentValues=[currentValues]}if(!$jq.isArray(values)){if($jq.type(values)==='string'){values=values.split(',')}else{values=[values]}}var length=multiple.length||multiple,i=0;while(values.length<length){values.push(multiple.duplicate?values[0]:defaultValues[i]||0);i++}var start,parts,end,fx=this,transform=fx.elem.transform;orig=$jq.style(fx.elem,prop);$jq.each(values,function(i,val){if(currentValues[i]){start=currentValues[i]}else if(defaultValues[i]&&!multiple.duplicate){start=defaultValues[i]}else if(multiple.duplicate){start=currentValues[0]}else{start=0}if(angle){start=$jq.angle.toDegree(start)}else if(!$jq.cssNumber[fx.prop]){parts=rfxnum.exec($jq.trim(start));if(parts[3]&&parts[3]!=='px'){if(parts[3]==='%'){start=parseFloat(parts[2])/100*transform['safeOuter'+(i?'Height':'Width')]()}else{$jq.style(fx.elem,prop,start);start=cur(fx.elem,prop);$jq.style(fx.elem,prop,orig)}}}start=parseFloat(start);parts=rfxnum.exec($jq.trim(val));if(parts){end=parseFloat(parts[2]);unit=parts[3]||"px";if(angle){end=$jq.angle.toDegree(end+unit);unit='deg'}else if(!$jq.cssNumber[fx.prop]&&unit==='%'){start=(start/transform['safeOuter'+(i?'Height':'Width')]())*100}else if(!$jq.cssNumber[fx.prop]&&unit!=='px'){$jq.style(fx.elem,prop,(end||1)+unit);start=((end||1)/cur(fx.elem,prop))*start;$jq.style(fx.elem,prop,orig)}if(parts[1]){end=((parts[1]==="-="?-1:1)*end)+start}}else{end=val;unit=''}fx.values.push({start:start,end:end,unit:unit})})}return _custom.apply(this,arguments)};$jq.fx.multipleValueStep={_default:function(fx){$jq.each(fx.values,function(i,val){fx.values[i].now=val.start+((val.end-val.start)*fx.pos)})}};$jq.each(['matrix','reflect','reflectX','reflectXY','reflectY'],function(i,func){$jq.fx.multipleValueStep[func]=function(fx){var d=fx.decomposed,$m=$jq.matrix;m=$m.identity();d.now={};$jq.each(d.start,function(k){d.now[k]=parseFloat(d.start[k])+((parseFloat(d.end[k])-parseFloat(d.start[k]))*fx.pos);if(((k==='scaleX'||k==='scaleY')&&d.now[k]===1)||(k!=='scaleX'&&k!=='scaleY'&&d.now[k]===0)){return true}m=m.x($m[k](d.now[k]))});var val;$jq.each(fx.values,function(i){switch(i){case 0:val=parseFloat(m.e(1,1).toFixed(6));break;case 1:val=parseFloat(m.e(2,1).toFixed(6));break;case 2:val=parseFloat(m.e(1,2).toFixed(6));break;case 3:val=parseFloat(m.e(2,2).toFixed(6));break;case 4:val=parseFloat(m.e(1,3).toFixed(6));break;case 5:val=parseFloat(m.e(2,3).toFixed(6));break}fx.values[i].now=val})}});$jq.each($jq.transform.funcs,function(i,func){$jq.fx.step[func]=function(fx){var transform=fx.elem.transform||new $jq.transform(fx.elem),funcs={};if($jq.cssMultipleValues[func]||(!$jq.cssNumber[func]&&$jq.inArray(func,$jq.transform.funcs)!==-1)){($jq.fx.multipleValueStep[fx.prop]||$jq.fx.multipleValueStep._default)(fx);funcs[fx.prop]=[];$jq.each(fx.values,function(i,val){funcs[fx.prop].push(val.now+($jq.cssNumber[fx.prop]?'':val.unit))})}else{funcs[fx.prop]=fx.now+($jq.cssNumber[fx.prop]?'':fx.unit)}transform.exec(funcs,{preserve:true})}});$jq.each(['matrix','reflect','reflectX','reflectXY','reflectY'],function(i,func){$jq.fx.step[func]=function(fx){var transform=fx.elem.transform||new $jq.transform(fx.elem),funcs={};if(!fx.initialized){fx.initialized=true;if(func!=='matrix'){var values=$jq.matrix[func]().elements;var val;$jq.each(fx.values,function(i){switch(i){case 0:val=values[0];break;case 1:val=values[2];break;case 2:val=values[1];break;case 3:val=values[3];break;default:val=0}fx.values[i].end=val})}fx.decomposed={};var v=fx.values;fx.decomposed.start=$jq.matrix.matrix(v[0].start,v[1].start,v[2].start,v[3].start,v[4].start,v[5].start).decompose();fx.decomposed.end=$jq.matrix.matrix(v[0].end,v[1].end,v[2].end,v[3].end,v[4].end,v[5].end).decompose()}($jq.fx.multipleValueStep[fx.prop]||$jq.fx.multipleValueStep._default)(fx);funcs.matrix=[];$jq.each(fx.values,function(i,val){funcs.matrix.push(val.now)});transform.exec(funcs,{preserve:true})}})})(jQuery,this,this.document);(function($,window,document,undefined){var RAD_DEG=180/Math.PI;var RAD_GRAD=200/Math.PI;var DEG_RAD=Math.PI/180;var DEG_GRAD=2/1.8;var GRAD_DEG=0.9;var GRAD_RAD=Math.PI/200;var rfxnum=/^([+\-]=)?([\d+.\-]+)(.*)$/;$jq.extend({angle:{runit:/(deg|g?rad)/,radianToDegree:function(rad){return rad*RAD_DEG},radianToGrad:function(rad){return rad*RAD_GRAD},degreeToRadian:function(deg){return deg*DEG_RAD},degreeToGrad:function(deg){return deg*DEG_GRAD},gradToDegree:function(grad){return grad*GRAD_DEG},gradToRadian:function(grad){return grad*GRAD_RAD},toDegree:function(val){var parts=rfxnum.exec(val);if(parts){val=parseFloat(parts[2]);switch(parts[3]||'deg'){case'grad':val=$jq.angle.gradToDegree(val);break;case'rad':val=$jq.angle.radianToDegree(val);break}return val}return 0}}})})(jQuery,this,this.document);(function($,window,document,undefined){if(typeof($jq.matrix)=='undefined'){$jq.extend({matrix:{}})}var $m=$jq.matrix;$jq.extend($m,{V2:function(x,y){if($jq.isArray(arguments[0])){this.elements=arguments[0].slice(0,2)}else{this.elements=[x,y]}this.length=2},V3:function(x,y,z){if($jq.isArray(arguments[0])){this.elements=arguments[0].slice(0,3)}else{this.elements=[x,y,z]}this.length=3},M2x2:function(m11,m12,m21,m22){if($jq.isArray(arguments[0])){this.elements=arguments[0].slice(0,4)}else{this.elements=Array.prototype.slice.call(arguments).slice(0,4)}this.rows=2;this.cols=2},M3x3:function(m11,m12,m13,m21,m22,m23,m31,m32,m33){if($jq.isArray(arguments[0])){this.elements=arguments[0].slice(0,9)}else{this.elements=Array.prototype.slice.call(arguments).slice(0,9)}this.rows=3;this.cols=3}});var Matrix={e:function(row,col){var rows=this.rows,cols=this.cols;if(row>rows||col>rows||row<1||col<1){return 0}return this.elements[(row-1)*cols+col-1]},decompose:function(){var a=this.e(1,1),b=this.e(2,1),c=this.e(1,2),d=this.e(2,2),e=this.e(1,3),f=this.e(2,3);if(Math.abs(a*d-b*c)<0.01){return{rotate:0+'deg',skewX:0+'deg',scaleX:1,scaleY:1,translateX:0+'px',translateY:0+'px'}}var tx=e,ty=f;var sx=Math.sqrt(a*a+b*b);a=a/sx;b=b/sx;var k=a*c+b*d;c-=a*k;d-=b*k;var sy=Math.sqrt(c*c+d*d);c=c/sy;d=d/sy;k=k/sy;if((a*d-b*c)<0.0){a=-a;b=-b;sx=-sx}var rad2deg=$jq.angle.radianToDegree;var r=rad2deg(Math.atan2(b,a));k=rad2deg(Math.atan(k));return{rotate:r+'deg',skewX:k+'deg',scaleX:sx,scaleY:sy,translateX:tx+'px',translateY:ty+'px'}}};$jq.extend($m.M2x2.prototype,Matrix,{toM3x3:function(){var a=this.elements;return new $m.M3x3(a[0],a[1],0,a[2],a[3],0,0,0,1)},x:function(matrix){var isVector=typeof(matrix.rows)==='undefined';if(!isVector&&matrix.rows==3){return this.toM3x3().x(matrix)}var a=this.elements,b=matrix.elements;if(isVector&&b.length==2){return new $m.V2(a[0]*b[0]+a[1]*b[1],a[2]*b[0]+a[3]*b[1])}else if(b.length==a.length){return new $m.M2x2(a[0]*b[0]+a[1]*b[2],a[0]*b[1]+a[1]*b[3],a[2]*b[0]+a[3]*b[2],a[2]*b[1]+a[3]*b[3])}return false},inverse:function(){var d=1/this.determinant(),a=this.elements;return new $m.M2x2(d*a[3],d*-a[1],d*-a[2],d*a[0])},determinant:function(){var a=this.elements;return a[0]*a[3]-a[1]*a[2]}});$jq.extend($m.M3x3.prototype,Matrix,{x:function(matrix){var isVector=typeof(matrix.rows)==='undefined';if(!isVector&&matrix.rows<3){matrix=matrix.toM3x3()}var a=this.elements,b=matrix.elements;if(isVector&&b.length==3){return new $m.V3(a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2])}else if(b.length==a.length){return new $m.M3x3(a[0]*b[0]+a[1]*b[3]+a[2]*b[6],a[0]*b[1]+a[1]*b[4]+a[2]*b[7],a[0]*b[2]+a[1]*b[5]+a[2]*b[8],a[3]*b[0]+a[4]*b[3]+a[5]*b[6],a[3]*b[1]+a[4]*b[4]+a[5]*b[7],a[3]*b[2]+a[4]*b[5]+a[5]*b[8],a[6]*b[0]+a[7]*b[3]+a[8]*b[6],a[6]*b[1]+a[7]*b[4]+a[8]*b[7],a[6]*b[2]+a[7]*b[5]+a[8]*b[8])}return false},inverse:function(){var d=1/this.determinant(),a=this.elements;return new $m.M3x3(d*(a[8]*a[4]-a[7]*a[5]),d*(-(a[8]*a[1]-a[7]*a[2])),d*(a[5]*a[1]-a[4]*a[2]),d*(-(a[8]*a[3]-a[6]*a[5])),d*(a[8]*a[0]-a[6]*a[2]),d*(-(a[5]*a[0]-a[3]*a[2])),d*(a[7]*a[3]-a[6]*a[4]),d*(-(a[7]*a[0]-a[6]*a[1])),d*(a[4]*a[0]-a[3]*a[1]))},determinant:function(){var a=this.elements;return a[0]*(a[8]*a[4]-a[7]*a[5])-a[3]*(a[8]*a[1]-a[7]*a[2])+a[6]*(a[5]*a[1]-a[4]*a[2])}});var Vector={e:function(i){return this.elements[i-1]}};$jq.extend($m.V2.prototype,Vector);$jq.extend($m.V3.prototype,Vector)})(jQuery,this,this.document);(function($,window,document,undefined){if(typeof($jq.matrix)=='undefined'){$jq.extend({matrix:{}})}$jq.extend($jq.matrix,{calc:function(matrix,outerHeight,outerWidth){this.matrix=matrix;this.outerHeight=outerHeight;this.outerWidth=outerWidth}});$jq.matrix.calc.prototype={coord:function(x,y,z){z=typeof(z)!=='undefined'?z:0;var matrix=this.matrix,vector;switch(matrix.rows){case 2:vector=matrix.x(new $jq.matrix.V2(x,y));break;case 3:vector=matrix.x(new $jq.matrix.V3(x,y,z));break}return vector},corners:function(x,y){var save=!(typeof(x)!=='undefined'||typeof(y)!=='undefined'),c;if(!this.c||!save){y=y||this.outerHeight;x=x||this.outerWidth;c={tl:this.coord(0,0),bl:this.coord(0,y),tr:this.coord(x,0),br:this.coord(x,y)}}else{c=this.c}if(save){this.c=c}return c},sides:function(corners){var c=corners||this.corners();return{top:Math.min(c.tl.e(2),c.tr.e(2),c.br.e(2),c.bl.e(2)),bottom:Math.max(c.tl.e(2),c.tr.e(2),c.br.e(2),c.bl.e(2)),left:Math.min(c.tl.e(1),c.tr.e(1),c.br.e(1),c.bl.e(1)),right:Math.max(c.tl.e(1),c.tr.e(1),c.br.e(1),c.bl.e(1))}},offset:function(corners){var s=this.sides(corners);return{height:Math.abs(s.bottom-s.top),width:Math.abs(s.right-s.left)}},area:function(corners){var c=corners||this.corners();var v1={x:c.tr.e(1)-c.tl.e(1)+c.br.e(1)-c.bl.e(1),y:c.tr.e(2)-c.tl.e(2)+c.br.e(2)-c.bl.e(2)},v2={x:c.bl.e(1)-c.tl.e(1)+c.br.e(1)-c.tr.e(1),y:c.bl.e(2)-c.tl.e(2)+c.br.e(2)-c.tr.e(2)};return 0.25*Math.abs(v1.e(1)*v2.e(2)-v1.e(2)*v2.e(1))},nonAffinity:function(){var sides=this.sides(),xDiff=sides.top-sides.bottom,yDiff=sides.left-sides.right;return parseFloat(parseFloat(Math.abs((Math.pow(xDiff,2)+Math.pow(yDiff,2))/(sides.top*sides.bottom+sides.left*sides.right))).toFixed(8))},originOffset:function(toOrigin,fromOrigin){toOrigin=toOrigin?toOrigin:new $jq.matrix.V2(this.outerWidth*0.5,this.outerHeight*0.5);fromOrigin=fromOrigin?fromOrigin:new $jq.matrix.V2(0,0);var toCenter=this.coord(toOrigin.e(1),toOrigin.e(2));var fromCenter=this.coord(fromOrigin.e(1),fromOrigin.e(2));return{top:(fromCenter.e(2)-fromOrigin.e(2))-(toCenter.e(2)-toOrigin.e(2)),left:(fromCenter.e(1)-fromOrigin.e(1))-(toCenter.e(1)-toOrigin.e(1))}}}})(jQuery,this,this.document);(function($,window,document,undefined){if(typeof($jq.matrix)=='undefined'){$jq.extend({matrix:{}})}var $m=$jq.matrix,$m2x2=$m.M2x2,$m3x3=$m.M3x3;$jq.extend($m,{identity:function(size){size=size||2;var length=size*size,elements=new Array(length),mod=size+1;for(var i=0;i<length;i++){elements[i]=(i%mod)===0?1:0}return new $m['M'+size+'x'+size](elements)},matrix:function(){var args=Array.prototype.slice.call(arguments);switch(arguments.length){case 4:return new $m2x2(args[0],args[2],args[1],args[3]);case 6:return new $m3x3(args[0],args[2],args[4],args[1],args[3],args[5],0,0,1)}},reflect:function(){return new $m2x2(-1,0,0,-1)},reflectX:function(){return new $m2x2(1,0,0,-1)},reflectXY:function(){return new $m2x2(0,1,1,0)},reflectY:function(){return new $m2x2(-1,0,0,1)},rotate:function(deg){var rad=$jq.angle.degreeToRadian(deg),costheta=Math.cos(rad),sintheta=Math.sin(rad);var a=costheta,b=sintheta,c=-sintheta,d=costheta;return new $m2x2(a,c,b,d)},scale:function(sx,sy){sx=sx||sx===0?sx:1;sy=sy||sy===0?sy:sx;return new $m2x2(sx,0,0,sy)},scaleX:function(sx){return $m.scale(sx,1)},scaleY:function(sy){return $m.scale(1,sy)},skew:function(degX,degY){degX=degX||0;degY=degY||0;var radX=$jq.angle.degreeToRadian(degX),radY=$jq.angle.degreeToRadian(degY),x=Math.tan(radX),y=Math.tan(radY);return new $m2x2(1,x,y,1)},skewX:function(degX){return $m.skew(degX)},skewY:function(degY){return $m.skew(0,degY)},translate:function(tx,ty){tx=tx||0;ty=ty||0;return new $m3x3(1,0,tx,0,1,ty,0,0,1)},translateX:function(tx){return $m.translate(tx)},translateY:function(ty){return $m.translate(0,ty)}})})(jQuery,this,this.document);
