Updated string parsing for path creation and fixed small issues with VML.
authorDmitry Baranovskiy <dbaranovskiy@Fresh-Air.sydney.atlassian.com>
Tue, 11 Nov 2008 05:35:23 +0000 (16:35 +1100)
committerDmitry Baranovskiy <dbaranovskiy@Fresh-Air.sydney.atlassian.com>
Tue, 11 Nov 2008 05:35:23 +0000 (16:35 +1100)
raphael-packed.js
raphael.js

index 0c9a8c7..c3714b5 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Raphael 0.5.7b - JavaScript Vector Library
+ * Raphael 0.5.8b - JavaScript Vector Library
  *
  * Copyright (c) 2008 Dmitry Baranovskiy (raphaeljs.com)
  * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
  */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('9 1N=(I(q){9 r=I(){N r.3i.2x(r,O)};r.4E="0.5.4F";r.1b=q;9 C={};I 2h(a,b,c,d,e,f){7.m=[[a||1,b||0,0],[c||0,d||1,0],[e||0,f||0,1],]}C.1g=C.1i=C.1y=C.1A=I(x){N x};J(q=="2M"){2h.1s.2y=I(){N"4G:4H.4I.2h(4J="+7.m[0][0]+", 4K="+7.m[1][0]+", 4L="+7.m[0][1]+", 4M="+7.m[1][1]+", 4N="+7.m[2][0]+", 4O="+7.m[2][1]+", 4P=\'4Q 4R\', 4S=\'4T\')"};9 t=I(j,l,m){9 g=19.1w("1p:1Q"),2z=g.1j;2z.2i="2j";2z.1K=0;2z.1B=0;2z.11=m.11+"1C";2z.17=m.17+"1C";9 n=19.1w("1p:2k"),2A=n.1j;2A.11=m.11+"1C";2A.17=m.17+"1C";n.K="";J(j["3F"]){n.4U=j["3F"]}n.2N=7.2N;n.2O=7.2O;g.1c(n);m.1a.1c(g);9 p=1r z(n,g,m);u(p,j);J(j.1L){v(p,j.1L)}p.Q=23;p.1b="K";p.K=[];p.13={x:0,y:0,2r:0,2s:0,Q:23};p.2l="";p.1E=I(){7.Q=23;N 7};p.1F=I(){7.Q=2P;N 7};p.3G=I(){7.2l="";9 a=7.K;7.K=[];1o(9 i=0,1k=a.1e;i<1k;i++){J(a[i].1b!="3j"){7[a[i].1b+"3H"].2x(7,a[i].1R)}1m{7.2m()}}N 7};p.1X=I(x,y){9 d=7.Q?"m":"t";9 a=7.Q?m.1g:m.1y;9 b=7.Q?m.1i:m.1A;d+=T.15(a(14(x,10)))+" "+T.15(b(14(y,10)));7[0].K=7.2l+=d;7.13.x=(7.Q?0:7.13.x)+T.15(a(14(x,10)));7.13.y=(7.Q?0:7.13.y)+T.15(b(14(y,10)));7.13.Q=7.Q;7.K.1O({1b:"3I",1R:[].2Q.2B(O,0),24:7.Q});N 7};p.1l=I(x,y){9 d=7.Q?"l":"r";9 a=7.Q?m.1g:m.1y;9 b=7.Q?m.1i:m.1A;d+=T.15(a(14(x,10)))+" "+T.15(b(14(y,10)));7[0].K=7.2l+=d;7.13.x=(7.Q?0:7.13.x)+T.15(a(14(x,10)));7.13.y=(7.Q?0:7.13.y)+T.15(b(14(y,10)));7.13.Q=7.Q;7.K.1O({1b:"3J",1R:[].2Q.2B(O,0),24:7.Q});N 7};p.2C=I(a,b,c,e,f,g){f=(7.Q?0:7.13.x)+f;g=(7.Q?0:7.13.y)+g;9 h=7.13.x,2R=7.13.y,x=(h-f)/2,y=(2R-g)/2,k=(c==e?-1:1)*T.4V((a*a*b*b-a*a*y*y-b*b*x*x)/(a*a*y*y+b*b*x*x)),1I=k*a*y/b+(h+f)/2,1M=k*-b*x/a+(2R+g)/2,d=e?(7.Q?"4W":"4X"):(7.Q?"4Y":"4Z"),1g=7.Q?m.1g:m.1y,1i=7.Q?m.1i:m.1A,1K=T.15(1I-a),1B=T.15(1M-b);d+=[1K,1B,1K+a*2,1B+b*2,h,2R,T.15(1g(14(f,10))),T.15(1g(14(g,10)))].25(", ");7[0].K=7.2l+=d;7.13.x=(7.Q?0:7.13.x)+T.15(1g(14(f,10)));7.13.y=(7.Q?0:7.13.y)+T.15(1i(14(g,10)));7.13.Q=7.Q;7.K.1O({1b:"3K",1R:[].2Q.2B(O,0),24:7.Q});N 7};p.3L=I(a,b,c){J(!c){N 7.1l(a,b)}1m{9 p={};p.1g=7.Q?m.1g:m.1y;p.1i=7.Q?m.1i:m.1A;9 x=T.15(p.1g(T.15(14(a,10)*1h)/1h));9 y=T.15(p.1i(T.15(14(b,10)*1h)/1h));9 w=T.15(m.1y(T.15(14(c,10)*1h)/1h));9 d=7.Q?"c":"v";9 e=[7.13.x+w,7.13.y,x-w,y,x,y];d+=e.25(" ")+" ";7.13.x=(7.Q?0:7.13.x)+e[4];7.13.y=(7.Q?0:7.13.y)+e[5];7.13.2r=e[2];7.13.2s=e[3];7[0].K=7.2l+=d;7.K.1O({1b:"3M",1R:[].2Q.2B(O,0),24:7.Q});N 7}};p.1q=I(){9 d=7.Q?"c":"v";9 a=7.Q?m.1g:m.1y;9 b=7.Q?m.1i:m.1A;J(O.1e==6){7.13.x=(7.Q?0:7.13.x)+T.15(a(14(O[4],10)));7.13.y=(7.Q?0:7.13.y)+T.15(b(14(O[5],10)));7.13.2r=T.15(a(14(O[2],10)));7.13.2s=T.15(b(14(O[3],10)));d+=T.15(a(14(O[0],10)))+" "+T.15(b(14(O[1],10)))+" "+T.15(a(14(O[2],10)))+" "+T.15(b(14(O[3],10)))+" "+T.15(a(14(O[4],10)))+" "+T.15(b(14(O[5],10)))+" ";7.13.Q=7.Q}7[0].K=7.2l+=d;7.K.1O({1b:"3N",1R:[].2Q.2B(O,0),24:7.Q});N 7};p.2D=I(r,a){9 R=.3O*r,26=7.Q,o=7;J(26){7.1F();26=I(){o.1E()}}1m{26=I(){}}9 b={l:I(){N{u:I(){o.1q(-R,0,-r,-(r-R),-r,-r)},d:I(){o.1q(-R,0,-r,r-R,-r,r)}}},r:I(){N{u:I(){o.1q(R,0,r,-(r-R),r,-r)},d:I(){o.1q(R,0,r,r-R,r,r)}}},u:I(){N{r:I(){o.1q(0,-R,-(R-r),-r,r,-r)},l:I(){o.1q(0,-R,R-r,-r,-r,-r)}}},d:I(){N{r:I(){o.1q(0,R,-(R-r),r,r,r)},l:I(){o.1q(0,R,R-r,r,-r,r)}}}};b[a.36(0)]()[a.36(1)]();26();N o};p.2m=I(){7[0].K=(7.2l+="x e");N 7};J(1n l=="2n"){l=l.2e(/([3P])/37,",$1,").2e(/([^,])\\-/37,"$1,-");K=l.3k(",");9 i=1,1k=K.1e;3l(i<1k){38(K[i]){18"M":p.1E().1X(K[++i],K[++i]);1d;18"m":p.1F().1X(K[++i],K[++i]);1d;18"C":p.1E().1q(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"c":p.1F().1q(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"L":p.1E().1l(K[++i],K[++i]);1d;18"l":p.1F().1l(K[++i],K[++i]);1d;18"H":p.1E().1l(K[++i],0);1d;18"h":p.1F().1l(K[++i],0);1d;18"V":p.1E().1l(0,K[++i]);1d;18"v":p.1F().1l(0,K[++i]);1d;18"A":p.1E().2C(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"a":p.1F().2C(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"Z":18"z":p.2m();1d}i++}}N p};9 u=I(o,a){9 s=o[0].1j;o.P=o.P||{};1o(9 b 1t a){o.P[b]=a[b]}a["2f-3Q"]&&(s.50=a["2f-3Q"]);a["2f-3R"]&&(s.51=a["2f-3R"]);a["2f"]&&(s.2f=a["2f"]);a["2f-39"]&&(s.52=a["2f-39"]);J(1n a.1D!="1u"||1n a["1f-11"]!="1u"||1n a.1z!="1u"||1n a.1f!="1u"){o=o.2k||o[0];9 c=(o.2S("1z")&&o.2S("1z")[0])||19.1w("1p:1z");J("1z-1D"1t a||"1D"1t a){c.1D=((a["1z-1D"]+1||2)-1)*((a.1D+1||2)-1)}J(a.1z){c.27=23}J(c.27==1u||a.1z=="1S"){c.27=2P}J(c.27&&a.1z){c.28=a.1z}o.1c(c);9 d=(o.2S("1f")&&o.2S("1f")[0])||19.1w("1p:1f");J((a.1f&&a.1f!="1S")||a["1f-11"]||a["1f-1D"]||a["1f-2T"]){d.27=23}J(a.1f=="1S"||1n d.27=="1u"){d.27=2P}J(d.27&&a.1f){d.28=a.1f}d.1D=((a["1f-1D"]+1||2)-1)*((a.1D+1||2)-1);d.3S&&(d.3S=a["1f-53"]||"3T");d.3U=a["1f-3U"]||8;a["1f-3V"]&&(d.54={55:"56",3W:"3W",15:"15"}[a["1f-3V"]]||"3T");a["1f-11"]&&(d.39=(14(a["1f-11"],10)||1)*12/16);J(a["1f-2T"]){9 e=a["1f-2T"].2e(" ",",").3k(","),3m=[],3X=d.39;1o(9 i=0,1k=e.1e;i<1k;i++){9 f=e[i]/3X;J(!58(f)){3m.1O(f)}};d.59=3m.25(" ")}o.1c(d)}};9 v=I(o,a){o.P=o.P||{};o.P.1L=a;o=o.2k||o[0];9 b=o.2S("1z");J(b.1e){b=b[0]}1m{b=19.1w("1p:1z")}J(a.1v.1e){b.27=23;b.1b=(a.1b.3n()=="5a")?"1L":"5b";J(1n a.1v[0].28!="1u"){b.28=a.1v[0].28||"#1G"}J(1n a.1v[0].1D!="1u"){b.1D=a.1v[0].1D}J(1n a.1v[a.1v.1e-1].1D!="1u"){b.5c=a.1v[a.1v.1e-1].1D}J(1n a.1v[a.1v.1e-1].28!="1u"){b.5d=a.1v[a.1v.1e-1].28||"#1G"}9 c="";1o(9 i=1,1k=a.1v.1e-1;i<1k;i++){c+=a.1v[i].3a+" "+a.1v[i].28;J(i!=1k-1){c+=","}};J(c){b.5e=c}J(a.1Y){9 d=T.15(T.3Y((1J(a.1Y[3],10)-1J(a.1Y[1],10))/(1J(a.1Y[2],10)-1J(a.1Y[0],10)))*57.29)+5f;b.5g=d+5h}J(a.1b.3n()=="5i"){b.5j="0.5, 0.5";b.5k="0, 0";b.5l="1S"}}};9 z=I(b,c,d){9 e=0,5m=0,5n=0,5o=1;7[0]=b;7.X=0;7.Y=0;7.P={};7.1x=c;7.2a=d;7.3o=I(a){J(a==1u){N e}e+=a;7.1x.1j.5p=e;N 7}};z.1s.2E=I(a){9 b=7.1x.1j,2F=7[0].1j;1o(9 i 1t a){7.P[i]=a[i]}9 c=7.P,x,y,w,h;38(7.1b){18"2U":x=c.1I-c.r;y=c.1M-c.r;w=h=c.r*2;1d;18"2V":x=c.1I-c.2o;y=c.1M-c.2p;w=c.2o*2;h=c.2p*2;1d;18"2g":18"2G":x=c.x;y=c.y;w=c.w;h=c.h;1d;18"1P":7.3p.v=["m",T.15(c.x),", ",T.15(c.y-2),"l",T.15(c.x)+1,", ",T.15(c.y-2)].25("");N;3q:N}9 d=7.2a.11/2-w/2,1B=7.2a.17/2-h/2;b.2i="2j";b.1K=x-d+"1C";b.1B=y-1B+"1C";7.X=x-d;7.Y=y-1B;7.W=w;7.H=h;b.11=7.2a.11+"1C";b.17=7.2a.17+"1C";2F.2i="2j";2F.1B=1B+"1C";2F.1K=d+"1C";2F.11=w+"1C";2F.17=h+"1C"};z.1s.3Z=I(){7.1x.1j.3b="1S";N 7};z.1s.40=I(){7.1x.1j.3b="41";N 7};z.1s.3r=I(x,y){J(x==1u&&y==1u){N{x:7.X,y:7.Y}}7.X+=x;7.Y+=y;7.1x.1j.1K=7.X+"1C";7.1x.1j.1B=7.Y+"1C";N 7};z.1s.3s=I(a,b,c,d,e,f){3t=1r 2h(a,b,c,d,e,f);7.1x.1j.42=3t;N 7};z.1s.43=I(x,y){J(x==1u&&y==1u){N}y=y||x;J(x!=0&&!(x==1&&y==1)){9 a=T.15(x/T.44(x)),3c=T.15(y/T.44(y)),s=7[0].1j;J(a!=1||3c!=1){s.42=1r 2h(a,0,0,3c,0,0)}9 b=1J(s.11,10)*x*a;9 c=1J(s.17,10)*y*3c;9 d=1J(s.1K,10);9 e=1J(s.1B,10);s.1K=7.X=d+7.W/2-b/2;s.1B=7.Y=e+7.H/2-c/2;s.11=7.W=b;s.17=7.H=c}N 7};z.1s.2W=I(){N{x:7.1x.5q,y:7.1x.5r,11:7.1x.5s,17:7.1x.5t}};z.1s.2X=I(){7[0].1H.2b(7[0]);7.1x.1H.2b(7.1x);7.2k&&7.2k.1H.2b(7.2k)};z.1s.2H=I(){J(O.1e==1&&1n O[0]=="2n"){N 7.P[O[0]]}J(7.P&&O.1e==1&&O[0]45 46){9 a={};1o(9 i=0,1k=O[0].1e;i<1k;i++){a[O[0][i]]=7.P[O[0][i]]};N a}J(7[0].5u.3n()=="1Q"){9 b=7[0].3d;7.P=7.P||{};J(O.1e==2){7.P[O[0]]=O[1]}1m J(O.1e==1||1n O[0]=="2t"){1o(9 j 1t O[0]){7.P[j]=O[0][j]}}1o(9 i=0,1k=b.1e;i<1k;i++){7.2H.2x(1r 5v(b[i],7[0],7.2a),O)}}1m{9 c;J(O.1e==2){c={};c[O[0]]=O[1]}J(O.1e==1&&1n O[0]=="2t"){c=O[0]}J(c){u(7,c);7.2E(c);J(c.1L){v(7,c.1L)}J(c.1P&&7.1b=="1P"){7[0].2n=c.1P}J(c.2Y){7[0].2Y=c.2Y}}}N 7};z.1s.47=I(){7.1x.1H.1c(7.1x);N 7};z.1s.48=I(){J(7.1x.1H.1T!=7.1x){7.1x.1H.3e(7.1x,7.1x.1H.1T)}N 7};9 A=I(a,x,y,r){9 g=19.1w("1p:1Q");9 o=19.1w("1p:49");g.1c(o);a.1a.1c(g);9 b=1r z(o,g,a);u(b,{1f:"#1G",1z:"1S"});b.2E({x:x-r,y:y-r,w:r*2,h:r*2});b.P.1I=x;b.P.1M=y;b.P.r=r;b.1b="2U";N b};9 B=I(a,x,y,w,h,r){9 g=19.1w("1p:1Q");9 o=19.1w(r?"1p:5w":"1p:2g");J(r){o.5x=r/(T.2Z(w,h))}g.1c(o);a.1a.1c(g);9 b=1r z(o,g,a);u(b,{1f:"#1G"});b.2E({x:x,y:y,w:w,h:h});b.P.x=x;b.P.y=y;b.P.w=w;b.P.h=h;b.P.r=r;b.1b="2g";N b};9 D=I(a,x,y,b,c){9 g=19.1w("1p:1Q");9 o=19.1w("1p:49");g.1c(o);a.1a.1c(g);9 d=1r z(o,g,a);u(d,{1f:"#1G"});d.2E({x:x-b,y:y-c,w:b*2,h:c*2});d.P.1I=x;d.P.1M=y;d.P.2o=b;d.P.2p=c;d.1b="2V";N d};9 E=I(a,b,x,y,w,h){9 g=19.1w("1p:1Q");9 o=19.1w("1p:2G");o.5y=b;g.1c(o);a.1a.1c(g);9 c=1r z(o,g,a);c.1b="2G";c.2E({x:x,y:y,w:w,h:h});c.P.x=x;c.P.y=y;c.P.w=w;c.P.h=h;N c};9 F=I(a,x,y,b){9 g=19.1w("1p:1Q"),2I=g.1j;9 c=19.1w("1p:2k"),2A=c.1j;9 d=19.1w("1p:K"),5z=d.1j;d.v=["m",T.15(x),", ",T.15(y-2),"l",T.15(x)+1,", ",T.15(y-2)].25("");d.5A=23;2A.11=a.11;2A.17=a.17;2I.2i="2j";2I.1K=0;2I.1B=0;2I.11=a.11;2I.17=a.17;9 o=19.1w("1p:3p");o.2n=b;o.27=23;o.2N=a.2N;o.2O=a.2O;c.1c(o);c.1c(d);g.1c(c);a.1a.1c(g);9 e=1r z(o,g,a);e.2k=c;e.3p=d;e.1b="1P";e.P.x=x;e.P.y=y;e.P.w=1;e.P.h=1;N e};9 G=I(a){9 b=19.1w("1p:1Q"),2J=b.1j;2J.2i="2j";2J.1K=0;2J.1B=0;2J.11=a.11;2J.17=a.17;J(a.1a){a.1a.1c(b)}9 c=1r z(b,b,a);1o(9 f 1t a){J(f.36(0)!="4a"&&1n a[f]=="I"){c[f]=(I(f){N I(){9 e=a[f].2x(a,O);b.1c(e[0].1H);N e}})(f)}}c.1b="1Q";N c};r.3i=I(){9 d,11,17;J(1n O[0]=="2n"){d=19.4b(O[0]);11=O[1];17=O[2]}J(1n O[0]=="2t"){d=O[0];11=O[1];17=O[2]}J(1n O[0]=="4c"){d=1;x=O[0];y=O[1];11=O[2];17=O[3]}J(!d){4d 1r 4e("2M 4f 4g 4h.");}J(!19.4i["1p"]){19.4i.5B("1p","5C:5D-5E-5F:2a");19.5G().5H("1p\\\\:*","5I:4j(#3q#2M)")}9 c=19.1w("5J"),r=C.1a=19.1w("1p:1Q"),2c=c.1j,30=r.1j;C.11=11;C.17=17;11=11||"5K";17=17||"5L";2c.5M="2g(0 "+11+" "+17+" 0)";2c.2i="2j";30.11=11;30.17=17;r.2N=(11=="1h%"?11:14(11))+" "+(17=="1h%"?17:14(17));r.2O="0 0";9 b=19.1w("1p:2g"),31=b.1j;31.1K=31.1B=0;31.11=30.11;31.17=30.17;b.5N=b.5O="f";r.1c(b);c.1c(r);J(d==1){19.4k.1c(c);2c.2i="2j";2c.1K=x+"1C";2c.1B=y+"1C";2c.11=11;2c.17=17;d={1j:{11:11,17:17}}}1m{2c.11=d.1j.11=11;2c.17=d.1j.17=17;J(d.1T){d.3e(c,d.1T)}1m{d.1c(c)}}1o(9 e 1t C){d[e]=C[e]}d.3u=I(){9 a=[];1o(9 i=0,1k=r.3d.1e;i<1k;i++){J(r.3d[i]!=b){a.1O(r.3d[i])}}1o(i=0,1k=a.1e;i<1k;i++){r.2b(a[i])}};N d};C.2X=I(){C.1a.1H.1H.2b(C.1a.1H)}}J(q=="2K"){2h.1s.2y=I(){N"3s("+7.m[0][0]+", "+7.m[1][0]+", "+7.m[0][1]+", "+7.m[1][1]+", "+7.m[2][0]+", "+7.m[2][1]+")"};9 t=I(j,k,l){9 m=19.1Z(l.1U,"K");m.U("1z","1S");J(j){1o(9 n 1t j){J(j.1L){v(m,j.1L,l)}1m{m.U(n,j[n])}}}J(l.1a){l.1a.1c(m)}9 p=1r z(m,l);1o(9 n 1t j){p.P[n]=j[n]}p.Q=23;p.K=[];p.13={x:0,y:0,2r:0,2s:0};p.1E=I(){7.Q=23;N 7};p.1F=I(){7.Q=2P;N 7};p.3G=I(){7[0].U("d","5P 0");9 a=7.K;7.K=[];1o(9 i=0,1k=a.1e;i<1k;i++){J(a[i].1b!="3j"){7[a[i].1b+"3H"].2x(7,a[i].1R)}1m{7.2m()}}N 7};p.1X=I(x,y){9 d=7.Q?"M":"m";9 a=7.Q?l.1g:l.1y;9 b=7.Q?l.1i:l.1A;d+=a(14(x,10))+" "+b(14(y,10))+" ";9 c=7[0].2u("d")||"";7[0].U("d",c+d);7.13.x=l.1g(14(x,10));7.13.y=l.1i(14(y,10));7.K.1O({1b:"3I",1R:O,24:7.Q});N 7};p.1l=I(x,y){9 d=7.Q?"L":"l";9 a=7.Q?l.1g:l.1y;9 b=7.Q?l.1i:l.1A;d+=a(14(x,10))+" "+b(14(y,10))+" ";9 c=7[0].2u("d")||"";7[0].U("d",c+d);7.13.x=l.1g(14(x,10));7.13.y=l.1i(14(y,10));7.K.1O({1b:"3J",1R:O,24:7.Q});N 7};p.2C=I(a,b,c,e,x,y){9 d=7.Q?"A":"a";9 f=7.Q?l.1g:l.1y;9 g=7.Q?l.1i:l.1A;d+=[l.1y(14(a,10)),l.1A(14(b,10)),0,c,e,f(14(x,10)),g(14(y,10))].25(" ");9 h=7[0].2u("d")||"";7[0].U("d",h+d);7.13.x=l.1g(14(x,10));7.13.y=l.1i(14(y,10));7.K.1O({1b:"3K",1R:O,24:7.Q});N 7};p.3L=I(a,b,c){J(!c){N 7.1l(a,b)}1m{9 p={};p.1g=7.Q?l.1g:l.1y;p.1i=7.Q?l.1i:l.1A;9 x=p.1g(T.15(14(a,10)*1h)/1h);9 y=p.1i(T.15(14(b,10)*1h)/1h);9 w=l.1y(T.15(14(c,10)*1h)/1h);9 d=7.Q?"C":"c";9 e=[7.13.x+w,7.13.y,x-w,y,x,y];1o(9 i=0,1k=e.1e;i<1k;i++){d+=e[i]+" "}7.13.x=e[4];7.13.y=e[5];7.13.2r=e[2];7.13.2s=e[3];9 f=7[0].2u("d")||"";7[0].U("d",f+d);7.K.1O({1b:"3M",1R:O,24:7.Q});N 7}};p.1q=I(){9 p={};p.1g=7.Q?l.1g:l.1y;p.1i=7.Q?l.1i:l.1A;J(O.1e==6){9 d=7.Q?"C":"c";1o(9 i=0,1k=O.1e;i<1k;i++){d+=p[(i%2==0)?"1g":"1i"](T.15(14(O[i],10)*1h)/1h)+" "}7.13.x=p.1g((14(O[4],10)*1h)/1h);7.13.y=p.1i((14(O[5],10)*1h)/1h);7.13.2r=p.1g((14(O[2],10)*1h)/1h);7.13.2s=p.1i((14(O[3],10)*1h)/1h)}1m{J(O.1e==4){9 d=7.Q?"S":"s";1o(9 i=0,1k=O.1e;i<1k;i++){d+=p[i%2==0?"1g":"1i"]((14(O[i],10)*1h)/1h)+" "}}7.13.x=p.1g((14(O[2],10)*1h)/1h);7.13.y=p.1i((14(O[3],10)*1h)/1h);7.13.2r=p.1g((14(O[0],10)*1h)/1h);7.13.2s=p.1i((14(O[1],10)*1h)/1h)}9 a=7[0].2u("d")||"";7[0].U("d",a+d);7.K.1O({1b:"3N",1R:O,24:7.Q});N 7};p.2D=I(r,a){9 R=.3O*r,26=7.Q,o=7;J(26){7.1F();26=I(){o.1E()}}1m{26=I(){}}9 b={l:I(){N{u:I(){o.1q(-R,0,-r,-(r-R),-r,-r)},d:I(){o.1q(-R,0,-r,r-R,-r,r)}}},r:I(){N{u:I(){o.1q(R,0,r,-(r-R),r,-r)},d:I(){o.1q(R,0,r,r-R,r,r)}}},u:I(){N{r:I(){o.1q(0,-R,-(R-r),-r,r,-r)},l:I(){o.1q(0,-R,R-r,-r,-r,-r)}}},d:I(){N{r:I(){o.1q(0,R,-(R-r),r,r,r)},l:I(){o.1q(0,R,R-r,r,-r,r)}}}};b[a[0]]()[a[1]]();26();N o};p.2m=I(){9 a=7[0].2u("d")||"";7[0].U("d",a+"Z ");7.K.1O({1b:"3j"});N 7};J(1n k=="2n"){k=k.2e(/([3P])/37,",$1,").2e(/([^,])\\-/37,"$1,-");K=k.3k(",");9 i=1,1k=K.1e;3l(i<1k){38(K[i]){18"M":p.1E().1X(K[++i],K[++i]);1d;18"m":p.1F().1X(K[++i],K[++i]);1d;18"C":p.1E().1q(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"c":p.1F().1q(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"s":p.1F().1q(K[++i],K[++i],K[++i],K[++i]);1d;18"S":p.1E().1q(K[++i],K[++i],K[++i],K[++i]);1d;18"L":p.1E().1l(K[++i],K[++i]);1d;18"l":p.1F().1l(K[++i],K[++i]);1d;18"H":p.1E().1l(K[++i],0);1d;18"h":p.1F().1l(K[++i],0);1d;18"V":p.1E().1l(0,K[++i]);1d;18"v":p.1F().1l(0,K[++i]);1d;18"A":p.1E().2C(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"a":p.1F().2C(K[++i],K[++i],K[++i],K[++i],K[++i],K[++i]);1d;18"z":p.2m();1d}i++}}N p};9 v=I(o,a,b){9 c=19.1Z(b.1U,a.1b+"5Q");c.2Y="5R-1L-"+b.4l++;J(a.1Y&&a.1Y.1e){c.U("5S",a.1Y[0]);c.U("2R",a.1Y[1]);c.U("5T",a.1Y[2]);c.U("5U",a.1Y[3])}b.3f.1c(c);1o(9 i=0,1k=a.1v.1e;i<1k;i++){9 d=19.1Z(b.1U,"3v");d.U("3a",a.1v[i].3a?a.1v[i].3a:(i==0)?"0%":"1h%");d.U("3v-28",a.1v[i].28||"#5V");J(1n a.1v[i].1D!="1u"){d.U("3v-1D",a.1v[i].1D)}c.1c(d)};o.U("1z","4j(#"+c.2Y+")")};9 z=I(c,d){9 X=0,Y=0,32={33:0,x:0,y:0},2v=1,2w=1,3t=5W;7[0]=c;7.20=d;7.P=7.P||{};7.1V=[];7.3o=I(a){J(a==1u){N 32.33}9 b=7.2W();32.33+=a;J(32.33){7.1V[0]=("3o("+32.33+" "+(b.x+b.11/2)+" "+(b.y+b.17/2)+")")}1m{7.1V[0]=""}7[0].U("3g",7.1V.25(" "));N 7};7.3r=I(x,y){J(x==1u&&y==1u){N{x:X,y:Y}}X+=x;Y+=y;J(X&&Y){7.1V[1]="3r("+X+","+Y+")"}1m{7.1V[1]=""}7[0].U("3g",7.1V.25(" "));N 7};7.43=I(x,y){J(x==1u&&y==1u){N{x:2v,y:2w}}y=y||x;J(x!=0&&!(x==1&&y==1)){2v*=x;2w*=y;J(!(2v==1&&2w==1)){9 a=7.2W(),34=a.x*(1-2v)+(a.11/2-a.11*2v/2),4m=a.y*(1-2w)+(a.17/2-a.17*2w/2);7.1V[2]=1r 2h(2v,0,0,2w,34,4m)}1m{7.1V[2]=""}7[0].U("3g",7.1V.25(" "))}N 7}};z.1s.3Z=I(){7[0].1j.3b="1S";N 7};z.1s.40=I(){7[0].1j.3b="41";N 7};z.1s.3s=I(a,b,c,d,e,f){7.1V[3]=1r 2h(a,b,c,d,e,f);7[0].U("3g",7.1V.25(" "));N 7};z.1s.2X=I(){7[0].1H.2b(7[0])};z.1s.2W=I(){N 7[0].2W()};z.1s.2H=I(){J(O.1e==1&&1n O[0]=="2n"){N 7[0].2u(O[0])}J(O.1e==1&&O[0]45 46){9 a={};1o(9 j 1t O[0]){a[O[0][j]]=7.P[O[0][j]]}N a}J(O.1e==2){9 b=O[0],1W=O[1];7[b]=1W;7.P[b]=1W;38(b){18"2o":18"1I":18"x":7[0].U(b,7.20.1g(1W));1d;18"2p":18"1M":18"y":7[0].U(b,7.20.1i(1W));1d;18"11":7[0].U(b,7.20.1y(1W));1d;18"17":7[0].U(b,7.20.1A(1W));1d;18"1L":v(7[0],1W,7.20);1d;18"1f-2T":7[0].U(b,1W.2e(" ",","));1d;18"1P":J(7.1b=="1P"){7[0].2b(7[0].1T);7[0].1c(19.3w(1W))}1d;3q:9 c=b.2e(/(\\-.)/g,I(w){N w.2q(1).4n()});7[0].1j[c]=1W;7[0].U(b,1W);1d}}1m J(O.1e==1&&1n O[0]=="2t"){9 d=O[0];1o(9 e 1t d){7.P[e]=d[e];J(e=="1f-2T"){7[0].U(e,d[e].2e(" ",","))}1m J(e=="1P"&&7.1b=="1P"){7[0].2b(7[0].1T);7[0].1c(19.3w(d[e]))}1m{9 c=e.2e(/(\\-.)/g,I(w){N w.2q(1).4n()});7[0].1j[c]=d[e];7[0].U(e,d[e])}}J(d.1L){7.P.1L=d.1L;v(7[0],d.1L,7.20)}}N 7};z.1s.47=I(){7[0].1H.1c(7[0]);N 7};z.1s.48=I(){J(7[0].1H.1T!=7[0]){7[0].1H.3e(7[0],7[0].1H.1T)}N 7};9 A=I(a,x,y,r){9 b=19.1Z(a.1U,"2U");b.U("1I",a.1g(x));b.U("1M",a.1i(y));b.U("r",r);b.U("1z","1S");b.U("1f","#1G");J(a.1a){a.1a.1c(b)}9 c=1r z(b,a);c.P=c.P||{};c.P.1I=x;c.P.1M=y;c.P.r=r;c.P.1f="#1G";c.1b="2U";N c};9 B=I(a,x,y,w,h,r){9 b=19.1Z(a.1U,"2g");b.U("x",a.1g(x));b.U("y",a.1i(y));b.U("11",a.1y(w));b.U("17",a.1A(h));J(r){b.U("2o",r);b.U("2p",r)}b.U("1z","1S");b.U("1f","#1G");J(a.1a){a.1a.1c(b)}9 c=1r z(b,a);c.P=c.P||{};c.P.x=x;c.P.y=y;c.P.11=w;c.P.17=h;c.P.1f="#1G";J(r){c.P.2o=c.P.2p=r}c.1b="2g";N c};9 D=I(a,x,y,b,c){9 d=19.1Z(a.1U,"2V");d.U("1I",a.1g(x));d.U("1M",a.1i(y));d.U("2o",a.1y(b));d.U("2p",a.1A(c));d.U("1z","1S");d.U("1f","#1G");J(a.1a){a.1a.1c(d)}9 e=1r z(d,a);e.P=e.P||{};e.P.1I=x;e.P.1M=y;e.P.2o=b;e.P.2p=c;e.P.1f="#1G";e.1b="2V";N e};9 E=I(a,b,x,y,w,h){9 c=19.1Z(a.1U,"2G");c.U("x",a.1g(x));c.U("y",a.1i(y));c.U("11",a.1y(w));c.U("17",a.1A(h));c.5X(a.3x,"5Y",b);J(a.1a){a.1a.1c(c)}9 d=1r z(c,a);d.P=d.P||{};d.P.x=x;d.P.y=y;d.P.11=w;d.P.17=h;d.1b="2G";N d};9 F=I(a,x,y,b){9 c=19.1Z(a.1U,"1P");c.U("x",x);c.U("y",y);c.U("1P-5Z","60");c.U("1z","#1G");J(b){c.1c(19.3w(b))}J(a.1a){a.1a.1c(c)}9 d=1r z(c,a);d.P=d.P||{};d.P.x=x;d.P.y=y;d.P.1z="#1G";d.1b="1P";N d};9 G=I(a){9 b=19.1Z(a.1U,"g");J(a.1a){a.1a.1c(b)}9 i=1r z(b,a);1o(9 f 1t a){J(f[0]!="4a"&&1n a[f]=="I"){i[f]=(I(f){N I(){9 e=a[f].2x(a,O);b.1c(e[0]);N e}})(f)}}i.1b="1Q";N i};r.3i=I(){J(1n O[0]=="2n"){9 a=19.4b(O[0]);9 b=O[1];9 c=O[2]}J(1n O[0]=="2t"){9 a=O[0];9 b=O[1];9 c=O[2]}J(1n O[0]=="4c"){9 a=1,x=O[0],y=O[1],b=O[2],c=O[3]}J(!a){4d 1r 4e("2K 4f 4g 4h.");}C.1a=19.1Z(C.1U,"20");C.1a.U("11",b||4o);C.11=b||4o;C.1a.U("17",c||4p);C.17=c||4p;J(a==1){19.4k.1c(C.1a);C.1a.1j.2i="2j";C.1a.1j.1K=x+"1C";C.1a.1j.1B=y+"1C"}1m{J(a.1T){a.3e(C.1a,a.1T)}1m{a.1c(C.1a)}}a={1a:C.1a,3u:I(){3l(7.1a.1T){7.1a.2b(7.1a.1T)}7.3f=19.1Z(C.1U,"3f");7.4l=0;7.1a.1c(7.3f)}};1o(9 d 1t C){J(d!="61"){a[d]=C[d]}}a.3u();N a};C.2X=I(){C.1a.1H.2b(C.1a)};C.1U="4q://4r.4s.4t/62/20";C.3x="4q://4r.4s.4t/63/3x"}J(q=="2M"||q=="2K"){C.2U=I(x,y,r){N A(7,x,y,r)};C.2g=I(x,y,w,h,r){N B(7,x,y,w,h,r)};C.2V=I(x,y,a,b){N D(7,x,y,a,b)};C.K=I(a,b){N t(a,b,7)};C.2G=I(a,x,y,w,h){N E(7,a,x,y,w,h)};C.1P=I(x,y,a){N F(7,x,y,a)};C.1Q=I(){N G(7)};C.64=I(x,y,w,h,r){J(r&&1J(r,10)){N 7.K({1f:"#1G"}).1X(x+r,y).1l(x+w-r,y).2D(r,"65").1l(x+w,y+h-r).2D(r,"66").1l(x+r,y+h).2D(r,"67").1l(x,y+r).2D(r,"68").2m()}N 7.K({1f:"#1G"}).1X(x,y).1l(x+w,y).1l(x+w,y+h).1l(x,y+h).2m()};C.69=I(x,y,w,h,a,b,c){c=c||"#1G";9 p=7.K({1f:c,"1f-11":1}).1X(x,y).1l(x+w,y).1l(x+w,y+h).1l(x,y+h).1l(x,y);1o(9 i=1;i<b;i++){p.1X(x,y+i*T.15(h/b)).1l(x+w,y+i*T.15(h/b))}1o(9 i=1;i<a;i++){p.1X(x+i*T.15(w/a),y).1l(x+i*T.15(w/a),y+h)}N p};C.6a=I(a,b,c,d,w,h){9 e=(c-a)/w;9 f=(d-b)/h;7.1g=I(x){N a+x*e};7.1i=I(y){N b+y*f};7.1y=I(w){N w*e};7.1A=I(h){N h*f}};C.6b=I(){7.1g=7.1i=7.1y=7.1A=I(x){N x}};C.3y=I(){J(r.1b=="2K"){9 a=C.2g(-C.11,-C.17,C.11*3,C.17*3).2H({1f:"1S"});4u(I(){a.2X()},0)}};z.1s.6c=I(x,y,d,e){6d(7.4v);J("1I"1t 7.P||"x"1t 7.P){9 f=("1I"1t 7.P),X=7.P.1I||7.P.x,Y=7.P.1M||7.P.y;J(x==X&&y==Y){N 7}9 g=y-Y,34=x-X,3h=g/34,4w=Y-3h*X,4x=T.3Y(7.3h);7.3z=7.6e*T.6f(4x);J(x<X){7.3z=-7.3z}9 h=1r 4y(),35=7;(I(){9 a=(1r 4y()).4z()-h.4z();J(a<d){9 b=X+a*34/d;9 c=b*3h+4w;35.2H(f?{1I:b,1M:c}:{x:b,y:c});35.4v=4u(O.3A,1);C.3y()}1m{35.2H(f?{1I:x,1M:y}:{x:x,y:y});C.3y();e&&e.2B(35)}})()}N 7};N r}1m{N I(){}}})((!(3B.4A&&3B.4A.6g==2))?"2M":"2K");1N.2a=!(1N.20=(1N.1b=="2K"));J(1N.2a&&3B.6h){1N.1b="6i 6j";1N.2a=1N.20=2P}1N.2y=I(){N"6k 6l 6m "+7.1b};1N.4B=I(a,c,d){J(1n a=="2t"&&"h"1t a&&"s"1t a&&"b"1t a){d=a.b;c=a.s;a=a.h}9 e,21,22;J(d==0){N{r:0,g:0,b:0,3C:"#1G"}}1m{9 i=T.6n(a*6),f=(a*6)-i,p=d*(1-c),q=d*(1-(c*f)),t=d*(1-(c*(1-f)));[I(){e=d;21=t;22=p},I(){e=q;21=d;22=p},I(){e=p;21=d;22=t},I(){e=p;21=q;22=d},I(){e=t;21=p;22=d},I(){e=d;21=p;22=q},I(){e=d;21=t;22=p},][i]()}9 h={r:e,g:21,b:22};e*=2L;21*=2L;22*=2L;9 r=T.15(e).2y(16);J(r.1e==1){r="0"+r}9 g=T.15(21).2y(16);J(g.1e==1){g="0"+g}9 b=T.15(22).2y(16);J(b.1e==1){b="0"+b}h.3C="#"+r+g+b;N h};1N.6o=I(a,b,c){J(1n a=="2t"&&"r"1t a&&"g"1t a&&"b"1t a){c=a.b;b=a.g;a=a.r}J(a.36(0)=="#"){J(a.1e==4){c=1J(a.2q(3),16);b=1J(a.2q(2,3),16);a=1J(a.2q(1,2),16)}1m{c=1J(a.2q(5),16);b=1J(a.2q(3,5),16);a=1J(a.2q(1,3),16)}}J(a>1||b>1||c>1){a/=2L;b/=2L;c/=2L}9 d=T.6p(a,b,c),2Z=T.2Z(a,b,c),2d,3D,4C=d;J(2Z==d){N{h:0,s:0,b:d}}1m{9 e=(d-2Z);3D=e/d;J(a==d){2d=(b-c)/e}1m J(b==d){2d=2+((c-a)/e)}1m{2d=4+((a-b)/e)}2d/=6;J(2d<0){2d+=1}J(2d>1){2d-=1}}N{h:2d,s:3D,b:4C}};1N.4D=I(a){9 b=O.3A.3E=O.3A.3E||{h:0,s:1,b:a||.6q};9 c=7.4B(b.h,b.s,b.b);b.h+=.6r;J(b.h>1){b.h=0;b.s-=.2;J(b.s<=0){b={h:0,s:1,b:b.b}}}N c.3C};1N.4D.6s=I(){7.3E=1u};',62,401,'|||||||this||var|||||||||||||||||||||||||||||||||||function|if|path|||return|arguments|attrs|isAbsolute|||Math|setAttribute|||||||width||last|parseFloat|round||height|case|document|canvas|type|appendChild|break|length|stroke|_getX|100|_getY|style|ii|lineTo|else|typeof|for|rvml|curveTo|new|prototype|in|undefined|dots|createElement|Group|_getW|fill|_getH|top|px|opacity|absolutely|relatively|000|parentNode|cx|parseInt|left|gradient|cy|Raphael|push|text|group|arg|none|firstChild|svgns|transformations|value|moveTo|vector|createElementNS|svg|green|blue|true|pos|join|rollback|on|color||vml|removeChild|cs|hue|replace|font|rect|Matrix|position|absolute|shape|Path|andClose|string|rx|ry|substring|bx|by|object|getAttribute|ScaleX|ScaleY|apply|toString|gl|ol|call|arcTo|addRoundedCorner|setBox|os|image|attr|gs|els|SVG|255|VML|coordsize|coordorigin|false|slice|y1|getElementsByTagName|dasharray|circle|ellipse|getBBox|remove|id|min|rs|bs|Rotation|deg|dx|that|charAt|ig|switch|weight|offset|display|diry|childNodes|insertBefore|defs|transform|coeff|_create|end|split|while|dashesn|toLowerCase|rotate|textpath|default|translate|matrix|tMatrix|clear|stop|createTextNode|xlink|safari|xs|callee|window|hex|saturation|start|class|redraw|To|move|line|arc|cplineTo|cpline|curve|5522|mzlhvcsqta|family|size|joinstyle|miter|miterlimit|linecap|square|str|atan|hide|show|block|filter|scale|abs|instanceof|Array|toFront|toBack|oval|_|getElementById|number|throw|Error|container|not|found|namespaces|url|body|gradients|dy|toUpperCase|320|200|http|www|w3|org|setTimeout|animation_in_progress|plus|alpha|Date|getTime|SVGPreserveAspectRatio|hsb2rgb|brightness|getColor|version|7b|progid|DXImageTransform|Microsoft|M11|M12|M21|M22|Dx|Dy|sizingmethod|auto|expand|filtertype|bilinear|className|sqrt|wa|wr|at|ar|fontFamily|fontSize|fontWeight|linejoin|endcap|butt|flat||isNaN|dashstyle|linear|gradientradial|opacity2|color2|colors|180|angle|90|radial|focusposition|focussize|method|RotX|RotY|Scale|rotation|offsetLeft|offsetTop|offsetWidth|offsetHeight|tagName|item|roundrect|arcsize|src|ps|textpathok|add|urn|schemas|microsoft|com|createStyleSheet|addRule|behavior|div|320px|200px|clip|filled|stroked|M0|Gradient|raphael|x1|x2|y2|fff|null|setAttributeNS|href|anchor|middle|create|2000|1999|linerect|rd|dl|lu|ur|drawGrid|setGrid|clearGrid|animateTo|clearTimeout|step|cos|SVG_PRESERVEASPECTRATIO_XMINYMIN|CanvasRenderingContext2D|Canvas|only|Your|browser|supports|floor|rgb2hsb|max|75|075|reset'.split('|'),0,{}))
\ No newline at end of file
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('9 1K=(I(q){9 r=I(){J r.3i.2v(r,N)};r.4F="0.5.4G";r.19=q;9 C={};I 2f(a,b,c,d,e,f){7.m=[[a||1,b||0,0],[c||0,d||1,0],[e||0,f||0,1],]}C.1e=C.1g=C.1w=C.1y=I(x){J x};K(q=="2K"){2f.1p.2w=I(){J"4H:4I.4J.2f(4K="+7.m[0][0]+", 4L="+7.m[1][0]+", 4M="+7.m[0][1]+", 4N="+7.m[1][1]+", 4O="+7.m[2][0]+", 4P="+7.m[2][1]+", 4Q=\'4R 4S\', 4T=\'4U\')"};9 t=I(j,l,m){9 g=17.1u("1m:1N"),2x=g.1h;2x.2g="2h";2x.1H=0;2x.1z=0;2x.U=m.U+"1A";2x.14=m.14+"1A";9 n=17.1u("1m:2i"),2y=n.1h;2y.U=m.U+"1A";2y.14=m.14+"1A";n.1a="";K(j["3F"]){n.4V=j["3F"]}n.2L=7.2L;n.2M=7.2M;g.1b(n);m.18.1b(g);9 p=1n z(n,g,m);u(p,j);K(j.1I){v(p,j.1I)}p.Q=20;p.19="1a";p.1a=[];p.O={x:0,y:0,2o:0,2p:0,Q:20};p.2j="";p.2z=I(){7.Q=20;J 7};p.35=I(){7.Q=2N;J 7};p.3G=I(){7.2j="";9 a=7.1a;7.1a=[];1l(9 i=0,1i=a.1d;i<1i;i++){K(a[i].19!="3j"){7[a[i].19+"3H"].2v(7,a[i].1O)}1j{7.2q()}}J 7};p.2b=I(x,y){9 d=7.Q?"m":"t";9 a=7.Q?m.1e:m.1w;9 b=7.Q?m.1g:m.1y;d+=11.15(a(13(x,10)))+" "+11.15(b(13(y,10)));7[0].1a=7.2j+=d;7.O.x=(7.Q?0:7.O.x)+a(13(x,10));7.O.y=(7.Q?0:7.O.y)+b(13(y,10));7.O.Q=7.Q;7.1a.1L({19:"3I",1O:[].2O.2A(N,0),21:7.Q});J 7};p.1o=I(x,y){9 d=7.Q?"l":"r";9 a=7.Q?m.1e:m.1w;9 b=7.Q?m.1g:m.1y;d+=11.15(a(13(x,10)))+" "+11.15(b(13(y,10)));7[0].1a=7.2j+=d;7.O.x=(7.Q?0:7.O.x)+a(13(x,10));7.O.y=(7.Q?0:7.O.y)+b(13(y,10));7.O.Q=7.Q;7.1a.1L({19:"3J",1O:[].2O.2A(N,0),21:7.Q});J 7};p.36=I(a,b,c,e,f,g){f=(7.Q?0:7.O.x)+f;g=(7.Q?0:7.O.y)+g;9 h=7.O.x,2P=7.O.y,x=(h-f)/2,y=(2P-g)/2,k=(c==e?-1:1)*11.4W((a*a*b*b-a*a*y*y-b*b*x*x)/(a*a*y*y+b*b*x*x)),1E=k*a*y/b+(h+f)/2,1J=k*-b*x/a+(2P+g)/2,d=e?(7.Q?"4X":"4Y"):(7.Q?"4Z":"50"),1e=7.Q?m.1e:m.1w,1g=7.Q?m.1g:m.1y,1H=11.15(1E-a),1z=11.15(1J-b);d+=[1H,1z,1H+a*2,1z+b*2,h,2P,11.15(1e(13(f,10))),11.15(1e(13(g,10)))].22(", ");7[0].1a=7.2j+=d;7.O.x=(7.Q?0:7.O.x)+1e(13(f,10));7.O.y=(7.Q?0:7.O.y)+1g(13(g,10));7.O.Q=7.Q;7.1a.1L({19:"3K",1O:[].2O.2A(N,0),21:7.Q});J 7};p.3L=I(a,b,c){K(!c){J 7.1o(a,b)}1j{9 p={};p.1e=7.Q?m.1e:m.1w;p.1g=7.Q?m.1g:m.1y;9 x=11.15(p.1e(11.15(13(a,10)*1f)/1f));9 y=11.15(p.1g(11.15(13(b,10)*1f)/1f));9 w=11.15(m.1w(11.15(13(c,10)*1f)/1f));9 d=7.Q?"c":"v";9 e=[11.15(7.O.x)+w,11.15(7.O.y),x-w,y,x,y];d+=e.22(" ")+" ";7.O.x=(7.Q?0:7.O.x)+e[4];7.O.y=(7.Q?0:7.O.y)+e[5];7.O.2o=e[2];7.O.2p=e[3];7[0].1a=7.2j+=d;7.1a.1L({19:"3M",1O:[].2O.2A(N,0),21:7.Q});J 7}};p.1q=I(){9 d=7.Q?"c":"v";9 a=7.Q?m.1e:m.1w;9 b=7.Q?m.1g:m.1y;K(N.1d==6){7.O.x=(7.Q?0:7.O.x)+a(13(N[4],10));7.O.y=(7.Q?0:7.O.y)+b(13(N[5],10));7.O.2o=11.15(a(13(N[2],10)));7.O.2p=11.15(b(13(N[3],10)));d+=11.15(a(13(N[0],10)))+" "+11.15(b(13(N[1],10)))+" "+11.15(a(13(N[2],10)))+" "+11.15(b(13(N[3],10)))+" "+11.15(a(13(N[4],10)))+" "+11.15(b(13(N[5],10)))+" ";7.O.Q=7.Q}7[0].1a=7.2j+=d;7.1a.1L({19:"3N",1O:[].2O.2A(N,0),21:7.Q});J 7};p.2B=I(r,a){9 R=.3O*r,23=7.Q,o=7;K(23){7.35();23=I(){o.2z()}}1j{23=I(){}}9 b={l:I(){J{u:I(){o.1q(-R,0,-r,-(r-R),-r,-r)},d:I(){o.1q(-R,0,-r,r-R,-r,r)}}},r:I(){J{u:I(){o.1q(R,0,r,-(r-R),r,-r)},d:I(){o.1q(R,0,r,r-R,r,r)}}},u:I(){J{r:I(){o.1q(0,-R,-(R-r),-r,r,-r)},l:I(){o.1q(0,-R,R-r,-r,-r,-r)}}},d:I(){J{r:I(){o.1q(0,R,-(R-r),r,r,r)},l:I(){o.1q(0,R,R-r,r,-r,r)}}}};b[a.37(0)]()[a.37(1)]();23();J o};p.2q=I(){7[0].1a=(7.2j+="x e");J 7};K(1k l=="2k"){l=l.2c(/([3P])/38,",$1,").2c(/([^,])\\-/38,"$1,-");1a=l.3k(",");9 i=1,1i=1a.1d;p.2z();3l(i<1i){K(C.2Q[1a[i]]){i=C.2Q[1a[i]](p,1a,i)}i++}}J p};9 u=I(o,a){9 s=o[0].1h;o.P=o.P||{};1l(9 b 1r a){o.P[b]=a[b]}a["2d-3Q"]&&(s.51=a["2d-3Q"]);a["2d-3R"]&&(s.52=a["2d-3R"]);a["2d"]&&(s.2d=a["2d"]);a["2d-39"]&&(s.53=a["2d-39"]);K(1k a.1B!="1s"||1k a["1c-U"]!="1s"||1k a.1x!="1s"||1k a.1c!="1s"){o=o.2i||o[0];9 c=(o.2R("1x")&&o.2R("1x")[0])||17.1u("1m:1x");K("1x-1B"1r a||"1B"1r a){c.1B=((a["1x-1B"]+1||2)-1)*((a.1B+1||2)-1)}K(a.1x){c.24=20}K(c.24==1s||a.1x=="1P"){c.24=2N}K(c.24&&a.1x){c.25=a.1x}o.1b(c);9 d=(o.2R("1c")&&o.2R("1c")[0])||17.1u("1m:1c");K((a.1c&&a.1c!="1P")||a["1c-U"]||a["1c-1B"]||a["1c-2S"]){d.24=20}K(a.1c=="1P"||1k d.24=="1s"){d.24=2N}K(d.24&&a.1c){d.25=a.1c}d.1B=((a["1c-1B"]+1||2)-1)*((a.1B+1||2)-1);a["1c-3S"]&&(d.54=a["1c-3S"]||"3T");d.3U=a["1c-3U"]||8;a["1c-3V"]&&(d.55={56:"58",3W:"3W",15:"15"}[a["1c-3V"]]||"3T");a["1c-U"]&&(d.39=(13(a["1c-U"],10)||1)*12/16);K(a["1c-2S"]){9 e=a["1c-2S"].2c(" ",",").3k(","),3m=[],3X=d.39;1l(9 i=0,1i=e.1d;i<1i;i++){9 f=e[i]/3X;K(!59(f)){3m.1L(f)}};d.5a=3m.22(" ")}o.1b(d)}};9 v=I(o,a){o.P=o.P||{};o.P.1I=a;o=o.2i||o[0];9 b=o.2R("1x");K(b.1d){b=b[0]}1j{b=17.1u("1m:1x")}K(a.1t.1d){b.24=20;b.19=(a.19.3n()=="5b")?"1I":"5c";K(1k a.1t[0].25!="1s"){b.25=a.1t[0].25||"#1C"}K(1k a.1t[0].1B!="1s"){b.1B=a.1t[0].1B}K(1k a.1t[a.1t.1d-1].1B!="1s"){b.5d=a.1t[a.1t.1d-1].1B}K(1k a.1t[a.1t.1d-1].25!="1s"){b.5e=a.1t[a.1t.1d-1].25||"#1C"}9 c="";1l(9 i=1,1i=a.1t.1d-1;i<1i;i++){c+=a.1t[i].3a+" "+a.1t[i].25;K(i!=1i-1){c+=","}};K(c){b.5f=c}K(a.1U){9 d=11.15(11.3Y((1G(a.1U[3],10)-1G(a.1U[1],10))/(1G(a.1U[2],10)-1G(a.1U[0],10)))*57.29)+5g;b.5h=d+5i}K(a.19.3n()=="5j"){b.5k="0.5, 0.5";b.5l="0, 0";b.5m="1P"}}};9 z=I(b,c,d){9 e=0,5n=0,5o=0,5p=1;7[0]=b;7.X=0;7.Y=0;7.P={};7.1v=c;7.26=d;7.3o=I(a){K(a==1s){J e}e+=a;7.1v.1h.5q=e;J 7}};z.1p.2C=I(a){9 b=7.1v.1h,2D=7[0].1h;1l(9 i 1r a){7.P[i]=a[i]}9 c=7.P,x,y,w,h;3Z(7.19){1F"2T":x=c.1E-c.r;y=c.1J-c.r;w=h=c.r*2;1V;1F"2U":x=c.1E-c.2l;y=c.1J-c.2m;w=c.2l*2;h=c.2m*2;1V;1F"2e":1F"2E":x=c.x;y=c.y;w=c.w;h=c.h;1V;1F"1M":7.3p.v=["m",11.15(c.x),", ",11.15(c.y-2),"l",11.15(c.x)+1,", ",11.15(c.y-2)].22("");J;3q:J}9 d=7.26.U/2-w/2,1z=7.26.14/2-h/2;b.2g="2h";b.1H=x-d+"1A";b.1z=y-1z+"1A";7.X=x-d;7.Y=y-1z;7.W=w;7.H=h;b.U=7.26.U+"1A";b.14=7.26.14+"1A";2D.2g="2h";2D.1z=1z+"1A";2D.1H=d+"1A";2D.U=w+"1A";2D.14=h+"1A"};z.1p.40=I(){7.1v.1h.3b="1P";J 7};z.1p.41=I(){7.1v.1h.3b="42";J 7};z.1p.3r=I(x,y){K(x==1s&&y==1s){J{x:7.X,y:7.Y}}7.X+=x;7.Y+=y;7.1v.1h.1H=7.X+"1A";7.1v.1h.1z=7.Y+"1A";J 7};z.1p.3s=I(a,b,c,d,e,f){3t=1n 2f(a,b,c,d,e,f);7.1v.1h.43=3t;J 7};z.1p.44=I(x,y){K(x==1s&&y==1s){J}y=y||x;K(x!=0&&!(x==1&&y==1)){9 a=11.15(x/11.45(x)),3c=11.15(y/11.45(y)),s=7[0].1h;K(a!=1||3c!=1){s.43=1n 2f(a,0,0,3c,0,0)}9 b=1G(s.U,10)*x*a;9 c=1G(s.14,10)*y*3c;9 d=1G(s.1H,10);9 e=1G(s.1z,10);s.1H=7.X=d+7.W/2-b/2;s.1z=7.Y=e+7.H/2-c/2;s.U=7.W=b;s.14=7.H=c}J 7};z.1p.2V=I(){J{x:7.1v.5r,y:7.1v.5s,U:7.1v.5t,14:7.1v.5u}};z.1p.2W=I(){7[0].1D.27(7[0]);7.1v.1D.27(7.1v);7.2i&&7.2i.1D.27(7.2i)};z.1p.2F=I(){K(N.1d==1&&1k N[0]=="2k"){J 7.P[N[0]]}K(7.P&&N.1d==1&&N[0]46 47){9 a={};1l(9 i=0,1i=N[0].1d;i<1i;i++){a[N[0][i]]=7.P[N[0][i]]};J a}K(7[0].5v.3n()=="1N"){9 b=7[0].3d;7.P=7.P||{};K(N.1d==2){7.P[N[0]]=N[1]}1j K(N.1d==1||1k N[0]=="2r"){1l(9 j 1r N[0]){7.P[j]=N[0][j]}}1l(9 i=0,1i=b.1d;i<1i;i++){7.2F.2v(1n 5w(b[i],7[0],7.26),N)}}1j{9 c;K(N.1d==2){c={};c[N[0]]=N[1]}K(N.1d==1&&1k N[0]=="2r"){c=N[0]}K(c){u(7,c);7.2C(c);K(c.1I){v(7,c.1I)}K(c.1M&&7.19=="1M"){7[0].2k=c.1M}K(c.2X){7[0].2X=c.2X}}}J 7};z.1p.48=I(){7.1v.1D.1b(7.1v);J 7};z.1p.49=I(){K(7.1v.1D.1Q!=7.1v){7.1v.1D.3e(7.1v,7.1v.1D.1Q)}J 7};9 A=I(a,x,y,r){9 g=17.1u("1m:1N");9 o=17.1u("1m:4a");g.1b(o);a.18.1b(g);9 b=1n z(o,g,a);u(b,{1c:"#1C",1x:"1P"});b.2C({x:x-r,y:y-r,w:r*2,h:r*2});b.P.1E=x;b.P.1J=y;b.P.r=r;b.19="2T";J b};9 B=I(a,x,y,w,h,r){9 g=17.1u("1m:1N");9 o=17.1u(r?"1m:5x":"1m:2e");K(r){o.5y=r/(11.2Y(w,h))}g.1b(o);a.18.1b(g);9 b=1n z(o,g,a);u(b,{1c:"#1C"});b.2C({x:x,y:y,w:w,h:h});b.P.x=x;b.P.y=y;b.P.w=w;b.P.h=h;b.P.r=r;b.19="2e";J b};9 D=I(a,x,y,b,c){9 g=17.1u("1m:1N");9 o=17.1u("1m:4a");g.1b(o);a.18.1b(g);9 d=1n z(o,g,a);u(d,{1c:"#1C"});d.2C({x:x-b,y:y-c,w:b*2,h:c*2});d.P.1E=x;d.P.1J=y;d.P.2l=b;d.P.2m=c;d.19="2U";J d};9 E=I(a,b,x,y,w,h){9 g=17.1u("1m:1N");9 o=17.1u("1m:2E");o.5z=b;g.1b(o);a.18.1b(g);9 c=1n z(o,g,a);c.19="2E";c.2C({x:x,y:y,w:w,h:h});c.P.x=x;c.P.y=y;c.P.w=w;c.P.h=h;J c};9 F=I(a,x,y,b){9 g=17.1u("1m:1N"),2G=g.1h;9 c=17.1u("1m:2i"),2y=c.1h;9 d=17.1u("1m:1a"),5A=d.1h;d.v=["m",11.15(x),", ",11.15(y-2),"l",11.15(x)+1,", ",11.15(y-2)].22("");d.5B=20;2y.U=a.U;2y.14=a.14;2G.2g="2h";2G.1H=0;2G.1z=0;2G.U=a.U;2G.14=a.14;9 o=17.1u("1m:3p");o.2k=b;o.24=20;o.2L=a.2L;o.2M=a.2M;c.1b(o);c.1b(d);g.1b(c);a.18.1b(g);9 e=1n z(o,g,a);e.2i=c;e.3p=d;e.19="1M";e.P.x=x;e.P.y=y;e.P.w=1;e.P.h=1;J e};9 G=I(a){9 b=17.1u("1m:1N"),2H=b.1h;2H.2g="2h";2H.1H=0;2H.1z=0;2H.U=a.U;2H.14=a.14;K(a.18){a.18.1b(b)}9 c=1n z(b,b,a);1l(9 f 1r a){K(f.37(0)!="4b"&&1k a[f]=="I"){c[f]=(I(f){J I(){9 e=a[f].2v(a,N);b.1b(e[0].1D);J e}})(f)}}c.19="1N";J c};r.3i=I(){9 d,U,14;K(1k N[0]=="2k"){d=17.4c(N[0]);U=N[1];14=N[2]}K(1k N[0]=="2r"){d=N[0];U=N[1];14=N[2]}K(1k N[0]=="4d"){d=1;x=N[0];y=N[1];U=N[2];14=N[3]}K(!d){4e 1n 4f("2K 4g 4h 4i.");}K(!17.4j["1m"]){17.4j.5C("1m","5D:5E-5F-5G:26");17.5H().5I("1m\\\\:*","5J:4k(#3q#2K)")}9 c=17.1u("5K"),r=C.18=17.1u("1m:1N"),28=c.1h,2Z=r.1h;C.U=U;C.14=14;U=U||"5L";14=14||"5M";28.5N="2e(0 "+U+" "+14+" 0)";28.2g="2h";2Z.U=U;2Z.14=14;r.2L=(U=="1f%"?U:13(U))+" "+(14=="1f%"?14:13(14));r.2M="0 0";9 b=17.1u("1m:2e"),30=b.1h;30.1H=30.1z=0;30.U=2Z.U;30.14=2Z.14;b.5O=b.5P="f";r.1b(b);c.1b(r);K(d==1){17.4l.1b(c);28.2g="2h";28.1H=x+"1A";28.1z=y+"1A";28.U=U;28.14=14;d={1h:{U:U,14:14}}}1j{28.U=d.1h.U=U;28.14=d.1h.14=14;K(d.1Q){d.3e(c,d.1Q)}1j{d.1b(c)}}1l(9 e 1r C){d[e]=C[e]}d.3u=I(){9 a=[];1l(9 i=0,1i=r.3d.1d;i<1i;i++){K(r.3d[i]!=b){a.1L(r.3d[i])}}1l(i=0,1i=a.1d;i<1i;i++){r.27(a[i])}};J d};C.2W=I(){C.18.1D.1D.27(C.18.1D)}}K(q=="2I"){2f.1p.2w=I(){J"3s("+7.m[0][0]+", "+7.m[1][0]+", "+7.m[0][1]+", "+7.m[1][1]+", "+7.m[2][0]+", "+7.m[2][1]+")"};9 t=I(j,k,l){9 m=17.1W(l.1R,"1a");m.T("1x","1P");K(j){1l(9 n 1r j){K(j.1I){v(m,j.1I,l)}1j{m.T(n,j[n])}}}K(l.18){l.18.1b(m)}9 p=1n z(m,l);1l(9 n 1r j){p.P[n]=j[n]}p.Q=20;p.1a=[];p.O={x:0,y:0,2o:0,2p:0};p.2z=I(){7.Q=20;J 7};p.35=I(){7.Q=2N;J 7};p.3G=I(){7[0].T("d","5Q 0");9 a=7.1a;7.1a=[];1l(9 i=0,1i=a.1d;i<1i;i++){K(a[i].19!="3j"){7[a[i].19+"3H"].2v(7,a[i].1O)}1j{7.2q()}}J 7};p.2b=I(x,y){9 d=7.Q?"M":"m";9 a=7.Q?l.1e:l.1w;9 b=7.Q?l.1g:l.1y;d+=a(13(x,10))+" "+b(13(y,10))+" ";9 c=7[0].2s("d")||"";7[0].T("d",c+d);7.O.x=(7.Q?0:7.O.x)+l.1e(13(x,10));7.O.y=(7.Q?0:7.O.y)+l.1g(13(y,10));7.1a.1L({19:"3I",1O:N,21:7.Q});J 7};p.1o=I(x,y){7.O.x=(7.Q?0:7.O.x)+l.1e(13(x,10));7.O.y=(7.Q?0:7.O.y)+l.1g(13(y,10));9 d=7.Q?"L":"l";9 a=7.Q?l.1e:l.1w;9 b=7.Q?l.1g:l.1y;d+=a(13(x,10))+" "+b(13(y,10))+" ";9 c=7[0].2s("d")||"";7[0].T("d",c+d);7.1a.1L({19:"3J",1O:N,21:7.Q});J 7};p.36=I(a,b,c,e,x,y){9 d=7.Q?"A":"a";9 f=7.Q?l.1e:l.1w;9 g=7.Q?l.1g:l.1y;d+=[l.1w(13(a,10)),l.1y(13(b,10)),0,c,e,f(13(x,10)),g(13(y,10))].22(" ");9 h=7[0].2s("d")||"";7[0].T("d",h+d);7.O.x=l.1e(13(x,10));7.O.y=l.1g(13(y,10));7.1a.1L({19:"3K",1O:N,21:7.Q});J 7};p.3L=I(a,b,c){K(!c){J 7.1o(a,b)}1j{9 p={};p.1e=7.Q?l.1e:l.1w;p.1g=7.Q?l.1g:l.1y;9 x=p.1e(11.15(13(a,10)*1f)/1f);9 y=p.1g(11.15(13(b,10)*1f)/1f);9 w=l.1w(11.15(13(c,10)*1f)/1f);9 d=7.Q?"C":"c";9 e=[7.O.x+w,7.O.y,x-w,y,x,y];1l(9 i=0,1i=e.1d;i<1i;i++){d+=e[i]+" "}7.O.x=(7.Q?0:7.O.x)+e[4];7.O.y=(7.Q?0:7.O.y)+e[5];7.O.2o=e[2];7.O.2p=e[3];9 f=7[0].2s("d")||"";7[0].T("d",f+d);7.1a.1L({19:"3M",1O:N,21:7.Q});J 7}};p.1q=I(){9 p={};p.1e=7.Q?l.1e:l.1w;p.1g=7.Q?l.1g:l.1y;K(N.1d==6){9 d=7.Q?"C":"c";1l(9 i=0,1i=N.1d;i<1i;i++){d+=p[(i%2==0)?"1e":"1g"](11.15(13(N[i],10)*1f)/1f)+" "}7.O.x=(7.Q?0:7.O.x)+p.1e((13(N[4],10)*1f)/1f);7.O.y=(7.Q?0:7.O.y)+p.1g((13(N[5],10)*1f)/1f);7.O.2o=p.1e((13(N[2],10)*1f)/1f);7.O.2p=p.1g((13(N[3],10)*1f)/1f)}1j{K(N.1d==4){9 d=7.Q?"S":"s";1l(9 i=0,1i=N.1d;i<1i;i++){d+=p[i%2==0?"1e":"1g"]((13(N[i],10)*1f)/1f)+" "}}7.O.x=(7.Q?0:7.O.x)+p.1e((13(N[2],10)*1f)/1f);7.O.y=(7.Q?0:7.O.y)+p.1g((13(N[3],10)*1f)/1f);7.O.2o=p.1e((13(N[0],10)*1f)/1f);7.O.2p=p.1g((13(N[1],10)*1f)/1f)}9 a=7[0].2s("d")||"";7[0].T("d",a+d);7.1a.1L({19:"3N",1O:N,21:7.Q});J 7};p.2B=I(r,a){9 R=.3O*r,23=7.Q,o=7;K(23){7.35();23=I(){o.2z()}}1j{23=I(){}}9 b={l:I(){J{u:I(){o.1q(-R,0,-r,-(r-R),-r,-r)},d:I(){o.1q(-R,0,-r,r-R,-r,r)}}},r:I(){J{u:I(){o.1q(R,0,r,-(r-R),r,-r)},d:I(){o.1q(R,0,r,r-R,r,r)}}},u:I(){J{r:I(){o.1q(0,-R,-(R-r),-r,r,-r)},l:I(){o.1q(0,-R,R-r,-r,-r,-r)}}},d:I(){J{r:I(){o.1q(0,R,-(R-r),r,r,r)},l:I(){o.1q(0,R,R-r,r,-r,r)}}}};b[a[0]]()[a[1]]();23();J o};p.2q=I(){9 a=7[0].2s("d")||"";7[0].T("d",a+"Z ");7.1a.1L({19:"3j"});J 7};K(1k k=="2k"){k=k.2c(/([3P])/38,",$1,").2c(/([^,])\\-/38,"$1,-");1a=k.3k(",");9 i=1,1i=1a.1d;p.2z();3l(i<1i){K(C.2Q[1a[i]]){i=C.2Q[1a[i]](p,1a,i)}i++}}J p};9 v=I(o,a,b){9 c=17.1W(b.1R,a.19+"5R");c.2X="5S-1I-"+b.4m++;K(a.1U&&a.1U.1d){c.T("5T",a.1U[0]);c.T("2P",a.1U[1]);c.T("5U",a.1U[2]);c.T("5V",a.1U[3])}b.3f.1b(c);1l(9 i=0,1i=a.1t.1d;i<1i;i++){9 d=17.1W(b.1R,"3v");d.T("3a",a.1t[i].3a?a.1t[i].3a:(i==0)?"0%":"1f%");d.T("3v-25",a.1t[i].25||"#5W");K(1k a.1t[i].1B!="1s"){d.T("3v-1B",a.1t[i].1B)}c.1b(d)};o.T("1x","4k(#"+c.2X+")")};9 z=I(c,d){9 X=0,Y=0,31={32:0,x:0,y:0},2t=1,2u=1,3t=5X;7[0]=c;7.1X=d;7.P=7.P||{};7.1S=[];7.3o=I(a){K(a==1s){J 31.32}9 b=7.2V();31.32+=a;K(31.32){7.1S[0]=("3o("+31.32+" "+(b.x+b.U/2)+" "+(b.y+b.14/2)+")")}1j{7.1S[0]=""}7[0].T("3g",7.1S.22(" "));J 7};7.3r=I(x,y){K(x==1s&&y==1s){J{x:X,y:Y}}X+=x;Y+=y;K(X&&Y){7.1S[1]="3r("+X+","+Y+")"}1j{7.1S[1]=""}7[0].T("3g",7.1S.22(" "));J 7};7.44=I(x,y){K(x==1s&&y==1s){J{x:2t,y:2u}}y=y||x;K(x!=0&&!(x==1&&y==1)){2t*=x;2u*=y;K(!(2t==1&&2u==1)){9 a=7.2V(),33=a.x*(1-2t)+(a.U/2-a.U*2t/2),4n=a.y*(1-2u)+(a.14/2-a.14*2u/2);7.1S[2]=1n 2f(2t,0,0,2u,33,4n)}1j{7.1S[2]=""}7[0].T("3g",7.1S.22(" "))}J 7}};z.1p.40=I(){7[0].1h.3b="1P";J 7};z.1p.41=I(){7[0].1h.3b="42";J 7};z.1p.3s=I(a,b,c,d,e,f){7.1S[3]=1n 2f(a,b,c,d,e,f);7[0].T("3g",7.1S.22(" "));J 7};z.1p.2W=I(){7[0].1D.27(7[0])};z.1p.2V=I(){J 7[0].2V()};z.1p.2F=I(){K(N.1d==1&&1k N[0]=="2k"){J 7[0].2s(N[0])}K(N.1d==1&&N[0]46 47){9 a={};1l(9 j 1r N[0]){a[N[0][j]]=7.P[N[0][j]]}J a}K(N.1d==2){9 b=N[0],1T=N[1];7[b]=1T;7.P[b]=1T;3Z(b){1F"2l":1F"1E":1F"x":7[0].T(b,7.1X.1e(1T));1V;1F"2m":1F"1J":1F"y":7[0].T(b,7.1X.1g(1T));1V;1F"U":7[0].T(b,7.1X.1w(1T));1V;1F"14":7[0].T(b,7.1X.1y(1T));1V;1F"1I":v(7[0],1T,7.1X);1V;1F"1c-2S":7[0].T(b,1T.2c(" ",","));1V;1F"1M":K(7.19=="1M"){7[0].27(7[0].1Q);7[0].1b(17.3w(1T))}1V;3q:9 c=b.2c(/(\\-.)/g,I(w){J w.2n(1).4o()});7[0].1h[c]=1T;7[0].T(b,1T);1V}}1j K(N.1d==1&&1k N[0]=="2r"){9 d=N[0];1l(9 e 1r d){7.P[e]=d[e];K(e=="1c-2S"){7[0].T(e,d[e].2c(" ",","))}1j K(e=="1M"&&7.19=="1M"){7[0].27(7[0].1Q);7[0].1b(17.3w(d[e]))}1j{9 c=e.2c(/(\\-.)/g,I(w){J w.2n(1).4o()});7[0].1h[c]=d[e];7[0].T(e,d[e])}}K(d.1I){7.P.1I=d.1I;v(7[0],d.1I,7.1X)}}J 7};z.1p.48=I(){7[0].1D.1b(7[0]);J 7};z.1p.49=I(){K(7[0].1D.1Q!=7[0]){7[0].1D.3e(7[0],7[0].1D.1Q)}J 7};9 A=I(a,x,y,r){9 b=17.1W(a.1R,"2T");b.T("1E",a.1e(x));b.T("1J",a.1g(y));b.T("r",r);b.T("1x","1P");b.T("1c","#1C");K(a.18){a.18.1b(b)}9 c=1n z(b,a);c.P=c.P||{};c.P.1E=x;c.P.1J=y;c.P.r=r;c.P.1c="#1C";c.19="2T";J c};9 B=I(a,x,y,w,h,r){9 b=17.1W(a.1R,"2e");b.T("x",a.1e(x));b.T("y",a.1g(y));b.T("U",a.1w(w));b.T("14",a.1y(h));K(r){b.T("2l",r);b.T("2m",r)}b.T("1x","1P");b.T("1c","#1C");K(a.18){a.18.1b(b)}9 c=1n z(b,a);c.P=c.P||{};c.P.x=x;c.P.y=y;c.P.U=w;c.P.14=h;c.P.1c="#1C";K(r){c.P.2l=c.P.2m=r}c.19="2e";J c};9 D=I(a,x,y,b,c){9 d=17.1W(a.1R,"2U");d.T("1E",a.1e(x));d.T("1J",a.1g(y));d.T("2l",a.1w(b));d.T("2m",a.1y(c));d.T("1x","1P");d.T("1c","#1C");K(a.18){a.18.1b(d)}9 e=1n z(d,a);e.P=e.P||{};e.P.1E=x;e.P.1J=y;e.P.2l=b;e.P.2m=c;e.P.1c="#1C";e.19="2U";J e};9 E=I(a,b,x,y,w,h){9 c=17.1W(a.1R,"2E");c.T("x",a.1e(x));c.T("y",a.1g(y));c.T("U",a.1w(w));c.T("14",a.1y(h));c.5Y(a.3x,"5Z",b);K(a.18){a.18.1b(c)}9 d=1n z(c,a);d.P=d.P||{};d.P.x=x;d.P.y=y;d.P.U=w;d.P.14=h;d.19="2E";J d};9 F=I(a,x,y,b){9 c=17.1W(a.1R,"1M");c.T("x",x);c.T("y",y);c.T("1M-60","61");c.T("1x","#1C");K(b){c.1b(17.3w(b))}K(a.18){a.18.1b(c)}9 d=1n z(c,a);d.P=d.P||{};d.P.x=x;d.P.y=y;d.P.1x="#1C";d.19="1M";J d};9 G=I(a){9 b=17.1W(a.1R,"g");K(a.18){a.18.1b(b)}9 i=1n z(b,a);1l(9 f 1r a){K(f[0]!="4b"&&1k a[f]=="I"){i[f]=(I(f){J I(){9 e=a[f].2v(a,N);b.1b(e[0]);J e}})(f)}}i.19="1N";J i};r.3i=I(){K(1k N[0]=="2k"){9 a=17.4c(N[0]);9 b=N[1];9 c=N[2]}K(1k N[0]=="2r"){9 a=N[0];9 b=N[1];9 c=N[2]}K(1k N[0]=="4d"){9 a=1,x=N[0],y=N[1],b=N[2],c=N[3]}K(!a){4e 1n 4f("2I 4g 4h 4i.");}C.18=17.1W(C.1R,"1X");C.18.T("U",b||4p);C.U=b||4p;C.18.T("14",c||4q);C.14=c||4q;K(a==1){17.4l.1b(C.18);C.18.1h.2g="2h";C.18.1h.1H=x+"1A";C.18.1h.1z=y+"1A"}1j{K(a.1Q){a.3e(C.18,a.1Q)}1j{a.1b(C.18)}}a={18:C.18,3u:I(){3l(7.18.1Q){7.18.27(7.18.1Q)}7.3f=17.1W(C.1R,"3f");7.4m=0;7.18.1b(7.3f)}};1l(9 d 1r C){K(d!="62"){a[d]=C[d]}}a.3u();J a};C.2W=I(){C.18.1D.27(C.18)};C.1R="4r://4s.4t.4u/63/1X";C.3x="4r://4s.4t.4u/64/3x"}K(q=="2K"||q=="2I"){C.2T=I(x,y,r){J A(7,x,y,r)};C.2e=I(x,y,w,h,r){J B(7,x,y,w,h,r)};C.2U=I(x,y,a,b){J D(7,x,y,a,b)};C.1a=I(a,b){J t(a,b,7)};C.2E=I(a,x,y,w,h){J E(7,a,x,y,w,h)};C.1M=I(x,y,a){J F(7,x,y,a)};C.1N=I(){J G(7)};C.65=I(x,y,w,h,r){K(r&&1G(r,10)){J 7.1a({1c:"#1C"}).2b(x+r,y).1o(x+w-r,y).2B(r,"66").1o(x+w,y+h-r).2B(r,"67").1o(x+r,y+h).2B(r,"68").1o(x,y+r).2B(r,"69").2q()}J 7.1a({1c:"#1C"}).2b(x,y).1o(x+w,y).1o(x+w,y+h).1o(x,y+h).2q()};C.6a=I(x,y,w,h,a,b,c){c=c||"#1C";9 p=7.1a({1c:c,"1c-U":1}).2b(x,y).1o(x+w,y).1o(x+w,y+h).1o(x,y+h).1o(x,y);1l(9 i=1;i<b;i++){p.2b(x,y+i*11.15(h/b)).1o(x+w,y+i*11.15(h/b))}1l(9 i=1;i<a;i++){p.2b(x+i*11.15(w/a),y).1o(x+i*11.15(w/a),y+h)}J p};C.6b=I(a,b,c,d,w,h){9 e=(c-a)/w;9 f=(d-b)/h;7.1e=I(x){J a+x*e};7.1g=I(y){J b+y*f};7.1w=I(w){J w*e};7.1y=I(h){J h*f}};C.6c=I(){7.1e=7.1g=7.1w=7.1y=I(x){J x}};C.3y=I(){K(r.19=="2I"){9 a=C.2e(-C.U,-C.14,C.U*3,C.14*3).2F({1c:"1P"});4v(I(){a.2W()},0)}};z.1p.6d=I(x,y,d,e){6e(7.4w);K("1E"1r 7.P||"x"1r 7.P){9 f=("1E"1r 7.P),X=7.P.1E||7.P.x,Y=7.P.1J||7.P.y;K(x==X&&y==Y){J 7}9 g=y-Y,33=x-X,3h=g/33,4x=Y-3h*X,4y=11.3Y(7.3h);7.3z=7.6f*11.6g(4y);K(x<X){7.3z=-7.3z}9 h=1n 4z(),34=7;(I(){9 a=(1n 4z()).4A()-h.4A();K(a<d){9 b=X+a*33/d;9 c=b*3h+4x;34.2F(f?{1E:b,1J:c}:{x:b,y:c});34.4w=4v(N.3A,1);C.3y()}1j{34.2F(f?{1E:x,1J:y}:{x:x,y:y});C.3y();e&&e.2A(34)}})()}J 7};C.2Q={M:I(p,a,i){p.2b(a[++i]*1,a[++i]*1);J i},m:I(p,a,i){p.2b(p.O.x+a[++i]*1,p.O.y+a[++i]*1);J i},C:I(p,a,i){p.1q(a[++i]*1,a[++i]*1,a[++i]*1,a[++i]*1,a[++i]*1,a[++i]*1);J i},c:I(p,a,i){p.1q(p.O.x+a[++i]*1,p.O.y+a[++i]*1,p.O.x+a[++i]*1,p.O.y+a[++i]*1,p.O.x+a[++i]*1,p.O.y+a[++i]*1);J i},S:I(p,a,i){p.1q(a[++i]*1,a[++i]*1,a[++i]*1,a[++i]*1);J i},s:I(p,a,i){p.1q(p.O.x+a[++i]*1,p.O.y+a[++i]*1,p.O.x+a[++i]*1,p.O.y+a[++i]*1);J i},L:I(p,a,i){p.1o(a[++i]*1,a[++i]*1);J i},l:I(p,a,i){p.1o(p.O.x+a[++i]*1,p.O.y+a[++i]*1);J i},H:I(p,a,i){p.1o(a[++i]*1,p.O.y);J i},h:I(p,a,i){p.1o(p.O.x+a[++i]*1,p.O.y);J i},V:I(p,a,i){p.1o(p.O.x,a[++i]*1);J i},v:I(p,a,i){p.1o(p.O.x,p.O.y+a[++i]*1);J i},A:I(p,a,i){p.36(a[++i]*1,a[++i]*1,a[i+=2],a[++i]*1,a[++i]*1,a[++i]*1,a[++i]*1);J i},a:I(p,a,i){p.36(p.O.x+a[++i]*1,p.O.y+a[++i]*1,a[i+=2]*1,a[++i]*1,a[++i]*1,p.O.x+a[++i]*1,p.O.y+a[++i]*1);J i},z:I(p,a,i){p.2q();J i}};J r}1j{J I(){}}})((!(3B.4B&&3B.4B.6h==2))?"2K":"2I");1K.26=!(1K.1X=(1K.19=="2I"));K(1K.26&&3B.6i){1K.19="6j 6k";1K.26=1K.1X=2N}1K.2w=I(){J"6l 6m 6n "+7.19};1K.4C=I(a,c,d){K(1k a=="2r"&&"h"1r a&&"s"1r a&&"b"1r a){d=a.b;c=a.s;a=a.h}9 e,1Y,1Z;K(d==0){J{r:0,g:0,b:0,3C:"#1C"}}1j{9 i=11.6o(a*6),f=(a*6)-i,p=d*(1-c),q=d*(1-(c*f)),t=d*(1-(c*(1-f)));[I(){e=d;1Y=t;1Z=p},I(){e=q;1Y=d;1Z=p},I(){e=p;1Y=d;1Z=t},I(){e=p;1Y=q;1Z=d},I(){e=t;1Y=p;1Z=d},I(){e=d;1Y=p;1Z=q},I(){e=d;1Y=t;1Z=p},][i]()}9 h={r:e,g:1Y,b:1Z};e*=2J;1Y*=2J;1Z*=2J;9 r=11.15(e).2w(16);K(r.1d==1){r="0"+r}9 g=11.15(1Y).2w(16);K(g.1d==1){g="0"+g}9 b=11.15(1Z).2w(16);K(b.1d==1){b="0"+b}h.3C="#"+r+g+b;J h};1K.6p=I(a,b,c){K(1k a=="2r"&&"r"1r a&&"g"1r a&&"b"1r a){c=a.b;b=a.g;a=a.r}K(a.37(0)=="#"){K(a.1d==4){c=1G(a.2n(3),16);b=1G(a.2n(2,3),16);a=1G(a.2n(1,2),16)}1j{c=1G(a.2n(5),16);b=1G(a.2n(3,5),16);a=1G(a.2n(1,3),16)}}K(a>1||b>1||c>1){a/=2J;b/=2J;c/=2J}9 d=11.6q(a,b,c),2Y=11.2Y(a,b,c),2a,3D,4D=d;K(2Y==d){J{h:0,s:0,b:d}}1j{9 e=(d-2Y);3D=e/d;K(a==d){2a=(b-c)/e}1j K(b==d){2a=2+((c-a)/e)}1j{2a=4+((a-b)/e)}2a/=6;K(2a<0){2a+=1}K(2a>1){2a-=1}}J{h:2a,s:3D,b:4D}};1K.4E=I(a){9 b=N.3A.3E=N.3A.3E||{h:0,s:1,b:a||.6r};9 c=7.4C(b.h,b.s,b.b);b.h+=.6s;K(b.h>1){b.h=0;b.s-=.2;K(b.s<=0){b={h:0,s:1,b:b.b}}}J c.3C};1K.4E.6t=I(){7.3E=1s};',62,402,'|||||||this||var|||||||||||||||||||||||||||||||||||function|return|if|||arguments|last|attrs|isAbsolute|||setAttribute|width|||||||Math||parseFloat|height|round||document|canvas|type|path|appendChild|stroke|length|_getX|100|_getY|style|ii|else|typeof|for|rvml|new|lineTo|prototype|curveTo|in|undefined|dots|createElement|Group|_getW|fill|_getH|top|px|opacity|000|parentNode|cx|case|parseInt|left|gradient|cy|Raphael|push|text|group|arg|none|firstChild|svgns|transformations|value|vector|break|createElementNS|svg|green|blue|true|pos|join|rollback|on|color|vml|removeChild|cs||hue|moveTo|replace|font|rect|Matrix|position|absolute|shape|Path|string|rx|ry|substring|bx|by|andClose|object|getAttribute|ScaleX|ScaleY|apply|toString|gl|ol|absolutely|call|addRoundedCorner|setBox|os|image|attr|gs|els|SVG|255|VML|coordsize|coordorigin|false|slice|y1|pathfinder|getElementsByTagName|dasharray|circle|ellipse|getBBox|remove|id|min|rs|bs|Rotation|deg|dx|that|relatively|arcTo|charAt|ig|weight|offset|display|diry|childNodes|insertBefore|defs|transform|coeff|_create|end|split|while|dashesn|toLowerCase|rotate|textpath|default|translate|matrix|tMatrix|clear|stop|createTextNode|xlink|safari|xs|callee|window|hex|saturation|start|class|redraw|To|move|line|arc|cplineTo|cpline|curve|5522|mzlhvcsqta|family|size|linejoin|miter|miterlimit|linecap|square|str|atan|switch|hide|show|block|filter|scale|abs|instanceof|Array|toFront|toBack|oval|_|getElementById|number|throw|Error|container|not|found|namespaces|url|body|gradients|dy|toUpperCase|320|200|http|www|w3|org|setTimeout|animation_in_progress|plus|alpha|Date|getTime|SVGPreserveAspectRatio|hsb2rgb|brightness|getColor|version|8b|progid|DXImageTransform|Microsoft|M11|M12|M21|M22|Dx|Dy|sizingmethod|auto|expand|filtertype|bilinear|className|sqrt|wa|wr|at|ar|fontFamily|fontSize|fontWeight|joinstyle|endcap|butt||flat|isNaN|dashstyle|linear|gradientradial|opacity2|color2|colors|180|angle|90|radial|focusposition|focussize|method|RotX|RotY|Scale|rotation|offsetLeft|offsetTop|offsetWidth|offsetHeight|tagName|item|roundrect|arcsize|src|ps|textpathok|add|urn|schemas|microsoft|com|createStyleSheet|addRule|behavior|div|320px|200px|clip|filled|stroked|M0|Gradient|raphael|x1|x2|y2|fff|null|setAttributeNS|href|anchor|middle|create|2000|1999|linerect|rd|dl|lu|ur|drawGrid|setGrid|clearGrid|animateTo|clearTimeout|step|cos|SVG_PRESERVEASPECTRATIO_XMINYMIN|CanvasRenderingContext2D|Canvas|only|Your|browser|supports|floor|rgb2hsb|max|75|075|reset'.split('|'),0,{}))
\ No newline at end of file
index 33251b4..42eb14d 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Raphael 0.5.7b - JavaScript Vector Library
+ * Raphael 0.5.8b - JavaScript Vector Library
  *
  * Copyright (c) 2008 Dmitry Baranovskiy (raphaeljs.com)
  * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
@@ -8,7 +8,7 @@ var Raphael = (function (type) {
         var r = function () {
             return r._create.apply(r, arguments);
         };
-        r.version = "0.5.7b";
+        r.version = "0.5.8b";
         r.type = type;
         var C = {};
         function Matrix(m11, m12, m21, m22, dx, dy) {
@@ -82,8 +82,8 @@ var Raphael = (function (type) {
                     var _getY = this.isAbsolute ? VML._getY : VML._getH;
                     d += Math.round(_getX(parseFloat(x, 10))) + " " + Math.round(_getY(parseFloat(y, 10)));
                     this[0].path = this.Path += d;
-                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + Math.round(_getX(parseFloat(x, 10)));
-                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + Math.round(_getY(parseFloat(y, 10)));
+                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + _getX(parseFloat(x, 10));
+                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + _getY(parseFloat(y, 10));
                     this.last.isAbsolute = this.isAbsolute;
                     this.path.push({type: "move", arg: [].slice.call(arguments, 0), pos: this.isAbsolute});
                     return this;
@@ -94,8 +94,8 @@ var Raphael = (function (type) {
                     var _getY = this.isAbsolute ? VML._getY : VML._getH;
                     d += Math.round(_getX(parseFloat(x, 10))) + " " + Math.round(_getY(parseFloat(y, 10)));
                     this[0].path = this.Path += d;
-                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + Math.round(_getX(parseFloat(x, 10)));
-                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + Math.round(_getY(parseFloat(y, 10)));
+                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + _getX(parseFloat(x, 10));
+                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + _getY(parseFloat(y, 10));
                     this.last.isAbsolute = this.isAbsolute;
                     this.path.push({type: "line", arg: [].slice.call(arguments, 0), pos: this.isAbsolute});
                     return this;
@@ -120,8 +120,8 @@ var Raphael = (function (type) {
                         top = Math.round(cy - ry);
                     d += [left, top, left + rx * 2, top + ry * 2, x1, y1, Math.round(_getX(parseFloat(x2, 10))), Math.round(_getX(parseFloat(y2, 10)))].join(", ");
                     this[0].path = this.Path += d;
-                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + Math.round(_getX(parseFloat(x2, 10)));
-                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + Math.round(_getY(parseFloat(y2, 10)));
+                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + _getX(parseFloat(x2, 10));
+                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + _getY(parseFloat(y2, 10));
                     this.last.isAbsolute = this.isAbsolute;
                     this.path.push({type: "arc", arg: [].slice.call(arguments, 0), pos: this.isAbsolute});
                     return this;
@@ -137,7 +137,7 @@ var Raphael = (function (type) {
                         var y = Math.round(p._getY(Math.round(parseFloat(y1, 10) * 100) / 100));
                         var w = Math.round(VML._getW(Math.round(parseFloat(w1, 10) * 100) / 100));
                         var d = this.isAbsolute?"c":"v";
-                        var attr = [this.last.x + w, this.last.y, x - w, y, x, y];
+                        var attr = [Math.round(this.last.x) + w, Math.round(this.last.y), x - w, y, x, y];
                         d += attr.join(" ") + " ";
                         this.last.x = (this.isAbsolute ? 0 : this.last.x) + attr[4];
                         this.last.y = (this.isAbsolute ? 0 : this.last.y) + attr[5];
@@ -153,8 +153,8 @@ var Raphael = (function (type) {
                     var _getX = this.isAbsolute ? VML._getX : VML._getW;
                     var _getY = this.isAbsolute ? VML._getY : VML._getH;
                     if (arguments.length == 6) {
-                        this.last.x = (this.isAbsolute ? 0 : this.last.x) + Math.round(_getX(parseFloat(arguments[4], 10)));
-                        this.last.y = (this.isAbsolute ? 0 : this.last.y) + Math.round(_getY(parseFloat(arguments[5], 10)));
+                        this.last.x = (this.isAbsolute ? 0 : this.last.x) + _getX(parseFloat(arguments[4], 10));
+                        this.last.y = (this.isAbsolute ? 0 : this.last.y) + _getY(parseFloat(arguments[5], 10));
                         this.last.bx = Math.round(_getX(parseFloat(arguments[2], 10)));
                         this.last.by = Math.round(_getY(parseFloat(arguments[3], 10)));
                         d += Math.round(_getX(parseFloat(arguments[0], 10))) + " " + Math.round(_getY(parseFloat(arguments[1], 10))) + " " +
@@ -230,48 +230,10 @@ var Raphael = (function (type) {
                     pathString = pathString.replace(/([mzlhvcsqta])/ig, ",$1,").replace(/([^,])\-/ig, "$1,-");
                     path = pathString.split(",");
                     var i = 1, ii = path.length;
+                    p.absolutely();
                     while (i < ii) {
-                        switch (path[i]) {
-                            case "M":
-                                p.absolutely().moveTo(path[++i], path[++i]);
-                                break;
-                            case "m":
-                                p.relatively().moveTo(path[++i], path[++i]);
-                                break;
-                            case "C":
-                                p.absolutely().curveTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "c":
-                                p.relatively().curveTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "L":
-                                p.absolutely().lineTo(path[++i], path[++i]);
-                                break;
-                            case "l":
-                                p.relatively().lineTo(path[++i], path[++i]);
-                                break;
-                            case "H":
-                                p.absolutely().lineTo(path[++i], 0);
-                                break;
-                            case "h":
-                                p.relatively().lineTo(path[++i], 0);
-                                break;
-                            case "V":
-                                p.absolutely().lineTo(0, path[++i]);
-                                break;
-                            case "v":
-                                p.relatively().lineTo(0, path[++i]);
-                                break;
-                            case "A":
-                                p.absolutely().arcTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "a":
-                                p.relatively().arcTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "Z":
-                            case "z":
-                                p.andClose();
-                                break;
+                        if (C.pathfinder[path[i]]) {
+                            i = C.pathfinder[path[i]](p, path, i);
                         }
                         i++;
                     }
@@ -315,7 +277,7 @@ var Raphael = (function (type) {
                         stroke.color = params.stroke;
                     }
                     stroke.opacity = ((params["stroke-opacity"] + 1 || 2) - 1) * ((params.opacity + 1 || 2) - 1);
-                    stroke.joinstyle && (stroke.joinstyle = params["stroke-linejoin"] || "miter");
+                    params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter");
                     stroke.miterlimit = params["stroke-miterlimit"] || 8;
                     params["stroke-linecap"] && (stroke.endcap = {butt: "flat", square: "square", round: "round"}[params["stroke-linecap"]] || "miter");
                     params["stroke-width"] && (stroke.weight = (parseFloat(params["stroke-width"], 10) || 1) * 12 / 16);
@@ -838,20 +800,20 @@ var Raphael = (function (type) {
                     d += _getX(parseFloat(x, 10)) + " " + _getY(parseFloat(y, 10)) + " ";
                     var oldD = this[0].getAttribute("d") || "";
                     this[0].setAttribute("d", oldD + d);
-                    this.last.x = SVG._getX(parseFloat(x, 10));
-                    this.last.y = SVG._getY(parseFloat(y, 10));
+                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + SVG._getX(parseFloat(x, 10));
+                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + SVG._getY(parseFloat(y, 10));
                     this.path.push({type: "move", arg: arguments, pos: this.isAbsolute});
                     return this;
                 };
                 p.lineTo = function (x, y) {
+                    this.last.x = (this.isAbsolute ? 0 : this.last.x) + SVG._getX(parseFloat(x, 10));
+                    this.last.y = (this.isAbsolute ? 0 : this.last.y) + SVG._getY(parseFloat(y, 10));
                     var d = this.isAbsolute?"L":"l";
                     var _getX = this.isAbsolute ? SVG._getX : SVG._getW;
                     var _getY = this.isAbsolute ? SVG._getY : SVG._getH;
                     d += _getX(parseFloat(x, 10)) + " " + _getY(parseFloat(y, 10)) + " ";
                     var oldD = this[0].getAttribute("d") || "";
                     this[0].setAttribute("d", oldD + d);
-                    this.last.x = SVG._getX(parseFloat(x, 10));
-                    this.last.y = SVG._getY(parseFloat(y, 10));
                     this.path.push({type: "line", arg: arguments, pos: this.isAbsolute});
                     return this;
                 };
@@ -882,8 +844,8 @@ var Raphael = (function (type) {
                         for (var i = 0, ii = attr.length; i < ii; i++) {
                             d += attr[i] + " ";
                         }
-                        this.last.x = attr[4];
-                        this.last.y = attr[5];
+                        this.last.x = (this.isAbsolute ? 0 : this.last.x) + attr[4];
+                        this.last.y = (this.isAbsolute ? 0 : this.last.y) + attr[5];
                         this.last.bx = attr[2];
                         this.last.by = attr[3];
                         var oldD = this[0].getAttribute("d") || "";
@@ -901,8 +863,8 @@ var Raphael = (function (type) {
                         for (var i = 0, ii = arguments.length; i < ii; i++) {
                             d += p[(i % 2 == 0) ? "_getX" : "_getY"](Math.round(parseFloat(arguments[i], 10) * 100) / 100) + " ";
                         }
-                        this.last.x = p._getX((parseFloat(arguments[4], 10) * 100) / 100);
-                        this.last.y = p._getY((parseFloat(arguments[5], 10) * 100) / 100);
+                        this.last.x = (this.isAbsolute ? 0 : this.last.x) + p._getX((parseFloat(arguments[4], 10) * 100) / 100);
+                        this.last.y = (this.isAbsolute ? 0 : this.last.y) + p._getY((parseFloat(arguments[5], 10) * 100) / 100);
                         this.last.bx = p._getX((parseFloat(arguments[2], 10) * 100) / 100);
                         this.last.by = p._getY((parseFloat(arguments[3], 10) * 100) / 100);
                     } else {
@@ -912,8 +874,8 @@ var Raphael = (function (type) {
                                 d += p[i % 2 == 0 ? "_getX" : "_getY"]((parseFloat(arguments[i], 10) * 100) / 100) + " ";
                             }
                         }
-                        this.last.x = p._getX((parseFloat(arguments[2], 10) * 100) / 100);
-                        this.last.y = p._getY((parseFloat(arguments[3], 10) * 100) / 100);
+                        this.last.x = (this.isAbsolute ? 0 : this.last.x) + p._getX((parseFloat(arguments[2], 10) * 100) / 100);
+                        this.last.y = (this.isAbsolute ? 0 : this.last.y) + p._getY((parseFloat(arguments[3], 10) * 100) / 100);
                         this.last.bx = p._getX((parseFloat(arguments[0], 10) * 100) / 100);
                         this.last.by = p._getY((parseFloat(arguments[1], 10) * 100) / 100);
                     }
@@ -988,53 +950,10 @@ var Raphael = (function (type) {
                     pathString = pathString.replace(/([mzlhvcsqta])/ig, ",$1,").replace(/([^,])\-/ig, "$1,-");
                     path = pathString.split(",");
                     var i = 1, ii = path.length;
+                    p.absolutely();
                     while (i < ii) {
-                        switch (path[i]) {
-                            case "M":
-                                p.absolutely().moveTo(path[++i], path[++i]);
-                                break;
-                            case "m":
-                                p.relatively().moveTo(path[++i], path[++i]);
-                                break;
-                            case "C":
-                                p.absolutely().curveTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "c":
-                                p.relatively().curveTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "s":
-                                p.relatively().curveTo(path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "S":
-                                p.absolutely().curveTo(path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "L":
-                                p.absolutely().lineTo(path[++i], path[++i]);
-                                break;
-                            case "l":
-                                p.relatively().lineTo(path[++i], path[++i]);
-                                break;
-                            case "H":
-                                p.absolutely().lineTo(path[++i], 0);
-                                break;
-                            case "h":
-                                p.relatively().lineTo(path[++i], 0);
-                                break;
-                            case "V":
-                                p.absolutely().lineTo(0, path[++i]);
-                                break;
-                            case "v":
-                                p.relatively().lineTo(0, path[++i]);
-                                break;
-                            case "A":
-                                p.absolutely().arcTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "a":
-                                p.relatively().arcTo(path[++i], path[++i], path[++i], path[++i], path[++i], path[++i]);
-                                break;
-                            case "z":
-                                p.andClose();
-                                break;
+                        if (C.pathfinder[path[i]]) {
+                            i = C.pathfinder[path[i]](p, path, i);
                         }
                         i++;
                     }
@@ -1525,7 +1444,68 @@ var Raphael = (function (type) {
                 }
                 return this;
             };
-            
+            C.pathfinder = {
+                M: function (p, path, i) {
+                    p.moveTo(path[++i] * 1, path[++i] * 1);
+                    return i;
+                },
+                m: function (p, path, i) {
+                    p.moveTo(p.last.x + path[++i] * 1, p.last.y + path[++i] * 1);
+                    return i;
+                },
+                C: function (p, path, i) {
+                    p.curveTo(path[++i] * 1, path[++i] * 1, path[++i] * 1, path[++i] * 1, path[++i] * 1, path[++i] * 1);
+                    return i;
+                },
+                c: function (p, path, i) {
+                    p.curveTo(p.last.x + path[++i] * 1, p.last.y + path[++i] * 1, p.last.x + path[++i] * 1, p.last.y + path[++i] * 1, p.last.x + path[++i] * 1, p.last.y + path[++i] * 1);
+                    return i;
+                },
+                S: function (p, path, i) {
+                    p.curveTo(path[++i] * 1, path[++i] * 1, path[++i] * 1, path[++i] * 1);
+                    return i;
+                },
+                s: function (p, path, i) {
+                    p.curveTo(p.last.x + path[++i] * 1, p.last.y + path[++i] * 1, p.last.x + path[++i] * 1, p.last.y + path[++i] * 1);
+                    return i;
+                },
+                L: function (p, path, i) {
+                    p.lineTo(path[++i] * 1, path[++i] * 1);
+                    return i;
+                },
+                l: function (p, path, i) {
+                    p.lineTo(p.last.x + path[++i] * 1, p.last.y + path[++i] * 1);
+                    return i;
+                },
+                H: function (p, path, i) {
+                    p.lineTo(path[++i] * 1, p.last.y);
+                    return i;
+                },
+                h: function (p, path, i) {
+                    p.lineTo(p.last.x + path[++i] * 1, p.last.y);
+                    return i;
+                },
+                V: function (p, path, i) {
+                    p.lineTo(p.last.x, path[++i] * 1);
+                    return i;
+                },
+                v: function (p, path, i) {
+                    p.lineTo(p.last.x, p.last.y + path[++i] * 1);
+                    return i;
+                },
+                A: function (p, path, i) {
+                    p.arcTo(path[++i] * 1, path[++i] * 1, path[i += 2], path[++i] * 1, path[++i] * 1, path[++i] * 1, path[++i] * 1);
+                    return i;
+                },
+                a: function (p, path, i) {
+                    p.arcTo(p.last.x + path[++i] * 1, p.last.y + path[++i] * 1, path[i += 2] * 1, path[++i] * 1, path[++i] * 1, p.last.x + path[++i] * 1, p.last.y + path[++i] * 1);
+                    return i;
+                },
+                z: function (p, path, i) {
+                    p.andClose();
+                    return i;
+                }
+            };
             return r;
         } else {
             return function () {};