diff --git a/apis.google.com/js/client.js b/apis.google.com/js/client.js new file mode 100644 index 0000000..b6479c0 --- /dev/null +++ b/apis.google.com/js/client.js @@ -0,0 +1,17 @@ +var gapi=window.gapi=window.gapi||{};gapi._bs=new Date().getTime();(function(){/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ +var g=this||self,h=function(a){return a};/* + gapi.loader.OBJECT_CREATE_TEST_OVERRIDE &&*/ +var m=window,n=document,aa=m.location,ba=function(){},ca=/\[native code\]/,q=function(a,b,c){return a[b]=a[b]||c},da=function(a){a=a.sort();for(var b=[],c=void 0,d=0;df}f&&c.push(e)}return c},X=function(){var a=C.nonce;return void 0!==a?a&&a===String(a)&&a.match(V)?a:C.nonce=null:n.querySelector?(a=n.querySelector("script[nonce]"))?(a=a.nonce||a.getAttribute("nonce")||"",a&&a===String(a)&&a.match(V)?C.nonce=a:C.nonce=null):null:null},ua=function(a){if("loading"!=n.readyState)ta(a); +else{var b=X(),c="";null!==b&&(c=' nonce="'+b+'"');a="<"+U+' src="'+encodeURI(a)+'"'+c+">";n.write(Y?Y.createHTML(a):a)}},ta=function(a){var b=n.createElement(U);b.setAttribute("src",Y?Y.createScriptURL(a):a);a=X();null!==a&&b.setAttribute("nonce",a);b.async="true";(a=n.getElementsByTagName(U)[0])?a.parentNode.insertBefore(b,a):(n.head||n.body||n.documentElement).appendChild(b)},va=function(a,b){var c=b&&b._c;if(c)for(var d=0;dd?a.href:a.href.substr(0,d));a=d;break;case "protocol":a=f;break;case "host":a=a.hostname.replace(z,"").toLowerCase();c&&(d=/^www\d*\./.exec(a))&&d[0]&&(a=a.substr(d[0].length));break;case "port":a=String(Number(a.port)||("http"==f?80:"https"==f?443:""));break;case "path":a.pathname|| +a.hostname||y();a="/"==a.pathname.substr(0,1)?a.pathname:"/"+a.pathname;a=a.split("/");a:if(d=d||[],c=a[a.length-1],Array.prototype.indexOf)d=d.indexOf(c),d="number"==typeof d?d:-1;else{for(e=0;e>2;f=(f&3)<<4|g>>4;g=(g&15)<<2|h>>6;h&=63;e||(h=64,d||(g=64));b.push(G[k],G[f],G[g],G[h])}return b.join("")} +function K(a){function b(k){for(;d>4);64!=g&&(c+=String.fromCharCode(f<<4&240|g>>2),64!=h&&(c+=String.fromCharCode(g<<6&192|h)))}};var L;var N=function(){var a=aa,b=ba,c=M(),d=function(g){a(g.target||g.srcElement||{})},e=function(g){b(g.target||g.srcElement||{})};if(!c.init){w("mousedown",d);w("keyup",d);w("submit",e);var f=HTMLFormElement.prototype.submit;HTMLFormElement.prototype.submit=function(){b(this);f.call(this)};c.init=!0}},O=function(a,b,c,d,e){a={callback:a,domains:b,fragment:2===c,placement:c,forms:d,sameHost:e};M().decorators.push(a)},P=function(a,b,c){for(var d=M().decorators,e={},f=0;fc;c++){for(var d=c,e=0;8>e;e++)d=d&1?d>>>1^ +3988292384:d>>>1;b[c]=d}}L=b;b=4294967295;for(c=0;c>>8^L[(b^a.charCodeAt(c))&255];return((b^-1)>>>0).toString(36)},fa=function(a){return function(b){var c=E(u.location.href),d=c.search.replace("?","");var e=A(d,"_gl",!0);b.query=T(e||"")||{};e=D(c,"fragment");var f=e.match(Q("_gl"));b.fragment=T(f&&f[3]||"")||{};a&&ea(c,d,e)}};function U(a,b){if(a=Q(a).exec(b)){var c=a[2],d=a[4];b=a[1];d&&(b=b+c+d)}return b} +var ea=function(a,b,c){function d(f,g){f=U("_gl",f);f.length&&(f=g+f);return f}if(u.history&&u.history.replaceState){var e=Q("_gl");if(e.test(b)||e.test(c))a=D(a,"path"),b=d(b,"?"),c=d(c,"#"),u.history.replaceState({},void 0,""+a+b+c)}},T=function(a){var b=void 0===b?3:b;try{if(a){a:{for(var c=0;3>c;++c){var d=ca.exec(a);if(d){var e=d;break a}a=decodeURIComponent(a)}e=void 0}if(e&&"1"===e[1]){var f=e[2],g=e[3];a:{for(e=0;e>21:b}return b};/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ +var $c=function(a){this.C=a||[]};$c.prototype.set=function(a){this.C[a]=!0};$c.prototype.encode=function(){for(var a=[],b=0;b\x3c/script>')}else c=M.createElement("script"),c.type="text/javascript",c.async=!0,c.src=a,b&&(c.id=b),d&&c.setAttribute("nonce",d),a=M.getElementsByTagName("script")[0],a.parentNode.insertBefore(c,a)}},be=function(a,b){return E(M.location[b?"href":"search"],a)},E=function(a,b){return(a=a.match("(?:&|#|\\?)"+K(b).replace(/([.*+?^=!:${}()|\[\]\/\\])/g, +"\\$1")+"=([^&#]*)"))&&2==a.length?a[1]:""},xa=function(){var a=""+M.location.hostname;return 0==a.indexOf("www.")?a.substring(4):a},de=function(a,b){var c=a.indexOf(b);if(5==c||6==c)if(a=a.charAt(c+b.length),"/"==a||"?"==a||""==a||":"==a)return!0;return!1},ya=function(a,b){var c=M.referrer;if(/^(https?|android-app):\/\//i.test(c)){if(a)return c;a="//"+M.location.hostname;if(!de(c,a))return b&&(b=a.replace(/\./g,"-")+".cdn.ampproject.org",de(c,b))?void 0:c}},za=function(a,b){if(1==b.length&&null!= +b[0]&&"object"===typeof b[0])return b[0];for(var c={},d=Math.min(a.length+1,b.length),e=0;e=b.length)wc(a,b,c);else if(8192>=b.length)x(a,b,c)||wd(a,b,c)||wc(a,b,c);else throw ge("len",b.length),new Da(b.length);},pe=function(a,b, +c,d){d=d||ua;wd(a+"?"+b,"",d,c)},wc=function(a,b,c){var d=ta(a+"?"+b);d.onload=d.onerror=function(){d.onload=null;d.onerror=null;c()}},wd=function(a,b,c,d){var e=O.XMLHttpRequest;if(!e)return!1;var g=new e;if(!("withCredentials"in g))return!1;a=a.replace(/^http:/,"https:");g.open("POST",a,!0);g.withCredentials=!0;g.setRequestHeader("Content-Type","text/plain");g.onreadystatechange=function(){if(4==g.readyState){if(d&&"text/plain"===g.getResponseHeader("Content-Type"))try{Ea(d,g.responseText,c)}catch(ca){ge("xhr", +"rsp"),c()}else c();g=null}};g.send(b);return!0},Ea=function(a,b,c){if(1>b.length)ge("xhr","ver","0"),c();else if(3=100*R(a,Ka))throw"abort";}function Ma(a){if(G(P(a,Na)))throw"abort";}function Oa(){var a=M.location.protocol;if("http:"!=a&&"https:"!=a)throw"abort";} +function Pa(a){try{O.navigator.sendBeacon?J(42):O.XMLHttpRequest&&"withCredentials"in new O.XMLHttpRequest&&J(40)}catch(c){}a.set(ld,Td(a),!0);a.set(Ac,R(a,Ac)+1);var b=[];ue.map(function(c,d){d.F&&(c=a.get(c),void 0!=c&&c!=d.defaultValue&&("boolean"==typeof c&&(c*=1),b.push(d.F+"="+K(""+c))))});!1===a.get(xe)&&b.push("npa=1");b.push("z="+Bd());a.set(Ra,b.join("&"),!0)} +function Sa(a){var b=P(a,fa);!b&&a.get(Vd)&&(b="beacon");var c=P(a,gd),d=P(a,oe),e=c||(d||bd(!1)+"")+"/collect";switch(P(a,ad)){case "d":e=c||(d||bd(!1)+"")+"/j/collect";b=a.get(qe)||void 0;pe(e,P(a,Ra),b,a.Z(Ia));break;default:b?(c=P(a,Ra),d=(d=a.Z(Ia))||ua,"image"==b?wc(e,c,d):"xhr"==b&&wd(e,c,d)||"beacon"==b&&x(e,c,d)||ba(e,c,d)):ba(e,P(a,Ra),a.Z(Ia))}e=P(a,Na);e=h(e);b=e.hitcount;e.hitcount=b?b+1:1;e.first_hit||(e.first_hit=(new Date).getTime());e=P(a,Na);delete h(e).pending_experiments;a.set(Ia, +ua,!0)}function Hc(a){qc().expId&&a.set(Nc,qc().expId);qc().expVar&&a.set(Oc,qc().expVar);var b=P(a,Na);if(b=h(b).pending_experiments){var c=[];for(d in b)b.hasOwnProperty(d)&&b[d]&&c.push(encodeURIComponent(d)+"."+encodeURIComponent(b[d]));var d=c.join("!")}else d=void 0;d&&((b=a.get(m))&&(d=b+"!"+d),a.set(m,d,!0))}function cd(){if(O.navigator&&"preview"==O.navigator.loadPurpose)throw"abort";} +function yd(a){var b=O.gaDevIds||[];if(ka(b)){var c=a.get("&did");qa(c)&&0=c)throw"abort";a.set(Wa,--c)}a.set(Ua,++b)};var Ya=function(){this.data=new ee};Ya.prototype.get=function(a){var b=$a(a),c=this.data.get(a);b&&void 0==c&&(c=ea(b.defaultValue)?b.defaultValue():b.defaultValue);return b&&b.Z?b.Z(this,a,c):c};var P=function(a,b){a=a.get(b);return void 0==a?"":""+a},R=function(a,b){a=a.get(b);return void 0==a||""===a?0:Number(a)};Ya.prototype.Z=function(a){return(a=this.get(a))&&ea(a)?a:ua}; +Ya.prototype.set=function(a,b,c){if(a)if("object"==typeof a)for(var d in a)a.hasOwnProperty(d)&&ab(this,d,a[d],c);else ab(this,a,b,c)};var ab=function(a,b,c,d){if(void 0!=c)switch(b){case Na:wb.test(c)}var e=$a(b);e&&e.o?e.o(a,b,c,d):a.data.set(b,c,d)};var ue=new ee,ve=[],bb=function(a,b,c,d,e){this.name=a;this.F=b;this.Z=d;this.o=e;this.defaultValue=c},$a=function(a){var b=ue.get(a);if(!b)for(var c=0;c=b?!1:!0},gc=function(a){var b={};if(Ec(b)||Fc(b)){var c=b[Eb];void 0==c||Infinity==c||isNaN(c)||(0c)a[b]=void 0},Fd=function(a){return function(b){if("pageview"==b.get(Va)&&!a.I){a.I=!0;var c=aa(b),d=0a.length)J(12);else{for(var d=[],e=0;e=a&&d.push({hash:ca[0],R:e[g],O:ca})}if(0!=d.length)return 1==d.length?d[0]:Zc(b,d)||Zc(c,d)||Zc(null,d)||d[0]}function Zc(a,b){if(null==a)var c=a=1;else c=La(a),a=La(D(a,".")?a.substring(1):"."+a);for(var d=0;darguments.length)){if("string"===typeof arguments[0]){var b=arguments[0];var c=[].slice.call(arguments,1)}else b=arguments[0]&&arguments[0][Va],c=arguments;b&&(c=za(me[b]||[],c),c[Va]=b,this.model.set(c,void 0,!0),this.filters.D(this.model),this.model.data.m={})}};pc.prototype.ma=function(a,b){var c=this;u(a,c,b)||(v(a,function(){u(a,c,b)}),y(String(c.get(V)),a,void 0,b,!0))}; +var td=function(a,b){var c=P(a,U);a.data.set(la,"_ga"==c?"_gid":c+"_gid");if("cookie"==P(a,ac)){hc=!1;c=Ca(P(a,U));c=Xd(a,c);if(!c){c=P(a,W);var d=P(a,$b)||xa();c=Xc("__utma",d,c);void 0!=c?(J(10),c=c.O[1]+"."+c.O[2]):c=void 0}c&&(hc=!0);if(d=c&&!a.get(Hd))if(d=c.split("."),2!=d.length)d=!1;else if(d=Number(d[1])){var e=R(a,Zb);d=d+e<(new Date).getTime()/1E3}else d=!1;d&&(c=void 0);c&&(a.data.set(xd,c),a.data.set(Q,c),(c=uc(a))&&a.data.set(I,c));if(a.get(je)&&(c=a.get(ce),d=a.get(ie),!c||d&&"aw.ds"!= +d)){c={};if(M){d=[];e=M.cookie.split(";");for(var g=/^\s*_gac_(UA-\d+-\d+)=\s*(.+?)\s*$/,ca=0;ca=ca[0]||0>=ca[1]?"":ca.join("x");a.set(rb,c);a.set(tb,fc());a.set(ob,M.characterSet||M.charset);a.set(sb,b&&"function"===typeof b.javaEnabled&&b.javaEnabled()||!1);a.set(nb,(b&&(b.language||b.browserLanguage)||"").toLowerCase());a.data.set(ce,be("gclid",!0));a.data.set(ie,be("gclsrc",!0));a.data.set(fe,Math.round((new Date).getTime()/1E3));if(d&&a.get(cc)&&(b=M.location.hash)){b=b.split(/[?&#]+/);d=[];for(c=0;ca.split("/")[0].indexOf(":")&&(a=ca+e[2].substring(0,e[2].lastIndexOf("/"))+"/"+a);c.href=a;d=b(c);return{protocol:(c.protocol||"").toLowerCase(),host:d[0],port:d[1],path:d[2],query:c.search||"",url:a||""}};var Z={ga:function(){Z.f=[]}};Z.ga();Z.D=function(a){var b=Z.J.apply(Z,arguments);b=Z.f.concat(b);for(Z.f=[];0c;c++){var d=b[c].src;if(d&&0==d.indexOf(bd(!0)+ +"/analytics")){b=!0;break a}}b=!1}b&&(Ba=!0)}(O.gaplugins=O.gaplugins||{}).Linker=Dc;b=Dc.prototype;C("linker",Dc);X("decorate",b,b.ca,20);X("autoLink",b,b.S,25);X("passthrough",b,b.$,25);C("displayfeatures",fd);C("adfeatures",fd);a=a&&a.q;ka(a)?Z.D.apply(N,a):J(50)}};var Oe=N.N,Pe=O[gb];Pe&&Pe.r?Oe():z(Oe);z(function(){Z.D(["provide","render",ua])});})(window); diff --git a/www.photopea.com/ads.js b/www.photopea.com/ads.js new file mode 100644 index 0000000..41fc89b --- /dev/null +++ b/www.photopea.com/ads.js @@ -0,0 +1 @@ +window.jsLoadedOK=true; \ No newline at end of file diff --git a/www.photopea.com/code/DBS.js b/www.photopea.com/code/DBS.js new file mode 100644 index 0000000..ee834f4 --- /dev/null +++ b/www.photopea.com/code/DBS.js @@ -0,0 +1,5222 @@ +var PIMG = { + "tools/blur" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/n5CCLf0HtTjyoUNqAAAA+pJREFUeJzNmrtvE0EQxi3biUO5hoRLd+cQQcmmQKIzFCjuOKCgjUBCdKSgoEsE9Jjnv4sv5/X51jvPHSG+7qTTTzu738w+BwOeJh+YP3I1LK2Bz42B+3eNgX5qDKyO56a8yYUrTYFD565MgQvnbpsCK+cKU+C1c6aduOpC534aAhcN0NKJVQM8sqsPKxc2skvnvRueoXF8CzTLvvGyBZrFPFzzzGL2AXhsM87j6wA0inkTsZW3fQc08fZk2QFNYt7b4pnEXG0D3cNs3uiiB8yvYec9njvMBtZ9YHbdHkY89yYT+CgGZqbfptBYWXFvh5dpxWoXmGXFUYLn/mQAP6WAOVaMTdiqVPN2TNhKPxP4NFBdFScXaaD7ogSeAzy1FdNDoh8WYEgavVMBd+pCp2Ku4PUmp1iaCpGoC3nDkqoLGx3JK0SyLnSST1bJutBJXiFqHCi2ImLCVlIregootCJqQk3MqAlbyaoiasJWoqo4girhtiTpB1bCbUnSjxGxKGYi7eQxL3hAfsysiAUxMyPmx8yMmB8zM2J2zF3EL04JYskCHoTf7w8GH3EgL59DxJ8HvZ1oSqzDobCiOZw3Xz4/5lC5XvW+AL1lANdtWp9YEFMBxzjrXltvcAiTM4wTmlSygIxkWfQiJoG0cap+51BAcsIfr03zLeoBUNQiJ+pCGkh1Yqg0YfQOUNpK1IF5FXXNJQWknLiMfiNLGeHEMKgbIF4cGpUoMKRusBc5Jp0f0vIRkBwTytqhy6bRNyLU2sHWoXJy1jjoqHSJVt58P6Z5+Kh05XTKbSCeK8+6316ueDWHh+aK3/rv1+mSxUNzhdekSNgws/os1hHMY6+S+oJLIiPRUipBIGMzkRLsm1s6IFwenuiAsBG9DgjXG/ZKsy/Y2ebAWgeEU8UcSM9IScHr2KUOeAwCVbUBqw46nnP/DmgesjlQaRt4lGsdEPahEghnyv9fbbw18FIHhCv2vg54BwQqp9ErEGg+0SuXIjBwrAMia+Jaw8NOMlTOxhaclxogtlFh7HN2hW2lVL4pESB4rYUJ3Y7Wch5+6uDlQHzzqMjmKxSoSL4SBconPupVj5cCqUMMcSfiXbhyohRIXp8J6wN92cU+xG5FX9gLjcO4MBTFzDkyZV3OBHHuwiUVh3d27/lA3km7oMqWLCB/WLjXH+wmsi+lmE1sbwsMm1hyecwmSi4KWU0UNBB94xAke141IaeCQvik5SkFvCfjkYebP6S8wRgd6elcDETPNw9VT7VG4MAUyqdfQ4BYlDoeFLUu3laTB7u873nP+86isIuTLFzTyNkWsphZPIQdn81e/3bu/dfZyZz++y9FVrh4nhxGvQAAAABJRU5ErkJggg==", + "tools/brush" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/hKxffA311BeudL+agAAA9hJREFUeJytm81v00AQxa00pOlxCSZwM6KoVxYC5ZiAEOVGQAKOLjduuBVwDRJwJv8xiZ00/thZv3m7c0sl/zS78/btetZNkoAYnU9fhjzfiYUx6Soi78hsYpLFAy62QPM5Gm+wLIHmSSzgUcUz0zwS8HIHNHciAe0eGGnQ4xteJO0cH4BxBr2oAc1VOG8vmmiDHppGTIKBD5rA8EHbFjB00CPTjsBKH3eAgfJed4FpHgIsusCgQQ8dvKBBP3ICA4ysLZpd0O7dFc0u5iTwSAKydbmUgGbFAQsR+I3inYg8c5cCukUTMIkLGUj5YtOsIwBF0bBAWTTkHFoPkKny2MMzjwmgw6wPkRNAj2jMfYLnEw3lNm6zroKqsWfdcXZoIycomjWboGfdMSVOkl8y8B8FLCIn6BENl6AsmnsUT1535PlwICb4kUtQFA17lhPNmkxQFE2acTxxh2ffAc4E3pRMUBQNm6Bk1nTfQRINfbYWRMM3RqwbyOzFZQjrjn8RFYB0gkniLHLI+5NzDucBQFeVg95qXcckzvi/vvq+fdCxJ1PGf/rM7AyvM4mM8Q/elI+WhtJxG8JXT/ZZbeXWHjNh/KfLRjnXoQkeeNV7YXOf1/tqnVelE9bxGhedfIbtP2hiYE0jrlopqn31daumpZGOl42fmnho2lEa1VnjlyJGyw6wymk3aLWvurbMctZG1dTOlTznDlfVdbRd21rbald4F1WnZ/D7/FqboHToYLfgQSEAU85QxQTZhpmY4CYmDLGr6UCi9QEJou+VuJxHbWXWPUCT6i7LHKu4Q3yuAcqaqUWmANrIQG+j5yZyHOjrUlBAaMSKZquvS1ELXIq+7iAF9HUHKaCNDASnEC8KOIU4EFOhQoe+diMFLEBgBvLQmhg0wT6z3keKAr0t4FpMUSC4TvCzF1pk+KxURAbKzbJWoD1/z+VQM26DQHQlm3cg8BYKRE/s7YtyMeYgEFUN7A0WBWYgsAB56EKBZYjqGpYhqmvUvOA7VdS8YNXAMsxBIOqGsL1Gd0MLAlGvgXWNWgOs6xwEYqdrxQ6F6hru8aF+DfdDUF3nKBDUNd5gAXX9HgZaDDiHgUuIBy9k9GyIfygAyhAfMSZDRRMNOzYo+qSeq+NDaDrNkAw1vfolApzjPEg1mrYhVGRFgtBbnqqvCdREd9tR9AN/aHjAQUnXyO0/1yibm71TqGy/er/LKXnK7+H7VKj+vr5ng5qslLyeEc8yJc8/4gnx7wRWxqUv1On5tpPpLNfjZBFeXxDZJdIMfph9oWjOy5NPswuWtok/ddLPp7O3fzOa9R+zT4BdqVJm+AAAAABJRU5ErkJggg==", + "tools/redeye" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/+YUU4qwrbjghwAABYdJREFUeJy9W0t72zgM1NZOzivF9jm2W5+jPPasbJuezTbt2fEm+/9/wkrimwSgoZJvcUksUcMBMIRIOKmq0O5/n3f17vDrawXZ4tz8lO7f/6itbZ5vAEBV103H3/5eh7YR5x7tchzHzvx3ndgrQLC3z8zdHyleXX+R3V6YYbQrGb/B1iLipRlFhvGBwusRJcBHYdRiSwOyARrsxY36h58ss3ystaUflDl9weIJOvskhEbxgPWKA4we2qMEezvSeHHYY0eiuZrDOc4Qk+mERTgqiO6whh/OCcUTCdgmowKnb/3V15vqr8xnmuJLMipw2t969XSb4AEqiss6NTevD8agYtV8vR9j+Fm561SiP2WATrIuGOsRfW9i0Nw5jg2xpImlYJ1+CT8/1p11Z7902SbSQq1V7bQtQiPjXlw39tLa5ydPCy3d0WlbhDZmnAPsf1N2ZObzbY5mY9OaD0cTT+dyf8WlMvNZpVjaVj66axvqvZv+2pfdqwRvQcJpWi8BweGDlc04nV2waRAvabhxoH5kQ+Ru7WPVJIB8/ewq/XNPeDIALt24SdFou9b3jHRjwE3AJV59+bpzttIxXFGxtkLSE0+Lxrilhh9WFpnLNmkxoOIBN9onG6IoNquAzZ+QaEbANiQQTX0VxCtiyIpmBLz03iVyuA5Yn0LAVgBcGwbG56jK6WsX4f0qCCttV4bBPtdDE5IOq4MgmtGVx+DpMIir4Olo6RHF2tuNvX/K4n0MkhwVB37daRYxBxcfU363AXgVXqLt6N08xgEyLwhNMHqpSPuMdfCQpfigF/fPkE302munCFpSJor9WWDbvGl+dtFGpUEQTSxnYjtvCEbVUBJNF0cl362afEZ7NWHd+cgowrPe7Gu0Cy8KovHjzKzJDmHp3y2B8aIJxxmKURiXNvoRQUE0HTEsQHR4cWj5Yh07Yl/A7oT3YF1L4qAgguF6+vLtrrp78rvY+FzBF+t0z8fFJtESK5r8+EEHJ1U7K5p9ikcfH7N5OdFQe1LigJvhseuOIEhwzOPCFWuSYG/fI4+I87cqIji45N0+POe3uWLN9x36avh03vXHszey0cJpiz8DT1jLEJyLxxXr01w8Zt3NJ8gAMgdqxMgki52TCSNj+A6CZGl4D0Fy5XWzkO5/b4cHidrANk1EuKF+jxuwPIgzCC70+h4LSlaFpVYWY+7td6pyn6X+JmPu7afTmeSZLVs8XhKuuN5wdRXhZ9Oi3kVwuc34XKQXSmyRqGQkFESxuK6qGE/XKZ9oqfCTlnfBTsPl2+hTgS3zYrUJiRfX1dRhFzUT2tKyRW6LdF7HxVNattIMG9Nrd/F0PnSFgNxOdforB4Ygu80qZTZBcC6idOLczEGU2hSzEKWuwhxEufU+I45SE0AjlqlH6hxZI7ajvAm9Mm8ltUtOSTmg2Ohx1n2wxyWA6oMBkRwXAYrLbg7gpKpLASHRFACCIcQBpwpDMWD70YBgTvClJ7Ub5wCiOalRgmhO0i9EWBNbwHMAWxAQ3nspEBDeK6FJRgHhJKNnPKz81/kXc5yBxTD9Cog3VDXwjr1FAdEdNloa4GIDlmu8NqAyRBcKLENU17AMUV2jxevjZYiq5g8UsAMBURnC5VWBgHA1RHWN1hpY1ycQD9Z1BwKiuobfUKiu4R4fWq9PKCCq6w4FBHWNN1gUBgirENU13rHBdA0vZFTXeGMYlCHuMSbDgiYaJsOCPikmw4KTt0LwSnr1kGo6HA8qXiVtQyjJJX3N9oMJQknuSgCBnBT16oGclDVyp/c1hU256ZZcGZ74dzkjXmGD+P9uQha3SSc8fi3+skjuC8/orysheuX0pJTMguMJHqB/iUAJwv+0kRnx5cnu7XkuWhX/Tcdu9++v52/zHB3sPzzX7P3zni6+AAAAAElFTkSuQmCC", + "tools/crepl" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/+ISTKuBt2joDwAABQxJREFUeJytmk9b2zAMxjv65+6M7ryGsTPlAc5m28O56VjP6Qbf/yuMOE5iy5Ly2k91w0l+keTXiq2yWAT28F7vqvr0MxhaLxRbHqt/yuXV0Xj7bsfBswY8G1NZ8erTzow23vZkFN66u3V7J/FMaFXrBjdGA57drd/4i6udiYnWPyLzlv7W3+zFxhDrQvlwUAGuaX5C+0F5LpSzCnwe7vySXtukPGNaNyoDp6DSoM8ccHtWgSua8MDWHM+bCLwKbiJBBzNS1ccdCIyiuokuPY64t06lLw0CXMYvjoIeAIPol38BIJnHLXMpWETneeCe5DoI2uspnKogHgnYEOD0+PBwJKbNHHBlqI0zvU6TEDogAK8S4OiRj/gQ3T/r4XMKHILecQ6e54C7FOiD9smIlRloguexi78P2qfQCg4KwD0LrO7GS/FiDN/PAxsWaK4XQ3bjKQkzzvKWPO+j5A3viiMOM84CxfLE1FrIGNF4s7PPssaJprevRbx03Y12XQS8l4FlSWQ/Qb1t559OTRRNKVD7phUBZdEU5rBRgCWzrIiGrmHMmGI9mS0AKqIpingprztXbbKNL9a9Fc3x/sIOaqJxDoYD8ZM/mDFdNC0BVpwrFKisuz6DwUD8Ke1dSdamsu4sAVbxEeYqeGtgsmi8BqcBsvXu9fuZ8BTRWAIkZyyffLo25WI9LJJx4MA+aQlQXneWAMkUr9g9lFKsx1U8jkQpHA4GNwQoimbawDJDH7whMnp2FUUznUmnsWlWRl5SjSTRBJILRrfex+lYYQlPXHdBaqL3dAef5cvoRnK2lkQTrglypa537G29SaIJ504KwjCnVkk00Zu7gS375rT8SqKJ3twNHNhk0xkRi3W8aI1bDnyLgFrDA+NF2w/wTQwshWR5+gG+zQIBDxTYD2xiItvTYtcJnbvx0dBHoUfG5rAlN00vmFZc0EyLjCsNibjCDDy814a0+yLjtknCu2fs4X3XPcjItWjX/9Q1Ft3XKk1igYM+tW69JtWmwMHV4FWXbBqz0t+UbOp7uukk80w/OQCPpCv+zqcFE/dvyJfS8QIsXuDOnw0dyDFagm6Ii2zzVTNax51H00SLDWfJHg01t0zvo78yjFbI0SfvePYxkftwuaz51LaZPPYL18+rWzy5R5L0I+Os/3ItX463uQ5Km45sqQwOitssWwaUt9JlRO3EOWz6LuRgIbHRgAVE7UhclEetj9ITtR/LUlPbHt5ec4DqlAyWU7uaCwORiLO+8FDEOUAo4gyg1h0sAmrdwSLgrKpzgc2FgWAKcSCYQhy4vzRQazeGBi89rd1YAkTnRPupPbK5Yj1YNY/qTW0BlwD3IBDee6GTDAPRSUY3X/Ako0corPybtFEpGbqS4R+zUNXAO/Y9CmxBIKoauNg0KBCtDagMUV3DMkR1DcsQ1TVavC4vwxYE7lGgBYHgrgEvr6iu4ZNjAwLRWgPrGi0NsK4tCER1Dc8Jqmu4hYbqGu6H7EGgRYGgrvEGC6hrWIWorlsYiOkaFg0qQ7zvCsoQjxjbNmQ00T5BwIw+KSZDiwMbhJfTCodU0+I8SDU5bUNokjMchGpNVl8TKQ02BwjMSVavHpiTvEbufP3PbMrNpjCTp/5fjuPltfhmVZjLm6sM2W3SmYhP2T8WqRFnh7tQS1f1mu2e9jmp8qPtTBLh7VsRTsjgrfw77owxP57Up7dS2iL+H4K6/nN6+1UWaGf/AQXmyKddsqKaAAAAAElFTkSuQmCC", + "tools/burn" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP+AJpXFc0u+e3hoayrHQAABy1JREFUeJytms9300YQx7dSZMu3Chv3cZMU0pZbZbu0vaEkpHCrTUIft5ikAW5QfpwNfU3KjVDaR//bypJ2d3ZnZ7Wy8r1EcqSPZmd2RtofLGrUXnr0+eL9P4t0mjdfHLGmC0Y7TKi/uN0d+A1T9Hq7wcwm4DWma2BHNgG/Q8A1sgPwFwOQsZubAz8YgWG2MTA2Apm3MdDkw7UONwXiKNeBWW4I1Puh0HkUTXbSzBU4mk7SQtun0WjyqxHYz4br6KB4m4Cjya3n/L7X27Po5JaJ+HINZGHSDJxoXaVI4L2d5wjYPy2vC7IG4PhbbMy7WYHEXqx6gJdbgePY6LFFFp3oSTPYrf4+tAJ/MPIKX20rhazUYfXwfmYBUt1u3e4smqi/ePXVngVIJUbZxK+jx+ovSVybSgPNtYDrQfSbcu7frf4GOQUcWnlr4o+KzfsfkIntgOzvUQxPkyfIRBVoiUmth8ozfX52SAAbLSxKK2z0IK8NDqigxBihyR/DwCX3+AEBHBoST1PyDJy84W3yCWDxnTBN052j//6ymLiSJx5vU5hTQKH9s+k0fYSrDMuewhO9zVSBPTg7uX22XxQLXF/PYejmvGP4JPBgkh5d1FeFi6K+TlYqMMhj4ACeXAEB3ENR+ZgNtcKVgO4aiPTPjMDHBp+FN4dqivsjcJ7d4I03AbX6VGuQ7apPyI+BudyjPQNQq05CnlZ356DNvdGKX4SAqh1Qh8MVPPXBN5ToiSzXgdcM/qsVZjA9WB+0OYz4caIBx+Yvt9qOkfJfGGcRlbcaMGY2JXfhmc8dB+G+ClSLO1KwD00Mc/nyeTXmlyjAIe3ASoeKicl1aW3ErV1CYNzAY4NTaOIbmc8yzAkAKo836xxeE0gLQpF8lxI4skWY33gKEzA7xoe+BDoYWJgI6+Cl7DjJnfrAE0AXAwsvnoHAeWNxOOcBCgWw+e1Z6hP4UOnnMT98IW7PODBmTgr2wElyzI96ApjUwHFTH+Sagye/ERjxti+Tj7m3uHDcdXAsnOgJoF8Df3YFshmI3pKbG0h0DcQfhf33F+i30gTQc+b8tjDiPw3MwCC9na9ffisMDE8AXLQ/F1cuK+CxghPja/1lV5oVywuF65biwgwFJYTDdQPRg5WVp2ImnpJUQJkoC3VIaKhpM5nQwomJAL6tO/ZudePHWaQJV93zJ+LQF581Igg+Lw67ty7+TBGusD3WeCy4hg8l0CuB0ykmceE+L9vHZrVH5scKsGjWO5qITOzdF4c85PMv+S/9Alh+PpIDfmzi4EBEyq9T7O0N8d9lxMo7yAG/YZ5Ftpn3oS2Z4lnEqvb/SwLvMU0yQ3gS90D1jlj1vICcfkIjjfBAHO7Xj5DAOQcyfaRvCUsivDCrmy4fuhWx+r8+CbzONPXEIx7UNsv3ix+xVXXUJ8MyZpoGKE4zCJStd24z0u/iyJNAus3uBX39RcGbXIwDKaDzK4etU4WJckTGGXwLNitnwsOvOjhRKuP90DYl2MaJAMjIjtPGiQmTrzzSiagnOgJ7ZJudPs4qzdkdcUw70TY9pOkFk8WRduId8n6kLQY8TjoR1QdaPQbqHenEFmH2GQgh6cQWYfaZGLYwixPtc2waMJZnpBNj6n4kj8E+QZYw935TAEGmhlQJO24DhH2CavNXbYDwPUm12b0jBiwagVPqVeXeEQugEsJPXYEDpoYwMAPdS+waqHy9mMMSE7djhUxrjzH9mmdSFaCaqZkB+JS4mwCqBfkl5o3cU7lQpCWWulRQymm8D4Fqt0Umuo33IVD1OTLxGXEnDdTeapqJ6sRck/olUKtOqoktXnmsjrKeWUpfpCcVLUB90gEs1o1bdZkq9SKUWoEsOrHpLouCCnhf+/kPzvu+JY8DUbLe3MiBEohaNigjves6oSPl1UA0AFuvJ5pmyV2BuEC9mxiXWF2BraPZCERt3lC+mNS9auBVtbkngFfU5i0BvKI2f+E6de+qSwls8SFt0RysVmyQF1gJWE9pV5odgG2GdKQyAGz5ujRrCdekWnxxkMoh8Aq6Yqguw8WdgZ4K7B4WDdg9LL62lNk5LD190b9rtrxos7XDRXO06N8RmKAF67gbMEPAjj1nidfoO5kYGhb9O3nRM+0ioDYZucg3Adt+YkL1jBsn2g1LFF2ad2LEGwMTM3DzBMyIvSINq+Gk+jkBxOsybuLreoZGrzYC+iRww0Z/ooHkxkibwqUFaN1GQahclCG3GFk2ehCq1mToPUut3VgNliy7TFu60bA9RlO73liNvez7YIdt6g4fEls31rYY64nxq32nLrXnCEluNW3Y+usYajBib9pL7DQCh5trGzcn/9TM4wF2AzYT1c2/zcCmVnsKzwVI7Fer9VGbtnUBRo/JHo539DsBoyGR1ws8q+wGjEamfRkLwzYBV2BRcVMV+dq066ANsLDyJE0ffV6x8P1Rum2mFfofAMK8VTbYFwAAAAAASUVORK5CYII=", + "tools/clone" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP/APIQQs55q5BeYkoWJgAAAiNJREFUeJzt2r1OwzAQB3AraqAdoQXEZgQd2CgC5lSInQIPAOIF6AZbmVgpC68LUqWkau7j7/gkGO7Wyj858df50rDDxsXHXSBj/HrNtwrsL9+0toq3dPBL8kI4TQVvZC+EhzTwMGpgsUwCHzUvhK0UcF/3QnhKACsE7OHgMCJgMYFB6IlDeIfBcww8hsFPDBzA4AsGbsPgLQaWMBgxsIBBzAt0WwcddNBBBx100EEHHXTQQQcd7ATGPwLx+7L5jX6BgWSxigQrDCRLSyR4hoFHMHiAgXhlaQR5CbUvbJj7ZNOMch9Z+mJA6CVOE0CkgEg/MVeDBZ55lgTqJUl6jPk6tlrxoyuwPLingctEcKhMRaaKLXwLuJRBctmJoNxFsloqg3IX5x1AqYvlpAModfGebyWAfBe5Sa2AfMH9RGgkgewWsewIclsEs88AILNFzDqD9BYhDYkGkjOH22cQkDz+5hkglZTIT6yBxFRkNy4IJMaZPj1RkJjb9Oc8FGxPHOUVqmC1CYrLBAB302ahDraSEjIpTABbwzzPBFtrRRnkdJDOuXBwuAlOMsHWNQ0Er5i/NOAxfl4HRzHX+11C0zUQ/P4rx6ABsWuEGtMaVJNBLGY1WNmAvRpc2ID9GgTvx1qUNRhtwKIGbbxVDcJBBx100EEH/zcYbbzmGDU/6Bc2YJOKVDZgkyyZp3PmCad5SmyftJtfKwzDQQdzwNyJ7aCDGeAPZXGkFFYM0ZEAAAAASUVORK5CYII=", + "tools/rcrop" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA5SURBVHic7dQhDgAgDEPR3v/SZY7A1DLBSP6XT1ZUimzlQHAA+grs4TkyCIIgWMNxt/417hKA4EtcbF58rs1ylXkAAAAASUVORK5CYII=", + "tools/pcrop" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/+WEU7QJKNimYcEAAAIhSURBVHic7drBbsIwDADQHKZyTiU+YJv6AVtBXCdR4LwB90pD4jqpDH5/TYHNTp2WxtYOm31suifbOEFEM4YRFgTHUVBBRlTC4MKKgqNnKwruXq0oWN1bSTBZ+BwP9NvHBVvtY4IVxcWDCVUuA7wjy40H3+G0pDM2iKbl8YN7OOBp2RjuaYPaN14aLog2W10uE0SbLZ2BlbhyUfvGL3ApCkSbbVOitRgQtg+VGwei9l0+DQ44evKGjwnuQLnn4eOBn53l9oL+oOKzKvw3t4Jws40FQDgtm5IPgmlxw8cGQfuaT4MNgnIva0LgdfikwO/hkwHBUSACwpNPAkQnHx/0Tj426B8FEntZQQUV/B2w6wUFFVRQQQUVhHEqcikwOcynb9efWkxw7yz4BckA90W+fbCtiAETa/Nt6540DkTtQpFm68kwsN0uQK2OHRW1wUC7ABWqiADpEh1VHKn3e0GCylk7BVPF6fycC2bbmirBcwaIKQGQfq6gggoqqKCCCiqo4H8DLQgFFfyT4KQUBm26XpVojQs25hKsCYB1ZJOjLNiYpSx4bqco6ExpELaTfL8XnFP3NRmezkGgMYcpddcCp3MgaMxo/kqk+TOdg0Hj0iTIaztjwFCaTTvjwGCa6ToaNGZPp9kHdkVyCP2jYCTo0lyErjgjQZcmeT0ZD7o0qXHngHWaFZUmA6xj106TB9Zp+ocHF2zSFAZv2MsKKngb+AVxPPizP25TOQAAAABJRU5ErkJggg==", + "tools/cshape" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/gzwl2pFvdUpEhUKmwAABA5JREFUeJytmj1y2zAQhTk0qZ8SkR0rnTIq3EaZcWowJwhvQE0uEHnSuKOazKgLOx83phASPwtyd4V9pUl9FPDeLgHIWUbT+i/xRqoKLQxctcLA40dhYHUvy8sPm50ocKFUIwoslNKiwL1SX0WBtVIPosCTUo+SvLV6l2TxlT3whyBw1QNbQWDXAz8JAqseKFl85x64leMt1FWNGLAwQC0G3BugXPEdDVCux1YGKGZzfjBAsR5bqv+SKr7lAPwlBOwGoFTx1QNQqseeB6BQ8a3VKJkeW1igFgGuLLAVAR4tUKb4KgsUKb6h8MSKb6EcNQLAwgVqAeDeBUr02NoFShTfyQUKLHDWylN68ZU+ML3HrnxgmwzsfGB6j618YHrxnX1gco9dqEBNIrAIgToRuA+BqcV3DIGpPbYKgYk2u93VKLHHliEvtfiWEJi2wOkgMK34aghM67FnCMSKL/IdUvSQLQ6SvE2TZW+SwMv7mPOTHO9x188iaCi3Swv7MiRKypfeESMhXy5jFmV8MY4YifiihevFr/F0X6wjQr5cfF6yL64jIr7okJfoS6zrpvgSOpLsS+hIqi/QkURfIo4k+TL9HrzNl7gjCb7EHbndlylHbvZl0hGjmsvDViZcX+YcMWL6MueIEc+XeUeMWL5onMfyhbZWpPuCO2JE9gV3xIjqC8URI6Ivmsoj+sJZvVN8oTpiRPCF6ogR7gvdESPUF83jhec/UNwTocg21Bd3Uyo+5DsM2DKB4KwhFHeXW2NA7i73hAGZhxnw8CLUhgcEJ1RQvCASGhgviCscqFnADgd+YQFrHMgLIjjyguIF8YADWUFEm5diBhFtXr04QYycoUFxgggOSmPiHNOhzasXJ4iE1PBOYyOHclCMIOYUHue3FULzUqwgRprXcw3/1pCBsHltm8j6iR7EDnz2NbZ+ogcRDK9vBDnIEv1ngfCjm+vgQIHTgxhO1x/z55+R701SmJphKbgO8k4OYpgaPVx4CmZiRwQGzevZXgkmtyECP3uf2jqNtPRnV08ifPnN68W95IeRGkRvYL6V/mKeGkTXzE1QX55hxCB6rzywG6knv/2k3IqAuxG3SRCD6I5Kw8uuL+BxUTnr9W+Ry26TaEjAbrx/G32XO1MSGUBEdtpf4jfYJtGSgCfMRNskPlB443p9ekM8NglSEMfmNbMhrpAxeBpSc7+bvmdoEqTfw4dX3uw7bQjjzENHddMRtBqaREMA1jMRtGL8B6GZ8O+057YE4DVk+MrKNAlCENfzEbR6IwaxRCI46tokCEFcIhH0H00I4h0WQau+SeB7iyMWQau+SeDPrtAIWj1RgnjCI+g+vcVuyVm7zPKAbnIXzGNB9PHFK4eX5b+xO8odC5iVvNtv0D+B3XgP7e3oqQAAAABJRU5ErkJggg==", + "tools/dodge" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/oBLBu6xINzJK6ihggAAAoRJREFUeJztmjtvE1EQhVdgsCgnyMHuNiE/gEUgoLOIkKBjRRRRJgVCdERICEoEiNoCwd8lttk8jPfOOXcOIcU9fT59u+O9j5lUFZt322++tqOXP7cf0H+6Lndf2Un2b4dxu2dwC+S9oF5rKxmFJB+t4ub5Ps3FDR6u45l9ziX28I6Jebz3fTyzXzm8x/08sx2eN5ylgJO3NPB+imf2guUlHzjjoQeHHnBzSgE/ejyzbwxv+MkHjpm6fPB5lCIiSCk+Q3hmP1CeX+Jl4EJfwXhmNQhsUOBNjDdsUeAIKwtYknmwsmzhwA3oiXEe9szXCaAdAMCGAQJ1HkCfXZfx1AVeZXhmd1zgUw74RfsKkZc444AT8Sv0XyK80nSpHeATFrjnABsW6FUFXKxPs+kAWxY4SvPoIntlpovslZlau5Y5SAKv8cDnSeARD7yVBDY8MP1DJDaoLumNSg6kPxTvU5nxwPSKSO1Qy4yTwJYHpj9mOZDnmV0ssOV5F/wO5T+bGQ9M/7Dln97lX20aHpheYI94YHoLkG9S8m1UvtHLjyLyw5L+ONewQO/AKT8Syw/t8muF/OKjv5rJL4/y6638Ai5vEeibGPI2i7wRpG9VyZtp8nZfdQMF1iAQrQraMoWXRLSpiwqibWdYEG2M/zdBdIz0r0o88YDogKYTrEUjpE5wQzXkOhEUjeFOBavkoPA1yDsrWClGmecEFcPW84JVeBy8IjhPbGD9l2AVG6mvEVxIZg/91wkukvlvCT2C+ekVzEwRjKYIRlMEoymC0RTBaIpgNEUwmiIYTRGMpghGUwSjufSCHVAm2D1yLQMuFXWCfxRrIXCuqBRcKNZSYLWlFTxWrIWw31NIeFzzqM8+AAAAAElFTkSuQmCC", + "tools/dselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/q1r3CQQPATtA2+vGAAABkBJREFUeJztms9zGzUUx3d27bW5IXtD8M3r8uto1RSmtxpoCbeESWF6cwIceouBmU5uaSkHbngGEv5cpLeSVtK+p/WudYCZ6NAmXu1nn/S+7z3tc5LkftyP/8hYxgZOYgPZJ7GBk01kIPsoNrA4jQxkT2MDZ1eRgewuNpDFVDcAp7GBMU1ksU2sgGweGzi5iQyMF4AaGC1HaGC0ADTAWDlCsjgQv44HzAAYKUdIVMIjqhuAWcQABGCyjWdiBRztoplYAZPrSt3xgMM1ECMUaQVMzmMFoAYqEw/PERqoTDw8AA0wL+PkCANMLuOYWAOViYEirRPTnsDkTVsAdgWOy5YA7ApM0hYTOwPb0lh3oEpj82hAZSJVpHsAlYlEAPYAahM33YD5AxKoTMQDkAT+Ots4k+xr14EApICZ7Ud/gioGqIkEUMTsbOlMci5XJqJFmgCKxPehO8m5rDItliNwYLZj05sAUGVaLABxIGfFlTfJnaBMRAIQBV46C8aAKtPiOSLz41I83g0s3Gugbgw4Yn+6H1z7T8Z0pUzEivSQHXkW+8dADKgyLRqAO3dveWMWGkpv6BxROsCsuQ48e1QmFoiJ5cSd1xADDkzJHMELd1pDCzhQpTEkR3B2EzSQAqo01gzAM1Y/JMVCngAqE5s3vLYWWWJ7QgGViY0lDWpgiqZNCqhMbGx6WsceR7MmCVSZ1jcxY0/MT2heJ4Eq0/rJIGPvGQP/xm6jgcpEr0gP2bH6YYe/etFAnWnd2BrrTfiROPgFgCrTetG/VrFXEoeqAFCb+Mz5UAVzSp2pQsB8jQQgn1X/UUeqEFBnWkdunG0S6ZLQiYoEqmLguHPL5G8prpk2oM60tj8vwBmcPOeGgaoY2HcP5OblO/I9MwzUmXZqfzKX/zyj7mgBJg0TU/auzIpkg6INqNLYxPrgyK8s+wHz739ZPVx8UEnRCsCRWP/Iq85B4PinV6vVYvENc4eRXS6AKaVqDJgyfJgiLRxsF5ZWYEYATY4oi4QHmhMe8JGQGEHUAViymzW9hR4wnRqhNIbOEZw9N2WgFSiWo5pCyLjT8xvbRAKFQ65EbBEDckQnoIzcOeqV2VeLxWrVGShzy7EQmjX+kqBX39048/cFQvabVF4pvlg8WH3+fIPO3xdY5ecr8Er/t/r6okrPc/DKbQSgqnHH4JX+bQJzUVVhsYnSK0Vo/n7Acz31FLwSKhl7AbWBchO37IBGhr54baR3BF45PhCojlp3pdzEjNHd032B+rWby03Mq608BGgaAwPYvoBX9gRymCQyXgabKL3yzyHAuv8j8/UE7KSbdOIk19LCs9s/crWnWUja4vHTMlzolYFQes/kJoJXyFsE8EX4KKIMVOuRm1gGpC3K/CSjO95Gz8qtlQa3AWmLWC/EE6mmvOHpbZYhuBkEpC2nbC5be4JGd3L9yywgbem4KxH6hImaZw6pL8Uvt0P7EQhwmbxo6QnWx+gUll/S0q7eAIa7cE+wviiNm214SNpbqYBzt0PlAe1XEQjktyFpn8mjiNhF9Ikm6KwFiU3MQtJ+B95IL/E+TB10ekAgg1fmBDAFjYpzBrboOuj0yGATS4gYCgiLzXaYp+ug0wMOiEsekHamrpxj338igpPG3UqvsObzHeCYI9uIyEMmnGkWkPaQVW+kyWhtt3MNsNn4EJL5XQJPcGBiwlJ42ncM0j2qjCsD0l4bRX0rdtqNeazbJBPOScgrVnvgsU9EO3DSuD8C0rZe53PuEbFmzoXcxN8C0ubWa8CwdIlY9MDL1CNGS/uMvV//AsR6KRtkPsTdSUlv4mvnSSOXiA3wMIcQRK8PXP9LG4vPQkDJKl7S0vabNrnw9ezjABDi7iEt7czfi/zT0MlASfupXQv96427fw5+ww8nhyntlRGSN34Ifu8L7z6clHYeOKjgQyYc9piW9rrrHxyAtBe0tMuuf0IEXplSXtGHgw7AsUw4k5KQdg9gdQQtCWn3AcqEw6B38yQOELxSEJvYBwgJZ9assb2BVrMF/0KiM5Ab4DwO8K0BNqXdC1g3W/AvdToD62ZLU9q9gJZX0O+xugO3+rZm/ekH1I3JLzeNS/2AyitY6ekHhISDF8d+QCntlvLdcVxg23fISEOV+378X8a/568kDpX/rPgAAAAASUVORK5CYII=", + "tools/ellipse" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP/ABCG7DvXsvtfwyisvAAAAntJREFUeJzt2k1L3EAYwPEHXLN7TSSFHoO26k2FuvUWinp2WwW9xRfwKi6Ix0UopcdWCv24TjZmN2Yn2Z2Zv+Jhng/wY16TmecZCeEQD3rQgx70oAc9+GpgdPLYv7vaH/X2D6+HeyeJGxg93qXyIjrXe+1mG/ipX9OezeF3K3Bzd6Tj8uhd/jUG434jNyaHAzPwR9bG5RF8MQCj3XlcHpfa2dGB8f0insgvXbc14Obc7k66rZmbWXA1XdRTK2hnPmji6cQ6aOap9VMXa+BHQ0+18U8bGGemnpqZQTMYfTX31OpJGsFjG0/koAlct/NEbvWgzQAWUR3GCvjf1hP5rQNX7D2R7VkwunEBu8kM+NnFE7mog3HqBnYGNdByCU7j4CXo2sBpEwVq4KSJBRg5N1A1MamAH9w9kfMK6LQGy+hOQadNMo3tCXjKgD9LMMoYMEieQajHRZ+F63HR5xzMKDAoQKzH4z4rcI0Dv43BLQ5cykFiH5eh9rOQQ5gPojAfhjLOFXhEgssKRL40ZXQVmJJgJ5SY9EQGgk6ymmZBJ1lNs2yw4IOgq0atGwF3ch5LPIiua7WyJWPBQFIW7PDgiAV7PJiy4CuMYcaCAb+w3/9exj9f+AcW/wXgPyn8N4r/6PmjCH5Ywo9z+IETPxLjh3b+WoFffPCrGX95xK+3+AUcTxHwSQw8zcIngvBUFZ5M49N9eEKST5niSV0+7YwnxvnUPV9cwMsffIGGLyHhRS6+DBeGqyMzb16hkC9l8sVWJWaLesGs9yYFa76kHuJF/5B/lhC2PpwQi4cTY7LpaUcz98aPTwrzrPo85p/j8xiL8KAHPehBD3rQg9bxBIq0xPhW7TbnAAAAAElFTkSuQmCC", + "tools/eraser" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/wt4ib1D890lKFtKwwAABAFJREFUeJytm01vEzEQhlcpjdTjQEtyXAkKPVIJkLgl3LgRQMAxRUXhSITKx7EgIXHjAKI/l268m+zaY8879szRzT59dtee2GOnqtQxevj2y9dXT/QXRuLOgjZx8c6G935NbUxem/CoFz9qWx7RL2MeTZZlvD3y43MZ8DQAlimGgkS3bAWvY2YrSHRoLEj0wlaQ6Ki2FcxWjAkSTX/bChL9tBXM7N0JwawBmBK8jge2ghkDUBDUD0BBUN27RUFt7xYFlYqAoO7rBRBUDUBIUPMUIUFFpgUFaYLeMyhI9NxWkOi2sSAdGQsSQQ8RF8QyhEaQPhoLIm/FCR6CQCDNOsEZCJRfcytYgcApKogCJ6ggCiRU0Aq4FbQCbgWNgDtBI+BOEAbWoKANsCdoAuwLmgD7ghbAgaAFcCBoABwKGgCHguVAT7Ac6AkWDz1fsBjoC5YCA8FSYCBYCAwFC4GhYBmQESwDMoJFQE6wCMgJlgBZwRIgK1gA5AULgLxg/nQuIogCwwlnRBAFBlPimCAKvIkKokB/sRcVRIFL77KzmCAI9FVGlzFBEPjNu+pGVBAE+vWqf1FBDDitvasWTStfiYCA/kpv3DRG6gZZd7zfNEaWfwgvuHTTab7nA4MS4qJpXWYDw7Vy0xpbn8o8pgzL/xsUyFRhm+ZYKSdHcHMR04wBuTJx0x7hiaUMttSXAkrFFrYYmQIKinwtMglMK/LDIQlsky8fkXpuGjhex4GRWmkaWK20ghIwrhgr5grAqGK0Ii4BY4qz2AUSMKIYLzaLwINLlaAMrK4YXqJkKAM5xcTekQysTjSCCHC08IHLMmB17PGS228I0FNMbxAiQE8xvT8IAQeKwg4mBBwo+vPBLGBPUdqEwoDttLQJaZsMBFbzTrA2AnaK4iYZCmwV5Z1GJVDexdPdMrAVqnspwDajqtsgu4wg0AnOzID7sKAqOUCHBhTpCzszgAA1goqvAHBTFQA6QfRkCAA8BhL/LtYiUCdYNdOCOvkJneBm8ThLfcDVJPCzNXPpa+cESvy7OBPSupsqKY5H3BeykpvMRVboXOyn86YT1BwxGacf0RWaV3cxT71EN2XXHdPZPET6xP9xpRds75nvizmCXXZns/EKTvz9aGdWzH05QfVJwzZ9MjeWJ7idtgSKTjDntOYpr7hSJH5Oxe/dY8U3kx8fiMkAznuZBTxYhEl0T5dXvXBdZzAAT3V51YvR3PcpE+yu7wmVCVZdH9m+07+Fgtuu0/a6P9xrV4ZLpUcbxjnbMZXRDenH9b1HbiyKSxIh/FVx/vHjLuZDXvbp4214xb2npTyv5mPxc4Jxr6CSdfI4iLtrS78m2l9kTJ8Z8a574/kbuniZMUL+A7jEhWh03/9rAAAAAElFTkSuQmCC", + "tools/beraser" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/4QOQO7HoH4kRAAABLBJREFUeJytm8tS2zAUQDOJyV6BZG0owxoywNqhpWtCO6xt2v7/LzSxbOt13+bu8OPkWJav5CuzWKSxul9IYvXyz318/hAcWTUS3r5zfXx8Zw9d1gLeTzfFX+7YdaviOffJHHzxpuM594c++nCl5LltQx5+vWF4S5fHb/L4bscArwugoxRXbqsVdI66qIr+PVDQuZoUIPbCgqTik3NkvwEFnWvREw7OUf0GFnRuh2aAjm5iRBDv3ad74rZ4vsEE8ZOW9D1DBdHe/XDe90sviD6AfZpDG5EQRO5lxbcHHjVwypPf1RoE4Qvr8F2sIKQ4ndIYBE+9Gz8F6gOsYNm7wylQH2AFiwdw1YVdZSsKBHPFV8peIph1uHTs2X4zCCYdrhjLUqJIMGqq1V2pf6sXnDrcvoN2vjdaweGaH0u9QfKmUQqeUwSK65Gf31WC56fl8e7IAeWCvhGrGwQ5XrJccMwQFXjZ7+oWdGEQfikkQ7fRCIbEvc+IoWN7wY0QGLJASoweFC9YC4FRUnyOt4fkMAgu9MC4rTb51loKjGeDVdgaHrpRUAp0EfA8U/IRDQGjoAk4KQKCJuDYikALGoFrv60FBG3AYioSBG1ADwhXHAkagf3k5i3lDwnEBkwnnLGgEbhycRPGgkZgMmlPBK3A08NyCQpagRehF6aCVmD0apYKWoHh5TETtAIXxzGhZYJmYLeBBc3A6ytY0Aw8XMKCZuBQZikEzUBfCCoFzUBfqioFzcC+mAYImoF9uQ8QNAORFpwHhATnAEHBOUBQcAYQFpwBhAUtsy9S0DI/JAWlwMIEE5QCL/PzMEEpsJUKSoFNdtoBExQCc5XVERMUAvO62RIVFALzUw+ooAxYVDr7N/vWDsxLdP2UGCnOma54jV+xCFicesCvWATMBX0TNmZgWeQ8b8UWFwTAUgX+GSkQKBKeN7dWIFQjhL2FQKiKed6O8NhSBljIpoBcsQUsp1NARhF+vkhgRQLh5QoSGCoIQCALKjSQUkTWU2hgWvaVCHLA6qgU5ICoIrq4yAExxdoKRBTxZTEWCCuigjxwXMIRCgqAK0ARFxQA0yojJygBxoskPpp5wEKRXIKXADNFeoVeAswU6QV6ETBRZD4hEAHHKqNAUAhcBEVi6VgDDOMVutCrA07jFb6SrgSOisxnInLgoMgKaoGsoPKSeUHlTWn5A1XdhvuORgFEXzCNQLmgENiJBWXAtVxQk2DrLwP6/Mp+eyUGDoLNlwGfJXlVAfSCTOIPcTwdTD+gOsG+h9XUAUrB/pki79+zKPGHODDjjp8qcSNTFA9M2nwS5tUp1nTe9IKCvDpFRTfRq1ZwyHTYTazUgmMjIZnEIDi+fdWEoIo3ZndQ8VWRtkIU67eZoCyvxtFhQ65NcJq2FE1fKRJ/Gsi0BS99cjG8fWWKdsGxsbIMcNAk/iyGUSNJokvNyFSET3rJA0g+knxc54pLXeIvYug6QWim4HgLpnuqHJmAGLpO7f/al22qDp/Gdj3jxSlHJiiGrrO7vR8/C9Pl1TKKF3ddXgUiK+7NFSzqj/VcXlbzYf+dQBBxzWdOFwwRPgT7Cr9zPPq+k3wqOS/6/xm5aXQn/QeT/5yWb4kz9wAAAABJRU5ErkJggg==", + "tools/eselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/kF9DPTHpB/iOd/r1wAAA41JREFUeJztWktz0zAQ9tgm8VWEuPiWJiSFG0kJoTcTktLeGjKFKylQyK2hcOAmHsOZwAy/F+thu46lWLaWGYbqOyQea/15tdqV5F1ZloGBgYGBGo46o/PlKUKnv88vB3d02cajJcrg+WVLi3AX5XChRVjLE2ItQjvHt6PFZ1mLTcLbmoQ5I1YyoTdILnNGxEnTPs4/KYa9Sg1lo+bb/fbdbxN38qXdGb1JW9z1TkuRL7JbKjoIM42T5MpByFditFdqljomQ67A6K0Ux7JPnQgXiblDRW9z11RwHhbI9VTjweGCZ9vFnnKxZquIkJqa4MNWKdYPFDwo4ouMPeSyW97t9pmMmjtwc6NGKBX5XoYvZXwnE7BnzH731fhiF5MbnHdYwX6JCmwyaohb60p+kIUzk4+0y942L8MXm90PBU2HrAmXI+R2ei1VUHlAYjDXFajIFHxWli8OrpyKTMHSHSboC1U8LI5LGWyhrfpqk5YQ3ci3B5s37YMqI8KfnfmiPc+ezOGL0cHC208qKmhgYPDfoU1/MRSd+9Anf7ZfYmXfBvsj20o7qPkehHDBp+gb0f9PCEKyipxY7NPmJgThZ05EdlA/IAhrfJlbV1+dsiC77iZfVTEEoUeYWpTXh+CLh7km3zCWBRnml9RrQAaZ+csJHexbMISPEfmm26V6gqBGO0s6rpfoSFCnw9GHckPmiA0aKC0YQpuGygKW0KeRh2EISagEFvlyCWEIXRrM4IQkomH4LMYFTvjv2xDcbcAdGzz0wCcH8OkLfIIFXwLAF6k67DJ6Ab/Qw21FXLYVIbE3ByEk+b/AItu5sxCCL1KxR7dz9x7B0BF8LZU4MzAwuJ4Y6zwsyHDuzTSWezuXFPAOtJaqLkK/cObOqlKWPQatm2RTzLQEWlnFLsot7k61QsAVBTcfXmmo2BUl1bVT95vVBfDiAlexQkZIUv6oXqBZiBWsXEIaShT8C0WuuAwnrSOKsK0MB18ojEuZAVgpE7zYCl8OTgrWKkGtUrBOSuoqB0KmTLQo/nvK8cKr/kV7VmYYrEDoUp8oPJZAXUFtXiQjWHxwgp43UDtTM1U72kHcPzXh8at2mGkcpzVLR9lhbZxcRt0KyPGYSWSzo3ZntERB8gLvhSLfFTDDZ5GqH8oflMHJ8+kl0acCQq1v4b6AMNDgE5lQKynjfRIRauVQBIfxtA/4wR4XNDAwMLg2+AMJLakTmOR7tQAAAABJRU5ErkJggg==", + "tools/eyedropper" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/38IU5XA5Shzorl5IAAAA41JREFUeJzt2jmP00AUB/CRnUTZjgkkgS4uEG1A4uqCENASsUKiS8R+ALIsR+kVl+hIxdclYzuJj/fidxWRyCvXyn9/nrE9nvE4d4z1/e2Xz+dTu7yXPtQwtcr76fMaGSV2VkWgv7IJXPtdvbHIi/Z5fmjRMUkp0L/W53XLef6WPnBeCfSpLdD7hTFQfc51oB8ZA7WN2AB6PzMG6q5EAKjrZgDoPxgD/Q1joEYIAjWBIJDXKWEsevftIND/YeTlY8e4GN5gIOdOOdv+5nKKAzn38p4UBswEDmQ8bcqkwTSC8zh9UmmzKwTIaEKkzeRnPG8NC0W/aGjAAR2ItVm1JuS8jjXwsTHQPTMGuqUx0K2MgaRADpByyiwg5T5hAd21MdD1jIHtdwoT2N6ITGDrvccGur4xsOVu5gNbukUA3I/KRsCDj2wJEBuHjwo4wEJnQuAEO+2PQiB63oI2TPKWQohj9rQ72jIQInuyk2y7EiFyG3EHxIh3pECMyJzTloAYMZUCMeIE/3ULECEuxECEeFMOhIm35UCYyHhXbwBBIiOwAQSJ9EAACBHpgQAQIpI7BQQCRPJlAwIB4kIHbBKpMzIE2CSmSmCdONQC60TiE/sAsBaYqoHVUyZe1nTg7DiBg7UxcNIxBjr3yha4mRhkM8qvZsDNe/yS/n2CANxU/y71QxQJyCkakF4nIPUYVicg9RhWJyD1GFYnIPUYVv8fcG0M7FgDw4IethwhAfZXm7k+Mm6LgL0DL8sSYHbGKXxIBIxX+HKJCBhWMN/Dh0TAbF05hQ+JgKEJkfUcGTB84EBmvTJgWPhegEeEwAh9/ZYBs8savE2EwPAFBu4TITA8usAZjBSIdrIUGHt4h4IY2EGehVJg1smz5p/FQHcfvmrEwNDJwFUjB4Zvn8BVIweGPmmuXymAPbCT5UB4PFEA4yXUJ3M5MIwnjRuvKwe6X0ATBrUUGJ4M4xT4J1LgGbD68tArgNfN8eTpSgEMb0m1z0o/Qh5rP1O5HtX7+Mm9bMlIuqs1nlcfXfGLjCffydutdsnvYkvDaIb+oqXm5daK833GmrzKIyD+W+RdpuK88jMgLlbw/Lk8rkIs9kGPnqvy9sQHed6nVJdXW2D0F/ody5Ul0At1nKss0prklZaRjTaR7xa6TXZ8hyqW4sczo7wt0WSPe14Z0WD/+L4SYFhRVYROzKSVmPVwUZHBlv6s/gFi4v6ERJh64QAAAABJRU5ErkJggg==", + "tools/pen" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/oA48NEJpmIZ13nuwgAABEpJREFUeJytmk1v00AQhqMG8nE0TRSOqVSQuNVS4U56oBxNpaq9WaIV1xqkCm5pQUjcWgkkfm6z68Qfs7OzM7P7niJXfngysx7bGwYDZd5mWbbUnoxksuFlL9LxRpUBJlS8trx0iqOiBiZTHG95yRSrHTCR4qThJVI8boFJFJuWpFLcy7K0inkPmECxytIqDvu8eMUxAEYr5hAYq1hAYKTixOFFKj53gXGKdwgwRrF33aVQREoYp3iFAiMUsRLGKI7e40C14p6Hp1b86wNqFSsvUKc49fKUis7oilXMCaBK0V9CnSKc/tGKVAlVimQJNYpFAChVDJRQrohN/yhFz+jSK4ZKKFXEpz+IBHidGsgooQjonf5aoHf6a4GeG6gemHN4kmXD6sl5YuDsKPFX3hfwWE2RCIbGtcmJhMeYhqIKDhjD5lLGC3ZlUQqBgfE1935htFjLzR8OSOCt1wRtp7mmyPFw5v9q+IILKF4QtcKvMVrxtCSABX4Opbh4IHi+BUwo+hts4r3EvIrzNcXzDwGf4uw1ySPmnkfxB80jLllckViANtRQwRSpBWgTetAHiqsyBCQHs6NILsA65L0IKtILsE5FAYHibB3mBQZ9TzG0AG1CTzBG8df2c2gB2oRulkZxWtmPoQVYJ/h8YBSnrzYfTlm8QE+y3ePQ//ufJYtHvRB3FPlhPFXK3kWehYEyxZwBFClWDKDksZfRExkw+ZN++H1TCMxTA6vEQF5PBEBeTwRApyerd58PY4A5ONPcgrbDTweE596Yg+59lc2DPVng/wwfCJ/KP9aHnV1NNhD2ZFkfdnrPBubgxO1d3LmzsoGwWGV9eKQFTuEuRSzQeVOK/crOdbKsj6ubksMTb+rj6mVTgfMWnuNcoLNztBVUX3qwJ1tB/XCAPTGvq19jxlcOBEvvAzwTCL7arXtIBgQ9MYJfcB4TCHpy2/zvCC2w3xNKkAnMe+ecE4JMYO/0OSXIA/Z7QgrygL2e0II8YK8n574fVQXAHAhSu+AsYLdil7QgC9jtyfwhsE3PAXZ7EhJkATs9MYL/KB4LmPcEp6QgC9i+pQcFZ98YvE5PQoLz3xzBtichwQ+8neB21gcEL0oWb/DIE2SVz6bpyRklyCufza4nZq/cK7jib6Q3PTkhBL+XbF7TE0Jw9oaPa3uyERzigou1hLfriRE8RnmfwptwvRStIPrjHXu1bDOkBeei8pmMScGF8GeXwa4nHsELYflMDghBaflsCq/g/I+GN/QKMmcVzNgnyJ1VMLYn+44gf1bB2E1NR1Awq2AKTFBZPhPbkzUQ1JbPxPTkZV9QXz6Tx1owT1I+k7tasOUJRj2awgq2+9eSUY9laAWbu4ps1GMZ9wQXceUzueoKrhSzCuauIxi1WnYpGkH5qMcybAQVox7LeCeoGfVYrta1YJLymdxbQd2oR3NkBCNmFZJJ1KxCcpisfHWG8RdbN0/hzp+bdxqC2QAAAABJRU5ErkJggg==", + "tools/fpen" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/nQ+msYI5fUa2U6/fQAABStJREFUeJytmktz3EQQgF3WZqk9KuyWdPR6SQi3yDYmudlmDeaGnI1NbluYFOYWOaZSHEOSSrgluAD/XPQcaWa6e3oefdrSSp8+dY96Zsfe2HCMr+M43nK9GIjN1yXwbjje+DCOgyo+r3nhFMd5AwymeKflBVM87ICBFDcFL5Diox4YRFGUJJTi4InDKN5KwACKh3FYxUjm+SveUYDeipkK9FXMVaCnoppCb0Uthb6KcwDoozguAKCP4ibE81H8FQR6KEIp9FGEU+ihOEJ4zoq3GNBV8RAFuilOXqNAN0U0ha6KGQF0UsRT6KYItC4/Rah1eSmSKXRRzA1AW0VDCu0VDSm0VzSl0FrRlEJbRbj7K2EDRLq/OxDp/s5AtPu7AlkptAGyUphaADMOcBoaeBYYmHwMDHxjwdu4NPPShzZAasZzEWR0w8RKkNFsntnxjFWZri2BhncPf2AwWVsbpnbzHWoClvOuSfEJ/mjwgDMoviRyBV9GK/65JoA5fA2lOKXeYWwAE4ozckSjrxiqaHhD0M6MKab3SR5RSkTxB5pHvLKwIjEA66CaCqRIDcA6TAt9RZEcgHWQs6WmSA7AJjIKqCrSA7CJnAIqismWmTchebJiinesPkxTUeX0oP1sGoB1mFYwleLkpP5oGoBNZAZgrTi5V364YvHMU1uzir7ZXqxZPENNOkV+MJYHdr9FPjMD7RQzBtBKMWcAbdbRjJrYAYOv9Dk1sQJmoYHkrocDkFcTCyCvJhZArSZv9y9OfICZcmU1BU30vPKB6rUH1UG9X7B56mbeFL4NH6jW5K/msLaryQaq+zIHzWHtmdnATLmwncW11Q4bqCZr3RweuwK1DVZfoPae+D6ytld20Bx3LkqGAJ2HjVqTKXKcCxyrNcGemAtUa9IKujcHtSbV4m+5f/G9xuMCM/mq2RpdmDCByqOd6YfsgEpNKsFfYB4TqNTkTPx3hCtQrgklyARmmmDuB5SerxJ8jvF4QLkmpCAPKNWEFuQBpZrQgjxgxhfkAYc1eUYLsoDDXe/ZR1qQBRzWxCTIAg5qUgn+Q/FYwEwSnJCCLGBfk8QkmH7L4A1q8odBcGbYR2qin8tNgm95O8F9TQyCp2sYcLO9XC4X/Z7LJ55gAqdvvHfefN//rBQ1qQQLNH37IG9PPFEqFDtGtRP4H8a7BtMnzbMH7UFRk5eE4BMwfXtSH32h1IQQTMBNmsmX8lk/KjUpBSNYEN7kik6Qs+a94Dcg7wrchIvy/ox3q6PFrkhKQQsiL9vPgpeuHst3ag8jgslXME/c+1TNR7smegMLIi+b4L3T7/eJEjyF9zDFraHv57gg1qu6esDfF6jgDE6f4CVgL4uEoLrKxnpVx0N646gTfKTwsF4Vtb0E29K9hQXRVt/x0C3dOSiItno6f1UUkCDa6v8u2gdAt4gjSBBLX9+u8L8KjnRBpNWXJ4luSmwRVzWRBdH07eTdKdQWcVmTzyVBuNWXp9wTp1ytCWBe76r2gnCrL6e2wpzh+r717CcE4VZfPu1PfUrotcioFsy69IEz5XiIw97vLi4rwW55eA31qosvBjg0wyLmleAcfZbJzvFwwKMDqo9cCOqt/mLnuIiHoTV7PSIhKL9s492d5Xksx/VjBDKMUSfYzpS/3ezubi+Pz/X/ulsZitHGZSv44VUVhYbpcncEL5T02GbsvKarBTxTQfHQ9Kf3xIZWByGYrI765QU7HgAbKXH8/uly4QArI7o/+JmXvvr96WpZLnv+dUFV8T+SbuMvj3r57gAAAABJRU5ErkJggg==", + "tools/gradient" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAMAAAC8EZcfAAAAkFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDIYgjAAAAMHRSTlMA+25aOHYrI/Pj08iwlWFKB+3p3tnOv7q2q5+bj4uGgXxoVFBBMR4WEg3DpqNGPRsUDc03AAAA7klEQVR42u3Q11HDUAAAQTDBZHCOytmx/+54ogBm/K29Cm72TpIkSZKkIXf/10toMplMp9PX0Gw2m8/nb6HFYvEeOhyWy+VqtVqv1x+hzWZzPJ5O2+12t9t9hvb7fRRFcRwnSZKm6VPfqC/Lsq/QQ1+e50VRfIfO57IsL5fHvqqqnvvGobqur9emadq27bruJzTkwdFtg2OCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkS/E9QkiRJkqRB9wta1piumzN/FwAAAABJRU5ErkJggg==", + "tools/hand" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/w/xgcApBeBI4LcAVQAAAyNJREFUeJzt2s+P0kAUB/CGIITjpMMGb03cgx5rUK8lstG9UQN6hQhmj3tw945u1CN78cd/K+30xwyF+fW+MRo7p5ahn7z2zaNlOkFg0/oX8d3O6puWbcMYG0Y4r7Pdg+wNDuxmHhviwEc5yBIYOBHgU7F3+4EMpgLk+c55zMZLIrgV4Cjb7mc6vyZ5feGxMNsRCXpLAjsyuBLBLmFgkaB3MFBJEAIsEsQ8nN7FfNcEmT84KX8QZLDjD3arHwQQeF9dewzYF1d/BwNFRbAZDHwgjjuDgat6AGPAosSGMDBtIjQwBoPHkH8TvP0VQcFNzIZLIJiX0xgIisFq9RhlBRb1/hUGSuWJAVOxafUUZQWqGW/BFmzBFmzBFmzBFmzBFvzLwOxxf0AFM6Rbbs+q/+UE8HkQvC+3eTG1QQJHu145mcTCZBCTQTaqPGXbHzzR/kPwGg3u6rlZDDiTBjwE5NVcEQgMX22qbQgoNxuwb2bcwMDM/FlwvZhGSDAbUc+WQDAfUXwJA3tx/vkYBpY3igQFFjNEyhQRCayKMgGBadnDQWB960kwYFx1cQwo9SUQULrzcgiYHgmRBE6kTo4AV3JvAgC7ci8HgMpFLEKkgTfNEGlgbyv3J3SwfkitQiSCSlryEImgMhTzEKlgI0QqmL96l0OkgsHVQYhksLjzVSGSwfovjQiRDqpp4XRQHTlO7QR4Yz7SDexszYc6gWpBI8CB+VA30DstJ8Gu+Vg3UC1oABg8RoNqQQPAg4IGgH5p0YB+I0cH+hT0SAf6FLT+7a1HQevfL3sU9EMt6JGWF3rQfeTM9KB7QSd60Lmgw8gAuha0eRHBvRt4ZgQd02LISdbcRo7Fyg6nEK2WTbiEaL6EjiEmNmDw0tobRVZgPb1saoZfhqpdmSmXM96XS2rnDa1XxH60Az/ZepZ5cVkPa3XSX+w9q5N2XLD70wg6LinumCrQeZn7QH+TDhNHb38ZY+AJ522t8cZeq7w3Jz0e+XinRf917euj1/HOM76snacNLrz054JsYfaBN/9B8vbtyWspuvl3KpeT08VnFn5bTC8j/Rd/A77Qy3Uri4NyAAAAAElFTkSuQmCC", + "tools/rview" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAAC3RSTlMA/w/ygdhmnbcvRtZOXcAAAASDSURBVHic7Zq9bxMxGMajcE2abNZdacsUhNKqnbgiFbpdBsTaoCI+phQWxNRKgBBTKrWCsRGgli2txMJfSe78cf48+7U9MOSZLvb5l+de+707+9xqGVSYKnyVxQaiIjYwtkUU2yKKbRHFtohiW0Q6i+33+ct5AFCxOFwUrg/8gbLF9rgsfB4AlCwmVeEGHLb77OIR0lh8gAsnQNzWBWISLR7jwj38a+e3E673FPESLJ7x/7Kdo8eXdl7/TOCJFnNctlYeVx1k7/HOGDUASVlaHneRS4/3ZZ5wyW0eeB+bbbbYPpV5gkEBSDqo2eIvmSf2iQAksV5v4nVyyknPb1WDIpAGpwk4orzzSz71el++zVUgsgMTcsqTt7RBRv9nYyAD2w5AEuajqnF9++qy2AOBPXzCG/KTGbxhsQcCh1X9Pv1JDeJbFprDgadlNQ4WBmKDHdxuCgb2q+oT9puOwRXcbhMMXKm7FQPJ8Qy3y8DAY3phFIgN0sG5BgaWsU8H9W9q9kyFOAGrEN7lCohBeg8EA1fLykO1XAdxAlaxn0cEjkjgfYE7fwdiw7EUQiDwOkcbwhOrSuQ9b2AidylOsBNv4CmSu2DV0CduQHIn5Z8vd5A4rGHAGT7kr7l8KGpfgpyAJJv4UXJj6GQ3oBBPrHIYbsYElt30MCawjMI0JnCMDLMIX2CO9MMwCDiIA2TvH1jyTAIOTJAgOZAelyxYVKY6HkDBomzQq1M4i+p00QfIWVQM+g0bZlEzn/UCMouqQc+BPTIa9AQmRoO+qTcyGfQFJiaDIXds/ZKFLzAxLar4Alsjw5qKNzDRG/QHmrQELoFL4H8DLF+r+qHAEtKhx1MybQgCHrD1yOpt/CYYmM57Y3qMJv08GIjSmodSxgsAGrQEyvr5/fNALLEB58pknFf5BrF+CQIe0vVdLbBaDRLXkm3Au2ydUAPs5VX5PgSIJlfsUAHSBC0gQE4KcEYqslhA9rJdRAKy7wBZJOCYVRVxgDmryuIAuboiCrB2WFsMAvIfZ4oYQH6mm8UAzvjaIgJQmDpnEYBCEInFMOBQtRgGbOeKxTBg64diMRDYEU4owoHqoksosCucUYQDyQee2mIoUBw5C4vBQPLkYxaDgfWrJLYYDhSX67JwIFmH95EBOLS3hAHFkRMBKCZ0DGDf3hQGlBd6w4Fde1sYUHwUxAB6jhwzUEzoCEApoSMAE3trGNAvoZuAq/bminSfQpl8Erp575FHQjfvE/NI6HuNwHrC5Szdx1pO8ISeNgPhCT2xAKEJrf1Yywua0I2bgyoBE1r7bVVQxw7hNbUCgY+CuR0Iuuc4bfqDWLSHEGhRtwdBlXv+WUchVr2sZ5PlzsCk7n4LumL3G637xk7Hmw5g6+k7F17qsPmSilt6NevAnddqbdt5awCDC/2xAoGbd9WdmJLqDXKOUveKCkonQN4ip/Mm4Gswr7lj9u3NNbo28nz3Z5uILvuJ9brSxvHI01+pLfXJn371x7WUndULe/Mg3kK7nzh357ehuApZ7k5PX7z6+GGgP+Ef11LuXs329fkAAAAASUVORK5CYII=", + "tools/hbrush" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/t4MIMN9ckyTq1CfjwAABCdJREFUeJyt2s1OFEEQAODRHXQ5zsYFPW7ARG9IsgZvyyYeuLkuxHjD+AIYfIBFw8Gb+HPwbWWmf3emqqu6q/pCBpqab6arm+5aqgpqJ7+apnl+Df6spJ01pv1WivfGxmsmG5V445kL2OyrBLxrQrtUiDeP4jV78nijVRxQgbgFVCD2gHJiDygmeuBEiWiB069VfatBtMDpor04UyBa4JW5+iYmWuDh9qWAaICThbveFRKt6CB855OMaIFH4TuPRMQhUEgcAmVECCgiQkAJEQYKiDCwnIgBi4kYsJSIAwuJOLCMmAIWEVPAEmIaWEBMA/OJFDCbSAFziTQwk7hDAjOJdzQwizg2wEW61ymfeNz1fJLuVLttMoNonniT7rS08RjEuus3ZQIZxF3OE3sgg/iq6/aTC6SJN12vBRdIE+/oV2iB0xsWsev8jANcj1lEuo8DHlUsYtcleaZzQDepCGJDPbIb4jYROEQyr90QtzflEE0XfO0KOcgkmh5XJJBNNAB0NYwnCY+4So+KBc74RHvLTRI4PeETzfrqDzswcG3isIj2cAP/CQiTZMwmjmYJogUeuDgs4g1OdEO87+NwiI8blOhz8CqL+AUjhhxUIkYLtQoxniQqRAs8XykRfQ7OlYh+kox0iGGSVDrEZbiHCtEPcXsPDaLPQSVilIM6xGiSqBDdEM+0iC4HlzjR1bFYRJ+DNU70lUsOMexmUGIorTKIboi9FSD+DaNGE90QH1Y4MWo00eVgeJ0AsW0zJtE3gjh9zST6RhDX5AkwJvo4KPF+ZSMPqYFodjMI8dgC6UNqINrdDEg0X9ull090uxmQOPdAPtHvZgDidQDyiW0HjDiJgHziZYIYAXWIMVCL6IFaxHX0CzJi3QdKifMBUEaMJokOEQKKiBBQRASBEiIIlBKHQBkRAMqIENAT0YM8RARzsEfEa2gAEc7BbSJeDRkSk0B/TN7wiW+TQFdreMcn4kNs2inxEgdEAmgFiaIXREwAGXU+gJgA2v6poteQmASal5gsbUbEYxpYPeiSIdUjEIkcNO0hKQzE9CThB3TEzxygKWCnq7l+180BmoF7mu4Tb2kpoClgEyX7eNdNAc0WAJ/LfSIJNMsNXirtEymgzX3qtp5IAmtGyT4mUh8x2blEfLIVE5ESqGt247ihAzKJ5rM8xhNziSvuEzOJO7wXzSeuOO85g5gF5BDzgDQxE0gTc4EUMRtIEfOBaWIBME0sAaaIRcAUsQyIEwuBOLEUiBGLgRixHAgTBUCYKAFCRBEQII5kwEDc2Ov+P0AWE+3ZwZ4my4Fhp3MeXQmA0Wbsz/0LvMUXoHxi8/Lfe3T9KSL6JgPChWRVohTYJ4qBfaIcuE1UAG4TyZ08q4WCwQuVeFW9svH2yDMEs41NxA9a8e6NPy4uPn6Hf/Yf33WZEV8wffAAAAAASUVORK5CYII=", + "tools/htype" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/wxi9s87IauL8Nu1UwAAAXpJREFUeJzt2j1LxEAQBuAh4XKmjOZAu3gc1p4IahltLP0AP7rgB1raaH0H/gBB/L+Ch0pmdrNjZsEr3red2SfJ7qbaJUKQJUkRKQABxgPLq/eHsfdhP4Xk5eBVBV7fdG76VvH2NAge7wT+onZ1+BEAzyvmBUCi/U7wgreHQXrsAI+kFwbp3guOml4g7frAS0ezBsxqNziqeoL07AbPXL0qcFi7wPKpN0h3LnDN2aoDUxc4M4A0l6Dni5XgRILr7k4lmEvQM4VKMKkFeGgCF5PYGnRiA6cCnNnAiQC3beAgNpgLsLGBqQA9+1oLZgKsbGDSUesF6gMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIMDYYMLBatnAIQd9Z6jaZLHBlINNbNB3sK1NHhsccPDNCG5y0Hd9QZspB1eN4JyDvisgynzf9fmN+yKSOivcs66KmMKi2LB4YlsbX3FLLMnXLO6Nw0PbWQwsxYLw/BEMByBABPm/fAJPo/BYXTJS5AAAAABJRU5ErkJggg==", + "tools/lasso" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/jjHnApZ5HcZTulYkQAABJJJREFUeJztms9T00AUxzOlCeQYixZvBZHizQqi3KyMUG84wKi3FhHHm9FK4Uaxo+PN0ZGB/1b27WazSTbJJvkePPR76o/k0919L2/fvlfLmmqqqaaaykhvVyZba6OR541Ga+u9w7/VaL8nT7yYvvQelKXZqwmaYF7slsC5Rx09jqmx/asobzUDR8iLQrjaTjaOadgy5y37+TzPaz43xLnfTHBMT41WstaNjmO9d7x0fWBZB9dLx5Ot6NjnDabtdJQbGr3DmIfYK5PIBf0ivKHe3+zVHXOiwht+TL/scseQWJO8PD8L/bTRSr/KlfbYyLWf+05aJv3aH8GP/szDMV0FgzxNu+JeAWdgkg72SP/9XGAN4wffDWxzrv1WzOC0QGyyxSI1dGNoF+eFxM/Jr8SE5wvGTrubMmnxRYYLpEi4WmIge/Rxs1WUd2Nrn259HPsdbpEXxXmWta+zy5+0pTURN+dmcoBa4xtIc/deunuaaC6ximSpO2V5ljUgQ4fv62UtHIhb+ln0B0pahKsdmWKt6gCDIQYIMsmtKjzLWlTNMmZv+tWADmMs8Nc15XV5jcM5z0QtVFLkKQ/pJbNxs0zGF5HtSzv71U3CxMzSZC8cyIzFnPsWX8JmybCgyvXFIi4ibMw0FkvHAsNXBPA1DxB2pcClioLYLrcJYAlvFpFbhRmngeBZVofcZbZaaFXFnpBPZOTbGOArMvNAPoKVNUOT7WKeE6Y6+U23eiwM5BCwo4TuiqqRw/goN+SO2CRg5WDIZROQuTeGZ3EWHAifMtwocLeBOzb80YMHB3j4ggdY+BYA36Tg2yh8o09NRS4n31uFgEEqok+WbFavyip4JCSTJW06Jw7WRZIomc5pE84PHte5OVAmnLqUeF/wCmS2SkqcTNrFmbqQyytJe/JY0fak+qZA5VjBz6LKnU7IMw5EdE9wHo0fzQYK8K4hMHI0ix0e1QGaBqLo4TF2vF3kqO0jdRY5ih5vowdwl5v4JV9bMzPHD+CREgF5kXcSDNUIGC8RRIoYYzlcQpuEymQRQymUkIW8M/ZpPbLQ6dIVacJCEA2LRx/HEKgpBCmlqnFo8ZoZUFuqksU0buN+AaC+mCbLfVeKvVwTYFq5T1ZgmcQWYxsAUwuSuhBjAMwomcqirvJ05AIzi7rhpGXgYW+ystvssjO+MI4v3eObC/D2h4hjXJAGjdXxFCFaSBEgosnle3FVbMOx6xeQjUIGnEe2Mtn6NJDNVnIbdiWqHUwbAOUzoIY1bcVig4a01GdpteXPV2/6J7fsin9LoMTWNEMyElkFdYBm4qlS2d6PRiKZO4EBg910A1R6CY8Uw/soYrDhN7dBg1Q2/PcYojyXeZ7pfy1yNEATw820ZLc0IceXwGrNNKk3IbFoBzufuJl/dTEiaNLKv0YA/SpS+L+bFohoBxs+qBp4o2XsnCUR0gITaqO3GArgSCDlJv81ENN7VtQGuw3fsSD1Ty50HlHnT0ofBuSbS/V2u1QH/OTZfMamBbp88ZoQ0Cai7odL7Rx08OJAoFs7YC/kQFCvhURWPgMC7TIz/gfD6CSfzrCh/gAAAABJRU5ErkJggg==", + "tools/line" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/pliM8n45wcWM3PWJAAAAXNJREFUeJztmTFPg1AYRUlpExlflbrWzVEXXdvBzjZxcCVx6djo4taYuBsH/bvSFh7EkXuatOGeH3DCB9+BAEmikV6Lgv8s8hnqO1uGV1Q4CCFMSeG8FOZfnC9bl8LwxglHW1+Y3GDC250wjKmhh8VeGJ4g4W/lw4a+qoXQ6qTRd7lBhIsofEF8ZXY1zCkcRF+O+OolLHlHfPvswIlH0TdGfK2JnxFfzC5MZogwZhfOEd8hs2PuXc5OpYfZRZ+z64izUzn+7JoldHbdcHYyzk7F2ck4O5WsgCf+dHYqJ5TdBeJrZTdFhEef3dDZqeDZ0Uvo7GScnUqzhM6uI3R2rTedKSJ0djLOTsXZyTg7lf5l1ywhlN3c2Yk4Oxlnp3LI7DaIsMluhficnYyzUzml7JhfJs5O5gfOrvVd7xER9i+75uexs+sInV1yD2eXZPUhQk+78qosyey2fBRgdjseuOwq7rDsKsrTCGVXk66Z7Bq+1ez+ALuCq2njZxanAAAAAElFTkSuQmCC", + "tools/mlasso" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/nK3Ogn5Gt7s0hqYUAAABupJREFUeJztWkt320QU1rGk47J0HIy9k5TQhl0VF1p2ilNC2YXk9JAuXaDdUqfQZlcnzelhhxsg9N+iedyZOy+9PEvfRetImk8zd765TwXBRjaykY1spJH8NMumj/78NBh8+m86zXZ/Xw/tdfZooMlV9n1XtHhmoHHM3eMOcP1saYcjMs5+a4s3y91wRIa7reCib6vhiNwULaa3qscbDCZNJ9nfawJH5LKRJqNvlEHjaZY9fvM0CJ6+eZxlU3Wnfm6w7CjHA/Z1hsSzHfzCYS1iD03BwTeFn+OkBk/O7+qe+7GFVPOwElGut45nkqdVq+6Lp/Zr96+/IxDdz34Fj1SsVsoCXv/R9cRhCzIQEQR7YL/fm/MXNj74fb6kUWK9y1dw2cI2xXsVavyBz6+VrYv5HP82b/XYnectbWd8l41LjBt5HQUcwjU11Cdyyg5S0Rav3Gt2WL+2vufL9nhBcGJb2zm9+L4LXhA8oYMfmhNsr0Dn6FP7TjWVnqFF+ornXfGCgHJnqL1hUnQHjFbqClMH2ZsLPWZbAn++5gT5FEcAQbfkl3XwguAIbwtdcVH1eL1EaM10xVvVz9dLKtccEvD76wIiFII97hLxKRIvxTrJr+118YLggMyL/Oh5WTFfc8J/TDqaBSz9FZ/YgY89JpJy1RHD8I8PwGfMQMTzdQwXFrIZo2P2nwcVlkpkUwtVS7aO5HRXPvO1J2xX/qKb/LkfwB/pNqd+aE0kpItNfW0y2+YtqkmPgEMKWPgBjCggsTVeaFgSkdobcqTXNoZMYmJmAkJvP3hBQAyYf0DvS/a+Kd5p453Y3o+ed+Pg3Xx5N7DeXYB3J+XdjXZw9PFs+u/gZv877TJ39M5QZJFlhRUPSgMjLZGHUOSONViKSY3CWvCAQsJAy9VpsPQucIRzPA22zHxngASXL0Q4Zw04oT6SVMyPCFq1CDhtIfEpDNBfdK7iofIFConNoD0SBbCxiidvgIhMHqGYacWRHKCuOdXxZJqM0goj8YECjjHzUxNvMGYEwYmPkZrheXyB8GRpDMsHuShIzbTkMcKPY1XoO4K0qCaPWnrLNDjap4xDhii2TpBpRU1v1QS8z3byITvlCDC04xEcPQFXSgRsHDkDr8hE7apVpDBKBEoRg46jFSEKLU55f+4CvDWLGKhQQneIbV2Pvb5mxeU4OVrIW3rnPYxj5FIBD5yATD5gPFSqQjseKYB5NZ5eRYJiGrVqXJsKYB+PHl0Zh1orpoly34L+izAAsIcGfyyMhoFR7oMBL8g/1/wlGPCOHEyLlrHKokTHEyVTdFcBfCXu8hMQYRrZqkjy6AuGkj9A13JCt/wKMnJjq2MXVkuYafIH6EYC2rRa6GBUwF9YnZ05f0wkR/wGrmlsKd0LnggLuUDUcYRbVc2FFdx6x59V/Kmr7lPR/hB7ylant+kSOyA2UVqDRhm6MHqSt1Y47cAqLSQJaG1xukJMbSGoySV0OFW7agxu7kpNzH4otOEqOqUlz1IXcWg80bxRyI7rJCljQwdxWIDSuJXJDss9cmocxMkHVL9Nm600QnrABibuTSH6bdgOLv3CJf/x0gpIeUj126xhHYJlDR3EoZ6I6zeeORZ+I/nZn4N1dxCH2mUZcVua/uVtrP4UcBzEMV02+SxhSj5LkJKg22dgLM7sxIlXVOO2W3KXsPp7gOMiDrMOttlLu6G8LwcFOYjDAg5b7+eZXHOBLh8BjoM4zNHb+qfIhdxXLm/DVOzE4d5031BILHmJ1R+vgDgrO3FY7FjOUc8NkRI14iTww25xwOFP9EmieC5RLvNAw0EcCInJ1qh9QxTMv1QuQxvFZXFkNqIlsJKJKnF4QaBUYhJY5a6cioL4h504F0x3JIF1mG2U4IzwqgVxXtiIs+dsrStfT+B+LhCnDCIV9edEA4cVzf8gOFlJziFFM+IMi3ipEOeg1N2ipteNEFFXlhKndEmSe/zydW9V16o9WVoWHYFWQ4U4pZXN63vd8qsRlKfmXPGRSpxSFZP6Xrf4LEImmSVxLgEZT+hMa1c7JIaATXKkB78vwFCzd7sJowoPaWUlI15uA7JCnKwZHqTcaGzKj6tGnObyRDu5obRVSSdAasARYASRZdi1f5xqtiXnf0RzV4hZI7mqw5I4Bbyp6IJnFIkQca67AL5VaUO2Vzj2LqVg5rF+xZeAOMGyS4fWEkeE0rEnrfG4n1MGRmBouhCHTVA7E5w4pZ9oT5xcP3lELihfSpc0av11TszyOy0GYsTZa2axVIksKuTEOaxwcW5hbtOo66eT4/NKF1cDaPA3HGSr1p9zIUDjhNHWU9EBjwMmxvUGLs4ukWZdQS4auDg3oCVV77UnDJPYvuJq+R90141HZBLIbwAAAABJRU5ErkJggg==", + "tools/move" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/u4sDXdPocXZFvB9nQAABIlJREFUeJztmrtP3EAQh60cGCj3IsJdxyMioYM7FInOIgXQ5aSAUpogoZSgJKI9pDw7LiQS/Lc5v3Z27Zl9TpEiU529u5/HuzO/WfucJP/tv/0j9oYbuMYNFFfcwEHGDBRfuIHDXWaguOcG9lldnAPFNjewnzMDxTNuoGBMwAq4yg1kTMAayKcRNZAvARsgm0Y0QLYElEAujRDcLgKQSSMAyKQRClDk3ECWBFSBLBqhATkSUANyaIQOZEhAHcigES3gIDq6W8D4BGwDozWiDRRb3MDYIt0BxhbpLjAyARFgnEYgwLgExIBRGoEBoxIQBcZoBAqMcREHRiQgDozQCAIYXqQJYHiRpoDBRZoEhiYgCQzVCBoYmIA0MFAjDMC1jBkYloAmYJBGmIBBCWgEhmiEERhSpM3AgCJtBgYUaQvQPwFtQG+NsAG9E9AK9NUIK9DXRTvQMwHtQE+NcAD6JaAD0E8jXIBeRdoF6FWknYA+RdoN6JGAbkAPjXAEurvoCHRPQFegs0a4Ap0T0BnoqhHOwHYCHhPp4w7UNWLhliix7kC9SJ9QGe4BVIt0b0ZluCPr4fvN6aXi0oGgdgEW0s6Pm9Ozi/32qMJBYhdAgR5uPp9djjP0rioHBS5CBNAsBpWDuIsE8LkROGq6IS4SQKO69DYM3Qjg0MlBbGoIoEn0wUHMRQo4pYHv1X4dFyngU9rBn4+/NqtOmzuP38zA7dvml01Qiz5kg7T+7rn8nXEA75MVenICgHPFW5QH6wzAedlYMMWsL7CsGtfS3XhgWXr35GEeC6wCZVkeT2OB1bKm8pgObTdgswgz3WPNegRQOQ/AvD4xkWeyDvADAVy80hsKkyXssDUHqoMvKeCq3iDUbfSSBK63gaOhPg6AysXrwbDP6HVmVbZsUMAlpbpUY9VthhScdmiPBA2EqK3Gqns1EJw8UW0u1H0auKU26Fs1EJypBpzXYgq4rCxCOVLb74LgaKFd1GIKuKKsQjeEQXC08wcaogts7hIJuOsG2M90B0ngE2UdkPDYw0L7RNhsTQLzFhAE5w7mYWYF1iuB7BtBcCBcj+28+k6xna30ZiBP3RpA+j1jT9cT2UfOxojmSJuWPbHnfxAcGaDqfoawYVb2xB6QQHAgtO0u1smXIUAQHAjt1OpijpAak0ughHapGdBFOyoC21jHQXAgtFMDsEg94/MvCA6EdnEVgzgMEpOB4Cj7/NQoX7+NQBAc9cLnBsW2vdq5li4qHVMD0PZqdU8C1bmeuFQ93EBwVNVeJIHWNxIgOFp4vaOAUxsQBEdV7SQlgD21E24TJLQ108PcbiA4d3gHXyAIDhEQvkAQHCKnfIGK5tMvP7yAIDi4jHgDQXDwvbY3EAQHV05vIAiOFtrhQEVwWqHduxyP97OiYeH1+NWFM1AKzov2MkMWCZ/3+o3g/MnaLanC8/h3shrW/4g0KTXa57+R2bz/8C3W0pNR7/UH0wSZvtqOiPUy26H4mhku5u1gsoRNX231BOdeQKOV6xL7NZJqxbrwfnd9xP3ZdTLh/nY9/dQ59RekakVzGMynzAAAAABJRU5ErkJggg==", + "tools/mwand" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/n9ZMaTjzAgYI+JRygAABBZJREFUeJztmr9v00AUxy3bIfHGS9OEMZmgG0aqBJvN0BkLhOjWFP6ABljYIqG2KwHx/2Lf2b53zp3j9+42/J18qf3R137f+2U3CCzK9GZsO2+w1nozdAbe6c1XzsCF1kq+OAPnWit85gxcaa38znLacEGGW8XaHYgRMbx0B+KbnMIvdyAuc7p05gWAyjzbnnsAojKHcOYBiMp8gIX9xOHAdXtcwFMfwLbMMYB7rktge5tT0ELJBrZlTsFDrktgk73ZFjzkugQ2ZQ4BVr2nDgau5dEBwEOuK+CNPCrAR64roCxzDOAj1xVQlnmqvLoCZZnL0MA72rXxGzNQlLkKDTnXVx/MwIoTAoA+HQxQvPt6lFyoH92hOtgTgcFfOO92LqiLW4aGk+sNLC+OgXMZGk6uo/Kyb/sucClDw8r1VXndbdYBlsVIm1unKtlVz+p1B7gWoenmOrnMgtO6FwSVH9G8EaHRc51cbn8M8rgR17b5Ea3FAZo8KhzMTZcfKxLXtvkRjXkBWq4rHCwzM+BIV5JY50cey5/2CAdwPZAn61LpfQuUWmEcJUP3DeE204BzhINVNhxY10XmBwHPFA7gBYHX1EXkBwEXCgefKby2LnadE+fTti42kSf8+37edyoP1cV4w3s6MOrhLVkrnJ66DBsTurLXZeCYcCRbXUhdRJOlLp+4PEtdiF1Ek6kuK4clZ/TRAFyzcTM0Eijx998/TfZYXaS2Z67weca0V5h59GFLKLHYE5rTiX+s9oRu9x7tCdGS/Wd3ileuzgj2np/GAV74nNDvAfaEhq0Z4mH2hC5O44K3Q+1VWpKmeSTrzMKbVoIgt3pcsYiznsfA6taTvufI6dZpb2Xo3Tru5dG7dfB4AkiesIpTQEq3DkwhLH8M10RXSE0I5ykCbrgLERXCZfZEAUOHibQJ4bW6d7E8YVusb/Ssft0ggGLLx7RYh1CstZplkzxgWqxDKNZahxoo96RMiwWKbvM4a6csi7IQ9Vor1oEsi7l2ZaHdMseiDGG71spxUVgWxVNTI94Ux4ZlUYRQjfIRCjbLoqgC2n/V0Q7YFqsQaovLTQ3kWiy6E+WhAfIsVo9M339NGiDPYn7kIGmBHItlCI/eyRQNkGNxYth/5S2QYTE1vJOZtkC6xdi04YwUkGzx0fhOZtsCyRYL4/ydKiDRYmReBT0oINFibj4tRECSxZlljZ8gIMlivLf8oUBAh6FbKUdAh6FbaYKBPixGGOjF4g4DfVhMMdCHxQcN6MFiqAE9WEx0oAeLhd50t5jrTXeLk07b2WL3X2O89GhNPrqLptGiD40WfWi06EOjRR8aLfrQaNGHRos+NFr0odGiD/3PFv0BnV7vG+XyAcIol08kZrl8xDHK5TOTWQ4fwswSn+r+AbQr7J/LQA/cAAAAAElFTkSuQmCC", + "tools/patch" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA//ILL4farWNRum9GRwAAAcpJREFUeJzt2s1OAjEQB/AmQMDjkIh4JBqjN0I08bjRF2DjwbM+gRxMPK568Ko+sbRd1na7X3TGBMx/bjPb/lJo4bBTpRCIHQ1aR1Oe18YAAQIE+C/B/v0jRcbZcxJ6Bw+xnI7JZ7A+lrcWy2t843lE57434HpESw9M+eChtyN8jyhzwBsJ8NQBV7Y0frndHNouB9vWLj9mdvaRc2ZsZfJeAzSCSl3nRy4pHg5t4a4OaAHVlZ3/VDxcmPyiFmgD1bcBTor8y3yBSfXgLmDffI3TIk91elwPtIJ2Sb8n0Wzysm5wF3Dgb7PepcmcA/YMUaQz8n8524Pqldw/XH+LosCFl/uHKAocBmDGA0cBmPDAfgDO6wd3AXt/DzYBHUDVCMYEQIAckEoRA3nzAQKMADfFbaEquDoBCBAgQIAAAQIEuE8glSIG8uYDBBgBborbQlVwdQIQYBzYlreO0cnuv4NNeGD42jnjgeGLcfFX96LNBYH2R0pu+0O8QbPSTyVbSHq9ok0uk0q24cQbheKtTPFmq3g7WL5hPZIAM/cDpHzPa/rLX0swvU1WTH1P/moH9/JJVvbkr8e4oQc15Xlt768YAQQIECACsWPxA9KK6SODcCK5AAAAAElFTkSuQmCC", + "tools/camove" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADnRSTlMA//MLKV/N36CObTVTrJdvKEoAAAJkSURBVHic7do9TsMwFAdwS6USEDq4QysqGBBULAxVN2BBnKAjK0coV6jYW3EBPmakSlwAOAGsnIbGaRN/xm7eHxGQ3/Zc+6e+xG6TOIzFiFHT4Isoy5dt7QhGMIIR/JfgxvMNrxjHXxemt3NdlUuj82p8P5K3EOca+EjzOO+p3hbV43yqgDM6uKucEbrH+UgCLxHgkQR+Zk3t25fVpA2Z2Fnb+dVBNnq/+DDJWrpPDqAUZOxsnI0vZk4ra7hzAR6QnWbjP/IPhyI/cQI+kL0L4DDP38QBnNs7h4CJOIx7eT5T0/XB7CsVM1Gs46mrcwgoVlonT9Oz1B1QwIYg8jQ9Aj1n5xCQPXD5B1c9RZXAoZKrk6gS2DLAkbtzCNg0wLm7cwiYGODA3TkEbPw8WAYEgKwUrBIRjCAF5Fr4Bk4skDJ+XbBzAQZ5Hw3yiZaTQbVoAKgWjQCVoiGgXLR1fAikAH17uz0JAbk+vcmgPr3JoFk0FTSKJoO2NU0CbWuaBlrWdCmoT1gzzDVNBM01TQWNNU0G9TVNBuWiMaBUNAgsigaBRdF1BbvoktEnBT1tioJruvTQPw5ywb/xA+sF0X8BasE1/BtF/9HrBdfuYqnsck6friGgvoaV8VVA9CUx+qIdfluBvvFB35rBbx69t7erRh/kC8WIYAQBoC/39kmT+j+DhT92vqeB2wYIf3QP3VyAb3+MOXiDBr6FNEtT5CYXfBsOvlG4KXLgViZ8sxW+HYzfsG4iQHnfDb7pj38tQSxuUmgvTrAE/WoH/OUT/Osx1knryJdtf/4VowhGMIIRjBGjZvENosg3YWihS/kAAAAASUVORK5CYII=", + "tools/pbucket" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/rpXGges1xAeAAAFOElEQVR4nO2azWKjOgyFNYHsC2n3gXT2cTLd05l795227/8sF4ItS7IMtsPdRZv8wUGfdSI7JgCPeMQj/pf4tbHert1Wr+6a86aCl6Y5bKlXNWMM2+mNwGMctxO8THobMt+Ax9iqLDPwGM8bCV6sXrORFR3wVsz7zgtuUpbfXq9ph/x8/lwv/RjXq20GBDjfivW1p+n0bxw4l7m6NCLOHDivLHUg17xK4Pm9tPjqAr32AwDfbY19TNSTZAHwOe/rF+IK4BMmm1QWTW8CNvhiAHj3T0t4BTD4dI+TH/rTNS6s6o2MVUdeAOZ7sPRtbBqswvrOYAx4jB2my64jY6/phcBj1PblK15KVVwHxrpanRY+xaUYsKanAZNjzzV+9hEImkaJ8cKYBG0waEWjfDjHp9SywHUIDMSKlfZptCIRYKBWxK/CwAXVBBnwT3Y8MiOBKIuWYBQYqBWdCY7q52nAQK3o+iefqk2otwQMxIoOjyFoHlwCZsw2W3aIUpJFYPC2OLh0mKBCfKZ5B8BAu+J7MIZ1qHdYBgZqxc4+huPBgS/0hRKOuWoCwfdA8LgGDH7gDY5RfAjXgYOBou1mvwwcnS5ZHvSygQt/JgCDGPrn2AfzxfarwCA6FOX4S97vu1RgYMVkHRvHoj2NWt9vFHhxSUTGioG4zDGbJGB6pmheQYvE+W8RmFqLEe9lNhJ4XBz/Cic1gD8+QdYMyVJFBb69bvsrX3B8sUXzWRMcIsDY29ppBT9HT9WkoLVhK/SxwqZZj4Mi6N4z8iB1ySOCNaQf7Pywwgl6avOaC+VXRmjpJEHKbOa3XnTgNGRWFqvxxIDJAUYVkPGqCirAkVUKxsme3qqCmAz9VVMvMI/LazJBB4IaMNyW+rH0BjZB80F/0oFtltdQtD2dqUu8FVHQA2utAL6n38/24L4/Yb+QvcALYoJLTWv/zxj8LcmMgq6cufsJnyIPFHQTbe4eClkrckEcxNw9FMMT8YJueHOZhRW9oHuqVzkeworGCzpnHzNT5FYkgqXM3IpW8IU8z97CZMxW5NZg3fDGV0h6MCtSQTe8pVa8JcKmgHd6qYwwhPkHFXTDm7uF6cZq8M+f2aVyreiYj4HgjnySE8QrXLCWzSgx/vrTKj5qhVYkCxoh6MqSaUV32geuD7GuhVYkfuu4oGzAidFFBZ0DMq1IdgqMOL/MisYLyt+7ZVYkgjtJWGRFK/ikCbrGPRQKVlKwyIoEeR8U1ZWlUHAeM+33aY4V6QaTkYKucedYkQrugpPdvJhuRbZdXgWCwRItWXCYXtwIXzSAdCt+sjoaayAfdI5ICm6MXSDoGneqFUUZq3C4Mq0oB90E+1GZ9xiNOLzqg4V/lhXrhDb/O8eKKctzOnWnJrh8sEm3ots3WsZJtyLuKiwP+D7Vin4bZcUSrixrgvibc210Eq2IwCv7UMDXttHwwOv3It0CaLF2ycDg7XVcOMbvG6V8SROs6L7EaTdf5bZYGH7fKG22WLNilWpBF7yxh5EHDL5DRK6fCwwrVswGBiyLnkE28BQLViwA9mcpViwBhiUrIrB+MzgaJmJFv9eb+bNQ7Pm6qMuAwbcncV4pMODSjpfFAw/ZgtqKuxx4ChPmcgcw+Pn0gIprd+hWAvnc6f7/GiXAwG4J/QvfV7/JWwQMkT8YFANPEdl4LgSG2N74HX/VUm7v3gMM+v2A3A03FkpZ7vxvWpDiXcBaincBKyne/2c8fhPkXuApvqheuaVJ+Lst7dsWeqNit62e/dff7Sb0ZrGX91Ie8YhN4j9O2k4kglwzIwAAAABJRU5ErkJggg==", + "tools/pencil" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADnRSTlMA/3/eIF+gtwhJ9ZJtJCsX53kAAAK7SURBVHic7do/cuIwFAbwNwQy26QwVAwNOoKb9HsEZvYCuQHVFnuDnCFVOvq9AN22HCCHSZCC/SQwen++7eQKe6RvfjbfMCNkItsx2xonTh1hic2bdd0WGhi6Dkr8AmKJ4RwIJEYgkhhSIIz4DcQRwyUQRByAKGIYAyFEBsQQAw8EEDMgghjyQDfxAlwGEHHImWGILAZDZCkQYhaCIGYZAGIR4ScWCW5iGeD+XSxv0fu7OAm0EieBRuIdoI14B2gi3gVaiHeBBmIFqCdWgGpiFaglVoFKogCoIwqAKqIIqCGKgAqiECgnCoFiohgoJYqBQqICKCMqgCKiCighqoACohJYD1QCq7fcgA3YgA3YgA3YgA3YgA3YgA3YgA34H4HzYqAbuChGeoH0mA91A+khH+sG0s9ssB9Iu2y0H0gvfDgASD0fDwDGGq5qQQpgrOGmdqtyYKrhuvpliIGphodqXcTAVMN9vS9SYKrhsd5oKTDV8EQCovCP2/5r6Or8oUqUAWMNN/Gj9w/HdMQarklAlAFTDQ9UJ0r/nY813FOdKASmGh6pShRvH+zOo09UJUqBsYar4cy7eUCphpvhzL29kWq4Hs+9GzCphofx3L1FFGu4Zxe8m1ixhkd2wbvNFmt44lecG4G7jrdmgqgAxhpu8ku+zdS+y1pzk6gBxhoeioueDelF2ZobRA0w1fBYXnVs6j9cteaKqAKmGl5Psb8Ysbs9x/7qxsvEJPPLJf3ELOvrL/OJaa9/jcDFzXlP/96NwHGJwib+eOutXzFboowzP/6YO0h8ifI9dXh4NiBbosS57OHZgHyJss0enhHIlyjL7OEZgfMygh/Pv/TABTaOr5QhcXylDInLVsqIuGyljIjLV8qAuHylDIgrauiOy2sIiOM1hMSNNQTFXWoIi0s1BMadawiNI/qNjaNPEJxncF9fFcAAAAAASUVORK5CYII=", + "tools/plasso" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/nlSKa8K447NfNmrqQAABj5JREFUeJztWktvGzcQ3krrtXqkU0XWTW6bPm4WEMfObe1CiH2rkjTpUYlRNL1VcGLkKCNFcq2LIOjP7fI9Q3KWKy7RU+YkcZfffvPgcPgois/yWf5fKZ9lBjz+Ki/egt3JijdgbD8nXnnL2DgjXnXAGJtmBLxgXPLhvRJ4rM6FN1xLwMPom4OnXfCqpcRjs+irB+y7DoDHCo9tYm82sTWJq7HQeOznOMEmuOrIS9qAjfwZJ9jI3qr1pXJp8NjdDgQbuerykpBIdhjo99pcfQHwYtnBfpt29Uv9yhW35F43gi2u5ilByHjFTdmebqBxCFdXN/aLHLA13QCCpKtNRD+T3590JUi4+jf4cM5/BD8rZcgc8V1tInqf45zyXzUNONe6GrVcV5uIli77gv+kx6khOIOGR2K+9F783RVvRwneAZphV5uUoKy7w3+T2cEQ5KxehVxtgmBfNY74n787ECzA8LKuNhE90bQFByrdIIIFCCHt6sq0vDef4P+o7KAJvtYva4dqVxvOH02fympEEjTqWMdIVxuragNyWdOALsECDAruagM/rUEvrkU4O/gECxB1eyszyeGw463h7BAgCBILuzLYH1E3shjRBKcr1GwCxYiTTgWPNoKfnPaBg4cMWNDZQRMcr9wnCww4cx5T2UETDBTMxxDPS2dEdqAJghrGN2ChssOGJBjMG7ZICEwyo2A3TZCYv/QQCU2D4eygCfrUpVwQBixUdvCKEW2lGQEo00ywOBHZwUs3esySNQBPPMQszQ3sZYd4MTpcU3XEMkgkSrFYULUTB/Szwxb1sitEdohTpIRHSKAYSacossM/dT6KIjuw6bfeg1SKu6qfR3InkaLu55NMpDhiRhySiRRhBeiQTKNYMiiIZBrFCgFikmkUz9cYEpBMteISIwKSiY6ufnQQ+1J01QbpUVceW1J01L627aNUikjtDWhPpgjVrkFrOkWrNs7fPShqtfGU1YeiGobXuLEPxYHnk54Udz2f9KR46vukH8Ub3yf9KIpI9BdqyRRLikcqxVHQJ4Wt/LeluBv0SQ/A07BP7Lp2tiXgTdgnyQSlkwMsUgnKGXqVj+CI8EmM4EO/0JIinOxvF8QIlsFqkMucd/N3SGIEH3G9gluLy2C3GMHqVjx+svKfrIM+wQR/+uHrGj/XU/f4gdtTONlb3CGCYo5w1jt2P9AluRP0CSSo9n2Q8rAafIOXQi9CPkEEjwG4lkcAkE3+gn2Fk93lFiRoNm3AcJeGt/IW2IM7eeKYARIsTV+wrNlhjliSVcgnkODc9rJ63LiANsqHAZ9AgtD6ZgdANo5x8abqy9DWJEHQfldkUPbJrVkfc8u9wLq0ETReUWZtdKyOECKPcs7A8QkkeKq+LTrqlPQHgD9DajdRzkljnwRc/FQGg66ZpaIbRfcDJolsgwhO3q1UeFxpqvCLZrfNUZsL8gnYNZu+E+EhdhK/5L8kxlw8BNuBL28dQOQT5xRAdxV5vQYugZ3K71EHvLA/Wzp4cqtzYECkS5yxcLQGPZwc6tpEBuzQAMoPuvuLl4CHl7susePYm/uqADrUuuMdWsnDricCW3HnjpnfPjCAc9EQKjTMSAxtFZX3HEv+q95Uy+JNoI8eicTJDzSKlkbP38UP4vhJmp+c1048wEO9r/Oa6CNGInkC6Z0jscmTc9pKUpqRSB6reGnZSGu5c1RTT0SN8ss6ABg9+A2LyAer4QcPz52CusqcyYx1dusApl7i4KlGDFk3KGeJgEtr/svnAC/5ygXX1AyxE+uc67ZObbKGgEVpBn+dB7Cp6ZbxIIwCojxaiTSaGISFtKGz79sMrNQgLFRqrp3Gs07XPcJy0GOUBYVcA6aKSA7+5JEucsp3p7ceIuvenHebZBGR8caZqGe8I8EeoqqYyA2ZbUSVm3DR0E/M0fDj+5kQ7YJp8us3dQZAeIOo4ZkBEpxBcEhqV2ALQZeI2u8bdZSHGDFDmOOCNse1RbSka73201VKeGiwyoFYXN4zLLPgNVKePM+nspJF7vRInPimi8jgOe/jiu2RjNOqvC4SvzLZWcR+UI9CxBWZdzL6ZC4Ak4tNX+RQmWXDk4vGjCaU81XG0kkWOuRltlTAOh/gMHdmGGYOGruJsY38B2/oVAe2mIrvAAAAAElFTkSuQmCC", + "tools/pselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/qtn3PIGJDkTU78rPAAABQNJREFUeJztmktv1DAQx6ukbHaP026g3JIiXjeiggS3BhCPGwEEHJeKD8BKcOC2RSA48ur3JS/bsT1jJ945gFQfILsb/+LM/GfGmXRn53ycj39k3OIG7nED4Ro3cG/FDISb3MDle2YgPOYGphtmILzhBqac6m6AsM8NBMYlAvcSOyBk3EC+AOyBfDlCAPd+MAPZAlACuXKEBMITbiBTjlBAeMEN5AnAIZAlAIF7iRqQo0hrQI4A1IEMOUIHMhRpA7h9ABrA7XOECVxumIGuIi1OmQZ0FOkwoCMAA4F0AIYCySWGAskiHQykAjAYSOWIcCBRpEng4ooHCE+nAb+kP6yT9IHnCAoYD/2IA/EcQQAX+TC8CCBapAngF4Dr9knmwIo0Dowr2F/5gVgA4sBCT3kkEAlAFHhi1A0SiOeI2IzLpDQCiwaiRTqGZ/oXX80r00A0ABO4pF+gMreBDiCaIyrdtoUVpg4gWqRzDRjb9+ECLpEckWumzW0xuIBYABbLwYcI0YITiOSIAlbDBdoB5QQiRXoN6iIRFvJuoF2k3w5uMsds4gbaNt9VwAhNmx6gZfRIxV6BZk0f0FxiDMfyCM3rPqCZDGK4KBf4GuH5gUYAJnDQHcwr/NHLCzRiayaM8IfY+PmBRvSXfezlxKbKDzSKdB/MEbWnGgHUnVmk3X/UlmoEUJdbAY0Jksq3o3INzZ2nsGnvGNXMSKDmz5+tMwpynzsKOJy92xhvUZHPmeOAA4+2wRzBo+2AgyVGTSFdt4bcBqjuMG4KaU4/WY8EqgCc1/c/J308Hihlt6iBEaXqCUBVpGsHDwtLMFDmiHy5UziaE6OBMgBzWJWXOIAiRxTwXZaBrYBdAIoPHMA2RzAB04eHh0dHHMCXDejup5V1/lTgy/uHV47ufrP3c6HAzHf+VOArbmB4m4AALn3nTwV6S8ZkYMYNPOABvsjFEZWgpgHTTSGPiZcN04CP66orBuGVScA648XyAyHtScCbzZZAfKCbdPVObkQLD/rCJr1CSrsB5qMKfVt61z4jNqV+/yPRKtKAYmcqRkZNmcNeTHe8wViR8gol7brUL2vLUE15OV+YudRXjI0SVifenqA0WSG/Id+j1S5JSl9PUD74nvm90jxRfKSW2E9W22jlFTJrN08ASUU05fvJ6sfEsqo1ThsFfCCa8r2KB7spv7TXzVaktiJ6xW7usKGivEIZ8QJcrv/9hfdhOoWsBt+ohJMRwKjV6CxHb7qdqSlASZvatPXPeXGFedqWsEo4lLTj/pcP2PtPxFbSKykhbQGsb9o2IyKPtc8rCXRPpDvz0m7EINOUtKnHpUps2k9qcRnTkfat8gol7VIu4nNtaf2JAOs2yYRDSXvQHrhjEtEOnFyifbH+hEwcLnKDiDVzVMLJ7B874LE8TgwiFj3KK4S017IbJIgb+RGTmko4hLTfalea60Rs+KS9q/s/uVr7754L6Es4ZtNmUfs6veEAvvNIOzZtMbvt2hn4pR3bsz873/D7Es4chq3dbvx2vveVXsGlPSMlTw2VcDL093LqHxz4pJ1P/RMi5RXMiOK3CcCZTDjpigXolnYIUCWcYx6g8srYl12eMXd5JQTolHYQUHkl4wGqhGNLOwjoknYQUCUcW9pBwIFXyPdY04CnYtrzDQ9QSPtBQDMIHZ1X0NITBmwTDl4cw4CNtG3zbTPOMPNtMyJX5T4f/8v4C9sfTIwhx+h6AAAAAElFTkSuQmCC", + "tools/pshape" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP+AO4HZ8U7G5SiAHBLPQAAA6lJREFUeJzt2r9u4kAQBvAVAoeUvuSSuy4REn2uSrl+g7iixXmCo0gP4gWONz4HjMe7s7N/ZiZdvhp+ivR9gt1gU+fl9Zj5QpP3sse3xU4VfDdmrQnemz6NHni3/wSXL2rghzlnowU+PF3AWacEWjNkrgO+mjEZY0yDj28AZowxDb6bSdJjTIL3xklyjCnwMkFIcowp8MN4SY0xAV4nCEmNMQFa30uOMQ6+Yi81xig4nWDuGKPge8hLjDEG3oe9+BgjoD9BSGyMERBNEBIZIw3iCUIiY6RBS3uxMZJgcIIQcowUGJ4ghBwjBRIThFBjJEByghBijGGQniCEGGMYjEwQEh5jEIxNEBIeYxC0OR4xxhCYmCAkNMYAmJogJDTGAJicICQwRgxmTBCCx4jAnAlC8BgRmDVBCBqjD+ZNEILG6IO2zMNj9MDsCUKOMTB/ghBvjC5YMEHImgaLJghpKLBsghBnjFOwcIKQTRgsnSBkOsYJaLmeM0YAGROEHDHImSAExjiCrAlC1j7InCCkcUHuBCHXMRrhBCGbKcifIGQYo5FOEDIHUDRByPEKyiYIOY/RyCcIWV9A8QQhzSconyCkH6PRmCBkUxuNCUJmnbGaXj9GozSZaxb6f+EfXXBlfumCB/OoC3amVm1l0Q/baoLzHlRtZdWDqq0celC1ld3nx5diK4vz5+FWD6zO4A898PlLPrE1W9ldvqT+aXm3w7feVgusBvCnFtgOoForzQDePel4s5fr2UapldvxsLTVAasRVGqlHUGlVpoR1Gnl3Mlwgt1rgMvJkfivBlhNQJVW2gmo0kozATVauXRyvfjs5eDSuUkptHLjgAqttA74IAc7B6yfpN6sdkErBeceKG7lxgN/S8GTB4pb6TxQemRa1D5oZeAcgcKD7AqBwlZOCBS20iFQ1srYyQS0EnAeAEWtrAKg6HpxCICig2wXACWtQCdf+S9TSSurICho5RAEBa3sgiC/lUknDrjlghUBsi99zwTIPjI1BMhuZUeA3OvFbU2BWx5YkSDzyNSSoPZPSMyD7HB0DYG8VpxOPHDLAasIyGqljYCsVpoIyGnF7cT/sXVfDi7rGMg4yFZRkNFKGwUZrTRRsLwVrxP0k/q+FPQ6QWBxKzcJsLiVNgEWH2RTjyWUXvpm/vsRaMtA9MwNAgtb8TvBYOH14pQEC1tBzy3h522KjkwL9HYM2hIQPweFwaKD7CoDLGrllAEWtYKfJUs/7VyYb/AbZOQ/D7t8kpmFSS8AAAAASUVORK5CYII=", + "tools/oselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAIVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt0UjBAAAAC3RSTlMA//LQpAccgTFNZyP+yucAAALySURBVHic7do7bxNBFAVgC4Jx6GZtnlUSHhIdCwhaIyRCSYCKykBByxZIlAEhamhCayRA4l/i3TjKxnPuc6awyJzKSrKfdnZed9YZhGUGi2T5XMACOsFBphSwgF6wpGQdsv4z5T8BR7/ublfXdw9yga/q5Zb2cD8LuHnkhTD+lgNsQtCJSnAj9DOZJYPNCTDcTgVHYSXvE8Gzq+AkEfy5CoZpGlhHIHmLKjB6hIvMU8DzALzKgVKiPlmkmomX0dkDIN0tinxHINVmTeJR07b5mR98hEBmtoipIXgrN0hPPzHbEAwz8oL2txyIPfwQO0sAhwR4Mzd4zQuitaHNODcIeyUJRL2iATcp8E5u8Epu8LITvECBqJuTQNTNaSAoctLAaW4QjBsNiHbRw1zMDYKNSrAEEA1ERTZI0LkL0CBcwFLA4NubUWmzzL4LPEODcxe4R4O+6uETDU7xFe2vGBDWSoeJ515nCSCulbpsucCaBuPJrACpfb7NJQ9IT2W0TSnA5wwYLzcKkOlkUN7I4JCoDrvE65cMvmA8DzisOTBeEEXwM+c5QG7MBLTCCuA5Ztq5wLe8ZwZH3JDxgHyPLFJhkIp4gwBk80byjCA/ph0gO+mWMYHCGDSDdFnoBOUuMT7D2g/Ce1e12DJTNC02LV+NBjSs2NxufBzDJsVUmb0Y9uXXKnBLDzYqcKoHxZWry1wNkmfkk5mpQV2fgHMKBTKFei/U0QyATF3di+E0ypVcxzEcwBuNZ3nnUGtAy2sWFUi+WQLRjOux5eioAU0vYTUg+92UA4TvI8nUMjg3gfImb7tBeWBXpidIfJ/QzwPu6vYPVn7EncfaTKgx2FkAlKp/ssEUyB7IQvjAtxaAfK88IT0a5KrNp7RHg3TBXnEeU9tQR4rxb85jwFENPeELcO7g8xJwN/7wHH+S+hJxH+UllQMH7/qtlv+BQAYHwx+Pd0K1c+/+7t+vGk0EHTmtYEnJOmT9Z0oBTwt4hGb5XMAC2j//A3h4W9DVFaS2AAAAAElFTkSuQmCC", + "tools/qselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/wvwy54pPXlb5S+ZHgAABFJJREFUeJztmrtzEzEQxj0mcXCpscOjM5PQ43HCo7MhA5RoDEzowpD0GApSOg0ZOjwh/y++s30P6VutdnVFCn8FQ+7xs7TaXa2ka7XStDc9+puIqOvKmP5Zg7xds9TLBoGzDGjeNQec5MDevCle16zUmBkP1sDGzGg3QPO2EV6n4JleI964UwLN/qAB4KICNC/See1hFWjmycDdGq8B3/lWB5pXqUDrAM2HNF7X5aV2escDJnb6ygcmdbozBMD+QA/cBTxjxnrgDAIf6oETCNxX8+5DnumpgQcYaNRA23AL94gGqm0IwiTXYy1wQQDHSp6TWwupIwWHiTGvlTwvt6Y2kAgTfbLxc2sufdwRYaLPhhbyHql5MLemTMzYaRImlBni9b7rgdBpEmobmFt7Z/6Dl9k/mwey/19jIHQaP+j2psYFmmNoFwt4ftB1JsYHwuIC5lbfp61BQBRNKLf6j50bDATVOCpB5l43hhTQcy+UW/3E/9NQQM+/gNP4S4D1r0Jgb1B/FsSd79M7JaSq1dVx/aKfC4FPL/Ibx+7laX7ZyUq+DX2fXj3j+1xngvpsHR6YSFZ2Bvl2Za/55ncvP2ZO5EYeeC83IZwQbGnE9u2yvf2WZ0T03gzYvvJTeRHZnRbNqfd5Dl67wkPVWif7bFQuhmV7arEH87SlelzcuigASx9uVxKsMk+fl4TMiQ/LP5+reE9NvUntwoq6tVN3WDVa1qYi/FTFUac+J+VWu6FdhteNqSuz4rrTqtrDyy55supkbqmqPdr+JJx3tH37ZqTaCTn3eBF7XdlDxK0O4BnzWQ/EtW+PIdJAonDj2kgDieKcsyMJBENc6P1AAaQWYLmOz+RAGwIGAo8CEquHjfpiID0kuei1MQUMDIkKyPQ4sB1A3KS2FdRAywEHMiC1yFa3kNiZ0QPvcTzplsqiaSDjhaFIgcK5uirhJMqPiRAYTF25hLPoVxYo3JZCC6a6HsiA7CCbZ+S72V33WpvlBTbOEJDNXaFSCQGp7bKK6NIGAXmvobMXBD5heYHIQ8AFCwz4NQJaFhhwQwTk3XAsAka44VwEpPapS7mrXgaYlrwAkHfD0EEHALIzVHALHABnLDC0DAVANhsGZygAtBxQmF1bQw4oXOaxc2jIC5HY9Co9HWPTq3Rhy7mhsArh3VC8d2HDPPnmCpMNuZohe6Z2gUle7EcNHpAZZPYYwQOGFxS8BT1gODXw34V4wOCYRNSZLjAYeP0Il3GBIRP2YzZrXKBN5LnAQI/xeQgHpHsc2rgIAKkxPvodh3OBRJj0v0Q2zwPCITm6jsc5wENAO/0hoDnADrCgjOYA/41Gw2X8j0YnJ59O//waqIBbbXUXlEVv+IBGqIgjJJlmWXyN0Z3ykEukqGM4iSIPCuMlO8qM0SJvSdxha5Qkx8FRkhxYx0lwpB4nwaF/pASfJUTKYqD+MyTi046Ej2jiPz6JVuznMVttdef1H+UXTUp3lXy7AAAAAElFTkSuQmCC", + "tools/rect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP/AAaP9yvWlf28D3KXXQAAAI5JREFUeJzt2qENAgEAQ9EmXAjIw6BRWAz+FAucQSJYACbA4BmZsAJUkfcG+Au0GcsiKCgoKCgo+ENwvqbkdPwE949WL1ndx2xevV6y3mXb7CW3nLvBZw7d4CKXbnCZqRscujkAAAAAAAAA/tbUzQ39Sb0++tdvCfXjRP3aUT+f9O8x/QOPoKCgoKCg4HfePOIKnncZ9gYAAAAASUVORK5CYII=", + "tools/rselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/iyWEiMAAAA9SURBVHicY2AYBVQF/0EASsO5g1EQi9NHBckXHAUjEwzCpDgqSAfBUTAywSBMiqOC9BAchE04bIKjgKoAACuiXrD5nX1PAAAAAElFTkSuQmCC", + "tools/ruler" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAAsSURBVHicY2AYBaNgFIwY8B8LGBUcFRw8ggwYCkYFKRQcRVRDo2AUjIIRAwAZE3u9DtJG3wAAAABJRU5ErkJggg==", + "tools/sharpen" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA//GYCstmMUUYT9HGbgAAA8NJREFUeJyt2EtOHDEQgOFWnARYGkT2SBGwBIlNdpFv4FXEDucEcIPkBpATZ8rd7vaj/Khy1WJgJM/PdH/jadTLMjZnr4MLR0c9CAfNd+Gg+yYctNeyvTOtZVWU1rIqRmtZFae1rIrVWlTlZCKroiAoqWIgKKniICipYiEoqOJNJFXUGpRTMWtQTsWtQTkVuwbFVDYTORUVglIqJgSlVFwISqnYEBRS2U2kVNQRlFExR1BGZTW5kVNZTR7FVDaTDzGVzUSJqWwm52Iq2z5ZxFS2fbJIqYR9skiphH2ySKmEfbJIqYTvru1kzqvYPehEVPbvrkVIRR1BGRVzBGVU3BGUUbFRUELluJ6cnvwTUFFxUELFxEEJFRcHJVRsEpxXia7x8NRMq6g0OK9i0uDZtIpLg/MqNgvOqkQma3BWReXBWRWTB2dVXB6cVbFFcE4lNtmCcyqqDM6pmDI4p+LK4JyKRYJ/J1QSkxD8NKGisOCMisGCFxMqDguu/8jyVCwa5KukJnuQr6LwIF/F4EG+isODfBVbCXJVMpMjyFVRtSBXxdSCXBVXC3JVbDXIU8lNouAXlkpuEgW/slRykyh4ccNRyU2iIE8lN4mDHJXCJA5yVAqTOMhRKUzi4GeGSmESBzkqhUkSfCOrlCZJkK5SmiRBukppkgTpKqVJEqSrlCZpkKqCmKRBqgpikgapKohJGqSqICZpkKqCmGRBmgpmkgVpKphJFqSpYCZZcCGpYCZ5kKSCmeTBD4IKapIHFUEFNcmD5wQV1CQPUlRQkyJIUEFNiuC4Cm5SBMdVcJPipeMquIm+zdcNq+AmWj9l64ZVcJMTwHu6blSlYnKa+3ThqErFBOYlWTiqUjGBufqZrPTnpq9SM4H5Va7sq9hG8PJPvNLfeO+q1E38QcdLx1QaJjA/oqVjKg0Tf9DxG/Jnp6fSMoG5zdf2VGwnGB/iiErbxAeOHTii0jGBOXbgiErHxM9Len7aKj0TmGMHDqjYgaB+To6nqdI3gdl3YF9lwMQfdPL3WyojJjDhcmDhSUtlxATm+jVa31Kxg8HwYeypjJn4eYjOeV1l0MS/rffjHdRVRk1g7o5zVFcZNYG5fNlfUVexhOC6A/3NxKoKwQTmuatCMIGBHbjeTKypUExg4Nw9wi81FYqJn6fttlVNxVKDpw9jS4VoAnPfVCGa+HloqVBNYK7eH+EHrkI2gblrqFhO8PI3PKIqDBNf9I+YCsdkH0yFY7IPpsIyCYOp2JkgosI0CVOqTJlgKlMmmMqUCaZi54K7yn+5QWE9MWT65gAAAABJRU5ErkJggg==", + "tools/shbrush" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/t8Sg8BxMFAcKotE6AAABUFJREFUeJyt2suP00YYAHBDkk1ynLBpy40A28cNVhuJI+Gh9oi7XRC3tAhVvRVUek4QSOUGqCDx3xJ73jPfyx7PZWVn9vPP87DHn11VULlzTyl18gz8LS5fBHWq6n+ly32+6n+SeGcmnlrs2LoPBPFmKxtQfcNWvhAE3Chf7nKVF3y8dRBPHTOVp+pvLt6oDgNyxLHadgKyxIl61A3IEW+ra92AHHGvvhUCFzJizbWJAS7/quZvJcTDkSXAZTsWPvHE2eFnctwY4FZvvWaJE6ZJDPCHeJP4lxeHX6+wwMV7uz3miDV9Akb0k9+zoYnT9vi3xECWOKFbJAdyxH3741U5kCGO9IVz2QFIEycqGmUSIE20V+LvOgAp4tjOdniywECK6G8VEBED4sRPypetHIgSg3vjoaOz/8OBCHFaq7Acp9MFB8LEWRxPqe/jiBQQIn5eqbQcR11NAXPi/HkWrvnvn6XAhDh6k56uLSd/yoARcY6Ga0P+8l4CDImigBwwacV/7zGnzAPTjv4n7+SwUyYsMOvo6SaLFwybDQ/MxuLojyReMLBnAqC+YQbEahQbw6l32u5h1jxT22qWWM3rIF50cdCH2tEBXzqK2zUOAm6DqnN9CCEwnNF7ty+6wOoDobfCBBgSZ3bXIrouXE6OywAhYnwH0HvpPg6AUCtuo8obvgkNcLlPiTXU/qv4qATwfJoSX7TbyZRQbEALvGVHtyOOgTPWAclnOgs0y7dwujSHShfZrNB2ceNKiRsAA7UrBGwPmhI/HDZuQAEVvgr1YxAgQot2aChBQJAIPVZoQOoGgCBxlbdWTfeKAa4Q4iYfIGb470jg8g5CBB4e9fXVPezAwHN93Jx4KX+8NTMcvgX4STKDiZP8OmWW8vBNygBvVBVCPALaao8TbRc3DQ8Tp8CF70ihRDcGtyjxOnBev2NEPwZxIpQIQonBhRolgqkqhBhOEpQIJtMQogE+rSkinO4DiW4MrulWFBPdJBmRRLgARD9JqmGIL/0xBiG6Lm6OMQTRjcGBiMEYHIYYTJJBiLaLVwQxW+lQRDsGP+JEm8cSEd0YnONEl7mUEP1qBiX61KqAaLv4cAtHiQ99r/FE28VNHIwYFJ5ox2ATByU2JViXkURXGOLyTEh0hSGec/nFiOjioMTDlY1NgXqiXs0gxFMDZFOgAdGsZkCi/ttceuVEu5oBiWsHlBPdagYgPvNAObGpgBEXAVBOvEsQA+AwxBA4FNEBhyKeB/9QRpynwFLiOgOWEYNJMgwRAhYRIWAREQSWEEFgKTEHlhEBYBkRAjritgsRHIMJEc8aAkR4DMZEPBuSE0mgI+7kxFck0OYa8PfXGRHvYl0+tBWIRGRKZIBGQCS9ICIBFOT5ACIBNPWppFdOJIH6QYNMbQbEUx5YXWoHA1XDE5kxqMtlVuiJ9CSRB7TE+xJgdZvrZU9cSIC64+AXrxlRAtSXByZlH666OaBeAnDfohzJgfrF0Zap5YkcUDch8UlBQmSBc3Yqx0TuFZO5haG53JzIvAQzC8cdH1BI1F3CvDjqQqylZywkSl42diJqIJJq7kE0QPajMjGxG5AndgTyxK5AjtgZyBG7A2liDyBN7AOkiL2AFLEfECf2BOLEvkCM2BuIEfsDYWIBECaWACFiEdATPagM6IlWtC4DeqJ5djDJ3/5Av9J5EmwVAIPFWPOxztu0RUuI6uTBr6ocCCSSC4FAIrkMmBNLgSmxGJgSy4ExUbjcoktIZFfyouITBj8OEs9/bXmTfYYQFvO95eOh4jXfDF5c/PYO/u0rQa7h7oqGVTEAAAAASUVORK5CYII=", + "tools/smudge" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/n43xwcW5PnxkxoCQwAABxRJREFUeJzNms1z20QUwDWSJYbjOh5s32TF/brFTmmbm+O6LdxSh5kMN8WUALc6pDAc40wLxzpA/172U9p9u6vVymLSd4kkSz/tvq99b6MgaCSLtNlzNglR76BV4BlqmThCCHVbJCZbDESbvDVgiFC7xGcMiG5PWgIecyC6bIcYIdQusYNaJo5Qu8R4LQPRfGdiiFTZeYy/ACC63TFmRhC4Y1xH1xpwt5iBKtxZjxMTED1vDjw2ApsTjTPGMrjfEHhmAaL+vWZA3WmENHMelqzN0mhRsKmQShN3fFYFbOKOdhVS8XaeqJqH0L4nsOMCDjyBjhlj8eOBZL07sNJpmgC1ZL0r0K3CnhfPlKyB7HkBa6gw9QJOnLxB7gW0JGtJul68GjP+5AW0JuumKnQ7Td8rfVUl6/9LhTMv4M9uoN+i0nrcuQd44wV0Juv2nWaY+/DiO4i7d17AO4g7P6dJ7iBZz7yAEzfQL+7adpoaceeXrL9zA1MvYNvJukaR1HrcvfAC1iiSPvtk7Rd3rSfriZP32RRJw3k2XpuADYukOfGNZLyzCrnTDESXNNV4vUZFUtmyP4bARsma9IU/ZFmW49CGjj7zArKOtnsSxFR7vXt6bDeIu+FBED9gT/dTGItNkvVzSXO9HAwROk1WOeIOZyxLwEuQIFP1Cce2OZ3diyCSwqWfK9EIk/WIKdoitEjCfnakWlXOF0CFVB1D675QyOYYbVUryEqcGaZk3yw4Y1NUd0P6J3JpoiqseLVlL5W87wYMkJihVClM1itx72VuAh7Tx39SeXiWpSdqlfVyzX/ZGIyd0CFo5et7CZhqDy3F7QZjE+V/0pfRvdJvTJV1KIh9zdghHcIEArvlJWPcFV47gMbuECfUC/ZucC4OzSt8VKgEGPtL6HQa0BJl0UNxg2rsc2KALyqA1hU+eSRuViJ7QlxEU6GkQ3s7ljwQd8umwc+9rQSmViBPyEQk0+DnPhqBXOnV7Vi5QF6KaWNVfRW81oB7AuhI1uVy1uODfE0e1o3yXsSyqyyclknk8gm5YHGbWcxvdC5PRarA8lfAHNsATKNaMyayXJePBSz08nirAfk7PriBZWBTIBlJqlWwg5wvAWkNoBQ0+ITo6p22IdLjgVKzlyhcnJyMTFYRbmhR4Sm8IFycHE/IOGCf8i/3mpl5QMdz7RpzH3LUoZoCO/bcyAOz0zzFOUu7uFpzIJntHpzzQVgx45AMRl/ySM6lB8d0GVXs3OWdkHHXgtd6OjEZX9O/WIl4oQ/lLQIRyakJ+IbfZFiW40DMGddKT2UVMiOZc+tK3GX7XwhdUF4GSTnpYc5UaCn9H7uIZA79A6n8Eio0zlgm3ubG3yMyP1wRC+KQh6K9X3QRaSWHS9hoTCzzz31e1P5mBZZEUzEi6inSBZxOs/2TgBmoX5UKi9xvrmUfq36wpDb+tYJXFPiWWpZb+JauhvGU+UxeBZSIQ76YJFPc5GRfs5Nwy368wpe+YYeuf1yWRDQ/vDgsms45Q75BQConzIimJrMcMfh1UyezWojsn3/SDJDNGzTRmkyFKL3PXDwbZLo1Agcp/XXFzdHz+O8iTau6cBeJp9liMd+vOzwqES/q+vPs8PBQuAhONkDq97PxdPH7gsYXO2ND7oNRrfw26WXhHYI6xHDt1yErwpJWD17a4WMO1ien0hVSWfjt7qlCM8MNuFA152leDQzhnEdwyKpE240jc1AtSkr7HlUO8ahMWVTiH+EddEmagSEjW8vO8vslzVI4B47/wPyr7Il8SwhGxLaayG6LZYBEyL7bK6k6mEtTpMu6pkTb1sdDZJZeCgDSOa9LzJ9yRDWIZ0CJItGZP+UomzxILAZAlSjvwMWPqoi25I82xR1boMQg4fOyfN+34kVGf0FWum8LYuGfuiuLusRSENE1c1/4ykqsH4Wr0C5ALS8dRCDTNbtbDAp6Ir3mRVwyojAEq46Al4RrLyIztLiXKvFv81trEo+UOU/IyTAF9yy3HkT21cWMn4XAM7msfIgjWYnJ2kK8NhHjC7xkXsCXdBTL8lZKjnALcTp+xcY9uJorm7HUskV4iFZKqx81otIiDeWsRf0sF2diy1T7ok1s5Asi6K2lEajxVnQVLuIEAWIxxnMFWBK1/VpRtbEm4hwASUfChFpF6pZqEjt/0hSTZcUCIL4u0wK42MKrJMbF1dNsy5TEJ03NrGxFFdndSgQZd8nKN1GQ0ykqNYd7jBv1MlsOerIDqP2ImwguJ7KvsM0VNcvbiWMjkFnig3QMW0q7rcdGoFxaib1ctYlwEDUg8T6xYSTCredB1IB0nsJxtvxRNVcXRFjLk+5IAyaSVYTpYOfJ16eullYxUQMGa1QmataQ6XXWci2/ViHq18jbP8qTGBjqUbKa1O0ExvOiTWZE45ejq+3AMEAs/wGzfPhC9BE2hAAAAABJRU5ErkJggg==", + "tools/sponge" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/qlh7TQU2AYilPfvrgAABvRJREFUeJztWs1z00YUFxg79lG2ErU3WQokvdkWIXCL3YSkNwfHpb2ZGNzhhh0K5WZwZ7im04YZ/ttq337o7ZdkOXSmB/0OxF7v/vS+d98KxylRokSJEiVK/J/xd2/v2DsNDybfhK0W77oMfrS8Pd+o7SIMHt+SrrrryvB+uBXfdO5quH8Lvmc6XYLoG/NtLqONz3U3s+Mn5NsoHt+Meqm/H2zAVxX+WDzhYyPuc69TnJCL4x+gwUv+kOawKB9fenVtlNptLYvx8aVyiLxEjrkqRnhhDBApCws5pto3BlwfExZyDBXwR3VYjkZ/fcfUwILNiTrOfdIr6upPFpW6TDTneUFGMP7vlge57omgbq5XHisgxmQaRooE9Ta3XZU53FurUHwmU989M6hdSXj8x+KhBOvUcKKPP3WRY2q9kGZgfRTTEW5GEvy/5PDVyKynzEoBjLT11Kh30wBaxNcGHoG7ZE6HhUiLjFyk3CmqUt4skgr3BYSvzV7fjEfxeCJmviCq1tjEJhFmnnIjVOauhmOUTAvuUqLLHw1EWOHhp2DVdzPBM4NM6/CsaKWEHrdx7+1pBHNXBhkxaO5WqDBdOhakhE3mjYfwZanbUUfAfdLiLD5I0hbCOqL0vmPSZitNHruVfPg++XtItHyMOFiQt9HcBNO9LMb9ZMZfyd8jMnUUhjwLCDlLMpEiIommvbldRObkQHXoNObpcFeyDzPrqBe+NTN2qEoaYYotPvUIjxLHj8dxgoNxgoeCcDuXUEj4Bg0+x1Z18Obj07KcQShsGGhjYttquCk6ENcZhDWWHh6qB+epB+SHgiI5hHyHxZnNNeTJywrBMTWiah8V9Azg49LLc1qM0SfE9MHk350MQmdFyvYjPKIRfqJUbbCDqo+O2khpMFSVkzDqu4Mh2NZ3JPOuh67ilASNnx0aYpTQzd1wa3EYL/kX5tV36qRKShjgteNfdT6i5WDCvx6CgBN1FiJERiStxUA9RdDYEWeBem/uRfpGVU0JU50r4ELl0NGgfvU0meyEJ3ywq3wH8IQOsgmRyuLMwLPIl4TZKk7IrSiKi2TFe2wwK6McKWxcXqHvuCZh1lT5BSf0ItKQQL/00UhYdddySpcTfqBxRtpts8rMVScaRWXvOBQBAZXOc2jMgDMG8YQ7RREGNmQ9kkEOUblBGEIIZw6W8ANO+J4cW7zTMKLnuUYvjHSFf5Os0+WE4GDc5MjwQusZs4sDhPYmgrBiJSTW1YVzUrVY1aHpKQj53mFG81EGYQsJmBLKfZiut/G0TlXehs9sb04Ju5mEyRGZqz3dW3B2GmQQYWQX8PYoIbXBeQ4hqfHC2HxLJmLBYRy2sgeJminhHby4eTDSbUrbHtq7MHHrMW0XaECSkxcENvx6D6/t8BiTQG6FqmICBhgwICRA2FEJmza3R0uWm4HEB1uCe03qHBCekcGPaN221e2DZzph/VBIwQhbqlOOdLdfzehp2NNUbuymUiRSQT0cKusDze2kAqAZaEtecU3e0DVAeKKY7I1GuONI2bnP6Wo9sS6gZgLCZEe5VJfLKgeSVb3oyRLoYmRoYoU5tWESV6HkU9SgYUL8CG8RhnJD0AEdPOWmgmGIandK+MI4FxF+thK2JkrTFKiRZSRsWwldXwlr0hpBS2NHAF6zEapo6pGpTXnVLkBIdMaRNQhNmZlPGIlL7eT4lF47kJK1MlfkbMIrdNfgoSCBDdW8C3lZpd+3rQMXmU3qScO+fC9ONwvDE2mtMYroO3+mXxJNpKtius6wY8uttEJYkedhgekmclddI8675wbCplPvp59lPdgthkEzRmh4FCERMqn7Myt6VX1Vx07YQsPbisnshIFVdkIiEmBHmeVblz21E36H/LCjCjSxLVMP5IrwfAVVGd0NU1NtGZYNrb90kB/Yc+eKZl3DshPrL0Mkuq8SwmG3YSor0NZUDb94Ush3FJXhTHRh4INzTk1KlOYBfG1K1n2qRol3f2a97FrM8Td/SF3B/MCsAVXJ5Lp8/MT05L0We1vxwWLpfPAyII4obJ+/v7S/mcoC33JQe3O4ERFHixHia4jsq8ZUlthUBc8YoXRfM1VfY5rgDVnPLyNgwaccbKfWa0GBltlthDAprMZ2dTb7+vXrl9lsRj6/vhnF0kPOzIFFCCt5F0pY8r6y0kT4MrdBR1jtopV1nXAHTJjXoGPUe8j6hhYGWql1NaagEX9kJnSj0VzzcR4uuZdrOh8XszgjevmgYT+XwcQYOM4/FgGXhQmdy35yrDO9VxH+Koppn7dSGoq5WMD6SqXAi04ZFcvBdfP/YWF8peJt8hZfYKW9UvHNlybrQ3mlstjUfgj1pKztvT/ue6eL6LbilShRokSJEiX+K/wLfxvT0jUZkVsAAAAASUVORK5CYII=", + "tools/transform" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAABVSURBVHic7dbLCQAgDAPQbOD+W7pBBMEPFMGDYJTkUnjHEmgB52hI1pnI3EETQ0RRcHURwdAEGI0q2Eo7bGqy8VsUrKLR2FHwlK9w/2O5i4Kri/hICvTnbL6rQpevAAAAAElFTkSuQmCC", + "tools/zoom" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/oNIHAXwxtytrZ5dxAAAA+5JREFUeJztmz1zEzEQhm9sHwylAthOd4kDpMQZCJQmyQToEjIToCN8TegwCcxQms8Wp4C/S2Isne5O0r5a7WRSsO0p7z2rXe1JKyfLXLa5/OfHQffw8/Id5+NIy9d+K2PvBjupenuW3Ezybpre2oGqWXeQIJffq8ud2RHb7fy+S0+pr1xFj96pIk/voU9PqWOO3hO/nlI34vU645BgbxQtuB7SU+pVrF7QYYbTYYcZTgcirC0q0p0JLdiPQXxE6yn1jQ/4YbCVZVtrt9iI1Rn8YirW3ipvFvOx9VfVclUpZz20SLRsvZXqsw1bsQAFh9bfrNQfblgPr2J6HQvCMU3WBHdHkODT8i9eup7fLJ9/hASXiMSwkmoB0bM89uRF6TTk8xUzfNGTFvnUDPkFCJYxLnxDyrwC4pxPKEAbsU/ndhsJYZkIt0nBZ+EQ/7My0N9JQTOFwenBRs1sTIbkzExYepReGxxp3ktNYgv05QHkyKntgwPNi98Qgnq2qUVlFigVFZ2y5LLXJWSRGKdf/JoS3NauhNeKCTK56k0NCYe5hQ2zX11A7+1Telk2gXy5hMakjMqL4Cidr0Cd0wl2DRp1nRbchd6t/XhPC16GZkcLFrRgCxKcxguGl8oYTcMyEcN1bhIvGE5ZvZRHtGBnPrR7voJ6gQJbyVyPPV/Biz+H4mkjntjiS0+8OIiXr+F8lFiBFf8EiH+k9GeU2A+cWq7XQPgzKv6hF9+KGEfCU53BmyX57ZxOBrENp/iW2AwkJnEIvlj+WCF+8AEPXevQqJmJHx7Fj7fiB3DxFoF8E4Nuszw2A7DWknQjKKZVRSfNjMBqph01H9vdSowQb/ehHUS4IYkiVlqmqtoyVTXDEGtNXXNZtrla1wMRHW3nnbzRdo5BhBrjKYghwxCBy4VIxLE0InlBE4tIXSHFI0Y4DSIGnR4wEMMXhUMGYvAqs10pEiBi8LK1ErSFDLtaCV0HVxGVevvzBLlxD1xYO/IK8dx/pe5Y71Bw/Jf+jpKEIGbenyVwEf3mSFQQ0WOO1XnREHNxxOfiiNOLj7gkjbgvjThsCqYhOgTTEJtzmIjoEkxCdAqmIDoFUxDdggmIrignIXoE+Yi7bkE+YssjyEZ01NhERN+Wio3o3UeyEX1HED6i7wjCRtz2CPIRGzu0VETfgYGNWN97/kcUReQK+soiX7AtLehD5At6EPmCbkTgtwNxiFRfPxoxaZfjQiTvPGIRgcu3OMQiSbCJCP76D0dM3L83Eckf7cQiAnfAUYhJae1CTPY4q5XudI+rpTs5xjOzEAsRwXIbIQNYbsZ6EjN4ZvP9Yi/xfzBsxeVP6vBkzvcXqtJVkbl96cQAAAAASUVORK5CYII=", + "tools/corner" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgBAMAAADoA3fSAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/xaV1VS6IRbyAAAA2klEQVR4nO3UwU0DMRRF0cgzLuCXMCIpwBINuIQR6b8WRFaQsGDjt+GcBq709O3LBQAAAAAAAAAAAAAAAAAAAAAAgP+upYNbOnhNB890cIR7rcLBng7u6eCRDo50cIaDvcLBLR080sEzHZzhYKtwcEsH93TwTAdHOPh1M9FgTwf3dPBIB0c6OMPBx80kg1s6eE0Hz3RwhIOPjy0Z7OngHg7eZjTYPqqSwf5e0eDbrGSw3auSwT4qGvw+ZyD4c871wac5lwef51wcfJ1zbfD2OufS4G9zZt4h8Befs4IbC/yY1jcAAAAASUVORK5CYII=", + "tools/slice" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/4Ic5F+tW+as8wAAAuFJREFUeJztmE1u20AMhQ0Z9n7SNGvpBjHgA6Qo0HWNAFnL6P3vUEeypRmJ5JjvcSnu/eEb65Hzs9vhdeiJH0t1fnuPBV7T71Bek1L6Gwk83YBvgbz9rxsw/YsDHr956TXuu1wGYPoZxRtXfKs+CHi881JUGLsHMCiM+zRXSBjPGTAkjNcMGBHGQ86LCOO5AAaE8VoC6TA2Cx4dxtMSSIZxaruoMB7XPC6MFwHIhFFaMRVGacWJCWMnA+Ew7hUeHMazBkTDuGy7rKAwHnQeFkZ9xQkLo7FiKIyrQVOWP4ynYKDcdnO5v7PSdo/yJ/Fi8vzfpLLi3i1or/jFzVMHzVj+zlMHzVDAQDTbDhnZZtsBw8saNNCkMVfcAkBrxcgWZQ4aZFifDB6ynVhtB+3yVtv1AM8aNEAT2yuGtk9jxdipRh802LnLGDTYCURvO/DsqrddiwHVvxA9Z6qNDB//FUX8giIrMvdGUbHHeaIi1MSWIvc6sFYk7slNKyhSX+RFUCTutM3YYaUicwHtxg9aKraU4FqRebnoHpnLFYnINPMSY568urktJkUmMhMkV+x5wUKRaeLsQ8yKTBNnUZkUmcgUYb4rUs9xRbvdFZnILAbCoEi9Ii1G1qDYxglSE0ESZHcRaWPiFIV9iVIUN3dGUdzbCUXlgIQrKucjWFE7wb0GC8Lbp3rERGeXegj+ESyYPoIFwf3JuG1j+4nx5APNf0MQi6EhCMXQeq+AYmg9miExNB9UPoIFkRjaT8tADO1nx+i3byCGtqA/huGP87agP4YVQX8MK4LuGNYE3TGsCXpjWBX0xrAq6IxhVdAbw6qgM4Z1QWcM64K+GD4h6IvhE4KuGD4h+OczVNCHqwo6cTVBN84W9ONMQQRnCEI4XRDEaYIoThHEcaIggZMEKdxakMOtBFncQpDGlYIBuFwwApcJxuAmwSDcQzAMNwrG4QbBSNxNMBS3233F4rbaaquttrrXf2MxALTWF1Y1AAAAAElFTkSuQmCC", + "tools/sselect" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/xyD5GCvZiOPYAAAA7tJREFUeJztmU124jAQhP0gsNeQZE3eywHwDcIsZg2zmDXk/ocYYrD1V9WtlrSklzIuPnWVZCOGob42h4abUX2+7/sKXt3vrnpr59ypp+DHTfC9p+DxJui+++ltf/Tc676b4HkSdG/oWk2eVse7oLuAizV52j70HLq5Jk/jLIhudq/mPK2cr/xm0lqpXgLBPIy3Qasv10AwDyNprVCbUC8PI2mtUJ+RYNax6VtMvlxjwTSMPPKk1ole2rH7oMGXj1Qw6RiPPKljJhiHEX6LUNtcLw7j7H6pL2cgGIWRuU9qBWYch3EZLPMFzTjG8Y3YU5WgRiwYhNGPlfiyInoBTtCIAl9emKDHwY1glS67oGaccEz1ZcPUnA8jbgSpT6b2U9+5oOqLMOMljPGY7Eu20cT1lgsqvuQbjSoo+wKXna8TEpR8IcturocBZBjVWdSbN4hsnPqCN5qlLgMW5L7IM94NTJD6MoqCJy5IfKEbTTIvcBH7wjcaF23Z6Cr0RVx2AYPM70vaaKLHHvwA8EXcaA6aIPBFmnE0I/yRzBdxo0FvDkllvkgbDXq3kWcxiBtN8sq5jF9yI3xJyy65cR6Wfwqeud4u+ShuRFLSRpN2m42XzjhbBGw8qpHq5b9IcWeTGXPAvFOPLxIB+UYDrGRfFBZfdmDR3y/ID3jaQtT56UKapaToQkYc04WLLMgQYaMmS/aKIEbEt+mWUEQ8L90Shkgar1vCEAlGgSUYkS3WEksOAJHe5dwvjW7cAURqpG7J+r7CYkS+H+uWjHfbYkT+pqtasp7vDxGF7VO1ZJwzFyIKbdIsWfspekRpaWmWjH5ZLIgtJ5GLSIh4qdfz0wwQS5aqChgitpw3B1FZEM3HgxhwQWw6G46W2wOx5cg+2RAmxKbz9TEWnBBb/vbINtXW/1DGVLAlgAiwFTEDbESED/cWRADYhEhekOoRIWADInuDk1917YDV/2zRV8zavYsB6q8ZRkD31Rmw8vkk/Nque55wQLfvDFgXQwGwKobSeUVVDAXAqhiKBypfnQFrYigfLVfEUASsiKEMWBFDGdAew6LD+X6A9hgqgPYYKoDmGGqA5hhqgNYYqoDWGKqAxhiqgNYYqoDGGOqAxhjqgLYYFgDaYlgAaIphAeCfv10BbXIqoFFOAzTLyYB2ORGwRk4ArJLjgJVyDLBWjgDWy0HABjkE2CSXA7bJZYCtcglgs1wM2EEuBOwhFwD2kVsAO8nNgN3k7oD95CbAnnI3wK5yw/Cvr9yznvWsZz3rUf8Bse81q69DDhYAAAAASUVORK5CYII=", + "align/h0" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADpJREFUSMft1KERACAUw9Duv3QxCP4hMaWXyDdAZN2BL+gdCIL9GLigr9GjYNQRCILdGLigUcS9y3AByjBczu6rOJ4AAAAASUVORK5CYII=", + "align/h1" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAD9JREFUSMdjgAP+D3DmqCClgv+hYFRwVHBUcPgLDsIiaOgK/kcBg1gQ2dGjgqOCo4LDW3AQFkEoYFCU3sNLEAC7t+0vT092rwAAAABJRU5ErkJggg==", + "align/h2" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADtJREFUSMft1bEJADAMA0Hvv7QCIUUCKW2QzX95A0jxSWAG6gSC4Hw0nKCmqCdjjCsQBGej4QTt+KMqXIMKXM6L8LJqAAAAAElFTkSuQmCC", + "align/hG" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA9SURBVHicY2AAg/8oFMOo4EgRhILBLjgKqAsGYRRjF0ShRgVHBUcFh7XgICyCRusj2oNBGMWj9dGoIAMDADy/vlAXYw0vAAAAAElFTkSuQmCC", + "align/v0" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADVJREFUSMftzqENAEAMw8Dff+kvCCgpKnIlm0Q6lPeHiHinvpzFYu6KoigCMYmiuMCERzNsBQ5SXM5ajT16AAAAAElFTkSuQmCC", + "align/v1" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAD9JREFUSMdjGAUjFfyHgkEvCKFGBaksCAvuUcFRQfIEISSIgQCDUXAQBt2o4DAQHIRF+lAUHIRNDpjgKBjhAABYnu0vd1/ipAAAAABJRU5ErkJggg==", + "align/v2" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADNJREFUSMft07EJAAAIA0H3X1qLWFoKRvhvAtcniLzLzh41IAiuoE4GgiB4jsoef5RDhlhaoVzOaTpIBAAAAABJRU5ErkJggg==", + "align/vG" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA1SURBVHicY2AYBaNgFIwY8B8IICSCNRgFQU4FI1TWqOCo4KjgMBQchEUQrnJpFIyCUTAyAAA8v75QTRCbbQAAAABJRU5ErkJggg==", + "par/center" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADxJREFUSMft1MEJAEAIA8Hrv2mvgPhQIaCw+5x3yLtSJIFzJPdCwTKyTn8hgUXkPu3pQsEGsk6J/9yNN/ro8VrsBbRb2AAAAABJRU5ErkJggg==", + "par/jall" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAC5JREFUSMft0qERAAAIxDD2XxoWQKGeu0RWt77ohXiP+DM54s/kiD+TI/5Mjk8MbhM6G2PsedIAAAAASUVORK5CYII=", + "par/jcenter" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADNJREFUSMdjGCrgPxYwKki+4CgYTZ+DWXAUjKbPwSw4CkbT52AWHAU0TqKjgiQIDtnECQDksdpsFfT2ZwAAAABJRU5ErkJggg==", + "par/jleft" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADNJREFUSMdjGCrgPxYwKki+4CgYTZ+DWXAUjKbPwSw4CkbT52AWHAW0TJ+jgiQIDuWUCQCCPtps+DDFCgAAAABJRU5ErkJggg==", + "par/jright" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADRJREFUSMdjGCrgPxYwKki+4CgYTZ+DWXAUjKbPwSw4CkbT52AWHAVAQONUOipIguDQTJ8ARzPabNnvzlgAAAAASUVORK5CYII=", + "par/left" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADxJREFUSMft1MENAAAEBEH9N00BPJAQkt3nvC8nX9IgsI80u08wjWxzIXWBSeQ9fcP7BAvINoP4z9v4JAPCelrsVzGixgAAAABJRU5ErkJggg==", + "par/right" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA7SURBVHic7dAhDgAwDMPA/v/TnTS4BaUhlXzQ0FVLtED0I/LkZKIdkfQuvpOJdkSenEy0I3L6Q5zEFQ4Pd1rsYDTK0QAAAABJRU5ErkJggg==", + "par/lind" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAMJJREFUeJzt10EKAyEMRmEvqWaRhUfIEeZoOVppO8Isyvg2FUr/t/6EIAGxlLNaC0twCetNgoK7IUpQcBMEayso+FV4XOBtg0KjsFFYDwoHhUZho/AcEsBBoVHYKHwPSeCg0ChsFL6GXD7s9RwSQaOwUfgcksFBoVHYKOwUOoVBYULY6YU7hUFhQtjp4jqFQWFC2AuETmFQmBD2eWAFncKgMCHs88AKOoVBYVI4+5U/l+D/QJSg4CYI1lZQcBtECX7qAUpgeWwtR7NGAAAAAElFTkSuQmCC", + "par/rind" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAMhJREFUeJzt17ENAyEQRFG0RASUsSVQCqVRGv3YZ852dHs/QrI8E63ECxY0CSmF6T0+F/yOVxEU3A/jCAruhVFtBQV3wzgfaBQWCp3CAaHdXeoNC4VO4YDQbh/+BIVCp3BAaB3CQqFTOA54VdxV3he0DmGh0CkcEFqHsFDoFA4KJ4WNwkphpnAtSWCjsFKY1wyKOylsFFYKM4XHkgw2CiuFmcLnkhA2CiuFmcI0KWwUVgrzT/y5BP8HxhEU3Auj2goK7oZxBCF8AJvVRYAg9TkgAAAAAElFTkSuQmCC", + "par/flind" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAL5JREFUeJzt0rENxCAQRFGaZCEgoIQtwaVtaSfbZ0uXwE8OEcxP/ZBW1qQj3eWcxnUKK4VGYT4o7BRWCo3C75EAdgorhUbhfSSBncJKoVF4HXnCPOj62CmsFBqF55EMdgorhUZhobBR6BQGhIX+8EahUxgQFjrcRqFTGBCWBGGj0CkMCMvzYAYbhU5hQFieBzPYKHQKg8LRWK/BCgouhErt1Gy473gFBRdApXYKD1ZQcAFUaqdGw/2Zr6Dg/+EHdgSj7Otco54AAAAASUVORK5CYII=", + "par/bind" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAACVBMVEUAAAAAAAAAAACDY+nAAAAAA3RSTlMA/4CE6rqMAAAAq0lEQVR4nO3SMQ6AIBBEUULnQTySxpKjeAnvKyFkwWZ2YpRQzNS/eNlsCI9dm20PaGsLDxguLUwwjC08YdiQmNghMbFDYmKHdIiG9IiG9IiG9IiGdIkV6RMr0idWZCLCSBILkiEWJEMsyESFkSRmJEfMSI6YkYkM40mG2ott5BTiUPtm9KEVKhwQatpM8x7XnlehwgGhps00+mEVKhwQatpMQ4/7eF+FCv8Pb7YbUtgjTuk8AAAAAElFTkSuQmCC", + "par/aind" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAACVBMVEUAAAAAAAAAAACDY+nAAAAAA3RSTlMA/4CE6rqMAAAArklEQVR4nO3SMQ6AIBBEUUPnQTySxpKjeAnvKyG4YGJ2plBCMVOSX7yQnVaw6Z5ChR1CTRtp6HDteBUq7BBq2kijD1ahwg6hpo0073Af56tQYYdQ+2b4w8u3K3RD7Y+d9Yc3N1xquLvhXMPohqGGB4n0iQ3SJzZIn9ggAdGQiGhIRDQkIhoSEgsSEwsSEwsyEmEgiRnJEDOSIWZkpMJAEhOSIyYkR0zISIbheHm8AHEKUti+lQcfAAAAAElFTkSuQmCC", + "type/bold" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8T1ns2bBtESgAAAkNJREFUeJzt2sFSgzAQBmAG7QMg9Y5o71bwjkLv1rbv/yrWHhz5E/bfuOkUNXvU9JtkE9KwTZalSDGzKORomqYdhk0dDfyCh/e44Mms4oJFUWrIEPDYy9fIYFFuIoNF0ZJhB4NUPEa9Xzsf+/x7Xh+GvnFFCmbZvRc8Rb53yCcO5k4Xv/8TB1B2XHwRwCx7AHFZUXArgo7IB30lg9kOBk27yEBMMu3iNQFxHSzNIHaxs4K4Dm7NIGSZTQsHF9Cgk0Fs7oIZJPHZDEISyTwrQNxA3qwgprmzgthEflgUIC5tOYkKEKe5NIO4Z4qzogG30KSzgnfQ5NEK4p4pTvNPQHHD0YC4ssV1MwtQXIgaENuYwfzXgb42QaBzlowNzj+H8wOxzfyf5eigeT88+45t/k7Bw01nBbexQfyir6zgetzCfhQB0HxYin6cw3UtrhoNiMtQPhIrvi+24wbynGjA9bgBeQvgICZFTqECxDmRU6gAIYXs/ZaCoW/gFIQR0xoBBWFnIK+OHMQOkimh4CIwgwxc9IEZJCCWgWgFQwZXPXp0RqbAvF7tB7fcp6h8ecDp0NTmgkBe1w0DNQkMAZWeGtR6SpBXscPAlj7BAWCp/73CD4Z8OIEJTGACE5jABP4zMKgcmsAEJvAfg9WfB50NNuC17kJgZwSdGuzsQOeuCKmIhoM3RtC5YkSv/JBwrmkpCnBSuBfJjLPiXnWzjdnTQdUNucnYebyi1FXNfP3rfd4x2uFQ11WgNmGNIoEJPDeYIsWF4gNzXiQHsVY9vAAAAABJRU5ErkJggg==", + "type/caps" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP+QI+W4xTrlFwAAAnJJREFUeJzt2s1ymzAQB3CNcR4ADHc7Tu8mcu927dzjJH3/V2mbQR+IXe2ujJtksnsUv/kLCRAfgzFaWlpaWu9VA9Wez7/vt7bIgXCop22By8G6/rUTuzysu53UETBIrqNg3exkjoT1SeZo2K5F7l/ZjW9dV/bvrlt7/xZkI3XGLAJ0TdWPetrIdcZcgLY90DXXmQ0Aq2iAUmd6AEYDXEkdDMP+tDuhM0sQhq5fhQ6B4Rg0QmfuYOgPoBsL12Fwct5xHQbDWFYyh8I+mRyuC/ucQB8wTA7XoTBMTj4wdSisjuMNXIfCcBEcRA6HfrZXIofDO2bgnhvoNzTMjhsisGIGLriB/hromB13VOBm7sB+2NAS7jhyGbhkBl64gQtm4ObDAv1sMwPrTxvYSwOpOexHTgNLAsUnNrE4JIvI/wx0SzGxwPrFgVxg98zAIzfQHT3iJuUvKOom5eeGCFywA91QDszAAxHoh/Kcd8uxY9xv13nXJxtomH/6Cssh8fSV3Jbpp6/B4dC1E6dX+uCAwp+unTgb0mclFPqpIQ5e6jAYHkzzc+1nxjkM+pEQcz1xGLy45pPQIXD6gsR1MAxv1vmRAA6G/pwhRgI4ED56F96ruS6Cw7c7+/jgHdhx3kXTChTUMeHy8FXusrBhdhy7HOxKXAaWORw+lTkMtttCB8H2/DJhbJe5L5c5DdRADdRADdRADdRADdRADfy+gc/zuK8UeJjH3TBwNY+7YWAzj7thYDePi97Upy/nJQ76YHeVi37COc3iwkfZ0Qesche+2OW7ZrtjBNvtlc7a6L+od/lioeFwHfiD2DVOAzWwJFBL6xPUH3MVV6asXlIlAAAAAElFTkSuQmCC", + "type/italic" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP/oTbmFZ57VBwAAAvVJREFUeJztmM1200AMRtM42WNT9kmAPYZ2b6DZkwLv/yoU2lqKmZGu7OHQns63zeSOR5/mR1qtqqqqqqostba6w+Hm+P0D520d4CP3SJlrBrzTe4bsMbDtvhLgZw68+0gAjPAIEXoy6o0H3ASB7VsSxz+SYHaTX5rrH3shfosDE8tq5NfLOPCV/fMuDEz+Q9ybRiQnCVM6Sv34+8CAEvb0FmusGJvjc0s6OTNOtHU/QFJ2R4Ay/HVmROOOONPan3/MA+SzmJjdCjKEBBGEfO3PqQTWE3NlHJzfq+JKcnPmBuctDNm8IbO7qaokAR8AEBxhKCUiQDm8jEHjgQQye08mbzmQGTgOspZxL2RyBIhM9o9MkZhsbNMIEJksZ7CfNsjkDQeyC+gCjZrMbZksgXYPB3D+r9y3RXpu6yyWp8DgAZHJEmj/CkC7XgLtpiEzWeLiZo1/yf9WwBNJsF1+kArh4AGRyYEQqsUY5/8JBfpeaO5AFiKTIytGJp/IoAcRkyPbBD3HZUzoTs6a3IglOx8oqwEfCO54CU92NapmBR8ITM4XlimJyblN/zH0gSrDhvQAtWD0/vdM3qpiOTPluRyTNQ9Vec57QPM6VORtzPmvWqWB8EyTmy+aB/sXhslXe81jZbI2eXKMbM8+jzcv0iY3P89x7SXtzsHWEubB1hLpoj3owqeFeMrkrFjf8FF+//BdoAG78vuHsc9zTY7izJ7u4QZ3hpXQwyui0wjEjUZbsv3L8CIlMJLfQgtKTAatGKKXZ3KkRkd6+ib31eSl+ocmo1a3r+dk8ozbKKFq8nK9PJPtimeGnr7J2Ypnrp6RybiKsyXvpEImy8YrdMkH+oFIoXYbkapCi/CUJ4WyRjwplDXiSZmzRhWNZdJQFY1l0lBCWOjwagsDN6WBasVFTFH7rkwe9hpYYC9POhfLM3vaqxkW8m4nvLZbtui/eIuIzXW6N3X8NA+XhC3IHqtZOCu/ewM4zAFavb0575EawsUhrKr6//oF/0vTiqBv60oAAAAASUVORK5CYII=", + "type/scaps" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8f3qFs2Lc/NQAAAvNJREFUeJzt2s1y2jAQAGCNGh7AMbm7ItyLDXeaNvdAkvd/lbhEVrWWdrWythOYam+A/Vl/tuQVStWoUaNGjUs0eAxj/H4/GzHQwc85JgNsmvbAJ1ngSJ6FwaY5dMIgV+SDTS8NNk+8SitltjtwotJmrJ4x5m0A37cvXFE9QtCFhpdad2zxZxwcSfALrxn/xHcMVNovY8su4jcUVKDW7CLe4aDaLCniigBBM3KLSIGLiqgpEPQLs4gkCIq4lgBBg3QC4II60yAY9w8sUNGgP+5bCXBBI9IgaETeQ4wGwdPohwR4yu7mBOh3870E6Hczb9wkQP/xxrv5EuDqX4K8kZ0AdQVFwdjvXw/6v4tUWRy8rV4WB6//aSP+gBWfAkQmKX/9JT6NHiVAf6LvBEB/KcJcFNNg/jBMgH6f8EZNAszvExoEq7lOAFzwFkCD4I0UxDAM+2cTKzQFrjDOsZGcCQFqvIAuwgwHAT5iCiniIHwDx0UuOMsR4GV84oFb4K07HJzd4wA0l9yZNmb7awfOeZnneVovEdOjIBr95TKvoCZ/P8IicrypJ6dWsKe6+6jPBPdTCWagnsq4zgOdNwfdwAJ1Ztc3ArpKH/kguFsDcFqo9FxwfwYdGIDK1vkeB+3wai+Z53lGNwRPn188IKBKRAjaRvS7uQy0Sx9/5VgGrqRBfSugf+Z1lvB/Au04XHqn7ILj7J2y9F4OQfuSgD1t8kGbyfLfD8pA26p+IrAItJMKOqdkg5uwT4rAafmDzsu5oF3v4SuHTHCalvG1TQ6o3YYWtfpigjBmb73F4HwDrBQMtugKwTbYRCwDI5u7ReA+78WHBtthtpQqAMmDKljBawO7mwdZTXNbYGqv8uvBozSYSgNng6kcZjaYys1ng6n9jWwwNRA5INgVS2X7OdeFSUw6z6oZoD4BkP67EwfcQI/+I5rbWzmil3xt5kGJrjbR/0QZs33bBd4Y+/doNllpLyV7iBwSs6aIecljKljBBWCNGlcQH/LbN8WtNzjmAAAAAElFTkSuQmCC", + "type/strike" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8e3WOWxulIxwAAAkBJREFUeJzt2s9SwjAQBvBMgQeIlTtUvKul94p4V5D3fxXbcXDydSD7rV3Hzrh71PZH/jVNtgnBw2NiEXNRd9Gc9ruVFXiOsvmgTQrszW1lC3YkV0oejLFhRA0Yl4SoAmMpizqQq3WoNo9wV/eXqr+xqjavR/xX3DJgCPcDMP21I4pPnPh+Fex+DQpJNGMf6ww4KD9X6VkODHcgvjHgIgsW0CLMaAzzLBjm0IyH8SBWekmAhQAWUMR2PBie0wtuDUBoE2IsimCAOssjRwahW25EMIgg1JnoZxGEflbOi5evgH5uDUBoxAcDEB53eVaUQRgIcjfLIIxE+VkhwLRX5HFDgGtrMO3m0gKcWYMLa3A+eVCe4qYEmlf5n4DmwyZ9UkwmB3MwnRxMJth0PjR5BaQztsVLCt4pFq9RWDq0BiAsblYGoO6VolzbEEtYEYQmJPZnIghLm9YATGvM7PckEGpMNKEIwuqQ2e0JoHZBLIJQQGoPngdh88htwbMg7vS4JEEOLCDtQOYIMuAgZ0JmMQAszoUo+kQLcNx+fgDmgqwwDZY70iPBkkk3KEC+fBzIZdJosD5oPAksa1WqOAvWdX3akxndK6D6ZgcdHAleH9D5cNBBS/ASLF7MhIMOOuiggw7+BrhycHpgaw1S5w7+FJRTwEqQ+L6tA5n0oAokcsA60GIgwhcxi16BHDB1GEQI+KLPnVfJBp7Q6bqlHcUVL3EYmqQURlXthyexvqLRnRL8jkvWOX5UQgcd9PDw8PDQxCdxNPc8B0YSMQAAAABJRU5ErkJggg==", + "type/sub" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8c3ZRhFMSQiQAAAxZJREFUeJzt2k1T2zAQBmCN4tzrmt790dxLbe4OgXsNzf//K42cGrRu0Ptus8wwg3SN8kQrKfpY27lccskll1xEKVOlP5Xh4fhUW4FLqYbH1hQM5h1JsuCJfKQi58GyHBhRA5Y3hKgCywqLOpBqo3Pt7lZ8y/m2DV9s293vg/yovGNA575LUPzaQYo/OXH/Jnj6NdFIohtDaRLgqv1c0JsU6Doh3jNgkQS96BFqpLdJ0G1FNzJNBKAMmmmiB6AXTRyvB90UV/hmAIpRI+YiBLUxQ1AOy1cIOgiKeXBjAIqYlevi5RpinH8ZgKITfxiAYuLgVRGDYiLgYcagi0cF/1cIMB4VPG8IsLEG42GuLMCNNVhYg9sPD+Il7iOB5iF/EtB82sT/FJPFwRyMFweTBTZeD022gCmqYrFJiT3FYhsVRweLjV4cbmoDULelKM82xBEWgqILifsZBMXRBo8JBuOImfseAkXERBdCUJwOx+tB7YEYgqKB1B08DYrLI3cFT4Ly1sMlCVKgF2kHMkeQAFc5EzKLIUC/NMKHRIvgyMyNIktHeixYPZEeCVZURoQH+fZx4EDnTSmwv68VHgIrJZcC+75/OGqC/RdUfzmDGcxgBj8h2B76nnraRYLnYwnztIsDl2OYSQ42lOelCj7hUGB0tYBnMAqcXuvAoBlQdR9lQHEfRTEzYEg6DK3fzUdQdCFlwOZv151Dr68HpyXQ+bnceD24fxmK8BQNpB04cOm4xga8fbmGhuH5YgEu+R9zsLABX8u7gAaD8o7gxmZiSxAsNzFYQ7DBC6IO3OOkqQoMyw3KcarAAo+JDuyISjGItosQMcw7x+AI6oa9RbWNIrAjohAg+FOFiPFZJAbBjCiYiAUI0oNUxAIEWy4zxqsbfZ2qSY2xfCKWrt9Rx0ORA05GFMYY52D9JMDU+yodMVHXb+ikUkjUJPTP5bq8KXaoi9v2uH4T61yGi28J4gZespbyPw1UgnMD0/8SHRgaCOaMCpyPrortE4JEA1Xg3MDREAwNVO0lCNzHDfRIJor8OXA+zGAGMfgHF14H/+Dc7McAAAAASUVORK5CYII=", + "type/sup" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8c3pRhFoIu0AAAAxVJREFUeJzt2k1TszAQAGCGwt30406jvVvBO7V6t2r//1+RtAV287mBnfetM9mTQ/FxN0nTdCXLGEIe6/qj4pCusduLLho2Mb94Qqy4xG9xizWPWIghXljA0wiyFN2P4CU+GcASeCw1L9SKkfnueKmZAdzehu5aejUfPPWFPimwnQ8ehqnofhLPHGA/cFsecC82t58WXOASgA+cYDGCwhd1F837+asK0cVYshcc3qjNh2QFlfnqIyeAHenZ6dWktLGgb6dX4Gc86Ba344YYBTq30e6tt86mgI4c1XYD90N5/TAcIsulVL8o5e7niF8SrzZQTXKLrjxhEIY8YtG2Mz+ag3Fwgt1fQ0lahlFVvNaubT2glr9ZdGlJfOEDVUkg3mwv6x96hRfM0YjopwRVsTEQpRfMSjSMWoqFbaoCIC5aS9FWcZYHQHRI0Nbc3pzjMDies1Rs4Cu2OSaAaNbQFFhWNQV01qxe2FjuD4F4Wpb4emu5PwiidTBOgnURkkBU80g8WqeEAsLj6rjunAkSQDSIz+Ci/agZBtHCeQEJ2g/DYRAthOWYoHUPp4AZnJXNkKDrtE4A4ayshwQti5oKbnXwkmA7HYTTvOovmPsMHVzo4AEmmMeDhQ4KFNoJlgCWdw8aW9xdg+wl/xHQGwTQWDZzQfhOcb6F/ysINwfXLhgFwv1w6bgnCjyBW8JNFQK4B7eEv76Hwcg+UhhEh5uKATQ+UuaCcE7Cqyby9EXonAVBdLQh9PaCIKyY0n0MgahiwhAGQXQ6bOeDjgPxdBAlSOqO+kH05ZHWEPaC+FsPrX3rA3PUdiB2rD2g1jMh9pcRmPdJ5KrRgjhy118Qg9yip3pfRI8IroyOyDyQnh8NbPx901iwfqsivBC4iuR8YF3X7+eYYk0w+pcTmMAEJjCBCUxgAhOYwAT+W7BK4P2BHI/BIbC9e5DhCS4MhrvekSClPRgFcjxKiL/RV/M99B8xjscnUQ+Y8N+SYIInBJqP1MQGfkInroVky+9b6DFdlPKsP4l1jYbwlKAtbFYfkzJMYAJTpPh78QvJUwjDMnHmuQAAAABJRU5ErkJggg==", + "type/under" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8f3WWWKA+IJAAAAj5JREFUeJzt2s9SwjAQBvBMhQeolTtEvKul94rlriDv/yoWHWbydSD7LexoHXePQH/kX9NkmxA8PEYWZS7qPpp9t55bgceomg/apMCDuYq2YE9uqVLyYFk2jKgByxkhqsCykkUdyNU6xOUTXNV/Eg8Xxrjc7PCrcsWAITwMwPTfdig+c+L7WbD/Nygk0YyHWGTAQfm5St/kwHAP4hsDTrNgAS3CjMYwyYJhAs24vR7ESs8IsBDAAorYXg+Gl/QHdwYgtAkxFkUwQJ3lkSOD0C23IhhEEOpM9LMIQj8r58XTv4B+bg1AaMRHAxBud3lWlEEYCHI3yyCMRPleIcC0V+RxQ4ALazDt5soCvLEGp9bgZPSgPMWNCTSv8j8BzYdNeqeYTA7mYDo5mEyw6Xxo8ghIZ2yLhxQ8Uyweo7B0aA1AWNzMDUDdI0W5tiGWsCIITUjsz0QQljatAZjWmNnvSSDUmGhCEYTVIbPbE0DtglgEoYDUHjwPwuaR24JnQdzpcUmCHFhA2oHMEWTAQc6EzGIAWBwLUcS4GWRFqP38AMwFWWEarNakR4IVk25QgHz5OJDLpNFgzWU4SbCqVaniLFjX9b4jM7pnQPXFDjrooIMOOuiggw466ODPgnMHxwe21iB17uBXQTkFrASJ99s6kEkPqkAiB6wDLQYivBGz6BXIAVOHQYSAN/rceZVs4Amdvlvaq7jitRyGJimFEWM3PIn1HU33dVRLHaesY1xUQgcd9PD4o5Eb2BcNegcd5MBP2qX9eK19CMoAAAAASUVORK5CYII=", + "lrs/bin" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/gB8KGMVmQ4AAAJFSURBVHicpdexTuNAEAbgyVopHOQyj+DmELrKvR+BgiUUEfgRKNEVwS+RPiUCIaqUSHkJ95SIHgldcbnd2fHasXc8wUyXfMnu2P5t74L2dfOxAVOzp8/mO/D4AL5Oqy7/gXap10N+h049t7mntSPf9RVgW/N1SEFVxCV9ftzv9f3eHZ6pxLEbelY3q/Vq44cHvcA/v+h2/UWOLV/Zcbf6sFboa8M7o5+6W9dudljUx9Ap21GkYela7NebHR1uAaog25ZTyG2DwTLDJ1BCxrDpKsL2mSpAATe1qSUePMuXdG74yU1xrSGXzFnBwZVhxbemwFyRlOHCHHdOsQlOPbEMJ0F+s1zY5s8Caq9o7Bh+9xRvm9heUFvNbeXmdTdGUjOol+YHNx91luG8Cf6vp72pf48b/80UroK3yHGcwvIHnMHFEM8lvhzitcSLIa5A/4DN/V2OZuWeDlxFMuc8T2QueI5lvuXZPNf0+Wie0jOVqVTmgSxmMg9kcW54IGwC27fBQBYFruyLimd9BJecqmN4x3GEnI/kCXIxkvENzGdR4ASZzeIUmQ2bwCkyGzaBM2Q2iwLPkdksCrxGZrPomA1bNcz6YEH2TVbEu1EcEeejeEJchDk+jpks0kKUy6LAU2ImiwKnxEwWBc6ImSzOiZmwCbwmZrIocEXMZFFgXXMZUuV5F+LIc/CCJ56DZzXzHJrcLW7Bryo7ddbiRe/vtLSl/Vhv17TVbe4OX69r/V7wq61+VetZr/z8qtlcNWz2URuLs/bm6j+BMbUibx6xWgAAAABJRU5ErkJggg==", + "lrs/newlayer" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAAA3RSTlMAgH8BTzA4AAAApUlEQVRIx+3UoRHDMBAFUQupDJWalJoygnJBmQ1Yfeyx77ObB5bdUXFX5mO75ubm5ubm8/P/7sOPqtfvFF5V78Cz6hN4VNVzz8SViSsTVyauTFyZuDJxZeLKxJWJKxNXJq5MXJm4MnFl4srElYkrE1cmrkxcmbgycWfiysSViSsTdyauTFyZuDJxZeLCxDOvzDPz2DBxJm9wZZ6ZhzPxzCvzFM7xL3aB/p8IYvJLAAAAAElFTkSuQmCC", + "lrs/folder" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wAZezFBYccAAACiSURBVHic7dahEcJAFIThnbuJOJEyUkIEjiZuECDwCCghTaSfa4ISTkAHOHDc20xWIZjM++1nVi6yDM5b4wu+PZY8NRxn5gPaBuaT4cR8NhyY94Yj82QYtA3F8p2YGjR3mpPmoJmmL7hqTprx1Nz00hw1o2oeNfeag+ao2fM8z/M2XVEY+TPZAm6Ke7pz1Iij4opc1vVzLfJ1nXf/faGdf85vsX+c5iQpMJEAAAAASUVORK5CYII=", + "lrs/mask" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wAYaKzkEVgAAADzSURBVHic7ZWxDQIxDEUjThQUcFVGuBFuDwpyIEFBT8MILJEh6BjhlmAECjpGQOgUxSi2fxGqkN8+KbaT7x/jVJmKC8NVf6z2enrJtPHODaOIHx//7CW6mvx1E3A34Z1QOdiTr74I+KidLZ3uAx44Oou7cdFK88X7iA8MthFvtM7Y3hpHNGqNc60vKT5rc3GTzSlea2Nzg3cUp49iKU7v5U7xNgunt+qzsPvSjw8HGAyWd2uW4vRJwIP2FKd2AGYCVgRGBmsAlgisIFpgMji3/iA8QPSA4EKxB0ITRC4IbBT34LNAX41pn9pHVVW+nKqKC8NvfTocjLPIGhQAAAAASUVORK5CYII=", + "lrs/adj" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wDKNQowm4wAAAKvSURBVHicxZc7buMwEIZ/OJVt+BhpArjMUWSpEGQfwaWwxcKXSJ8yMLDYSuVifQn1Khd7giDAPmYoPoZjki4W2bCwE32eGQ4pzvxEJcb+5/nh/Es+gfj78zNorL6l8d5QYDGkcG0psB4T+BV+bK/x/hTwYrzCP4CEORLGwtzh3pHfz9Lc4tobz/mtY9x5v7Q6/NMhwpPA1afgHco37AKtJW4gsTEfBJ5izM62AQvfcGmuAw7ztrg72ZVBtCYOc7TB4+kK9zY4VGi3ijY4VGi3B9McHCq02KLB4kMCk8d7iy8JTPPZzLhGAlPw9Yy7JO7N3BDth8At8GTwMYkp5KPBUxJXJ1438HcST1gyjicecI87xl0Gt1gwbjOYzEbCfQbXvOpQeYnzfqLMoPISeKLMEG+IxEfaFKi0Be4pcai0BW4pceyyuKPE0WXxjrYUbRbTCzOiyWKa9FMJX/CIYx5PZXzAPQ55fMS2hHtscMnjpoxbLG/hUx53uCvh3T/hGov3xXr8r9gV/fuReV/eC9MhK72pvN83cOGUtLfwsnRCm1t4U6gOXLkKtcWc0HxlMuc7X9dM8chXRcJDoaaaypSvyBR2RNxBr6pithuYZgLVBAVuuCJnOxGtCtXzapfDk+kGkXKQ+EINHqq7i0Y1dyKVmccdd2goZRFww/0dleqSHtsWmxEHs3iAEj2h+7v2nhQmVrjkZI2VPTlRRDZWmCQlFb0LVtakBBmbWFGUknMc0EmqhBh0ajAtJTmel3PXQtQr0aSMNQ+2AfcKc7Qh4E7hV0gZqxS2uQkIjSy9W+NIYUfqnhWyuzyEPD2uOY9I3QvvVW1uKEOMO2f+54U/1c1CK8YvGkebvho1jsydscA+uryQiSPnL2TiOidribtzfa1SuNq/aBrhqn47r87f5ZO/9y6wAK4j/7gAAAAASUVORK5CYII=", + "lrs/makesel" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AQMAAAADqqSRAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAAuSURBVHicY2Bg+A8CEIoBBOjNH1jwH403yh/l05M/0sFAh/8of2D5Aw8GtP4DABb0HvAz8w7wAAAAAElFTkSuQmCC", + "lrs/makepath" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/xbkglG1/QcRIQAAA1dJREFUeJztmD1z2zAMhnm05LmsWs/S+WMu+5E5auPMlmNnrhqn//8nlLRkmSQAEvT1LkuwJCfyIYCXMCVCiBtMjXYL+w5n2fpR3wg7ZAxGJvhkDjyR1emYB1993m1rhmDXCQGJp4TDE7l42Ef0wOFLontkjAMbiWpaD2Dy+Oiwr3UwPMFwFUNq5Vl1CnE8BEgO+DYJE+TZvu9iMEGuDy+j85807JB3LmwDetYEHXoyVfRk/iw8LeQgPqB9XWwtFJbdebCp0d4O35PwWEWytyzYQtnaKTscfhiLXjzBOQP9y8z6RKg9Wmn+/4Owo29/KIRbsPyV7sOgAtioVdUELEodrBzALRX0ZWl1T8JmdEGzQnS+ax/u/JWBSe1N8OCSVmu0pVKfiaEm4fjsmhDUjCQcn11/QQfmSv1OwZLKrI1LPZjRtMYX/ZqGifBmSmG/iNCFVh+Rx21armEakpxkyGVthiU9x5UAVmLF0PGiFkIjEWpi94G1ULGCpbW1Dpb3jFMh40yQHxIMYXPoBpMBt0JVwZOSuVHD1HQslEkAN+QJgcG1/6Tl7jIG96kDyLEQluwSQeASyE8bEKzgi23gwNGMLzaMsmEXp4WDKDv1gQ0X4Q+jZVe2LcYgxT4DBvrk1EgTpqgzYJCizigwEGUGDCs5o7RhJWfAc3D+ZYQNj40MteGxwd9nCf3wK6yAxyz/CFvCX37H/kkib5aG+36VyJuF/ZpDUmZ/FpgQoRf0WwGzHhFHMr8LcCct7/hcoud7wzv1e9THnJV0gc8yyTDKpCG+tnvGThtZcWXSX/mR3Ar69jAZ/UHeR65jg5XUFeF8e0h8q3f08mXsJjhOoBNrE6672BEbvYS6jr+NFrr+wXEcXpsvrum9djJGYet6QQXeXjPGYXvnJwLfOFLjsN1r/PLtXUAJ2LYFYC9FBDd6Aj63BZA+zsa5fh7p7uNKXelpP1dTm8LrfcIAN/bxqxeeDccGvX54Ua4h6T3b5+f212WStnsgDz6JwwNdbWunb7RwyOoUg8VK+5Mcq07Ooigsyh7hRlKkWpcmQU2RaVgE+vh90wmmVnHhsOMKV/HsTTroU7iJ/QSwdMhjaj89WB7+TuQ+ogcCOw3/t+ig78lpcTif5IT2Dv8/+B+je7XqrhYPOQAAAABJRU5ErkJggg==", + "lrs/arrow_down" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAACVBMVEUAAAAAAAAAAACDY+nAAAAAAnRSTlMAgJsrThgAAADCSURBVEjH7dChDQMxEAXRDXERqcb1pJoUYZJUeZbJgJE+PHDaoR887VbXdc/t8w/96p3mVSPN33qleW480ZXwteeR6Er4PJcHOuHrzCPQCZ96u2lw08JFg5sWLhpctHHT4KbBTYMnGtw0uGnwQIObBjcNHmlw6IRDg5sGTzQ4tHHT4IkGhzYOnXBo49DGoY0nGhzaOLRx6IBDG4c2Lto4tHHRwqGNizYObfzQCYd249AJhybwTSd8xXlsOuGzuq67sQv6llXHqTZ3eAAAAABJRU5ErkJggg==", + "lrs/arrow_right" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAAA3RSTlMAgH8BTzA4AAAA40lEQVRIx33NoZEDMAwAQZXm0lKiS1ARAiLSv0lYZo8uuPj2CZbmNq/572NOc5vX/ObkNLd5yW9uTnObl/zm5jS3eclvbk5zm5f85uY0t3nJb25Oc5uX/ObmNLd5yW9uTnObl/zm5jS3eclvbk5zm5f85uY0t3nJb25Oc5uX/ObmNLd5zWMu8zUf8gS5zNd8yBPkMl/zIU+Qy3zNhzxBLvM1H/IEuczXfMgT5DJf8yFPkMt8zYc8QS7zNR/yBLnM13zIE+QyX/MhT5DLfM2HPEEu8zUf8gS5zNd8yBOszNf8e/0Piwmj/7MOhPAAAAAASUVORK5CYII=", + "lrs/clipping" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/ce+dRcNAAAAI7SURBVHic7di9TQMxGMZxi1QpwhaMkAKJIWgSkKBwjSgY4ZZgiVSMcEtETEBDxQYhyinkcn6/HpsKnrdN/Bf8IDnbKXH+8sxW7twywAADDDDAAAO/EHja7Gd3mK9QYH18+643368HsGUMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwzAgc9NOceA8NKmnwaWK2juip9ggQUe1V84OC8lwhYKdGVgiayX/jAQwr0QgBCyEIAQBAIIQf7fBBAkAghBJEAQRAIAQft4hhFkAgBBIYgjKARhBP0bKoigEYQRVIIogkoQRLC+pEMIOkEQwSBI6SMQMAhSuvbX28+pSz9gEewRXt2ASRBBMAkCCN6j2kWwCQIIz07ARXjzAg7CuvcCDsKDt95DcAk8BJcgpXkbQUoXVqDcWwljIZR7K2GujICwtyrHQugjAQMhRGAhhAgshBCBhdDHAipCkEBHCBLoCEECHaGPBhSEMIGGECbQEMIEGkIfD4gIAIGMABDICBkJSAgdEhAQwBN0ieA9VSdTImQsUCJ0WKBAgC8RpgggQYmQ0cAUoUMDE4SKe5RzBJhgipDxwDlChwfOEKquksYIFQTnCLkmMEboagIjhMrbtBNCFcEYIdcF5m0EI4TqC8VtG8HpJJxrA4s2gp+TcDXBEcE/ZKgzIAQOGdoMCIFDhjYHhMghQ51tG8GA0EAwIDQQDAh9S2CPAO2tyllie6tyFsj2UppZI0FK743r001r4H/MN7je3XGolvHtAAAAAElFTkSuQmCC", + "lrs/eye" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+SYFU6oDnW5AAADSElEQVR4nO1YS5biMAzM6wkHyIc9JMw+aWCfHpo9DHD/q0w+2CrJsmOYVb8XrcBxSSXJsi0nySKLLPITJP1+PO7dO8jzvspGyevj/TWbt22GUh/jCZw4dLQfCU//OtARHkN+1arYXn7PGl+5lK0Ul/exPfUgOvVyfqIPAfAMNojW4xzH/Nc81otOg8GyUnQa+BqFzbL1u6RHUYLWRoNdt/9EY3u334uWTvwVwz1xHvGXDPcVFhHqqvIpxZi1CrX9vd+PPj1gSPbK/TrsO/6NAU1fHbPDphMsbjItZ417BituR48NuAzXtPaHAq0NqHY82Omsp+U3aDyQ+YNE5zrri0nAGlgVzhbVaKwPdvCCWWxk/KaQfSljgyvT+v+w48LIFDLG51lvaf+z5GugkwWwec6TpEcrG6vG+MjdxpCMYkr16oLXzrLphMsNJEDQHnLDiQsuZtGt6A8Ru8gjpeRZNst9REzhvDJW0kfF8NOVYQXC/lQ6qekQbOtsMjeYJsOTala9DYBpV3zqLx54fBVOIZQAbiSYS5FI0+tEfNRKZZLcUZwTeBcHxoATuCOwhu2nOqbtRDz9guAPGDE/GgCHaGPqDZgdIUEwZMuA2ZndamCbjdX/gOmz+cVoXzUwqbeVaSdiwL40cGk/W952IvJWT81GAZuJyFs5+fBsI9p2k9qEc5XT15aGzE+8p1xdMLlleRUwEY57xWly2YazhIkQstQF25DQ8mxgIobM4U2aiVUH/mNFO7yVbaZgkUfTLccWitodz6rfNBkmhy7citdrJU+GDB1BYBqPFrihk85SamNr1KYELsmwcM0gGQHT9hKH3RgZtiGk6LCbeH993Oash4UwbuwgFYLWQpAQRXAQTu3GD8VpuJa3mkopeK1A90CnbCE00tw7bDJ2Hiyet7zDwbuK3m6eYIYIK5pWG0Z2j5ITULGCZlg3ny2iJXP2hKEkhO+3/HHjxr5pEeX3u4IeN868yVFzKe/j9fH+nXyfZX/k6b/DjxVGfO8Gp3kobwWZzL856G1/HDqETVJf9zhJ+JEmjJ7BBpnPPS0NcvNg65C/Vs6tRvkYA03cV8BMrvVX4PkxwltOfv9ZbbOqqvevPV4ussgiP1L+AQ8hBe9YslSuAAAAAElFTkSuQmCC", + "lrs/fx" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/UazI/6rwAAAGHSURBVHic7dUxVoNAEAbgNTyLFNDlCBwhrc9DOJBHUqROE47AJTiChZU5gMVegiNQ2HkEd2fYEMM/RF/0+Z4yBcnyATvA7GDMFFP8z0hq8lsizC1Dq3BEHmQLImaINb5lWGqcMqQaLxgajR3sjKmJCsg1lW5LtILq2DKXmGVOomqcsf4C3z3tXmR3H726l0/ZQeXWD9caJzKuFE5lvMEc1TLOMSdhRwV5HnZsIbup9zZ65cnBY2kot5xBDrl2V+U5MsSu5G3/O+AbvihPcg84DmWX+gIb8JwzNn5pbAEvJbPuOMDlySwDTn1GkuMD4EWo6Zm8lDNu5Lb9jV/g7OtcH/9eYoJ8WgLfzHQV/2hq/WPp4fPcXGJ7BS8+NEhQiuUYH+tc480Yz8MSTN4Qx7yu/XGFhQu4Sz2Fa2wWvgwNXKFGeo7vDmh9u7MyyzlI2zxnblzcd1Fq0vayR1Ia1yzUygrysZy2mLuG3X3/Bty15LXBLB8LOmjMp++Nxu5DVTwbnaeY4g/HO3uMDTTW9IgYAAAAAElFTkSuQmCC", + "lrs/chain" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQAgMAAACaKAorAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/ec9u8mmAAAAHSSURBVHic7di7ccJAEABQgSIFOFMJKoHAGUX4sGdwcAU4oAQ1cVUQ2CWoCZVAQgmOPNoVOu14fx5DYmujneENnOB2b7mimEV5CWOcukKKxzDFm2TKlNFeeqsqzCIKqJmjFwGlOdoLSwok+EWtKNrZ65ZWvqXo1X446fFqip5Y1FP0zKJEEf9F3Q7BSx9D9gCpiA6YnlUUMa1UdMR0o6IW07WKOkxLFXH5gv4h+ny30Rp2noEq2OgGaqBVGKiHLmCgBLVrFAIgvRBaRHpJHfGD9OKMiPQyPyBqVBQQ9SJKFCmd7iaop4hv0TVFfLNvKOKPjS1F/AFUURRZtKJox6KSoo5F8EVNSDio4fEmJB351Rzx68Yx5IrEMWQYaK5IHGiG0WhEymg0hLjdFrSgHyLXpvNsX1chuErKVZyeMnc1DFfrcTUxVzt0NdaaImUet5p9oujeB1Cg6JfHq+ugdh35LSJrHk/2GOIaaJyjUQ0/rYG2sJMMtIH/JQYqLqfCRt/yBf09pO/xDlO9WlpM9eKMmOplPvbApCLsN8a/fDydzjKCz8hx7+uJniJlHs+hzOM5lHk8hzKP54gscl1Sua67XBdnvis412We61rQdcEoXlV+AZ82MdaHEc2lAAAAAElFTkSuQmCC", + "lrs/link" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQAgMAAACaKAorAAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAMUExURQAAAAAAAAAAAAAAADXpN5YAAAAEdFJOUwD/3nPbvJpgAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABS0lEQVRYw+2Wy23CQBCGV3Di4NxSAiVw4EYTfkjh4AI4uAQ34Sq4UEKaoIQckiaSjL1ez+x4zS+EoiDNf8Crj89i2dess1gsFsvT5yv3OafZPg85jY5i3QSKUYpZlrM0g6PYloNqkBTrOCjUr/VslYu05CiWSdCoLhHbSFCTpNhOgiNJim0lqNSfI3aVoCRJMUjqJCjUMBF7nNQ/LvTVS9+klmLhdec+uPTGGX34ud9wqeaMgYxLfGX14OCSWQWpTUvrIL2nJRckh0ufcgjPc1K0HMeeSmkXS/WM9BpL1Yx0jaVyRurukop/KJX3DgE0mNC0QBN8a6lAK7NFpCbtTBuhTkvTlvI7eP39G2rQ0/dz2pz+LFje5r7nywfGUIkWjp4/Pg4fd45DZQMqQFApg4oiVF6hQo2VfOjyAF1DsAsNdDWyWCwWy9PGuR/zmiTgwYiKmwAAAABJRU5ErkJggg==", + "lrs/lock" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wDMOCLbQLcAAANmSURBVHic7duxbhpBEAbgjV0BovQjuHFkpaK0lJcguECGR0hJEQVegp4yIopSXRmJl7ieMi+A5CYhgvh2Z2b/3b1l45goM5057+ed2dkDe89mGIvJz/Vq/Xkf+xYTuzhfmWN8rU8DPi7MU7wOCxFgYsfHhDAw2hoSX/KBRzreXOxygYcFA0wvF9gaEd/ygAc53vTqLMCbgDFVDuBPIFSFAPAIADwFDIwWCLhtD8zQeHNRtwZACUM5QGCCx8MyQgBngHOAQCADmAMC8Bocot8OGIfGoxwQEMwA5QCAcAaolwCA9kET/kICILSIuAgAiJQAFAEAkRKAIvjAu9h4vwg+EO6CYxHSwPsoYOoksI0DgxQQa6NDyCp6gKzhzZp/LavoAbyG3X093H+nr8gqegDrw+7umBUT6gQwpT9t91SXLXmxSgAbVDC6v67jAF2ErpstSULclSRAF4GsGJmCWAYJkEVgW9dV4TIO3MMJ0CmIW4IEyE6o6OukNnHATVXkOsOwB7hVFE3vcuDrKIFF4AeRHLgsgFGoViQ53ggCcG3g3btm+IoAXBt4d09bBN4IAnBtUEnAFoFvaAHYeYK3UVsEdkkAto/AhxGLLyPAFJf6GLY+VQSwfSR2/SHsCg3aANXQC1tFhgvAtlvtA1ZnK8wB24jeO9ghmgKx+gQA+MF6lgZsnToIGKOLAQB+rm6amfUyB+xSg1V0CbYBBqXAEgHNIrMl4oDdjDUENq0B+KuF24/0KgeazQj7yHVSGhDvPvLyycCsNQAb0ZVoeSowTgJNlcD96F8D4F5ym7UYuCoFBi8OFKdQDCyfD9iCKmUBiz8FXMUB6iuggAIKKKCAAs8IzD+ZdnHzAwL0cC4R5OCMAPBkJxBvAJD6YyqfQu0DsT+p+3HrA9ssoOcBWRmQHCwQO1VAUUkgrwSuCBaYZgIdCWwygUsBZNbQVdECmePtr68NkLsIdhkaIH6ugWLAgfv0CBHXHEgcjIDonxswzQY65wa8/fvAKwUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAgf8POLtjomLg5Q/rioHiE8/iM9fiU9/ic+fik+/is/fsdexLoPj5g+InIIqfwSh+CmT4IQu484HiJ2GKn8UZTlatx//+p0EJDOfr9NBjrMnzSL8AZdCrydT7HRoAAAAASUVORK5CYII=", + "set/front" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wDROaqwHD0AAAOiSURBVHic3dixbtswEABQQp4cI5+RJYHRyZ9iy4Oh6BM8Gh1S/YT3jEGKIpPHovoJ7RqD7gaKAGkrkkeK5N3xBKNZyikRnsTjSSaPVGuu3f98uv169v8q1j2qoV2dJVi+KtPuOgF+VtC+5eF942BxzsJfyrdPOVg2Iyy6DDyooC0zsNdPenn/86afvOBhpd13/deDlicW6p5f7J9vrm8SDj1fdTCsR+ibgnrMLs8682bcFKx8TuCuEwP3LiUu4GsG9jBQ//wFDYfOFvF9OhACVlHPpu8TCQ9Rz+5GAtbBmCGUOQnbOEQd5IyCwwOW8ZWD7gLDTRKiCfJIwJ1SXXylVGpFwKGj9JIOBsN9OhY9mmsC9ubVonsxbNVNemk75AfDJh20HnaBYalzkbQhYx2Cm+QFmpsbdUSwwtkx4SC4w9nRmVghuNWfStpqdYPgAadRJ3KJ4D79duBuBGucbxMPAVcY7gjY0nBGwCOGmwR+eX66bSbA33ZC/kHBIoAPMHHbKTRqZQjtUhUvVyR8Haf3uxyswoXglIF9CNMPKIDRA/Ejh0vUA9EjSw/DNS1Y13DXB5W0JQP7FC5oWKUuGY6HqOekbw9Rz0nf7qNIx4zG7T4zIsQ4SAeJEOMg3U+BCDEOEn5cVIhxkPBzJUOMgoQJgAwxChKmFDLEKEiYpMgQVThP2mmvpF24LtmJlBlLMBqYmrcc9NMaTPZ7DvoZFZaPnoN+2LAgNRz0w7ZLHDvocdh20dzw8Oizo5fhHQ9XkB27sLPZ8fmBUoHNjs8PFB81D+duLKacaXk4cy/QFEgNDwsXoi656N8BwM6GaIq4TL4h41AWZvJtM+4KTfZr1O20HkvXzIsxr8YXw5kXY16NL6+Z36pty6Bgz7xBHdy4BcjDYFNR5+CVdrBNyUII1MBWcm4rJUK3OZOg3+41AvQbSAGOW9I8DDa5WVh4J8H1R8J8uwT++xj/K9jm4OxDYZ2D80ugMPdcAIVpb4TSROqhNDV7KE72DorLh4PyguRgw7uw4JuwaDrY8nAWwZqH8wjKpQJAufgAKJczACcUSBZOKLksnFDEAew5uEigXGgClEtXgHIxDHBCeW3hhIIdYE/DBYLypgKgvE0BKG98AMpbKQfFzZmD4nbPQXED6aC4JfVQ2uR6KG2bPZQ24iMUtvYjFA4LRigcPwRQONAIzkj7/ANHmD10CWH2GCeCuYOhCOaOmmIIh1cFcXiVQHMc9vxOuvVfbbWqTsr5YWMAAAAASUVORK5CYII=", + "set/union" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/gAicCKdMBIAAALkSURBVHic7dm7kdswEAZgiBwFDOiLVIJKYHCOVIIDS/ZYDpj7giuBTbAEZw6uBDShEhg4uxJMgC8A++9ihzMeJ97sZr45ErtLvGSuXHx7N+bp5/qn4dzdmjHKIQdv3o2yz8BXM0ctw7tZYxDh2wY/SPBmgugF+BLCZwHaEJY8vJsoBha2MaxY2MWw4OAXk0TPwO8pbBj4msKagTaFJYa31PmXBPArhWcIWworCMlY/GgAJGPxo6EQjMWNhkJSFxcnAMGg3bApBIN2w6YQDNoNm8IOwQJAkB2XHwqRM4ZCmB1jHgR+xvBEIEzjmEgCyXcwRUPgJwyPBLYYVgTCwoyl2Q8vGB4I7DAs9sEf71iNUYbwF8ti+CK4MVZ3l90G35SQaQYKrRIybUhh7g0XyHwpFLZaaJUwl+wVKp5spN4KYmoKOMkimC3f0rjMB0WhzUP/cSlecfpc8w0xw1YB/ZTSKaCfpKwCumlP0WLTRKoZi5+amakzDjfZK+oyLR+dwvkFSfMP3RKnKaBfNJkVKA63DCuacVrYVdlxWwVVdtzm46JwfjvTKaDfIFkFdFsuVRrdJk7VZP0INfl2u2Gj+rIc1BSmcVBTmN7BNu+mDbsCTkcARamnQ8Ul6+ZjSh7OB58uC3slXA5nNgcHJVwPkBm4HUkzbjvkyhEcm+W4/of/DFrJlX8VdhIs9sCLBA97oDil1AFsJVjtgeJEegygODU3ARQn+3MAxeXjFEBxQXoEUFzi+gBKi2bQPPIyXETwwsNDBIVi1xEUSnOMoFCaJoJCxk8RFBLZR1CYA64x7DhXJJDNT51ANj/HBLIdeU4g22iPBHL9E/bOBDsMCwJbDCsCuesTApki9gRyl0YUMvdVFMKWbABkbukoRJmMs7jAlsIKQnBsHiDE96cIkmenT14gabUHA+H1MoRJY5xZiO7KMYzK2AgQXPwzkP6UwMDtqukZuOiicr68+ohcfKPprsOefkN3/QNz7BGg/vj3xQAAAABJRU5ErkJggg==", + "set/difference" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAf/hiBGx/K0AAAP7SURBVHicxZgxdtswDIZl63nQ4HTyEXQEDVnyfIQMpu2XeNCcZsgRfAkeIUOm5gB5r7qEjtChW+cOdSWRFAHih6z2vb5isqlPIgCCAMEsU+XX29NX/WmUb6aTx+vcdzPI52vcjfHyPs3lNoD7ZhK8NaM8T4I2gvspbm2IvEyAJQWPOpcbJo0KFhys5808NbfloGr3jUlEW50qBU/zVNSVtCmoKLlMOWPOECwkWM+zRbNmI8HdPFsUa3LJ4bhYIHA7z2hsNjAamy0WsBe0iC0CD/O8g/2DOGMkB92IHAlip5ezANcYlFkA+ht5fDZYYVAuzWwQriBaww0GZYzPAvOfb08WgywqPilQCk5xFMxfJzgaZ7dTHAGVqJGg4mgBXvlgDPFq+PdwuVwBXZH8yJS9FacuAteBd1NgX+5dGbUGOsqD/dbzhbkDY7EWYD9z7X623c4E2+EwOjEo0YPAIg/aWOgHUGp5GL3deHDT73WZLnYhHsY9sRmyq1jQXVBxzATl8FPki6NXMR5aqgEUHjp5FeNurJyf0rlP3ov1CBbjGJPw9pmAx+AIAbZ0R6y9gYmSL26hScJYet8mSp7dLFHF7rV9BpRs3FBUsU/2DVDSOYQVB+tfY0runTYssbR+lVoKHtwIy5Kluc/cRESOTqmagpX3AbPm5LSmtnRAjD3m70VSlsJ/FpPb4Qu8IuYGmN2/ukprrPU6E7O9d5KMv/EDZBF3bvyeg2EBVtzoboaag2FJiX9qp9KWgyFIyLnmTI2k1jz6F6gtS1ndSzcUHeljXhwsqlEpastaHlVuxmjx8u5AWQ+te7ahKoZdlyr5mEWPO2AFanbvwecYkbXXXIJDAv4xgo0H7wU4TLr/WNGZu7Fagqjx2cAOiMRicDMGQXPWwvMraPcwCBrIVmkEREtqFVA0uSrYtc0ssKzezeX/GJxoJHN2WJ4N/kdjdIcnO3k2qAVFFotYALcauPg7EG+FQXgSmQ3C7eqEZxuYAJzwbINSCnyEkhScDKU9L1x9lEi9cIeA1BykZSBI9kF4vIDy4SWpQKAgKZ8QJS7IIlFKFM0gRWKmKMNBVonjRGHXHoijQtSJT5UePkaxifLpcSZInt5OpAckfVy5pSlE49/iiKyEkSU2uxVuq7DZVkxUQGuWUnUwhF/P4Z1KCdzbIiUtMLEESi7RNAVQEo3Bt9EsvPFx0hV25NxSXKqs8e3SrRgu8UXvMr0p7o8UQEXWQIYpcNiXyQOr3WKSJhf8pTrRA4479DQQJI2401C9g4+tfZbdGXVmelngOP1e3R0qHy6X13hOhpI0bWcVnH1Xzj858cE/uPiPF0MPzSQ4XjV1B+sr4sjrnLsO+6LM+xuKVUGMXWFsHAAAAABJRU5ErkJggg==", + "set/intersection" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/PZuW4XZsAAARLSURBVHictVkxctwwDOSJ40KF7OqewCeocIqMn5DCOnucK672pLgn+BN6ggtPMmM/IDPxJ/SEa1yldpGJKIoECCx1l0yCSkctCWBJASDOmJLY96f759fia8IdulE+H0dOuBF5DHfZzfLliOI+AjfLytOCR5akBY8s2XRM9gtA7/LmhzG/+mXHrV/oxT+d+6ey7pp88F7tljTfxOeh626XNCcPmgW//Tv61Zf9bjOWRyu3BeBo1gP9qpjBQsSbcR7GVWJ/LzMFTGrxoiox2XKfvfQFbwbJsCt400tNtVSRTLrKR1bYm0YdF4v3BihSxkzS6tPioNtgFMw1nh2lp4b89NJp7zbgx4JvBI2NNILZPSByhewZtDkj39cauAaM14gKBxg/Q+S23aeTxuDsFu1rDYAOnZQGGL4GTIycaSrW6JBWgtyLt6d7tAkS+DEE5O8aaDPg+Ry4Ny8AyA7AUsbIgC2Fd00aA57zRKCUM+CBA1UiIGC2oF6SIp+b3t89vweg3LEEDC4/mylkA8eTap9Zum8mAeURSsBD8qCH7kSgJW2R9kx3IpzltAjcQaAj84cO+B0Phfc5JoIIzPyOx6xhNq0j53sAbJmmBOQnI34KA7PdRSA/qvPHZTkbdNqYkfPnWnEfCfhAwDkA1Jy1swSksRg+HJ9dJyBjcg5SA/8iqORh3oSwZ7PJKzq95E0IpHmarQhI9oSokOdnS8AdG3sNhBgmfQKmvZnTh1MlhHR7Tkgiwac9JC5CirPikNLWJLdDepSJnBhPPoY0LBM5KzL3yem90YmcEbmLTk9rtzKnKX7qyI6IH4qfmb+1DIfk9nVUsQ0L7HIguX0TjZ4QqlZh3ky/5yLO6upHMD6ECZUuA8ibB0OF5kqXkeTNlaHStdE1BO3N3lAxDGoaOrs7Vl6j0uDAgEPkHZVTicktuwK0IE8l3Vt2qXCohoi67/wBmcM5qlT44U2HbY2A6Co1wLIUXM4wECRvVJ8ZdIEEdeUk6koKqxIDLrkl4HhtfsySTREoi9M/AL6WgFkRYxYukjY7/CcDT1b9P7z+98CrEjC/dBSOWQDeZMBiM6D5OyD8uILUWfUNP9cIvM2AIAAEOcuAKKTAV/jONyvjQHgjisBdBiy1AkRiAaE5Sp9RDIJ9lDw/g/Qxi8hAICEVlii2ShphFLgmB5F8qDQcpRU3MpXYSy9UqUA25aoK7QrdS9B9iSCqO6E7HUFUv0OWXGSS1FTo0qhuTqlLo7o5stCMoq+HsrUUBDSYcM8JTLewe+cAvQPamx646ICRFVJTAyPRGJzt0MZmF5/ikJdB6alxi7BVuh1uOjZSUdb85OO97iTixqjLX/iJ+IurO9kWLXzslhc4oeiBmvlFXP4AusPV3pgPXVEzbxaY96zQUpLaD4/TQzGuH2toCHeSLP1JsNx04dISrpjLJjn5r4SlVpOQ0LzagOaVlIu3x7uvP/G737GyVxO24FNVAAAAAElFTkSuQmCC", + "set/xor" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/gBpH+wd2hUAAANbSURBVHic7dk7jpxAEAbgHhABtgjnCCSWVo7IOYID49nAGnOEDTeyuAS5L0FoqS+BnM4RnKzk0FQDM11dfzWIyIEr8s58u3RXF/2yabT49sOYd2/3H43mrp2ZIhm24MW5SY4bsDVL5HF4NfcYovD2gO9j8GK8GCPw1YdPEdj5MNHh1bAYVPjCYaFCy2GqwS8miF6BzyEsFdiGMFdgF8IEw0vo3OAA+FXCCsIXCQsIRV9cbwAUfXG9kRD0hXoj4WcEzwCKcaEoAQSdpm5LCDpN3ZbQIpgCCLJD+ZEQOWMkFFU7Ry8gTOOUSAFB7VBUAsJ8TxkX8BOGmYBwYKahEbDFMD8OawxPAloM02Pwe4fVFIkP/6iMw9eIm+LurnH3gLedUCkGCbudUClDCe1OqLwpEvpVeIvBzvvkV6dDluwRp148eVp+WhVaDkHX5qLgX5zR+zDD5xDKVs6Fy/9AhfI/w459Voa9o3AvV9D2DI2Ue12DgijQ2DsYPCcXmTXLlBL89gmVnZukOv6Z20KE6xdNe2HDE1SgNJGK4h5BI2lqFlNnDxpJk30bwgo0kpYPG8JMvpZuQQrdsgllD6IlTi7kqSxmWjTBCiTfdFqGwVzSi2qmhR0sLLLbtFVoJSxEt2nzUUs498b7wm1nrIRiEN0GqQPQNdJrPG254H6oCN7N6RcNnMdcpXkJnppi8IpfsURS5wyeanOWSLd1VSZ56vf9B7cZVlb8Jz/jNKRGWfHpZGS9JqqQjjH18s/5CNAqcHr4+tXgYK1B8+H30opmA64x15Kxm7DfCdfDWbcFh53wfoDciMeRdMMtD96Eb81O2PyH/z7sYi45Am0MpkdgHYOnI7CNwdyD2iTlojgClYl0jsyD0f136cHovrryoHJgnOPswejGuvcgXOLWGD0YOyR4xaMsw0ukDNY6PDHY6jBnMDI0GYORoSkZjGT8zGAkkSODkVe74dBqLg1gq8E8gGp+sgCqFVkFUC20PoBa/fi1M0OLYSqgdjUhoHZ9IqB2cyOgdmkkYYtgDqByVSYhbGQPIMokz+IK8ZUjgOCgPECI708RFM8On7xCeBmMILxehjAojEqF6K4cQzaMZQSCi38Fyv9KUODjqukJOHZRuVxefUSO32jSdVjyE7rmL+aVUNj25WwjAAAAAElFTkSuQmCC", + "liq/smudge" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/4ok6bxZBkuS7AUAAAH2SURBVHic7Zk7bsMwEESNOLZrxZ86uoEF5ADxDazKrXUDFc79QzINvaNmuGMgxb7uAcQQppdfrVYVXcLjQARGYARGYARGYARGYARGYM0lNZgdvhh4djgwmgasLwbeHQ70qcGnw4EpNbg6HBhSg2+HA++pwd7hwFtq8OFwYJsaHOZ2B3aX5zpgHenNKLMO5L/t5HBgYwaFdWDdPdc+60hvfgPrwFf+Ded2B3Kpdrd2B3Z5RTrOzY4MZphZB/Jsqucn68houmQdeJguWQfWl+cuWUcm0yXrQBnmqkvWkTyd6vnEOvBTurw3O1Cqv9p8WEfyjK+nPOvAXyVcmx2RV05ZlKpzFevIayb0vt2Bsvkc2x3pzaCwDjzMoLAObE1lsY6MZpRZByazgrAOPEztsw5sTB2wDmxNA9aBXKoHh78+cJcLy+GvD/z/YygvG3lhy6eefHFQL1/yBVa+Bag3Kfk2Kt/oRzPGrFvK4ac68LEOlOPZqd0t8gOn+kgsP7TLrxXqi4/8aqa+Asivt/IL+Gg6ZN0if8QYTIesW+QPQeUX3NodkD+mqZ/75A+SeS2vn0BZB4ZO/KirfnaWP4zLn+7lHxfknz8GM8asA/JPSPKPXKOpAtYXA88OB+SfMnOD2eFAXow8HoERGIERGIERGIERGIERaDN+AU54LwjSfioWAAAAAElFTkSuQmCC", + "liq/reconstruct" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAJ1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdEvm1AAAADXRSTlMA/wfrVUChvdaGbhkpPsRAzQAABlNJREFUeJztmklvHEUUgFvtaTt296XUMGMMhwEjhCMODJtEwqEbS1nEJRZIBE52IiSSXDKQIBE4ZKIQDlw8LEJCHAYOkNxiRZDlNBaEReJH0fVeVU8vtbyq8TFP8oynpvy5qt5Sr151wBh7MbBI0YcZO4QnLxevi9Cv+Hl8XuCDIVsr3lYk8In5gMmvxdfd4pdIAlfnAj4YMcGIod9w9dxb8wCPMxT++4C/P+zbcCZgfFPw2LT4NLQpzwpMdiSPZcXH8bzACo/tFp/z9OXBPMAqj10sGp4h0bTAuMJLz0+pMC0w/GbGu9LAxRa8ErhZ4rpv1v/Tn98PLN6sAv5d8i71698cKtoecwZulKv3Y7P3ctHacwUmI8Fb/bnVO+Htt12BA8HLFN25w0wcgcFPeh5895IrcAnWTz2Op61aUQBjPuev1d0XrVppAMHDcsY+13SHQHuKDkxu4DBe0fbnJrBNB74NoSq8obcMrpWnyMBowI7y976+/x7DTYYGzK1+gPupybSrQNgrJ2Yg+Mo2EQgWbVygAH3lSRpwBT2kbwbmlkWsANHluhbgOu80pQA7GBN2zTycx0UKcAt4axZeEHLHNKRMJVBErcwGhB3asNAl8B7wrNmaWMSJFRgOmdXvUfg2gA5lBC5SB4jRTW84EpgTVzDARdQbjgCiSiw7pJA7Ru8TwOcZwY+FrBitSwBhGsawNJPCElf1ykMgRHaT/dckZ2f0XyIQZrxq3sFnsqTfISQQZvwGkRck1gCb0G3GKgBcclBJKe8ZgGDV19x4Gxoj46hwRHTjihQ5mtpPAXiCEQ5xdSnCe6rUDWr5hOuM72oXSXjKu44zhlOCcg+X0eZ9Jx4GCGWEqOx6LoK+qlp3TyD6lspyfIFLuj3SFxgPNEPkrZd9iPuaITJfoi7RwObrHkRNKsS0+rfJMv7pZ0qgKeHTCp6p04aLMa3JWwVzg6ZesNHNketDZBfawNSLFzyHwDRrAX10wgX9j3WrgRFaKDmSSoSia/slNFz1BIoUq3bg9Vcyl6jt0dCQ+QJxK0j7TWBf090u4Vjq9If+DGg735kkGmF+nLDXTpVAX6sB2cCIU7hN+kFfAGmJq05Ow+F0D6b63e3AOzSUEt7ir8LG00/5q7U2LYUdsDwCPgL6AKm2+t87tz4Uf8MPU53My2MqQP6eHIPMnbMOqWuRNAlnU4mPDfC2JDedDW0SV9cmOgtxZ9TYx5wkqS12mAUi2z3iC4za2sPcVFfitEmnDdxCfU/8gCtt4BCBPb9lXGwD7wuTfNULuKTwAHm3MPEBLqhcStx+2Ap/StlTAeV9TzPbpUiudPrOAIDp1B04VkeRu956GWrC0hiJzj4d6uKcyNOcc4pIGzj/wSFmrsTjOqAoULony9rQvui5ivq9AvVCrl/ZgVh4V9dSvIDiuOlYcDIBcYiu+bIBKIZoq+VX5aEZCAel5vHVKDuXzEUMHnUuaL9tS7HlXTcCi/Brqo62RNiuHhgOe1MX4L4NGNxz0Ui5vxmAoRNPVF7saVpEBK4TgfGQaDljInCT6H4RowF/p54uoVyfWoGwGUwpQJjxmhUIDk25dkAdX7MC96mb1R8Y4a1AiBC2+81CsLreJTxVxdeQkDihHx8llEwhWzE/isAFjTAjACHjs95wYnjvUoq6kNfXSjMqyeUGRPCUHcIiopfwdI0AvENYxC0mrYsAXLYvonDjXRoQauDmR9xyqRJapR0swhTCUMXsIypwj3fatv1H1utTgeAEpvLTEIBfBVQgWKIpJoIdiItLChBGYNJKZzZAGjC3aWVHriARuG7TShH95YUuCbhs8JXTfOmi2RKTgIk+am/g9jDOnIDwYJHyMjYaoVO+ULbQgGNNBONF4saJkAbc16h5s/Q4R+CCjCV1waN63eRpQHC+q81WWUyoDZ0GLFwh/WTSaDw8QF7qAYy//HbabDssHyts3/jYgQp5VvK+qLf7AjuSd6R/IMByvq2ymx/wvtAHa58SvIB/MclrG7sHMLxp4DkAf/sF32ePBat4VGB88mPZLzTyqMBqWVAouDtV9iQCReHyXw7BKb+uqR0QgVhaPQtJGA+OraeMXYFY/BUPj6ueMnYFxgLIN5A91sv0PR2B/Ppq4Qr1GU6DhALIM5zY2NMRaD8BOU75YIH/A6qoVYOuG6TdAAAAAElFTkSuQmCC", + "liq/smooth" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAJ1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdEvm1AAAADXRSTlMA//beFK1eBZInd0PIkcoy5wAABbFJREFUeJzNW72P3FQQt3L2em1v470EAlyRVUCIpMlKER+i8e0pEqLCCImPah1oEE0+FClFirVSpKBhD4mKYq+BhgIHpERUtxIIIf4pPPPefWbfzG86fkUaz/7sN2/mN/PmXqLo/4P0j69g2+LqZz/9rhl9WW5XKOFe2ePqF99JNrd6kwVK2BJh+apkkk17i0OQr2A++f1PyeIGSHif+S7dEUwGEzL5CCQ8YMKbkknDJnOML+O3j6UtGTDfjrSGU3jE1i9JJuzB8lOMz694IVgUvIbLIJ9b8ba0HI7TcgUSjtj6LcEiXas+OQ19A4eWLY5iXvEl9ZViHp3BbS0I3SsXMGHcKkGYWGKQUKzl9TRqHp1HPpGSNCadGf9qIYw+qISHQ9uW6Ngnwr9R60L3daspxxl0/2oWnJnwinuHf66YsAvfQQn7EBv/LJvMLGkXdaQzsjWJ2zbKxyGmrGdqEZpE1X5XEWEXdnrMDi3S6lZ8KNpQiR1XIKFbsWzdaWJ5Gg2g7JQnr4F8GSKcVE7eBAlHarXr3WzuQKRqF/momWN8rnqvZKOcbECp4eq9oxglhsSrgRVHW3jU5FD1vouLYaPWd8ISloZUbzIJlCivQIQsS3pA0DouYoQ1FBAUq1cwwhb6QiIEe/8G6oBanJD2T7dtVcE8xr0S8beBkLVGVToDIRcLtbE3bMoA0QYLYcapUilWFAsvY4Qpy6HWRxoyhauFGoidoUa1elGOol1DI8KpovnnAhIKHkskEEdIKHhsIYFI0ToGjygJEogDJBQ8qKi8+0wxygzNV1G+8bVuNcGTOf0W8U1tiGwIB3gdxbA0xA2EkaG5YaTK89zSz/V0z/9SLLhBfB3l++HjcqzZ1Hg2x48R/3T4McBp9kqx2jI4cYrYDqDq6FAjtT6d6q39EVhi1WatwfWBJVYV+Ef4miGJdScLbOI8hGq9czU0FuEN1A8NM2ghBE6r8hPovdhximv9WDWt4W1x09cdLfv4zAXNgjhuyvKaErbuHIxsixu/luU/il2HbsvAE5ZPELs5wPibJ9xWanmLymzcesbLlWj3gGygU2kx9Yxvyy+ewi3JrSM3yvHNU0lswHTbE8rxzduCFfy49oxyfNd4acknnlEsBjNcZqMffeiI7+eCD06EUpfS8jyDSwvaNbnYmctGHaSdHg+PUjWrgjYjOBIJT72Y7IXje6Du22nENW9Jug4f/tiJcNcU5dfp30RqdWjr4OluFPGXtZKXdlF9OMFA3Gs616BnII9OTAbLGciBS8ci+JiLbvjxBuwpgUHbfGghZNkRursWz+aTH0iDLurrwEmdA2uEcAxb2gLRV1/hE+6CxfnMF0gtjGEe60DzBWlNlnHB8Q8kDbWMoI9/IDmJG14LYa60B0xoSWatQ+YXVgZCPqoJh0kzoRtth39h+UODw1T+xdBMWMuKZydURttDqw+dOqyCjxNr2Dh1WAQfj+Qg2IClLNkXrKnnZuVhyd61ioM77l4JPu7MhTmRJbuxCqyLi7Bkt9YSoA1A1rKgb0AhSnas1LANyETJLpSyHfqGoNuHpo7TYSIFxpacmMFvCObC0iw2Tm2C2Xpg7g/dXaegD9fmRJEvlGVKG/Ai3BwgeMcvN4ehcj+ON/nQQsgVJXx5qjNHDZ3Pyj/l91UWQlpz+IibKX3Kxt+sy/eCD4fmTe7xUJhv8YkevibTBwXPlr4JGygl9gU0O5X4nM+i8DUZvpXxvmig9Y7nsa+tZyaXm/PgSZR4sfbApq7u4upKeOPEJoa15qHE5sJcloXIJ7J2UeUEjSwLR/dWFyifu8kTlgW/BPy++Peq+b4pkd16wrIQ+QE6HDT6BTpeMZ53HLPXJQvbit2F9rlgwcKAr3imvj6x7XGnhpjukzO4L3ULBJfHc5iQ/geBeFk9Nt1b7fHhVBQu9wcDU1+YKi1V+ssk/Mr/AFUZEz+MCHxSAAAAAElFTkSuQmCC", + "liq/twirl" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/9g3YHqYtN9pj0cAAAOrSURBVHic7ZpNc9owEIaNZfC1pilcgbT0WhOSXJ2m7Tm0nZyhTcu1TlPy94tWli1/CK3T1zPNDHsDi8eS9t3VSsLzeLaIpP1itmaYIOArHNCLifgOB+wTcIIDehsJHAGBPnrMAu1nbyWBJ0BgKIFDIFCN+QZIXKGF46MnMUBPojeVxAQIvEIrkSbxJRAYoFOYB/fKBpwfVJZFxoqPdjOl7RdAoEAHH8UKchkgN4+RQAo+JDBGC7GHzjc+WtkDCVwDgX10qATodUp0AkQGs3cEHoHtrRthI4EBOjnA01fYSemQAIG9TqolII92FvCyHVqKdLJTQYZyiI68Xifbx1YyXN7ez6Qy3v64bno8baea5TYybPin1hXR6hxjeR9VrYoMW2zNxLcaTvbyS6lRzHfyxbSJt7cHs1XKzjWfLbi9vTFGETF9IlI7z9x9+uWPVgtsw60SaQvgDjwXL4peZy3pgzNOarzZ4+7n9rH07W9qSaJxZ9cyb3etpSc+GU+SfMTuKTRow7uykAstyd2YOliatADe1UMtl9Mp/7hP/2Te2PSyGHSqu8oDfrc8vsiejwbMESvgOLE+132cFt5xA0eHZmZhuI2TuqJCuBZbFcAJC+jgeSJXz5CT/Z08HSIRM7e6ecWgEw6QY4HicY7RAhZwwPfxigXUQ3YX1wNWrReYOeKwpSxgnOvw1NFywatGq4nRanIoDF5Y8Bx+SXlA5ZKNe9DMcyyVqU/6WR/X1oYqL7mBasQ36v37eE4s7TKxuoGrbO60eCxEnYndwDxvLQ4RNc8NVCOhvJXqH9XXi/f6kTveSdVqJ6H9sq+gyokxyF/FWBWpbRbExmpg1KJLo7R0R7sovXdjaHxfhp+dLT/cmqUHI7mGpYkRhwsrTn6LtY+VHSzVxpwlhwaZFJ/7diJrCatfeFj7yOqfCo/y9tPQSGn+eBss8kmlChZNJf5D8+9rRj5ZV789r3ZynjB51t3iubntmjfuC5strfokN/FxK7eZs93XVrtT2QHkNRk5GXmRR7lrAgT6jU7+B4PfdsQW1TzZSIZAHv5OS+oaetQ1BesafnYm0IECB8JP9+BA+HXyEfi/AuHChgPhyQGZvtqdCnMsQi8BkbW0eaJN0ate2sm6nACBV+jaJkZXXz10doD//W6ADhX8//kitBApVJDXZLQZRd54x2jd9NC6CdEZUR0nAYHMW54WtkGnhxi9NPvoaO4/E68gYyXuJFbw/xNPgMS0E2k/g0lkK/EvxGqmmaAM3vEAAAAASUVORK5CYII=", + "liq/shrink" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/7Pgg08nC1hmBlAAAAVXSURBVHic7VtNcxo5EFUwzFwjyMeV8eKcd4hrz8YOyTW4jPcKWzG+7lRM/Pd3pBHDSHrdGilf3lTewS5mpIfU/VofLSGEj0wqTMGbFkNVYsKVsFCo4q+5EpUq8ao34VYVf8GVWAT7YKHp0L90gbxUJTa9CRsjfqQLjNT7cW8+Y8Qp/X4QZ0JjRKaCfn8RQTgIeGURZ0JjI9oreawJhShZr+jvexlFuGK9oi3yZxThZzZWqoCqAIasVxYB3QNkbPAXocgk6lDCyGJlrbBipDuM94mxO1FpEBsnbSWiW1VsnCiMGDevouNE8NGV4mTjZqy1MsHJxs0wGrIUJxvLT9GbYYqTjZufk2/iIlmBHqIq2rocMlI3SaoRjS/h8LBIUo2ZN1DPiiTV0LrJSW8FUBHqGMWtQo6gJo5EGZqKYFpJlCEtxJM0GRrjA3lsudmGRYkFnKrrRm+gKam6JldERfQy5ABC2SW3pmCBlZ04vCqcwJAIBMqD+It8h0OFD5RRKeQb6iUOFXaW35dSSPme+jYYKidM5D3UDqsJ5Qf8Go/Zz+hlg+LThESvcezpDQAsfy3lgVCewRIw9lZEKOdXskMoz1EnYOwtcCjvC2kRyvHffiE4q2DCT6V0COtue2McDGa0UtpftSwdQjl29QODufS0lF3LDkTR+TC3+w13dK4485uyy3cmskX38/y2U7YChM6CPbPpdJDkV9aj+bK1mtbwFBAe4vHu0qabmBCxbKA57/VzHWXO6KDjUU/z+5s/nHrjtilHp7ecs/U9XNE1W4ovN5deFUsm2ZX3uu6AbsGrxw7d4+4fULAp7WjEb+QRbw9gyvihBhvZF56ENfaukfti4gfZod8plJOZ19uvoeTpdMeBIEiMlyE6hcxTLNW42zBZyxlq52S2jlzS5Xc3pxTbbNm/bRZ07dPTRtKT+t/pjEsdhKG67Uwq0Ukqj9CZMr8BoW37ryMEm3Byf9WfcOM/+tUJP/qPUvl+E2qA4PmZhIsnT/j0bfi/1OFTJNz4j57YePjNCX/ErJdM+F0merQUScnNtYRosZRGyC7n7iPJ8uCC8+3str943D0hgZ5LYnfDyiK8aM9i9gBNM0GyIp1Og6TMr1PoFM5gx++KcE0KkyXobTqdwtwR+wPZvJfr3e7xsd6F1392u7WbTsCNzEGx+bu13r07OYcmqbhbX/rbt+Me3Nt7m30XSnHqJIZOs/jbt0O6a+90d740QYWSsFaWMne2mU3ewck2dFSlCS8c53UJVWtsZ74Rwk5zWNvpZ4BQ7/+sZJqtjzPR/XRu+75Sz1AyzUn3jbo+4LJzOpm2cR4WPmFttgIQ+qmNlXqMEpJ+yvQolAOhmxgi61KbvU824Qu3Z4e6MKkLp7192SE8h8M5PEfeIk9pjIqWEGedtUNxYvwCls8KQ0idBqiqOHU/xRUUI3MWYCUzW7D3RGpGQZ0EmLDFxx/kSWZWCvL0o6k6hV9Dn7WOyDfUyUkOLdsLxMkJ9H0vVFjCMJh7gTg5wcHcByvcFDL2giDOLOEo2QsldieaGHohJwSXdH1HAQeKeZ5yOIoDxZ/3eoM8YkxV9gklD+IgOwjyLD5ViMQBHjcJ8CBvJnFjNgNKhvSNigAoGSbdPlSgD6apGxUBMAfTabpZEUsOkaobUjX0TRwexOClkHCFkx9ThiluHnArDpkwT7F2SknesIcIKZmMkuvVNj6a+WE5+va0qUIOANx9TAIV2ykdzXFeCZi9iI0V3QQm/rexscLfTTZDUUysVIFBOfKHC+HfETRe6S/t5ncBG6ZEESftYTD6t3FGDBcfxA04RVAVI9KI/wGIdk2Ub0oGgAAAAABJRU5ErkJggg==", + "liq/blow" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/7KC4FAnC04hTXgAAAVLSURBVHic5VtBd9o4EFZxbF8X4m2vGELPdVnSa0zonpf6kV5N07DX+mVT/n6RLIglj2Y0St5L+vY7kBdb+pBmRqOZkRDCiWh4QGY9TOTD4djdC0Eju761n+by6bsgwgIcy1Y+PQ/hS0vZtbYft4L4EUAYy56j3uNWiP8EEA5AEWohjgMIlbA+OJ4DX0SiAEWoRx6glRQWoZZtgFZUvz+hN2WYVtTMrqA36zCtNM5x/Be2VgqnpKIwreTOXgnkNEgkiLXlDoNCETl1orUCmDyKAdKpQb7MiQaZlmuVo1g71olEHKJmt5KRVYmhxGal1MxbzQkq9zV/NUeoZTT81TxAx6De/sEibFApuV2bE5jVaAnz7KbAe5Rs95Dja6Hg2k1KSJ1tNzFhFw3X3+BmiG04WAdkShF3WzkjhM42xC1hFinXEHG7Fq0hchwYYdetnXIsO6dE5IqkXCgpJTIt++Ref95V88lktVodviE7/JlM55sbqX2mZSur+FxNVJzVx3K6+M5zsRFMZOPKl+/uLz/C8xsftqRyTBTCaFFTdB8ZdBLZ9Otz0ik4KdMvIXQSM3Did3kg3QHZAphtOJ3E0lo29+DwMrkyNrvdfr8X4vCx22028/nkAhKNMcj0C9BgvvnXqb3dBhjA9UmSCWTIhD/eAl1GWt0P1rctF/KTiFAb2eZTdWHO6lK+ujUlcrAq5WyILeiNbDM+jMZU5nshvpl0Ug7K2RDBldrGrpTADMqZMMTa6h5LKY7oRnRxVwcdwtGlbuxNeBLLbQ4Qzn4Yjcc4YWQq7tFQjoTZ5WNjb8Kuad2ahOd1592ZB2E/dngoO4TXRtihCIkdCEh+4vxEODMbN2GEIsk14XursavAYnRWdmE/zBXhpd1YERK7OEgoGcXwU6/x2oPQke8lpbDn60moZA+ESzHUVhHWYYQgCh9CTqriTTh8dkLP3KfwactJwr3acoo3vwmhVyPPKPt/SOi1CF4/YfHqCV9Uhq/fDn8TwtfvD5+T0GvX42xSL0PI3ugpi+CEIusXIRzChPfi7ycQ9gPOuBS9CNsvxoYj2ENq4YyxfYJ2uyJ4X7ZZgB1lN4GEkq/NU6xZH3NhktDM+ts6Q5tJmZlPUGqW6vRR53rXdeedT5VaEXbKCKc6wzEbHXXqTT6EVnr7WGeA8mXVmCgRGKXxh05K78zoiSJGJ+tPjKqP6NZYlu28bflAOIklNeuNM5EU3f+XN8KvMK8twS5fykmmZl1puagBG4MJZ1a9MdNLxK58LeUHUel/M+xjVB/fWsWl9q27lCbEz6ro95h1NgSwnKaKfTe7fYdov7vbVB/B+nZm+RhokEesjkDaXNfCAjhIX4x6LlDi4YLuCSKbubbT2xDKbNqb7VMocTo1cU5xnC7dSySV5zD9Dhcknvv4Qxe2qskKJlpNF5X8O/YmVJuu9A7AEdJCHSFh9yogSL2g3kE5G8bxrfS66DlgIwlrf8JiSIRWKrjw56OrX2tqChYaSkQFJWQLZBW2HPKOg6nSuLIrzgUZZdnIzhzzFgoYWxmIeAtFkJbNXSjkgfQZ065JQ6TO8OEeiCEWTLsmg1jsRhMMPKJjmyEVgLHNkLoZwbcawm647lUCtRv1knmLs8FmxbcaIrXgOi+J3qlYB5QvAgGf6LTwOabrA6l6oPJ1onCbRhGgZO0exuAr7u2dFu57lT5pDAD3vcpBiJL1agYl1QQpWasZ0iWiLhRbx1pRQ2ff/BXapQCyD7yb7PjhgtAiDPmlQauVvqyKQJ247uu3vwuoQwi3oBAjxGsQGIBd4a/xQgwKMSd2vF/smUx3JGjqLwAAAABJRU5ErkJggg==", + "liq/pleft" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA25pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpFQ0E4RTZENkRDMzVFMzExQjAzNUUwMDRCNzlEOTUxRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyODlDOUI2RUI1RkIxMUU4QjZDRkZDMjM5OTEyNjQzNSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyODlDOUI2REI1RkIxMUU4QjZDRkZDMjM5OTEyNjQzNSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplNTUwYTQ0YS0wNGU3LWExNDgtYWU1My03MmQ4NTJiOTA4NDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUNBOEU2RDZEQzM1RTMxMUIwMzVFMDA0Qjc5RDk1MUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz79MJ0YAAAFjklEQVR42uydTYhWVRjH74yhVkIFZggVpJAKSYQWQcuCcBP0sXMbDkSLXIggoqdAFy60lmG1iwgzqLWLooQW4aYgUxJEQQzKDxwSHX19ju8zNBkzc899P57nnPP7wZ+Bl3mfe859/nPfe+57738mer1eA2DFJLsAMCBgQAAMCBgQAAMCBgTAgIABATAgYEAADAgYEAADAgYEwICAAQEwIGBAAAwIGBAAAADaMCHiwWDgHBAwIAAGBAwIgAEBAwJgQAAAAAAAAAAAAAAAa/ZSP1+WFDCH7/Tn99QHC3qqvdQHSwOOqom514cxGnAUTcy9PozZgMNuYu71wcCAw2xi7vXByIDDamLu9cHQgMNoYu71wdiAgzYx9/rgwICDNDH3+uDEgF2bmHt9cGTALk3MvT44M2BqE3OvDw4NmNLE3OuDUwO2bWLu9bNvYO7vH7SJpdc372/tBlysiaXXx4AODLhQE0uvjwGdGHC+JpZe37Q/hBP9lwnqswixOgKGSuvzEezAgKHi+hjQ2ICh8vre+1v0hehQQX1wasBQSX1waMBQUX1wZsBQWX1wZMBQYX1wYsBQaX1wYMBQcX0wNmCovD4YGjBQH6wMGKgPVgYM1AcrAwbqg5UBA/XByoCB+mBlwEB9sCJQHwAAAAAAAAAAAMAvMUvEw8PBl0X/iC6KzolOin4V/SQ6RZsG4mnRi6JnROtFT4geE90vetjDAHvOdUH0meg10VL8tChLdV99qvvOe3/dD3Cu/hId0r9q+P+R7pDuo5x6mtVgZ3VLdET0LL67uw+O6D7JsZdZDnquEeNHzaMVGm+l6JOMjVeEAWd1SbRdtKQC48VQ0fd0ziX0rohJzOpH0dqCzRfn9kNhPStqMlHXRFMFmm9K51ZUv7xkCj8iWi5aJVoj2iDaLHpJX+vC59q06cyN96DoY9HWju//U3Rc9LPoN9EZfe26fozDImwS7Red7/AX9kvml2zW6RxS531e99km7DM84gLjDf1LTmnG36JXMpzvqx0WGnHfvF7JYsyMeNrwln6UtG3MTdE7Gc3xXdFMwvzivnizyfTfNOTKA6KDidfBPnJ+dIhj+zDxOuhB3RdgxMtN/yaGtk37Vk/sPS42vkmYx8VMTy2K5EnRicRzpdWOxr868dz2hM4ZnB1BjiY08axoo4Nxb9SxtB33V06P4KDnUIcTmnlFtMVwvFt0DG3He5gVbh6r5AMJTY2rzZ1jXkFO6DZTVroHWOXmxb4m7RraF6IVYxjXCt1Wytj20c48eT+x0fH2/80jHE+s/XvimD6gjXmzJ7HhN7Tpy4Y4hmVa80biWPbQvjLY3aR/n3q66X/1N8g/9Z7UGqc7bH83bSuLHaLbHYwQn9Db1vSfImvLcn3PyQ7bu61jhQJ5O3HlOVdXRV82/Vu8Xmj6t4ndp1qlr03p71zpuI0ZHSMUTPzS3uONndf04xoq4Lkm7duHUeusjgkqIn5sHnNgvmNN97u+IXPiKjU+TTdtYLxp3fYkbYCnRF+P0XxxW2vY7XAvz6s5ZkZguljzqG4DYEEeF+1q0p8/me/ew11aE+6BuyvaLVbi46Hxe9z4uOhafS1emH5Ifyde94vxcvFxxz+a/uOP0XjH9TVYwIDkA5YN+YADinzANMgHHKHIB1z4SEc+4JhEPuC/kA9obETyAUnHIh9wjJAP6FjkA2JA8gFHBPmAI4R8wPkhH9AY8gHJB3QB+YDkA7qAfEDyAV1APiD5gC4gHxDMIR8QXBxByAcE83Mo8gHBfJVMPiCYQz4gmEM+IJhDPiCYQz4gmEM+IJhDPiCYQz4gmEM+IJhDPiCYQz4guIB8QHAB+YDgAvIBxwR3V7RbrJAPCFDkEbDX67EXwPQyBAAGBAwIgAEBAwJgQKiDOwIMAEbj62LpHZfeAAAAAElFTkSuQmCC", + "caps/butt" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAABESURBVHicY2AYBbQB/xFgcAtidfyo4KjgqCDxgvzAPPVhiAhiFAKjghQJDsIoxhAchFlmVHBUcCgKYhYCg1JwFFADAAD0Rf8ADuwmmAAAAABJRU5ErkJggg==", + "caps/round" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/9QXTYZVkUx7AAACX0lEQVR4nO2aTVPCMBCGYz/upsod1N6twL0VvFss//+vaJO0gHYR0ocZRvOenFGf2d1389EkSgUFBQUFnaDF2+ZBn6VjtPhtdh7sONALdwS49MLJwFc/nASMN768YWBce/MGgWN4g8ADXpY36/lc9O4U7fuRr59HsVqle7jVaNpXAfv+yxoAp1TV8SYlwusTzscXr1Wf8BOCU+oF5nUBTph8+wAzihe7hEuI1wX4SPFcBScUT0Vwwm6Wucd4CeuwUgXriFIzOMCUDtDOW1yANmPOYpfxOwcs2EHiuhq0JKYtieiMTdNMQeCMnWdsCcmMTRfegcAC7mrrCdg0xhOyhDFdwpQuYQR3oTE5A3nGZNITYzLpiaJnhkQ0WX/TicBUHCdjgIO/8QRGYtd4AguxazyBlbjEjwDeksBabMOLA3+X+bd25A1PXtcCbH8oQWB8EeDwkvdXgUn3w3UDr7qG1w/Ehx4PPH22Gfyjn8KBtb7AEoAuUu2qN7z58gQWGl6XbzS8c8D3NvJ2zlPyhtNTZnaYgkB+016LNnuqEm32VNuI6KcZ/vFo+gZ1hf4AtwdV5Fgp6CLixyzGFbQT6aMqe3BD5hzROdtjdtJn04ngIbE7uAd7Gz9od1cBINDmPOWANmf8aJwM0d6ZgRcq7lYPv1EBpwg7/Ehfajrp7rb6AyO6ELOSAroqgsSKJvZ39Bhx2W+nmVcOe+8cdF4iwN1LDJ01yLhO9E7ZlngtstT6gNms5iMjPSSeKZyIxyhkvfB89SV/DXo/1JKtWfghZWCLRB/jmcTXW/K5YFBQUNB/0ieGqc/wijSb8gAAAABJRU5ErkJggg==", + "caps/square" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAABDSURBVHicY2AYBVQG/zHAIBXE6vhRwVHBUUGSBfmBeerDEBHEKARGBSkSHIRRjCGIDkYFRwVHBUkTxACDU3AUUBEAAI2qjn9HsJvyAAAAAElFTkSuQmCC", + "joins/bevel" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAKZJREFUeJzt1bENgDAMRFGLjkEYCdEwRJZhH0YjEpIt5Ng+WrhrecUnSESE47jvb1qH83BG4YLCA4RBoodBoodBoodBooM9cfMvOFhP3CHYExsEe+KJOCZmY2IyJiZjYjJNjG+Be5pYQU2soCYW0E6xgHaKBbRTLKCdYgHtQwf30aqPdxQ2FJ4oFMLfQhmPEIQ3DRghIeEHYPIjJXwF5TlCQkLCv8ALIsLdoSRods4AAAAASUVORK5CYII=", + "joins/miter" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAABCSURBVHic7dMxDgAgCEPR3v/SOjmgbCRaw+/4piYUiXTN2OOKaXkQNMI11h/weC6whNcOV0BFA3thHK0xpuVB8A1OgtrNT//QgYEAAAAASUVORK5CYII=", + "joins/round" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/9hm4DvZDQAAAR5JREFUeJzt1c0NAUEUwPHHxsFhOSlhS9irKMHBIDgoQQma2D6UoAkluGiCN8Qk+zH8JRLJeu+4+WXe1+yuiIWFRftjeClcQ9TcuJHV4aCZ1WASOa8GzzFXgdHEVRg/sAy7cVeGuX+yur4cc2h5fXzrJFU3B04yhQfgfOY1cPfM5EDf84I4OTm3JS6BLfsSlyizlrhDUEtEmaWAPevN2SCY0hJzWmIGS9SmWYkC9+ebniCY0l76bo6cTmfGYEabHsGm9UqwBeoY98gldDpdOp0OvRIpHWMfvoHSC/OOfNyfkbsphVsGs7CYb8FRuN9v4Cms+nvwWIGRH1LxSygMOoPtg9IcBiF80AgzaNBgC+CLD6nBj6CUw6BBgwb/Bd4AoL3meztL4EcAAAAASUVORK5CYII=", + "rotate" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/4BN2acpkSCoAAACoElEQVR4nO2Zz07DMAyHyzruFLZ7LHgA/t6H2O5MsPd/FbpuSdO0ie3kpwlEfbX26XPitKlXVXPMMcccc8RigQYSmLdowEACAxcNGEhgYCuIBRIYeBSEAgkM7ASRQAIDT4JAIIGBZ0EckMBAKwgDEhjoBFFAAgN7QRCQwEBPEAMkMNAXhAAJDBwIIoAEBg4FAUACAwPBciCFwPqlDZygjdX2kEcNBQex0zNjgk70Hil4snxECnbxBRXsJLGCbaylZcsE21gJiWJgs8aWLCfKFZsPtGLziVZcwRVlRSsUG1HvjBS3u0Mb39sJ4G2Woks8f4+IJkfRS9UPQe4uR3GQq9/LVzHIvg6SmwzFMPvmJ3N6cZQeEDOOyzjtVy3bFu46t9fWzF04/b2W1cxdia+1NbOX9r5oYc3cZ4WnqH67cPmNVnE63ysKF5H9eHSrKFxE9vN2qV1E7gO8VnYiPyJwNd8IgdwQw9UsexFU7JjF1SzdFXYQ5A60+AbKjKqeLNDoFKNZt4gbMTA97nOLKN5mbiBpF1F6+CpuZGpbX3hVtL+JJ6/UfcOMnd2uKIDJwbjbFc2nUHJ0r2/EKv3ngt1m6fOmi9TfH/aBs9EAU2EPn6Kz02H7RtHZ6ViigfbVpzkqlwXaztacvcsC3VH5R0B7mFWTl78N3M/AGaiP39/YFojilT9thGMn8XeBdDJmwIpyQaGiQlCkqBEUKaoEBYo6QYGiUpBV1AqyimpBRlEvyChmCCYVcwSTilmCCcU8wYRipmBUMVcwqpgtGFHMF4woFghOKpYITioWCU4olglOKBYKjhRLBUeKxYKBYrlgoGgAQF8RIThQNBBgr4gR9BQNCGgVUYJO0cCAJ0Wc4FnRAIFHRaRgp2igwIqwgq2iSSR/AFEvvdtaHTqdAAAAAElFTkSuQmCC", + "reload" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+mgFlSmU7P1AAAC9ElEQVR4nO2ZzZaiMBCFOafbBwiM+1HovWi753TrXofm/V+lQYSkqu6NwdUsrJWgn7cqP5VKkmXETt1hv3X5tjz8NOw3xM6HjZstPy7Bz3snbQH+vXHGyp8k9P2fRQfxzxRWu0zodntMZ3sL6VX/fEnz2dJ1/7hWcBtjA8/fhsdCst9RtqcnT+vbk3Qa9JG0ovHCzgk4GvBolReW8COnZ8fvwiH82OnJ8drCCU4P9jkLB/AqSbh3vJmEA7jmv5dWzp8WtZa2ubWShQH8jLCLCJfH7nTu2j1vSCrsU8f58ADWwnLmn4FfHn5TbwuVsVaYHr+8KlbnCNIZaHDlhiXat2++IvHOcYNGBz5ViIUjwTbXPVkYA2EPr8VcRAFnqGVGWCaBD8aCCa+95sIYFm0dEV6hmMOGiAmjBhMh6xUkMNhVIuQdZdEAlSHnzRJhJ0MhgysjSV2+5V5/AdaJDuBe46Qu2ot7DYWdeM07ucbw1X9m86k3nEHD/4yMEAjn4Wve1gxOChnHXARwzlnc2pWHo/UhqO3ysokAL3vZy172sv/R0FY9ms79ccQHW0i4+TUvZ0sYtaAMydniSS0oQ4rF8DWEERuBw0LwD4Z5zGHl9RfDaTXVDsK8cBb1YgNhLhyWfH1sSLhJ8noNYV6cCK8rBEcKQVHYXxAcqYquKjgrzNmV3o4YOHVjtQNwbGMVCt+6RMOR0lcI36JLby+5VaggnLYFHgeSgVnUMl+N0VkYO66OYXcMzsHRrNob3WMDMKD1YcV93iHY0PqIZpp3EJZn0u+tzpJTm2JYHCyZNWXONAwej7ROXQuWo7kzOUzNp7gnYD+KnhBuLBw5FZcW5Nbp1TrttFZOnOndhWywjYUjfxJOPfoUKW4WxvcX2uRKNAtnSefMcrp64RTHVZrZeOHHx9R6+ay9cPboyNdssa9OtGCUNvlJ36NErkHsZY25waE0YK3h7k66cspQ6rBHx9xM0lp4Sycu+A7JspP6cLW4Ga4WO6r6C9LVFP30/VNlAAAAAElFTkSuQmCC", + "cross" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/8ky3+Rv8AAABVtJREFUeJyt289x22gMxmGNdNLs0F1oz7nw4Nk6mN0Z70EF+JAS1IT6UAlugunAtxQRSdYfit+LFz+slkcM/A3xxJZIAFks/rfrj0ryXyL250fhgJ8ieX/gP78a2uTl8M4P6ETyenjjB/QieTN8/8AHjCJ5P4i6gms1tMnLYwwjdCJ5fYxhhF4kb44xjDCK5CMBRjgRzJOX5xhE6ETy+hyDCL1I3pxjEGEUyWcCiPBF8Ji8vMQQQieS15cYQuhF8uYSQwijSL4QIIQrwTR5eYsBhE4kr28xgNCL5HsMIIwi+R7LEe4E9+RpLEXoRPI0liL0InkaSxFGkTyNZQjTcq/Jj7EEoRPJj7EEoRfJj7EEYS+SHwgShOXQJq9mMYuwFsndLGYRNiK5n8Uswl4kzwgswpzglDwnsAhzglPySxMzCHOCU3J7qEGYEwzDv+IOYoSWYPixWLWnhgjt3Q7Hu/3kCC3B38foK0dQBIsCgiRYFBA0QQFBExQQNAFHCAg4QkSAESICjBARUISQgCLEBBAhJoAIMQFDMAQMwREgBEeAEBwBQbAEBMETAARPABA8QY6QEOQIGUGKkBGkCBlBhiAI5n8sHoF8hVsE9VwwvyyCvT2AAAg8AnuKMQiEwCIQAoeACBwCfZALERiBQWAEMQIkiBH4s2yAQAlCBEoQIWCCCKHyOC8ROEGAwAk0QoFAI5TeaBRChUAiVAgkQoVAIpQIFEJz+QZDi9BcvsUBEHyTJUfI2jwpQtZoShGyVleKkDXbMoS83Zcg5A3HBCFveSYIedPVI5C2r0UgjWeLQFrfFoE03x0Ca/8bBDaAMAhsBGIQ2BAmRqBjoBCBDqJCBDoKCxHoMC5C4OPAAIEPJAMEPhINEPhQViMUJqIaoTCT1QiFqbBGKMylJUKFQCJUCCRChaBt+Q/zfsF/uINt6QBh8E/l5+W/QuUA+XuwKxwgfxO3hQPk30IBIfhr5AcEnwc7fEDwibTFBwSfiRgh/FSmB4TfCzt4QPjNtIUHhN+NEMF8O7MDzPPBDh1gnlC26ADzjIQQ7FMaOcA+J+7AAfZJdQsOsM/KACF5Ws8PSN4XdukByRvL9jkCgJC+tT1JkCOkb64ZQvrunCCAt/cnCTIE0MHwCKCHYhFQF+dJAo+AOlkOQfTS2pBBUN08cVMlgoOIxQiqoynuKkaQPdUCgu7qFhB0X7mAoDvbBYSgt44Rou4+RojmCxghmnBghHDGAhHiKQ9EiOdMECGedEEEM2tDCG7ahxDcvBEhuIknQrAzV4Dgp74Awc+dAYKffAOEZPaeImTT/xQh2z9IEbINiBQh3cFoEx72B/ItkPYWHzYY8j0UkfFhz593jcQ9TrsyYBfHIpBtIItA9pEsAtmIsghoJ8sgsK0wg8D20gwC24wzCHA3L0Sg24EhAt1PDBHohmSIgHc0AwS+JRog8D3VAIFvygYIhV1diVDZFpYIlX1liVDZL5AI7YaDaaK3CO9izcQ00VuEg9jyMHOEBuFU7hzBzREahFO5cwQ7R5gjnMvdixhFOJe7ETGI8FXuWsQgwle5SxGDCJdy9yLGEC7lbkQMIVzLXYtYdD0gXMtdilh4TRFu5e5FLLp6Ve5GxKJrMoG6l7sWseia/J+PNxEEA7VRlTuKWHTdEQ4iCGaKN4RpuZ2IRdet3jcRRDPFa73vIohmitd6DyKIxqqdKrfDBLd630QQjlVHVe6ICa71HkQQTpY7VW6HCS71zstdcYKveptyPwuT5V6V+1oYrneq3JfCcH2lyl3tC8P1UZX7WRiu96rc18J+QafKfRGx6FrVdgnE9evZA749e8D9+g2w4Fwzf7ERbQAAAABJRU5ErkJggg==", + "checkmark" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/95wQrXL2gAAA6VJREFUeJzt27uN3DAQBmBhN3Igd7ElMDDgNnh7gDdgARdcCWpi+3AJakJwBc6dOLek067ImeFoHoltcLLDSf+Jn0WJGtBd16pVq1atWrVq1eo/ql/O8883Z0B/dQaEOPgCpphc559jfHUF9DG+uAJCjD6EaQ5IjvNnAh9CvwS8jPaAhSDG7/aAaQ14M5+/EsT4zRzQfwTE0RoQtoB3a8C0BVin9EYQo3VKPwjMCOEZkGwB0zPAdjc/CaxTeicwTumQBSRLwJQFWBAyAhtCTmCa0qEIMEzpexGgn9KnWJY64JM34OINuDsDIIH6kQAJ1A8lSKB+LEKCUXl+I2gEfyNB0gZAgkF5PiRQvxQggfq11AgaQSPoGkHXCLpG0P0rBFx3TkLAduckBGx3TkLwhVkwiQh+Mks2EcGdWTFJCE7cmk1CsFzlWDlfRLBcZe0zWDQRlqusfQZDAuq49Sprn8GQgLrS9Sor7T1EQB12qUYvt1hZ5IXeq4NbbrFjAq69d5YQ9MzoPksIAhMuIpiY4SkIyHQNAXmXiwj2YQ7M7xiCfZiJ+R1DsA8TTTQRQXazIwQRQT7fBwtBPt8hgoSgmO8AARFQj+5ivgMESEA+N8tHXokACcgnd/nIKxEgAfnuKIdZIOgJAIKIoAfH5AgiggAOyhFEBBM4KEMQEaCADEFEgIaQIYgIEGKGICIoO90FgoyAQZAR4JE+EaBObQmD/tADAV5abRGFhvpawaku4yD2hoD+eSoEVQQpQRVBSkAg3HQEGOGqIyAQRhUBgfCuIujwSvCmI8Br0auOAK+G56M1BHgxOl+vioBA0BEQCIhg4AMQwm/w89HXNkKAdfi1DRFgpaMAiKAkIBB0BIcIgoYDj3BIcIRwSHCAIOm5sAiinguHkCQBHMIgCWAQZG0nBkHYdpp8BMRaR0dAPEZ1BMSDXElQR0jSgBrCIA2oIMibjxUERfORRkjyABphkAeQCJr+K4mg6r9SCEkTQCEMmgC01tG2oNGCT92Chgs+dQsaLfi0LWiEoO3C15b+8oIISRsAEQZtAEDQ71cCCIYdU+UbzrBdqXzDGTZMlS2ZUR9QvOZNWyBzBNMmzBzBtA00b82NloAMwbgL9OIjyBGMO2FPToIdwbwR9uIj2BHMm4FPToIHgn0v8IZg3428IZi3Aj8QRnvAiuDa3B+ifS/yWr2P4GOtM3oC5rWO8/83BB/BguAiWBBGX0D3w3l+99Ub0KpVq1b6+gOHPSRKOIZnzgAAAABJRU5ErkJggg==", + "pos" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/9cTVpQaovGbAAABlklEQVR4nO2ZQY6DMAxFKzU9gKv2AKgXGEViH25QNPe/ywwwUCAuE/ttushf0jy5+gTbsk+nI4V0+POxupufPTfXLzccRR7+wCLu0Bf51dMJdwPstCzIqOSC4wS7LBvsGuSy7C+wL3Q/w3c7G2RRMsPdCza/rdkul2VRVjJatg5sDn2RjWwXvNvCJsuC7JQMcNzDBsu2dhktywJbQvc5bL/gA2WGKlzhCn8C3JbA3zp7bkrgN9ksZgc1WM9moSmDr0mBO+WgBmvlo1UPqs8yz8Y8XwhnnsU3B9VnO89CY4F3nk0ltRTeetaKDV57NlfFcnjl2VwVy+GXZ6Gxw4tnSwNigGfPWvHAk2d5D1Gm0TOlhyjTY+WWPXTat2sW3Qh8Z38bGcZeFbok7HqyDwN9kiwZoDTEEiBLvSjps3KDCh0rsay4o7aCNTSolcqlwcWqcIUr/BFwL5nKhyxovIMGS2ikxYZpaIzHBohodImGpmxciwbFbESNhuNsLI8WAmgVwZYgaP3CFj9o5YSWXWzNhhZ8/60WfwDkFH1iPYe5kwAAAABJRU5ErkJggg==", + "trsp3" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAABBSURBVHic7dOxDQAwCANB77900pAIiwWM9F+hEwUN0pbOKBTfsf9oEAzCDqotEExBgxpAMAU7SBEvA4KGVibu6AIz1Bo76RZnXwAAAABJRU5ErkJggg==", + "prsS" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAMAAAC8EZcfAAAAYFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6T+iNAAAAIHRSTlMA/wPvc+T3aI9c0Nk1HLS5DEokl1AtFMVEsIQ9qH2/n7HM4CkAAAJPSURBVHic7dpplqsgEAVggyjO82yM+99lm+H1M2mixoDw434LyLmnICVSGgYAAAAAAAAAAAAAAAAAAMCxqjJ1qTNGtW+Zp5Ppt12RqM40SbJ+inWuLfv0l31OleUqU9aNF9/kxHriHRwxDFyat95qrpkoPCJYFRQ0j3zeOq4yG4nBSNgwp/V2BfuPyUiWpczZWTK5CUmZ0jz2xQT75YpIlk3JLpbgZA928E20JHC7r/fZCqvaFa3qmRNLKtqL8eOqHRbtYXPHJlnRRYdGu/PJprLltdy9tmC515CAjZ6qaHfvS5i5jrq6zRTcwtHokye7VPFruFKjcDfzc03IWr3CXdHfdLRWnYXrvsbEvagO8o49vaQQpqAHb9YboeJet4Iaeuc75Ybog6ZgFyPQr7fM+VOHaVWHWGJe20yjZw+8se99uh91OBpw/XuUVFTPv7M5exgHuYYd23o+zfSObhnrP+fBoNOqM56552kaa/OfGXgBJ0nq6FHIpVdPLU6wK9cLyl9QvOV8j5CDui3ZbQh4C9kPair5yRUXKdn56C65ZYWfhW5+5CNx3z1rkg7xMettfjHXKY8o5bsuvbmUzdDK3JWWkMFYWHSyFlzEPfqDlNuwSFy+G1JOKQXW0pQyECNTLS9iUsoch4m405YxDHtWNXTcP0r5tsNsdd2Ye2YXdP2nRap6ln/y/zF5d9PyhSkdN8WMDxlov43ZsHxx0T015XuRlAV3UGq3yj6q4CJZ4w759bsU27b8SI/PUgAAAAAAAAAAAAAAAAAAAAAA1PsBWvwp5tsQqmEAAAAASUVORK5CYII=", + "prsO" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAMAAAC8EZcfAAAAYFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6T+iNAAAAIHRSTlMA4ewH1Ro9uxAk9MstR/ujXHgzxE5qsXGAjpWHnKpVYyj9Yl4AAANQSURBVHic7ZrZmqIwEEZZtGVAUVzbkeX937KD0N1CKklViHMz/3mC81VqSyCKAAAAAAAAAAAAAAAAAAAAAAAAgCdpmmXrnj8DW8Wx56Nn13NWtG17UHRdd1HcFFVVfSoej8dd8VdR1/Ve0TTNtWfTc1IUPauBeGR12le7lGU36H0Lbp2CHUOwmQieCMGkJ653dr3syUTQHcFRsOJH0CioKCyKo59U8PIrWA2CDzKCG5Zgnu/XDj/pEV+0CI6CtfiIn4J5TAYxTWcBfI3gVhNsbUWiC14FEVRcaMGUEjREsB0NySKhj9hexRPB/Eb6SQStbUYX5BfJIFjOY/jityQHjUUiFsx3ut9CwZsmKCqSeCpYJmujIFEkdA4aq/hOFslMsLALlhvNb264OAd928xo2GmC5BGHadTSCPaCcWYI4PIITkddo/XBghBM5kdclp9hBfUIGnOQ6oNaDqo6mYdQIiicJPIq7rnQguxJImjU0iIZBFecI/YpkmmbaTyrWHHkHrG+LJx/Z7GxSER9kIpgeffPQeHC6peD8zMOVsWuCDLbjGIdMIJvKJKybANGMOg++C34sIziYJPEY6P+MbyGmCTGa2dtujQxJ4miCLEsdNo+yKpiVpHE3usWvQ8aBd0bNR3BJLDggqcPOoIlJRhsoxYJciIoycGW0QdF61YyCeE0B1NbBC1V3PJHnfhWR1axNAddF3f/lwV7H2TlIGcWB2jUD+qIPfdBwUbNr+JD4EnCvNXxBbfuNmNZWN+/zdB9mjhiqyD3XmzPQbIP7m1F7NMHrQurR5EcuC8L3AdM6714JshYFvIsclexexYbi2RxBJsFF3f60sR8WbDl4Ouo+6DvxdKN2pWDjbawMqu4mL/NSBq1dR9k9UHD69aL4TniHLFokgQddaeIJRju+U2yUecvGagbciPoevpYNknu0WJB4RFLNuq8XGWRbmg8Yr8vTUtyMNlGkW64uA9KXrfsgm00Z3GROB+PJBf3TvMjviZ6VDHzdcsVwUSP32D4vgiKnj7iI+ln+KAtEgzyMbExfdCmfwn410Wycfy1oP1UIWrUkhdW6ojj+sOq9+MoatT6uuXzusX8LQUAAAAAAAAAAAAAAAAAAAAAAAAAAID/gS9w473uUmHmvgAAAABJRU5ErkJggg==", + "zoomIn" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwBAMAAABdmfltAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+UUmE52sBY+AAAE+UlEQVR4nNWb21bqMBCGu6w8AAXvkY33Knof3HgPW3z/V9lARfPPIZmcWMu56+nr9M80mTaTrrNY/7ndLpf3w3K53X4+mi6xUA9v91PPhtV7DXZ/WE6ZLYvR/eGeY89ul6Ff32TsyVYf+dwXxd0vp/9mYvt/IezJHrLk6AMyfMuRQbZwc8g2bjrZyk0l27mJ5Gg8+PZg576kcKdTczxPgu8Ft2Fn4/abNO50OrfJnCTwaCaZEwUezSBznyjwaENcjAwhThYV4zbL4aO5iBDJEXGxSGRktdxowfbLa7nRgu33rF61ff9YP/br18NWvfefdIchkTimGckuyw6vmHovMlp1WXRYTCDkdEN1WXJYG+PFzEBxWYrhQc1KXgWyEsu3wpmBnnYi+OHEM/mJ4R5cGA/mtvNiI4NAlq5gTRfPzXgLCs3HY80wLLA+Vog41nSWfIHnH46ds08UeDQm8x27Nz3DmCzQfpZpQZUwjuj8raLNR5Sw5iBcDKIFVSIhHyORQbQgStgd5i47OEqUSHCYuQxaECVSHGYugxZEiSSHmcvOO4T9RJrDzGU/4DAYxc4vZHvtciKxUwmKoZKeyOoBzy5HpWOqYyixPCSGwCoAJZabLgieyCLjkyhNFwSja99aosRKchAGoxZO3KsEcRiMWlx82xuUiIBRi0t3ARJrmV0EDE89jPt6UZ9EMGoxygltp2aMETBGluNPwUZZIxgb6g/ftcgF33D3oEHVHjMGBpHPoQXq6N8RMXDHMHArVeI4GBQ9PTgEhf5JFQVDDLiOqO7yweDg4rjjiT5CJhjes1mH2gzqZXEwtN6prfxoCwyjcTAF+TealYB9TQcSxosSsB8Fx0CGMHYlYAiLHYIDKVAcTFz07xP6lxEHg6gOlAnlVnFwh61VEbwB8JO3pXdBJvDeQ83IVhEYffTBizLwDYA39cB+gM0B7K4BnhrNBN6Vgf1Xbw5RXRE8XAf8WAb2B6ffCPZPKgTDNZ3lpCxwRSn8a35j410FXPXNa9YJXQXsOt0EELUrjSB7b2tRD9xwlH7ytirmFTNymyIwPnyz3O22HhjTWHgPa+bHjTL6Hb1PAZh+G7T5auqwLat9553CYE+2s8G+h3cd+6DMB9NPXPitUOvrf9GRD0qXD2YcCL9af1hOTw6BXOmf0PgKb9ieLLDv35zdqtJ/t/HBQZxFLhiCa2wqaM46/zbdeRcEYJ2/sV+CCn9ok8Eg8eUFhqeo8cf7TtpZ4x/9xTmcrqgwq+C+9qLw5fMgPwEAz1E+c/NDsMywBMHy/IptTigIlmeEqMiGSjBi+vUb5Y5Gwyf2G+lZPWIy9MuXkkwfl83yOu8QmfQsmpfGJtrjsZKZdOx4S6bSAxPpRZP/oan/rqRcgThMQyq7wIKWV9D3lpaE5Naw8NeWaBEq5PONVt3wwZiW3WTWCTn+TPSUrMomqQNjRV45tViSgBN6Uk71mKgfK6RLr3eT+0Ve+pdcoefEE4VixRBZqCnUgl8or0yrgtRiXyoITanb1AdLsSLUXmmqv6xy0e3qnbkr1saGRnelTNhWzRvqXdTCZkP9cTgdaVWK3a54XKq8tZkLc9sV6LdbUtBsEUS7ZRsZkWHNqJOXxpgX3bRazNNu+VG7BVPNlni1W5TWbhldu4V/7ZYqds0WV3btloO2W8DaKUtuy7Ejuski4bOt/WXNa9Ml/wE5YCpbayJoEAAAAABJRU5ErkJggg==", + "zoomOut" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwBAMAAABdmfltAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/90TkEkQ3c9eAAAEwElEQVR4nNVbSVbjMBDVw+kD2IG9CbAPBPaCDvu4O7n/VRrHhKgGOTVIr1/+ztNX6VdpsFQKQYLmsP1Yrdp2tXrcHtaiTySs+4/7NkH3+FmCu9kD1m9uNzVLW4D67YOnHfH4186bM/dktJG2+TNHO+LJJEczI8OPHAZmCa+FuXmX8LbtrZJZyqtllulgUONiPKR4kvO+anjb9reUdzHbLii6KONtlLxfzDKZVQJPEMmsFHiCQGa9ECMEYhiEGHFRjIWNt23jBSHETRnjQtM2eW7CrP9snpsw67+X7Ffbz8Nm3WwO+2227Ae9wWAi8TXNUJvMG0wHzcwgmzWZN5gbMflxNmsyZ3CXcfYrZ0TGZM7gLjsreePe5k1mGl23y/GG8IthjuybtNHN8bLMt+x7Sl6WmfuCuu5iJ0s7AMZ91HWCYYFEHeM+4jrJTIR2hpG8MygFnkBkviNl4zdmupQU2DNEixuDEEeDsBjYIPw8ynhplKJQxkoo5mMoMpAWKCZknvs2GdkUwdPBbDAxGcQFUkJjMDEZaIGUUBlMTI7JIxSNKoNJYKQBB4ON7fzmkP28yddFBKTkOvNAOI1OgHx/Nuw5q5EQ0EfngIMaKV03ArrvR2RYE7XrqGknLaHEBiWwFpG9a1ACa3GybXArgbQ4ee+eK00JUOuOq0a0EUM/7eg9feuYACMr0lqQUVYK4KgHequ3Et9Q84BDTcE2AnjqGFpAHavEAcbWkYYWZQOpOAgKYxSPADEQA1I92omBgX1AnbHZd0jSZYDR1tl5offGeEtFd/iOEqUFLT3EqaYdGqF7DzGIgjXUPHqIQVjs8KUDyMSU2NGgAxI1AmVc0QbDoAfErmiD8daDIDH38hOGhGqJrlyANqbEvY/4BhC/1yG+BcTRR7wQEbdCZInT4Nv5iNOm11058dpHnHYW10fcAgInMfgmSF4yEReUohrxdUfFNTbptNssSPwfOno38ZBc9T5iOJhWI35OrgrOK5aoGBdg5avN3cA01kectrWK82MwDy83o9/hchwAPx1rPA93AP8bpL4s9p83xteArs1ILbwL5IfSDvyLC34oS/399wE5M9qJCQ8oqdQKy1hzsNhUaE1oasL0jgnUvqGI94CiU/8LxOmtxCC4JlctaFkGgHpHWokyq7HfgjIrtGrAtWKuFiVWvO+4myXW6E/GccvgSvDL8VD4AvsgPwEA6uHfuTkzPHu1gEqc24J7T4jfEcIbhe79vOR7uLkVswwZwBqnTnrJPhEB2pVKiTY9fbu8MXmERHLtS0MXDfCZZycddryerfSZjXTX5v/c1n8giRv2/AocUjjVJHIcrMHoQ9xucUqINYeFNtvhQskZ4KwbOhjjBCRjnlCkdcKvmDKbuA6MJHlZcrE4AWlamiF7jNWPJGzp8934fpGm/qkz9CL7IpOsqMwpzI09THqlLgsyF/tsfqUibzM/WLIprPJM03xj5XNYpbmxc6N7Jk1Yls0717tkE5sF+cfz05Faqdj1kserpbvXS9Cvd6Sg2iGIesc26h000R+NER+6qXWYp97xo3oHpqod8VIcSlP/FcrU0PPWO/hX76hiqHa4MtQ7DlrvAGuO2k87UVc5JHzEJj3WvBF98g8n+QTj6NOXVAAAAABJRU5ErkJggg==", + "intro" : "data:image/svg+xml;base64," + btoa('') +}; +var FNTS = { + "subsetNames": [ + "Latin-1", + "Latin Ext. A", + "Greek", + "Cyrillic", + "Hebrew", + "Arabic", + "Hangul", + "Chi-Jap-Kor", + "Tibetan", + "Devanagari", + "Thai", + "Khmer", + "Vietnamese" + ], + "cats": [ + "Blackletter", + "Calligraphic", + "Comic", + "Dingbat", + "Display", + "Grunge", + "Handdrawn", + "Monospaced", + "Novelty", + "Pixel", + "Programming", + "Retro", + "Sans Serif", + "Script", + "Serif", + "Slab Serif", + "Stencil", + "Typewriter" + ], + "list": [ + "!Paul Maul,Regular,a,1,6,", + ",Bold,,,,", + "1942 report,1942 report,a,0,17,", + "20 db,Regular,a,8,4,", + "2Dumb,,a,1,8,", + "3Dumb,,3dumb,,,", + "ABeeZee,Italic,,,12,", + ",Regular,,,,", + "Aaargh,Normal,AaarghNormal,0,,", + "Aganè,Regular,Aan55,1,,", + "Abel,,,,,", + "Abhaya Libre,Bold,,,14,", + ",ExtraBold,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Abril Fatface,Regular,,3,4,", + "Acknowledgement,Medium,a,1,,", + "Aclonica,Regular,,3,12,a", + "Acme,,,1,,", + "Action Man,,a,,2,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Action Man Extended,Regular,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Action Man Shaded,Regular,a,,,", + ",Italic,,,,", + "Actor,Regular,,,12,a", + "Adamina,,,,14,a", + "Adhesive Nr. Seven,,AdhesiveNrSevenBanners,0,3,", + "Advent Pro,Bold,,7,12,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Afta sans,Regular,a,1,,", + ",Italic,,,,", + "Afta serif,Regular,a,,14,", + ",Italic,,,,", + "After Shok,Regular,a,0,4,", + "Aganè,Light,Agan45,1,12,", + ",Bold,Agan65,,,", + ",Extra Bold,Agan75,,,", + "Aganè S,Regular,AganS55,,,", + ",Bold,AganS65,,,", + ",Extra Bold,AganS75,,,", + "Aguafina Script,Regular,,,13,", + "Aileron,Black,,3,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + ",UltraLight,,,,", + ",UltraLight Italic,,,,", + "Air America,Regular,,1,4,", + "Airstream,,a,,11,", + "Akronim,,,,4,a", + "Aladin,,,,6,a", + "Aldrich,,,,12,a", + "Alef,Bold,,19,,", + ",Regular,,,,", + "Alegreya,Black,,4111,14,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + "Alegreya SC,Black,,,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + "Alegreya Sans,Black,,,12,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Alegreya Sans SC,Black,,,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Aleo,Bold,,3,14,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + "Alex Brush,,,1,13,", + "Alfa Slab One,,,4099,4,a", + "Alice,,,9,14,", + "Alike,,,1,,a", + "Alike Angular,,,,,a", + "Allan,Bold,,,4,a", + ",Regular,,,,a", + "Allerta,,,,12,a", + "Allerta Stencil,,,,,a", + "Allura,,,3,6,a", + "Almendra,Bold,,1,4,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,3,,", + "Almendra Display,,,1,,", + "Almendra SC,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Alpha Echo,,a,,,", + "Amadeus,,,,,", + "Amarante,,,3,,a", + "Amaranth,Bold,,1,12,a", + ",Bold Italic,,,,", + ",Italic,,,,a", + ",Regular,,,,a", + "Amatic,Bold,,3,6,", + "Amatic SC,,,4123,,a", + ",Regular,,,,a", + "Amble,Bold,,3,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Condensed,,,,", + ",Light Condensed Italic,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + "Amerika,,a,13,4,", + "Amerika Alternates,,a,0,,", + "Amerika Sans,,a,1,,", + "Amethysta,,,,14,a", + "Amiko,Bold,,515,12,", + ",Regular,,,,", + ",SemiBold,,,,", + "Amiri,Bold,,35,14,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Amita,Bold,,515,13,", + ",Regular,,,,", + "Anagram,,a,1,11,", + "Anaheim,,,3,12,a", + "Andada,Bold,,4099,14,", + ",Bold Italic,,3,,", + ",Italic,,,,", + ",Regular,,,,", + "Andada SC,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Andika,,,4107,12,a", + "Andika New Basic,Bold,,4099,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Angkor,,,2048,4,a", + "Annie Use Your Telescope,,,3,6,a", + "Anonymous,,a,1,7,", + "Anonymous Pro,,a,15,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,a", + "Antic,,,1,12,a", + "Antic Didone,,,,14,", + "Antic Sans,,a,,,", + "Antic Slab,,a,,,", + ",,,,,a", + "Anton,,,4099,12,a", + "Antonio,Bold,,3,4,", + ",Light,,,,", + ",Regular,,,,", + "AnuDaw,,a,0,,", + ",Italic,AnuDawItalic,,,", + "AquilineTwo,Regular,a,1,,", + "Arapey,Italic,,,14,", + ",Regular,,,,", + "Arbutus,,a,3,4,", + ",,,,,a", + "Arbutus Slab,,,,15,", + "Archistico,Bold,,0,4,", + ",Normal,,,,", + "Architects Daughter,Regular,a,3,6,", + ",,,,,a", + "Archivo,Bold,,4099,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Black,ArchivoBlack-Regular,3,,a", + "Archivo Narrow,Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Arcon,Regular,,,,", + ",Rounded-Regular,,,,", + "Aref Ruqaa,Bold,,33,14,a", + ",Regular,,,,a", + "Arima Koshi,Black,,4099,12,", + ",Bold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",Semi Bold,,,,", + ",Thin,,,,", + "Arima Madurai,Black,,,,", + ",Bold,,,,", + ",ExtraBold,,,4,a", + ",ExtraLight,,,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",Semi Bold,,,,", + ",Thin,,,,", + "Arimo,Regular,a,4127,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,a", + "Arizonia,,,1,13,", + "ArmWrestler,Bold,,,4,", + "Armalite Rifle,Regular,a,,16,", + "Armata,,,3,12,", + "Arsenal,Bold,,4105,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Artifika,Medium,,1,14,", + ",Regular,,,,a", + "Arvo,,a,,15,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Arya,Bold,,515,12,a", + ",Regular,,,,a", + "Asap,Bold,,4099,,", + ",BoldItalic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",MediumItalic,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Symbol,,1,,", + "Asap Condensed,Bold,,4099,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Asar,Regular,,515,14,a", + "Asset,,,1,,", + "Assistant,Bold,,17,12,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Astloch,Bold,,1,4,a", + ",Regular,,,,a", + "Asul,Bold,,,12,a", + ",Regular,,,,a", + "Athiti,Bold,,5123,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Atma,Bold,,1,4,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Atomic Age,Regular,,3,,", + "Aubrey,,,1,,a", + "Audiowide,,,3,,a", + "Aurulent Sans,Bold,,1,12,", + ",BoldItalic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Aurulent Sans Mono,,,,,", + "Autour One,,,3,4,a", + "Average,,,1,14,a", + "Average Sans,,,3,12,a", + "Averia Gruesa Libre,,,1,4,a", + "Averia Libre,Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + "Averia Sans Libre,Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + "Averia Serif Libre,Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + "Azoft Sans,,a,4107,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "B612,Bold,,5,12,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "B612 Mono,Bold,,,7,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "BP Diet,UltraBlack,,4,4,", + ",UltraBlack Italic,,,,", + "BPdots,Regular,a,5,,", + ",Bold,,,,", + ",Light,,,,", + ",Condensed,BPdotsCondensed,,,", + ",CondensedDiamond,BPdotsCondensedDiamond,,,", + ",CondensedSquare,BPdotsCondensedSquare,,,", + ",Diamond,BPdotsDiamond,,,", + ",Diamond Bold,BPdotsDiamond-Bold,,,", + ",Diamond Light,BPdotsDiamond-Light,,,", + ",Minus,BPdotsMinus,,,", + ",Minus Bold,BPdotsMinus-Bold,,,", + ",Plus,BPdotsPlus,,,", + ",Plus Bold,BPdotsPlus-Bold,,,", + ",Squares,BPdotsSquares,,,", + ",Squares Bold,BPdotsSquares-Bold,,,", + ",Squares Light,BPdotsSquares-Light,,,", + ",Unicase,BPdotsUnicase,,,", + ",Unicase Bold,BPdotsUnicase-Bold,,,", + ",Unicase Light,BPdotsUnicase-Light,,,", + ",UnicaseDiamond,BPdotsUnicaseDiamond,,,", + ",UnicaseDiamond Bold,BPdotsUnicaseDiamond-Bold,,,", + ",UnicaseDiamond Light,BPdotsUnicaseDiamond-Light,,,", + ",UnicaseMinus,BPdotsUnicaseMinus,,,", + ",UnicaseMinus Bold,BPdotsUnicaseMinus-Bold,,,", + ",UnicasePlus,BPdotsUnicasePlus,,,", + ",UnicasePlus Bold,BPdotsUnicasePlus-Bold,,,", + ",UnicaseSquare,BPdotsUnicaseSquare,,,", + ",UnicaseSquare Bold,BPdotsUnicaseSquare-Bold,,,", + ",UnicaseSquare Light,BPdotsUnicaseSquare-Light,,,", + ",UnicaseVertical,BPdotsUnicaseVertical,,,", + ",UnicaseVertical Bold,BPdotsUnicaseVertical-Bold,,,", + ",Vertical,BPdotsVertical,,,", + ",Vertical Bold,BPdotsVertical-Bold,,,", + "BPmono,Regular,a,4,7,", + ",Bold,,,,", + ",Italic,,,,", + "BPreplay,Regular,a,,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "BPscript,Regular,a,,11,", + "Bad Script,,,9,6,a", + "Bahiana,,,3,4,a", + "Bai Jamjuree,Bold,,5123,12,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Baloo,Regular,a,4611,4,", + ",,,,,a", + ",Bhai,BalooBhai-Regular,4099,,a", + ",Bhaijaan,BalooBhaijaan-Regular,4131,,a", + ",Bhaina,BalooBhaina-Regular,4099,,a", + ",Chettan,BalooChettan-Regular,,,a", + ",Da,BalooDa-Regular,,,a", + ",Paaji,BalooPaaji-Regular,,,a", + ",Tamma,BalooTamma-Regular,,,a", + ",Tammudu,BalooTammudu-Regular,,,a", + ",Thambi,BalooThambi-Regular,,,a", + "Balthazar,Regular,,1,14,a", + "Bangers,,,4099,4,a", + "Banksia,,a,1,,", + ", Black,BanksiaBlack,,,", + ", Bold,BanksiaBold,,,", + "Barlow,Black,,4099,12,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Barlow Condensed,Black,,,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Barlow Semi Condensed,Black,,,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExLight,BarlowSemiCondensed-ExtraLight,,,a", + ",ExLight Italic,BarlowSemiCondensed-ExtraLightItalic,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Barrio,Regular,,3,4,a", + "Basic,,,,12,a", + "Baskervville,Italic,,,14,", + ",Regular,,,,", + "Battambang,Bold,,2048,4,a", + ",Regular,,,,a", + "Baumans,,,1,,a", + "Bayon,,,2048,,a", + "Bearpaw,,a,0,,", + "Bebas,,,,,", + "Bebas Kai,,a,3,12,", + "Bebas Neue,Thin,,11,,ex/bebas_neue/BebasNeue Thin.otf", + ",Bold,BebasNeueBold,,,ex/bebas_neue/BebasNeue Bold.otf", + ",Book,BebasNeueBook,,,ex/bebas_neue/BebasNeue Book.otf", + ",Light,BebasNeueLight,,,ex/bebas_neue/BebasNeue Light.otf", + ",Regular,BebasNeueRegular,,,ex/bebas_neue/BebasNeue Regular.otf", + "Belgrano,,,1,14,a", + "Bellefair,,,19,,", + "Belleza,,,1,12,a", + "Belligerent Madness,,a,0,6,", + "Bellota,Bold,,3,4,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + "BenchNine,Bold,,,12,a", + ",Light,,,,a", + ",Regular,,,,a", + "Benne,,,,14,", + "Bentham,,,,,a", + ",,BenthamRegular,,,", + "Berkshire Swash,,,,13,", + "Beth Ellen 2,,BethEllen2Regular,1,6,", + "Bevan,,a,3,4,", + ",,,4099,,a", + "Bigelow Rules,,,3,,", + "Bigshot One,,,1,,a", + "Bilbo,,,,6,a", + "Bilbo Swash Caps,,,,,a", + "BioRhyme,Bold,,3,15,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Regular,,,,", + "BioRhyme Expanded,Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Regular,,,,", + "Biryani,Black,,515,12,a", + ",Bold,,,,", + ",DemiBold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,a", + ",Heavy,,,,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",UltraLight,,,,", + "Bitstream Vera Sans,Bold,,1,,", + ",Bold Oblique,,,,", + ",Oblique,,,,", + ",Roman,,,,", + "Bitstream Vera Sans Mono,Bold,,,7,", + ",Bold Oblique,BitstreamVeraSansMono-BoldOb,,,", + ",Oblique,,,,", + ",Roman,,,,", + "Bitstream Vera Serif,Bold,,,15,", + ",Roman,,,,", + "Bitter,Bold,,11,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Black And White Picture,,,64,12,a", + "Black Han Sans,,,0,,a", + "Black Jack,,a,1,13,", + "Black Ops One,,,3,16,", + "Black Rose,,a,1,4,", + "Blackout,2 AM,,0,,", + ",Midnight,,,,", + "Blazium,Regular,a,3,8,", + "Blogger Sans,,a,11,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + "Blokletters Balpen,Balpen,Blokletters-Balpen,1,6,", + "Blokletters Potlood,Potlood,Blokletters-Potlood,,,", + "Blokletters Viltstift,Viltstift,Blokletters-Viltstift,,,", + "Bloody,Normal,a,0,8,", + "BodoniXT,Regular,a,1,14,", + "Bodonitown,,a,,15,", + "Boisu,Fill,,3,4,", + ",Full,,,,", + ",Stroke,,,,", + "Bokor,Regular,,2048,,a", + "Bombay Black Unicode,Bombay Black Unicode,Bombay-Black-Unicode,32,12,ex/Bombay Black Unicode.ttf", + "Bonbon,Regular,,1,6,a", + "BonvenoCF,Light,,3,12,", + "Boogaloo,Regular,,1,4,", + "Boston Traffic,,a,0,16,", + "Bowlby One,,a,1,4,", + ",,,,,a", + "Bowlby One SC,,,,,", + "Boycott,,a,0,,", + "Brawler,,a,1,14,", + ",,,,,a", + "Bree Serif,,,3,15,", + "Brizel,,a,,6,", + "Brushstroke Plain,Plain,Brushstroke-Plain,0,4,", + "Bubblegum Sans,Regular,,1,,a", + "Bubbler One,,a,,12,", + ",,,,,a", + "Buda,Light,,,4,a", + "Buenard,Bold,,3,14,a", + ",Regular,,,,a", + "Bungee,Hairline,,4099,12,", + ",Inline,,,,", + ",Outline,,,,", + ",Regular,,,,", + ",Shade,,,,", + "Bungee Hairline,Regular,,,4,a", + "Bungee Inline,,,,,a", + "Bungee Layers,Inline,,,12,", + ",Outline,,,,", + ",Regular,,,,", + ",Shade,,,,", + "Bungee Layers Rotated,Inline,,3,,", + ",Outline,,,,", + ",Regular,,,,", + ",Shade,,,,", + "Bungee Outline,Regular,,4099,4,a", + "Bungee Shade,,,,,a", + "Butcherman,,,3,,a", + "Butterfly Kids,,,1,6,a", + "CMU Bright,Oblique,,13,12,", + ",Roman,,,,", + ",SemiBold,,,,", + ",SemiBoldOblique,,,,", + "CMU Classical Serif,Italic,,,,", + "CMU Concrete,Bold,,,,", + ",BoldItalic,,,,", + ",Italic,,,,", + ",Roman,,,,", + "CMU Sans Serif,Medium,a,,,", + ",Bold,,,,", + ",BoldOblique,,,,", + "CMU Sans Serif Demi Condensed,DemiCondensed,CMUSansSerif-DemiCondensed,,,", + "CMU Sans Serif,Oblique,,,,", + "CMU Serif,Bold,,,,", + ",BoldItalic,,,,", + ",Extra BoldSlanted,CMUSerif-BoldSlanted,,,", + ",Italic,,,,", + ",Roman,,15,,", + ",Extra RomanSlanted,CMUSerif-RomanSlanted,13,,", + "CMU Serif Upright Italic,UprightItalic,CMUSerif-UprightItalic,,,", + "CMU Typewriter Text,Bold,CMUTypewriter-Bold,,,", + ",BoldItalic,CMUTypewriter-BoldItalic,,,", + ",Italic,CMUTypewriter-Italic,,,", + ",Light,CMUTypewriter-Light,,,", + ",LightOblique,CMUTypewriter-LightOblique,,,", + ",Regular,CMUTypewriter-Regular,,,", + "CMU Typewriter Text Variable Width,Medium,CMUTypewriterVariable,9,,", + ",Italic,CMUTypewriterVariable-Italic,,,", + "Cabin,Bold,,4099,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Cabin Condensed,Bold,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "CabinSketch,Regular,a,1,4,", + "Cabin Sketch,Bold,,,,a", + ",Regular,,,,a", + "Cadman,,a,7,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Caesar Dressing,Regular,a,1,4,a", + "Cagliostro,,,,,", + "Cairo,Black,,35,12,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Caladea,Bold,,3,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Calligraffiti,,a,1,1,", + "Calligraffitti,,,,6,a", + "Cambay,Bold,,515,12,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Cambo,,,1,14,a", + "CamingoCode,Bold,,3,7,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Candal,,a,1,12,a", + "Candela,Bold,,,,", + ",Bold Italic,Candela-Bold-Italic,,,", + ",Book,,,,", + ",Book Italic,Candela-Book-Italic,,,", + "Cantarell,Bold,,3,,", + ",BoldOblique,,,,", + ",Oblique,,,,", + ",Regular,,,,", + "Cantata One,,,,14,a", + "CantoraOne,,,,12,a", + "Capriola,,,,,a", + "Capsuula,,a,,,", + "Capture it,,a,13,16,", + "Capture it 2,,a,0,,", + "CarbonType,,a,,17,", + "Cardo,Bold,,23,14,", + ",Italic,,,,", + ",Regular,,,,", + "Carlito,,a,4111,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Carme,Regular,a,1,,a", + "Caroni,,,3,6,", + "Carousel,,a,1,4,", + "Carrington,,a,,13,", + "Carrois Gothic,,,,12,", + "Carrois Gothic SC,,,,,", + "Carter One,,a,,4,a", + "Caslon Calligraphic Initials,,a,0,,", + "Caslon Initials,,a,,,", + "Catamaran,Black,,1,12,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Caudex,Regular,a,7,14,a", + ",Bold,,4103,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Caveat,Bold,,11,6,a", + ",Regular,,,,a", + "Caveat Brush,,,3,13,", + "Caviar Dreams,,a,15,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Cedarville Cursive,Regular,Cedarville-Cursive,3,6,a", + "Ceviche One,,,1,4,a", + "Chakra Petch,Bold,,5123,12,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Changa,Bold,,35,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",One,ChangaOne,1,4,a", + ",One Italic,ChangaOne-Italic,,,a", + "Chango,Regular,,,,a", + "Chantelli Antiqua,,Chantelli-Antiqua,,1,", + "ChanticleerRoman,,a,,14,", + "Charis SIL,,a,4107,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Charm,Bold,,5123,6,a", + ",Regular,,,,a", + "Charmonman,Bold,,,,a", + ",Regular,,,,a", + "Chathura,Bold,,0,12,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Regular,,,,", + ",Thin,,,,", + "Chau Philomene One,Italic,,1,,a", + ",Regular,,,,a", + "Chela One,,,,4,", + "Chelsea Market,,,,,a", + "Chenla,,a,2048,,a", + "Cherry Cream Soda,,,1,,a", + "Cherry Swash,Bold,,,,", + ",Regular,,,,", + "Chewy,,,,,a", + "Chicle,,,,,a", + "Chivo,Black,,4099,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Chonburi,Regular,,5123,4,a", + "ChunkFive,,,3,,", + "ChunkFive Print,,a,0,,", + "Cicle,Fina,CicleFina,1,12,", + ",Fina Italic,CicleFinaItalic,,,", + ",Gordita,CicleGordita,,,", + ",Gordita Italic,CicleGorditaItalic,,,", + ",Semi,CicleSemi,,,", + ",Semi Italic,CicleSemiItalic,,,", + ",Shadow,CicleShadow,,,", + "Cinzel,Black,,3,14,a", + ",Bold,,,,a", + ",Regular,,,,a", + "Cinzel Decorative,Black,,,4,a", + ",Bold,,,,a", + ",Regular,,,,a", + "Clear Sans,,a,4111,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Thin,,,,", + "Clicker Script,Regular,,3,6,a", + "Clutchee,,a,0,4,", + "Coda,ExtraBold,,3,,a", + ",Heavy,,1,,", + ",Regular,,3,,a", + "Coda Caption,ExtraBold,,,12,a", + "Codystar,Regular,a,1,8,", + ",Light,,,,", + "Coiny,Regular,,4099,4,", + "Colaborate,Bold,,1,12,", + "ColaborateLight,Regular,Colaborate-Light,,,", + "Colaborate,Medium,,,,", + ",Regular,,,,", + ",Thin,,,,", + "College,Regular,a,0,4,", + ",Bold,CollegeBold,,,", + "College Condensed,Regular,a,,,", + "College Semi-condensed,,CollegeSemiCondensed,,,", + "CombiNumerals Ltd,,a,,3,", + "Combo,,,3,4,a", + "Comfortaa,,a,7,12,", + ",,Comfortaa-Bold,4111,4,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",Thin,,7,12,", + "Comic Relief,Regular,a,15,2,", + "Comic Zine OT,,a,1,8,", + "Coming Soon,,,,6,a", + "Commando,Commando,a,0,4,", + "Comme,Bold,,3,12,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Heavy,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Communist,Regular,a,0,14,", + ",Italic,CommunistItalic,,,", + ",Sans,CommunistSans,,,", + ",SansBold,CommunistSansBold,,,", + "Compagnon,Bold,,1,4,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Roman,,,,", + "Comprehension,SemiBold,,,14,", + "Concert One,Regular,,,12,", + "Condiment,,,,6,a", + "Content,,a,2048,4,a", + ",Bold,,,,a", + "Contra,Regular,a,1,14,", + ",Italic,,,,", + "Contrail One,Regular,,,4,a", + "Convergence,,,,12,a", + "Cookie,,,,13,", + "Cooper Hewitt,Bold,,3,12,", + ",Bold Italic,,,,", + ",Book,,,,", + ",Book Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Semibold,,,,", + ",Semibold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Copse,Regular,a,1,14,a", + "Copystruct,Bold,CopystructBold,0,4,", + ",Normal,CopystructNormal,,,", + "Corben,Bold,,3,,a", + ",Regular,,,,a", + "Cormorant,Bold,,4107,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Cormorant Garamond,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Cormorant Infant,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,a", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,a", + "Cormorant SC,Bold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Cormorant Unicase,Bold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",Semibold,,,,", + "Cormorant Upright,Bold,,4099,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Costura,Bold,,0,8,", + ",DemiBold,,,,", + ",Regular,Costura-Light,,,", + "Courgette,,,3,13,", + "Courier Prime,,a,,17,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Courier Prime Code,,,,12,", + ",Regular,,,,", + "Courier Prime Sans,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Cousine,,a,4127,7,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,a", + "Coustard,Black,,3,14,a", + ",Regular,,,,a", + "Covered By Your Grace,,a,,6,a", + "Cowboy Hippie Pro,,a,,4,", + "Crafty Girls,,,1,6,a", + "Creepster,,,,4,a", + "Crete Round,Italic,,3,15,", + ",Regular,,,,", + "Crimson,Bold,,4103,14,", + ",BoldItalic,,4099,,", + ",Italic,,4111,,", + ",Roman,,,,", + ",Semibold,,3,,", + ",SemiboldItalic,,,,", + "Crimson Text,Bold,,4099,,a", + ",Bold Italic,,3,,a", + ",Italic,,,,a", + ",Regular,,4111,,a", + ",SemiBold,,3,,a", + ",SemiBold Italic,,,,a", + "Croissant One,Regular,,,4,", + "Crushed,,,,,a", + "Cuprum,Bold,,4105,12,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Cute Font,,,0,4,a", + "Cutive,,,3,14,a", + "Cutive Mono,,,,7,a", + "D-DIN,,a,1,12,", + ",DIN-Bold,D-DIN-Bold,,,", + ",DIN-Italic,D-DIN-Italic,,,", + "D-DIN Condensed,Regular,a,,,", + ",DINCondensed-Bold,D-DINCondensed-Bold,,,", + "D-DIN Exp,Regular,a,,,", + ",DINExp-Bold,D-DINExp-Bold,,,", + ",DINExp-Italic,D-DINExp-Italic,,,", + "DISCO,Regular,a,0,,", + "DJ Gross,Normal,DJ-Gross,1,6,", + "DPSDbeyond,Regular,a,4,4,", + "DX아기사랑B,Bold,DXLBaB-KSCpc-EUC-H,12,11,ex/DXLBaB-KSCpc-EUC-H.ttf", + "Daela,,,1,4,", + ",Book,,,,", + ",Italic,,,,", + "Damion,Regular,a,,6,a", + "Dancing Script,Bold,,4099,,a", + ",Regular,,,,a", + "Dancing Script OT,,a,1,13,", + "Dangrek,,a,2048,4,a", + "Daniel,Black,,1,6,", + ",Bold,,,,", + ",Regular,,,,", + "Datalegreya,Dot,,4099,12,", + ",Gradient,,,,", + ",Thin,,,,", + "David Libre,Bold,,4115,14,a", + ",Medium,,,,a", + ",Regular,,,,a", + "Davys,,,0,3,", + "Dawning of a New Day,,a,1,6,a", + "DayPosterBlack,,a,,11,", + "Days,,a,8,4,", + "Days One,,,9,12,a", + "DeStencilNF,,a,1,16,", + "De Valencia,,,0,7,", + "Dearest,,a,1,0,", + "Dearest Open,,a,,,", + "Dearest Outline,,a,,,", + "Dehuti,Bold,,4111,14,", + ",Bold-Italic,,,,", + ",Book,,,,", + ",Italic,,,,", + "Dehuti Alt,Bold,,,,", + ",Bold-Italic,,,,", + ",Book,,,,", + ",Italic,,,,", + "DejaVu Sans,Book,a,4159,12,", + ",Bold,,,,", + ",Bold Oblique,,4127,,", + ",ExtraLight,,4111,,", + ",Oblique,,4127,,", + ",Condensed,DejaVuSansCondensed,4159,,", + ",Condensed Bold,DejaVuSansCondensed-Bold,,,", + ",Condensed Bold Oblique,DejaVuSansCondensed-BoldOblique,4127,,", + ",Condensed Oblique,DejaVuSansCondensed-Oblique,,,", + "DejaVu Sans Mono,Book,a,47,,", + ",Bold,,,,", + ",Bold Oblique,,15,,", + ",Oblique,,,,", + "DejaVu Serif,Book,a,4111,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Condensed,DejaVuSerifCondensed,,,", + ",Condensed Bold,DejaVuSerifCondensed-Bold,,,", + ",Condensed Bold Italic,DejaVuSerifCondensed-BoldItalic,,,", + ",Condensed Italic,DejaVuSerifCondensed-Italic,,,", + "Dekko,Regular,a,515,6,a", + "Delius,,,1,2,", + "Delius Swash Caps,,,,,", + "Delius Unicase,Bold,,,,", + ",Regular,,,,", + "Della Respira,,,,14,a", + "Denk One,,,,12,a", + "Destroy,,a,0,4,", + "Desyrel,,a,1,6,", + "Deutsch Gothic,Normal,Deutsch-Gothic,0,0,", + "Devonshire,Regular,,3,6,a", + "Devroye,,a,1,14,", + ",Extra,DevroyeExtra,0,,", + ",Regular SCOSF,DevroyeSCOSF,1,,", + ",Regular Unicode,DevroyeUnicode,15,,", + "Dhurjati,Regular,a,0,12,a", + "Didact Gothic,,,15,,", + "Digory Doodles,,Digory_Doodles_PS,0,13,", + "Diner,Fatt,,,11,", + ",Obese,,,,", + ",Regular,,,,", + ",Skinny,,,,", + "Diplomata,Regular,,1,4,", + "Diplomata SC,,,,,a", + "Distant Galaxy,,a,0,8,", + "District,,a,,4,", + "Dited,,a,8,,", + "Do Hyeon,,,0,12,a", + "Dobkin,Plain,,,13,", + "Dokdo,Regular,,,6,a", + "Domine,Bold,,3,14,", + ",Regular,,,,", + "Donegal One,,,,,a", + "Doppio One,,,,12,a", + "Dorsa,,,1,,a", + "Dosis,Bold,,3,,a", + ",ExtraBold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Dr Sugiyama,Regular,,1,6,a", + "DrawveticaMini,Medium,a,,,", + "Droid Sans,Regular,a,4111,12,", + ",Bold,,,,", + "Droid Sans Fallback,Regular,a,192,10,ex/DroidSansFallback.ttf", + "Droid Sans Mono,,a,4111,7,", + "Droid Serif,,a,,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Dubiel,,,1,,", + "DubielPlain,Regular,a,,,", + "Dubtronic,Solid,,0,4,", + "Dubtronic Inline,Regular,a,,,", + "Duplexide,,a,,,", + "Duru Sans,,,3,12,", + "Dustismo,,a,,,", + ", Bold,DustismoBold,,,", + ", Bold Italic,DustismoBoldItalic,,,", + ", Italic,DustismoItalic,,,", + "Dustismo Roman,Regular,a,7,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Dutch Initials,normal,a,0,4,", + "DymaxionScript,Regular,a,1,11,", + "Dynalight,,,3,4,a", + "EB Garamond,Bold,,4111,14,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",08 Italic,EBGaramond08-Italic,4103,,", + ",08 Regular,EBGaramond08-Regular,4111,,", + "EB Garamond 12 All SC,AllSC,EBGaramond12-AllSC,11,,", + "EB Garamond,12 Italic,EBGaramond12-Italic,4111,,", + ",12 Regular,EBGaramond12-Regular,,,", + "EB Garamond Initials,Regular,a,0,,", + ",Fill1,EBGaramondInitialsF1,,,", + ",Fill2,EBGaramondInitialsF2,,,", + "EB Garamond SC,08 Regular,EBGaramondSC08-Regular,4111,,", + ",12 Regular,EBGaramondSC12-Regular,,,", + "Eagle Lake,Regular,,3,6,a", + "EastMarket,,a,1,11,", + "East Sea Dokdo,,,0,6,a", + "Eater,,,3,4,a", + "Economica,Bold,,1,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Eczar,Bold,,513,14,", + ",ExtraBold,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Edo,Regular,a,1,4,", + "El Messiri,Bold,,41,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Electrolize,Regular,,1,12,a", + "ElliotSix,,a,0,6,", + "Elsie,Black,,1,4,a", + ",Regular,,,14,", + ",Black,ElsieBlack-Regular,,,", + "Elsie Swash Caps,,,,4,a", + ",Regular,,,14,", + ",Black,ElsieSwashCapsBlack-Regular,,,", + "Emblema One,Regular,,3,4,a", + "EmbossedBlack,Normal,,0,0,", + "EmbossedBlackWide,,,,,", + "Emilys Candy,Regular,,1,4,a", + "Encode Sans,Black,,4099,12,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Encode Sans Condensed,Black,,,,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Encode Sans Expanded,Black,,,,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Encode Sans SemiCondensed,Black,,,,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Encode Sans SemiExpanded,Black,,,,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Engagement,Regular,,3,6,a", + "England Hand DB,,a,1,13,", + "Englebert,,,3,12,a", + "Engry,,a,8,14,", + "Enigmatic,,a,1,12,", + ",Bold,EnigmaticBold,,,", + ",Italic,EnigmaticItalic,,,", + "Enriqueta,Bold,,3,15,", + ",Regular,,,,", + "Entypo,,a,0,3,", + "Eraser,,,,6,", + "Erica One,,,1,4,a", + "Esteban,,a,,14,a", + "Euphoria Script,,,,6,a", + "Ewert,,,,4,a", + "Existence,Light,,3,12,", + ",Stencil Light,,,,", + ",Unicase Light,,,,", + "Exo,Black,,4099,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Exo 2,Black,,11,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",Extra Bold,,,,a", + ",Extra Bold Italic,,,,a", + "Exo 2 Extra,Light,Exo2-ExtraLight,,,a", + ",Light Italic,Exo2-ExtraLightItalic,,,a", + "Exo 2,Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",Semi Bold,,,,a", + ",Semi Bold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Expletus Sans,Regular,a,1,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "FFF Tusj,Bold,,,4,", + "FORQUE,Regular,a,0,11,", + "Fahkwang,Bold,,5123,12,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Familiar Pro,Bold,,3,,", + "FancyPants,Regular,a,0,11,", + "Fantasque Sans Mono,Bold,,15,7,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Fanwood,,a,3,14,", + ",Italic,,,,", + "Fanwood Text,,,,,a", + ",Regular,,,,a", + "Farro,Bold,,,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + "Farsan,,,4099,4,", + "Fascinate,,,3,,", + "Fascinate Inline,,,,,", + "Faster One,,,1,,", + "Fasthand,,,2048,14,a", + "Fauna One,,a,1,,a", + "Faustina,Bold,,4099,15,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Faux Snow BRK,Regular,a,0,3,", + "Federant,,,1,4,a", + "Federo,,,,12,a", + "Felipa,,,,1,", + "Fengardo Neue,,a,,12,", + ",Black,,,,", + "Fenix,Regular,a,,14,a", + "Finger Paint,,,,4,", + "Fira Code,Bold,,15,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",Retina,,,,", + "Fira Mono,Bold,,,7,", + ",Medium,,,,", + ",Regular,,,,", + "Fira Sans,Black,,4111,12,a", + ",Black Italic,,,,a", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Book,,,,", + ",Book Italic,,,,", + ",Eight,,,,", + ",Eight Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Four,,,,", + ",Four Italic,,,,", + ",Hair,,,,", + ",Hair Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + ",Two,,,,", + ",Two Italic,,,,", + ",Ultra,,,,", + ",Ultra Italic,,,,", + ",UltraLight,,,,", + ",UltraLight Italic,,,,", + "Fira Sans Compressed,Bold,,,,", + ",Bold Italic,,,,", + ",Book,,,,", + ",Book Italic,,,,", + ",Eight,,,,", + ",Eight Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Four,,,,", + ",Four Italic,,,,", + ",Hair,,,,", + ",Hair Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + ",Two,,,,", + ",Two Italic,,,,", + ",UltraLight,,,,", + ",UltraLight Italic,,,,", + "Fira Sans Condensed,Black,,,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",Book,,3,,", + ",Book Italic,,,,", + ",Eight,,,,", + ",Eight Italic,,,,", + ",ExtraBold,,4111,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Extrabold Italic,,3,,", + ",Four,,,,", + ",Four Italic,,,,", + ",Hair,,,,", + ",Hair Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,4111,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Semibold Italic,,3,,", + ",Thin,,4111,,a", + ",Thin Italic,,,,a", + ",Two,,3,,", + ",Two Italic,,,,", + ",Ultra,,,,", + ",Ultra Italic,,,,", + ",UltraLight,,,,", + ",UltraLight Italic,,,,", + "Fira Sans Extra Condensed,Black,,4111,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Firecat,Medium,FirecatMedium,0,8,", + "FjallaOne,Regular,a,1,4,", + "Fjalla One,,,,12,a", + "Fjord,One,,,14,", + "Flamenco,Light,,,4,a", + ",Regular,,,,a", + "Flavors,,a,,8,", + "Floralia,,a,0,3,", + "Florante at Laura,,a,,1,", + ",Italic,FloranteatLauraItalic,,,", + "Flux Architect,Regular,Flux-Architect,,6,", + ",Bold,Flux-Architect-Bold,,,", + ",Bold Italic,Flux-Architect-BoldItalic,,,", + ",Italic,Flux-Architect-Italic,,,", + "Foglihten,Regular,a,3,4,", + "FoglihtenBlackPcs,BlackPcs,a,11,,", + "FoglihtenNo01,Regular,a,3,,", + "FoglihtenNo03,,a,,,", + "FoglihtenNo07,,a,,,", + "Folks,Bold,,1,12,", + ",Heavy,,,,", + ",Light,,,,", + ",Regular,Folks-Normal,,,", + "Fondamento,Italic,,3,6,a", + ",Regular,,,,a", + "Font Awesome 5 Brands,,FontAwesome5BrandsRegular,0,3,", + "Font Awesome 5 Free,,FontAwesome5FreeRegular,,,", + ",Solid,FontAwesome5FreeSolid,,,", + "Fontdiner Swanky,Regular,,1,4,a", + "FontleroyBrown,,a,,11,", + "FortySecondStreetHB,,a,,,", + "Forum,,a,11,14,", + "Francois One,,a,3,4,", + ",,,4099,12,a", + "Frank Ruhl Libre,Black,,17,14,a", + ",Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + "Freckle Face,,,3,4,a", + "Fredericka the Great,,,1,,a", + "Fredoka One,,,,12,", + "Fredoka dingbats,,a,0,,", + "FreeMono,,a,4159,,", + ",Bold,FreeMonoBold,4127,,", + ",Bold Oblique,FreeMonoBoldOblique,,,", + ",Oblique,FreeMonoOblique,,,", + "FreeSans,Regular,a,4639,,", + ",Bold,FreeSansBold,,,", + ",Bold Oblique,FreeSansBoldOblique,4127,,", + ",Oblique,FreeSansOblique,,,", + "FreeSerif,Regular,a,5695,,", + ",Bold,FreeSerifBold,,,", + ",Bold Italic,FreeSerifBoldItalic,5151,,", + ",Italic,FreeSerifItalic,,,", + "Freebooter Script,Regular,a,1,13,", + "Freebooter Script - Alts,,a,0,,", + "Freehand,,a,2048,4,a", + "Frente H1,,,0,6,", + "Fresca,,,1,12,a", + "Frijole,,a,,4,a", + "Fruktur,,,3,,a", + "Fugaz One,,,1,,a", + "Furore,,a,8,,", + "GEIST RND,,a,0,,", + "GFS Didot,,,4103,14,a", + "GFS Neohellenic,Bold,,,12,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Gabriela,,,9,14,a", + "Gaegu,Bold,,0,6,", + ",Light,,,,", + ",Regular,,,,", + "Gafata,,,1,12,", + "Galada,,,,4,a", + "Galatia SIL,,a,5,14,", + ",Bold,,,,", + "Galdeano,Regular,,1,12,a", + "Galindo,,,3,4,a", + "Gamja Flower,,,64,6,a", + "Gandhi Sans,Bold,,1,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Gandhi Serif,Bold,,,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Garogier,,a,4,,", + "Garton,Medium,GartonMedium,0,,", + "Gaspar,Regular,a,,15,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Gentium Basic,Regular,a,4099,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Gentium Book Basic,Regular,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Genzsch Et Heyse,Regular,a,0,0,", + "Genzsch Et Heyse Alternate,,a,,,", + "Geo,Medium,a,1,4,", + ",Oblique,,,12,a", + ",Regular,,,,a", + ",Oblique,GeoOblique,,4,", + "Geometry Soft Pro,Bold N,,3,,", + "Geostar,Regular,,1,,a", + "Geostar Fill,,,,,a", + "Germania One,,,,0,", + "Gesso,,a,0,4,", + "Giant Head OT,,a,1,,", + "Giant Head Two OT,,a,,,", + "Gidole,,,7,12,", + "Gidugu,,a,3,,a", + "Gilda Display,,,1,14,a", + "Give You Glory,,a,3,6,a", + "Glacial Indifference,Bold,,1,12,", + ",Italic,,,,", + ",Regular,,,,", + "Gladifilthefte,Gladifilthefte,a,,4,", + "Glass Antiqua,Regular,,3,,a", + "Glegoo,Bold,,515,15,", + ",Regular,,,,", + "Gloria Hallelujah,,a,3,6,", + "Goblin,,a,1,4,", + "Goblin One,,a,,,a", + "Gochi Hand,,,,6,a", + "Gondola SD,,a,,1,", + "Gondola SD - Swash,,a,,,", + "Gong!,Normal,GongNormal,0,6,", + "Gorditas,Bold,,1,4,", + ",Regular,,,,", + "Gothic A1,Black,,4175,12,a", + ",Bold,,,,a", + ",ExtraBold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",Thin,,,,a", + "Gothic Ultra OT,Regular,a,1,1,", + "Goudy Bookletter 1911,,a,3,14,", + "Sorts Mill Goudy,,GoudyStM,,,", + ",Italic,GoudyStM-Italic,,,", + "Gputeks,Bold,,11,4,", + ",Regular,,,,", + "Graduate,,,1,,", + "Grand Hotel,,,3,13,", + "Gravitas One,,a,1,4,", + "GreatLakesNF,,a,,,", + "Great Vibes,,,3,13,", + "Grenze,Black,,4099,14,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "GreyscaleBasic,Regular,a,1,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Griffin,Regular,a,,4,", + "GriffosFont,,a,,14,", + "GriffosSCapsFont,,a,,,", + "Griffy,,,,4,a", + "Gruppo,,a,,,a", + "GrutchShaded,,a,,,", + "Gudea,,a,,12,", + ",Bold,,,,", + ",Italic,,,,a", + "Gugi,Regular,,0,4,a", + "Gurajada,,a,3,14,a", + "HK Grotesk,Bold,,4099,12,", + ",Bold Italic,,,,", + ",Bold Legacy,,3,,", + ",Bold Legacy Italic,,,,", + ",Italic,,4099,,", + ",Legacy Italic,,3,,", + ",Light,,4099,,", + ",Light Italic,,,,", + ",Light Legacy,,3,,", + ",Light Legacy Italic,,,,", + ",Medium,,4099,,", + ",Medium Italic,,,,", + ",Medium Legacy,,3,,", + ",Medium Legacy Italic,,,,", + ",Regular,,4099,,", + ",Regular Legacy,,3,,", + ",SemiBold,,4099,,", + ",SemiBold Italic,,,,", + ",SemiBold Legacy,,3,,", + ",SemiBold Legacy Italic,,,,", + "HVD Bodedo,Medium,,1,4,", + "HVD Comic Serif Pro,Regular,a,3,,", + "HVD Edding 780,Normal,,1,6,", + "HVD Peace,Regular,a,3,16,", + "HVD Poster,,a,1,4,", + ",Clean,HVDPosterClean,,,", + "HVD Rowdy,Regular,a,,5,", + "HVD Steinzeit,,a,,8,", + ",Fill In,,,,", + "Habibi,Regular,,3,14,", + "Hack,Bold,,15,7,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Halant,Bold,,513,14,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "HamburgerHeaven,Regular,a,1,11,", + "Hammersmith One,,a,,4,", + "HammersmithOne,,,3,12,a", + "Hanalei,,,,4,", + "Hanalei Fill,,,,,a", + "Handlee,,,1,13,", + "Hanuman,Bold,,2048,14,a", + ",Regular,,,,a", + "Happy Monkey,,,1,2,", + "Happy Times at the IKOB,Italic,,,14,", + ",Regular,,,,", + "Harmattan,,,33,12,a", + "Harting,Plain,,0,17,", + "Hattori Hanzo,Light,,8,12,", + ",Light Italic,,,,", + "Headhunter,Regular,,0,8,", + "HeadlandOne,,,3,14,a", + "Heavy Data,,a,1,8,", + "Heebo,Black,,17,12,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",Thin,,,,", + "Helmet,Regular,,1,,", + "Helsinki,,a,,2,", + "Henny Penny,,,,4,a", + "HenryMorganHand,,a,0,13,", + "Herr Von Muellerhoff,,,1,6,a", + "Hetilica,Bold,,0,,", + "Heuristica,,,4107,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Heydings Icons,,Heydings-Icons,0,3,", + "Hi Melody,,,64,6,a", + "Hind,Bold,,513,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Hind Guntur,Bold,,1,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Hind Madurai,Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Hind Siliguri,Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Hind Vadodara,Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Holtwood One SC,Regular,a,,14,a", + "Holy-Ravioli,,a,0,11,", + "Homemade Apple,,a,1,13,", + ",,,,6,a", + "Homenaje,,,,12,a", + "Hominis,Normal,a,0,4,", + "Hornswoggled,,a,1,,", + "IBM Plex Mono,Regular,a,4107,12,", + ",Bold,,,,", + ",Bold Italic,,,7,a", + ",ExtraLight,,,12,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Text,,,,", + ",Text Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "IBM Plex Sans,Regular,a,4111,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Text,,4107,,", + ",Text Italic,,,,", + ",Thin,,4111,,a", + ",Thin Italic,,,,a", + "IBM Plex Sans Condensed,Regular,IBMPlexSansCond,4099,,a", + ",Bold,IBMPlexSansCond-Bold,,,a", + ",Bold Italic,IBMPlexSansCond-BoldItalic,,,a", + ",ExtraLight,IBMPlexSansCond-ExtraLight,,,a", + ",ExtraLight Italic,IBMPlexSansCond-ExtraLightItalic,,,a", + ",Italic,IBMPlexSansCond-Italic,,,a", + ",Light,IBMPlexSansCond-Light,,,a", + ",Light Italic,IBMPlexSansCond-LightItalic,,,a", + ",Medium,IBMPlexSansCond-Medium,,,a", + ",Medium Italic,IBMPlexSansCond-MediumItalic,,,a", + ",SemiBold,IBMPlexSansCond-SemiBold,,,a", + ",SemiBold Italic,IBMPlexSansCond-SemiBoldItalic,,,a", + ",Thin,IBMPlexSansCond-Thin,,,a", + ",Thin Italic,IBMPlexSansCond-ThinItalic,,,a", + "IBM Plex Serif,Regular,a,4107,14,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Text,,,12,", + ",Text Italic,,,,", + ",Thin,,,14,a", + ",Thin Italic,,,,a", + "IM FELL DW,Pica Italic,IM_FELL_DW_Pica_Italic,3,,a", + ",Pica PRO Italic,IM_FELL_DW_Pica_PRO_Italic,,,", + ",Pica PRO,IM_FELL_DW_Pica_PRO_Roman,,,", + ",Pica,IM_FELL_DW_Pica_Roman,,,a", + ",Pica SC,IM_FELL_DW_Pica_SC,1,,a", + "IM FELL Double,Pica Italic,IM_FELL_Double_Pica_Italic,3,,a", + ",Pica PRO Italic,IM_FELL_Double_Pica_PRO_Italic,,,", + ",Pica PRO,IM_FELL_Double_Pica_PRO_Roman,,,", + ",Pica,IM_FELL_Double_Pica_Roman,,,a", + ",Pica SC,IM_FELL_Double_Pica_SC,1,,a", + "IM FELL English,Italic,IM_FELL_English_Italic,3,,a", + ",PRO Italic,IM_FELL_English_PRO_Italic,,4,", + ",PRO,IM_FELL_English_PRO_Roman,,,", + ",Regular,IM_FELL_English_Roman,,14,a", + ",SC,IM_FELL_English_SC,1,,a", + "IM FELL FLOWERS,1,IM_FELL_FLOWERS_1,0,3,", + ",2,IM_FELL_FLOWERS_2,,,", + "IM FELL French Canon,Italic,IM_FELL_French_Canon_Italic,3,14,a", + ",PRO Italic,IM_FELL_French_Canon_PRO_Italic,,,", + ",PRO,IM_FELL_French_Canon_PRO_Roman,,,", + ",Regular,IM_FELL_French_Canon_Roman,,,a", + ",SC,IM_FELL_French_Canon_SC,1,,a", + "IM FELL Great Primer,Italic,IM_FELL_Great_Primer_Italic,3,,a", + ",PRO Italic,IM_FELL_Great_Primer_PRO_Italic,,,", + ",PRO,IM_FELL_Great_Primer_PRO_Roman,,,", + ",Regular,IM_FELL_Great_Primer_Roman,,,a", + ",SC,IM_FELL_Great_Primer_SC,1,,a", + "Iceberg,Regular,,,4,a", + "Iceland,,,,,a", + "Immortal,,a,,14,", + "Immortal - Alternates,,a,0,,", + "Impact Label,,a,1,8,", + "Impact Label Reversed,,a,,,", + "Imprima,,,,12,a", + "IncisedBlack,Normal,,0,0,", + "IncisedBlackWide,,,,,", + "Inconsolata,Medium,a,1,7,", + ",Bold,,4099,,a", + ",Regular,,,,a", + "Inder,,,3,12,", + "Indie Flower,,a,,6,", + "Indigo Outline Font,,,1,4,", + "Indigo,,IndigoRegular-Regular,,,", + "Indubitably,,a,,11,", + "Infini,Bold,,3,12,", + ",Italic,,,,", + ",Regular,,,,", + "Infini Picto,Bold,,0,,", + "Inika,Regular,a,1,14,a", + ",Bold,,,,a", + "Inknut Antiqua,Black,,515,,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Inria Sans,Bold,,3,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + "Inria Serif,Bold,,,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + "Inter,Black,,4111,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Extra Bold,,,,", + ",Extra Bold Italic,,,,", + ",Extra Light BETA,,,,", + ",Extra Light Italic BETA,,,,", + ",Italic,,,,", + ",Light BETA,,,,", + ",Light Italic BETA,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",Semi Bold,,,,", + ",Semi Bold Italic,,,,", + ",Thin BETA,,,,", + ",Thin Italic BETA,,,,", + "Inter UI,Black Italic,,,,", + "Intruder Alert,Regular,a,9,4,", + "Irish Grover,,,1,,a", + "Istok,Bold,,11,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Istok Web,Bold,,,,a", + ",BoldItalic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Italiana,,,1,,", + "Italianno,,,3,13,", + "Itim,,,5123,6,a", + "JMYZK-LZT,嘉木杨字库--兰札体,JMYZK-LZT---,256,10,ex/tib/S12/Lanydza.ttf", + "JMYZK-WDT-MOD,?-Ö,JMYZKWDTMOD,,,ex/tib/S12/Wartu.ttf", + "JUICE,Bold Bold,JUICEBold-Bold,0,4,", + ",Bold Italic,JUICEBoldItalic,,,", + ",Italic Italic,JUICEItalic-Italic,,,", + ",Light,JUICELight,,,", + ",Light Italic Italic,JUICELightItalic-Italic,,,", + ",Regular,JUICERegular,,,", + "Jacques Francois,,,1,14,", + "Jacques Francois Shadow,,,,4,a", + "Jaldi,Bold,,4611,12,a", + ",Regular,,,,a", + "Jameel Noori Nastaleeq,,Jameel-Noori-Nastaleeq,33,,ex/Jameel_Noori_Nastaleeq.ttf", + "Jellee,Bold,Jellee-Roman,1,,", + "Jim Nightshade,Regular,,3,6,a", + "Jinky,,a,1,,", + "Jockey One,,,3,12,", + "Jolly Lodger,,a,1,4,a", + "Jomhuria,,,35,,", + "Jomolhari,,a,257,10,ex/tib/S12/Jomolhari.ttf", + "Josefin Sans,Bold,,4099,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Josefin Slab,Regular,a,1,15,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,14,a", + ",SemiBold,,,15,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Joti One,Regular,,3,4,a", + "Journal,,a,1,6,", + "jr!hand,,Jrhand,,,", + "Jua,,,0,12,a", + "Judson,Medium,a,4099,14,", + ",Bold,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + ",Bold,JudsonBold,,,", + ",Italic,JudsonItalic,,,", + "Julee,Regular,,1,6,a", + "Julius Sans One,,,,12,", + "Junction,Bold,,,,", + ",Light,,,,", + ",Regular,,,,", + "Junge,,,,14,a", + "JungleFever,,a,,4,", + "Junicode,,a,4099,14,", + ",Bold,,3,,", + ",BoldCondensed,,,,", + ",Bold Italic,,,,", + ",BoldItalicCondensed,,,,", + ",Italic,,4099,,", + ",ItalicCondensed,,4103,,", + ",RegularCondensed,,,,", + "Jura,Bold,,4111,12,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",Book,JuraBook,,4,", + ",DemiBold,JuraDemiBold,,,", + ",Light,JuraLight,,,", + ",Medium,JuraMedium,,,", + "Just Another Hand,Regular,,3,6,", + "Just Me Again Down Here,,a,,,a", + "JustOldFashion,,a,1,4,", + "K2D,Bold,,5123,12,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Kadwa,Bold,,515,14,a", + ",Regular,,,,a", + "Kalam,Bold,,513,6,", + ",Light,,,,", + ",Regular,,,,", + "Kalocsai Flowers,,a,0,3,", + "Kameron,,a,1,14,", + ",Bold,,,,", + "Kanit,Black,,5123,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Kantumruy,Regular,a,2048,,a", + ",Bold,,,,a", + ",Light,KantumruyLight,,,a", + "Karatula,Bold,KaratulaBold,0,2,", + ",BoldItalic,KaratulaBoldItalic,,,", + ",Italic,KaratulaItalic,,,", + ",Normal,KaratulaNormal,,,", + "Karla,Bold,,,12,", + ",BoldItalic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Karma,Bold,,515,14,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Karmilla,Bold,,3,12,", + ",Regular,,,,", + "Karnivore,,a,1,4,", + ",Bold,,,,", + ",Black,KarnivoreBlack,,,", + "Karnivore Digit,Regular,a,,,", + "Karnivore Lite,,a,,,", + "Karnivore Tecca,,a,,,", + "Katibeh,,,35,,a", + "Kaushan Script,,,3,13,", + "Kavivanar,,,,12,", + "Kavoon,,,1,4,a", + "Kdam Thmor,,a,2048,,a", + "Keania One,,,1,,a", + "Kells SD,,a,,1,", + "Kelly Slab,,,11,4,a", + "KelmscottRoman,,a,1,11,", + "Kelvinch,,a,4111,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Kenia,Regular,,1,4,a", + "Khand,Bold,,513,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",Semibold,,,,", + "Khmer,Regular,a,2048,4,a", + "Khula,Bold,,512,12,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",Semibold,,,,", + "Kingthings Calligraphica Italic,Calligraphica,Kingthings-Calligraphica-Italic,0,1,", + "Kingthings Calligraphica,Light Light,Kingthings-Calligraphica-Light,,,", + "Kingthings Flourishes,Regular,Kingthings-Flourishes,,3,", + "Kingthings Gothique,,Kingthings-Gothique,,0,", + "Kingthings Italique,,Kingthings-Italique,,,", + "Kingthings Spikeless,,Kingthings-Spikeless,,,", + "Kingthings Versalis,,Kingthings-Versalis,,8,", + "Kingthings Wrote,,Kingthings-Wrote,,13,", + "Kingthings Xstitch,,Kingthings-Xstitch,,4,", + "Kingthings Calligraphica 2,,a,1,1,", + "Kingthings Exeter,,a,0,,", + "Kingthings Foundation,,a,,,", + "Kingthings Petrock,,a,1,,", + ",Light,KingthingsPetrockLight,,,", + "Kingthings Printingkit,Regular,a,0,4,", + "Kingthings Trypewriter 2,,a,1,17,", + "Kirang Haerang,,,0,4,", + "Kite One,,,1,12,a", + "Knewave,,,,4,a", + "Know Your Product,,a,,16,", + "KoHo,Bold,,5123,12,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Kodchasan,Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Komika Axis,Regular,a,1,2,", + "Komika Display,,a,,,", + ",Bold,,,,", + "Komika Display Kaps,Regular,a,,,", + ",Bold,,,,", + "Komika Hand,Regular,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Komika Parch,Regular,a,,,", + "Komika Text,,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Komika Text Kaps,Regular,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Komika Text Tight,Regular,a,,,", + ",Italic,,,,", + "Komika Title,Regular,a,,,", + "Komika Title - Axis,,a,,,", + "Komika Title - Kaps,,a,,,", + "Komika Title - Paint,,a,,,", + "Komika Title - Wide,,a,,,", + "Kontrapunkt,Bold,KontrapunktBold,,15,", + ",Light,KontrapunktLight,,,", + ",Light Italic,KontrapunktLightItalic,,,", + "Kotta One,Regular,,,14,", + "Koulen,,a,2048,4,a", + "Kranky,,,1,,a", + "Kreon,Bold,,,15,", + ",Light,,,,", + ",Regular,,,,", + "Kristi,Medium,a,,6,", + ",Regular,,,,a", + "Krona One,,,3,12,", + "Krub,Bold,,5123,,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Kumar One,Regular,,1,4,a", + "Kumar One Outline,,,,,a", + "Kurale,,,523,14,", + "LIBRARY 3 AM,,a,9,4,", + "LIBRARY 3 AM soft,,a,,,", + "Latin Modern Mono,10 Italic,LMMono10-Italic,4099,17,", + ",10 Regular,LMMono10-Regular,,,", + ",Caps 10 Oblique,LMMonoCaps10-Oblique,,,", + ",Caps 10 Regular,LMMonoCaps10-Regular,,,", + ",Light 10 Bold,LMMonoLt10-Bold,,,", + ",Light 10 Bold Oblique,LMMonoLt10-BoldOblique,,,", + ",Light 10 Oblique,LMMonoLt10-Oblique,,,", + ",Light 10 Regular,LMMonoLt10-Regular,,,", + ",Light Cond 10 Oblique,LMMonoLtCond10-Oblique,,,", + ",Light Cond 10 Regular,LMMonoLtCond10-Regular,,,", + ",Prop 10 Oblique,LMMonoProp10-Oblique,,,", + ",Prop 10 Regular,LMMonoProp10-Regular,,,", + ",Prop Light 10 Bold,LMMonoPropLt10-Bold,,,", + ",Prop Light 10 BoldOblique,LMMonoPropLt10-BoldOblique,,,", + ",Prop Light 10 Oblique,LMMonoPropLt10-Oblique,,,", + ",Prop Light 10 Regular,LMMonoPropLt10-Regular,,,", + ",Slanted 10 Regular,LMMonoSlant10-Regular,,,", + "Latin Modern Roman,10 Bold,LMRoman10-Bold,,14,", + ",10 Bold Italic,LMRoman10-BoldItalic,,,", + ",10 Italic,LMRoman10-Italic,,,", + ",10 Regular,LMRoman10-Regular,,,", + ",Caps 10 Oblique,LMRomanCaps10-Oblique,,,", + ",Caps 10 Regular,LMRomanCaps10-Regular,,,", + ",Demi 10 Oblique,LMRomanDemi10-Oblique,,,", + ",Demi 10 Regular,LMRomanDemi10-Regular,,,", + ",Dunhill 10 Oblique,LMRomanDunh10-Oblique,,,", + ",Dunhill 10 Regular,LMRomanDunh10-Regular,,,", + ",Slanted 10 Bold,LMRomanSlant10-Bold,,,", + ",Slanted 10 Regular,LMRomanSlant10-Regular,,,", + "Latin Modern Sans,10 Bold,LMSans10-Bold,,12,", + ",10 Bold Oblique,LMSans10-BoldOblique,,,", + ",10 Oblique,LMSans10-Oblique,,,", + ",10 Regular,LMSans10-Regular,,,", + ",Demi Cond 10 Oblique,LMSansDemiCond10-Oblique,,,", + ",Demi Cond 10 Regular,LMSansDemiCond10-Regular,,,", + "La Belle Aurore,Regular,a,3,6,a", + "Labor Union,,,11,14,", + ",Small,,,,", + "Lack,Italic,,15,12,", + "Lack Line,,Lack-Line-Italic,,,", + ",Regular,Lack-Line-Regular,,,", + "Lack,,,,,", + "Laconic,Bold,,1,4,", + ",Light,,,,", + ",Regular,,,,", + ",Shadow,,,,", + "Lacuna,Italic,LacunaItalic,,12,", + ",Regular,LacunaRegular,,,", + "Laila,Bold,,513,14,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "LakeshoreDrive,Regular,a,1,11,", + "Lakki Reddy,,a,,6,a", + "Lalezar,,,4131,4,", + "Lancelot,,a,1,,a", + "Landliebe,,a,0,13,", + "Lane - Narrow,,a,1,4,", + "Lane - Posh,,a,,,", + "Lane - Upper,,a,,,", + "Langdon,,a,0,,", + "Lapsus Pro,Bold,,15,,", + "Lateef,Regular,a,33,6,a", + "Latinia,,Latinia-Normal,1,14,", + ",Black,LatiniaBlack,,,", + "Lato,,,4111,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Hairline,,,,", + ",Hairline Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",Semibold,,,,", + ",Semibold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "La unica,Regular,a,1,4,", + "Leafy glade,,a,0,8,", + "Leafyshade,,a,,,", + "League Gothic,Condensed Italic,,3,4,", + ",Condensed Regular,,,,", + ",Italic,,,,", + ",Regular,,,,", + "League Script,League Script,a,1,6,a", + ",Thin League Script,LeagueScriptThin-LeagueScript,,13,", + ",Regular,LeagueScriptThin-Regular,,,", + "League Spartan,Bold,,,12,", + "Leander,Regular,a,,4,", + "LeckerliOne,,a,,6,", + "Leckerli One,,,,,a", + "Ledger,,,11,14,a", + "Lekton,Bold,,3,7,", + ",Italic,,1,,", + ",Regular,,3,,", + "Lemiesz,,a,0,11,", + "Lemon,,,1,4,a", + "LemonChicken,,a,0,11,", + "Lemonada,Bold,,4131,4,a", + ",Light,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Liberation Mono,Regular,a,4127,7,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Liberation Sans,Regular,a,,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Liberation Serif,Regular,a,,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Libertinus Keyboard,Regular,,19,,", + "Libertinus Math,,,4127,,", + "Libertinus Mono,,,4099,,", + "Libertinus Sans,Bold,,4127,,", + ",Italic,,,,", + ",Regular,,,,", + "Libertinus Serif,Bold,,,,", + ",Bold Italic,,4111,,", + ",Italic,,4127,,", + ",Regular,,,,", + ",Semibold,,,,", + ",Semibold Italic,,,,", + "Libertinus Serif Display,Regular,,31,,", + "Libertinus Serif Initials,,,16,,", + "Libre Barcode,128,LibreBarcode128-Regular,0,4,a", + ",128 Text,LibreBarcode128Text-Regular,,,a", + ",39,LibreBarcode39-Regular,,,a", + ",39 Extended,LibreBarcode39Extended-Regular,,,a", + ",39 Extended Text,LibreBarcode39ExtendedText-Regular,,,a", + ",39 Text,LibreBarcode39Text-Regular,,,a", + "Libre Baskerville,Bold,,3,14,", + ",Italic,,,,", + ",Regular,,,,", + "Libre Caslon,Display,LibreCaslonDisplay-Regular,,,", + ",Text Bold,LibreCaslonText-Bold,,,", + ",Text Italic,LibreCaslonText-Italic,,,", + ",Text,LibreCaslonText-Regular,,,", + "Libre Franklin,Black,,,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Life Savers,Bold,,,6,", + ",Regular,,,,", + "Lilac Malaria,,a,1,4,", + "Lilita One,,a,,,a", + "Lilly,,a,,6,", + "Lily Script One,,,,4,a", + "Limelight,,a,,11,", + ",,,3,4,a", + "Linux Biolinum O,,LinBiolinumO,4127,14,", + ",Bold,LinBiolinumOB,,,", + ",Italic,LinBiolinumOI,,,", + "Linux Libertine Display O,Regular,LinLibertineDisplayO,31,,", + "Linux Libertine Initials O,Initials,LinLibertineIO,16,,", + "Linux Libertine Mono O,Mono,LinLibertineMO,4099,,", + "Linux Libertine O,Regular,LinLibertineO,4127,,", + ",Bold,LinLibertineOB,,,", + ",Bold Italic,LinLibertineOBI,4103,,", + ",Italic,LinLibertineOI,4127,,", + ",Semibold,LinLibertineOZ,,,", + ",Semibold Italic,LinLibertineOZI,,,", + "Linden Hill,Regular,a,3,15,", + ",Italic,,,14,a", + ",Regular,,,,a", + "Linguistics Pro,Bold,,4111,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Lintsec,,a,0,16,", + "Literata,Book Bold,LiterataBook-Bold,4111,12,", + ",Book Bold Italic,LiterataBook-BoldItalic,,,", + ",Book Italic,LiterataBook-Italic,,,", + ",Book Medium,LiterataBook-Medium,,,", + ",Book Medium Italic,LiterataBook-MediumItalic,,,", + ",Book,LiterataBook-Regular,,,", + ",Book SemiBold,LiterataBook-SemiBold,,,", + ",Book SemiBold Italic,LiterataBook-SemiBoldItalic,,,", + "Little Trouble Girl BV,Regular,a,1,4,", + "Loaded,,a,0,,", + "Lobster,,,4107,,a", + "Lobster 1.3,,a,1,13,", + "Lobster,Two,LobsterTwo,,,", + ",Two Bold,LobsterTwo-Bold,,,", + ",Two Bold Italic,LobsterTwo-BoldItalic,,,", + ",Two Italic,LobsterTwo-Italic,,,", + "Londrina,Outline,LondrinaOutline-Regular,,4,", + ",Shadow,LondrinaShadow-Regular,,,", + ",Sketch,LondrinaSketch-Regular,,,a", + ",Sketche,LondrinaSketche-Regular,,,", + ",Solid Black,LondrinaSolid-Black,,,a", + ",Solid Light,LondrinaSolid-Light,,,a", + ",Solid,LondrinaSolid-Regular,,,", + ",Solid Thin,LondrinaSolid-Thin,,,a", + "Lora,Bold,,4107,14,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Love Ya Like A Sister,,,3,4,a", + "Loved by the King,,a,,6,a", + "Lovers Quarrel,,,1,,a", + "Lucien Schoenschriftv CAT,,a,3,13,", + "Luckiest Guy,,,,4,", + "Luiss Sans,Bold,,,12,", + ",Bold Italic,,,,", + ",Regular,,,,", + ",Thin Italic,,,,", + ",Thin Sans,,,,", + ",italic,,,,", + "Luiss Serif,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Lunchtype22,,Lunchtype,1,,", + "Lunchtype25,Condensed Light,Lunchtype-CondensedLight,,,", + ",Condensed Medium,Lunchtype-CondensedMedium,,,", + ",Condensed Regular,Lunchtype-CondensedRegular,,,", + "Lunchtype24,Expanded Light,Lunchtype-ExpandedLight,,,", + ",Expanded Medium,Lunchtype-ExpandedMedium,,,", + ",Expanded Regular,Lunchtype-ExpandedRegular,,,", + "Lunchtype23,Italic,Lunchtype-Italic,,,", + "Lunchtype22,Light,Lunchtype-Light,,,", + "Lunchtype23,Light Italic,Lunchtype-LightItalic,,,", + "Lunchtype22,Medium,Lunchtype-Medium,,,", + "Lunchtype23,Medium Italic,Lunchtype-MediumItalic,,,", + "Lusitana,Regular,a,,14,a", + ",Bold,,,,a", + "Lustria,Regular,,,,a", + "Luxi Mono,,a,3,7,", + ",Bold,,,,", + ",Bold Oblique,,,,", + ",Oblique,,,,", + "Luxi Sans,Regular,a,,12,", + ",Bold,,,,", + ",Bold Oblique,,,,", + ",Oblique,,,,", + "Luxi Serif,Regular,a,,14,", + ",Bold,,,,", + ",Bold Oblique,,,,", + ",Oblique,,,,", + "Macondo,Regular,,1,4,", + "Macondo Swash Caps,,,,,", + "Mada,Black,,33,12,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "MadisonSquare,Incised,MadisonSquareIncised,1,11,", + "Magenta,Regular,a,,4,", + "Magra,,a,3,12,", + ",Bold,,,,", + "Maiden Orange,Regular,,,4,", + "Maitree,,a,5123,14,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",SemiBold,,,,a", + "Major Mono Display,Regular,,4099,7,a", + "Major Snafu,,a,1,16,", + "Mako,,a,,12,", + "Mali,Bold,,5123,6,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Mallanna,Regular,a,0,12,a", + "Mandali,,a,,,a", + "Manrope3,Bold,,11,,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",Semibold,,,,", + ",Thin,,,,", + "Manuale,Bold,,4099,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Marcellus,Regular,,3,,a", + "Marcellus SC,,,,,a", + "Marck Script,,,11,6,a", + "Margarine,,,3,4,a", + "Markazi Text,Bold,,4131,14,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Marko One,Regular,,1,,a", + "Marmelad,,,9,12,a", + "Martel,Bold,,515,15,", + ",DemiBold,,,,", + ",ExtraBold,,,,", + ",Heavy,,,,", + ",Light,,,,", + ",Regular,,,,", + ",UltraLight,,,,", + "Martel Sans,Black,,,12,a", + ",Bold,,,,", + ",DemiBold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,a", + ",Heavy,,,,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",UltraLight,,,,", + "Marvel,Bold,,1,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Matchbook,Matchbook,a,,4,", + "Mate,Italic,,,14,a", + ",Regular,,,,a", + "Mate SC,,,,,a", + "Mathlete,Bulky,,,6,", + ",Bulky Slant,,,,", + ",Skinny,,,,", + ",Skinny Slant,,,,", + "Matiz,Regular,a,0,4,", + "Maven Pro,Black,,4099,12,a", + ",Bold,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Black,MavenProBlack,1,,", + ",Bold,MavenProBold,,,", + ",Medium,MavenProMedium,,,", + ",Regular,MavenProRegular,,,", + "McLaren,,,3,4,a", + "Meddon,,a,,6,a", + "MedievalSharp,,a,,4,a", + "Medio,,a,0,14,", + "Medula One,,,1,4,a", + "Meera Inimai,,,,12,a", + "Megrim,Medium,a,3,4,a", + "Meie Script,Regular,,1,6,a", + "Membra,,a,3,8,", + "Merienda,Bold,,1,13,", + ",Regular,Merienda-Regular_0_wt,,,", + "Merienda One,,,,6,a", + "Merriweather,Black,,4107,14,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + "Merriweather Sans,Bold,,3,12,a", + ",Bold Italic,,,,a", + ",Book,,,,", + ",BookItalic,,,,", + ",ExtraBold Italic,MerriweatherSans-ExtraBldItalic,,,", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + "Metal,,a,2048,4,a", + "Metal Mania,,,1,,a", + "Metamorphous,,a,3,14,", + "Metro,,a,8,4,", + "Metrophobic,,a,1,12,", + ",,,,,a", + "Metropolis,Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Extra Bold,,,,", + ",Extra Bold Italic,,,,", + ",Extra Light,,,,", + ",Extra Light Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",Regular Italic,,,,", + ",Semi Bold,,,,", + ",Semi Bold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Miama,Regular,a,3,13,", + "Michroma,,a,,12,", + "Mikodacs,,a,11,4,", + "MikodacsPCS,,a,,,", + "Millennia,,a,1,,", + "Milonga,,,3,,a", + "Miltonian,,,1,,a", + "Miltonian Tattoo,,,,,a", + "Mina,Bold,,3,12,a", + ",Regular,,,,a", + "Minipax,,a,,15,", + ",Bold,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",Semi Bold,,,,", + "Miniver,Regular,a,1,4,a", + "Minotaur,Phatte,,0,11,", + "MinstrelPosterWHG,Regular,a,1,,", + "Miriam Libre,Bold,,19,12,a", + ",Regular,,,,a", + "Mirza,Bold,,35,4,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Miss Fajardose,Regular,,1,6,a", + "Mitr,Bold,,5123,12,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Modak,Regular,a,513,4,", + "Modern Antiqua,,,3,14,", + "Modern Pictograms,Normal,a,0,3,", + "Mogra,Regular,,1,4,a", + "Mohave,Bold,,3,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + "Moinho,,a,1,6,", + "Molengo,,a,,12,", + ",,,,,a", + "Molle,,,,6,a", + "Molot,,a,8,12,", + "Mom´sTypewriter,,MomsTypewriter,0,17,", + "Monda,Bold,,3,12,a", + ",Regular,,,,a", + "Monlam Uni Chouk,,a,1280,10,ex/tib/Monlam Uni Chouk.ttf", + "Monlam Uni Choukmatik,,a,,,ex/tib/Monlam Uni ChoukMatik.ttf", + "Monlam Uni Dutsa1,,a,,,ex/tib/Monlam Uni Dutsa1.ttf", + "Monlam Uni Dutsa2,,a,,,ex/tib/Monlam Uni Dutsa2.ttf", + "Monlam Uni OuChan1,,a,,,ex/tib/Monlam Uni OuChan1.ttf", + "Monlam Uni OuChan2,,a,,,ex/tib/Monlam Uni OuChan2.ttf", + "Monlam Uni OuChan3,,a,,,ex/tib/Monlam Uni OuChan3.ttf", + "Monlam Uni OuChan4,,a,,,ex/tib/Monlam Uni OuChan4.ttf", + "Monlam Uni OuChan5,,a,,,ex/tib/Monlam Uni OuChan5.ttf", + "Monlam Uni PayTsik,,a,,,ex/tib/Monlam Uni PayTsik.ttf", + "Monlam Uni Sans Serif,,a,,,ex/tib/Monlam Uni Sans Serif.ttf", + "Monlam Uni TikTong,,a,,,ex/tib/Monlam Uni TikTong.ttf", + "Monlam Uni Tikrang,,a,,,ex/tib/Monlam Uni Tikrang.ttf", + "Monofett,,a,3,4,a", + "MonospaceTypewriter,,a,1,7,", + "Monoton,,,3,4,", + "Monsieur La Doulaise,,,1,6,a", + "Montaga,,,,14,a", + "Montez,,,3,6,", + "Montserrat,Black,,4107,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Montserrat Alternates,Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Montserrat Subrayada,Bold,,1,,a", + ",Regular,,,,a", + "MothproofScript,,a,0,1,", + "MotoyaLCedar,W3 mono,MotoyaLCedar-W3-90ms-RKSJ-H,140,12,a", + "MotoyaLMaru,,MotoyaLMaru-W3-90ms-RKSJ-H,,,a", + "Moul,Regular,a,2048,4,a", + "Moul Pali,,a,,,a", + "Mountains of Christmas,Bold,,1,,a", + ",Regular,,,,a", + "Mouse Memoirs,,,3,12,a", + "Mplus 1p,Black,,4255,,a", + ",Bold Bold,Mplus1p-Bold,,,a", + ",ExtraBold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Mr Bedfort,Regular,,1,6,a", + "Mr Dafoe,,,,,a", + "Mr De Haviland,,,,,a", + "Mrs Saint Delafield,,,,,a", + "Mrs Sheppards,,,,,a", + "Mukta,Bold,,515,12,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Mukta Mahee,Bold,,3,,a", + ",ExtraBold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Mukta Malar,Bold,,,,a", + ",ExtraBold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Mukta Vaani,Bold,,,,a", + ",ExtraBold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Muli,Regular,a,,,", + ",Black,,4099,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + ",SemiBoldItalic,Muli-Semi-BoldItalic,3,,", + ",SemiBold,,4099,,a", + ",SemiBold Italic,,,,a", + "Munson,Regular,a,15,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Mutlu, Ornamental,MutluOrnamental,1,13,", + "My Underwood,Regular,a,0,17,", + "Myndraine,,a,1,12,", + "Mystery Quest,,a,,4,a", + "NTR,,a,0,12,a", + "Nanum Brush Script,,NanumBrush,76,6,a", + "NanumGothic,,a,205,12,", + ",Bold,NanumGothicBold,,,", + "NanumGothicCoding,Regular,a,76,7,a", + ",Bold,,,,a", + "NanumGothic,ExtraBold,NanumGothicExtraBold,205,12,", + "NanumMyeongjo,Regular,a,76,14,a", + ",Bold,NanumMyeongjoBold,,,a", + "NanumMyeongjoExtraBold,Regular,a,,,a", + "Nanum Pen,,a,,6,a", + "Nautilus Pompilius,,a,8,13,", + "Negotiate,Free,NegotiateFree,3,12,", + "NeoRetroDraw,Regular,a,0,4,", + "NeoRetroFill,,a,,,", + "NeoRetroShadow,,a,,,", + "Neris,Black,,11,12,", + ",Black Italic,,,,", + ",Bold Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Nervous Rex,Regular,a,0,4,", + "Neucha,,a,9,6,a", + "Neumann,,a,11,14,", + "Neuton,Bold,,3,,", + ",ExtraBold,,1,,a", + ",ExtraLight,,,,a", + ",Extrabold,,,,", + ",Extralight,,,,", + ",ExtralightItalic,,,,", + ",Italic,,,,a", + ",Light,,3,,", + ",Regular,,,,", + "Neuton SC,SC-Bold,Neuton-SC-Bold,1,,", + ",SC-Extrabold,Neuton-SC-Extrabold,,,", + ",SC-Extralight,Neuton-SC-Extralight,,,", + ",SC-Light,Neuton-SC-Light,,,", + ",SC-Regular,Neuton-SC-Regular,,,", + "Neuton Cursive,Regular,,,,", + "New Athena Unicode,,a,15,,", + "New Cicle,Fina,,1,12,", + ",Fina Italic,,,,", + ",Gordita,,,,", + ",Gordita Italic,,,,", + ",Semi,,,,", + ",Semi Italic,,,,", + "NewRocker,Regular,,3,0,", + "News Cycle,,a,15,12,a", + ",Bold,,3,,a", + "Newt Serif,Regular,a,,14,", + ",Italic,,,,", + ",Bold,NewtSerifBold,,,", + ",Bold Italic,NewtSerifBold-Italic,,,", + "Newt Serif Demi,Regular,a,,,", + ",Italic,,,,", + "Newt Serif,Light,NewtSerifLight,,,", + ",Light Italic,NewtSerifLight-Italic,,,", + "Niconne,Regular,,1,13,", + "Nimbus Mono,Bold,,15,7,", + ",Bold Oblique,,,,", + ",Regular Oblique,NimbusMono-Oblique,,,", + ",Regular,,,,", + "Nimbus Roman No9 L,Bold,NimbusRomNo9L-Med,,14,", + ",Bold Italic,NimbusRomNo9L-MedIta,,,", + ",Regular,NimbusRomNo9L-Reg,,,", + ",Regular Italic,NimbusRomNo9L-RegIta,,,", + "Nimbus Sans L,Bold,NimbusSanL-Bol,,12,", + ",Bold Italic,NimbusSanL-BolIta,,,", + ",Regular,NimbusSanL-Reg,,,", + ",Regular Italic,NimbusSanL-RegIta,,,", + "Niramit,Bold,,5123,,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Nixie One,Regular,,1,15,", + "Nobile,Bold,,9,12,", + ",Bold Italic,,11,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,9,,", + "Nokora,Bold,,2048,14,a", + ",Regular,,,,a", + "Norican,,,1,6,a", + "Norwester,,,0,4,", + "Nosifer,,,3,,a", + "Nosifer Caps,,,,,", + "NotCourierSans,,a,4107,7,", + ",Bold,,,,", + "NotMaryKate,Regular,a,1,11,", + "Notable,,,,12,a", + "Note this,,a,,6,", + "Nothing You Could Do,,a,,,a", + "Notice,Notice2,Notice2Std,0,3,", + ",Notice3,Notice3Std,,,", + ",Notice,NoticeStd,,,", + "Noticia Text,Bold,,4099,15,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Noto Mono,,a,4111,10,", + "Noto Sans,,a,4623,12,a", + ",Black,,4111,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Condensed,,,,", + ",Condensed Black,,,,", + ",Condensed Black Italic,,,,", + ",Condensed Bold,,,,", + ",Condensed Bold Italic,,,,", + ",Condensed ExtraBold,,,,", + ",Condensed ExtraBold Italic,,,,", + ",Condensed ExtraLight,,,,", + ",Condensed ExtraLight Italic,,,,", + ",Condensed Italic,,,,", + ",Condensed Light,,,,", + ",Condensed Light Italic,,,,", + ",Condensed Medium,,,,", + ",Condensed Medium Italic,,,,", + ",Condensed SemiBold,,,,", + ",Condensed SemiBold Italic,,,,", + ",Condensed Thin,,,,", + ",Condensed Thin Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraCondensed,,,,", + ",ExtraCondensed Black,,,,", + ",ExtraCondensed Black Italic,,,,", + ",ExtraCondensed Bold,,,,", + ",ExtraCondensed Bold Italic,,,,", + ",ExtraCondensed ExtraBold,,,,", + ",ExtraCondensed ExtraBold Italic,,,,", + ",ExtraCondensed ExtraLight,,,,", + ",ExtraCondensed ExtraLight Italic,,,,", + ",ExtraCondensed Italic,,,,", + ",ExtraCondensed Light,,,,", + ",ExtraCondensed Light Italic,,,,", + ",ExtraCondensed Medium,,,,", + ",ExtraCondensed Medium Italic,,,,", + ",ExtraCondensed SemiBold,,,,", + ",ExtraCondensed SemiBold Italic,,,,", + ",ExtraCondensed Thin,,,,", + ",ExtraCondensed Thin Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",SemiCondensed,,,,", + ",SemiCondensed Black,,,,", + ",SemiCondensed Black Italic,,,,", + ",SemiCondensed Bold,,,,", + ",SemiCondensed Bold Italic,,,,", + ",SemiCondensed ExtraBold,,,,", + ",SemiCondensed ExtraBold Italic,,,,", + ",SemiCondensed ExtraLight,,,,", + ",SemiCondensed ExtraLight Italic,,,,", + ",SemiCondensed Italic,,,,", + ",SemiCondensed Light,,,,", + ",SemiCondensed Light Italic,,,,", + ",SemiCondensed Medium,,,,", + ",SemiCondensed Medium Italic,,,,", + ",SemiCondensed SemiBold,,,,", + ",SemiCondensed SemiBold Italic,,,,", + ",SemiCondensed Thin,,,,", + ",SemiCondensed Thin Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Noto Sans JP,Black,,4237,,a", + ",Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Noto Sans KR,Black,,64,,a", + ",Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Noto Sans SC,Black,,4237,,a", + ",Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Noto Sans TC,Black,,,,a", + ",Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Noto Sans Tibetan,Regular,a,256,10,ex/tib/NotoSansTibetan-Regular.ttf", + "Noto Serif,,a,4111,14,", + ",Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Condensed,,,,", + ",Condensed Black,,,,", + ",Condensed Black Italic,,,,", + ",Condensed Bold,,,,", + ",Condensed Bold Italic,,,,", + ",Condensed ExtraBold,,,,", + ",Condensed ExtraBold Italic,,,,", + ",Condensed ExtraLight,,,,", + ",Condensed ExtraLight Italic,,,,", + ",Condensed Italic,,,,", + ",Condensed Light,,,,", + ",Condensed Light Italic,,,,", + ",Condensed Medium,,,,", + ",Condensed Medium Italic,,,,", + ",Condensed SemiBold,,,,", + ",Condensed SemiBold Italic,,,,", + ",Condensed Thin,,,,", + ",Condensed Thin Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraCondensed,,,,", + ",ExtraCondensed Black,,,,", + ",ExtraCondensed Black Italic,,,,", + ",ExtraCondensed Bold,,,,", + ",ExtraCondensed Bold Italic,,,,", + ",ExtraCondensed ExtraBold,,,,", + ",ExtraCondensed ExtraBold Italic,,,,", + ",ExtraCondensed ExtraLight,,,,", + ",ExtraCondensed ExtraLight Italic,,,,", + ",ExtraCondensed Italic,,,,", + ",ExtraCondensed Light,,,,", + ",ExtraCondensed Light Italic,,,,", + ",ExtraCondensed Medium,,,,", + ",ExtraCondensed Medium Italic,,,,", + ",ExtraCondensed SemiBold,,,,", + ",ExtraCondensed SemiBold Italic,,,,", + ",ExtraCondensed Thin,,,,", + ",ExtraCondensed Thin Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",SemiCondensed,,,,", + ",SemiCondensed Black,,,,", + ",SemiCondensed Black Italic,,,,", + ",SemiCondensed Bold,,,,", + ",SemiCondensed Bold Italic,,,,", + ",SemiCondensed ExtraBold,,,,", + ",SemiCondensed ExtraBold Italic,,,,", + ",SemiCondensed ExtraLight,,,,", + ",SemiCondensed ExtraLight Italic,,,,", + ",SemiCondensed Italic,,,,", + ",SemiCondensed Light,,,,", + ",SemiCondensed Light Italic,,,,", + ",SemiCondensed Medium,,,,", + ",SemiCondensed Medium Italic,,,,", + ",SemiCondensed SemiBold,,,,", + ",SemiCondensed SemiBold Italic,,,,", + ",SemiCondensed Thin,,,,", + ",SemiCondensed Thin Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Noto Serif JP,Black,,4237,,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Noto Serif KR,Black,,4301,,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Noto Serif SC,Black,,4237,,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Noto Serif TC,Black,,,,a", + ",Bold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Nova Cut,Book,a,3,4,a", + "Nova Flat,,a,,,a", + "NovaMono,Regular,a,7,7,a", + "Nova Oval,Book,a,3,4,a", + "Nova Round,,a,,,a", + "Nova Script,Regular,,,,a", + "Nova Slim,Book,a,,,a", + "Nova Square,,a,,,a", + "Numans,Regular,,1,12,", + "Nunito,Black,,4099,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,3,,", + ",Regular,,4099,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Nunito Sans,Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Nymphette,Regular,a,0,3,", + "OSP-DIN,DIN,a,,4,", + "Odibee Sans,Regular,,1,,", + "OdorMeanChey,,a,2048,,a", + "Office Code Pro,Bold,,3,12,", + ",Bold Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",Regular Italic,,,,", + "Office Code Pro D,Bold,,,,", + ",Bold Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + ",Regular Italic,,,,", + "Offside,Regular,,1,4,a", + "Old Stamper,,a,0,,", + "Old Standard TT,Bold,,15,14,", + ",Italic,,,,", + ",Regular,,,,", + "Oldenburg,,,3,4,a", + "Oleo Script,Bold,,1,13,", + ",Regular,,,,", + "Oleo Script Swash Caps,Bold,,,4,a", + ",Regular,,,,a", + "Open Sans,,a,4111,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + "Open Sans Condensed,Bold,OpenSans-CondensedBold,,,", + "Open Sans,Condensed Light,,,,", + ",Condensed Light Italic,,,,", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",Extrabold,,,,", + ",Extrabold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Semibold,,,,", + ",Semibold Italic,,,,", + "Open Sans Condensed,Bold,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + "Open Sans,,OpenSansLight-Italic,,,", + "Oranienbaum,Regular,,11,14,", + "Orbitron,Black,,1,4,", + ",Bold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,12,a", + "Oregano,Italic,,3,4,a", + ",Regular,,,,a", + "Orienta,,,1,12,a", + "Origicide,,a,,4,", + "Original Surfer,,,3,,a", + "Orkney,Bold,,,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + "Orotund,Heavy,,0,4,", + "Orotund Capitals,,,,,", + "Ostrich Sans,Black,,,,", + ",Bold,,,,", + ",Heavy,,3,,", + ",Light,,0,,", + ",Medium,,3,,", + "Ostrich Sans Dashed,,,0,,", + "Ostrich Sans Inline,Italic,,1,,", + ",Regular,,,,", + "Ostrich Sans Rounded,Medium,,0,,", + "Oswald,Bold,,4107,12,a", + ",Bold Italic,,11,4,", + ",Demi-Bold,Oswald-Demi-BoldItalic,,,", + ",DemiBold,,,,", + ",Extra-Light,Oswald-Extra-LightItalic,,,", + ",ExtraLight,,4107,12,a", + ",Heavy,,11,4,", + ",Heavy Italic,,,,", + ",Light,,4107,12,a", + ",Light Italic,,11,4,", + ",Medium,,4107,12,a", + ",Medium Italic,,11,4,", + ",Regular,,4107,12,a", + ",Regular Italic,,11,4,", + ",SemiBold,,4107,12,a", + "Oswald Stencil,Bold,,1,4,", + "Otama.ep,Regular,Otama-ep,,14,", + "Outgunned,,a,0,3,", + "Overlock,Black,,1,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Overlock SC,,,,4,a", + "Overpass,Black,,3,12,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Overpass Mono,Bold,,,7,a", + ",Light,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Over the Rainbow,Regular,a,,6,", + "Ovo,,a,1,14,", + "Oxygen,,a,15,12,", + ",Bold,,11,,", + ",Bold Italic,,,,", + ",Italic,,15,,", + ",Light,,3,,a", + ",Regular,,,,a", + "Oxygen Mono,,,1,7,", + "PT Mono,,,11,,", + "PT Root UI,Bold,,,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + "PT Sans,Bold,,,,a", + ",Bold Italic,,,,a", + "PT Sans Caption,Regular,PTSans-Caption,,,a", + ",Bold,PTSans-CaptionBold,,,a", + "PT Sans,Italic,,,,a", + "PT Sans Narrow,Regular,PTSans-Narrow,,,a", + ",Bold,PTSans-NarrowBold,,,a", + "PT Sans,Regular,,,,a", + "PT Serif,Bold,,,15,", + ",Bold Italic,,,,", + "PT Serif Caption,Regular,PTSerif-Caption,,,", + ",Italic,PTSerif-CaptionItalic,,,", + "PT Serif,,,,,", + ",Regular,,,,", + "Pacifico,,a,1,13,", + ",,,4107,6,a", + "Padauk,Bold,,0,12,a", + ",Regular,,,,a", + "Paete Round,,a,,2,", + ",Bold,PaeteRoundBold,,,", + ",BoldItalic,PaeteRoundBoldItalic,,,", + ",Italic,PaeteRoundItalic,,,", + "Paint the Sky,Regular,,1,4,", + "Palanquin,Bold,,513,12,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Palanquin Dark,Bold,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Palitoon,Regular,,1,6,", + "PaloAlto,Heavy,a,,12,", + ",Heavy Italic,PaloAlto-Italic,,,", + "Panefresco,1wt Italic,Panefresco1wt-Italic,3,,", + ",1wt,Panefresco1wt-Regular,,,", + ",250wt Italic,Panefresco250wt-Italic,,,", + ",250wt,Panefresco250wt-Regular,,,", + ",400wt Italic,Panefresco400wt-Italic,,,", + ",400wt,Panefresco400wt-Regular,,,", + ",500wt Italic,Panefresco500wt-Italic,,,", + ",500wt,Panefresco500wt-Regular,,,", + ",600wt Italic,Panefresco600wt-Italic,,,", + ",600wt,Panefresco600wt-Regular,,,", + ",750wt Italic,Panefresco750wt-Italic,,,", + ",750wt,Panefresco750wt-Regular,,,", + ",800wt Italic,Panefresco800wt-Italic,,,", + ",800wt,Panefresco800wt-Regular,,,", + ",999wt Italic,Panefresco999wt-Italic,,,", + ",999wt,Panefresco999wt-Regular,,,", + "Pangolin,Regular,,4107,6,a", + "Paprika,,,1,4,", + "Parisienne,,,3,13,", + "Passero One,,,1,4,a", + "Passion One,Black,,,12,", + ",Bold,,,,", + "Passion,,PassionOne-Regular,,,", + "Pathway Gothic One,Regular,,,,a", + "Patrick Hand,,,4099,6,a", + "Patrick Hand SC,,,,,a", + "Pattaya,,,5131,12,a", + "Patua One,,,1,15,", + "Pavanam,,,3,12,a", + "Paytone One,,,4099,,a", + "Peace Sans,,a,9,,", + "Pecita,Medium,a,3,6,", + "Peddana,Regular,a,0,14,a", + "Peralta,,,3,15,", + "Permanent Marker,,a,1,6,", + ",,,,,a", + "PermianSansTypeface,,a,11,12,", + ",Bold,,,,", + ",Italic,,,,", + "PermianSerifTypeface,Regular,a,,14,", + ",Bold,,,,", + ",Italic,,,,", + "PermianSlabSerifTypeface,Regular,a,,15,", + ",Bold,,,,", + ",Italic,,,,", + "Perspective Sans,Regular,a,1,12,", + ",Black,PerspectiveSansBlack,,,", + ",Black Italic,PerspectiveSansBlackItalic,,,", + ",Bold,PerspectiveSansBold,,,", + ",Bold Italic,PerspectiveSansBoldItalic,,,", + ",Italic,PerspectiveSansItalic,,,", + "Petit Formal Script,Regular,,3,6,a", + "Petrona,,,1,14,a", + "Philosopher,,a,9,12,", + ",Bold,,4105,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Piedra,,,1,4,a", + "Pincoyablack,Black,,,,", + "Pinyon Script,Regular,a,,6,a", + "Pirata One,,,3,4,a", + "PixieFont,,a,0,,", + "PlainBlack,Normal,,,0,", + "PlainBlackWide,,,,,", + "Plasma Drip (BRK),Regular,a,,8,", + "Plasma Drip [Empty] (BRK),,a,,,", + "Plaster,,,3,4,a", + "Play,,a,15,12,", + ",Bold,,4111,,a", + ",Regular,,,,a", + "Playball,,,1,4,a", + "Playfair Display,Black,,4107,14,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Playfair Display SC,Black,,,,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Playtime With Hot Toddies,,a,1,6,", + "PlaytimeWithHotToddies3D,,a,,,", + "PlaytimeWithHotToddiesOblique,,a,,,", + "Pleasantly Plump,Normal,Pleasantly-Plump,0,4,", + "Plexifont BV,Regular,a,,8,", + "Plug-NickelBlack,,a,1,11,", + "Podkova,,a,,15,", + ",Bold,,4107,14,a", + ",ExtraBold,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "PoetsenOne,Regular,,3,4,", + "Poiret One,,,11,,", + "Poller One,,,1,,a", + "Polsku,,a,,,", + "Poly,Italic,,3,14,", + ",Regular,,,,", + "Pompiere ,,,1,6,", + "Pontano Sans,,,3,12,a", + "Poor Story,,,64,4,a", + "Poppins,Black,,515,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Port Lligat Sans,Regular,,1,,a", + "Port Lligat Slab,,,,14,a", + "Portcullion,Bold,,0,0,", + "Porter Sans Block,Block,a,1,4,", + "Post No Bills Colombo,Bold,,,16,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Pragati Narrow,Bold,,515,12,", + ",Regular,,,,", + "Prata,,,4105,14,", + "Preah Vihear,,a,2048,4,a", + "Press Start 2P,,,15,,a", + "Pridi,Bold,,5123,14,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Princess Sofia,Regular,a,1,13,", + "Print,Bold,PrintBold,,12,", + "Print Clearly,Regular,a,,,", + "Print Dashed,,a,,,", + "Printers Ornaments One,,a,0,3,", + "ProFontWindows,,a,1,12,", + "Prociono,,,3,14,a", + "Proclamate,Heavy Heavy,ProclamateHeavy-Heavy,0,0,", + "Proclamate Incised,Heavy,,,,", + "Proclamate,Light Light,ProclamateLight-Light,,,", + "Promocyja,Medium,a,3,13,", + "Prompt,Black,,5123,12,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Bold Italic,Prompt-BoldItalic,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",Semibold Italic,Prompt-SemiBoldItalic,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Prosto One,Regular,,9,4,a", + "Proza Libre,Bold,,1,12,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Public Sans,Black,,4099,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Puritan,Bold,,1,,", + ",BoldItalic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Purple Purse,,,3,4,", + "Pusab,,a,1,,", + "Qikki Reg,,a,0,2,", + "Qomolangma-Art,,a,257,10,ex/tib/Q17/Q-Art.ttf", + "Qomolangma-Betsu,,a,,,ex/tib/Q17/Q-Betsu.ttf", + "Qomolangma-Chuyig,,a,,,ex/tib/Q17/Q-Chuyig.ttf", + "Qomolangma-Drutsa,,a,,,ex/tib/Q17/Q-Drutsa.ttf", + "Qomolangma-Dunhuang,,a,,,ex/tib/Q17/Q-Dunhuang.ttf", + "Qomolangma-Edict,,a,,,ex/tib/Q17/Q-Edict.ttf", + "Qomolangma-Horyig,,a,,,ex/tib/Q17/Q-Horyig.ttf", + "Qomolangma-Subtitle,,a,,,ex/tib/Q17/Q-Subtitle.ttf", + "Qomolangma-Title,,a,,,ex/tib/Q17/Q-Title.ttf", + "Qomolangma-Tsumachu,,a,,,ex/tib/Q17/Q-Tsumachu.ttf", + "Qomolangma-Tsuring,,a,,,ex/tib/Q17/Q-Tsuring.ttf", + "Qomolangma-Tsutong,,a,,,ex/tib/Q17/Q-Tsutong.ttf", + "Qomolangma-Uchen Sarchen,,Qomolangma-Uchen-Sarchen,,,ex/tib/Q17/Q-UchenSarchen.ttf", + "Qomolangma-Uchen Sarchung,,Qomolangma-Uchen-Sarchung,,,ex/tib/Q17/Q-UchenSarchung.ttf", + "Qomolangma-Uchen Suring,,Qomolangma-Uchen-Suring,,,ex/tib/Q17/Q-UchenSuring.ttf", + "Qomolangma-Uchen Sutung,,Qomolangma-Uchen-Sutung,,,ex/tib/Q17/Q-UchenSutung.ttf", + "Qomolangma-Woodblock,,a,,,ex/tib/Q17/Q-Woodblock.ttf", + "Quando,,,3,14,a", + "Quantico,Bold,,1,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Quattrocento,,a,,14,a", + ",Bold,,,,a", + "Quattrocento Roman,Regular,a,,,", + "Quattrocento Sans,,a,,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Questrial,Regular,,,,", + "Quick End Jerk,,a,0,4,", + "Quicksand,Bold,,4099,12,a", + ",Bold Italic,,1,,", + ",Italic,,,,", + ",Light,,4099,,a", + ",Light Italic,,1,,", + ",Medium,,4099,,a", + ",Regular,,,,a", + ",Dash,QuicksandDash-Regular,0,,", + "QuigleyWiggly,Regular,a,1,13,", + "Quintessential,,,3,,", + "QumpellkaNo12,,a,,,", + "Qwigley,,,1,,", + "Racing Sans One,,,3,4,a", + "Radley,,a,,14,", + ",Italic,,1,,a", + ",Regular,,3,,a", + "Railway,,a,,12,", + ",RegularAlternate,RailwayAlternate,0,,", + "Rajdhani,Bold,,515,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",Semibold,,,,", + "Rakkas,Regular,,33,4,a", + "Raleway,Black,,11,12,", + ",Black Italic,,3,,", + ",Bold,,11,,", + ",Bold Italic,,3,,", + ",ExtraBold,,11,,", + ",ExtraBold Italic,,3,,", + ",ExtraLight,,11,,", + ",ExtraLight Italic,,3,,", + ",Italic,,,,", + ",Light,,11,,", + ",Light Italic,,3,,", + ",Medium,,11,,", + ",Medium Italic,,3,,", + ",Regular,,11,,", + ",SemiBold,,,,", + ",SemiBold Italic,,3,,", + ",Thin,,11,,", + ",Thin Italic,,3,,", + "Raleway Dots ,Regular,,,4,", + "Ramabhadra,,a,0,12,a", + "Ramaraja,,a,,14,a", + "Rambla,Bold,,1,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Rammetto One,,,,4,a", + "Ranchers,,,3,,", + "Rancho,,a,1,13,", + ",,,,6,a", + "Ranga,Bold,,513,4,", + ",Regular,,,,", + "Rapscallion,,a,0,0,", + "Rasa,Bold,,3,14,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Rationale,Regular,,1,12,a", + "Rationale One,,,,4,", + "Ravi Prakash,,,0,,a", + "Rawengulk,Bold,RawengulkBold,3,15,", + ",Demibold,RawengulkDemibold,,,", + ",Light,RawengulkLight,,,", + "RawengulkPcs,Regular,a,,,", + "Rawengulk,,RawengulkRegular,,,", + "RawengulkSans,,a,,12,", + "Rawengulk,Ultralight,RawengulkUltralight,,15,", + "Rechtman,Plain,,0,13,", + "Red Hat Display,Black,,3,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + "Red Hat Text,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + "Redressed,,a,,6,", + ",,,,,a", + "Reem Kufi,,,33,12,a", + "Reenie Beanie,,a,1,6,a", + "Resagnicto,,a,3,12,", + ",Bold,ResagnictoBold,,,", + ",Italic,ResagnictoItalic,,,", + "Resagokr,Regular,a,11,,", + ",Bold,ResagokrBold,,,", + ",Light,ResagokrLight,,,", + "Reswysokr,Regular,a,3,4,", + "Revalia,,,1,,a", + "Rhodium Libre,,,513,14,a", + "Ribeye,,,3,4,a", + "Ribeye Marrow,,,,,a", + "Riesling,,a,1,11,", + "Righteous,,,3,4,a", + "Risque,,,,,a", + "Ritaglio,,a,0,8,", + "Roboto,Black,,4111,12,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Roboto Condensed,Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + "Roboto Mono,Bold,,,7,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Roboto Slab,Bold,,,15,", + ",Light,,,,", + ",Regular,,,,", + ",Thin,,,,", + "Rochester,Regular,a,1,13,", + ",,,,6,a", + "Rock Salt,,a,,,", + ",,,,,a", + "Rokkitt,Black,,4099,15,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",ExtraLight,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Roman SD,Regular,a,1,1,", + "Romanesco,,,3,4,", + "Ropa Sans,Italic,,1,12,a", + ",Regular,,,,a", + "Rosario,Bold,,4099,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Rosarivo,Italic,,1,14,a", + ",Regular,,,,a", + "Rothenburg Decorative,Normal,,0,0,", + "Rothman,Plain,,,4,", + "Rouge Script,Regular,,1,13,", + "Rounded Mplus 1c,Black,,4255,12,a", + ",Bold Bold,RoundedMplus1c-Bold,,,a", + ",ExtraBold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Route 159,Bold,,3,,", + ",Bold Italic,,,,", + ",Heavy,,,,", + ",Heavy Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",UltraLight,,,,", + ",UltraLight Italic,,,,", + "Rozha One,Regular,a,513,15,", + ",,,515,14,a", + "Rubik,Black,,27,12,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + "Rubik Mono One,,,11,,a", + "Ruda,,a,1,,", + ",Black,,,,", + ",Bold,,,,", + ",Regular,,,,a", + "Rufina,Bold,,,14,a", + ",Regular,,,,a", + "Ruge Boogie,,,,6,a", + "Ruluko,,a,,12,a", + "Rum Raisin,,,3,,a", + "Ruslan Display,,a,11,4,a", + "Russo One,,,,12,a", + "Ruthie,,,1,6,a", + "Rye,,,,4,", + "SF Arch Rival,,a,,2,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Arch Rival Extended,Regular,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Archery,Black,SFArcheryBlack,,4,", + ",Black Oblique,SFArcheryBlack-Oblique,,,", + "SF Archery Black SC,Regular,a,,,", + ",Oblique,,,,", + "SF Burlington Script,Regular,a,,13,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Cartoonist Hand,Regular,a,,2,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Cartoonist Hand SC,Regular,a,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Collegiate,Regular,a,0,4,", + "SF Collegiate Solid,,a,,,", + "SF Shai Fontai,,a,1,8,", + "SF Shai Fontai Distressed,,a,,,", + "SF Shai Fontai Extended,,a,,,", + "SF Slapstick Comic,,a,,4,", + "SF Speakeasy,,a,,11,", + ",Oblique,,,,", + "SF Toontime,Regular,a,,2,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Toontime Blotch,Regular,a,,,", + ",Italic,,,,", + "SF Wasabi,Regular,a,,8,", + "SF Wasabi Condensed,,a,,,", + "SF Wonder Comic,,a,,2,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "SF Wonder Comic Blotch,Regular,a,,,", + ",Italic,,,,", + "SF Wonder Comic Inline,Regular,a,,,", + ",Italic,,,,", + "Sacramento,Regular,,3,6,a", + "Sahitya,Bold,,515,14,a", + ",Regular,,,,a", + "Sail,,,1,13,", + "Saira,Black,,4099,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Saira Condensed,Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Saira ExtraCondensed,Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Saira SemiCondensed,Black,,,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "Salaryman,Regular,a,0,4,", + "Salsa,,,1,,", + "Samba,,a,,12,", + "Sanchez,Italic,,3,14,a", + ",Regular,,,,a", + "Sancreek,,,,4,a", + "Sansation,Bold,,15,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light Light,Sansation-Light,,,", + ",Light Light Italic,Sansation-LightItalic,,,", + ",Regular,,,,", + "Sansita,Black,,4099,4,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + "Sansumi,,Sansumi-Bold,1,12,", + ",ExtraBold,,,,", + "Santana,Regular,a,,4,", + ",Black,,,,", + "Santana-BlackCondensed,Regular,a,,,", + "Santana,Bold,,,,", + "Santana-RegularCondensed,Regular,a,,,", + "Sarabun,Bold,,5123,12,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Sarala,Bold,,515,,a", + ",Regular,,,,a", + "Sarina,,,3,13,", + "Sarpanch,Black,,513,4,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Sary Soft,ExtraLight,,1,12,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Satisfy,Regular,,,13,", + "Sawarabi Gothic,Medium,,139,12,", + ",Regular,,,,a", + "Sawarabi Mincho,Medium,,131,,", + ",Regular,,,,a", + "Scada,Bold,,11,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "Scheherazade,Bold,,33,14,", + ",Regular,,,,", + "Schoolbell,,a,1,8,", + ",,,,6,a", + "Scope One,,,3,14,a", + "Scratch,,a,1,6,", + "Scriptina,,a,,13,", + "Scriptina - Alternates,,a,0,,", + "Scriptina Pro,,a,3,,", + "Sears Tower,,a,1,17,", + "SeasideResortNF,,a,,11,", + "Seaweed Script,,,,4,a", + "Secular One,,,19,12,a", + "Sedgwick Ave,,,4099,4,", + "Sedgwick Ave Display,,,,,", + "Sedgwick Co,,a,0,,", + "Selawik,Bold,,3,12,", + ",Light,,,,", + ",Regular,,,,", + ",Semibold,,,,", + ",Semilight,,,,", + "Selima,Regular,a,1,13,", + "Sen,Bold,,3,12,", + ",ExtraBold,,,,", + ",Regular,,,,", + "Seshat,,,1,14,", + "Sesquipedalian,,a,0,11,", + "Sevillana,,,1,13,", + "Seymour One,Book,a,11,12,a", + "Shadows Into,Light,ShadowsIntoLight,3,6,a", + "Shadows Into Light,Two,ShadowsIntoLightTwo-Regular,,,a", + "ShangriLaNF,Regular,a,1,4,", + "ShangriLaNFSmallCaps,,a,,,", + "Shangshung Sgoba-KhraChen,,Shangshung-Sgoba-KhraChen,257,10,ex/tib/S12/Shangshung-sgoba-khrachen.ttf", + "Shangshung Sgoba-KhraChung,,Shangshung-Sgoba-KhraChung,,,ex/tib/S12/Shangshung-sgoba-khrachung.ttf", + "Shanti,,a,1,12,", + "Share,Bold,,,,", + "Share-BoldExp,Regular,a,,,", + "Share,Bold Italic,,,,", + "Share-BoldItalicExp,Regular,a,,,", + "Share-BoldItalicOSF,,a,,,", + "Share-BoldOSF,,a,,,", + "Share,Italic,,,,", + "Share-ItalicExp,Regular,a,,,", + "Share-ItalicOSF,,a,,,", + "Share,,,,,", + "Share-RegularExp,,a,,,", + "Share-RegularOSF,,a,,,", + "Share-Tech,,a,,,", + "Share-TechExp,,a,,,", + "Share-TechMono,,a,,,", + "Share-TechMonoExp,,a,,,", + "Share Tech,,,,,a", + "Share Tech Mono,,,,7,a", + "Shojumaru,,,3,8,", + "Short Stack,,a,1,6,", + "Shrikhand,,,,14,", + "Siemreap,,a,2048,4,a", + "Sigmar,,a,3,,", + "Sigmar One,,,4099,,a", + "Signika,Bold,,1,12,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",Semibold,,,,", + "Signika Negative,Bold,,,,a", + ",Light,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Silkscreen,Normal,a,0,9,", + ",Bold,,,,", + "Silkscreen Expanded,Normal,Silkscreen-Expanded,,,", + ",Bold,Silkscreen-ExpandedBold,,,", + "Simonetta,Black,,1,14,", + ",Black Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Simpel,Medium,,3,12,", + "Sinkin Sans,100 Thin,,,,", + ",100 Thin Italic,,,,", + ",200 X Light,,,,", + ",200 X Light Italic,,,,", + ",300 Light,,,,", + ",300 Light Italic,,,,", + ",400 Italic,,,,", + ",400 Regular,,,,", + ",500 Medium,,,,", + ",500 Medium Italic,,,,", + ",600 SemiBold,,,,", + ",600 SemiBold Italic,,,,", + ",700 Bold,,,,", + ",700 Bold Italic,,,,", + ",800 Black,,,,", + ",800 Black Italic,,,,", + ",900 X Black,,,,", + ",900 X Black Italic,,,,", + "Sintony,Regular,a,1,,a", + ",Bold,,,,a", + ",Regular,,,,", + "SirinStencil,,,,4,a", + "Six Caps,,a,3,,", + "Sjonarbok Classic,,Sjonarbok-Classic,0,8,", + "Skranji,,a,1,4,", + ",Bold,,,,", + "Slabo 13px,Regular,,3,15,", + "Slabo 27px,,,,,", + "Slackey,,,1,4,a", + "Slim Jim,,a,,12,", + "Sling,Normal,a,0,14,", + ",Bold,,,,", + ",Light,,,,", + "Slukoni,Medium,,,4,", + "Smokum,Regular,,3,,", + "Smythe,,a,1,,a", + "Snickles,,a,0,6,", + "Sniglet,ExtraBold,,1,4,", + ",Regular,,,,", + "Snippet,,a,,12,a", + "Snowburst One,,,,4,a", + "Sofadi One,,,,,", + "Sofia,,,,6,a", + "Solveig,Bold,SolveigBold,3,12,", + ",Bold Italic,SolveigBold-Italic,,,", + "Solveig Demi,Bold,SolveigDemiBold,,,", + ",Bold Italic,SolveigDemiBold-Italic,,,", + "Solveig Display,Regular,a,,,", + ",Italic,,,,", + "Solveig Text,Regular,a,,,", + ",Italic,,,,", + "Song Myung,Regular,,0,14,a", + "Sonsie One,,a,3,4,", + ",,,,,a", + "Soria,Soria,,0,14,", + "Sorts Mill Goudy,Italic,,3,,a", + ",Regular,,,,a", + "SouciSans,,a,1,4,", + "SoukouMincho,,a,140,14,", + "Source Code Pro,Black,,4111,7,", + ",Black Italic,SourceCodePro-BlackIt,4099,,", + ",Bold,,4111,,", + ",Bold Italic,SourceCodePro-BoldIt,4099,,", + ",ExtraLight,,4111,,", + ",ExtraLight Italic,SourceCodePro-ExtraLightIt,4099,,", + ",Italic,SourceCodePro-It,,,", + ",Light,,4111,,", + ",Light Italic,SourceCodePro-LightIt,4099,,", + ",Medium,,4111,,", + ",Medium Italic,SourceCodePro-MediumIt,4099,,", + ",Regular,,4111,,", + ",Semibold,,,,", + ",Semibold Italic,SourceCodePro-SemiboldIt,4099,,", + "Source Han Sans,Bold,,4301,12,ex/shs/SourceHanSans-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSans-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSans-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSans-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSans-Medium.ttc", + ",Normal,,,,ex/shs/SourceHanSans-Normal.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans HC,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSans-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSans-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSans-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSans-Medium.ttc", + ",Normal,,,,ex/shs/SourceHanSans-Normal.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans HW,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans HW HC,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans HW K,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans HW SC,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans HW TC,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans K,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSans-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSans-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSans-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSans-Medium.ttc", + ",Normal,,,,ex/shs/SourceHanSans-Normal.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans SC,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSans-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSans-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSans-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSans-Medium.ttc", + ",Normal,,,,ex/shs/SourceHanSans-Normal.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Sans TC,Bold,,,,ex/shs/SourceHanSans-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSans-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSans-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSans-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSans-Medium.ttc", + ",Normal,,,,ex/shs/SourceHanSans-Normal.ttc", + ",Regular,,,,ex/shs/SourceHanSans-Regular.ttc", + "Source Han Serif,Bold,,,,ex/shs/SourceHanSerif-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSerif-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSerif-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSerif-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSerif-Medium.ttc", + ",Regular,,,,ex/shs/SourceHanSerif-Regular.ttc", + ",SemiBold,,,,ex/shs/SourceHanSerif-SemiBold.ttc", + "Source Han Serif K,Bold,,,,ex/shs/SourceHanSerif-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSerif-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSerif-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSerif-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSerif-Medium.ttc", + ",Regular,,,,ex/shs/SourceHanSerif-Regular.ttc", + ",SemiBold,,,,ex/shs/SourceHanSerif-SemiBold.ttc", + "Source Han Serif SC,Bold,,,,ex/shs/SourceHanSerif-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSerif-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSerif-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSerif-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSerif-Medium.ttc", + ",Regular,,,,ex/shs/SourceHanSerif-Regular.ttc", + ",SemiBold,,,,ex/shs/SourceHanSerif-SemiBold.ttc", + "Source Han Serif TC,Bold,,,,ex/shs/SourceHanSerif-Bold.ttc", + ",ExtraLight,,,,ex/shs/SourceHanSerif-ExtraLight.ttc", + ",Heavy,,,,ex/shs/SourceHanSerif-Heavy.ttc", + ",Light,,,,ex/shs/SourceHanSerif-Light.ttc", + ",Medium,,,,ex/shs/SourceHanSerif-Medium.ttc", + ",Regular,,,,ex/shs/SourceHanSerif-Regular.ttc", + ",SemiBold,,,,ex/shs/SourceHanSerif-SemiBold.ttc", + "Source Sans Pro,Black,,4111,,", + ",Black Italic,SourceSansPro-BlackIt,4099,,", + ",,,,,a", + ",Bold,,4111,,", + ",Bold Italic,SourceSansPro-BoldIt,4099,,", + ",,,,,a", + ",ExtraLight,,4111,,", + ",ExtraLight Italic,SourceSansPro-ExtraLightIt,4099,,", + ",,,,,a", + ",Italic,SourceSansPro-It,,,", + ",,,,,a", + ",Light,,4111,,", + ",Light Italic,SourceSansPro-LightIt,4099,,", + ",,,,,a", + ",Regular,,4111,,", + ",SemiBold,,,,a", + ",SemiBold Italic,,4099,,a", + ",Semibold,,4111,,", + ",Semibold Italic,SourceSansPro-SemiboldIt,4099,,", + "Source Serif Pro,Black,,4111,14,", + ",Black Italic,SourceSerifPro-BlackIt,3,,", + ",Bold,,4111,,", + ",Bold Italic,SourceSerifPro-BoldIt,3,,", + ",ExtraLight,,4111,,", + ",ExtraLight Italic,SourceSerifPro-ExtraLightIt,3,,", + ",Italic,SourceSerifPro-It,,,", + ",Light,,4111,,", + ",Light Italic,SourceSerifPro-LightIt,3,,", + ",Regular,,4111,,", + ",Semibold,,,,", + ",Semibold Italic,SourceSerifPro-SemiboldIt,3,,", + "Space Grotesk,Bold,,,12,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Space Mono,Bold,,4099,7,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Spartan MB,Black,,1,12,", + ",Bold,,,,", + ",ExtraBold,,,,", + ",Light,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",Thin,,,,", + "Special Elite,Regular,,3,17,", + "Spectral,Bold,,4107,14,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Spectral SC,Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Spicy Rice,Regular,,3,4,a", + "Spilt Ink,,a,0,8,", + "Spin Cycle 3D OT,,a,1,4,", + "Spin Cycle OT,,a,,,", + "Spinnaker,,,,12,a", + "Spirax,,,,4,", + "Sporting Grotesque,Bold,,5,12,", + ",Regular,,,,", + "Sportrop,,,3,4,", + "Squada One,,,1,,", + "Sree Krushnadevaraya,,a,0,14,a", + "Sriracha,,,5123,6,a", + "Srisakdi,Bold,,,4,a", + ",Regular,,,,a", + "St Marie,Thin,,3,15,", + "Staatliches,Regular,,,4,a", + "Stalemate,,,,6,a", + "Stalinist One,,,9,4,a", + "Stardos Stencil,Bold,,1,16,", + ",Regular,,,,", + "StateFace,,,0,3,", + "Stilu,Bold,,1,12,", + ",Bold Oblique,,,,", + ",Light,,,,", + ",Light Oblique,,,,", + ",Oblique,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Oblique,,,,", + "Stint Ultra Condensed,Regular,,3,4,a", + "Stint Ultra Expanded,,,,,a", + "Stoke,Light,,,14,a", + ",Regular,,,,a", + "Strait,,,1,12,a", + "Studebaker,,a,0,11,", + "Stylish,,,64,12,", + "Subjectivity,Black,,3,,", + ",Black Slanted,,,,", + ",Bold,,,,", + ",Bold Slanted,,,,", + ",Extra Bold,,,,", + ",Extra Bold Slanted,,,,", + ",Light,,,,", + ",Light Slanted,,,,", + ",Medium,,,,", + ",Medium Slanted,,,,", + ",Regular,,,,", + ",Regular Slanted,,,,", + ",Super,,,,", + ",Super Slanted,,,,", + ",Thin,,,,", + ",Thin Slanted,,,,", + "Sue Ellen Francisco ,Regular,a,1,6,a", + "Suez One,,,19,14,a", + "Sumana,Bold,,513,,a", + ",Regular,,,,a", + "Sunflower,Bold,,0,12,a", + ",Light,,,,a", + ",Medium,,,,a", + "Sunshiney,Regular,,1,6,a", + "Supermercado,,,3,4,", + "Sura,Bold,,512,14,a", + ",Regular,,,,a", + "Suranna,,a,0,,a", + "Suravaram,,a,,,a", + "Surface,Medium,,1,12,", + "Suwannaphum,Regular,,2048,4,a", + "Swanky and Moo Moo,,a,3,6,a", + "Symbol Signs,Basis set,,0,3,", + "Syncopate,Bold,,3,4,", + ",Regular,,,,", + "Syne,Bold,,,12,", + ",Extra,,,,", + ",Italic,,,,", + ",Mono,,,,", + ",Regular,,,,", + "Synthetique OT,,a,1,4,", + "TCRC Youtso Unicode,,a,256,10,ex/tib/S12/TCRC Youtso Uni.ttf", + "210 Sunflower,Light,TTSunflowerL,12,,ex/sunflower.ttf", + "Tagapagsalaysay Caps (Narrator),Regular,TagapagsalaysayCapsNarrator,0,2,", + ",Bold,TagapagsalaysayCapsNarratorBold,,,", + ",BoldItalic,TagapagsalaysayCapsNarratorBoldItalic,,,", + ",Italic,TagapagsalaysayCapsNarratorItalic,,,", + "Tajawal,Black,,1,12,a", + ",Bold,,,,a", + ",ExtraBold,,,,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + "Tangerine,,a,,13,", + ",Bold,,,,", + ",Regular,,,6,a", + "Taprom,,a,2048,4,a", + "TarponMotel,,a,1,12,", + "Tauri,,TauriRegular,,,a", + "Taviraj,Black,,5123,14,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "TeX Gyre Adventor,Bold,,4111,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "TeX Gyre Bonum,Bold,,,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "TeX Gyre Cursor,Bold,,,7,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "TeX Gyre Heros,Bold,,,12,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "TeX Gyre Heros Cn,Bold,TeXGyreHerosCondensed-Bold,,,", + ",Bold Italic,TeXGyreHerosCondensed-BoldItalic,,,", + ",Italic,TeXGyreHerosCondensed-Italic,,,", + ",Regular,TeXGyreHerosCondensed-Regular,,,", + "TeX Gyre Pagella,Bold,,,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "TeX Gyre Schola,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "TeX Gyre Termes,Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Techna Sans,,,1,12,", + "Technique BRK,Normal,a,0,4,", + "Technique OL BRK,,a,,,", + "Tecnico,Fino,TecnicoFino,4,12,", + ",FinoInclinado,TecnicoFinoInclinado,,,", + ",Grueso,TecnicoGrueso,,,", + ",GruesoInclinado,TecnicoGruesoInclinado,,,", + "Teko,Bold,,513,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Telex,Regular,,1,,", + "Tenali Ramakrishna,,a,0,,a", + "Tenderness,,a,,,", + "Tenor Sans,,a,11,,a", + "Teutonic No1,DemiBold,,0,0,", + "Teutonic No2,,,,,", + "Teutonic No3,,,,,", + "Teutonic No4,,,,,", + "Text Me One,Regular,,1,12,a", + "Thasadith,Bold,,5123,,a", + ",Bold Italic,,,,a", + ",Italic,,,,a", + ",Regular,,,,a", + "The Girl Next Door,,a,3,6,a", + "Theano Didot,,,7,14,", + "Theano Modern,,,,,", + "Theano Old Style,,,,,", + "The script of Zhangzhung Smar,,a,257,10,ex/tib/S12/Shangzhung-Smar.ttf", + "Tibetan Machine Uni,,a,259,,ex/tib/S12/TibetanMachineUni.ttf", + "TibetanYigchung,,TibetanSambhotaYigchung,256,,ex/tib/S12/SambhotaYigchung.ttf", + "TibetanTsugRing,,a,,,ex/tib/S12/SambhotaTsugRing.otf", + "Tienne,,a,1,15,", + ",Black,,,14,a", + ",Bold,,,15,", + ",Heavy,,,,", + ",Regular,,,14,a", + "Tillana,Bold,,513,6,", + ",ExtraBold,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Timmana,Regular,a,0,12,a", + "Tinet,,a,1,6,", + "Tinos,,a,4127,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,a", + "Tiresias Infofont,,a,1,12,", + ",Italic,TiresiasInfofontItalic,,,", + "Titan One,Regular,a,3,4,", + "Titillium,Black,,,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Bold Upright,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Light Upright,,,,", + ",Regular,,,,", + ",Regular Italic,,,,", + ",Regular Upright,,,,", + ",Semibold,,,,", + ",Semibold Italic,,,,", + ",Semibold Upright,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + ",Thin Upright,,,,", + "Titillium Web,Black,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + "Tiza,Regular,a,1,4,", + "Top Secret,Bold,,0,16,", + "Trade Winds,Regular,a,1,4,", + "TrashHand,,a,,6,", + "Trendy University,,a,0,16,", + "Trickster,,,3,0,", + "Trirong,Black,,5123,14,a", + ",Black Italic,,,,a", + ",Bold,,,,a", + ",Bold Italic,,,,a", + ",ExtraBold,,,,a", + ",ExtraBold Italic,,,,a", + ",ExtraLight,,,,a", + ",ExtraLight Italic,,,,a", + ",Italic,,,,a", + ",Light,,,,a", + ",Light Italic,,,,a", + ",Medium,,,,a", + ",Medium Italic,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Thin,,,,a", + ",Thin Italic,,,,a", + "Trocchi,Regular,a,3,15,", + ",Bold,,0,,", + ",Regular,,3,14,a", + "Trochut,,a,1,4,a", + ",Bold,,,,a", + ",Italic,,,,a", + "TroglodyteNF,Regular,a,,11,", + "Troika,,a,15,4,", + "True Crimes,,a,0,11,", + "Trump Town Pro,,a,3,4,", + "Trykker,,,,14,", + "Tuffy,,a,15,12,", + ",Bold,,,,", + ",Bold-Italic,,,,", + ",Italic,,,,", + "Tulia,Regular,a,1,15,", + ",Bold,,,,", + ",Italic,,,,", + "Tulpen One,Regular,,,4,", + "TypeMyMusic,Notation,,0,3,", + "TypoSlabserif,Light,,1,15,", + "Ubuntu,Regular,a,15,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,a", + "Ubuntu-Title,Title,a,0,4,", + "Ubuntu Condensed,Regular,,15,12,", + "Ubuntu Mono,Bold,,,7,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Ubuntu Titling,Bold,,1,4,", + "UglyQua,Regular,a,,,", + ",Italic,,,,", + "Ultra,Regular,a,3,,", + ",,,,14,a", + "Umbrage,,a,1,4,", + "UnB Office,,a,15,12,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,1,,", + "UnB Pro,Black,,3,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Light,,,,", + ",Regular,,,,", + ",Regular Italic,,,,", + "Uncial Antiqua,Regular,,,4,a", + "Underdog,,,11,,a", + "Underwood Champion,,a,1,17,", + "Unica One,,,3,4,a", + "UnifrakturCook,Bold,,1,,a", + "UnifrakturMaguntia,Book,a,3,0,", + ",16 Book,UnifrakturMaguntia16,0,,", + ",17 Book,UnifrakturMaguntia17,,,", + ",18 Book,UnifrakturMaguntia18,,,", + ",19 Book,UnifrakturMaguntia19,,,", + ",20 Book,UnifrakturMaguntia20,,,", + ",21 Book,UnifrakturMaguntia21,3,,", + "Unkempt,Bold,,1,4,a", + ",Regular,,,,a", + "Unlock,,,,,a", + "Unna,Bold,,4099,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + "UpperEastSide,,a,1,11,", + "Utility,BoldCondensed,UtilityBoldCondensed,0,4,", + "VAG-HandWritten,VAG-HandWritten,a,4,6,", + "VG5000,Regular,,1,12,", + "VT323,,,4099,9,", + "VTC Letterer Pro,,a,0,2,", + "VTF Victorianna,Thin,VTFVictoriannaThin,1,15,", + ",Thin Italic,VTF_VictoriannaThin_italic,,,", + "Vampiro One,Regular,,,13,", + "VanBerger,Stencil,,,16,", + "Vanilla,Regular,a,0,4,", + "Varela,,a,4099,12,", + "Varela Round,,a,1,,", + ",,,4115,,a", + "Vast Shadow,,,1,4,", + "Veggieburger,,a,,,", + ",Bold,,,,", + ",Light,,,,", + "Vegur,Bold,,,12,", + ",Light,,,,", + ",Regular,,,,", + "Verily Serif Mono,Book,a,,14,", + "Versa,Versa,,3,4,", + "Vesper Libre,Bold,,513,14,", + ",Heavy,,,,", + ",Medium,,,,", + ",Regular,,,,", + "Veteran Typewriter,,a,0,17,", + "Vibur,Medium,a,1,13,", + "Vidaloka ,Regular,,,4,", + "Viga,,,,12,", + "Virgo 01,,a,,4,", + "Vladivostok,Bold,,11,12,", + ",Regular,,,,", + "Voces,,,3,4,a", + "Volkhov,Bold,,1,14,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + "Vollkorn,Black,,4111,,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,a", + ",SemiBold Italic,,,,a", + ",Semibold,,,,", + ",Semibold Italic,,,,", + "Vollkorn SC,Black,,4107,,a", + ",Bold,,,,a", + ",Regular,,,,a", + ",SemiBold,,,,a", + "Voltaire,Regular,a,1,4,", + "WC Mano Negra Bta,,a,,6,", + ",Bold,,,,", + "WC ROUGHTRAD Bta,Regular,a,,4,", + "WC Rhesus,A Bta,WCRhesusABta,,3,", + ",B Bta Italic,WCRhesusBBta,,,", + "WC Sold Out,A Bta,WCSoldOutABta,0,,", + ",B Bta,WCSoldOutBBta,,,", + ",C Bta,WCSoldOutCBta,7,,", + "WC Wunderbach,Bta DemiBold,WCWunderbachBta-DemiBold,1,16,", + ",Mix Bta,WCWunderbachMixBta,,,", + ",Rough Bta,WCWunderbachRoughBta,,,", + ",Rounded,WCWunderbachRounded,,,", + "Wagnasty,Regular,a,0,6,", + "Waiting for the Sunrise,,a,3,,a", + "Walkway,Black,WalkwayBlack,1,12,", + ",Bold,WalkwayBold,,,", + ",Oblique,WalkwayOblique,,,", + ",Oblique Black,WalkwayObliqueBlack,,,", + ",Oblique Bold,WalkwayObliqueBold,,,", + ",Oblique SemiBold,WalkwayObliqueSemiBold,,,", + ",Oblique UltraBold,WalkwayObliqueUltraBold,,,", + ",SemiBold,WalkwaySemiBold,,,", + ",UltraBold,WalkwayUltraBold,,,", + "Walleye,Regular,a,15,14,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",Italic,,,,", + "Wallpoet,Regular,a,1,4,a", + "Walter Turncoat,,a,,13,", + ",,,,6,a", + "Wangdi,Medium,,257,10,ex/tib/S12/Wangdi.ttf", + "Warnes,Regular,,1,4,a", + "Water Street,,a,0,,", + "Water Street Detour,,a,,,", + "WebHostingHub-Glyphs,,a,,3,", + "Web Serveroff,,a,11,12,", + ",Italic,,,,", + "Web Symbols,Regular,,0,3,", + "Wellfleet,,,3,4,", + "Wendy One,,,1,12,a", + "White Rabbit,,a,0,,", + "Whitehall,,a,1,4,", + "Windsong,,a,,13,", + "WinterthurCondensed,,a,,12,", + ",Italic,WinterthurCondensedOblique,,,", + "Wire One,Regular,a,,,a", + "WoodenNickelBlack,,a,,11,", + "Work Sans,Black,,4099,12,", + ",Black Italic,,,,", + ",Bold,,,,", + ",Bold Italic,,,,", + ",ExtraBold,,,,", + ",ExtraBold Italic,,,,", + ",ExtraLight,,,,", + ",ExtraLight Italic,,,,", + ",Hairline,,3,,", + ",Italic,,4099,,", + ",Light,,,,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + ",Thin,,,,", + ",Thin Italic,,,,", + "XTashi,Regular,a,259,10,ex/tib/S12/XTashi.ttf", + "Xenophone,,a,1,4,", + "Yanone Kaffeesatz,Bold,,4107,12,a", + ",ExtraLight,,,,a", + ",Light,,,,a", + ",Regular,,,,a", + "Yantramanav,Black,,513,,a", + ",Bold,,,,a", + ",Light,,,,a", + ",Medium,,,,a", + ",Regular,,,,a", + ",Thin,,,,a", + "Yataghan,Regular,a,1,4,", + "Yatra One,,,513,,a", + "Yellow Magician,,a,1,,", + "Yellowtail,,a,3,6,", + ",,,,,a", + "Yeon Sung,,,0,4,a", + "Yeseva One,,a,11,,", + ",,,4107,,a", + "Yesteryear,,,3,6,a", + "Yew Basturd,Bold,YewBasturdBold,0,2,", + ",BoldItalic,YewBasturdBoldItalic,,,", + ",Italic,YewBasturdItalic,,,", + ",Normal,YewBasturdNormal,,,", + "Yokawerad,Regular,a,11,14,", + "YoungSerif,,,3,,", + "Yrsa,Bold,,,,", + ",Light,,,,", + ",Medium,,,,", + ",Regular,,,,", + ",SemiBold,,,,", + "Yukarimobile,Regular,a,1,4,", + "ZCOOL KuaiLe,,,128,,a", + "ZCOOL QingKe HuangYou,,,,,a", + "ZCOOL XiaoWei,,,,14,a", + "Zambajoun,,a,0,8,", + "Zantroke,,a,11,15,", + "Zenda,,a,0,0,", + "Zero & Zero Is,,Zero&Zero-Is,,4,", + "Zeyada,,a,3,6,a", + "Zilla Slab,Bold,,,15,", + ",Bold Italic,,,,", + ",Italic,,,14,a", + ",Light,,,15,", + ",Light Italic,,,,", + ",Medium,,,,", + ",Medium Italic,,,,", + ",Regular,,,14,a", + ",Regular Italic,,,15,", + ",SemiBold,,,,", + ",SemiBold Italic,,,,", + "Zilla Slab Highlight,Bold,,,,", + ",Regular,,,,", + "Zilla Slab,,ZillaSlabRegular,,,", + "Znikomit,,a,11,14,", + "ZnikomitNo24,,a,,4,", + "exotica,Medium,,0,,", + "Heydings Controls,Regular,font3933,,3,", + "iA Writer Duospace,Bold,,4099,12,", + ",BoldItalic,,,,", + ",Regular,,,,", + ",RegularItalic,,,,", + "itsadzoke,Regular,a,3,4,", + ",S01,itsadzokeS01,,,", + "kawoszeh,Medium,a,,14,", + "konstytucyja,,a,,13,", + "mirror 82,Regular,a,9,12,", + "M+ 1c,black,mplus-1c-black,128,,", + ",bold,mplus-1c-bold,,,", + ",heavy,mplus-1c-heavy,,,", + ",light,mplus-1c-light,,,", + ",medium,mplus-1c-medium,,,", + ",regular,mplus-1c-regular,,,", + ",thin,mplus-1c-thin,,,", + "M+ 1m,bold,mplus-1m-bold,,7,", + ",light,mplus-1m-light,,,", + ",medium,mplus-1m-medium,,,", + ",regular,mplus-1m-regular,,,", + ",thin,mplus-1m-thin,,,", + "odstemplik,Regular,a,3,13,", + ",Bold,odstemplikBold,,,", + "okolaks,,okolaksBold,11,14,", + ",BoldItalic,okolaksBoldItalic,,,", + ",Regular,okolaksRegular,,,", + ",RegularItalic,okolaksRegularItalic,,,", + "saxMono,Regular,a,3,7,", + "spinwerad,Bold,spinweradBold,,14,", + "spinweradC,,spinweradCBold,,," + ] +}; +var LNG = { + "langs": [ + { + "name": "English", + "code": "en", + "table": 0 + }, + { + "name": "Česky", + "code": "cs", + "table": 1 + }, + { + "name": "Español", + "code": "es", + "table": 2 + }, + { + "name": "Deutsch", + "code": "de", + "table": 3 + }, + { + "name": "Français", + "code": "fr", + "table": 4 + }, + { + "name": "Ελληνικά", + "code": "el", + "table": 5 + }, + { + "name": "العربية", + "code": "ar", + "table": 6 + }, + { + "name": "Português", + "code": "pt", + "table": 7 + }, + { + "name": "Русский", + "code": "ru", + "table": 8 + }, + { + "name": "Українська", + "code": "uk", + "table": 9 + }, + { + "name": "עברית", + "code": "he", + "table": 10 + }, + { + "name": "Hrvatski", + "code": "hr", + "table": 11 + }, + { + "name": "Italiano", + "code": "it", + "table": 12 + }, + { + "name": "Română", + "code": "ro", + "table": 13 + }, + { + "name": "Nederlands", + "code": "nl", + "table": 14 + }, + { + "name": "Svenska", + "code": "sv", + "table": 15 + }, + { + "name": "Dansk", + "code": "da", + "table": 16 + }, + { + "name": "Suomi", + "code": "fi", + "table": 17 + }, + { + "name": "Slovenščina", + "code": "sl", + "table": 18 + }, + { + "name": "Türkçe", + "code": "tr", + "table": 19 + }, + { + "name": "Polski", + "code": "pl", + "table": 20 + }, + { + "name": "Bahasa Indonesia", + "code": "id", + "table": 21 + }, + { + "name": "简化字 中文", + "code": "zh-CN", + "table": 22 + }, + { + "name": "正體字 中文", + "code": "zh-HK", + "table": 23 + }, + { + "name": "ภาษาไทย", + "code": "th", + "table": 24 + }, + { + "name": "日本語", + "code": "ja", + "table": 25 + }, + { + "name": "한국어", + "code": "ko", + "table": 26 + }, + { + "name": "Português do Brasil", + "code": "pt-BR", + "table": 27 + }, + { + "name": "Magyar", + "code": "hu", + "table": 28 + }, + { + "name": "Slovenčina", + "code": "sk", + "table": 29 + }, + { + "name": "Tiếng Việt", + "code": "vi", + "table": 30 + }, + { + "name": "Български език", + "code": "bg", + "table": 31 + }, + { + "name": "Српски језик", + "code": "sr", + "table": 32 + }, + { + "name": "Shqip", + "code": "sq", + "table": 33 + }, + { + "name": "தமிழ்", + "code": "ta", + "table": 34 + }, + { + "name": "བོད་ཡིག", + "code": "bo", + "table": 35 + }, + { + "name": "Català", + "code": "ca", + "table": 36 + }, + { + "name": "Norsk", + "code": "no", + "table": 37 + }, + { + "name": "Eesti", + "code": "et", + "table": 38 + }, + { + "name": "Lietuvių", + "code": "lt", + "table": 39 + } + ], + "tables": [ + "[File;Edit;Image;Layer;Folder;Select;Filter;View::noun (Top Menu);Window;Language;Log In;Log Out;Create translation::Click it to get to www.Photopea.com/translate;[Account;Terms of Service;Back;About::\"About a program\" - the orange button at the top;Report a bug;Learn];More;Theme;Use WebGL;[Photopea: advanced image editor::The header at the top of the page;Free online editor supporting PSD, XCF, Sketch, XD and CDR formats.::Will be at the top of the page;Create a new image or open existing files from your computer. Save your work as PSD (File - Save as PSD) or as JPG / PNG / SVG (File - Export as).::Will be at the top of the page;Suggest new features at our or . Our goal is to create .::Parts between < and > will become links.;Sponsor links open in a new window.;This feature is not available.;Install Photopea]];[Open::verb;Publish online;Save::verb;Save as PSD;Print::Press to print on a printer;Open from URL;Open From Computer;Connect With Google Drive;Export as;Export Layers;Script;Open & Place::Open a document and insert it into a current document;Close;Local Storage;File Info];[Step Forward::In history of changes;Step Backward::In history of changes;Clear::Verb, press to clear the selected area;Fill::Verb, press to fill the selected area;Transform::Transform the image;Rotate;Flip VAR0::VAR0 will be replaced with Horizontally/Vertically;Scale VAR0::VAR0 will be replaced with Horizontally/Vertically;Undo / Redo;Perspective;[Auto-Blend::Auto-Blend layers together;Auto-Align::Auto-Align layers against each other];Fade;Apply Image];Adjustments;[Brightness/Contrast;Levels::Levels adjustment;Curves::Curves adjustment;Exposure;Vibrance;Hue/Saturation;Color Balance;Black & White;Photo Filter;Channel Mixer;Color Lookup;Invert;Posterize;Threshold;Gradient Map;Selective Color;[Auto Tone;Auto Contrast;Auto Color];Replace Color];[Cut;Copy;Paste::like \"insert\", not like \"toothpaste\";New;Delete;Enable;Disable;Copy Merged::Copy not from a layer, but from all layers (all merged together);Apply::Apply Mask - \"combine\" it with a layer;Again::Repeat the same aciton one more time;Update::A verb];[Duplicate Layer;New Adjustment Layer;Raster Mask;Vector Mask;Add (Reveal All)::Add a mask;[Add (Hide All)::Add a mask;Reveal Selection;Hide Selection;From Transparency];[Clipping Mask;Quick Mask Mode];Convert to Smart Object;Rasterize::Convert Text layer/vector layer to pixels;Group Layers::Put selected layers into a new group;Merge Down::Merge a layer with one below it;Merge Up::Merge a layer with one above it;[Merge Layers::Merge selected layers;Flatten Image::Merge all layers in a document into one];New Layer;Enable Raster Mask;Disable Raster Mask;Enable Vector Mask;Disable Vector Mask;Enable Clipping Mask;Disable Clipping Mask;New Folder;Add Raster Mask;Delete Raster Mask;Add Vector Mask;Delete Vector Mask;Link Raster Mask;Unlink Raster Mask;Link Vector Mask;Unlink Vector Mask;Enable Layer Effects;Disable Layer Effects;Delete Layer;Layer Opacity Change;Blending Change;Rasterize Layer Style;Layer Order::Name of the step, when reordering layers;[Creating Smart Object;Updating Smart Object;Placing Smart Object;Source (Smart Object);Stack Mode::the mode of combining (stacking) multiple images into one];Name Change;Color Change;Edit Adjustment Layer;Convert to Shape;Enable Filter Mask;Disable Filter Mask;Enable Smart Filters;Disable Smart Filters;Add Filter Mask;Delete Filter Mask;Clear Smart Filters;[[Color Fill;Gradient Fill;Pattern Fill;Content Aware];New Fill Layer;Modify Fill Layer];Layer Via Copy;Filter Mask;Delete Layer Style;Move Smart Filter;Delete Smart Filter;[Link Layers;Unlink Layers];Arrange::Arrange layers;[Bring to Front;Bring Forward;Send Backward;Send to Back];[This layer is Locked.;Lock Change;Lock::verb - lock this, lock that];Animation];[All::As in Select - All;Deselect;Inverse;Modify;Expand::Expand Selection;Contract;Feather::Feather (blur) a Selection;Move Selection;Color Range;Border::The border of a Selection;Transform Selection;Refine Edge::A tool for improving the edge of a selection;Heal Selection;Magic Cut];[Zoom In;Zoom Out;Guides::Vertical and horizontal lines over the image, to help us be more precise;Rulers;Grid;Snap::When moving objects, they will \"stick\" to other objects, guides, etc.;Snap To;Document Bounds;Pixel Grid;Paths::Elements of vector graphics;Snap to Pixels;[Slices;Slice Options];Show::A verb: to show.];[History::History of steps;Layers;Properties;Brush::A brush tool;Character::= a Letter (like a, b, c, ...);Paragraph;Info;Layer Comps::Compositions of layers;Swatches::Gallery of colors;Actions;Histogram::Usually the same in other languages;Navigator;Tool Presets;Glyphs];[Brush Tool;Clone Tool;Crop Tool;Eraser Tool;Ellipse Select;Eyedropper::A tool to pick color from the image;Gradient Tool;Hand Tool::To move (pan) across the image area;Type Tool;Lasso Select;Magnetic Lasso Select;Move Tool;Magic Wand;Paint Bucket Tool;Polygonal Lasso Select;Rectangle Select;Free Transform;Zoom Tool;Blur Tool;Sharpen Tool;Smudge Tool;Dodge Tool::Make Brighter;Burn Tool::Make Darker;Sponge Tool::Desaturate;Spot Healing Brush Tool;Healing Brush Tool;Patch Tool::Cut from one place and put to another place;Path Select::a tool to select / move paths;Direct Select::a tool to select / move knots of paths;Pen;Free Pen::Draw freely with this pen;Custom Shape;Rectangle;Ellipse;Parametric Shape;Line;Ruler::A ruler tool to measure distances;Quick Selection;Pencil Tool;Perspective Crop;Slice Tool;Slice Select Tool;Color Replacement;Red Eye Tool;Object Selection;Background Eraser;Puppet Warp;Rotate View;Content-Aware Scale;Content-Aware Move Tool];[Take a picture::Press the button to take a picture;Color Picker;Contour Editor;Canvas Size;Duplicate Into ...;Gradient Editor;Layer Style;New Project;Save for web;Warp;Image Size;Vectorize Bitmap::Convert raster pixels into vector paths;[Trim::cut away an empty area around the object;Crop::(verb) Crop the image;Reveal All];Keyboard Shortcuts;Add Guides;[Clear Guides;Guides from Layer]];[Opacity;Effects;Brightness;[Contrast;Use Legacy];Channel::Color Channel;Exposure;Offset;Gamma correction;Hue;Saturation;Lightness;Colorize;Range;Vibrance;[Size;Interpolation;Nearest Neighbor;Bilinear];Angle;Roundness;Hardness;Spacing;[Blend Mode;Blend If::Specifies a tonal range for blending];Sample Size;Contour;Style;[Reverse;Relative::When ON, you only write a number, which will be added to the original value;Anchor::To which side the object should be anchored];Tolerance;Contiguous;Fill::Noun, the content (filling) of something.;Use global angle;Distance;Spread::Spread the effected area;Noise::add random image noise;Knock out drop shadow::No drop shadow behind the object;Technique;Direction;Depth;Soften;Mode::One of possible modes of the effect;Gradient::from one color to another;Scale::scale the content - 10% or even 200%;Align with layer;Position::Position of the effect;Width;Height;Destination;Type;Foreground;Background;Custom::Color: not foreground or background, but a custom color;Name::Name of something;Create;Format;Keep Aspect Ratio;[Quality;Pages];Duplicate;Move::When you move layers, the Move step will be added to History;Smart Filters;Radius;Amount::Strength of the effect (0 ... 100);Distribution;[Uniform::uniform random distribution;Gaussian];Monochromatic;Cell Size::Mosaic filter creates \"cells\";Pattern;Flow::A brush has the opacity and the flow;Strength;Protect Detail;Fill Type;Texture;Jitter::Add Noise in Outer Glow;Edge::The inner glow is either from the center, or from the Edge;Source;Target;Channels;Mask::A noun, e.g. a vector mask or a raster mask ;Density;Aligned;[Path;Shape;Pixels;Inches;Centimeters;Millimeters;Percent];Shapes;Sides;Preferences;[Length;Ratio;Any::Any ratio of a rectangle;Grid Type;Isometric;Grid Gap;Ruler Units];Reduce noise;Colors;Distances;Rate::Liquify filter: Rate of modification;Auto-Select::Move tool option: click the object to select its layer;Find;Define New;[Photo;Screen::computer screen;Mobile::Mobile device;Ads::Advertisement;Print::A noun];[Free::Not Restricted / Not Limited;Fixed Ratio;Fixed Size];Help;[Live Shape::Shape, that can be reconstructed from parameters at any time;Edit Live Shape;Same Radii::all radiuses of a rectangle should be the same];Fuzziness;[Polygon;Star;Spiral;Square];[Corner Radius;Inner Radius]];[Color;[None::No Color;Red;Orange;Yellow;Green;Blue;Purple;Gray;White;Transparent;Black;Cyan::A color;Magenta::A color;Neutral::Apply to neutral colors];Total;Absolute;Preserve Luminosity];[Drop Shadow;Inner Shadow;Outer Glow;Inner Glow;Bevel and Emboss;Color Overlay;Gradient Overlay;Pattern Overlay;Satin;Stroke::Thick line around an object;Blending Options;Select Pixels];[Tip Shape;Tip Dynamics;Scatter::dont put brush exactly, but randomly around the target spot;Color Dynamics;[Size Jitter::change the size randomly;Minimal Diameter;Angle Jitter::change the angle randomly;Roundness Jitter::change the roundness randomly;Minimal Roundness];[Position Jitter;Count::The number of brush tips;Count Jitter];[Foreground/Background Jitter;Hue Jitter;Saturation Jitter;Brightness Jitter];[Select clone source by holding Alt (or K) and clicking on the image.;Mark Foreground with White, Background with Black, and the unknown area with Gray.;Layer is not editable.;Text Layer must be rasterized first;Smart Object must be rasterized first;Select multiple layers;Straighten Layer::Will rotate the layer, so that the horizon is horizontal;Open a document first.;Close the current window first.;Current Tool Only::Tool Presets only for the current tool];[Record::To record actions;New Action Set;New Action];[Stylus Pressure controls Opacity;Stylus Pressure controls Size];[Normal::One of Blend Modes (when empty, English version will be used);Dissolve::One of Blend Modes (when empty, English version will be used);Darken::...;Multiply::...;Color Burn::...;Linear Burn::...;Darker Color::...;Lighten;Screen;Color Dodge;Linear Dodge;Lighter Color;Overlay;Soft Light;Hard Light;Vivid Light;Linear Light;Pin Light;Hard Mix;Difference;Exclusion;Subtract;Divide;Hue;Saturation;Color;Luminosity;Pass Through::Blend Mode only for Folders]];[Leading::Text style - vertical distance between lines;Tracking::Text style - horizontal spacing between characters;Baseline shift::Move the bottom line of the text;[Convert to Point Text;Convert to Paragraph Text]];[All Layers;Current Layer;Selection;Current & Below::Current layers and all layers below it];[Replace::The new thing replaces the old one;Unite;Subtract;Intersect;Exclude;Merge];[[Linear;Radial;Angle;Reflected;Diamond;Shape Burst];[Softer;Precise];[Outer Bevel;Inner Bevel;Emboss;Pillow Emboss;Stroke Emboss;Stroke Width::The thickness of the stroke line (contour)];[Smooth::A verb: to smooth something;Chisel Hard;Chisel Soft;Smoothness];[Up;Down];[Outside;Center;Inside;From Center::Draw an object from the center];[Shadows;Midtones;Highlights];[Desaturate;Saturate];[Small;Medium;Large];[Caps;Corners;Dashes]];[Choose the object under the cursor;Transform controls;Pixel to Pixel::Zoom the image to 100% (1 image pixel = 1 screen pixel);Fit The Area;[Align Left Edges;Center Horizontally;Align Right Edges;Align Top Edges;Center Vertically;Align Bottom Edges;Equal Gaps::Equal spacing between objects]];[Place into::Place the new photo into:;Current Project;New Project;Resolution;Added into the current project.;A new project was created.;Access to the camera was denied.];[Orientation::Vertical or horizontal;Bend::Text warping: bend the text to a wave, etc.;Horizontal Distortion;Vertical Distortion;[Horizontal;Vertical;Horizontally;Vertically];[None::No Warp;Arc;Arc Lower;Arc Upper;Arch;Bulge;Shell Lower;Shell Upper;Flag;Wave;Fish;Rise;Fish Eye;Inflate;Squeeze;Twist;Custom];[Font;is not available;Will be rendered using;There is unsaved work in::File name will be added after this;Do you really want to close it?];[Swap Colors;Default: White and Black]];[loaded::File was loaded;added::Font was added;Move Guide;Delete Guide;Add Guide;Loading;Load VAR0::Keep VAR0 in a phrase, it will be replaced with a Noun when used];[Filter Gallery;[[Liquify::A filter;[Smudge::Draw over image to spread colors along your stroke;Reconstruct::Recover to original state;Smoothen::Make the effect more smooth;Twirl::Rotate in a spiral;Shrink::Make smaller;Blow::Make bigger;Push Left::ush colors to the left along the stroke;Freeze;Unfreeze]];[Lens Correction]];Blur::A noun;[Average::Average filter - fills the image with an average color;Blur:: A verb;Blur More;Box Blur;Gaussian Blur;Lens Blur;Motion Blur;Radial Blur;Shape Blur;Smart Blur;Surface Blur];Distort;[Displace::Filter: move parts of image according to the brightness from another image;Pinch::Blow or shring around the center;Polar Coordinates;Ripple::Add tiny waves to the image;Shear;Spherize;Wave];Noise::Filetr => Noise;[Add Noise;Despeckle;Dust & Scratches;Median];Pixelate;[Color Halftone;Crystallize;Facet;Fragment;Mezzotint;Mosaic;Pointillize];Render;[Clouds;Difference Clouds;Lens Flare];Sharpen;[Sharpen;Sharpen Edges;Sharpen More;Smart Sharpen;Unsharp Mask];Stylize;[Diffuse;Emboss;Extrude;Find Edges;Oil Paint];Other;[Custom::A Custom kernel of the convolution;High Pass;Maximum;Minimum;Offset::Filter: shift the image horizontally and vertically;Repeat::Filter: Repeat the image many times];[Undefined Area;Set to Transparent;Repeat Edge Pixels;Wrap Around;Last Filter;Preview]];[Templates;[Font Filter;Keywords;Randomize];[With Symbols;With Photo];[Thumbnails;List]]", + "[Soubor;Úpravy;Obraz;Vrstva;Složka;Výběr;Filtr;Zobrazení;Okno;Jazyk;Přihlášení;Odhlášení;Přeložit;[Účet;Podmínky služby;Zpět;O programu;Nahlas chybu;Nauč se];Více;Motiv vzhledu;Použít WebGL;[Photopea: pokročilý grafický editor;Bezplatný online editor podporující formáty PSD, XCF, Sketch, XD, CDR a další.;Vytvořte nový obrázek nebo otevřete existující soubory z počítače. Uložte práci jako PSD (Soubor - Uložit jako PSD) nebo jako JPG / PNG / SVG (Soubor - Uložit jako).;Navrhněte nové funkce na našem nebo . Naším cílem je vytvořit .;Odkazy sponzorů se otevřou v novém okně.;Tato funkce není dostupná.;Nainstalovat Photopea]];[Otevřít;Zveřejnit online;Uložit;Uložit jako PSD;Tisk;Otevřít z URL;Otevřít z počítače;Spojit s Google Drive;Uložit jako;Exportovat vrstvy;Skript;Otevřít a Umístit;Zavřít;Místní Úložiště;O Souboru];[Krok vpřed;Krok zpět;Vyčistit;Vyplnit;Transformace;Natočit;Překlopit VAR0;Roztáhnout VAR0;Vpřed / Zpět;Perspektivní;[Automaticky prolnout;Automaticky zarovnat];Zeslabit;Aplikovat Obraz];Úpravy;[Jas/Kontrast;Úrovně;Křivky;Expozice;Živost;Odstín/Sytost;Vyvážení barev;Černobílé;Fotografický filtr;Míchání kanálů;Vyhledání Barev;Invertovat;Posterizovat;Práh;Mapa na přechod;Selektivní barva;[Auto Tón;Auto Kontrast;Auto Barvy];Nahradit barvu];[Vyjmout;Kopírovat;Vložit;Nový;Smazat;Zapnout;Vypnout;Kopírovat z celku;Aplikovat;Znovu;Obnovit];[Duplikovat vrstvu;Nová vrstva úprav;Rastrová maska;Vektorová maska;Přidat (zobrazit vše);[Přidat (skrýt vše);Odhalit Výběr;Skrýt Výběr;Podle Průhlednosti];[Maska Ořezu;Režim Rychlá Maska];Převést na Smart Object;Rastrovat;Seskupit vrstvy;Sloučit dolů;Sloučit nahoru;[Sloučit vrstvy;Sloučit Vše];Nová vrstva;Zapnout rastrovou masku;Vypnout rastrovou masku;Zapnout vektorovou masku;Vypnout vektorovou masku;Zapnout ořezovou masku;Vypnout ořezovou masku;Nová složka;Přidat rastrovou masku;Smazat rastrovou masku;Přidat vektorovou masku;Smazat vektorovou masku;Připojit rastrovou masku;Odpojit rastrovou masku;Připojit vektorovou masku;Odpojit vektorovou masku;Zapnout efekty vrstvy;Vypnout efekty vrstvy;Smazat vrstvu;Změna průhlednost vrstvy;Změna režimu prolnutí;Rastrovat styl vrstvy;Pořadí vrstev;[Vytváření Smart Object;Aktualizace Smart Object;Vkládání Smart Object;Zdroj (Smart Object);Režim balíčku];Změna názvu;Změna barvy;Změna vrstvy úprav;Převést na tvar;Zapnout masku filtrů;Vypnout masku filtrů;Zapnout chytré filtry;Vypnout chytré filtry;Přidat masku filtrů;Smazat masku filtrů;Smazat chytré filtry;[[Vyplnění jednolitou barvou;Vyplnění přechodem;Vyplnění vzorkem;Podle Obsahu];Nová krycí vrstva;Úprava krycí vrstvy];Vrstva zkopírováním;Maska filtru;Smazat styl vrstvy;Přesun smart filtru;Smazat smart filtr;[Propojit vrstvy;Zrušit propojení vrstev];Uspořádat;[Poslat na Začátek;Poslat Dopředu;Poslat Dozadu;Poslat na Konec];[Vrstva je Zamčená.;Změna Zámku;Zamkni];Animace];[Vše;Odznačit;Invertovat;Upravit;Rozšířit;Zúžit;Změkčit okraj;Posunout výběr;Barevný rozsah;Okraj;Transformovat výběr;Zpřesnit okraje;Opravit výběr;Kouzelný Ořez];[Přiblížit;Oddálit;Vodítka;Pravítka;Mřížka;Přichytávat;Přichytávat k;Okraj dokumentu;Pixelová mřížka;Cesty;Přichytávat k pixelům;[Řezy;Parametry Řezu];Zobrazit];[Historie;Vrstvy;Vlastnosti;Štětec;Znak;Odstavec;Info;Kompozice;Vzorky;Akce;Histogram;Navigátor;Konfigurace Nástroje;Znaky];[Štětec;Klonovací razítko;Ořez;Guma;Eliptický výběr;Kapátko;Přechod;Ručička;Vodorovný text;Laso;Magnetické laso;Přesun;Kouzelná hůlka;Kyblík barvy;Mnohoúhelníkové laso;Obdélníkový výběr;Volná transformace;Lupa;Rozostření;Zostření;Rozmazání;Zesvětlení;Ztmavení;Houba;potřísnění;Retušovací štětec;Záplata;Výběr cesty;Přímý výběr;Pero;Pero od ruky;Jiný tvar;Obdélník;Elipsa;Tvar s parametry;Čára;Pravítko;Rychlý výběr;Tužka;Perspektivní ořez;Nástroj řez;Nástroj výběr řezu;Nahradit Barvu;Červené oči;Výběr objektů;Mazání pozadí;Pokřivení Loutky;Natočit Obraz;Transformace s ohledem na obsah;Přesun podle obsahu];[Vyfotit;Výběr barvy;Editor kontur;Velikost plátna;Duplikovat do…;Editor přechodu;Styl vrstvy;Nový projekt;Uložit pro web;Pokřivení;Velikost obrazu;Vektorizovat bitmapu;[Oříznout podle;Oříznout;Odhalit Vše];Klávesové zkratky;Přidat Vodítka;[Odstranit vodítka;Vodítka podle vrstvy]];[Krytí;Efekty;Jas;[Kontrast;Použít kompatibilitu];Kanál;Expozice;Posun;Gama korekce;Odstín;Sytost;Světlost;Obarvit;Rozsah;Živost;[Velikost;Interpolace;Nejbližší soused;Bilineární];Úhel;Zaoblení;Tvrdost;Mezery;[Režim prolnutí;Prolnout když];Velikost vzorku;Kontura;Styl;[Otočit;Relativní;Ukotvit];Tolerance;Souvislé;Výplň;Použít globální úhel;Vzdálenost;Rozšíření;Šum;Vyseknout vržený stín;Metoda;Směr;Hloubka;Změkčit;Režim;Přechod;Velikost;Zarovnat s vrstvou;Poloha;Šířka;Výška;Cíl;Typ;Popředí;Pozadí;Vlastní;Název;Vytvořit;Formát;Zachovat poměr stran;[Kvalita;Stránky];Duplikovat;Přesun;Chytré filtry;Poloměr;Míra;Distribuce;[Rovnoměrná;Gaussovská];Monochromatický;Velikost buňky;Vzorek;Hustota;Síla;Zachovat detaily;Typ výplně;Textura;Šum;Hrana;Zdroj;Cíl;Kanály;Maska;Hustota;Zarovnaný;[Cesta;Tvar;Pixely;Palce;Centimetry;Milimetry;Procenta];Tvary;Strany;Předvolby;[Délka;Poměr;Libovolný;Typ mřížky;Isometrický;Velikost mřížky;Jednotky pravítek];Redukovat šum;Barvy;Vzdálenosti;Míra;Auto-výběr;Najít;Definovat nový;[Foto;Obrazovka;Mobil;Reklamy;Tisk];[Volný;Pevný poměr;Pevná velikost];Nápověda;[Živý Tvar;Úprava Živého Tvaru;Stejné Poloměry];Rozmazanost;[Mnohoúhelník;Hvězda;Spirála;Čtverec];[Poloměr Rohů;Vnitřní Poloměr]];[Barva;[Žádná;Červená;Oranžová;Žlutá;Zelená;Modrá;Fialová;Šedá;Bílá;Průhledná;Černá;Azurová;Purpurová;Neutrální];Celkem;Absolutní;Zachovat světlost];[Vržený stín;Vnitřní stín;Vnější záře;Vnitřní záře;Úkos a reliéf;Překrytí barvou;Překrytí přechodem;Překrytí vzorkem;Satén;Vytažení;Možnosti prolnutí;Vybrat Pixely];[Tvar špičky;Dynamika špičky;Rozptyl;Dynamika barvy;[Kolísání velikosti;Minimální průměr;Kolísání úhlu;Kolísání zaoblení;Minimální zaoblení];[Rozptyl polohy;Počet;Kolísání počtu];[Kolísání popředí/pozadí;Kolísání odstínu;Kolísání sytosti;Kolísání jasu];[Zvolte zdroj klonování přidržením Alt a kliknutím do obrazu.;Označte popředí Bílou, pozadí Černou a neznámou oblast Šedou.;Vrstvu nelze upravovat.;Textovou vrstvu je nejprve třeba rasterizovat;Smart Object je nejprve třeba rasterizovat;Vyberte několik vrstev;Vyrovnat Vrstvu;Nejdříve otevřete dokument.;Nejdříve zavřete aktuální okno.;Jen současný nástroj];[Nahrát;Nová skupina akci;Nová akce];[Přítlak pera mění Průhlednost;Přítlak pera mění hrúbku];[Normální;Rozpustit;Ztmavit;Násobit;Ztmavit barvy;Lineárně ztmavit;Tmavší barva;Zesvětlit;Závoj;Zesvětlit barvy;Lineárně zesvětlit;Světlejší barva;Překrýt;Měkké světlo;Tvrdé světlo;Jasné světlo;Lineární světlo;Bodové světlo;Tvrdé míchání;Rozdíl;Vyloučit;Odečíst;Rozdělit;Odstín;Sytost;Barva;Světlost;Projít skrz]];[Proklad;Prostrkání;Posun účaří;[Převést na Bodový text;Převést na Odstavcový text]];[Všechny vrstvy;Stávající vrstva;Výběr;Vrstva a ty pod ní];[Nahradit;Spojit;Odečtení;Průnik;XOR;Spojit];[[Lineární;Kruhový;Úhlový;Zrcadlený;Diamant;Podle tvaru];[Měkčí;Přesná];[Vnější úkos;Vnitřní úkos;Reliéf;Poduškový reliéf;Reliéfní tah;Tloušťka vytažení];[Vyhladit;Tvrdá;Měkká;Hladkost];[Nahoru;Dolů];[Vně;Na střed;Uvnitř;Ze Středu];[Stíny;Střední tóny;Světla];[Snížit Sytost;Zvýšit Sytost];[Malý;Střední;Velký];[Zakončení;Rohy;Čárky]];[Vybrat objekt pod kurzorem;Ovládací prvky transformace;Skutečné pixely;Přizpůsobit obrazovce;[Zarovnat levé hrany;Vodorovně na střed;Zarovnat pravé hrany;Zarovnat horní hrany;Svisle na střed;Zarovnat spodní hrany;Stejné mezery]];[Vložit do;Současný projekt;Nový projekt;Rozlišení;Přidáno do současného projektu.;Nový projekt vytvořen.;Nepovolen přístup ke kameře.];[Orientace;Prohnutí;Vodorovná deformace;Svislá deformace;[Vodorovně;Svisle;Vodorovně;Svisle];[Žádné;Oblouk;Dolní oblouk;Horní oblouk;Klenba;Vyboulení;Mušle dolů;Mušle nahoru;Vlajka;Vlna;Ryba;Vyvýšení;Rybí oko;Nafouknutí;Zmáčknutí;Zkroucení;Vlastní];[Písmo;není dostupný;Pro vykreslení se použije;Máte neuloženou práci v;Opravdu to chcete zavřít?];[Prohodit barvy;Základní: černobílá]];[načten;přidány;Posun vodítka;Smazání vodítka;Přidání vodítka;Načítání;Načíst VAR0];[Galerie filtrů;[[Zkapalnit;[Rozmazat;Obnovit;Vyhladit;Zatočit;Smrsknout;Nafouknout;Posun doleva;Zmrazit;Rozmrazit]];[Korekce Čočky Objektivu]];Rozostření;[Průměr;Rozostřit;Rozostřit více;Hranolové rozostření;Gaussovské rozostření;Rozostření čočkou;Rozostření pohybem;Kruhové rozostření;Rozostření tvarem;Chytré rozostření;Rozostření povrchu];Zkreslení;[Pokřivit;Štípnout;Polární Souřadnice;Zvlnit;Střihnout;Zakulatit;Vlna];Šum;[Přidat šum;Vyhladit;Prach a škrábance;Medián];Pixelizace;[Barevné půltónování;Krystalizace;Faseta;Fragment;Mezzotinta;Mozaika;Vytečkovat];Vykreslit;[Mraky;Mraky: Rozdíl;Odlesk Objektivu];Zaostřit;[Zaostřit;Zaostřit hrany;Zaostřit více;Chytré zaostření;Maska zaostření];Stylizace;[Difúze;Reliéf;Vytáhnout;Najít hrany;Olejová Malba];Ostatní;[Vlastní;Výšky;Maximum;Minimum;Posun;Opakovat];[Oblast okolo;Zprůhlednit;Zopakovat pixely na hraně;Zopakovat obrázek;Poslední Filtr;Náhled]];[Šablony;[Filtr Písma;Klíčová slova;Zamíchat];[Se symboly;S fotkou];[Miniatury;Seznam]]", + "[Archivo;Editar;Imagen;Capa;Carpeta;Seleccionar;Filtro;Visualizar;Ventana;Idioma;Iniciar sesión;Cerrar sesión;Crear traducción;[Cuenta;Términos del Servicio;Atrás;Acerca de;Reportar un error;Aprender];Más;Tema;Usar WebGL;[Photopea: Editor Avanzado de Imágenes;Editor en línea gratuito que admite formatos PSD, XCF, Sketch, XD y CDR.;Crea una nueva imagen o abre archivos existentes desde tu computadora. Guarde su trabajo como PSD (Archivo - Guardar como PSD) o como JPG / PNG / SVG (Archivo - Exportar como).;Sugiere nuevas funciones en nuestro o . Nuestro objetivo es crear .;Enlaces de los patrocinadores se abren en una nueva ventana.;Esta característica no está disponible.;Instalar Photopea]];[Abrir;Publicar en línea;Guardar;Guardar como PSD;Imprimir;Abrir desde URL;Abrir desde computadora;Conectar con Google Drive;Exportar como;Exportar Capas;Script;Abrir y Colocar;Cerrar;Almacenamiento Local;Informarción del archivo];[Paso Adelante;Paso Atrás;Limpiar;Rellenar;Transformar;Rotar;Voltear VAR0;Escalar VAR0;Deshacer / Rehacer;Perspectiva;[Fusionar automáticamente;Alinear automáticamente];Transición;Aplicar imagen];Ajustes;[Brillo/Contraste;Niveles;Curvas;Exposición;Intensidad de color;Tono/Saturación;Balance de Color;Blanco y Negro;Filtro de Foto;Mezclador de Canales;Búsqueda de Color;Invertir;Posterizar;Umbral;Mapa de degradado;Color Selectivo;[Tono Automático;Contraste Automático;Color Automático];Reemplazar Color];[Cortar;Copiar;Pegar;Nuevo;Eliminar;Activar;Desactivar;Copiar combinado;Aplicar;Otra vez;Actualizar];[Duplicar capa;Nueva capa de ajuste;Máscara ráster;Máscara vectorial;Añadir (Mostrar todo);[Añadir (Ocultar todo);Descubrir selección;Ocultar selección;A partir de transparencia];[Máscara de recorte;Máscara rápida];Convertir a Objeto Inteligente;Rasterizar;Agrupar capas;Combinar hacia abajo;Combinar hacia arriba;[Combinar capas;Acoplar imagen];Nueva capa;Activar máscara ráster;Desactivar máscara ráster;Activar máscara vectorial;Desactivar máscara vectorial;Activar máscara de recorte;Desactivar máscara de recorte;Nueva carpeta;Añadir máscara ráster;Eliminar máscara ráster;Añadir máscara vectorial;Eliminar máscara vectorial;Enlazar máscara ráster;Desenlazar máscara ráster;Enlazar máscara vectorial;Desenlazar máscara vectorial;Activar efectos de capa;Desactivar efectos de capa;Eliminar capa;Cambio de opacidad de capa;Cambio de modo de fusión;Rasterizar el estilo de capa;Orden de capas;[Crear Objeto Inteligente;Actualizar Objeto Inteligente;Colocar Objeto Inteligente;Fuente (Objeto Inteligente);Modo de apilamiento];Cambio de nombre;Cambio de color;Editar capa de ajuste;Convertir a figura;Activar máscara de filtro;Desactivar máscara de filtro;Activar filtros inteligentes;Desactivar filtros inteligentes;Añadir máscara de filtro;Eliminar máscara de filtro;Limpiar filtros inteligentes;[[Relleno de color sólido;Relleno de degradado;Relleno de patrón;Según el contenido];Nueva capa de relleno;Modificar la capa de relleno];Capa a través de la copia;Máscara de filtro;Eliminar estilo de capa;Mover filtro inteligente;Eliminar filtro inteligente;[Enlazar capas;Desenlazar capas];Organizar;[Traer al frente;Hacia delante;Hacia atrás;Enviar detrás];[Esta capa está bloqueada.;Cambio de bloqueo;Bloquear];Animación];[Todo;Deseleccionar;Invertir;Modificar;Expandir;Contraer;Calar;Mover selección;Gama de colores;Borde;Transformar selección;Perfeccionar borde;Sanar selección;Corte mágico];[Aumentar;Reducir;Guías;Reglas;Cuadrícula;Pegarse;Pegarse a;Límites de documentos;Cuadrícula de píxeles;Trazados;Pegarse a píxeles;[Sectores;Opciones de sector];Mostrar];[Historial;Capas;Propiedades;Pincel;Carácter;Párrafo;Info;Composiciones de capas;Muestras;Acciones;Histograma;Navegador;Herramientas preestablecidas;Glifos];[Herramienta Pincel;Clonar;Recortar;Borrador;Selección elíptica;Gotero;Degradado;Herramienta Mano;Texto;Selección de lazo;Selección de lazo magnético;Mover;Varita mágica;Bote de pintura;Selección de lazo poligonal;Selección rectangular;Transformación libre;Herramienta Zoom;Herramienta de desenfoque;Sacapuntas;Herramienta de borrado;Herramienta de esquivado;Herramienta de grabación;Herramienta Esponja;Pincel corrector de punto;Pincel corrector;Herramienta Parche;Selección de trazado;Selección directa;Pluma;Pluma libre;Forma personalizada;Rectangulo;Elipse;Forma paramétrica;Línea;Regla;Selección rápida;Herramienta Lápiz;Recorte con perspectiva;Sector;Seleccionar sector;Sustitución de color;Pincel de ojos rojos;Selección de objeto;Borrador de fondos;Deformación de posición libre;Rotar vista;Escala según el contenido;Herramienta Movimiento con detección de contenido];[Tomar una foto;Elegir color;Editor de contorno;Tamaño de lienzo;Duplicar en …;Editor de degradado;Estilo de capa;Nuevo proyecto;Guardar para web;Deformar;Tamaño de la imagen;Vectorizar mapa de bits;[Cortar;Recortar;Mostrar todo];Atajos de teclado;Añadir guías;[Borrar guías;Guías de capa]];[Opacidad;Efectos;Brillo;[Contraste;Usar heredado];Canal;Exposición;Desplazamiento;Corrección gamma;Tono;Saturación;Luminosidad;Colorear;Rango;Vibración;[Tamaño;Interpolación;Por aproximación;Bilineal];Ángulo;Redondez;Dureza;Espaciar;[Modo de fusión;Fusionar si es];Tamaño de muestra;Contorno;Estilo;[Revertir;Relativo;Ancla];Tolerancia;Contiguo;Relleno;Usar ángulo global;Distancia;Dispersión;Ruido;Ocultar sombra paralela;Técnica;Dirección;Profundidad;Suavizar;Modo;Degradado;Escalar;Alinear con capa;Posición;⬌ Ancho;⬍ Alto;Destinación;Tipo;Primer plano;Fondo;Personalizado;Nombre;Crear;Formato;Mantener relación de aspecto;[Calidad;Páginas];Duplicar;Mover;Filtros inteligentes;Radio;Cantidad;Distribución;[Uniforme;Desenfoque gaussiano];Monocromático;Tamaño de la celda;Motivo;Flujo;Fuerza;Proteger detalle;Tipo de relleno;Textura;Variación;Borde;Fuente;Destino;Canales;Máscara;Densidad;Alineado;[Trazado;Forma;Píxeles;Pulgada;Centímetros;Milímetros;Porcentaje];Formas;Lados;Preferencias;[Longitud;Proporción;Cualquiera;Tipo de cuadrícula;Isometrico;Espaciado de cuadrícula;Unidad de regla];Reducir ruido;Colores;Distancias;Velocidad;Seleccion automatica;Buscar;Definir nuevo;[Foto;Pantalla;Móvil;Anuncios;Impresión];[Liberar;Proporcion fija;Tamaño fijo];Ayuda;[Forma dinamica;Editar forma dinamica;Mismo radio];Tolerancia;[Polígono;Estrella;Espiral;Cuadrado];[Radio de esquina;Radio interior]];[Color;[Ninguno;Rojo;Naranja;Amarillo;Verde;Azul;Violeta;Gris;Blanco;Transparente;Negro;Cian;Magenta;Neutro];Total;Absoluto;Conservar luminosidad];[Sombra paralela;Sombra interior;Resplandor exterior;Resplandor interior;Bisel y relieve;Superposición de colores;Superposición de degradado;Superposición de motivo;Satinar;Contorno;Opciones de fusión;Seleccionar píxeles];[Forma de la punta;Dinámica de punta;Dispersión;Dinámica de color;[Variación del tamaño;Diámetro Mínimo;Variación del ángulo;Variación de la redondez;Redondez Mínima];[Variación de la posición;Cuenta;Variación de la cuenta];[Variación frontal/de fondo;Variación del tono;Variación de la saturación;Variación del brillo];[Selecciona la fuente de clonado manteniendo Alt (o K) y dando clic sobre la imagen;Marcar el area de enfrente como blanca, la del fondo como negra y el area desconocida como gris;Esta capa no es editable;Hay que rasterizar la capa de texto antes;Hay que rasterizar el objeto inteligente antes;Seleccionar múltiples capas;Enderezar la capa;Abra un documento primero.;Cierre la ventana actual primero.;Solo herramienta actual];[Grabar;Nuevo conjunto de acciones;Nueva accion];[La presión de stylus controla la opacidad;La presión de stylus controla el tamaño];[Normal;Disolver;Oscurecer;Multiplicar;Subexponer color;Subexposición lineal;Color más oscuro;Aclarar;Trama;Sobreexponer color;Sobreexposición lineal;Color más claro;Superponer;Luz suave;Luz fuerte;Luz intensa;Luz lineal;Luz focal;Mezcla definida;Diferencia;Exclusión;Restar;Dividir;Tono;Saturación;Color;Luminosidad;Pass Through]];[Interlineado;Rastrear;Desplazamiento vertical;[Convertir a escritura de caracteres;Convertir a escritura de párrafo]];[Todas las capas;Capa actual;Selección;Actual y anteriores];[Reemplazar;Unión;Diferencia;Intersecar;Excluir;Combinar];[[Lineal;Radial;Ángulo;Reflejado;Diamante;Explosión de forma];[Más suave;Precisar];[Bisel Externo;Bisel Interno;Relieve;Relieve tipo Almohada;Relieve del Trazo;Anchura de trazo];[Suavizar;Cincel Duro;Cincel Suave;Suavizado];[Arriba;Abajo];[Afuera;Centrado;Adentro;Desde el centro];[Sombras;Tonos medios;Altas luces];[Desaturar;Saturar];[Pequeño;Mediano;Largo];[Tapas;Esquinas;Guiones]];[Selecciona el objeto bajo el cursor;Controles de transformación;Píxel por píxel;Ajustar al área;[Alinear bordes izquierdos;Centrar horizontalmente;Alinear bordes derechos;Alinear bordes superiores;Centrar verticalmente;Alinear bordes inferiores;Mismo espaciado]];[Insertar en;Proyecto actual;Nuevo proyecto;Resolución;Añadido al proyecto actual.;Se ha creado un nuevo proyecto.;El acceso a la cámara fue denegado.];[Orientación;Curvar;Distorsión horizontal;Distorsión vertical;[Horizontal;Vertical;horizontalmente;verticalmente];[Ninguno;Arco;Arco Inferior;Arco Superior;Bóveda;Abombar;Caparazón hacia abajo;Caparazón hacia arriba;Bandera;Onda;Pez;Elevar;Ojo de pez;Inflar;Estrechar;Torcer;Personalizado];[Fuente;no está disponible;Se renderizará utilizando;Hay trabajo no guardado en;¿Realmente quieres cerrarlo?];[Intercambiar Colores;Predefinido: Blanco y Negro]];[cargado;agregado;Mover Guía;Eliminar guía;Añadir guía;Cargando;Cargar VAR0];[Galería de filtros;[[Licuar;[Manchar;Reconstruir;Suavizar;Molinete;Achicar;Expandir;Empurrar para a Esquerda;Congelar;Descongelar]];[Corrección del lente]];Desenfoque;[Promediar;Desenfocar;Desenfocar más;Desenfoque de rectángulo;Desenfoque Gaussiano;Desenfoque de lente;Desenfoque de movimiento;Desenfoque radial;Desenfoque de forma;Desenfoque suavizado;Desenfoque de superficie];Filtros de distorsión;[Desplazar;Encoger;Coordenadas polares;Rizo;Distorsionar;Esferizar;Onda];Filtros de ruido;[Añadir ruido;ARICHIVOS;Polvo y Rascaduras;Mediana];Filtros para pixelizar;[Medios tonos de color;Cristalizar;Faceta;Fragmentos;Grabado mezzotinto;Mosaico;Puntillismo];Hacer;[Nubes;Nubes de diferencia;Destello];Filtros de enfoque;[Afilar;Agudizar los bordes;Afilar más;Afilado inteligente;Máscara de enfoque];Estilizar;[Difusión;Realzar;Extrusión;Encontrar bordes;Pintura al óleo];Otros filtros;[Personalizado;Paso alto;Máximo;Mínimo;Compensar;Repetir];[Área indefinida;Establecer como transparente;Repita los píxeles de los bordes;Envolver alrededor;Último filtro;Previsualizar]];[Plantillas;[Filtro de fuente;Palabras clave;Aleatorizar];[Con símbolos;Con foto];[Miniaturas;Lista]]", + "[Datei;Bearbeiten;Bild;Ebene;Ordner;Auswahl;Filter;Ansicht;Fenster;Sprache;Anmelden;Abmelden;Übersetzung erstellen;[Konto;Nutzungsbedingungen;Zurück;Über;Fehler melden;Lernen];Mehr;Farbschema;WebGL verwenden;[Photopea: Fortschrittliche Bildbearbeitung;Kostenloses Online-Bildbearbeitungsprogramm mit Unterstützung für PSD-, XCF-, Sketch-, XD- und CDR-Formate.;Erstellen Sie ein neues Bild oder öffnen Sie vorhandene Dateien von Ihrem Computer. Sichern Sie Ihre Arbeit als PSD (Datei - Speichern als PSD) oder als JPG / PNG / SVG (Datei - Exportieren als).;Vorschläge für neue Funktionen gerne über oder . Unser Ziel ist es, zu schaffen.;Sponsorenlinks werden in neuem Fenster geöffnet.;Diese Funktion ist nicht verfügbar.;Photopea installieren]];[Öffnen;Online veröffentlichen;Speichern;Speichern als PSD;Drucken;Von URL öffnen;Vom Computer öffnen;Mit Google Drive verbinden;Exportieren als;Ebenen exportieren;Skripten;Öffnen & einfügen;Schließen;Lokaler Speicher;Datei-Informationen];[Schritt vorwärts;Schritt rückwärts;Löschen;Füllen;Transformieren;Drehen;VAR0 spiegeln;VAR0 skalieren;Rückgängig / Wiederholen;Perspektive;[Automatisch überblenden;Automatisch ausrichten];Verblassen;Bildberechnungen];Anpassungen;[Helligkeit/Kontrast;Tonwertkorrektur;Gradationskurven;Belichtung;Dynamik;Farbton/Sättigung;Farbbalance;Schwarzweiß;Fotofilter;Kanalmixer;Farbfinder;Umkehren;Tontrennung;Schwellwert;Verlaufsumsetzung;Selektive Farbkorrektur;[Auto-Farbton;Auto-Kontrast;Auto-Farbe];Farbe ersetzen];[Ausschneiden;Kopieren;Einfügen;Neu;Löschen;Aktivieren;Deaktivieren;Vereint kopieren;Anwenden;Erneut;Aktualisieren];[Ebene duplizieren;Neue Einstellungsebene;Rastermaske;Vektormaske;Hinzufügen (alle einblenden);[Hinzufügen (alle ausblenden);Auswahl einblenden;Auswahl ausblenden;Von Transparenz];[Schnittmaske;Maskierungsmodus];In Smartobjekt konvertieren;Rastern;Ebenen gruppieren;Abwärts vereinen;Aufwärts vereinen;[Ebenen vereinen;Auf Hintergrundebene reduzieren];Neue Ebene;Rastermaske aktivieren;Rastermaske deaktivieren;Vektormaske aktivieren;Vektormaske deaktivieren;Schnittmaske aktivieren;Schnittmaske deaktivieren;Neuer Ordner;Rastermaske hinzufügen;Rastermaske entfernen;Vektormaske hinzufügen;Vektormaske entfernen;Rastermaske verbinden;Rastermaske trennen;Vektormaske verbinden;Vektormaske trennen;Ebeneneffekte aktivieren;Ebeneneffekte deaktivieren;Ebene löschen;Deckkraftänderung der Ebene;Mischmodus-Änderung;Ebenenstil rastern;Ebenenreihenfolge;[Smartobjekt erstellen;Smartobjekt aktualisieren;Smartobjekt platzieren;Quelle (Smartobjekt);Stapelmodus];Namensänderung;Farbänderung;Einstellungsebene bearbeiten;In Form umwandeln;Filtermaske aktivieren;Filtermaske deaktivieren;Smartfilter aktivieren;Smartfilter deaktivieren;Filtermaske hinzufügen;Filtermaske entfernen;Smartfilter löschen;[[Volltonfüllung;Verlaufsfüllung;Musterfüllung;Inhaltsbasiert];Neue Füllebene;Füllebene verändern];Ebene aus Kopie;Filtermaske;Ebenenstil löschen;Smartfilter verschieben;Smartfilter löschen;[Ebenen verbinden;Ebenenverbindung aufheben];Anordnen;[In den Vordergrund;Schrittweise nach vorne;Schrittweise nach hinten;In den Hintergrund];[Diese Ebene ist fixiert;Fixierungsänderung;Fixieren];Animation];[Alles;Auswahl aufheben;Umkehren;Auswahl verändern;Erweitern;Verkleinern;Weiche Kante;Auswahl verschieben;Farbbereich;Rand;Auswahl transformieren;Kante verbessern;Auswahl reparieren;Magic Cut];[Einzoomen;Auszoomen;Hilfslinien;Lineale;Raster;Ausrichten;Ausrichten an;Dokumentbegrenzungen;Pixelraster;Pfade;An Pixeln ausrichten;[Slices;Slice-Optionen];Einblenden];[Protokoll;Ebenen;Eigenschaften;Pinsel;Zeichen;Absatz;Info;Ebenenkompositionen;Farbfelder;Aktionen;Histogramm;Navigator;Werkzeugvorgaben;Glyphen];[Pinsel-Werkzeug;Kopierstempel-Werkzeug;Freisteller;Radiergummi;Ellipsen-Auswahl;Pipette;Verlaufswerkzeug;Hand-Werkzeug;Text-Werkzeug;Lasso-Auswahl;Magnetlasso-Auswahl;Verschieben-Werkzeug;Zauberstab-Werkzeug;Füllwerkzeug;Polygonlasso-Auswahl;Rechteck-Auswahl;Frei transformieren;Zoom-Werkzeug;Weichzeichner;Scharfzeichner;Wischfinger-Werkzeug;Abwedler;Nachbelichter;Schwamm-Werkzeug;Bereichsreparatur-Pinsel;Reparatur-Pinsel;Ausbessern-Werkzeug;Pfad-Auswahl;Direkt-Auswahl;Stift;Freihand-Stift;Eigene Form;Rechteck;Ellipse;Parametrische Form;Linie;Lineal;Schnell-Auswahl;Bleistift-Werkzeug;Perspektivischer Freisteller;Slice-Werkzeug;Slice-Auswahlwerkzeug;Farbe-ersetzen-Werkzeug;Rote-Augen-Werkzeug;Objektauswahl;Hintergrund-Radiergummi;Formgitter;Ansichtdrehung;Inhaltsbasiert skalieren;Inhaltsbasiert verschieben];[Foto aufnehmen;Farbwähler;Konturen-Editor;Arbeitsfläche;Duplizieren in …;Verlaufseditor;Ebenenstil;Neues Projekt;Für Web speichern;Verkrümmen;Bildgröße;Bitmap vektorisieren;[Zuschneiden;Freistellen;Alle einblenden];Tastaturkürzel;Hilfslinien hinzufügen;[Hilfslinien löschen;Hilfslinien aus Ebene]];[Deckkraft;Effekte;Helligkeit;[Kontrast;Altes Verfahren verwenden];Kanal;Belichtung;Versatz;Gammakorrektur;Farbton;Sättigung;Helligkeit;Färben;Bereich;Dynamik;[Größe;Interpolation;Pixelwiederholung;Bilinear];Winkel;Rundheit;Härte;Abstand;[Modus;Farbbereich];Aufnahmebereich;Kontur;Stil;[Umkehren;Relativ;Anker];Toleranz;Benachbart;Füllung;Globaler Winkel;Distanz;Überfüllen;Rauschen;Schlagschatten aussparen;Technik;Richtung;Tiefe;Weichz.;Modus;Farbverlauf;Skalieren;An Ebene ausrichten;Position;Breite;Höhe;Ziel;Typ;Vordergrund;Hintergrund;Benutzerdefiniert;Name;Erstellen;Format;Seitenverhältnis beibehalten;[Qualität;Seiten];Duplizieren;Verschiebung;Smartfilter;Radius;Stärke;Verteilung;[Gleichmäßig;Gauß];Monochrom;Zellengröße;Muster;Fluss;Stärke;Detail schützen;Füllart;Stuktur;Jitter;Kante;Quelle;Ziel;Kanäle;Maske;Dichte;Ausgerichtet;[Pfad;Form;Pixel;Zoll;Zentimeter;Millimeter;Prozent];Formen;Seiten;Einstellungen;[Länge;Verhältnis;Beliebig;Rasterart;Isometrisch;Rasterweite;Linealeinheiten];Rauschen reduzieren;Farben;Distanzen;Geschwindigkeit;Auto-Auswahl;Suchen;Neu festlegen;[Foto;Bildschirm;Mobiltelefon;Online-Werbung;Druck];[Normal;Festes Verhältnis;Feste Größe];Hilfe;[Liveform;Liveform bearbeiten;Gleiche Radien];Toleranz;[Polygon;Stern;Spirale;Quadratisch];[Eckenradius;Innenradius]];[Farbe;[Ohne;Rot;Orange;Gelb;Grün;Blau;Lila;Grau;Weiß;Transparent;Schwarz;Cyan;Magenta;Neutral];Gesamt;Absolut;Luminanz erhalten];[Schlagschatten;Schatten nach innen;Schein nach außen;Schein nach innen;Abgeflachte Kante und Relief;Farbüberlagerung;Verlaufsüberlagerung;Musterüberlagerung;Glanz;Kontur;Mischoptionen;Pixel auswählen];[Spitzenform;Spitzendynamik;Streuung;Farbdynamik;[Größen-Jitter;Mindestdurchmesser;Winkel-Jitter;Rundheit-Jitter;Minimale Rundheit];[Positions-Jitter;Anzahl;Anzahl-Jitter];[Vorder-/Hintergrund-Jitter;Farbton-Jitter;Sättigungs-Jitter;Helligkeits-Jitter];[Die zu klonende Quelle mit Alt (oder K) plus Klick auf das Bild auswählen.;Den Vordergrund mit Weiß, den Hintergrund mit Schwarz und die unbekannte Fläche mit Grau markieren.;Ebene ist nicht veränderbar.;Textebene muss zuerst gerastert werden.;Smartobjekt muss zuerst gerastert werden.;Bitte mehrere Ebenen auswählen;Ebene gerade ausrichten;Es ist noch kein Dokument geöffnet.;Das aktuelle Fenster muss zuerst geschlossen werden.;Nur aktuelles Werkzeug];[Aufzeichnen;Neues Aktionsset;Neue Aktion];[Stiftandruck steuert Deckkraft;Stiftandruck steuert Größe];[Normal;Sprenkeln;Abdunkeln;Multiplizieren;Farbig nachbel.;Linear nachbel.;Dunklere Farbe;Aufhellen;Negativ multipl.;Farbig abwedeln;Linear abwedeln;Hellere Farbe;Überlagern;Weiches Licht;Hartes Licht;Strahlendes Licht;Lineares Licht;Lichtpunkt;Hart mischen;Differenz;Ausschluss;Subtrahieren;Dividieren;Farbton;Sättigung;Farbe;Luminanz;Hindurchwirken]];[Zeilenabstand;Zeichenabstand;Grundlinienversatz;[In Punkttext konvertieren;In Absatztext konvertieren]];[Alle Ebenen;Aktuelle Ebene;Auswahl;Aktuelle und darunter];[Ersetzen;Vereinen;Subtrahieren;Schnittmenge;Ausschließen;Vereinen];[[Linear;Radial;Winkel;Reflektiert;Raute;Shape Burst];[Weicher;Präzise];[Abgeflachte Kante außen;Abgeflachte Kante innen;Relief;Relief an allen Kanten;Reliefkontur;Konturstärke];[Abrunden;Hart meißeln;Weich meißeln;Glättung];[Nach oben;Nach unten];[Außerhalb;Mittig;Innerhalb;Vom Mittelpunkt aus];[Tiefen;Mitteltöne;Lichter];[Sättigung verringern;Sättigung erhöhen];[Klein;Mittel;Groß];[Enden;Ecken;Striche]];[Das Objekt unter dem Cursor auswählen;Transformationsstrg.;Pixel für Pixel;Ganzes Bild;[Linke Kanten ausrichten;Waagerecht zentrieren;Rechte Kanten ausrichten;Obere Kanten ausrichten;Senkrecht zentrieren;Untere Kanten ausrichten;Gleichmäßige Abstände]];[Einfügen in;Aktuelles Projekt;Neues Projekt;Auflösung;Zum aktuellen Projekt hinzugefügt.;Ein neues Projekt wurde erstellt.;Der Zugriff auf die Kamera wurde verweigert.];[Ausrichtung;Biegung;Horizontale Verzerrung;Vertikale Verzerrung;[Horizontal;Vertikal;Horizontal;Vertikal];[Ohne;Bogen;Bogen unten;Bogen oben;Wölbung;Wulst;Muschel unten;Muschel oben;Flagge;Welle;Fisch;Ansteigend;Linse;Aufblasen;Stauchen;Strudel;Benutzerdefiniert];[Schrift;ist nicht verfügbar;Wird gerendert mit;Es gibt ungesicherte Änderungen in;Wollen Sie es wirklich schließen?];[Farben tauschen;Standard: Weiß und Schwarz]];[geladen;hinzugefügt;Hilfslinie verschieben;Hilfslinie löschen;Hilfslinie hinzufügen;Laden;VAR0 laden];[Filtergalerie;[[Verflüssigen;[Verschmieren;Rekonstruieren;Glätten;Strudel;Schrumpfen;Aufblasen;Nach links schieben;Fixieren;Lösen]];[Objektivkorrektur]];Weichzeichnen;[Durchschnitt;Weichzeichnen;Stark weichzeichnen;Feld weichzeichnen;Gaußscher Weichzeichner;Tiefenschärfe abmildern;Bewegungsunschärfe;Radialer Weichzeichner;Form weichzeichnen;Selektiver Weichzeichner;Matter machen];Verzerrungsfilter;[Versetzen;Distorsion;Polarkoordinaten;Kräuseln;Verbiegen;Wölben;Schwingungen];Rauschfilter;[Rauschen hinzufügen;Rauschen entfernen;Staub und Kratzer;Median];Vergröberungsfilter;[Farbraster;Kristallisieren;Facetteneffekt;Verwackelungseffekt;Mezzotint;Mosaik;Punktieren];Renderfilter;[Wolken;Differenzwolken;Blendenflecke];Scharfzeichnen;[Scharfzeichnen;Kanten schärfen;Stark scharfzeichnen;Selektiver Scharfzeichner;Unscharf maskieren];Stilisierungsfilter;[Korneffekt;Relief;Extrudieren;Konturen finden;Ölgemälde];Andere Filter;[Angepasst;Hochpass;Maximum;Minimum;Verschiebungseffekt;Wiederholen];[Undefin. Bereich;Auf transparent setzen;Kantenpixel wiederholen;Umfließen;Letzter Filter;Vorschau]];[Vorlagen;[Schrift-Filter;Schlüsselwörter;Neu mischen];[Mit Symbolen;Mit Foto];[Miniaturen;Liste]]", + "[Fichier;Édition;Image;Calque;Dossier;Sélection;Filtre;Affichage;Fenêtre;Langue;Se connecter;Se déconnecter;Créer une traduction;[Compte;Conditions d'utilisation;Retour;À propos;Signaler un bug;Apprendre];Plus;Thème;Utiliser WebGL;[Photopea: éditeur d'image avancé;Éditeur en ligne gratuit prenant en charge les formats PSD, XCF, Sketch, XD et CDR.;Créez une nouvelle image ou ouvrez des fichiers existants à partir de votre ordinateur. Enregistrez votre travail au format PSD (Fichier - Enregistrer en tant que PSD) ou JPG / PNG / SVG (Fichier - Exporter en tant que).;Suggérez de nouvelles fonctionnalités sur notre ou . Notre objectif est de créer .;Liens des sponsors s'ouvrent dans une nouvelle fenêtre.;Cette fonctionnalité n'est pas disponible.;Installer Photopea]];[Ouvrir;Publier en ligne;Enregistrer;Enregistrer en tant que PSD;Imprimer;Ouvrir depuis une URL;Ouvrir depuis l'ordinateur;Se connecter avec Google Drive;Exporter en tant que;Exporter les calques;Script;Ouvrir & placer;Fermer;Stockage local;];[Étape suivante;Étape précédente;Effacer;Remplir;Transformer;Rotation;Retourner VAR0;Echelle VAR0;Annuler / Restaurer;Point de vue;[Fusion automatique;Alignement automatique];Atténuer;Appliquer une image];Ajustements;[Luminosité/contraste;Niveaux;Courbes;Exposition;Vibrance;Teinte/saturation;Balance de couleur;Noir et blanc;Filtre photo;Mélangeur de canaux;Recherche de Couleur;Inverser;Postériser;Seuil;Courbe de transfert de dégradé;Couleur sélective;[Tonalité automatique;Contraste automatique;Couleur automatique];Remplacer couleur];[Couper;Copier;Coller;Nouveau;Supprimer;Activer;Désactiver;Copie fusionnée;Appliquer;De nouveau;Mettre à jour];[Dupliquer le calque;Nouveau calque d'ajustement;Masque raster;Masque vectoriel;Ajouter (Tout montrer);[Ajouter (Tout cacher);Faire apparaître la sélection;Masquer la sélection;D’après la transparence];[Masque d'écrêtage;Mode Masque];Convertir en objet dynamique;Rastériser;Grouper les calques;Fusionner vers le bas;Fusionner vers le haut;[Fusionner les calques;Aplatir l’image];Nouveau calque;Activer le masque raster;Désactiver le masque raster;Activer le masque vectoriel;Désactiver le masque vectoriel;Activer le masque d'écrêtage;Désactiver le masque d'écrêtage;Nouveau dossier;Ajouter un masque raster;Supprimer un masque raster;Ajouter un masque vectoriel;Supprimer un masque vectoriel;Lier le masque raster;Délier le masque raster;Lier le masque vectoriel;Délier le masque vectoriel;Activer les effets de calque;Désactiver les effets de calque;Supprimer le calque;Modifier l'opacité du calque;Modifier le Mode de fusion;Rastériser le style de calque;Ordre des calques;[Créer un objet dynamique;Mettre à jour un objet dynamique;Placer un objet dynamique;Source (objet dynamique);Mode empilage];Modifier le nom;Changer la Couleur;Modifier le calque de réglages;Convertir en forme;Activer le masque filtrant;Désactiver le masque filtrant;Activer les filtres dynamiques;Désactiver les filtres dynamiques;Ajouter un masque filtrant;Supprimer le masque filtrant;Effacer les filtres dynamiques;[[Remplissage couleur unie;Remplissage en dégradé;Remplissage à partir d’un motif;Contenu pris en compte];Nouveau calque de remplissage;Modifier la calque de remplisage];Calque par copie;Masque filtrant;Supprimer le style de calque;Déplacer filtre dynamique;Supprimer filtre dynamique;[Lier les calques;Délier les calques];Arranger;[Premier plan;En avant;En arrière;Arrière plan];[Le calque est verrouillé;Changement de vérouillage;Verrouiller];];[Tout;Désélectionner;Inverser;Modifier;Étendre;Contracter;Plume;Déplacer la sélection;Intervalle de couleur;Contour;Transformer la sélection;Améliorer le contour;Reconstruire la sélection;];[Zoom avant;Zoom arrière;Repères;Règles;Grille;Capturer;Capturer vers;Limites du document;Grille de pixels;Tracés;Capturer vers pixels;[Tranches;Option de tranche];Afficher];[Historique;Calques;Propriétés;Pinceau;Caractères;Paragraphes;Informations;Compositions de calques;Nuancier;Actions;Histogramme;Navigation;Outils prédéfinis;Glyphes];[Outil Pinceau;Outil Duplication;Outil Recadrage;Outil Gomme;Sélection en ellipse;Pipette;Outil Dégradé;Outil Main;Outil Texte;Sélection avec lasso;Sélection avec lasso magnétique;Outil Déplacement;Baguette magique;Outil Pot de peinture;Sélection avec lasso polygonal;Sélection en rectangle;Transformation libre;Outil Zoom;Outil de Flou;Outil de netteté;Outil doigt;Outil densité -;Outil densité +;Outil éponge;Outil correcteur de tons directs;Pinceau correcteur;Outil tampon;Sélectionner le tracé;Sélection directe;Crayon;Crayon libre;Forme personnalisée;Rectangle;Ellipse;Forme parametrique;Ligne;Règle;Sélection rapide;Crayon;Correction de perspective par recadrage;Tranche;Sélection de tranche;Remplacement de couleur;Œil rouge;Sélection de l'objet;Gomme d’arrière-plan;Déformation de la marionnette;Rotation de l’affichage;Echelle basée sur le contenu;Déplacement basé sur le contenu];[Prendre une photo;Sélecteur de couleur;Éditeur de contour;Taille de la zone de travail;Dupliquer vers …;Editeur de dégradé;Style de calque;Nouveau projet;Enregistrer pour le Web;Déformation;Taille de l'image;Vectoriser Bitmap;[Rognage;Recadrage;Tout montrer];Raccourcis clavier;Ajouter les repères;[Effacer les repères;Repères à partir de calque]];[Opacité;Effets;Luminosité;[Contraste;Utiliser l’ancien algorithme];Canal;Exposition;Décalage;Correction Gamma;Teinte;Saturation;Luminosité;Colorisation;Gamme;Eclat;[Taille;Interpolation;Au plus proche;Bilinéaire];Angle;Rondeur;Dureté;Espacement;[Mode;Comparaison];Taille de l'échantillon;Contour;Style;[Inverser;Relative;Position];Tolérance;Contigu;Remplir;Utilisez angle global;Distance;Propager;Bruit;Ombre portée;Technique;Direction;Profondeur;Adoucir;Mode;Dégradé;Echelle;Aligner avec la calque;Position;Largeur;Hauteur;Destination;Type;Premier plan;Arrière plan;Personnalisé;Nom;Créer;Format;Garder les proportions;[Qualité;Pages];Dupliquer;Déplacer;Filtres dynamiques;Angle;Taux;Répartition;[Uniforme;Gaussien];Monochrome;Taille de la cellule;Motif;Flux;Dureté;Protéger les détails;Type de remplissage;Texture;Instabilité;Contour;Source;Cible;Canaux;Masque;Densité;Aligné;[Tracé;Forme;Pixels;Pouces;Centimètres;Millimètres;Pourcent];Formes;Côtés;Préférences;[Longueur;Ratio;Tous;Type de grille;Isométrique;Écart de grille;Unités de la règle];Réduire le bruit;Couleurs;Distances;Pas;Sélection automatique;Trouver;Définir nouveau;[Photo;Écran;Mobile;Annonces;Impression];[Libre;Ratio fixe;Taille fixe];Aide;[Forme dynamique;Modifier la forme dynamique;Même rayon];Tolérance;[Polygone;Étoile;Spirale;Carré];[Rayon de l’angle;Rayon intérieur]];[Couleur;[Aucun;Rouge;Orange;Jaune;Vert;Bleu;Violet;Gris;Blanc;Transparent;Noir;Cyan;Magenta;Neutre];Total;Absolu;Conserver la luminosité];[Ombre portée;Ombre interne;Lueur externe;Lueur interne;Biseautage & estampage;Incrustation couleur;Incrustation en dégradé;Incrustation de motif;Satin;Contour;Options de fusion;Sélectionner les pixels];[Forme de la pointe;Dynamique de forme;Diffusion;Dynamique de la couleur;[Variation de la taille;Diamètre minimal;Variation de l'angle;Variation de l'arrondi;Arrondi minimal];[Variation de la position;Nombre;Variation numérique];[Variation premier plan/arrière plan;Variation de teinte;Variation de la saturation;Variation de la luminosité];[Sélectionner la source de duplication en maintenant la touche Alt (ou K) et en cliquant sur l'image;Marquer premier plan en blanc, arrière-plan en noir, et zone inconnue en gris.;Calque non modifiable;Calque texte doit être rastérisé en premier;Smart Object doit être rastérisé en premier;Sélectionner plusieurs calques;Redresser le calque;Ouvrir d'abord un document.;Fermez d'abord la fenêtre actuelle.;Outil sélectionné uniquement];[Enregistrer;Nouveau ensemble d'actions;Nouvelle action];[La pression du stylo contrôle l'opacité;La pression du stylo contrôle la taille];[Normal;Fondu;Obscurcir;Produit;Densité couleur +;Densité linéaire +;Couleur plus foncée;Eclaircir;Superposition;Densité couleur -;Densité linéaire -;Couleur plus claire;Incrustation;Lumière tamisée;Lumière crue;Lumière vive;Lumière linéaire;Lumière ponctuelle;Mélange maximal;Différence;Exclusion;Soustraire;Division;Teinte;Saturation;Couleur;Luminosité;Transfert]];[Interlignage;Crénage;Décalage vertical;[Convertir en texte de point;Convertir en texte de paragraphe]];[Tous les calques;Calque actif;Sélection;Actif et inférieurs];[Remplacer;Union;Différence;Intersection;OU Exclusif;Fusionner];[[Linéaire;Radial;Angle;Reflété;Diamant;Éclater la forme];[Tamisé;Précis];[Biseau externe;Biseau interne;Estampage;Estampage Oreiller;Estampage de contour;Largeur du contour];[Lisser;Burin dur;Burin mou;Lissage];[Haut;Bas];[Extérieur;Centre;Interieur;A partir du centre];[Tons foncés;Tons moyens;Tons clairs];[Désaturer;Saturer];[Petit;Moyen;Grand];[Extrémités;Angles;Tirets]];[Choisir l'objet sous le pointeur;Contrôles de transformation;Pixel à pixel;Ajuster à la zone;[Aligner sur le côté gauche;Centrer horizontalement;Aligner sur le côté droit;Aligner en haut;Centrer verticalement;Aligner en bas;Écarts égaux]];[Insérer dans;Projet Actuel;Nouveau projet;Resolution;Ajouté dans le projet actuel/courant.;Un nouveau projet a été créé.;L'accès à la caméra à été refusé.];[Orientation;Inflexion;Déformation horizontale;Déformation verticale;[Horizontal;Vertical;horizontalement;verticalement];[Sans;Arc;Arc Inférieur;Arc Supérieur;Voûte;Bosse;Coque inférieure;Coque supérieure;Marqueur;Vague;Poisson;Elever;Fish Eye;Gonfler;Comprimer;Tordre;Personnalisé];[Police;n'est pas disponible;Va être rendu avec;Il y a du travail non sauvegardé dans;Voulez-vous vraiment le fermer?];[Echanger couleurs;Défaut : Blanc et Noir]];[chargé;ajouté;Déplacement de repère;Suppression du repère;Ajout d'un repère;Chargement;Charger VAR0];[Galerie de filtres;[[Liquéfier;[Étaler;Reconstruire;Lisser;Tourbillon;Diminuer;Augmenter;Décaler à gauche;Figer;Libérer]];[Correction de l'objectif]];Flou;[Moyenne;Flou;Plus flou;Flou par moyenne;Flou gaussien;Flou de l’objectif;Flou directionnel;Flou radial;Flou de forme;Flou optimisé;Flou de surface];Déformation;[Dispersion;Contraction;Coordonnées polaires;Ondulation;Cisaillement;Sphérisation;Onde];Bruit;[Ajout de bruit;Flou intérieur;Antipoussière;Median];Pixellisation;[Demi-teintes couleur;Cristallisation;Facettes;Fragmentation;Mezzo-tinto;Mosaïque;Pointillisme];Rendu;[Nuages;Nuages par différence;Halo];Netteté;[Plus net;Contours plus nets;Encore plus net;Netteté optimisée;Accentuation];Stylisation;[Diffusion;Estampage;Extrusion;Tracé des contours;Peinture à l'huile];Filtres divers;[Personnalisé;Passe-haut;Maximum;Minimum;Décalage;Répéter];[Zone indéfinie;Définir à transparent;Répéter les pixels des bords;Envelopper autour;Dernier filtre;Aperçu]];[Modèles;[Filtre de police;Mots clés;Mélanger aléatoirement];[Avec Symboles;Avec Photo];[Vignettes;Liste]]", + "[Αρχείο;Επεξεργασία;Εικόνα;Επίπεδο;Φάκελος;Επιλογή;Φίλτρα;Προβολή;Παράθυρο;Γλώσσα;Σύνδεση;Αποσύνδεση;Δημιουργία μετάφρασης;[Λογαριασμός;Όροι Χρήσης;Πίσω;Σχετικά;Αναφορά σφάλματος;Εκπαίδευση];Περισσότερα;Θέμα;Χρήση WebGL;[Photopea: προηγμένη επεξεργασία εικόνας;Δωρεάν online επεξεργαστή που υποστηρίζει PSD, XCF, Sketch, XD και CDR.;Δημιουργήστε μια νέα εικόνα ή ανοίξτε τα υπάρχοντα αρχεία από τον υπολογιστή σας. Αποθηκεύστε την εργασία σας ως PSD (Αρχείο - Αποθήκευση ως PSD) ή ως JPG / PNG / SVG (Αρχείο - Εξαγωγή ως).;Προτείνετε νέες λειτουργίες στο ή στο . Στόχος μας είναι να δημιουργήσουμε <το πιο εξελιγμένο και οικονομικό πρόγραμμα επεξεργασίας φωτογραφιών>.;Οι σύνδεσμοι του σπόνσορα ανοίγουν σε νέο παράθυρο.;;Εγκατάσταση εφαρμογής Photopea]];[Άνοιγμα;Δημοσίευσε online;Αποθήκευση;Αποθήκευση ως PSD;Εκτύπωση;Άνοιγμα από URL;Άνοιγμα από υπολογιστή;Σύνδεση με Google Drive;Εξαγωγή ως;Εξαγωγή επίπεδων;Σενάριο;Άνοιγμα & Τοποθέτηση;Κλείσιμο;Τοπική αποθήκευση;];[Βήμα εμπρός;Βήμα πίσω;Απαλοιφή;Γεμίζω;Μετασχηματισμός;Περιστροφή;VAR0 αναστροφή;VAR0 κλίμακα;Αναίρεση / Επανάληψη;Προοπτική;[Αυτόματη ανάμειξη;];Ξεθώριασμα;];Ρυθμίσεις;[Φωτεινότητα/αντίθεση;Στάθμες;Καμπύλες;Έκθεση;ζωηράδα χρώματος;Απόχρωση/κορεσμός;Ισορροπία χρώματος;Ασπρόμαυρο;Φίλτρο φωτογραφίας;Μείκτης καναλιού;Χρωματικές συνθέσεις;Αντιστροφή;Πόστερ;Κατώφλι;Τονική διαβάθμιση;Επιλεγμένο χρώμα;[Αυτόματος τόνος;Αυτόματη αντίθεση;Αυτόματο χρώμα];Αντικατάσταση χρώματος];[Αποκοπή;Αντιγραφή;Επικόληση;Νέο;Διαγραφή;Ενεργοποίησε;Απενεργοποίησε;Αντιγραφή συγχωνευμένη;Εφαρμογή;Επανάληψη;Ενημέρωση];[Διπλασιάσμός επίπεδο;Νέο επίπεδο ρύθμισης;Μάσκα ράστερ;Διανυσματική μάσκα;Προσθήκη (Δείξε όλα);[Προσθήκη (Κρύψε όλα);Αποκάλυψη επιλογής;Απόκρυψη επιλογής;Από τη διαφάνεια];[Μάσκα αποκοπής;Quick Mask];Μετατροπή σε Έξυπνο αντικείμενο;Ραστεροποιήσετε;Στρώματα επίπεδων;Συγχώνευση κάτω;Συγχώνευση πάνω;[Συγχώνευση επίπεδων;Ισοπέδωση εικόνας];Νέο επίπεδο;Ενεργοποίηση μάσκας ράστερ;Απενεργοποίηση μάσκας ράστερ;Ενεργοποίηση διανυσματικής μάσκας;Απενεργοποίηση διανυσματικής μάσκας;Ενεργοποίηση μάσκα αποκοπής;Απενεργοποίηση μάσκα αποκοπής;Νέος φάκελος;Προσθήκη μάσκας ράστερ;Διαγραφή μάσκας ράστερ;Προσθήκη διανυσματικής μάσκας;Διαγραφή διανυσματικής μάσκας;Σύνδεση μάσκας ράστερ;Αποσύνδεση μάσκας ράστερ;Σύνδεση διανυσματικής μάσκας;Αποσύνδεση διανυσματικής μάσκας;Ενεργοποίηση των εφέ επιπέδου;Απενεργοποίηση των εφέ επιπέδου;Διαγραφή επίπεδο;Αδιαφάνεια επιπέδου αλλαγή;Ανάμιξης αλλαγή;Ραστεροποιήσετε στυλ επιπέδου;Διάταξη επιπέδων;[Δημιουργία Έξυπνου αντικειμένου;Ενημέρωση Έξυπνου αντικειμένου;Τοποθέτηση Έξυπνου αντικειμένου;Προέλευση (Έξυπνο αντικείμενο);];Ονομα αλλαγή;Χρώμα αλλαγή;Επεξεργασία επιπέδου ρύθμισης;Μετατροπή σε σχήμα;Ενεργοποίηση μάσκας φίλτρου;Απενεργοποίηση μάσκας φίλτρου;Ενεργοποίηση έξυπνων φίλτρων;Απενεργοποίηση έξυπνων φίλτρων;Προσθήκη μάσκας φίλτρου;Διαγραφή μάσκας φίλτρου;Απαλοιφή έξυπνων φίλτρων;[[Γέμισμα σταθερού χρώματος;Γέμισμα ντεγκραντέ;Γέμισμα με μοτίβο;Με βάση το περιεχόμενο];Νέο επίπεδο γεμίσματος;Τροποποίηση επίπεδο γεμίσματος];Επίπεδο μέσω αντιγραφή;Μάσκα φίλτρου;Διαγραφή στυλ επιπέδου;Μετακίνηση έξυπνου φίλτρου;Διαγραφή έξυπνου φίλτρου;[Σύνδεση επίπεδων;Αποσύνδεση επίπεδων];Διάταξη;[Μεταφορά σε πρώτο πλάνο;Μεταφορά ένα επίπεδο εμπρός;Μεταφορά ένα επίπεδο πίσω;Μεταφορά στο φόντο];[Αυτό το επίπεδο είναι κλειδωμένο.;Κλείδωμα αλλαγή;];];[Όλα;Αποεπιλογή;Αντιστροφή;Τροποποίηση;Επέκταση;Συρρίκνωση;Άμβλυνση;Μετακίνηση επιλογής;Χρωματικό εύρος;Όριο;Μετατροπή επιλογής;Εξομάλυνση Άκρων;Διόρθωση επιλογής;];[Μεγένθυνε;Σμίκρυνση;Οδηγοί;Χάρακες;Πλέγμα;Προσκόλληση;Προσκόλληση σε;Όρια εγγράφου;Πλέγμα pixel;Διαδρομές;Προσκόλληση σε pixel;[Slices;Επιλογές slice];Προβολή];[Ιστορικό;Επίπεδα;Ιδιότητες;Βούρτσα;Χαρακτήρας;Παράγραφος;Πληροφορίες;Επίπεδα Comps;Δείγματα;Ενέργειες;Ιστόγραμμα;Περιήγηση;Προεπιλογές εργαλείων;];[Βούρτσα;Εργαλείο αντιγραφής;Περικοπή;Γόμα;Ελλειπτικό μαρκάρίσμα;Σταγονόμετρο;Ντεγκραντέ;Χέρι;Κείμενο;Λάσο;Μαγνητικό λάσο;Μετακίνηση;Μαγικό ραβδί;Κάδος γεμίσματος;Πολυγωνικό λάσο;Ορθογωνικό μαρκάρίσμα;Δωρεάν μετασχηματισμός;Ζουμ;Θόλωμα;Όξυνση;Μουτζούρωμα;Φωτισμός;Κάψιμο;Σπόγγος;Πινέλο διόρθωσης σημείου;Πινέλο διόρθωσης;Μπάλωμα;Επιλογή διαδρομής;Απευθείας διαδρομή;Πένα;Πένα ελεύθερης σχεδίασης;Προσαρμοσμένο σχήμα;Ορθογώνιο;Ελλειψη;Παραμετρικό σχήμα;Γραμμή;Χάρακας;Γρήγορη επιλογή;Μολύβι;Προοπτική περικοπή;Slice;Επιλογή slice;Αντικατάσταση χρώματος;Εργαλείο για κόκκινα μάτια;Επιλογή αντικειμένου;Γόμα παρασκηνίου;;;;];[Πάρε μια φωτογραφία;Επιλογέας χρώματος;Επεξεργαστής περιγράμματος;Μέγεθος καμβά;Διπλότυπο σε...;Επεξεργαστή ντεγκραντέ;Στυλ επιπέδου;Νέο έργο;Αποθήκευση για ιστό;Στρέβλωση;Μέγεθος εικόνας;Μετατροπή σε διάνυσμα;[Ψαλίδιση;Περικοπή;];Συντομεύσεις πληκτρολογίου;Προσθήκη οδηγών;[Απαλοιφή οδηγών;Οδηγοί από Διαφάνειες]];[Αδιαφάνεια;Εφέ;Φωτεινότητα;[Αντίθεση;Χρήση κληρονομιά];Κανάλι;θέση;Αντιστάθμιση;Διόρθωση Γάμμα;Απόχρωση;Κορεσμός;Ελαφρότητα;Τίντα;Εύρος;ζώνη;[Μέγεθος;Παρεμβολή;Πλησιέστερη γειτονική;Διγραμμική];Γωνία;Στρογγυλότητα;Σκληρότητα;Απόσταση;[Τρόπος ανάμειξης;Συνδυάστε αν];Μέγεθος δείγματος;Τύπος περιγράμματος;Στυλ;[Αναστροφή;Σχετική;Σημείο αναφοράς];Ανοχή;Συνεχόμενο;Γέμισμα;Χρήση καθολικής γωνίας;Απόσταση;Άπλωμα;Θόρυβος;Απωθεί την προσπίπτουσα σκιά;Τεχνική;Κατεύθυνση;Βάθος;Απάλυνση;Κατάσταση;Ντεγκραντέ;Κλίμακα;Στοίχιση με επιπέδο;θέση;Πλάτος;Ύψος;Προορισμός;Τύπος;Προσκήνιο;Παρασκηνίου;Προσαρμοσμένο;Ονομα;Δημιουργία;Μορφή;Σταθερή αναλογία;[Ποιότητα;Σελίδες];Διπλασιάσμός;Μετακίνηση;Έξυπνα φίλτρα;Ακτίνα;Ποσότητα;Διανομή;[Ομοιόμορφη;Γκαουσιανό];Μονοχρωματικό;Μέγεθος κελιού;Μοτίβου;Ροή;Δύναμη;Προστασία λεπτομέρειας;Τύπος γέμισης;Υφή;Τρέμουλο;Γωνία;Προέλευση;Στόχος;Κανάλια;Μάσκα;Πυκνότητα;Ευθυγραμμισμένος;[Διαδρομή;Σχήμα;Pixel;Ίντσες;Εκατοστά;Χιλιοστά;Ποσοστό];Σχήματα;Πλευρές;Προτιμήσεις;[Μήκος;Αναλογία;Οποιοδήποτε;Τύπος πλέγματος;Ισομετρική;Απόσταση πλέγματος;Μονάδες χάρακα];Μείωση θορύβου;Χρώματα;Αποστάσεις;Ρυθμός;Αυτόματη επιλογή;Αναζήτηση;Καθορίζω;[Φωτογραφία;Οθόνη;Κινητό;Διαφημίσεις;Εκτύπωση];[Κανονικό;Σταθερή αναλογία;Σταθερό μέγεθος];Βοήθεια;[Ζωντανή Σχήμα;Επεξεργασία Ζωντανού Σχήματος;Ίδια ακτίνα];Ασάφεια;[Πολύγωνο;Αστέρι;Σπειροειδής;Τετράγωνο];[Ακτίνα γωνίας;Εσωτερική ακτίνα]];[Χρώμα;[Καμία;Κόκκινο;Πορτοκαλί;Κίτρινο;Πράσινο;Μπλε;Μωβ;Γκρι;Λευκό;Διάφανο;Μαύρο;Κυανό;Ματζέντα;Ουδέτερος];Σύνολο;Απόλυτος;Διατήρηση φωτεινότητας];[Πίπτουσα σκιά;Εσωτερική σκίαση;Εξωτερική λάμψη;Εσωτερική λάμψη;Λοξοτομή και ανάγλυφο;Επικάλυψη χρώματος;Επικάλυψη ντεγκραντέ;Επικάλυψη μοτίβου;Σατέν;Περίγραμμα;Επιλογές ανάμειξης;Επιλέξτε pixels];[Σχήμα άκρου;Δυναμικό άκρου;Διασπορά;Δυναμικό χρώμα;[Μέγεθος τρέμουλο;Ελάχιστη διάμετρος;Γωνία τρέμουλο;Στρογγυλότητα τρέμουλο;Ελάχιστη στρογγυλότητα];[θέση τρέμουλο;Μέτρημα;Μέτρημα τρέμουλο];[Προσκήνιο/παρασκηνίου τρέμουλο;Απόχρωση τρέμουλο;Κορεσμός τρέμουλο;Φωτεινότητα τρέμουλο];[Επιλέξτε την πηγή κλώνου κρατώντας Alt (ή K) και κάνοντας κλικ στην εικόνα.;Επισημάνετε το προσκήνιο με λευκό, το παρασκηνίο με μαύρο και την άγνωστη περιοχή με γκρι.;Το επίπεδο δεν επιδέχεται επεξεργασία;Το επίπεδο κειμένου πρέπει πρώτα να είναι ραστεροποιημένο;Έξυπνο αντικείμενο πρέπει πρώτα να είναι ραστεροποιημένο.;Επιλέξτε πολλαπλά επιπέδα;Αποστρέβλωση επίπεδο;Ανοίξτε πρώτα ένα έγγραφο.;Κλείστε πρώτα το παρόν παράθυρο.;Μόνο παρόν εργαλείο];[Καταγραφή;Νέο σύνολο ενεργειών;Νέα ενέργεια];[Η πίεση πένας ελέγχει την αδιαφάνεια;Η πίεση πένας ελέγχει το μέγεθος];[Κανονικό;Διάχυση;Σκοτείνιασμα;Πολλαπλασιασμός;Κάψιμο χρώματος;Γραμμικό κάψιμο;Σκουρότερο χρώμα;Φωτισμός;Οθόνη;Φωτισμός χρώματος;Γραμμικός φωτισμός;Ανοιχτότερο χρώμα;Υπέρθεση;Απαλό φως;Σκληρό φως;Έντονο φως;Γραμμικός φωτισμός;Σημειακό φως;Σκληρή μείξη;Διαφορά;Αποκλεισμός;Αφαίρεση;Διαίρεση;Απόχρωση;Κορεσμός;Χρώμα;Φωτεινότητα;Διέλευση]];[Διάκενο γραμμής;Διάκενο γραμμάτων;Γραμμή βάσης;[Μετατροπή σε σημειακό κείμενο;Μετατροπή σε κείμενο παραγράφου]];[Όλα τα επίπεδα;Παρόν επίπεδο;Επιλογή;Παρόν και προηγούμενο];[Αντικατάσταση;Πρόσθεση;Αφαίρεση;Τομή συνόλων;XOR;Συγχώνευση];[[Γραμμικός;Ακτινικό;Γωνία;Αντικατοπτρισμένο;Διαμάντι;Σχήμα βούρτσας];[Απαλή;Ακριβείς];[Εξωτερική λοξοτομή;Εσωτερική λοξοτομή;Ανάγλυφο;Σφράγισμα;Ανάγλυφο περίγραμμα;Πλάτος γραμμής];[Ομαλοποίηση;Σκληρό chisel;Μαλακό chisel;Ομαλότητα];[Πάνω;Κάτω];[Εκτός;Κέντρο;Εντός;Από το κέντρο];[Σκιές;Μεσαίοι τόνοι;Τονισμοί];[Αποκορεσμός;Αύξηση κορεσμού];[Μικρό;Μεσαίο;Μεγάλο];[Άκρα;Γωνίες;Παύλες]];[Επιλογή του αντικειμένου κάτω από το δρομέα;Έλεγχοι μετασχηματισμού;1:1;Προσαρμογή στο παράθυρο;[Στοίχιση αριστερά άκρα;Οριζόντια κέντρα;Στοίχιση δεξιά άκρα;Στοίχιση επάνω άκρα;Κατακόρυφα κέντρα;Στοίχιση κάτω άκρα;Ίση απόσταση]];[Τοποθέτηση σε;Παρόν έργο;Νέο έργο;Ανάλυση;Προστέθηκε στο παρόν έργο.;Δημιουργήθηκε ένα νέο έργο.;Η πρόσβαση στην κάμερα απορρίφθηκε.];[Προσανατολισμός;Κάμψη;Οριζόντια παραμόρφωση;Κατακόρυφη παραμόρφωση;[Οριζόντια;Κάθετη;Οριζόντια;Κάθετη];[Κανένα;Arc;Arc Lower;Arc Upper;Arch;Bulge;Shell Lower;Shell Upper;Flag;Wave;Fish;Rise;Fish Eye;Inflate;Squeeze;Twist;Προσαρμοσμένο];[Γραμματοσειρά;δεν είναι διαθέσιμη;Θα παρασχεθεί με χρήση του;Υπάρχει μη αποθηκευμένη εργασία στο;Θέλετε πραγματικά να το κλείσετε;];[Ανταλλάξουν χρωμάτων;Προεπιλογή: Λευκό και μαύρο]];[φορτωμένο;προστέθηκε;Μετακίνηση οδηγός;Διαγραφή οδηγός;Προσθήκη οδηγός;Φόρτωση;Φόρτωση VAR0];[Συλλογή φίλτρων;[[Ρευστοποίηση;[Μουτζούρα;Ανοικοδομώ;Ομαλοποίηση;Συστροφή;Συρρίκνωση;Φουσκώνουν;Ώθηση αριστερά;Πάγωμα;Ξεπάγωμα]];[Διόρθωση φακού]];Θολούρα;[Μέσος;Θολούρα;Περισσότερο θόλωμα;Θόλωμα πλαισίου;Γκαουσιανό θόλωμα;Θόλωση φακού;Θόλωμα κίνησης;Ακτινικό θόλωμα;Θόλωμα σχήματος;Έξυπνο θόλωμα;Θόλωμα επιφάνειας];Παραμόρφωση;[Μετατόπιση;Καμπή;Πολικές συντεταγμένες;Κυματισμός;Στρέβλωση;Σφαιροποίηση;Κύμα];Θόρυβος;[Προσθήκη θορύβου;Αποκηλίδωση;Σκόνη & αμυχές;Διάμεσος];Κουκκιδοποίηση;[Μεσαίοι χρωματικοί τόνοι;Κρυσταλλοποίηση;Όψη;Τμήμα;Τρόπος χαλκογραφίας;Μωσαϊκό;Σημειοποίηση];Απόδοση;[Σύννεφα;Σύννεφα διαφοράς;Αναλαμπή φακού];Όξυνση;[Όξυνση;Όξυνση άκρων;Περισσότερη όξυνση;Έξυπνη όξυνση;Μάσκα όξυνσης];Στυλιζάρισμα;[Διάχυση;Aνάγλυφο;Εξώθηση;Εύρεση άκρων;];Άλλο;[Προσαρμοσμένη;Υψιπερατό;Μέγιστο;Ελάχιστο;Αντιστάθμιση;Επανάληψη];[Απροσδιόριστη περιοχή;Ορισμός σε διαφανή;Επανάληψη pixel άκρων;Αναδίπλωση γύρω;Τελευταίο φίλτρο;Προεπισκόπηση]];[Πρότυπα;[Φίλτρο γραμματοσειράς;Λέξεις-κλειδιά;Τυχαία];[Με σύμβολα;Με φωτογραφία];[Μικρογραφίες;Λίστα]]", + "[كتب;تحرير;صورة;طبقة;مجلد;تحديد;مرشح;عرض;نافذة;اللغة;تسجيل الدخول;تسجيل الخروج;إنشاء ترجمة;[الحساب;سياسة الخصوصية;الخلف;نبذة;تبليغ عن خطأ برمجي;تعلم];المزيد;شكل;استخدام WebGL;[Photopea: محرر صور متقدم;محرر أونلاين مجاني يدعم PSD, XCF, Sketch, XD و CDR;إنشاء صورة جديدة أو فتح ملف متواجد على الحاسوب. حفظ العمل كـ (PSDملف - حفظ كـ) PSD أو كـ (ملف - تصدير كـ) JPG / PNG / SVG;إقترح خاصيات جديدة على or . هدفنا هو <تطوير محرر صور أكثر تقدما و في المتناول>;الروابط الإعلانية تنفتح في نافذة جديدة;هاته الخاصية غير متوفرة;]];[فتح;نشر على الويب;حفظ;حفظ كملف PSD;طباعة;فتح من رابط URL;فتح ملف من الحاسب;جلب ملفات من جوجل درايف;تصدير كـ;تصدير الطبقة;الاسکریپت;فتح والصاق;إغلاق;التخزين المحلي;];[للأمام;للخلف;مسح;ملء;تدوير / تحويل;تدوير;إقلب VAR0;مقياس VAR0;رجوع;منظور;[دمج تلقائي;توسيط آلي];تلاشي;تطبيق الصورة];تعديلات;[الإضاءة;مستويات;مُنحنيات;تعريض;حيويتها;صبغة اللون/تشبع;توازن الالوان;ابيض واسود;فلتر صور;خلاط القنوات;بحث عن لون;عكس;تتال;عتبة;خريطة التدرج;لون انتقائي;[نغمة تلقائية;تبيان تلقائى;تلوين تلقائي];استبدال اللون];[قطع;نسخ;لصق;جديد;حذف;تفعيل;تعطيل;نسخ مدمج;تطبيق;مرة أخرى;تحديث];[نسخ الطبقة;طبقة تعديل جديدة;قناع النقطية;قناع الفيكتور;اضافة(اظهار الجميع);[اضافة (اخفاء الجميع);كشف التحديد;اخفاء التحديد;من الشفافية];[قناع التشذيب;العربية];حول إلى عنصر ذكي;دمج;تجميع الطبقات;دمج للاسفل;دمج للاعلى;[دمج الطبقات;تسطيح الصورة];طبقة جديدة;تمكين قناع النقطية;تعطيل قناع النقطية;تمكين قناع المتجهات;تعطيل قناع المتجهات;تمكين قناع القصاصة;تعطيل قناع القصاصة;مجلد جديد;إضافة قناع تنقيطي;(Swimming);إضافة قناع فيكتور;حذف قناع فيكتور;ربط القناع النقطي;عدم ربط القناع النقطي;ربط قناع فيكتور;عدم ربط قناع فيكتور;تفعيل تأثيرات الطبقة;تعطيل تأثيرات الطبقة;حذف الطبقة;تغيير شفافية الطبقة;تغيير المزج;تنقيط نمط الطبقة;ترتيب الطبقة;[انشاء عنصر ذكي;تحديث عنصر ذكي;وضع هدف ذكي;مصدر )عنصر ذكي(;وضع التجميع];تغيير الاسم;تغيير اللون;تعديل تنظيم الطبقة;تحويل إلى شكل;تفعيل قناع الفلتر;الغاء قناع الفلتر;تفعيل الفلتر الذكي;الغاء تفعيل الفلاتر الذكية;اضافة قناع للفلتر;مسح فلتر القناع;فلاتر نقية وذكية;[[تلوين مصمت;تلوين متدرج;الملء النمطي;إدراك بالمحتوى];ملئ لون جديد;تعديل طبقة التلوين];طبقة عبر النسخ;وجه الفلترة;حذف استايل الطبقة;تحريك الفلتر الذكي;حذف الفلتر;[ربط الطبقات;فك ارتباط الطبقات];ترتيب الطبقات;[جلب للمقدمة;إرسال للخلف;إرسال للوراء;إرسال للخلف];[الطبقة مقفلة;إغلاق التعديلات;];];[الكل;إلغاء;قلب;تعديل;توسيع;انكماش;ترييش;تحريك المحدد;مدى اللون;حد;خيار التحول;تحسين الحواف;معالجة التحديد;];[تقريب;تكبير;الخطوط الإرشادية;مساطر;شبكة;لقطة;التقط إلى;حدود المستند;شبكة بيكسل (عند التكبير);مسارات;الإلتصاق بالبكسل;[شرائح;العربية];إظهار];[السجل;الطبقات;خصائص;فرشة;حرف;فقرة;معلومات;تراكيب الطبقات;معرض الألوان;العربيه;الرسم البياني;متصفح;مُسْبَقات الأداة;];[أداة الفرشة;اداة النسخ;أداة القطع;اداة الممحاة;اختر الإهليلج;قطارة;أداة التدريج;أداة اليد;اداة الكتابة;اختيار بالوهق;اختيار بالوهق الجاذب;اداة التحريك;عصا سحرية;أداة دلو الدهن;اختيار بالوهق الكثير الضلع;اختيار مستطيل;تحول حر;أداة التكبير;اداة الضبابية;اداة الحدة;اداة الطمس;اداة التفادي;اداة الحرق;اداة الاسفنجه;فرشاة معالجة البقع;فرشاة المعالجة;أداة التصحيح;اختيار المسار;اختيار تلقائي;قلم;قلم حر;هاي;مستطيل;بيضاوي;شكل حدودي;خط;مسطرة;تحديد سريع;اداة القلم;قص منظوري;أداة القطع:التشريح;أداة انتقاء الشرائح;استبدال اللون;أداة العين الحمراء;اختار العينة;ممحاة الخلفية;تعديل الوضعية;تدويرالمنظور;موازنة المحتوى;أداة تحريك المحتوى];[لون;لاقط اللون;محرر الحدود;حجم الاطار;التكرار داخل...;محرر التدرج اللوني;نمط الطبقه;مشروع جديد;حفظ للويب;إلتواء;حجم الصورة;تحويل الى صورة متجهة;[قص;قص;عرض الكل];اختصارات لوحة المفاتيح;إضافة خطوط إرشاد;[إزالة أداة التوجيه;أداة توجيه من الطبقة]];[الشفافية;تأثيرات;السطوع;[التباين;إستخدام النظم القديمة];قناة;التعريض;الازاحة;تعديل جاما;صبغة اللون;تشبع;الاضاءة;تلوين;مدى;حيوية;[الحجم;إسقاط;أقرب جوار;شبه خطيه];زاوية;استدارة;الحدة;مباعدة;[وضع الدمج;دمج إذا];حجم العينة;هله;تصميم;[عكسي;نسبي;إرساء];التباين;التلامس;ملء;استخدام زاوية شامله;منانت;انتشار;ضجيج;عدم عرض التظليل;تقنية;اتجاه;عمق;تنعيم;الوضع;ميل;مقياس;محاذاة مع طبقة;مركز;العرض;الطول;المكان المقصود;النوع;المقدمة;خلفية;محدد;اسم;إنشاء;التنسيق;إبقاء نسبة القياس;[الجودة;صفحات];تكرار;نقل;الفلاتر الذكية;نصف القطر;كمية;التوزيع;[منتظم;تمويه];أحادي اللون;حجم الخلية;نمط;تدفق;سَمِيك;حماية التفاصيل;نوع الملء;النقش;تقطع;حافة;المصدر;هدف;قنوات;قناع;كثافة;الانحياز;[مسار;شكل;بكسل;بوصات;سنتيمترات;ملليمترات;بالمئة];الأشكال;الجوانب;التفضيلات;[الطول;النسبة;أيّ;نوع الشبكة;متساوي القياس;فراغ الشبكة;وحدات المسطرة];تقليل التشويش;ألوان;المسافات;معدل التعديل;تحديد تلقائي;بحث;تعريف جديد;[صورة;شاشة;هاتف ذكي;اعلانات;اطبع];[مجاني;نسبة ثابتة;حجم ثابت];مساعدة;[شكل حي;تحرير شكل حي;نفس الشعاع];ضبابي;[متعدد الأضلاع;نجم;حلزوني;مربع];[شعاع الزاوية;الشعاع الداخلي]];[لون;[لا شيء;أحمر;برتقالي;أصفر;اخضر;ازرق;أرجواني;الرمادي;أبيض;شفاف;أسود;السيان;ماجنتا;محايدة];مجموع;مطلق;الحفاظ على اللمعان];[الظل الساقط;التظليل الداخلي;التوهج الخارجي;التوهج الداخلي;تشطيب وزخرفة;تراكيب الالوان;تأثير تدريج لوني;نمط تراكب;صقيل;جرة قلم;خيارات المزج;تحديد النقاط];[شكل التلميح;ديناميكية التلميحات;بعثرة;ديناميكية اللون;[حجم الغضب;الحد الأدنى من القطر;زاوية القطع;القطع الدائري;الحد الأدنى من الاستدارة];[وضع القطع;عَدّ;عد القطع];[مقدمة\\خلفية القطع;درجة ألوان القطع;تشبع القطع;سطوع القطع];[حدد مصدر النسخ عن طريق الضغط على Alt (أو K) والنقر فوق الصورة;تحديد الواجهة بالأبيض, الخلفية بالأسود, و المساحة المجهولة بالرمادي;الطبقة لايمكن تعديلها;يجب أولا أن تحول طبقة الكتابة الى صورة نقطية;يجب تحويل الغرض الذكي لبكسل أولاً;حدد طبقات متعددة;استقامة طبقة;.افتح مستند أولاً;أغلق النافذة الحالية أولا;الأداة الحالية فقط];[تسجيل;مجموعة عمل جديدة;عمل جديد];[ضغط القلم يتحكم في العتامة;ضغط القلم يتحكم في الحجم];[عادي;Dissolve;Darken;Multiply;Color Burn;Linear Burn;Darker Color;Lighten;Screen;Color Dodge;Linear Dodge;Lighter Color;Overlay;Soft Light;Hard Light;Vivid Light;Linear Light;Pin Light;Hard Mix;Difference;Exclusion;Subtract;Divide;Hue;Saturation;اللون;Luminosity;المرور من خلال]];[تقديم;تتبع;التحول الأساسي;[تحويل إلى نقطة النص;تحويل إلى نقطة الفقرة]];[إجمالي المحتوى;الطبقة الحالية;التحديد;الحالي والأسفل];[إستبدال;جمع;خصم;تقاطع;استبعاد;دمج];[[خطي;شعاعي;زاوية;منعكس;ماسي;شكل انفجار];[انعم;تدقيق];[الحافة الخارجية;الحافة الداخلية;منقوش;وسادة منقوشة;ضرب الوسادة;ضربة عرض];[ناعم;إزميل معقد;إزميل سهل;النعومة];[أعلى;أسفل];[خارج;وسط;داخل;من الوسط];[الظلال;الدرجات اللونية المتوسطة;تسليط الضوء];[تشبع;نقع];[صغير;وسط;كبير];[غطاء الشىء;الزوايا;شرطات]];[اختر الشكل تحت المؤشر;ضوابط التحول;بكسل إلي بكسل;تناسب المنطقة;[محاذاة الحواف اليسرى;منتصف أفقي;hd;محاذاة أعلى الحواف;ر;محاذاة الحواف السفلية;فراغات متساوية]];[ادخل في;المشروع الحالي;مشروع جديد;دقة;يضاف إلى المشروع الحالي;تم إنشاء مشروع جديد;تم منع الدخول للكاميرا];[الاتجاه;انحناء;تشويه أفقي;تشويه عمودي;[أفقي;عمودي;أفقياً;عموديا];[لا شيء;قوس;قوس السفلى;قوس الاعلى;قوس;انتفاخ;صدف أسفلي;صدف علوي;علم;موج;تصيد;ترتفع;عين السمكة;تضخيم;كبس;لف;مخصوص];[خط;غير متوفر;سيتم تقديم باستخدام;هناك عمل غير محفوظ في;هل تريد حقًا إغلاقه؟];[مبادلة الالوان;الإفتراضى: ابيض واسود]];[تم التحميل;اضافة;دليل التحريك;دليل المسح;دليل الإضافة;جاري التحميل;VAR0تحميل الــ];[معرض الفلاتر;[[تذويب;[فرك;إعادة البناء;تنعيم;لف;تقليص;تكبير;إدفع لليسار;تجميد;إزالة التجميد]];[تصحيح العدسة]];التشويش;[متوسط;ضباب;أكثر ضباباً;صندوق الضباب;التمويه الضبابي;ضبابية العدسة;ضبابية الحركة;ضبابية التدوير;ضبابية الشكل;الضباب الذكي;تنعيم الأسطح];تشويه;[إزاحة;قَرْص;الإحداثيات القطبية;تموجات;مستعرض;تكوير;موجة];ضجيج;[إضافة ضجيج;إزالة البقع;غبار و خدوش;التوسيط];التهيئة النقطية;[الألوان النصفية;تبلور;تصغير الأسطح;تجزئة;نقش تظليلي;فسيفساء;تنقيط];تحويل;[غيوم;غيوم الإختلاف;لمعة العدسة];حدة;[حدة;حدة الحواف;أكثر حدة;الحدة الذكية;قناة التوضيح];تحديد الاسلوب;[تفكيك;بروز;إطلاق;اوجد الحواف;تلوين زيتى];غير ذلك;[مخصوص;مرشح ترددات عالية;اقصى قيمة;ادنى قيمة;إزاحة;تكرار];[منطقة غير معرفة;اجعله شفاف;كرر نقاط الحافة;الإلتفاف حول;آخِر مرشح;عرض]];[قوالب جاهزة;[مرشح الخط;الكلمات الرئيسية;عشوائية];[مع الرموز;مع الصورة];[صورة مصغّرة;قائمة]]", + "[Arquivo;Editar;Imagem;Camada;Pasta;Selecionar;Filtro;Visualizar;Janela;Idioma;Entrar;Sair;Criar tradução;[Conta;Termos de Uso;Voltar;Sobre;Reportar um erro;Aprender];Mais;Tema;Usar WebGL;[Photopea: Editor de imagem avançado;Editor online gratuito que suporta os formatos PSD, XCF, Sketch, XD e CDR.;Crie uma nova imagem ou abra arquivos existentes no seu computador. Salve o seu trabalho como PSD (Arquivo - Gravar como PSD) ou como JPG / PNG / SVG (Arquivo - Exportar como).;Sugira novas funções no nosso ou . O nosso objetivo é criar .;Os links de patrocinadores são abertos numa nova janela.;Este recurso não está disponível.;Instale Photopea]];[Abrir;Publicar Online;Gravar;Gravar como PSD;Imprimir;Abrir de URL;Abrir do computador;Conectar com Google Drive;Exportar como;Exportar Camadas;Script;Abrir e colocar;Fechar;Armazenamento local;];[Avançar;Retroceder;Limpar;Preencher;Transformar;Rodar;Espelhar VAR0;Escalar VAR0;Anular / Refazer;Perspetiva;[Misturar automaticamente;Alinhar automaticamente];Desvanecer;Aplicar Imagem];Ajustamentos;[Brilho/Contraste;Níveis;Curvas;Exposição;Vibração;Matiz/Saturação;Balanço de Cores;Preto e branco;Filtro fotográfico;Misturador de Canais;Procura de Cor;Inverter;Posterizar;Limite;Mapa de gradiente;Cor Seletiva;[Tom automático;Contraste automático;Cor automática];Substituir cor];[Cortar;Copiar;Colar;Novo(a);Apagar;Ativar;Desativar;Copiar Mesclado;Aplicar;Novamente;Atualizar];[Duplicar Camada;Nova Camada de Ajustamento;Máscara de rasterização;Máscara de vetor;Adicionar (Revelar Tudo);[Adicionar (Esconder Tudo);Revelar seleção;Ocultar seleção;Da transparência];[Máscara de recorte;Modo de máscara rápido];Converter para Objeto inteligente;Rasterizar;Agrupar camadas;Mesclar para baixo;Mesclar para cima;[Mesclar camadas;Achatar imagem];Nova Camada;Ativar máscara de rasterização;Desativar máscara de rasterização;Ativar máscara de vetor;Desativar máscara de vetor;Ativar máscara de recorte;Desativar máscara de recorte;Nova Pasta;Adicionar máscara de rasterização;Apagar máscara de rasterização;Adicionar máscara de vetor;Apagar máscara de vetor;Conectar máscara de rasterização;Desconectar máscara de rasterização;Conectar máscara de vetor;Desconectar máscara de vetor;Ativar efeitos de camada;Desativar efeitos de camada;Apagar Camada;Mudança de Opacidade da Camada;Mudança de Mistura;Rasterizar Estilo de Camada;Ordem de Camadas;[A Criar Objeto inteligente;A Atualizar Objeto inteligente;A Colocar Objeto inteligente;Fonte (Objeto inteligente);Modo de pilha];Mudança de Nome;Mudança de Cor;Editar Camada de Ajustamento;Converter para Forma;Ativar máscara de filtro;Desativar máscara de filtro;Ativar Filtros Inteligentes;Desativar Filtros Inteligentes;Adicionar máscara de filtro;Apagar máscara de filtro;Limpar Filtros Inteligentes;[[Preenchimento com Cor;Preenchimento com Gradiente;Preenchimento com Padrão;Ciente ao conteúdo];Nova Camada de Preenchimento;Modificar camada de preenchimento];Camada via cópia;Máscara de filtro;Apagar Estilo de Camada;Mover o Filtro Inteligente;Apagar o Filtro Inteligente;[Juntar Camadas;Separar Camadas];Organizar;[Trazer para primeiro;Trazer para a frente;Enviar para trás;Enviar para último];[Esta Camada está Bloqueada.;Travar mudança;Bloquear];];[Tudo;Anular Seleção;Inverso;Modificar;Expandir;Contrair;Difusão;Mover seleção;Intervalo de cores;Borda;Transformar seleção;Refinar arestas;Curar seleção;];[Mais Zoom;Menos Zoom;Guias;Réguas;Grade;Encaixar;Encaixar a;Limites do Documento;Grade de pixel;Demarcadores;Encaixar a pixels;[Fatias;Opções de fatiar];Mostrar];[Histórico;Camadas;Propriedades;Pincel;Caractere;Parágrafo;Informações;Composições de camada;Amostras;Ações;Histograma;Navegação;Predefinições de Ferramenta;Glifos];[Ferramenta pincel;Clonagem;Corte;Borracha;Seleção Elipsoidal;Conta-gotas;Gradiente;Mão;Texto;Seleção com Laço;Seleção com Laço Magnético;Mover;Varinha Mágica;Balde de Tinta;Seleção com Laço Poligonal;Seleção retangular;Transformação Livre;Ampliar;Ferramenta de desfoque;Ferramenta de foco;Ferramenta para borrar;Ferramenta de exposição;Ferramenta para queimar;Ferramenta de esponja;Ferramenta de cura localizada;Ferramenta de cura;Ferramenta de remendo;Seleção de demarcador;Seleção Direta;Caneta;Caneta livre;Forma personalizada;Rectângulo;Elipse;Forma paramétrica;Linha;Régua;Seleção rápida;Ferramenta lápis;Corte de perspectiva;Ferramenta de fatia;Ferramenta de seleção de fatia;Substituição de cor;Olhos vermelhos;Seleção de objeto;Borracha de plano de fundo;Distorção de marionete;Girar Visualização;Escala sensível a conteúdo;Movimento Sensível ao Conteúdo];[Tirar foto;Escolher Cor;Editor de Contornos;Tamanho da Tela de pintura;Duplicar para...;Editor de Gradiente;Estilo da Camada;Novo Projeto;Gravar para a Web;Deformar;Tamanho da Imagem;Vetorizar bitmap;[Aparar;Cortar;Revelar Tudo];Atalhos do Teclado;Adicionar Guias;[Apagar Guias;Guias da Camada]];[Opacidade;Efeitos;Brilho;[Constraste;Usar Legado];Canal;Exposição;Deslocamento;Correção de Gama;Matiz;Saturação;Luminosidade;Colorir;Extensão;Vibração;[Tamanho;Interpolação;Vizinho mais próximo;Bilinear];Ângulo;Arredondamento;Dureza;Espaçamento;[Modo de Mistura;Mesclar Se];Tamanho da Amostra;Contorno;Estilo;[Reverter;Relativa;Âncora];Tolerância;Contíguo;Preenchimento;Usar ângulo global;Distância;Espalhamento;Ruído;Cortar Sombra;Técnica;Direção;Profundidade;Suavizar;Modo;Gradiente;Escalar;Alinhar À Camada;Posição;Largura;Altura;Destino;Tipo;Primeiro Plano;Plano de Fundo;Personalizado;Nome;Criar;Formatar;Manter Aspeto;[Qualidade;Páginas];Duplicar;Mover;Filtros Inteligentes;Raio;Quantidade;Distribuição;[Uniforme;Gaussian];Monocromático;Tamanho da célula;Padrão;Corrente;Força;Proteger detalhe;Tipo de preenchimento;Textura;Tremulação;Aresta;Fonte;Alvo;Canais;Máscara;Densidade;Alinhado;[Demarcador;Forma;Pixels;Polegadas;Centímetros;Milímetros;Porcentagem];Formas;Lados;Preferências;[lange;Ratio;Qualquer;Tipo de grade;Isométrico;Espaçamento da grade;Unidades da régua];Reduzir Ruído;Cores;Distâncias;Ritmo;Seleção automática;Procurar;Definir novo;[Foto;Tela;Celular;Anúncios;Cópia impressa];[Livre;Taxa Fixa;Tamanho Fixo];Ajuda;[Forma viva;Editar forma viva;O mesmo Raio];Grau de seleção;[Polígono;Estrela;Espiral;Quadrado];[Raio do canto;Raio interno]];[Cor;[Nenhum;Vermelho;Laranja;Amarelo;Verde;Azul;Roxo;Cinzento;Branco;Transparente;Preto;Ciano;Magenta;Neutral];Total;Absoluto;Preservar Luminosidade];[Sombra;Sombra Interna;Brilho Exterior;Brilho Interior;Bisel e Relevo;Sobreposição de cor;Sobreposição de gradiente;Sobreposição de padrão;Cetim;Traçado;Opções de mistura;Selecionar pixels];[Forma da ponta;Dinâmica da ponta;Espalhamento;Dinâmica de cor;[Tremulação do tamanho;Diâmetro mínimo;Tremulação de ângulo;Tremulação de redondez;Redondez mínima];[Tremulação da posição;Quantidade;Tremulação da quantidade];[Tremulação do Plano de fundo/Primeiro plano;Tremulação do matiz;Tremulação de saturação;Tremulação de brilho];[Selecione a fonte de clonagem segurando Alt (ou K) e clicando na imagem.;Marque primeiro plano com Branco, fundo com Preto e a área desconhecida com Cinza.;Camada não é editável.;Camada de Texto têm de ser rasterizada primeiro;Objeto inteligente deve der rasterizado primeiro;Selecionar múltiplas camadas;Retificar camada;Abra um documento primeiro.;Feche a janela atual primeiro.;Somente Ferramenta Atual];[Gravar;Novo conjunto de ações;Nova ação];[Pressão da caneta controla a opacidade;Pressão da caneta controla o tamanho];[Normal;Dissolver;Escurecer;Multiplicação;Superexposição de cor;Superexposição linear;Cor mais escura;Clarear;Tela;Subexposição de cor;Subexposição linear;Cor mais clara;Sobrepor;Luz indireta;Luz direta;Luz brilhante;Luz linear;Luz do pino;Mistura sólida;Diferença;Exclusão;Subtrair;Dividir;Matiz;Saturação;Cor;Luminosidade;Passagem]];[Entrelinhas;Encalço;Deslocamento de linha de base;[Converter para Texto de Ponto;Converter para Texto de Parágrafo]];[Todas as camadas;Camada atual;Seleção;Atual e abaixo];[Substituir;União;Diferença;Intersecção;Excluir;Mesclar];[[Linear;Radial;Ângulo;Reflectido;Diamante;Estouro de forma];[Mais suave;Preciso];[Bisel exterior;Bisel interior;Entalhe;Relevo travesseiro;Relevo de risco;Largura do traçado];[Suavizar;Cinzel sólido;Cinzel suave;Suavidade];[Cima;Baixo];[Fora;Centro;Dentro;A partir do centro];[Sombras;Tons Médios;Realces];[Dessaturar;Saturar];[Pequeno;Médio;Ampla];[Arremates;Cantos;Traços]];[Escolher o objeto debaixo do cursor;Controlos de transformação;Pixel a Pixel;Ajustar a área;[Alinhar cantos esquerdos;Centralizar horizontalmente;Alinhar cantos direitos;Alinhar cantos de cima;Centralizar verticalmente;Alinhar cantos de baixo;Lacunas iguais]];[Insira dentro de;Projeto atual;Novo projeto;Resolução;Adicionado ao projeto atual.;Um novo projeto foi criado.;O acesso à câmera foi negado.];[Orientação;Curvatura;Distorção Horizontal;Distorção Vertical;[Horizontal;Vertical;horizontalmente;verticalmente];[Nenhum(a);Arco;Arco Inferior;Arco Superior;Arquear;Protuberância;Escudo Inferior;Escudo Superior;Bandeira;Onda;Peixe;Subir;Olho de Peixe;Esticar;Apertar;Torcer;Customizado];[Tipo de Letra;não está disponível;Vai ser desenhado usando;Há trabalho não guardado no;Você realmente quer fechá-lo?];[Permutar Cores;Padrão: Branco e Preto]];[carregado;adicionado;Mover guia;Apagar guia;Adicionar guia;Carregando;Carregar VAR0];[Galeria de filtros;[[Dissolver;[Borrar;Reconstruir;Suavizar;Redemoinho;Encolher;Inflar;Empurre à esquerda;Congelar;Descongelar]];[Correção de lente]];Desfoque;[Médio;Desfoque;Desfoque Maior;Desfoque de Caixa;Desfoque Gaussiano;Desfoque de Lente;Desfoque de Movimento;Desfoque Radial;Desfoque de Forma;Desfoque Inteligente;Desfoque de Superfície];Distorcer;[Mesclar;Sucção;Coordenadas Polares;Ondulação;Cisalhamento;Esferização;Ondas];Ruído;[Adicionar Ruído;oi;Poeira e Rabiscos;Mediana];Pixelizar;[Meio-Tom em Cores;Cristalizar;Facetar;Fragmentar;Meia-Tinta;Mosaico;Pontilhar];Renderizar;[Nuvens;Nuvens por Diferença;Reflexo de Flash];Aguçar;[Tornar Nítido;Tornar Arestas Nítidas;Nitidez Maior;Aplicação Inteligente de Nitidez;Máscara de Nitidez];Estilizar;[Difusão;Realçar;Extrusão;Indicação de Arestas;Pintura a óleo];Outros Filtros;[Customizado;Alta frequência;Máximo;Mínimo;Deslocamento;Repetir];[Área indefinida;Definir como transparente;Repetir pixels da aresta;Preencher com lado oposto;Último filtro;Visualizar]];[Modelos;[Filtro de fontes;Palavras-chave;Aleatória];[Com símbolos;Com foto];[Miniaturas;Lista]]", + "[Файл;Редактирование;Изображение;Слой;Папка;Выделить;Фильтр;Просмотр;Окно;;Войти;Выйти;Создать перевод;[Аккаунт;Правила использования;Назад;О приложении;Сообщить об ошибке;Обучение];Больше;Тема;Использовать WebGL;[Photopea: расширенный редактор изображений;gjadm;Создайте новое изображение или откройте существующие файлы с компьютера. Сохраните свою работу как PSD (Файл - Сохранить как PSD) или как JPG / PNG / SVG (Файл - Экспортировать как).;Предлагайте новые возможности в нашем или . Нашей целью является создание <наиболее продвинутого и доступного по цене редактора фотографий>.;Ссылки на спонсоров открываются в новом окне.;Эта функция недоступна.;]];[Открыть;Опубликовать онлайн;Сохранить;Сохранить как PSD;Печать;Открыть по ссылке;Открыть с компьютера;Подключиться к Google Диску;Экспортировать как;Экспортировать слои;Скрипт;Открыть и поместить;Закрыть;Локальное хранилище;];[Шаг вперед;Шаг назад;Очистить;Заливка;Трансформация;Поворот;Отразить VAR0;Масштабирование VAR0;Отменить / Повторить;Перспектива;[Автоматическое смешивание;Автоматически выравнивать];Ослабить;Внешний канал];Коррекция;[Яркость/Контрастность;Уровни;Кривые;Экспозиция;Сочность;Тон/Насыщенность;Цветовой баланс;Черно-белое;Фотофильтр;Миксер каналов;Поиск цвета;Инвертировать;Постеризация;Порог;Карта градиента;Выборочный цвет;[Автотон;Автоконтраст;Авто цветовая коррекция];Замена цвета];[Вырезать;Копировать;Вставить;Новый;Удалить;Включить;Выключить;Объединение копий;Применить;Повторно;Обновить];[Дублировать слой;Новый корректирующий слой;Растровая маска;Векторная маска;Добавить (показать все);[Добавить (скрыть все);Показать выделенную область;Скрыть выделенную область;Из прозрачности];[Маска отсечения;Режим быстрой маски];Конвертировать в Смарт-объект;Растрирование;Группа слоёв;Объединить с предыдущим;Объединить с верхним слоем;[Объединить слои;Выполнить сведение];Новый слой;Включить растровую маску;Выключить растровую маску;Включить векторную маску;Выключить векторную маску;Включить маску отсечения;Выключить маску отсечения;Новая папка;Добавить растровую маску;Удалить растровую маску;Добавить векторную маску;Удалить векторную маску;Привязать растровую маску;Отвязать растровую маску;Привязать векторную маску;Отвязать векторную маску;Включить эффекты слоев;Выключить эффекты слоев;Удалить слой;Изменение прозрачности слоя;Изменение смешивания;Растеризовать стиль слоя;Порядок слоёв;[Создание Смарт-объекта;Обновление Смарт-объекта;Размещение Смарт-объекта;Источник (Смарт-объект);Режим стека];Изменение названия;Изменение цвета;Редактировать корректирующий слой;Преобразовать в Форму;Включить маску фильтра;Выключить маску фильтра;Включить умные фильтры;Выключить умные фильтры;Добавить маску фильтра;Удалить маску фильтра;Очистить умные фильтры;[[Заливка сплошным цветом;Градиентная заливка;Заливки узором;С учетом содержимого];Новый заполняющий слой;Изменить заполнениние слоя];Слой через копию;Маска фильтра;Удалить стиль слоя;Передвинуть Смарт фильтр;Удалить смарт фильтр;[Объединить слои;Разделить слои];Расставить;[На передний план;Выдвинуть;Отправить назад;На задний план];[Этот слой заблокирован.;Блокировать изменения;];];[Все;Отменить выделение;Инвертировать;Модификация;Развернуть;Стягивать;Перо;Передвинуть выделение;Цветовой диапазон;Граница;Трансформировать выделение;Уточнить край;Пометить выбранное;];[Приблизить;Отдалить;Направляющие;Линейки;Сетка;Привязка;Привязка к;Границы документа;Пиксельная сетка;Контуры;Привязка к пикселям;[Фрагменты;Параметры среза];Показать];[История;Слои;Свойства;Кисть;Характер;Параграф;Инфо;Наборы слоев;Образы;Операция;Гистограмма;Навигатор;Наборы параметров для инструмента;Глифы];[Кисть;Штамп;Рамка;Ластик;Выделение в форме эллипса;Пипетка;Градиент;Рука;Текст;Выделение лассо;Выделение магнитное лассо;Перемещение;Волшебная палочка;Заливка;Выделение полигональное лассо;Прямоугольное выделение;Свободное трансформирование;Лупа;Инструмент «Размытие»;Инструмент «Резкость»;Палец;Инструмент «Осветлитель»;Инструмент «Затемнитель»;Инструмент \"Губка\";Точечная восстанавливающая кисть;Восстанавливающая кисть;Заплатка;Выделение контура;Прямой выбор;Ручка;Свободная ручка;Произвольная фигура;Прямоугольник;Эллипс;Параметрическая Форма;Линия;Линейка;Быстрое выделение;Карандаш;Кадрирование перспективы;Фрагмент;Выделение фрагмента;Замена цвета;Красные глаза;Выбор объекта;Убрать фон;Кукольное искажение;Поворот вида;Масштаб с учетом содержимого;Перемещение с учетом содержимого];[Сделать снимок;Выбор цвета;Редактор контура;Размер холста;Дублировать в ...;Редактор градиента;Стиль слоя;Новый проект;Сохранить для интернета;Перекос;Размер изображения;Трассировка;[Тримминг;Вырезать;Раскрыть все];Горячие клавиши;Добавить направляющие;[Удалить направляющие;Направляющие из слоя]];[Непрозр.;Эффекты;Яркость;[Контраст;Использовать прежние];Канал;Выдержка;Смещение;Коррекция гаммы;Тон;Насыщенность;Освещенность;Раскрасить;Диапозон;Сочность;[Размер;Интерполяция;Ближайшего соседа;Билинейная];Угол;Скругленность;Жесткость;Интервал;[Режим смешивания;Наложить, если];Pavyzdžio dydis;Контур;Стиль;[Обратить;Относительно;Расположение];Допуск;Непрерывный;Заливка;Использовать глобальный угол;Смещение;Разброс;Шум;Убрать тень;Метод;Направление;Глубина;Смягчать;Режим;Карта градиента;Масштаб;Выровнять по слою;Позиция;Ширина;Высота;Цель;Тип;Передний план;Задний план;Специальный;Имя;Создать;Формат;Сохранять пропорции;[Качество;Страницы];Дублировать;Двигать;Умные фильтры;Радиус;Количество;Дистрибуция;[Форма;По Гауссу];Однотонный;Размер Ячейки;Шаблон;Нажим;Сила;Защитить детали;Тип обводки;Текстура;Колебание;край;Источник;Цель;Каналы;Маска;Плотность;Выравнивание;[Контур;форма;Пиксели;Дюймы;Сантиметры;Миллиметры;Процент];Формы;Стороны;Предпочтения;[Длина;Соотношение;Любой;Сетка стиль;Изометрический;Размеры сетки;Разметка линеек];Уменьшить шум;Краски;Расстояния;Рейтинг;Авто-выбор;Поиск;Определить новый;[Фото;Экран;Мобильный;Реклама;Печать];[Свободный;Фикс. соотношение;Фикс. размер];Помощь;[Живые фигуры;Изменить фигуру;Те же радиусы];Разброс;[Многоугольник;Звезда;Спираль;Квадратный];[Радиус скруглений;Внутренний радиус]];[Цвет;[Отсутствует;Красный;Оранжевый;Желтый;Зеленый;Синий;Фиолетовый;Серый;Белый;Прозрачный;Чёрный;голубой;пурпурный;Нейтральный];Всего;Абсолютная;Сохранить свечение];[Тень;Внутренняя тень;Внешнее свечение;Внутреннее свечение;Тиснение;Наложение цвета;Наложение градиента;Наложение узора;Глянец;Обводка;Параметры наложения;Выберите точки];[Форма кончика;Динамический советник;разброс;Цветовая динамика;[Размер Джиттер;Минимальный диаметр;Угол дрожания;Округлость дрожания;Минимальная окружность];[Позиция угла;Подсчёт;Подсчёт углов];[Переднего/Заднего плана угла;Тон угла;Колебание насыщенности;Колебание яркости];[Выберите источник клонирования, удерживая Alt и нажав на изображение.;Выбрать цвет переднего плана Белым, заднего плана Черным и не известную зону Серым;Слой не редактируемый;Слой с текстом должен быть растрирован вначале;Смарт-объект должен быть сначала растрирован;Выберите нескольких слоев;Выпрямить слой;Сначала откройте документ.;Сначала закройте текущее окно.;Только активный инструмент];[Запись;Новый набор операций;Новая операция];[Нажим управляет непрозрачностью;Нажим управляет размером];[Обычный;Растворение;Замена темным;Умножение;Затемнение основы;Линейный затемнитель;Темнее;Замена светлым;Осветление;Осветление основы;Линейный осветлитель;Светлее;Перекрытие;Рассеянный свет;Направленный свет;Яркий свет;Линейный свет;Точечный свет;Жесткое смешение;Разница;Исключение;Вычитание;Разделение;Тон;Насыщенность;Цвет;Свечение;Пропустить]];[Интерлиньяж;Трекинг;Базовая линия;[Преобразовать в короткий текст;Преобразовать в блочный текст]];[Все слои;Текущий слой;Выделение;Текущий и следующие];[Заменить;Объединение;Разница;Пересечение;Исключающее ИЛИ;Слияние];[[Линейный;Радиальные;Угол;Отражение;Алмаз;Разбивка фигуры];[Мягче;Точное];[Внешний скос;Внутренний Скос;рельеф;Выпуклый рельеф;Рельефная кайма;Обводка ширина];[Оптимизировать;Твердый резец;Мягкий резец;Гладкость];[Вверх;Вниз];[Снаружи;Центр;Внутри;От центра];[Тени;Средние тоны;Свет];[Десатурация;Сатурация];[Маленький;Средний;Большой];[Концы;Углы;Тире]];[Выбрать объект под курсором;Контроль трансформации;Пиксель в пиксель;Подогнать площадь;[Выровнять левые края;Горизонтально по центру;Выровнять правые края;Выровнять верхние края;Вертикально по центру;Выровнять нижние края;Равные пробелы]];[Вставить в;Текущий Проект;Новый Проект;Разрешение;Добавлено в текущий проект;Был создан новый проект.;Доступ к камере было отказано.];[Ориентация;Изгиб;Искажение по горизонтали;Искажение по вертикали;[Горизонтальная;Вертикальная;по горизонтали;по вертикали];[Нет;Дуга;Дуга вниз;Дуга вверх;Арка;выпуклость;Нижняя оболочка;Верхняя оболочка;Флаг;Волна;Рыба;Рост;Рыбий Глаз;Надуть;Выжать;Поворот;Пользовательский];[Шрифт;недоступен;Будет отображаться с использованием;Существует несохраненные работы в;Вы действительно хотите закрыть это?];[Замена цветов;По умолчанию: Белое и черное]];[загружается;Добавлено;Переместить направляющую;Удалить направляющую;Добавить направляющую;Загрузка;Загрузить VAR0];[Галерея фильтров;[[Пластика;[Размазать;Перестроить;Разглаживать;Скручивать;Сжать;Надуть;Нажать влево;Заморозить;Разморозить]];[Корректировка объектива]];Размытие;[Среднее;Размытие;Больше размытия;Размытие по рамке;Размытие по Гауссу;Lens Blur;Motion Blur;Radial Blur;Shape Blur;Интеллектуальная Размытость;Поверхностное размытие];Исказить;[Заменить;Щепотка;Полярные координаты;Волнистый;Сдвиг;Сферизация;Волна];Шум;[Добавить шум;Удаление пятен;Пыль и Царапины;Медиана];Оформление;[Цвет Полутонов;кристаллизовать;Фасет;Фрагмент;глубокая печать;Мозаика;Акварель];Рендеринг;[Облака;Разные облака;Блики];Резкость;[Резкость;Резкие границы;Больше резкости;Умная Резкость;Нерезкая Маска];Стилизовать;[Рассеить;Тиснение;Вытянуть;Найти края;Масляная краска];Другие;[Настройка;Цветовой контраст;Максимум;Минимум;Смещение;Повторить];[Неопределенная Область;Обозначить Прозрачным;Повторить Крайние Пиксели;Обернуть Вокруг;Предыдущий фильтр;Просмотр]];[Шаблоны;[Фильтр шрифтов;Ключевые слова;Случайно];[С символами;С фото];[Миниатюры;Список]]", + "[Файл;Редагувати;Зображення;Шар;Папка;Виділити;Фільтр;Перегляд;Вікно;Мова;Увійти;Вийти;Створення перекладу;[Профіль;Умови використання;Назад;Про програму;Повідомити про помилку;Навчання];Більше;Тема;Використовувати WebGL;[Photopea: Розширений редактор зображень;Безкоштовний онлайн-редактор, що підтримує формати PSD, XCF, Sketch, XD і CDR.;Створити нове зображення або відкрити наявні файли з комп'ютера. Збережіть роботу як PSD (Файл - Зберегти як PSD) або як JPG / PNG / SVG (Файл - Експортувати як).;Запропонуйте нові функції на нашому або . Нашою метою є створення <найбільш передових і доступних фото-редактор>.;Спонсорські посилання відкриваються в новому вікні.;Ця функція недоступна.;]];[Відкрити;Опублікувати онлайн;Зберегти;Зберегти як PSD;Друк;Відкрити з URL;Відкрити з комп'ютера;Під'єднати до Google Drive;Експортувати як;Експортувати шари;Скрипт;Відкрити і помістити;Закрити;Локальне Сховище;];[Крок уперед;Крок назад;Очистити;Заповнити;Трансформувати;Повернути;Перевернути VAR0;Масштабувати VAR0;Скасувати / Повторити;Перспектива;[Автоматичне накладання;Автовирівнювання];Затухання;Застосувати зображення];Коригування;[Яскравість / Контрастність;Рівні;Криві;Експозиція;Соковитість;Відтінок/Насиченість;Баланс Кольорів;Чорно-білий;Фільтр Фото;Мікшер каналів;Пошук кольорів;Інвертувати;Постеризація;Поріг;Градієнтна Карта;Вибірковий колір;[Автоматичний відтінок;Автоматичний контраст;Автоматичний колір];Замінити колір];[Вирізати;Копіювати;Вставити;Створити;Видалити;Увімкнути;Вимкнути;Копіювати об'єднано;Застосувати;Знову;Оновити];[Дублікувати шар;Новий шар корекції;Растрова маска;Векторна маска;Додати (показати все);[Додати (сховати все);Показати виділення;Сховати виділення;З прозорості];[Маска відсікання;Режим швидкої маски];Перетворити на смарт-об'єкт;Растеризувати;Групувати шари;Об'єднати з нижче;Об'єднати з вище;[Об'єднати шари;Виконати зведення];Новий шар;Увімкнути растрову маску;Вимкнути растрову маску;Увімкнути векторну маску;Вимкнути векторну маску;Увімкнути відсічну маску;Вимкнути відсічну маску;Нова папка;Додати растрову маску;Видалити растрову маску;Додати векторну маску;Видалити векторну маску;Пов'язати растрову маску;Від’єднати растрову маску;Пов'язати векторну маску;Від’єднати векторну маску;Увімкнути ефекти шарів;Вимкнути ефекти шарів;Видалити шар;Зміна непрозорості шару;Зміна змішування;Растеризувати стиль шару;Порядок шарів;[Створення смарт-об'єкта;Оновлення смарт-об'єкта;Розміщення смарт-об'єкта;Джерело (Смарт-об'єкт);Пакетний режим];Зміна назви;Зміна кольору;Редагувати шар коригування;Перетворити на фігуру;Увімкнути маску фільтра;Вимкнути маску фільтра;Увімкнути розумні фільтри;Вимкнути розумні фільтри;Додати маску фільтра;Видалити маску фільтра;Очистити розумні фільтри;[[Заповнення суцільним кольором;Заповнення градієнтом;Заповнення патерном;Відповідно до вмісту];Новий шар заповнення;Змінити шар заповнення];Скопіювати на новий шар;Маска фільтра;Видалити стиль шару;Пересунути смарт фільтр;Видалити смарт фільтр;[Зв'язування шари;Звільнення шари];Розставити;[На передній план;Перемістити вперед;Перемістити назад;На задній план];[Цей шар заблокований.;Зміна блокування;];];[Усе;Скасувати виділення;Інвертувати;Змінити;Розгорнути;Стиснути;Перо;Перемістити виділення;Колірний діапазон;Межа;Трансформувати виділення;Уточнити край;Виправити виділення;];[Збільшити масштаб;Зменшити масштаб;Напрямні;Лінійки;Сітка;Прив'язка;Прив'язати до;Межі документа;Піксельна сітка;Контури;Прив'язати до пікселів;[Фрагменти;Параметри фрагменту];Показати];[Історія;Шари;Властивості;Пензель;Символ;Параграф;Інформація;Композиції шарів;Зразки;дії;Гістограма;Навігатор;Стилі інструментів;Гліфи];[Пензель;Інструмент клонування;Кадр;Гумка;Вибір еліпсом;Піпетка;Градієнт;Рука;Текст;Вибір ласо;Вибір магнітним ласо;Переміщення;Чарівна Паличка;Заливка;Виділення багатокутним ласо;Вибір прямокутником;Вільна трансформація;Лупа;Розмиття;Різкість;Палець;Освітлювач;Випалювання;Палець;Точковий пензель відновлення;Пензель відновлення;Латка;Виділення Контуру;Виділення Вузла;Ручка;Вільна ручка;Довільна фігура;Прямокутник;Еліпс;Параметрична форма;Лінія;Лінійка;Швидке виділення;Олівець;Кадрування перспективи;Фрагмент;Виділення фрагмента;Заміна кольору;Червоні очі;Вибір об'єкта;Фонова гумка;Деформація гумової сітки;Вигляд обертання;Масштабування з урахуванням вмісту;Переміщення з урахуванням вмісту];[Зробити знімок;Піпетка;Редактор контуру;Розмір полотна;Дублювати в ...;Редактор градієнта;Стиль шару;Новий проект;Зберегти для web;Деформація;Розмір зображення;Перевести картинку в вектор;[Обрізати;Кадрування;Показати все];поєднання клавіш;Додати напрямні;[Очистити направляючі;Направляючі з шару]];[Непрозорість;Ефекти;Яскравість;[Контраст;Застосувати існуюче];Канал;Експозиція;Зсув;Корекція гами;Відтінок;Насиченість;Яскравість;Розфарбувати;Діапазон;Соковитість;[Розмір;Інтерполяція;Найближчий сусіда;Білінійна];Кут;Округлість форми;Жорсткість;Інтервал;[Режим;Накладати якщо];Розмір Зразка;Контур;Стиль;[Реверс;Відносне;Прив'язки];Толерантність;Безперервний;Заповнити;Використати глобальний кут;Відстань;Рознести;Шум;Подолати тінь;Техніка;Напрям;Глибина;Зменшити різкість;Режим;Градієнт;Масштаб;Вирівняти з шаром;Розташування;Ширина;Висота;Призначення;Тип;Передній план;Тло;Настроюваний;Назва;Створити;Формат;Зберегти коефіцієнт пропорційності;[Якість;Сторінки];Дублювати;Перемістити;Розумні фільтри;Радіус;Кількість;Розподіл;[Рівномірний;Гаус];Одноколірний;Розмір комірки;Візерунок;Потік;Міцність;Захистити деталі;Тип заповнення;Текстура;Тремтіння;Край;Джерело;Мета;Канали;Маска;Густина;Вирівняний;[Контур;Форма;Пікселі;Дюйми;Сантиметри;Міліметри;Відсоток];Фігури;Сторони;Налаштування;[Довжина;Коефіцієнт;Будь-яке;Тип сітки;Ізометричні;Лінія сітки кожні;Початок координат];Зменшити шум;Кольори;Відстані;Скорость;Автовиділення;Знайти;Визначити нове;[Фото;Екран;Мобільний;Рекламна;Друк];[Звичайний;Фіксований коефіцієнт с.;Сталий розмір];Допомога;[Динамічні фігуру;Редагувати динамічну форму;Однаковий радіус];Розкид;[багатокутник;Зірка;Спіраль;Квадратний];[Радіус кутів;Внутрішній радіус]];[Колір;[Немає;Червоний;Оранжевий;Жовтий;Зелений;Синій;Фіолетовий;Сірий;Білий;Прозорий;Чёрный;Ціан;Маджента;Нейтральний];Усього;Абсолютний;Зберігати свічення];[Тінь;Внутрішня тінь;Зовнішнє сяйво;Внутрішнє сяйво;Тиснення;Накладання кольору;Накладання градієнта;Накладання візерунком;Атлас;Обведення;Параметри накладання;Вибрати пікселі];[Форма наконечника;Динаміка наконечника;Точкова;Динаміка кольору;[Коливання розміру;Мінімальний діаметр;Коливання кута;Коливання заокругленості;Мінімальна заокругленість];[Коливання розташування;Кількість;Кількість коливань];[Коливання Переднього плану/Тла;Коливання відтінку;Коливання насиченості;Коливання яскравості];[Виберіть джерело клонування, тримаючи Alt (або K) та клацаючи на зображення.;Позначте передній план з білим, тлом з чорним і невідомою областю з сірим.;Шар не можна редагувати.;Спочатку шар тексту потрібно растеризованим;Спочатку смарт-об'єкт потрібно растеризованим;Виберіть кілька шарів;Випрямити шар;Спочатку відкрийте документ.;Спочатку закрийте поточне вікно.;Лише поточний інструмент];[Записувати;Новий набір дій;Нові дії];[Контроль непрозорості натиском на планшет;Контроль розміру натиском на планшет];[Звичайний;Розчинення;Затемнення;Множення;Затемнення основи;Лінійний затемнювач;Темніший колір;Заміна світлим;Екран;Освітлення основи;Лінійне освітлення;Світліший колір;Накладання;Розсіяне світло;Направлене світло;Живе світло;Лінійне світло;Точкове світло;Жорстке змішування;Різниця;Виключення;Відняти;Розділення;Колірний тон;Насиченість;Колір;Свічення;Пропускання]];[Інтерліньяж;Трекінг;Базова лінія;[Перетворити на точковий текст;Перетворити на текст з абзацами]];[Усі шари;Поточний шар;Виділення;Поточний та нижче];[Замінити;Об'єднати;Відняти;Перетин;Виключити;Об'єднати];[[Лінійний;Радіальний;Кут;Відбитий;Ромб;Форма вибух];[М'якіше;Точно];[Зовнішня рамка;Внутрішня рамка;Тиснення;Тиснення подушка;Ударний рельєф;Обведення ширина];[Оптимізувати;Жорстке витісування;М'яке витісування;Плавність];[Вгору;Вниз];[Ззовні;По центру;Усередині;Від центру];[Тіні;Напівтони;Світлі тони];[Знебарвлення;Наситити];[Малий;Середній;Великий];[Наконечники;Кути;Тире]];[Виберіть об'єкт під курсором;Керування трансформацією;Піксел до піксела;Підібрати під розмір області;[Вирівняти ліві краї;Відцентрувати горизонтально;Вирівняти праві краї;Вирівняти верхні краї;Відцентрувати вертикально;Вирівняти нижні краї;Рівномірно влаштований]];[Вставити в;Поточний проект;Новий проект;Роздільна здатність;Додано до поточного проекту.;Було створено новий проект.;Доступ до камери було заборонено.];[Орієнтація;Вигин;Горизонтальне спотворення;Вертикальне спотворення;[Горизональний;Вертикальний;горизонтально;вертикально];[Немає;Дуга;Нижня Дуга;Верхня Дуга;Арка;Випуклість;Нижня Оболонка;Верхня Оболонка;Позначка;Хвиля;Риба;Підйом;Рибне Око;Опукла Лінза;Стиснення;Крутіння;Настроюваний];[Шрифт;недоступний;Буде відмальовано за допомогою;Існує незбережена робота в;Ви дійсно хочете закрити його?];[Обміняти Кольори;Стандартно: Білий та Чорний]];[завантажено;додано;Переместити напрямну;Видалити напрямну;Додати напрямну;Завантаження;Завантажити VAR0];[Галерея фільтрів;[[Пластика;[Розмазати;Реконструювати;Розгладжувати;Twirl;Стиснути;Надути;Переміщення ліворуч;Заморозити;Розморозити]];[Корекція лінз об'єктива]];Розмивання;[Середнє значення;Розмивання;Розмити більше;Розмивання Квадратом;Розмивання Гауса;Розмивання при малій глибині різкості;Розмивання в Русі;Радіальне Розмиття;Розмивання за Фігурою;\"Розумне\" Розмивання;Розмивання по Поверхні];Спотворення;[Зміщення;Стискання;Полярні координати;Брижі;Нахил;Сферизація;Wave];Шум;[Додати Шум;Ретуш;Пил та Подряпини;Медіана];Оформлення;[Півтон кольору;Кристалізувати;Грань;Фрагмент;Меццо-тінто;Мозаїка;Пуантілізм];Відмалювати;[Хмари;Хмари з накладанням;Відблиски];Посилити різкість;[Посилити різкість;Посилити різкість країв;Ще Посилити різкість;\"Розумна\" Різкість;Контурна Різкість];Стилізувати;[Діффузія;Тиснення;Видавлення;Виявлення Контурів;Масляна фарба];Інше;[Власна;Фільтр верхніх частот;Максимум;Мінімум;Зсув;Повторити];[Невизначений Район;Встановити як Прозорий;Повторити пікселі краю;Огортання;Останній фільтр;Перегляд]];[Шаблони;[Фільтр шрифтів;Ключові слова;Випадкові];[З символами;З фото];[Мініатюри;Список]]", + "[קובץ;ערוך;תמונה;שכבה;תיקייה;בחר;מסנן;תצוגה;חלון;שפה;היכנס;צא;צור תרגום;[חשבון;תנאי שימוש;חזור;אודות;דיווח על שגיאה;למד];עוד;נושא;השתמש בספריה מקוונת;[Photopea: עורך תמונות מתקדמות;מערכת באינטרנט לעריכת קבצים מסוג PSD, XCF, Sketch, XD, CRR;צור תמונה חדשה או פתח קבצים קיימים מהמחשב שלך. שמור את עבודתך כ- PSD (קובץ - שמור כ- PSD) או כ- JPG / PNG / SVG (קובץ - ייצוא).;הצע פיצ'רים חדשים ב שלנו או ב<פייסבוק>. המטרה שלנו היא ליצור את <עורך התמונות הזול והמתקדם ביותר>;הקישור של נותנים החסות ייפתח בחלון חדש;;]];[פתח;פרסם ברשת;שמור;שמור כקובץ PSD;הדפס;פתח מכתובת רשת;פתח מהמחשב שלך;התחבר עם גוגל דרייב;יצא כקובץ;ייצא שכבות;תסריט;פתח ומקם;סגור;אחסון מקומי;];[קדימה;אחורה;נקה;מלא;המר;סובב;הפוך VAR0;קנה מידה VAR0;לבטל;פרספקטיבה;[שילוב אוטומטי;];דהייה;];התאמות;[בהירות / ניגודיות;דרגות;עקומות;רמת חשיפה;חיוניות;גוון / רוויה;איזון צבע;שחור לבן;מסנן תמונה;מערבל ערוצים;חיפוש צבע;הפוך;פוסטריזציה;סף;מפת מעבר צבע;התאמת צבעים;[גוון אוטומטי;ניגודיות אוטומטית;צבע אוטומטי];החלף צבע];[גזור;העתק;הדבק;חדש;מחק;אפשר;השבת;העתק מאוחדים;החל;שוב;עדכן תוכנה];[שכפל שכבה;שכבת התאמה חדשה;שורון סריקה;מסיכה וקטורית;הוסף (הראה הכול);[הוסף (הסתר הכול);הצג בחירה;הסתר בחירה;משקיפות];[מסיכת חיתוך;מצב \"מסכה מהירה\"];המר לעצם חכם;הפוך למפת סיביות;קבץ שכבות;מזג מטה;מזג מעלה;[מזג שכבות;שיטוח התמונה];שכבה חדשה;אפשר מסיכת סיביות;בטל מסיכת סיביות;אפשר מסיכת וקטור;בטל מסיכת וקטור;אפשר מסיכת חיתוך;בטל מסיכת חיתוך;תיקייה חדשה;הוסף מסיכת סיביות;מחק מסיכת סיביות;הוסף מסיכת וקטור;בטל מסיכת וקטור;קשר מסיכת סיביות;נתק מסיכת סיביות;חבר מסיכת וקטור;נתק מסיכת וקטור;אפשר אפקטי שכבה;השבת אפקטי שכבה;מחק שכבה;שינוי שקיפות שכבה;שינוי ערבוב;הפוך שכבת סגנון לפיקסלים;סדר שכבות;[יצירת אובייקט חכם;עדכון אובייקט חכם;הצבת אובייקט חכם;מקור (אוביקט חכם);];שינוי שם;שינוי צבע;ערוך שכבת התאמה;המר לצורה;אפשר מסיכת פילטר;בטל מסיכת פילטר;אפשר מסננים חכמים;השבת מסננים חכמים;הוסף מסיכת פילטר;מחק מסיכת פילטר;נקה מסננים חכמים;[[מילוי צבע אחיד;מילוי הדרגתי;מילוי דוגמה;מבוסס-תוכן];שכבת מילוי חדשה;שנה שכבת מילוי];שכבה דרך העתקה;מסיכת פילטר;מחק שכבת סגנון;הזז פילטר חכם;מחק פילטר חכם;[קשר שכבות;בטל קישור שכבות];סדר;[העבר לקדמה;העבר קדימה;העבר אחורה;העבר לרקע];[שכבה נעולה.;נעל שינויים;];];[הכל;בטל בחירה;הפוך בחירה;שנה;הרחב;צמצם;נוצה;הזז בחירה;טווח צבעים;גבול;הזז בחירה;לטש קצוות;אחה בחירה;];[הגדל;הקטן;קווי עזר;סרגלים;רשת;צלם;צלם אל;גבולות מסמך;רשת פיקסלים;שבילים;דבק לפיקסל;[פרוסות;הגדרות חיתוך];הצג];[היסטוריה;שכבות;מאפיינים;מברשת;אות;פסקה;מידע;מרכיבי שכבה;דוגמיות;פעולות;היסטוגרמה;הניווט;;];[כלי מברשת;כלי שכפול;כלי גזירה;כלי מחק;בחירה אליפטית;טפטפת;כלי גרדיאנט;כלי יד;כלי דפוס;בחירת לאסו;בחירת לאסו מגנטי;כלי הזזה;מטה הקסם;כלי דלי צבע;בחירת לאסו פוליגוני;בחירה מלבנית;שינוי חופשי;זכוכית מגדלת;כלי עירפול;כלי חידוד;כלי מריחה;כלי הבהרה;כלי שריפה;כלי ספוג;כלי מברשת איחוי כתמים;כלי מברשת איחוי;כלי טלאי;בחירת נתיב;בחירה ישירה;עט;עט חופשי;צורה מותאמת אישית;מרובע;אליפסה;צורה פרמטרית;קו;סרגל;בחירה מהירה;עפרון;חתך פרספקטיבה;כלי פריסה;כלי בחירת פריסה;החלפת צבעים;כלי עיניים אדומות;בחירת אוביקט;מחק רקע;;;;];[צלם תמונה;בוחר צבע;עורך קו מתאר;גודל בד ציור;שכפל לתוך ...;עורך גרדיאנט;סגנון שכבה;מיזם חדש;שמור עבור הצגה ברשת;עוות;גודל תמונה;הפוך מפת סיביות לוקטור;[קיטום;חתוך;];קיצורי מקלדת;הוסף מדריכים;[;]];[שקיפות;אפקטים;בהירות;[ניגודיות;];ערוץ;חשיפה;היסט;תיקון גמא;גוון;רוויה;בהירות;צבע;טווח;חיוניות;[גודל;אינטרפולציה;השכן הקרוב;ביליניארית];זווית;עגלגלות;קשיות;ריווח;[סגנון ערבוב;ערבב אם];גודל דגימה;קונטור;סגנון;[הפוך;;];סבילות;רציף;מלא;השתמש בזווית גלובלית;מרחק;פרוס;רעש;הפל את הצל;טכניקה;כיוון;עומק;ריכוך;מצב;גרדיאנט;קנה מידה;יישר בהתאם לשכבה;מיקום;רוחב;גובה;יעד;הקלד;רקע קדמי;רקע;התאמה אישית;שם;צור;תבנית;שמור יחס רוחב גובה;[איכות;דפים];שכפל;הזז;מסננים חכמים;מחוג;כמות;תפרוסת;[אחד;פרוס];חד גוני;גודל תא;דוגמה;זרימה;חוזק;הגן על פרט;סוג מילוי;מרקם;ריצוד;קצה;מקור;יעד;ערוצים;מסיכה;צפיפות;מיושר;[שביל;צורה;פיקסלים;אינצ'ים;סנטימטרים;מילימטרים;אחוזים];צורות;צדדים;העדפות;[אורך;יחס;הכול;סוג תשבוץ;יסומטרי;דבק תשבוץ;יחידות מידה];הפחת רעש;צבעים;מרחקים;דרג;בחר אוטומטית;מצא;הגדר חדש;[תמונה;מסך;נייד;פרסומות;הדפס];[חינם;יחס קבוע;גודל קבוע];עזרה;[צורות חיות;ערוך צורות חיות;אותם רדיוסים];רמת טשטוש;[פוליגון;כוכב;ספירלי;מרובע];[רדיוס פינה;רדיוס פנימי]];[צבע;[כלום;אדום;כתום;צהוב;ירוק;כחול;סגול;אפור;לבן;שקוף;שחור;תכלת;מגנטה;ניטראלי];סך הכל;אבסולוטי;שמור בהירות];[הטל צל;צל פנימי;זוהר חיצוני;זוהר פנימי;שפוע ו הבלטה;כיסוי צבע;כיסוי הדרגתי;כיסוי תבנית;סאטן;משיכת קולמוס;אפשרויות מיזוג;];[צורת חוד;דינמיקות קצה;פיזור;דינמיקות צבע;[ריצוד גודל;קוטר מזערי;ריצוד זווית;ריצוד עגלגלות;עגלגלות מזערית];[ריצוד מיקום;מספר;ריצוד מספר פריטים];[ריצוד צבע רקע/צבע חזית;ריצוד גוון;ריצוד רוויה;ריצוד בהירות];[בחר מקור לשכפול על ידי החזקת מקש Alt ולחיצה על התמונה;סמן רקע קדמי בלבן, רקע אחורי בשחור ואזור לא ידוע באפור;שכבה אינה ניתנת לעריכה;עליך קודם להפוך את שכבת הטקסט לפיקסלים;עליך קודם להפוך את האובייקט החכם לפיקסלים;בחר שכבות מרובות;ישר שכבה;קודם יש לפתוח קובץ;סגור חלון זה קודם;רק לכלי נוכחי];[הקלט;;פעולה חדשה];[;];[רגיל;Dissolve;Darken;Multiply;Color Burn;Linear Burn;Darker Color;Lighten;Screen;Color Dodge;Linear Dodge;Lighter Color;Overlay;Soft Light;Hard Light;Vivid Light;Linear Light;Pin Light;Hard Mix;Difference;Exclusion;Subtract;Divide;Hue‏‏;Saturation;Color;Luminosity;Pass Through]];[מרווח אנכי בין שורות;מרווח בין תווים בשורה;הזחה של קו הבסיס;[;]];[כל השכבות;שכבה נוכחית;בחירה;שכבה נוכחית ומתחתיה];[החלף;איחוד;הבדל;הצטלבות;או' בררני';מזג];[[קווי;מחוגי;זווית;משתקף;צורת יהלום;התפרצות צורה];[רך יותר;מדויק];[שיקוע חיצוני;שיקוע פנימי;תבליט;הבלטת כרית;הבלטה קווית;];[החלק;מפסלת קשה;מפסלת רכה;חלקות];[מעלה;מטה];[חוץ;מרכז;פנים;ממרכז];[צללים;גווני ביניים;אזורי האור];[הפחתת רוויה;רוויה];[קטן;בינוני;גדול];[;פינות;]];[בחר את העצם תחת הסמן;בקרי שינוי צורה;הגדלה לגודל אמיתי;התאם את השטח;[יישור לקצוות השמאליים;יישור לאמצע אופקי;יישור לקצוות ימניים;יישר לקצה העליון;יישר למרכז;יישור לקצה תחתון;ריווח שווה]];[הדבק אל;מיזם נוכחי;מיזם חדש;כושר אבחנה;התווסף אל המיזם הנוכחי.;מיזם חדש נוצר;גישה אל המצלמה נדחתה];[כיוון;כופף;עיוות אופקי;עיוות אנכי;[אופקי;אנכי;אופקית;אנכית];[כלום;קשת;קשת תחתונה;קשת עליונה;קשת;בליטה;צדפה תחתונה;צדפה עליונה;דגל;גל;דג;עלייה;עין הדג;נפח;מחץ;סיבוב;מותאם אישית];[גופן;אינו זמין;יעובד באמצעות;;בטוח שברצונך לסגור?];[החלפת צבעים;ברירת מחדל: לבן ושחור]];[טעון;נוסף;הזז קו עזר;הסר קו עזר;הוסף קו עזר;טעינה;טען VAR0];[גלריית פילטרים;[[נזילות;[מריחה;שחזור;החלק;סחרור;כיווץ;ניפוח;דחיפה ימינה;הקפאה;ביטול הקפאה]];[תיקון עדשות]];טשטוש;[ממוצע;טשטש;טשטש עוד;טשטוש קופסה;טשטוש מתפרש;טשטוש עדשה;טשטוש תנועה;טשטוש מחוגי;טשטש צורה;טשטוש חכם;טשטש משטח];עוות;[;;;;;;גל];רעש;[הוסף רעש;הסר כתמים;אבק ושריטות;חציון];פקסל;[;;;קטע;מצוטינט;פסיפס;הפוך לנקודות];עבד;[עננים;;];חדד;[חדד;חדד קצוות;חדד עוד;חידוד חכם;מסיכה ללא חידוד];סגנן;[;;;מצא קצוות;];אחר;[התאמה אישית;;מקסימום;מינימום;היסט;];[אזור לא מוגדר;קבע כשקוף;;עטוף סביב;סינון אחרון;תצוגה מקדימה]];[תבניות;[מסנן גופן;מילות מפתח;אקראי];[עם סמלים;עם תמונה];[תמונות ממוזערות;רשימה]]", + "[Datoteka;Uređivanje;Slika;Sloj;Mapa;Odabir;Filter;Prikaz;Prozor;Jezik;Prijava;Odjava;Stvori prijevod;[Račun;Uvjeti korištenja;Natrag;O aplikaciji;Prijavite pogrešku;Nauči se];Ostalo;Tema;Koristi WebGL;[Photopea: napredni uređivač slika;Besplatni online urednik koji podržava PSD, XCF, Sketch, XD i CDR formate.;Izradite novu sliku ili otvorite postojeće datoteke s računala. Spremite svoj rad kao PSD (Datoteka - Spremi kao PSD) ili kao JPG / PNG / SVG (Datoteka - Izvezi kao).;Predložite nove značajke na našim ili . Naš je cilj stvoriti .;Sponzorske veze otvorene u novom prozoru.;;]];[Otvori;Objavi;Spremi;Spremi kao PSD;Ispis;Otvori URL;Učitati s računala;Poveži s Google Drive;Izvezi kao;Izvezi slojeve;Skripta;Otvori i Postavi;Zatvori;Lokalne pohrane;];[Korak naprijed;Korak natrag;Očisti;Ispuna;Transformacija;Okreni;Okrenite VAR0;Skaliranje VAR0;Poništi / Ponovi;Perspektiva;[Automatski miješaj;];Izblijedjeti;];Prilagođavanja;[Svjetlost/Kontrast;Razine;Krivulje;Ekspozicija;Živost boja;Nijansa / Zasićenje;Balans boje;Crno i bijelo;Filter fotografije;Mikser kanala;Pronalaženje boja;Obrni;Posteriziraj;Prag;Karta gradijenta;Selektivna boja;[Automatski ton;Automatski kontrast;Automatska boja];Zamijeni boju];[Izreži;Kopiraj;Zalijepi;Novo;Izbriši;Omogući;Onesposobiti;Kopiraj stopljeno;Primjeni;Ponovi radnju;Ažuriraj];[Dupliciraj sloj;Novi podešavajući sloj;Rasterska maska;Vektorska maska;Dodaj (Prikaži sve);[Dodaj (Sakrij sve);Otkrij odabir;Sakrij odabir;Od transparentnosti];[Maska isječka;];Pretvori u Pametni Objekt;Rasteriziraj;Grupiraj slojeve;Spoji donje;Spoji gornje;[Spoji slojeve;Spoji sve slojeve];Novi sloj;Omogući rastersku masku;Onesposobiti rastersku masku;Omogući vektorsku masku;Onesposobiti vektorsku masku;Omogući masku isječka;Onesposobiti masku isječka;Nova mapa;Dodaj rastersku masku;Izbriši rastersku masku;Dodaj vektorsku masku;Izbriši vektorsku masku;Poveži rastersku masku;Prekini vezu rastersku masku;Poveži vektorsku masku;Prekini vezu vektorsku masku;Omogući efekte sloja;Onesposobiti efekte sloja;Izbriši sloj;Promjena providnosti sloja;Promjena Miješanja;Rasteriziraj stil sloja;Redoslijed slojeva;[Stvaram Pametni Objekt;Osvježavam Pametni Objekt;Postavljam Pametni Objekt;Izvor (Pametni Objekt);];Promjena imena;Promjena Boje;Uredi sloj za postavke;Pretvori u Oblik;Omogući masku filtera;Onesposobiti masku filtera;Omogući pametne filtere;Onesposobiti pametne filtere;Dodaj masku filtera;Obriši masku filtera;Očisti pametne filtere;[[Ispunjenje punom bojom;Popuna gradijentom;Ispunjenje uzorkom;Svijest o sadržaju];Novi sloj popune;Uredi sloj popune];Sloj preko kopiranja;Maska filtera;Obriši stil sloja;Pomakni pametni filter;Izbriši pametni filter;[Poveži slojeve;Prekini vezu slojeve];Posloži;[Pomakni na vrh;Pomakni naprijed;Pomakni nazad;Pomakni na kraj];[Ovaj sloj je zaključan.;Zaključaj promjenu;];];[Sve;Odznači;Inverzija;Promjeni;Proširi;Suzi;Pero;Pomjeri označeno;Raspon Boja;Rub;Preobrazi označeno;Poboljšaj Rub;Zaliječi označeno;];[Približi;Udalji;Vodiči;Ravnala;Mreža;Poravnaj;Poravnaj s;Granice Dokumenta;Mreža piksela;Putanje;Poravnaj s piksele;[Kriške;];];[Povijest;Slojevi;Prilagodi;Četka;Znak;Paragraf;Informacije;Kompozicije sloja;Színtár;Radnje;Histogram;Navigator;Konfiguracija alata;];[Četka;Alat za kloniranje;Alat za obrezivanje;Alat za brisanje;Odabir elipse;Kapaljka;Alat za gradijent;Ruka (slobodno pomjeranje);Tekst;Laso;Magnetni laso;Pomicanje;Magični štapić;Kantica s bojom;Poligonalni laso odabir;Pravokutni odabir;Slobodna transformacija;Zumiranje;Zamagljivanje;Izoštravanje;Razmazivanje;Alat za zatamnjivanje;Alat za posvjetljavanje;Spužva;Liječenje mrlje;Četka za liječenje;Alat za krpanje;Odabir staze;Direktni odabir;Kemijska;Slobodna kemijska;Prilagođen oblik;Pravokutnik;Elipsa;Parametarski oblik;Linija;Ravnalo;Brzi odabir;Olovka;Obrezivanje perspektive;Alat za kriške;Alat za odabir kriške;;;;;;;;];[Snimite fotografiju;;Uređivač obrisa;Veličina radne površine;Napravi kopiju;Uređivač gradijenta;Stil sloja;Novi Projekt;Spremi za web;Iskrivi;Veličina slike;Vektoriziraj bitnu mapu;[Skrati;Usjev;];Tipkovničke Prečice;Dodaj vodiče;[;]];[Providnost;Efekti;Svjetlost;[Kontrast;Koristi kompatibilnost];Kanal;Ekspozicija;Ofset;Gama ispravak;Nijansa;Zasićenost;Svjetlina;Kolorizacija;Domet;Živost boja;[Veličina;Interpolacija;Najbližeg susjeda;Bilinearna];Kut;Oblina;Tvrdoća;Razmaci;[Vrsta Miješanja;Izmješaj ako];Veličina uzorka;Kontura;Stil;[Preokreni;Relativno;Sidro];Tolerancija;Granični;Ispuniti;Koristi globalni kut;Udaljenost;Proširi;Šum;Izbaci padnu sjenu;Tehnika;Smjer;Dubina;Ublaži;Način;Gradijent;Skala;Poravnaj sa slojem;Pozicija;Širina;Visina;Destinacija;Vrsta;Prvi plan;Pozadina;Prilagođeno;Naziv;Stvori;Format;Zadrži Omjer;[Kvaliteta;Stranice];Napravi duplikat;Pomjeri;Pametni filtri;Radius;Količina;Raspodjela;[Jednolično;Gaussov];Monokromatski;Veličina Ćelije;Uzorak;Tok;Snaga;Zaštiti detalj;Vrsta ispune;Tekstura;Nervoza;Rub;Izvor;Cilj;Kanali;Maska;Gustoća;Poravnanje;[Put;Oblik;Pikseli;Inči;Centimetri;Milimetri;Procenat];Oblici;Strane;Postavke;[Dužina;Omjer;Bilokoji;Vrsta mreže;Izometrijska;Veličina mreže;Jedinice ravnala];Smanji šum;Boje;Udaljenosti;Stopa;Automatski odabir;Nađi;Definiraj novi;[Fotografija;Zaslon;Mobitel;Reklame;Štampanje];[Slobodno;Fiksni omjer;Fiksna veličina];Upomoć;[Živi Oblik;Uredi Živi Oblik;Isti radijusi];Maljavost;[Poligon;Zvijezda;Spirala;Kvadrat];[Radijus kuta;Unutarnji radijus]];[Boja;[Ništa;Crvena;Narančasta;Žuta;Zelena;Plava;Ljubičasta;Siva;Bijela;Prozirno;Crna;Cijan;Magenta;Neutralna];Sveukupna;Apsolutna;Zadrži luminoznost];[Padna sjena;Unutarnja sjena;Vanjska sjena;Unutarnji sjaj;Nagib i klesanje;Overlay boja;Overlay gradijenta;Overlay uzorka;Saten;Zamah;Mogućnosti miješanja;Izaberi piksele];[Oblik ruba;Dinamičnost ruba;Rasprši;Dinamičnosti boja;[Vibracija veličine;Minimalni promjer;Vibracija ugla;Vibracija obline;Minimalna oblina];[Vibracija položaja;Zbroj;Vibracija broja];[Vibracija prednje strane i pozadine;Vibracija boje;Vibracija zasićenosti;Vibracija svjetlosti];[Odaberite izvor klonova tako da držite Alt (ili K) i kliknete na sliku.;Označite prednji plan s bijelom, pozadinom s crnom, a nepoznato područje sa sivom.;Sloj se ne može uređivati.;Tekstni sloj mora biti prvo rasteriziran;Pametni Objekt mora biti prvo rasteriziran;Odaberite više slojeva;Poravnajte sloj;Najprije otvorite dokument.;Najprije zatvorite trenutnu prozor.;Samo trenutni alat];[Snimi;Novi skup radnji;Nova radnja];[Kontrole neprozirnosti za pritisak olovke;Kontrole veličine za pritisak olovke];[Normalno;Razlaganje;Potamnjivanje;Umnožavanje;Gorenje boje;Linearno gorenje;Tamnija boja;Posvjetljivanje;Ekran;Izbjegavanje boje;Linearno izbjegavanje;Lakša boja;Prekrivka;Meko svjetlo;Teško svjetlo;Živahno svjetlo;Linearno svjetlo;Lagano pribosti;Tvrda mješavina;Razlika;Isključenje;Oduzeti;Podijeliti;Nijansa;Zasićenje;Boja;Luminoznost;Proći kroz]];[Vodeće;Praćenje;Osnovna smjena;[Pretvori u tekst točke;Pretvori u tekst odlomka]];[Ukupni sadržaj;Trenutni sloj;Odabir;Trenutačno & Ispod];[Zamijeni;Ujedini;Razlika;Presjek;XOR;Spoji];[[Linearno;Radijalno;Kut;Odraženo;Dijamant;Prasak oblika];[Mekše;Precizno];[Vanjski nagib;Unutarnji nagib;Reljef;Uzglavni reljef;Udarni reljef;Širina linije];[Glatkost;Teško izdubi;Lagano izdubi;Glatkost];[Gore;Dole];[Vani;Sredina;Unutrašnjost;Iz centra];[Sjenke;Srednji tonovi;Naglasci];[Manje zasićenje;Zasićenje];[Mali;Srednji;Veliki];[Nastavci;Kutovi;Crtice]];[Odaberi objekt ispod kursora;Kontrole transformacije;Piksel do piksela;Ispuni površinu;[Poravnaj lijeve rubove;Centriraj horizontalno;Poravnaj desne rubove;Poravnaj gornje rubove;Centriraj vertikalno;Poravnaj donje rubove;Jednake praznine]];[Umetnuti u;Trenutni projekat;Novi Projekt;Rezolucija;Dodano u trenutni projekat;Novi projekt je stvoren.;Pristup kameri odbijen.];[Orijentacija;Iskrivi;Horizontalno iskrivljenje;Vertikalno iskrivljenje;[Horizontalno;Vertikalno;horizontalno;vertikalno];[Ništa;Luk;Donji luk;Gornji luk;Luk;Izbočina;Donja ljuska;Gornja ljuska;Zastava;Val;Riba;Uspon;Riblje Oko;Napuhati;Iscijediti;Uviti;Prilagođeno];[Font;nije dostupno;Izvršiti će se pomoću;Neki radovi nisu spremljeni u;Želite li ga doista zatvoriti?];[Razmijeni boje;Zadano: bijelo i crno]];[učitano;Dodano;Vodič za pomicanje;Vodič za brisanje;Vodič za dodavanje;Učitavanje;Učitaj VAR0];[Filtriraj galeriju;[[Otopiti;[Zamrljati;Rekonstruirati;Izgladiti;Vrtložiti;Umanji;Napuhnuti;Gurni lijevo;Zamrzni;Odmrzni]];[Korekcija objektiva]];Zamagli;[Prosječno;Zamagliti;Zamagli više;Kvadratno zamagljivanje;Gaussovo zamagljivanje;Objektivno zamagljivanje;Pokretno zamagljivanje;Radijalno zamaglivanje;Oblikovno zamagljivanje;Pametno zamagljivanje;Površno zamagljivanje];Izobličavanje;[Premještanje;Stegnuti;Polarne koordinate;Valovito;Smicanje;Sfera;Val];Šum;[Dodaj šum;Smanji efekt pjega;Prašina i ogrebotine;Srednja linija];Pikselizacija;[Poluton boja;Kristalizacija;Aspekt;Fragmentiranje;Mecotinta;Mozaik;Efekt uboda];Izvrši;[Oblaci;Razlika oblaci;Odsjaj sočiva];Izoštriti;[Izoštri;Izoštri rubove;Izoštri više;Pametno izoštravanje;Smanji izoštrenost maske];Podesiti prema stilu;[Difuzno;Reljef;Utiskivanje;Pronađi rubove;];Drugo;[Prilagođeno;Visina;Maksimum;Minimum;Ofset;Ponovi];[Nedefinisano područije;Podesi da bude providno;Ponovi rubne piksele;Zamotavanje;Posljednji filter;Pregled]];[Šabloni;[Font filteri;Ključne riječi;Nasumično];[S simbolima;S fotografijom];[Minijature;Popis]]", + "[File;Modifica;Immagine;Livello;Cartella;Selezione;Filtro;Visualizza;Finestra;Lingua;Accedi;Disconnetti;Crea traduzione;[Account;Termini del Servizio;Indietro;Informazioni;Segnalare un bug;Apprendi];Di più;Tema;Usa WebGL;[Photopea: editor di immagini avanzato;Editor online gratuito che supporta i formati PSD, XCF, Sketch, XD e CDR.;Crea una nuova immagine o apri i file esistenti dal tuo computer. Salva il tuo lavoro come PSD (File - Salva come PSD) o come JPG / PNG / SVG (File - Esporta come).;Suggerisci nuove funzionalità nel nostro o . Il nostro obiettivo è creare .;Link degli sponsor si aprono in una nuova finestra.;Questa funzione non è disponibile.;Installa Photopea]];[Apri;Pubblica online;Salva;Salva come PSD;Stampa;Apri da URL;Apri da computer;Connetti a Google Drive;Esporta come;Esporta livelli;Script;Apri & posiziona;Chiudi;File locali;];[Passo avanti;Passo indietro;Pulisci;Riempi;Trasforma;Ruota;Inverti VAR0;Scala VAR0;Indietro / Rifai;Prospettiva;[Fusione automatica;Allineamento automatico];Dissolvi;Applica immagine];Aggiustamenti;[Luminosità/Contrasto;Livelli;Curve;Esposizione;Vibrance;Tinta/Saturazione;Bilanciamento del ceolor;Bianco e Nero;Filtro Fotografico;Mixer di canale;Ricerca Colore;Inverti;Posterizza;Soglia;Mappa sfumatura;Colore Selettivo;[Tono automatico;Contrasto automatico;Colore automatico];Sostituzione Colore];[Taglia;Copia;Incolla;Nuovo;Elimina;Abilita;Disabilita;Copia elementi uniti;Applica;Ancora;Aggiorna];[Duplica livello;Nuovo Livello di aggiustamento;Maschera raster;Maschera vettoriale;Aggiungi (Mostra Tutto);[Aggiungi (Nascondi Tutto);Mostra selezione;Nascondi selezione;Da trasparenza];[Maschera di ritaglio;Maschera veloce];Converti in Oggetto Smart;Rendi in Bitmap;Raggruppa livelli;Unisce sotto;Unisce sopra;[Unisci livelli;Unico livello];Nuovo livello;Abilita maschera raster;Disabilita maschera raster;Abilita maschera vettoriale;Disabilita maschera vettoriale;Abilita maschera di ritaglio;Disabilita maschera di ritaglio;Nuova Cartella;Aggiungi maschera raster;Elimina maschera raster;Aggiungi maschera vettoriale;Elimina maschera vettoriale;Collega maschera raster;Scollega maschera raster;Collega maschera vettoriale;Scollega maschera vettoriale;Abilita effetti del livello;Disabilita effetti del livello;Elimina livello;Cambia opacità livello;Cambia fusione;Rasterizza stile livello;Ordine livello;[Creazione Oggetto Smart;Aggiornamento Oggetto Smart;Posizionamento Oggetto Smart;Fonte (Oggetto Smart);Metodo serie di immagini];Cambia nome;Cambia Colore;Modifica Livello di aggiustamento;Converti in forma;Abilita maschera filtro;Disabilita maschera filtro;Abilita Filtri intelligenti;Disabilita filtri intelligenti;Aggiungi maschera filtro;Elimina maschera filtro;Pulisci filtri intelligenti;[[Riempimento di colore uniforme;Riempimento sfumatura;Riempimento pattern;In base al contenuto];Nuovo Livello di riempimento;Modificare livello di riempimento];Crea livello da copia;Maschera filtro;Elimina lo stile del livello;Muovi filtro intelligente;Elimina filtro intelligente;[Collega livelli;Scollega livelli];Organizza;[Porta in cima;Porta avanti;Manda indietro;Manda in fondo];[Questo livello è bloccato.;Cambia blocco;Blocca];];[Tutto;Deseleziona;Inverso;Modifica;Espandi;Contrai;Sfuma;Sposta selezione;Intervallo colori;Contorno;Trasforma selezione;Migliora bordo;Correggi la selezione;];[Ingrandisci;Riduci;Guide;Righelli;Griglia;Attacca;Attacca a;Limiti del documento;Griglia pixel;Tracciati;Attacca a pixels;[Sezioni;Opzioni sezione];Mostra];[Cronologia;Livelli;Proprietà;Pennello;Carattere;Paragrafo;Info;Composizioni livelli;Campioni;Azioni;Istogramma;Navigazione;Strumenti predefiniti;Glifi];[Strumento pennello;Strumento Clone;Strumento Ritaglia;Strumento Gomma;Seleziona ellittica;Contagocce;Strumento sfumatura;Strumento Mano;Strumento Font;Selezione con Lazo;Selezione con Lazo magnetico;Strumento Sposta;Bacchetta Magica;Strumento Secchiello;Seleziona con Lazo poligonale;Selezione rettangolare;Trasformazione libera;Strumento Zoom;Strumento Sfoca;Strumento Nitidezza;Strumento Sfumino;Strumento Scherma;Strumento Brucia;Strumento Spugna;Pennello correttivo al volo;Pennello correttivo;Strumento Toppa;Selezione tracciato;Selezione Diretta;Penna;Penna a mano libera;Forma Personale;Rettangolo;Punto Ellittico;Forma parametrica;Linea;Righello;Selezione rapida;Strumento matita;Ritaglio Prospettico;Sezione;Selezione sezioni;Sostituzione colore;Occhi Rossi;Selezione oggetti;Gomma per sfondo;Alterazione marionetta;Ruota vista;Scala in base al contenuto;Sposta in base al contenuto];[Scatta una foto;Tavoletta Colori;Editor Contorni;Dimensione quadro;Duplica in ...;Editore sfumatura;Stile Livello;Nuovo progetto;Salva per il web;Altera;Dimensione immagine;Bitmap vettorizzata;[Rifila;Ritagliare;Mostra Tutto];Scorciatoie da tastiera;Aggiungi guide;[Cancella guide;Guide dal livello]];[Opacità;Effetti;Luminosità;[Contrasto;Usa la vecchia procedura];Canale;Esposizione;Spostamento;Correzione Gamma;Tonalità;Saturazione;Luminosità;Colorare;Range;Vibrazione;[Dimensione;Interpolazione;Vicina più prossima;Bilineare];Angolo;Rotondità;Durezza;Spaziatura;[Metodo fusione;Fondi se];Dimensione di prova;Contorno;Stile;[Inverso;Relativo;Ancoraggio];Tolleranza;Contiguo;Riempi;Usa angolo globale;Distanza;Propagazione;Rumore;Setta fuori ombra;Tecnica;Direzione;Profondità;Ammorbidire;Modalità;Sfumature;Scala;Allinea con livello;Posizione;Larghezza;Altezza;Destinazione;Tipo;Primopiano;Sfondo;Personale;Nome;Crea;Formato;Mantieni proporzioni;[Qualità;Pagine];Duplica;Muovi;Filtri intelligenti;Raggio;Totale;Distribuzione;[Uniforma;Sfoca];Monocromatico;Dimensione cella;Pattern;Flusso;Intensità;Protezione dettagli;Tipo di riempimento;Trama;Jitter;Margine;Fonte;Obbiettivo;Canali;Maschera;Densità;Allineato;[Tracciato;Forma;Pixels;Pollici;Centimetri;Millimetri;Percentuale];Sfumature;Lati;Preferenze;[Lunghezza;Rapporto;Qualsiasi;Tipo di griglia;Isometrico;Distanza griglia;Unità righello];Riduci rumore;Colori;Distanze;Velocità;Selezione-Automatica;Trova;Definisci nuovo;[Foto;Schermo;Dispositivo Mobile;Pubblicità;Stampa];[Libero;Proporzione Fissa;Misura fissa];Aiuto;[Forma Viva;Modifica Forma Viva;Stesso raggio];Sfocatura;[Poligono;Stella;Spirale;Quadrato];[Raggio d'Angolo;Raggio Interno]];[Colore;[Vuoto;Rosso;Arancione;Giallo;Verde;Blu;Viola;Grigio;Bianco;Trasparente;Nero;Ciano;Magenta;Neutro];Totale;Assoluto;Mantenere la Luminosità];[Ombra;Ombra interna;Bagliore esterno;Bagliore interno;Smussatura e rilievo;Sovrapposizione colore;Sovrapposizione sfumatura;Sovrapposizione pattern;Satinato;Contorno;Opzioni di fusione;Seleziona pixels];[Forma della punta;Dinamica della forma;Diffusione;Dinamica dei colori;[Regola dimensione;Diametro minimo;Regola angolo;Regola rotondità;Rotondità minima];[Regola posizione;Conta;Regola Conteggio];[Regola Primopiano/Sfondo;Regola Tonalità;Regola saturazione;Regola luminosità];[Seleziona la sorgente da clonare tenendo premuto Alt e facendo clic sull'immagine.;Segna il Primo Piano con Bianco, Sfondo con Nero e le aree sconosciute con Grigio;Livello non modificabile.;Il Livello Testo deve prima essere rasterizzato;L'Oggetto Smart deve prima essere rasterizzato;Seleziona livelli multipli;Raddrizza strato;Per prima cosa apri un documento.;Per prima cosa chiudi la finestra corrente.;Solo strumento attivo];[Registra;Nuovo set di azioni;Nuova azione];[Pressione dello Stilo controlla l'Opacità;Pressione dello Stilo controlla la Dimensione];[Normale;Dissolvi;Scurisci;Moltiplica;Colore brucia;Brucia lineare;Colore più scuro;Schiarisci;Scolora;Colore scherma;Scherma lineare;Colore più chiaro;Sovrapponi;Luce soffusa;Luce intensa;Luce vivida;Luce lineare;Luce puntiforme;Miscela dura;Differenza;Esclusione;Sottrai;Dividi;Tonalità;Saturazione;Colore;Luminosità;Attraversa]];[Interlinea;Traccia;Spostamento linea di base;[Converti in Testo Punto;Converti in Testo Paragrafo]];[Tutti;Livello attuale;Selezione;Attuale e sotto];[Sostituisci;Unione;Differenza;Intersezione;XOR;Unisci];[[Lineare;Radiale;Angolo;Riflesso;Diamante;Shape Burst];[Ammorbidisci;Preciso];[Smusso Esterno;Smusso Interno;Effetto rilievo;Effetto Rilievo Pillow;Effetto Rilievo Stroke;Spessore della traccia];[Arrotonda;Scalpello (duro);Scalpello (soft);Omogeneità];[Su;Giù];[Fuori;Centro;Dentro;Dal Centro];[Ombre;Mezzitoni;Luci];[Togli saturazione;Satura];[Piccolo;Medio;Grande];[Tracejada;Angoli;Trattini]];[Seleziona l'oggetto sotto il cursore;Controlli trasformazione;Pixel per pixel;Riempi l'area;[Allinea i bordi a SX;Centra orizzontalmente;Allinea i bordi a DX;Allinea i bordi in alto;Centra verticalmente;Allinea i bordi in basso;Spazi Uguali]];[Inserisci in;Progetto attuale;Nuovo progetto;Risoluzione;Aggiunto al corrente progetto;Un nuovo progetto è stato creato;L'accesso alla cam è stato negato];[Orientamento;Curva;Distorsione orizzontale;Distorsione verticale;[Orizzontale;Verticale;orizzontalmente;verticalmente];[Nessuno;Arco;Arco inferiore;Arco superiore;Arcata;Rigonfiamento;Arco conchiglia inf.;Arco conchiglia sup.;Bandiera;Onda;Pesce;Pendo;Grandangolo;Gonfio;Comprimi;Torsione;Personale];[Font;non è disponibile;Sarà rappresentato utilizzando;C'è lavoro non salvato in;Vuoi davvero chiuderlo?];[Inverti colori;Base: bianco e nero]];[caricato;aggiunto;Muovi guide;Elimina guide;Aggiungi guida;Caricamento;Carica VAR0];[Galleria filtri;[[Fluidifica;[Sbafa;Ricostruisci;Smussato;Rotea;Riduci;Gonfia;Spingi a Sinistra;Fissa;Rilascia]];[Correzione delle lenti]];Sfocatura;[Media;Sfocatura;Sfoca maggiormente;Controllo sfocatura;Sfocatura gaussiana;Sfocatura lente;Sfocatura movimento;Sfocatura radiale;Sfocatura Forma;Sfocatura Intelligente;Sfocatura Superficie];Distorci;[Sostituisci;Pizzica;Coordinate polari;Effetto Onde;Cesoia;Rendi Sferico;Onda];Disturbo;[Aggiungi disturbo;Smacchia;Polvere e grana;Mediana];Effetto pixel;[Colore Mezzitoni;Cristallizza;Sfaccettatura;Frammenta;Mezzetinte;Mosaico;Puntinatura];Rappresenta;[Nuvole;Nuvole differenziali;Riflesso obiettivo];Contrasta;[Contrasta;Contrasta Bordi;Contrasta maggiormente;Contrasto Intelligente;Maschera di contrasto];Stilizzazione;[Diffondi;Effetto rilievo;Estrusione;Trova Bordi;Pittura a olio];Altro;[Personale;Accentua Passaggio;Massimo;Minimo;Sposta;Ripeti];[Area indefinita;Imposta Trasparenza;Ripeti Pixel del Bordo;Involucro attorno;Ultimo filtro;Anteprima]];[Modelli;[Filtro font;Parole Chiave;Rendi casuale];[Con Simboli;Con Foto];[Miniature;Elenco]]", + "[Fișier;Editare;Imagine;Strat;Dosar;Selectează;Filtru;Vedere;Fereastră;Limbă;Logare;Ieșire;Creează traducere;[Cont;Termeni de Utilizare;Înapoi;Despre;Raportează o eroare;Învăța];Mai mult;Opțiuni temă;Folosește WebGL;[Photopea: Editor de imagini avansate;Editor gratuit online care acceptă formatele PSD, XCF, Sketch, XD și CDR.;Creați o imagine nouă sau deschideți fișierele existente de pe computer. Salvați munca dvs. ca PSD (Fișier - Salvează ca PSD) sau ca JPG / PNG / SVG (Fișier - Exportează că și).;Sugerați noi caracteristici la sau . Scopul nostru este de a crea .;Linkurile sponsorului se deschid într-o fereastră nouă.;;]];[Deschide;Publică online;Salvează;Salvează ca PSD;Printează;Deschideți de la URL;Deschideți din computer;Conectează-te cu Google Drive;Exportează că și;Exportează straturi;Script;Deschide & Pune;Închide;Stocare locală;];[Dă cu un pas înainte;Dă cu un pas înapoi;Curăță;Umplere;Transformă;Rotește;Rotiți VAR0;Scala VAR0;Anulează / Refă;Perspectivă;[Auto-Nuanțare;];Spălăci;];Ajustări;[Strălucire/Contrast;Nivele;Curbe;Expunere;Vibranță;Nuanță/Saturație;Echilibrare culori;Alb-negru;Filtru de fotografie;Mixer de canale;Caută culoare;Inversează;Posterizează;Prag;Hartă de gradient;Culoare selectivă;[Ton automat;Contrast automat;Culoare automată];Înlocuiți culoarea];[Taie;Copiază;Lipește;Nou;Șterge;Activează;Dezactivează;Copiază straturi unite;Aplică;Din nou;Actualizați];[Multiplică strat;Nou strat de ajustare;Mască de rasterizare;Mască vectorială;Adaugă (Arată tot);[Adaugă (Ascunde tot);Revelați selecția;Ascundeți selecția;Din transparență];[Mască de atașare;Quick Mask Mode];Schimbă ca obiect smart;Rasterizează;Grupează straturi;Unește în jos;Unește în sus;[Unește straturi;Flatten Image];Strat nou;Activează Masca de rasterizare;Dezactivează Masca de rasterizare;Activează Masca vectorială;Dezactivează Masca vectorială;Activează Masca de atașare;Dezactivează Masca de atașare;Dosar nou;Adaugă Mască de rasterizare;Șterge Masca de rasterizare;Adaugă Mască vectorială;Șterge Masca vectorială;Leagă Masca de rasterizare;Dezleagă Masca de rasterizare;Leagă Masca vectorială;Dezleagă Masca vectorială;Activează efectele de strat;Dezactivează efectele de strat;Șterge strat;Schimbă opacitatea stratului;Schimbă efectele de amestecare;Rasterizează stilul stratului;Ordinea straturilor;[Creează obiect smart;Actualizează obiectul smart;Plasează obiectul smart;Sursă (obiect smart);];Schimbă nume;Schimbă culoare;Editează stratul de ajustare;Schimbă în forma...;Activează Masca de filtre;Dezactivează masca de filtre;Activează filtrele Smart;Dezactivează filtrele Smart;Adaugă mască de filtre;Șterge masca de filtre;Curăță filtrele Smart;[[Umplere cu o culoare solidă;Umplere cu gradient;Umplere cu model;Conștient de conținut];Nou strat de umplere;Modifică stratul de umplere];Strat via copiere;Mască de filtre;Ştergere Stil Layer;Mutare Filtru Smart;Ştergere Filtru Smart;[Linkez straturi;Delinkeaza straturi];Aranjează;[Mută în fața;Mută înainte;Trimite înapoi;Trimite în spate];[Layerul este blocat.;Blochează schimbarea;];];[Tot;Deselectează;Invers;Modifică;Extinde;Strânge;Pană;Mută selecția;Rază de culori;Margine;Transformă selecția;Redefinire Margine;Vindecă selecția;];[Focalizează mai mult;Focalizează mai puțin;Ghiduri;Riglele;Grilă;Prinde;Prinde la;Limite Document;Grilă pixel;Cale;Prinde la pixeli;[Felii;Opțiuni de feliere];Arată];[Istoric;Straturi;Proprietăți;Pensulă;Caracter;Paragraf;Info;Compoziții de straturi;Specimene;Acţiuni;Histograma;Navigator;Presetări de unealtă;];[Unealtă Pensulă;Clonare;Decupare;Gumă de șters;Selectează cu Oval;Pipetă;Unealtă de gradient;Unealta Mână;Unealtă de Scris;Selectează cu Lasou;Selectează cu Lasou Magnetic;Mutare;Bagheta magică;Găleată de vopsea;Selectează ca Lasou Poligonal;Selectează cu Dreptunghi;Transformă în mod liber;Focalizare;Încețoșare;Evidențiere;Pătare;Evitare;Ardere;Burete;Pensulă de îndepărtare a petelor;Pensulă de îndepărtare;Unealtă de Petice;Selectează cale;Selectează direct;Stilou;Stilou liber;Formă originală;Dreptunghi;Oval;Formă parametrică;Linie;Riglă;Selecție rapidă;Creion;Trunchiere de Perspectivă;Ustensilă de feliere;Ustensilă de selectare felie;Înlocuire culoare;Unealtă ochi roșii;Selectare obiect;Ștergere fundal;Puppet Warp;;;];[Fă o poză;Selector de culoare;Editor de contur;Dimensiune pânză;Multiplică în ...;Editor de gradiente;Stil strat;Proiect nou;Salvează pentru Internet;Teleportează;Dimensiuni imagine;Vectorizare Bitmap;[Tăiere;Trunchiere;Reveal All];Comenzi rapide de la tastatură;Adaugă ghiduri;[Curăță ghiduri;Guides from Layer]];[Opacitate;Efecte;Strălucire;[Contrast;Utilizați algoritmul vechi];Canal;Expunere;Ofset;Corecție gamma;Nuanță;Saturație;Luminozitate;Vopsire;Rază;Vibranță;[Mărime;Interpolarea;Cel-mai-apropiat-vecin;Biliniară];Unghi;Rotunjire;Tărie;Spațiere;[Mod amestecare;Amestecare dacă];Mărime probă;Contur;Stil;[Schimbă înapoi;Relativă;Ancoră];Toleranță;Continuu;Umplere;Folosește unghi global;Distanță;Împrăștiere;Zgomot;Umbră pe dinafară;Tehnică;Direcție;Adâncime;Inmoaie;Mod;Gradient;Scala;Aliniază cu stratul;Poziție;Lățime;Înălțime;Destinație;Tip;Prim plan;Fundal;Personalizat;Nume;Creați;Format;Mențineți raportul de aspect;[Calitate;Pagini];Duplicat;Mișcă;Filtrele Smart;Rază;Cantitate;Distribuție;[Uniformă;Gaussian];Monocromatic;Dimensiunea celulei;Model;Curgere;Putere;Protecție detalii;Tip de umplere;Textură;Vibrație;Margine;Sursă;Țintă;Canale;Mască;Densitate;Aliniat;[Cale;Formă;Pixeli;Inci;Centimetri;Milimetri;Procent];Forme;Fețe;Preferințe;[Lungime;Raport;Orice;Tip de grilă;Izometrică;Spațiu dintre grile;Unități de riglă];Reducere zgomot;Culori;Distanţe;Rată;Selectare automată;Caută;Definiți nou;[Imagine;Ecran;Mobile;Reclame;Printuri];[Liber;Raport fix;Mărime fixă];Ajutor;[Formă în timp real;Editare formă în timp real;Aceleași raze];Neclaritate;[Poligon;Stea;Spirală;Pătrat];[Raza de colț;Raza interioară]];[Culoare;[Nimic;Roșu;Portocaliu;Galben;Verde;Albastru;Purpuriu;Gri;Alb;Transparent;Negru;Azuriu;Purpuriu;Neutră];Total;Absolut;Păstrați luminozitatea];[Umbră;Umbră interioară;Strălucire exterioară;Strălucire interioară;Echer si Grava;Suprapunere de culoare;Suprapunere de gradient;Suprapunere de model;Satin;Lovire;Opțiuni de amestecare;Selectează Pixeli];[Formă vârf;Tip dinamică;Împrăștiere;Dinamica culorilor;[Mărimea variația;Diametru minim;Unghi variația;Rotunjire variația;Rotunjire minimă];[Poziția variația;Numărare;Numără variația];[Variația in Prim Plan/Fundal;Nuanță variația;Saturație variația;Strălucire variația];[Selectați sursa de clonare prin mentinerea tastelor ALT (sau K) și apăsând pe imagine.;Marcați în prim plan cu alb, fundal cu negru și zona necunoscută cu gri.;Stratul nu poate fi editabil.;Stratul de text trebuie rasterizat mai întâi;Obiectul Smart trebuie rasterizat mai întâi;Selectați mai multe straturi;Îndreptare Strat;Deschideți mai întâi un document.;Închideți mai întâi fereastra curentă.;Numai unealtă curentă];[Înregistrați;Noul set de acțiuni;Noua acțiune];[Presiunea penului controlează opacitatea;Presiunea penului controlează dimensiunea];[Normal;Dizolvare;Întunecare;Multiplică;Ardere de Culoare;Ardere liniară;Culoare mai Întunecată;Luminează;Ecran;Evitare de Culoare;Evitare Liniară;Culoare mai Luminoasă;Suprapunere;Lumină slabă;Lumină puternică;Lumină intensă;Lumină liniară;Pin Light;Amestecare Puternică;Diferență;Excludere;Scade;Împarte;Nuanță;Saturație;Culoare;Luminozitate;Treci Prin]];[Spațiere linie;Spațiere caractere;Linie de bază;[Convertește la Text Punct;Convertește la Text Paragraf]];[Tot straturi;Strat curent;Selecție;Curent și mai jos];[Înlocuiește;Unifică;Extrage;Intersectează;Exclude;Unește];[[Liniar;Radial;Unghi;Reflectat;Diamant;Shape Burst];[Moale;Precis];[Outer Bevel;Inner Bevel;Gravare;;;Lăţime liniei];[Netezire;;;Netezime];[Sus;Jos];[Exterior;Centru;Interior;Din centru];[Umbre;Tonuri mijlocii;Sublinieri];[Desaturați;Saturați];[Mic;Mediu;Larg];[;Colțuri;Cratime]];[Selecteaza obiectul de sub cursor;Transformă controalele;Pixel la Pixel;Potriviți în zonă;[Aliniaza dupa muchiile din stinga;Centreaza orizontal;Aliniaza dupa muchiile din dreapta;Aliniaza dupa muchiile de sus;Centreaza vertical;Aliniaza dupa muchiile de jos;Spatiere Egala]];[Plasează în;Proiect curent;Proiect nou;Rezolutie;Adaugat la proiectul curent.;Un proiect nou a fost creat.;Accesul la camera a fost negat.];[Orientare;Îndoaie;Distorsiuni orizontale;Distorsiuni verticale;[Orizontal;Vertical;orizontal;vertical];[Niciunul;;;;;;;;Steag;;;;;;;;];[Font;nu este disponibil;Este redat cu;Există locuri de muncă nesalvate:;Chiar vrei să închizi?];[Schimba Culori;Implicit: Alb și negru]];[încărcat;a fost adăugat;Mutare ghid;Ştergere ghid;Adăugare ghid;;];[galerie de filtre;[[;[;;;;micsoreaza;;;Blochează;Deblochează]];[]];;[;;;;;;;;;;];;[;;;;;;];;[Adăuga zgomot;;;Median];Pixelează;[;Cristalizare;;Fragment;;mozaic;];Randare;[Nori;;];;[;;;;];Stilizează;[Difuz;;Extrudare;Găsește Colțuri;];Altul;[;;Maxim;Minim;;Repetă];[Arie Nedefinită;Setează ca Transparent;Repetați pixeli margine;Înfășoară în jurul;Ultimul filtru;Previzual]];[Șabloane;[Filtru de fonturi;Cuvinte cheie;Randomizare];[Cu simboluri;Cu fotografie];[Miniaturi;Listă]]", + "[Bestand;Bewerken;Afbeelding;Laag;Map;Selecteren;Filter;Beeld;Venster;Taal;Log in;Log uit;Maak een vertaling;[Account;Algemene voorwaarden;Terug;Over;Meld een bug;Leren];Meer;Thema;Gebruik WebGL;[Photopea: geavanceerde fotobewerking;Gratis online bewerker, ondersteunt PSD-, XCF-, Sketch-, XD- en CDR-formaten;Maak een nieuwe afbeelding of open bestaande bestanden vanaf uw computer. Sla uw werk op als PSD (Bestand - Opslaan als PSD) of als JPG / PNG / SVG (Bestand - Exporteren als).;Stel nieuwe functies voor op onze of . Ons doel is om te maken.;Sponsorlinks openen in een nieuw venster.;Deze functie is niet beschikbaar.;Photopea installeren]];[Open;Publiceer online;Opslaan;Opslaan als PSD;Printen;Open via URL;Open vanaf computer;Verbind met Google Drive;Exporteren als;Exporteer lagen;Script;Open en plaats;Sluiten;Lokale opslag;];[Stap vooruit;Stap terug;Leegmaken;Vul;Transformeer;Draaien;VAR0 spiegelen;VAR0 schalen;Ongedaan maken / Opnieuw;Perspectief;[Automatisch overvloeien;Automatisch uitlijnen];Vervagen;Afbeelding toepassen];Aanpassingen;[Helderheid/contrast;Niveaus;Curves;Belichting;Levendigheid;Kleurtoon/verzadiging;Kleurbalans;Zwart-wit;Fotofilter;Kanaalmixer;Kleur-opzoektabellen;Omkeren;Waarden beperken;Drempelwaarde;Verloop toewijzen;Kleurbereik;[Automatische tint;Automatisch contrast;Automatische kleuren];Vervang kleur];[Knippen;Kopiëren;Plakken;Nieuw;Verwijderen;Inschakelen;Uitschakelen;Verenigd kopiëren;Toepassen;Opnieuw;Bijwerken];[Dupliceer laag;Nieuwe aanpassingslaag;Rastermasker;Vectormasker;Toevoegen (toon alles);[Toevoegen (verberg alles);Selectie tonen;Selectie verbergen;Vanuit transparantie];[Knipmasker;Snelmaskermodus];Converteren naar Slim Object;Omzetten naar pixels;Groepeer lagen;Omlaag samenvoegen;Omhoog samenvoegen;[Lagen samenvoegen;Alle lagen samenvoegen];Nieuwe laag;Rastermasker inschakelen;Rastermasker uitschakelen;Vectormasker inschakelen;Vectormasker uitschakelen;Knipmasker inschakelen;Knipmasker uitschakelen;Nieuwe map;Rastermasker toevoegen;Rastermasker verwijderen;Vectormasker toevoegen;Vectormasker verwijderen;Rastermasker koppelen;Rastermasker ontkoppelen;Vectormasker koppelen;Vectormasker ontkoppelen;Laageffecten inschakelen;Laageffecten uitschakelen;Laag verwijderen;Laagdekking wijzigen;Overvloeimodus wijzigen;Zet laagstijl om naar pixels;Laagvolgorde;[Slim Object creëren;Slim Object updaten;Slim Object plaatsen;Bron (Slim Object);Stapelmodus];Naamwijziging;Kleurwijziging;Wijzig aanpassingslaag;Converteer naar vorm;Filtermasker inschakelen;Filtermasker uitschakelen;Slimme filters inschakelen;Slimme filters uitschakelen;Voeg filtermasker toe;Verwijder filtermasker;Verwijder slimme filters;[[Effen kleurvulling;Verloopvulling;Patroonvulling;Met behoud van inhoud];Nieuwe vullingslaag;Wijzig vullingslaag];Laag vanuit selectie;Filtermasker;Verwijder laagstijl;Verplaats slim filter;Verwijder slim filter;[Koppel lagen;Ontkoppel lagen];Rangschikken;[Verplaats naar voorgrond;Verplaats naar voren;Verplaats naar achteren;Verplaats naar achtergrond];[Deze laag is vergrendeld.;Verander vergrendeling;Vergrendelen];];[Alles;Deselecteren;Selectie omkeren;Bewerken;Uitbreiden;Inkrimpen;Verdoezel;Verplaats selectie;Kleurbereik;Rand;Transformeer selectie;Rand verfijnen;Herstel selectie;];[Zoom in;Zoom uit;Hulplijnen;Linialen;Raster;Vastklikken;Vastklikken aan;Documentsgrenzen;Pixelraster;Paden;Vastklikken aan pixels;[Segmenten;Segmentopties];Toon];[Geschiedenis;Lagen;Eigenschappen;Penseel;Karakter;Paragraaf;Info;Laagsamenstellingen;Kleurstalen;Handelingen;Histogram;Navigator;Voorinstellingen gereedschap;Glyphs];[Penseel;Kloonstempel;Uitsnijden;Gummetje;Ovaal selectiekader;Pipet;Verloop;Handje;Tekst;Lasso;Magnetische lasso;Verplaatsen;Toverstaf;Emmertje;Veelhoeklasso;Rechthoekig selectiekader;Vrije transformatie;Zoomen;Vervagen;Verscherpen;Natte vinger;Tegenhouden;Doordrukken;Spons;Snel retoucheerpenseel;Retoucheerpenseel;Reparatie;Padselectie;Directe selectie;Pen;Pen voor vrije vorm;Aangepaste vorm;Rechthoek;Ellips;Parametrische vorm;Lijn;Liniaal;Snelle selectie;Potlood;Uitsnijden met perspectief;Segment;Segmentselectie;Kleur vervangen;Rode ogen verwijderen;Object selecteren;Achtergrondgummetje;Marionet verdraaien;Weergave roteren;Zo schalen dat inhoud behouden blijft;Verplaatsen met behoud van inhoud];[Neem een foto;Kleurkiezer;Contouren wijzigen;Canvasgrootte;Dupliceren naar …;Verloop wijzigen;Laagstijl;Nieuw project;Opslaan voor web;Verdraaien;Afbeeldingsgrootte;Bitmap vectoriseren;[Verkleinen;Uitsnijden;Toon alles];Sneltoetsen;Hulplijnen toevoegen;[Hulplijnen wissen;Hulplijnen van Laag]];[Dekking;Effecten;Helderheid;[Contrast;Verouderde instelling gebruiken];Kanaal;Belichting;Verschuiving;Gammacorrectie;Kleurtoon;Verzadiging;Lichtheid;Inkleuren;Bereik;Levendigheid;[Grootte;Interpolatie;Naaste buur;Bilineair];Hoek;Rondheid;Hardheid;Interlinie;[Overvloeimodus;Overvloeien als];Monstergrootte;Randen;Stijl;[Omkeren;Relatief;Plaatsing];Tolerantie;Aangrenzend;Vulling;Gebruik globale hoek;Afstand;Verspreiden;Ruis;Gebruik slagschaduw;Techniek;Richting;Diepte;Verzachten;Modus;Verloop;Schalen;Uitlijnen met laag;Positie;Breedte;Hoogte;Bestemming;Type;Voorgrond;Achtergrond;Aangepast;Naam;Maak;Indeling;Behoud beeldverhouding;[Kwaliteit;Pagina's];Dupliceer;Verplaats;Slimme filters;Straal;Hoeveelheid;Verspreiding;[Gelijkmatig;Gaussiaans];Monochroom;Celgrootte;Patroon;Stroom;Sterkte;Details beschermen;Opvullingstype;Textuur;Wiebelen;Rand;Bron;Doel;Kanalen;Masker;Dichtheid;Uitgelijnd;[Pad;Vorm;Pixels;Inches;Centimeters;Millimeters;Procent];Vormen;Zijden;Voorkeuren;[Lengte;Verhouding;Elke;Rastertype;Isometrisch;Rasterlijn na elke;Liniaaleenheden];Verminder ruis;Kleuren;Afstanden;Snelheid;Automatisch selecteren;Zoeken;Definieer nieuw;[Foto;Beeldscherm;Mobiel;Advertenties;Afdruk];[Vrij;Vaste verhouding;Vaste grootte];Help;[Actieve Vorm;Bewerk Actieve Vorm;Dezelfde straal];Overeenkomst;[Veelhoek;Ster;Spiraal;Vierkant];[Hoekstraal;Binnenstraal]];[Kleur;[Geen;Rood;Oranje;Geel;Groen;Blauw;Paars;Grijs;Wit;Transparant;Zwart;Cyaan;Magenta;Neutraal];Totaal;Absoluut;Lichtsterkte behouden];[Slagschaduw;Schaduw binnen;Gloed buiten;Gloed binnen;Schuine kant en reliëf;Kleurbedekking;Verloopbedekking;Patroonbedekking;Satijn;Lijn;Opties voor overvloeien;Selecteer pixels];[Puntvorm;Puntdynamiek;Verstrooien;Kleurdynamiek;[Grootte - jitter;Minimale diameter;Hoek - jitter;Ronding - jitter;Minimale rondingen];[Positie - jitter;Aantal;Aantal - jitter];[Voorgrond/achtergrond - jitter;Kleurtoon - jitter;Verzadiging - jitter;Helderheid - jitter];[Selecteer de kloonbron door Alt (of K) ingedrukt te houden en op de afbeelding te klikken.;Markeer de voorgrond met wit, de achtergrond met zwart en het onbekende gebied met grijs.;Laag is niet bewerkbaar.;Tekstlaag moet eerst gerasteriseerd worden;Slim Object moet eerst gerasteriseerd worden;Selecteer meerdere lagen;Laag rechttrekken;Open eerst een document.;Sluit het huidige venster eerst.;Alleen huidig gereedschap];[Opnemen;Nieuwe handelingenset;Nieuwe handeling];[Pendruk bepaalt dekking;Pendruk bepaalt grootte];[Normaal;Verspreiden;Donkerder;Vermenigvuldigen;Kleur doordrukken;Lineair doordrukken;Donkerdere kleur;Lichter;Bleken;Kleur tegenhouden;Lineair tegenhouden;Lichtere kleur;Bedekken;Zwak licht;Fel licht;Levendig licht;Lineair licht;Puntlicht;Harde mix;Verschil;Uitsluiting;Aftrekken;Verdelen;Kleurtoon;Verzadiging;Kleur;Lichtsterkte;Doorheen halen]];[Regelafstand;Letterspatiëring;Verticale verplaatsing;[Omzetten in punttekst;Omzetten in alineatekst]];[Alle lagen;Huidige laag;Selectie;Huidige & onderliggende laag];[Vervangen;Samenvoegen;Verschil;Doorsnede;Uitsluiting;Samenvoegen];[[Rechtlijnig;Radiaal;Hoek;Gereflecteerd;Ruitvormig;Uitstralen];[Zachter;Precies];[Buitenste afschuining;Binnenste afschuining;Reliëf;Kussenreliëf;Lijnreliëf;Lijndikte];[Vloeiend maken;Harde beitel;Zachte beitel;Vloeiend];[Omhoog;Omlaag];[Buiten;Midden;Binnen;Vanuit middelpunt];[Schaduwen;Middentonen;Hooglichten];[Minder verzadiging;Verzadigen];[Klein;Middelgroot;Groot];[Uiteinden;Hoeken;Strepen]];[Kies het object onder de muis;Aanpassingsknoppen;Pixel naar pixel;Vul de ruimte;[Linkerranden uitlijnen;Horizontaal centreren;Rechterranden uitlijnen;Bovenranden uitlijnen;Verticaal centreren;Onderranden uitlijnen;Gelijke tussenruimte]];[Invoegen in;Huidig project;Nieuw project;Resolutie;Toegevoegd aan het huidige project.;Er is een nieuw project aangemaakt.;Toegang tot de camera geweigerd.];[Oriëntatie;Buigen;Horizontale vervorming;Verticale vervorming;[Horizontaal;Verticaal;Horizontaal;Verticaal];[Geen;Boog;Boog onder;Boog boven;Boog;Bollend;Schelp omlaag;Schelp omhoog;Vlag;Golf;Vis;Omhoog;Fisheye-lens;Opblazen;Samendrukken;Draaien;Aangepast];[Lettertype;is niet beschikbaar;Zal worden weergegeven met;Er zijn onopgeslagen bewerkingen in;Weet u zeker dat u dit wilt sluiten?];[Wissel kleuren;Standaard: Wit en Zwart]];[geladen;toegevoegd;Verplaats hulplijn;Verwijder hulplijn;Voeg hulplijn toe;Aan het laden;VAR0 laden];[Filtergalerie;[[Uitvloeien;[Uitsmeren;Reconstrueren;Verzachten;Verdraaien;Krimpen;Opblazen;Naar links duwen;Bevriezen;Ontdooien]];[Lenscorrectie]];Vervaging;[Gemiddelde;Vervagen;Meer vervagen;Omgevingsvervagen;Gaussiaans vervagen;Lensvervaging;Bewegingsonscherpte;Radiaal vervagen;Vormvervagen;Slim vervagen;Oppervlak vervagen];Vervormen;[Verplaatsen;Kneep;Polaire coördinaten;Rimpels;Verschuiving;Opbollen;Golf];Ruis;[Ruis toevoegen;Uitstippen;Stof & Krassen;Mediaan];Pixel;[Kleurhalftoon;Kristal;Facet;Fragmentatie;Mezzotint;Mozaïek;Pointilleren];Rendering;[Wolken;Wolken (Verschil);Lens flare];Verscherpen;[Verscherpen;Scherpe randen;Scherper;Slim verscherpen;Onscherp masker];Stileren;[Diffuus;Reliëf;Geef diepte;Omtreklijn;Olie verf];Overige;[Aangepast;Hoogdoorlaat;Maximum;Minimum;Verschuiven;Herhaal];[Ongedefiniëerd gebied;Maak transparant;Herhaal de pixels aan de randen;Wikkel rond documentsgrenzen;Vorige filter;Voorbeeld]];[Sjablonen;[Lettertype kleur;Sleutelwoorden;Willekeurig];[Met symbolen;Met foto];[Miniaturen;Lijst]]", + "[Fil;Redigera;Bild;Lager;Mapp;Markera;Filter;Vy;Fönster;Språk;Logga in;Logga ut;Skapa översättning;[Konto;Användarvillkor;Bakåt;Om appen;Rapportera en bugg;Lära sig];Mer;Tema;Använd WebGL;[Photopea: avancerad bildredigerare;Gratis online-editor som stöder PSD, XCF, Sketch, XD och CDR-format.;Skapa en ny bild eller öppna befintliga filer från din dator. Spara ditt jobb som PSD (Fil - Spara som PSD) eller som JPG / PNG / SVG (Fil - Exportera som).;Föreslå nya funktioner på vår eller . Vårt mål är att skapa .;Sponsorlänkar öppnas i ett nytt fönster.;Den här funktionen är inte tillgänglig.;Installera Photopea]];[Öppna;Publicera online;Spara;Spara som PSD;Skriv ut;Öppna från URL;Öppna från dator;Connecta med Google Drive;Exportera som;Exportera lager;Script;Öppen & Placera;Stäng;Lokal lagring;];[Stega framåt;Stega bakåt;Rensa;Fyll;Omforma;Rotera;Vänd VAR0;Skala VAR0;Ångra / Upprepa;Perspektiv;[Blanda automatiskt;Justera automatiskt];Toning;Använd bild];Justeringar;[Ljusstyrka/kontrast;Nivåer;Kurvor;Exponering;Lyster;Nyans/mättnad;Färgbalans;Svartvitt;Fotofilter;Kanalmixer;Färgsökning;Invertera;Färgreduktion;Tröskel;Övertoningskarta;Selektiv färg;[Automatisk toning;Autokontrast;Automatisk färg];Byt färg];[Klipp ut;Kopiera;Klistra in;Ny;Radera;Aktivera;Inaktivera;Kopiera sammanslagning;Tillämpa;Igen;Uppdatera];[Duplicera lager;Nytt justeringslager;Rastermask;Vektormask;Lägg till (Visa alla);[Lägg till (Dölj alla);Visa markering;Dölj markering;Från Genomskinlighet];[Urklippsmask;Snabbmask];Konvertera till Smart objekt;Rasterisera;Gruppera lager;Slå samman nedåt;Slå samman uppåt;[Slå samman lager;Gör till ett lager];Nytt lager;Aktivera Rastermask;Inaktivera Rastermask;Aktivera Vektormask;Inaktivera Vektormask;Aktivera Urklippsmask;Inaktivera Urklippsmask;Ny mapp;Lägg till Rastermask;Radera Rastermask;Lägg till Vektormask;Radera Vektormask;Länka Rastermask;Avlänka Rastermask;Länka Vektormask;Avlänka Vektormask;Aktivera Lagereffekter;Inaktivera Lagereffekter;Radera lager;Lageropacitet ändring;Blandningsläge ändring;Rasterisera lagerstil;Lagerordning;[Skapar Smart objekt;Uppdaterar Smart objekt;Placerar Smart objekt;Källa (Smart objekt);Stapelläge];Namn ändring;Färg ändring;Ändra Justeringslager;Konvertera till Form;Aktivera Filtermask;Inaktivera Filtermask;Aktivera Smarta filter;Inaktivera Smarta filter;Lägg till Filtermask;Radera Filtermask;Rensa Smarta filter;[[Enfärgad fyllning;Övertoningsfyllning;Mönsterfyllning;Innehållsmedveten];Nytt fyllningslager;Ändra fyllningslager];Lager via kopia;Filtermask;Radera lagerstil;Flytta smart filter;Radera smart filter;[Länka lager;Koppla ifrån Lager];Arrangera;[Flytta Främst;Flytta Framåt;Flytta Bakåt;Flytta Bakerst];[Lagret är låst.;Lås ändring;Lås];];[Allt;Avmarkera;Invertera;Ändra;Expandera;Dra samman;Ludd;Flytta markering;Färgintervall;Ram;Omforma markering;Förfina kant;Läka markering;];[Zooma in;Panorera ut;Stödlinjer;Linjaler;Stödraster;Fäst;Fäst mot;Dokument Gräns;Pixelrutnät;Banor;Fäst mot pixelar;[Segment;Segmentalternativ];Visa];[Historik;Lager;Egenskaper;Pensel;Tecken;Stycke;Info;Lagerkompositioner;Färgrutor;Funktionsmakron;Histogram;Överblick;Verktygsförinställningar;Specialtecken];[Penselverktyget;Klonverktyget;Beskärningsverktyget;Suddverktyget;Ellipsmarkering;Pipetten;Övertoningsverktyget;Handverktyget;Textverktyget;Lassomarkering;Magnetisk lassomarkering;Flyttaverktyget;Trollspöet;Färgburksverktyget;Polygonal lassomarkering;Rektangelmarkering;Omforma fritt;Zoomverktyget;Blurra;Skärpa;Smeta ut;Skugga;Efterbelys;Svamp;Smart lagningspensel;Lagningspensel;lapp verktyg;Banmarkering;Direktmarkering;Penna;Fri penna;Egen form;Rektangel;Ellips;Parametrisk form;Linje;Linjal;Snabb val;Penselverktyg;Perspektivbeskärning;Segment;Markera segment;Färgersättning;Röda ögon;Objektmarkering;Bakgrundssuddgummi;Tänjning av marionett;Rotera vy;Skala för innehållsmedvetenhet;Innehållsmedveten flyttning];[Ta en bild;Färgväljaren;Konturredigeraren;Storlek på arbetsyta;Duplicera in i...;Övertoningsredigeraren;Lagerstil;Nytt projekt;Spara för webb;Tänj;Bildstorlek;Vektorisera bitkarta;[Rensa;Beskära;Visa Allting];Genvägar Tangentbord;Lägg till Stödlinjer;[Radera stödlinjer;Stödlinjer från Lager]];[Opacitet;Effekter;Ljushet;[Kontrast;Använd äldre];Kanal;Exponering;Förskjutning;Gammakorrigering;Nyans;Mättnad;Ljushet;Färga;Omfång;Lyster;[Storlek;Interpolation;Närmast intilliggande;Bilinjär];Vinkel;Rundhet;Hårdhet;Mellanrum;[Blandningsläge;Blanda om];Provstorlek;Kontur;Stil;[Omvänd;Relativ;Placering];Tolerans;Angränsande;Fyll;Använd Global vinkel;Avstånd;Spridning;Brus;Slå ut skugga;Teknik;Riktning;Djup;Mjuka upp;Läge;Övertoning;Skala;Justera med lager;Position;Bredd;Höjd;Destination;Typ;Förgrund;Bakgrund;Egen;Namn;Skapa;Format;Behåll bildförhållande;[Kvalitet;Sidor];Duplicera;Flytta;Smarta filter;Radie;Mängd;Fördelning;[Enhetlig;Gaussisk];Monokromatisk;Cellstorlek;Mönster;flöde;Styrka;Skyddad detalj;Fyll typ;Textur;Darr;Gräns;Källa;Mål;Kanaler;Mask;Densitet;Justera;[Bana;Form;Pixelar;Tum;Centimeter;Millimeter;Procent];Former;Sidor;Preferenser;[Längd;Förhållande;Någon;Rutnät Typ;Isometrisk;Rasterlinje var;Linjalenheter];Reducera brus;Färger;Avstånden;Hastighet;Automarkera;Hitta;Definiera nya;[Foto;Bildskärm;Mobil;Reklam;Avtryck];[Fri;Fasta proportioner;Fastställd storlek];Hjälp;[Aktuell Form;Ändra Aktuell Form;Samma Radie];Överstrålning;[Polygon;Stjärna;Spiral;Kvadratisk];[Hörn Radie;Inre Radie]];[Färg;[Ingen;Röd;Orange;Gul;Grön;Blå;Violett;Grå;Vit;Transparent;Svart;Cyan;Magenta;Neutral];Fullständig;Absolut;Bevara luminiscens];[Skugga;Innerskugga;Yttre glöd;Inre glöd;Avfasning och relief;Färgöverlägg;Övertoningsöverlägg;Mönsteröverlägg;Satäng;Ramlinje;Blandningsval;Välj pixelar];[Spetsform;Spetsdynamik;Utspridning;Färgdynamik;[Storleksvariation;Minimal diameter;Vinkelvariation;Rundhetsvariation;Minimal rundhet];[Lägesvariation;Antal;Antalsvariation];[Förgrunds-/Bakgrundsvariation;Nyansvariation;Mättnadsvariation;Ljushetsvariation];[Välj kloningskälla genom att hålla nere Alt (eller K) och klicka på bilden;Markera förgrund med vitt, bakgrund med svart, och det okända området med grått.;Lagret kan inte ändras.;Text Lager måste rastreras först;Smart objekt måste rastreras först;Välj flera lager;Räta upp lager;Öppna ett dokument först.;Stäng det nuvarande fönsret först.;Endast aktuellt verktyg];[Spela in;Ny funktionsmakro uppsättning;Nytt funktionsmakro];[Nåltryck kontroller Opacitet;Nåltryck kontroller Storlek];[Normal;Lös upp;Mörkare;Multiplicera;Efterbel. färg;Linjär efterbel.;Mörkare färg;Ljusare;Raster;Färgskugga;Linjär skugga;Ljusare färg;Täcka över;Mjukt ljus;Skarpt ljus;Klart ljus;Linjärt ljus;Strålljus;Hård blandning;Differens;Uteslutning;Subtrahera;Dela upp;Nyans;Mättnad;Färg;Luminiscens;Gå igenom]];[Radavstånd;Knipning;Baslinjeförskjutning;[Konvertera till punkttext;Konvertera till stycketext]];[Alla lager;Aktuellt lager;Markering;Aktuellt och underliggande];[Byt ut;Koppling;Skillnad;Överlappa;Uteslut;Slå ihop];[[Linjär;Radiell;Vinkel;Reflekterad;Diamant;Form ström];[Mjukare;Exakt];[Yttre avfasing;Inre avfasning;Relief;Kuddrelief;drag ciselera;Stregbredden];[Utjämna;Mejsel hård;Mejsel mjuk;Släthet];[Upp;Ned];[Utsidan;Mitten;Insidan;Från mitten];[Skuggor;Mellantoner;Högdagrar];[Tunna ut;Mätta];[Lilla;Medium;Stor];[Ändpunkter;Hörn;Strecken]];[Välj föremålet under markören;Omvandla kontroller;Pixel till Pixel;Anpassa till skärm;[Justera vänsterkanter;Centrera horisontellt;Justera högerkanter;Justera överkanter;Centrera vertikalt;Justera nederkanter;Lika Mellanrum]];[Placera i;Nuvarande projekt;Nytt projekt;Upplösning;Tillagd i det här projektet.;Ett nytt projekt skapades.;Tillgång till kameran var avvisad.];[Orientering;Böj;Horisontell förvrängning;Vertikal förvrängning;[Horisontell;Vertikal;horisontellt;vertikalt];[Ingen;Båge;Lägre Båge;Övre Båge;Valv;Utbuktning;Lägre skal;Övre skal;Flagga;Våg;Fisk;Res;Fisköga;Blåsa upp;Pressa;Vrid;Egen];[Typsnitt;är inte tillgänglig;Kommer att göras med hjälp av;Det är olovat arbete i;Vill du verkligen stänga den?];[Byt färger;Standard: Vit och Svart]];[laddad;tillagd;Flytta stödlinjen;Radera stödlinjen;Lägg till stödlinjen;Läser in;Läs in VAR0];[Filtergalleri;[[Kondensera;[Fläckar;Rekonstruera;Jämna till;Virvel;Krymp;Blås;Tryck åt vänster;Frys;Tina]];[Objektivkorrigering]];Oskärpefilter;[Jämka;Oskärpa;Mer oskärpa;Rutoskärpa;Gaussisk oskärpa;Linsoskärpa;Rörelseoskärpa;Radiell oskärpa;Formoskärpa;Smart oskärpa;Ytoskärpa];Förvrängningsfilter;[Förskjutning;Knipning;Polära koordinater;Krusning;Skeva;Sfär;Våg];Brusfilter;[Lägg till brus;Ytutjämning;Damm och repor;Median];Pixelförvandlingsfilter;[Färgraster;Kristallisera;Fasett;Fragment;Mezzotint;Mosaik;Skapa fläckar];Återgivningsfilter;[Moln;Differensmoln;Linsöverstrålning];Skärpefilter;[Skärpa;Kantskärpa;Mera skärpa;Smart skärpa;Oskarp mask];Stiliseringsfilter;[Diffusera;Relief;Djup;Hitta konturer;Oljemålning];Andra filter;[Egen;Högpass;Maximum;Minimum;Förflyttning;Upprepa];[Odefinierat område;Sätt till transparent;Upprepa bildpunkter;Vira runt;Sista filtret;Förhandsvisa]];[Mallar;[Typsnitt filter;Nyckelorden;Slumpmässig];[Med symboler;Med foto];[Miniatyrbilder;Lista]]", + "[Fil;Rediger;Billede;Lag;Mappe;Marker;Filter;Vis;Vindue;Sprog;Log ind;Log ud;Lav oversættelse;[Konto;Brugervilkår;Tilbage;Om;Anmeld en fejl;Lær];Mere;Tema;Brug WebGL;[Photopea: avanceret billedredigeringsprogram;Gratis online editor, der understøtter PSD, XCF, Sketch, XD og CDR formater.;Opret et nyt billede eller åben eksisterende filer fra din computer. Gem dit arbejde som PSD (Fil - Gem som PSD) eller som JPG / PNG / SVG (Fil - Eksporter som).;Foreslå nye funktioner på vores eller . Vores mål er at skabe .;Sponsorlinks åbnes i et nyt vindue.;Denne funktion er ikke tilgængelig.;Installer Photopea]];[Åbn;Udgiv online;Gem;Gem som PSD;Udskriv;Åben fra URL;Åben fra computer;Forbind med Google Drive;Eksporter som;Eksporter lag;Script;Åben og placer;Luk;Lokalt lager;];[Fremad;Tilbage;Fjern;Fyld ud;Transformer;Roter;Vend VAR0;Skaler VAR0;Fortryd / Gentag;Perspektiv;[Sammenlæg automatisk;Juster automatisk];Udton;Overfør billede];Justeringer;[Lysstyrke/kontrast;Niveauer;Kurver;Udsættelse;Dynamik;Farvetone/mætning;Farvebalance;Sort-hvid;Fotofilter;Kanaler;Farveopslag;Invertér;Farvereduktion;Grænse;Farveforløbskort;Vælg farve;[Autotone;Autokontrast;Autofarve];Erstat farve];[Klip;Kopier;Indsæt;Ny;Slet;Aktiver;Deaktiver;Kopier sammenflettede;Tilføj;Gentag;Opdater];[Dupliker lag;Nyt justeringslag;Rastermaske;Vektormaske;Tilføj (vis alle);[Tilføj (skjul alle);Vis markering;Skjul markering;Fra gennemsigtighed];[Klippemaske;Ekspresafmaskning];Konverter til Smart Objekt;Rasteriser;Gruppér lag;Flet ned;Flet op;[Flet lag;Samkopier billede];Nyt lag;Aktiver rastermaske;Deaktiver raster maske;Aktiver vektor maske;Deaktiver vektor maske;Aktiver klippemaske;Deaktiver klippemaske;Ny mappe;Tilføj raster maske;Slet raster maske;Tilføj vektor maske;Slet vektor maske;Forbind raster maske;Ophæv raster maske;Forbind vektor maske;Ophæv vektor maske;Aktiver lageffekter;Deaktiver lageffekter;Slet lag;Lag opacitet ændring;Blanding ændring;Rasteriser Lag Stil;Lag rækkefølge;[Opret Smart Objekt;Opdatér Smart Objekt;Placér Smart Objekt;Kilde (Smart Objekt);Staktilstand];Navn ændring;Farve ændring;Rediger justeringslag;Konverter til formattributter;Aktiver filter maske;Deaktiver filter maske;Aktiver Smart filtre;Deaktiver Smart filtre;Tilføj filter maske;Slet filter maske;Ryd Smart filtre;[[Ren farve fyld;Farveforløbsudfyldning;Mønster fyld;Afhænger af indholdet];Nyt udfyldningslag;Ændr udfyldningslag];Lag via kopi;Filter maske;Slet Lag Stil;Flyt Smart filtre;Slet Smart filtre;[Link Lag;Fjern kæde til lag];Arrangér;[Placer forrest;Bring frem;Flyt bagud;Placer bagest];[Lag er låst;Lås ændring;Lås];];[Alt;Fravælg;Inverter;Modificer;Udvid;Træk sammen;Udtynding;Flyt markering;Farvespænd;Kant;Transformer markering;Juster kant;Forbedre markering;];[Zoom ind;Zoom ud;Hjælpelinjer;Linealer;Gitter;Fastgør;Fastgør til;Dokument grænser;Pixelgitter;Kurver;Fastgør til pixels;[Udsnits;Udsnitsindstillinger];Vis];[Oversigt;Lag;Egenskaber;Brush;Karakter;Afsnit;Info;Lagsammensætninger;Farveprøver;Handlinger;Histogram;Navigator;Forudindstillinger til værktøj;Glyffer];[Brush værktøj;Kloneværktøj;Beskæringsværktøj;Sletteværktøj;Marker eliptisk;Øjendråbe;Farveforløbsværktøjet;Hånd Værktøj;Tekstværktøj;Lasso-markering;Magnetisk lassomarkering;Flytteværktøj;Tryllestav;Malerspand værktøj;Polygonal lassomarkering;Firkantet markering;Fri transformering;Zoom Værktøj;Sløringsværktøj;Skærpenværktøj;Udtværingsværktøjet;Svampeværktøj;Brænde Værktøj;Fjern farvemætning;Spot healing brushværktøj;Healing brushværktøj;Lappe Værktøj;Kurvemarkøring;Vælg direkte;Pen;Fri pen;Tilpas form;Rektangel;Ellipo;Parametrisk form;Linie;Lineal;Hurtigmarkering;Blyantværktøj;Perspektivbeskæring;Udsnitsværktøjet;Udsnitsmarkeringsværktøjet;Farveerstatnings-værktøjet;Værktøjet til røde øjne;Objektmarkering;Baggrundsviskelæder;Fordrej som marionetdukke;Roter visning;Skalering, der afhænger af indholdet;Indholdsafhængig flytning];[Tag et foto;Farvevælger;Kontur redigering;Lærredsstørrelse;Duplikér ind i...;Farveforløbseditor;Lagtype;Nyt Projekt;Gem til web;Fordrej;Billede størrelse;Vektorisér bitmap;[Studs;Beskær;Vis alle];Genvejstaster;Tilføj hjælpelinjer;[Slet hjælpelinjer;Hjælpelinjer fra lag]];[Opacitet;Effekter;Lysstyke;[Kontrast;Brug ældre];Kanal;Eksponering;Forskydning;Gammakorrigering;Farvetone;Farvemætning;Lysstyrke;Farvelæg;Rækkevidde;Klarhed;[Størrelse;Interpolation;Nærmeste nabo;Bi-lineær];Vinkel;Runding;Hårdhed;Plads;[Blandingstilstand;Bland hvis];Sample størrelse;Kontur;Stil;[Gå tilbage;Relativ;Anker];Tolerance;Sammenhængende;Fyld;Brug global vinkel;Afstand;Spredning;Støj;Fjern slagskygge;Teknik;Retning;Dybde;Blødgør;Tilstand;Farveforløb;Skaler;Juster med lag;Placering;Bredde;Højde;Destination;Type;Forgrund;Baggrund;Tilpasset;Navn;Opret;Format;Bevar proportioner;[Kvalitet;Sider];Duplikér;Flyt;Smart filtre;Radius;Beløb;Distribution;[Uniform;Gaussian];Monokromatisk;Cellestørrelse;Mønster;Flow;Styrke;Beskyt detaljer;Fyldtype;Tekstur;Variation;Kant;Kilde;Modtager;Kanaler;Maske;Massefylde;Justeret;[Kurve;Form;Pixels;Tommer;Centimeter;Millimeter;Procent];Former;Sider;Indstillinger;[Længde;Ratio;Nogen;Gittertype;Isometrisk;Gitterlinje for hver;Måleenheder];Reducér støj;Farver;Afstande;Hastighed;Vælg automatisk;Søg;Definér ny;[Foto;Skærm;Mobil;Reklamer;Aftryk];[Fri;Låst forhold;Låst størrelse];Hjælp;[Live Form;Rediger Live Form;Samme radius];Sløring;[Polygon;Stjerne;Spirale;Kvadratisk];[Hjørneradius;Indre radius]];[Farve;[Ingen;Rød;Orange;Gul;Grøn;Blå;Lilla;Grå;Hvid;Gennemsigtigt;Sort;Cyan;Magenta;Neutral];Total;Absolut;Bevar luminans];[Slagskygge;Indvendig skygge;Udvendig glød;Indvendig glød;Facet og prægning;Farvemaske;Farveforløbsmaske;Mønstermaske;Satin;Strøg;Blandingsmuligheder;Vælg pixel];[Spidsform;Spidsdynamik;Spredning;Farvedynamik;[Størrelsesvariation;Minimal Diameter;Vinkelvariation;Rundhedsvariation;Minimal Rundhed];[Placering Variation;Tæl;Tæl Variation];[Forgrunds/baggrundsvariation;Farvetonevariation;Farvemætningsvariation;Lysstyrkevariation];[Vælg kilde til kloning ved at holde Alt (eller K) og klikke på billedet.;Marker forgrunden med hvid, baggrund med sort, og det ukendte område med grå.;Laget kan ikke redigeres.;Tekstlag skal først rasteriseres;Smart Objekt skal rasteriseres først;Vælg flere lag;Rett lag;Åbn et dokument først.;Luk det nuværende vindue først.;Kun aktuelt værktøj];[Indspille;Ny handling set;Ny handling];[Stylus tryk styrer opacitet;Stylus tryk styrer størrelsen];[Normal;Opløs;Mørkere;Multiplicer;Farvebrænding;Lineær brænding;Mørkere farve;Lysere;Skærm;Farveudtværing;Forøg lysstyrkeforskel;Lysere farve;Maske;Blødt lys;Hårdt lys;Livligt lys;Lineært lys;Punktlys;Hård;Forskel;Eksklusion;Træk fra;Opdel;Farvetone;Farvemætning;Farve;Luminans;Videregivelse]];[Linjeafstand;Sporing;Grundlinjeforskydning;[Konverter til punkttekst;Konverter til afsnitstekst]];[Alle lag;Nuværende lag;Markering;Nuværende og under];[Udskift;Forene;Træk fra;Overlap;XOR;Flet];[[Lineært;Radialt;Vinklet;Reflekteret;Diamant;Shape Burst];[Blødere;Præcis];[Udvendig facet;Indvendig facet;Prægning;Pudeprægning;Strøgprægning;Stregbredden];[Udglat;Hård mejsel;Blød mejsel;Udjævning];[Op;Ned];[Udvendig;Midten;Indvendig;Fra centrum];[Skygge;Mellemtoner;Højlys];[Dæmp farvemætning;Mætning];[Lille;Medium;Stor];[Afslutninger;Hjørner;Streger]];[Vælg objektet under pilen;Transformeringshåndtagene;Pixel til pixel;Tilpas til skærm;[Juster venstrekanter;Vandrette midtpunkter;Juster højrekanter;Juster øverste kanter;Lodrette midtpunkter;Juster nederste kanter;Selv afstande]];[Placer i;Nuværende projekt;Nyt projekt;Opløsning;Tilføjet i det nuværende projekt.;Nyt projekt oprettet;Kamera adgang afvist];[Retning;Bøj;Vandret forvrængning;Lodret forvrængning;[Vandret;Lodret;horisontalt;vertikalt];[Ingen;Bue;Bue nede;Bue oppe;Hvælving;Bule;Shell form ned;Shell form opad;Flag;Bølge;Fisk;At stige;Fiskeøje;Pump op;Pres;Twist;Tilpasset];[Skrifttype;er ikke tilgængelig;Vil gengives ved hjælp af;Der er ufarvet arbejde i;Vil du virkelig lukke den?];[Byt farver;Standard: Hvid og sort]];[indlæst;tilføjet;Flyt hjælpelinje;Slet hjælpelinje;Tilføj hjælpelinje;Indlæser;Indlæs VAR0];[Filtergalleri;[[Blødgør;[Udtvære;Genopbyg;Udglatter;Hvirvle;Shrink;Opblæs;Skub til venstre;Fastlåse;Lås op]];[Linsekorrektion]];Sløringsfiltre;[Gennemsnit;Sløring;Mere sløring;Bokssløring;Gaussisk sløring;Linsesløring;Bevægelsessløring;Radial sløring;Formsløring;Smart sløring;Overfladesløring];Forvræng;[Kantede strøg;Knibning;Polære koordinater;Krusning;Vridning;Sfærisk effekt;Bølge];Støjfiltre;[Tilføj Støj;Fjern støj;Støv og ridser;Median];Pixelér;[Farvehalvtone;Krystallisering;Facet;Fragment;Mezzotint;Mosaik;Pointillistisk arbejdsmåde];Gengivelsesfiltre;[Skyer;Skyblandinger;Linsebrydning];Skarpere;[Gør skarpere;Gør kanter skarpere;Endnu skarpere;Smart skarphed;Uskarp maskning];Effektfiltre;[Spredning;Prægning;Ekstrudering;Find kanter;Oliemaleri];Andre filtre;[Brugerdefineret;Højpas;Maksimum;Minimum;Forskydning;Gentag];[Udefineret område;Sat til gennemsigtig;Gentag kantpixel;Bøj rundt;Sidste Filter;Forhåndsvis]];[Skabeloner;[Skrifttype filter;Nøgleord;Tilfældig];[Med symboler;Med foto];[Miniaturebillede;Liste]]", + "[Tiedosto;Muokkaa;Kuva;Taso;Kansio;Valitse;Suodatin;Näkymä;Ikkuna;Kieli;Kirjaudu sisään;Kirjaudu ulos;Luo käännös;[Tili;Palveluehdot;Takaisin;Tietoja;Ilmoita virheestä;Oppia];Enemmän;Teema;Käytä WebGL;[Photopea: Edistynyt kuvankäsittelyohjelma;Ilmainen online-editori, joka tukee PSD-, XCF-, Sketch-, XD- ja CDR-muotoja.;Luo uusi kuva tai avaa tietokoneesta olemassa olevat tiedostot. Tallenna työsi PSD-muodossa (Tiedosto - Tallenna nimellä PSD) tai JPG / PNG / SVG (Tiedosto - Vie muodossa).;Ehdota uusia ominaisuuksia tai . Tavoitteenamme on luoda .;Sponsori linkit avautuvat uuteen ikkunaan.;Tätä toimintoa ei ole.;Asenna Photopea]];[Avaa;Julkaise verkossa;Tallenna;Tallenna nimellä PSD;Tulosta;Avaa osoitteesta;Avaa tietokoneelta;Yhdistä Google Drive;Vie muodossa;Vie tasot;Skriptit;Avaa ja sijoita;Sulje;Paikallinen tallennustila;];[Askel eteenpäin;Askel taaksepäin;Pyyhi;Täytä;Muunna;Pyöritä;Peilikuvaksi VAR0;Skaalaa VAR0;Kumoa / Tee uudelleen;Perspektiivi;[Sekoita automaattisesti;Tasaa automaattisesti];Häivytä;Käytä kuvaa];Säädöt;[Kirkkaus/kontrasti;Tasojen säätö;Käyrien säätö;Valotus;Sävyeloisuus;Sävy/kylläisyys;Väritasapaino;Mustavalkoinen;Valokuvasuodatin;Kanavamikseri;Värihaku;Negatiivi;Porrasta;Kynnys;Liukuvärikartta;Valikoiva väri;[Automaattinen sävy;Automaattinen kontrasti;Automaattinen väri];Korvaa väri];[Leikkaa;Kopioi;Liitä;Uusi;Poista;Ota käyttöön;Poista käytöstä;Kopioi yhdistynyt;Käytä;Jälleen;Päivitä];[Monista taso;Uusi säätötaso;Rasterimaski;Vektorimaski;Lisää (näytä kaikki);[Lisää (kätke kaikki);Näytä valinta;Piilota valinta;Läpinäkyvästä];[Leikkuumaski;Pikamaskaustila];Muunna älykkääksi objektiksi;Rasteroi;Ryhmitä tasot;Yhdistä alas;Yhdistä ylös;[Yhdistä tasot;Litistä kaikki tasot];Uusi taso;Ota käyttöön rasterimaski;Poista rasterimaski käytöstä;Ota käyttöön vektorimaski;Poista vektorimaski käytöstä;Ota käyttöön leikkuumaski;Poista leikkuumaski käytöstä;Uusi kansio;Lisää rasterimaski;Poista rasterimaski;Lisää vektorimaski;Poista vektorimaski;Linkkaa rasterimaski;Poista rasterimaskin linkitys;Linkkaa vektorimaski;Poista vektorimaskin linkitys;Ota käyttöön tason tehosteet;Poista tason tehosteet käytöstä;Poista taso;Tason peittävyyden muutos;Sekoituksen muutos;Rasteroi tason tyyli;Tasojen järjestys;[Uuden älykkään objektin luominen;Älykkään objektin päivitys;Älykkään objektin sijoitus;Lähde (Älykäs objekti);Pinoamistila];Nimen muutos;Värin muutos;Muokkaa säätötasoa;Muunna muodoksi;Ota käyttöön suodinmaski;Poista suodinmaski käytöstä;Ota käyttöön älykkäät suotimet;Poista älykkäät suotimet käytöstä;Lisää suodinmaski;Poista suodinmaski;Pyyhi älykkäät suotimet;[[Täyttö tasavärillä;Täyttö liukuvärillä;Täyttö kuviolla;Sisältötietoinen];Uusi täyttötaso;Muokkaa täyttötaso];Kopioi tasoksi;Suodinmaski;Poista tasotyyli;Siirrä älykäs suodin;Poista älykäs suodin;[Linkitä tasot;Poista tasojen linkitys];Järjestä;[Tuo päälle;Siirrä päällemmäksi;Siirrä alemmaksi;Vie alle];[Taso on lukittu.;Lukitse muutos;Lukitse];];[Kaikki;Kumoa valinta;Käänteinen valinta;Muuta;Laajenna;Supista;Häivytys;Siirrä valintaa;Värialue;Reunus;Muunna valinta;Hienosäädä reuna;Korjaa valinta;];[Zoomaa sisään;Zoomaa ulos;Apulinjat;Viivaimet;Ruudukko;Kohdista;Kohdista kohteeseen;Dokumentin rajat;Pikseli ruudukko;Reitit;Kohdista pikseleihin;[Osia;Osan asetukset];Näytä];[Historia;Tasot;Ominaisuudet;Sivellin;Kirjain;Kappale;Tietoja;Tasovedokset;Värimallit;Makrot;Histogrammi;Navigaattori;Työkalujen esimääritykset;Kuviot];[Sivellinyökalulla;Kloonisivellin;Rajaustyökalu;Kumi;Ellipsivalinta;Pipetti;Liukuvärityökalu;Käsi;Tekstityökalu;Lassovalinta;Magneettinen lassovalinta;Siirtotyökalu;Taikasauva;Maalipurkki;Monikulmiolassovalinta;Suorakulmiovalinta;Vapaa muunto;Zoomaus;Häivytä;Terävöitä;Hankaus;Varjostustyökalu;Lisävalotustyökalu;Pesusieni;Spottikorjaussivellin;Korjaussivellin;Paikkaa valinnalla;Reitin valinta;Suoravalinta;Vektoripiirrin;Vektorikynä;Vapaa muoto;Suorakulmio;Ellipsi;Parametrinen muoto;Viiva;Viivain;Pikavalintatyökalu;Kynätyökalulla;Perspektiivirajaustyökalu;Ositustyökalulla;Osanvalintatyökalulla;Värin korvaustyökalulla;Punasilmäisyystyökalu;Objektin valintatyökalu;Taustan pyyhintä;Nukketeatterin käyristysmuunnos;Kierrä näkymää;Sisältötietoinen skaalaus;Sisältötietoinen siirto];[Ota kuva;Värivalitsin;Korkeusrajan editori;Piirtoalue;Monista kohteeseen ...;Liukuvärieditori;Tason tyyli;Uusi projekti;Tallenna verkkoon;Käyristä;Kuvan koko;Vektoroi bittikartta;[Poista reunat;Rajaus;Näytä kaikki];Näppäinkomennot;Lisää apulinjat;[Pyyhi apulinjat;Apulinjat tasolta]];[Peittävyys;Tehosteet;Kirkkaus;[Kontrasti;Käytä vanhaa];Kanava;Valotus;Siirtymä;Gamman korjaus;Sävy;Kylläisyys;Valoisuus;Väritä;Aluerajaus;Eloisuus;[Koko;Interpolaatioon;Lähimmän naapurin;Bilineaarinen];Kulma;Pyöreys;Kovuus;Välistys;[Sekoitustapa;Sekoita jos];Näytteen koko;Korkeusraja;Tyyli;[Käänteinen;Suhteellinen;Tukipiste];Toleranssi;Vierekkäiset;Täyttö;Käytä globaalia kulmaa;Etäisyys;Levitys;Kohina;Heittovarjon sisäpuolen aukko;Tekniikka;Suunta;Syvyys;Pehmennä;Moodi;Liukuväri;Skaalaus;Tasaa tason kanssa;Sijainti;Leveys;Korkeus;Määränpää;Tyyppi;Edustan;Taustan;Mukautettu;Nimi;Luo;Tiedostomuoto;Säilytä kuvasuhde;[Laatu;Sivut];Monista;Siirrä;Älykkäät suotimet;Säde;Voimakkuus;Jakauma;[Tasainen;Gaussin];Yksisävyinen;Solun koko;Kuvio;Virtaama;Voimakkuus;Säilytä yksityiskohdat;Täytön tyyppi;Tekstuuri;Hajoama;Reuna;Lähde;Kohde;Kanavat;Maski;Tiheys;Kohdistettu;[Reitin;Muoto;Pikseliä;Tuumaa;Senttimetriä;Millimetriä;Prosentti];Muodot;Sivut;Asetukset;[Pituus;Suhde;Kaikki;Ruudukon tyyppi;Isometrinen;Ruudukon tiheys;Viivaimen yksiköt];Lievitä rakeisuutta;Värit;Etäisyydet;Teho;Automaattinen valinta;Etsi;Määritä uusi;[Valokuva;Näyttö;Mobiililaite;Mainokset;Tuloste];[Vapaa;Vakiosuhde;Kiinteä koko];Ohje;[Live Shape;Muokkaa Live Shape;Yhtenevät säteet];Sallittu poikkeama;[Monikulmio;Tähti;Spiraali;Neliö];[Kulman säde;Sisäinen säde]];[Väri;[Väritön;Punainen;Oranssi;Keltainen;Vihreä;Sininen;Violetti;Harmaa;Valkoinen;Läpinäkyvä;Musta;Syaani;Magenta;Neutraali];Totaalinen;Absoluuttinen;Säilytä värin kirkkaus];[Heittovarjo;Sisävarjo;Ulkoinen hohto;Sisäinen hohto;Viiste ja korkokuva;Väripäällyste;Liukuväripäällyste;Kuviopäällyste;Satiini;Viiva;Sekoitusvaihtoehdot;Valitse pikselien];[Kärjen muoto;Kärjen dynaamiset ominaisuudet;Hajonta;Värien dynamiikka;[Koko Värinä;Minimihalkaisija;Kulma Värinä;Pyöreys Värinä;Minimipyöreys];[Sijainti Värinä;Lukumäärä;Lukumäärä Värinä];[Edustan/Taustan Värinä;Sävyn Värinä;Kylläisyyden Värinä;Kirkkauden Värinä];[Valitse kloonauksen lähde pitämällä Alt-näppäintä pohjassa ja klikkaamalla kuvaa.;Merkitse edusta valkoinen, tausta mustalla ja tuntematon alue harmaalla.;Taso ei ole muokattavissa.;Tekstin taso on ensin rasteroitava;Älykäs objekti on ensin rasteroitava;Valitse useita tasoja;Suorista taso;Avaa dokumentti ensin.;Sulje nykyinen ikkuna ensin.;Vain nykyinen työkalu];[Tallenna;Uusi Makrojoukko;Uusi Makro];[Kynän paine määrittää peittävyyden;Kynän paine määrittää koon];[Normaali;Roiskiva;Tummentava;Kertova;Värilisävalotus;Lineaarinen lisävalotus;Tummempi väri;Vaalentava;Rasteri;Värivarjostus;Lineaarinen varjostus;Vaaleampi väri;Sulauttava;Pehmeä valo;Kova valo;Kirkas vaalea;Lineaarinen valo;Kohdevalo;Kova sekoitus;Erottava;Poistava;Vähennä;Pilko osiin;Sävy;Kylläisyys;Väri;Värin kirkkaus;Läpiohjaus]];[Rivivälistys;Merkkiväli;Peruslinjan siirto;[Muunna pistetekstiksi;Muunna kappaletekstiksi]];[Kaikki tasot;Nykyinen taso;Valinta;Nykyinen ja alapuoliset];[Korvaa;Liitto;Eroavaisuus;Leikkaus;XOR;Yhdistä];[[Lineaarinen;Radiaalinen;Kulma;Peilattu;Timantti;Shape Burst];[Pehmeämpi;Tarkempi];[Ulompi viiste;Sisäinen viiste;Korkokuva;Tyynykorkokuva;Reunakorkokuva;Viiva leveys];[Pehmennä;Kova taltta;Pehmeä taltta;Tasaisuus];[Ylös;Alas];[Ulkopuolelle;Keskelle;Sisäpuolelle;Keskeltä];[Varjostukset;Keskisävyt;Korostukset];[Haalista;Kyllästä];[Pieni;Keskikokoinen;Suuri];[Päät;Kulmat;Viivoja]];[Valitse objekti osoittimen alla;Muuntovalinnat;Pikseli pikseliin;Sovita alueelle;[Vasemmat reunat;Keskusta vaakasuunnassa;Vasemmat reunat;Yläreunat;Keskitä pystysuunnassa;Alareunat;Yhtä etäisyydet]];[Laittaa sisään;Nykyinen projekti;Uusi projekti;Resoluutio;Lisätty nykyiseen projektiin.;Uusi projekti luotiin.;Käyttöoikeus kameraan estettiin.];[Suuntaus;Väännä;Vaakavääristys;Pystyvääristys;[Vaaka;Pysty;vaakasuunnassa;pystysuunnassa];[Ei;Kaari;Alempi kaari;Ylempi kaari;Holvikaari;Pullistus;Alempi kuori;Ylempi kuori;Lippu;Aalto;Kala;Nosto;Kalansilmä;Paisutus;Puristus;Kierre;Mukautettu];[Kirjasin;ei ole saatavilla;Piirretään käyttäen;Tämän työtä ei ole tallennettu:;Haluatko todella sulkea sen?];[Vaihda värit;Oletusasetus: valkoinen ja musta]];[ladattu;lisätty;Siirrä apulinjan;Poista apuviiva;Lisää apulinja;Ladataan;Lataa VAR0];[Suodatingalleria;[[Sulata-suotimen;[Levittä;Uudelleenmuodosta;Tasoitaa;Pyöräytä;Kutista;Puhalla;Vasemmalle työntävä;Jäädytä;Vapauta]];[Linssikorjaus]];Sumenna;[Keskiarvo;Sumenna;Sumenna lisää;Ruutusumennus;Gauss-sumennus;Linssisumennus;Liike-epäterävyys;Säteittäinen sumennus;Muotosumennus;Älykäs sumennus;Pintasumennus];Vääristä;[Poikkeuta;Paina kuopalle;Napakoordinaatit;Väreily;Taivuta;Pullista;Aalto];Kohina;[Lisää kohinaa;Poista pilkut;Pöly ja naarmut;Mediaani];Pikselöinti;[Värirasterointi;Kiteytä;Fasetti;Fragmentoi;Mezzotinto;Mosaiikki;Pistemaalaus];Muodosta;[Pilvet;Erottavat pilvet;Linssiheijastus];Terävöitys;[Terävöitä;Terävöitä reunoja;Terävöitä lisää;Älykäs terävöinti;Epäterävä maski];Tyylittele;[Hajota;Korkokuva;Työnnä ulos;Etsi reunat;Öljy Maali];Muut suotimet;[Mukautettu;Ylipäästö;Maksimi;Minimi;Siirtymä;Toista];[Määrittämätön alue;Aseta läpinäkyväksi;Toista reunan pikselit;Toisesta reunasta;Viimeinen suodatin;Esikatselu]];[Mallit;[Kirjasin suodatin;Avainsanat;Satunnaista];[Symboleilla;Valokuvalla];[Miniatyyri;Luettelo]]", + "[Datoteka;Uredi;Slika;Plast;Mapa;Izberi;Filter;Ogled;Okno;Jezik;Vpis;Odjava;Ustvari prevod;[Račun;Pogoji storitve;Nazaj;Opis;Prijavi napako;Nauči se];Več;Tema;Uporabi WebGL;[Photopea: napredni urejevalnik slik;Brezplačen spletni urejevalnik, ki podpira formate PSD, XCF, Sketch, XD in CDR.;Ustvarite novo sliko ali odprite obstoječe datoteke iz računalnika. Shranite svoje delo kot PSD (Datoteka - Shrani kot PSD) ali kot JPG / PNG / SVG (Datoteka - Izvozi kot).;Predlagajte nove funkcije v našem ali . Naš cilj je ustvariti .;Sponzorske povezave so odprte v novem oknu.;;]];[Odpri;Objavi;Shrani;Shrani kot PSD;Natisni;Odpri iz URL;Odpri iz računalnika;Poveži z Google Drive;Izvozi kot;Izvozi plasti;Skripta;Odpri & postavi;Zapri;Lokalni podatki;];[Korak naprej;Korak nazaj;Počisti;Zapolni;Preoblikuj;Zavrti;Obrni VAR0;Spremeni velikost VAR0;Razveljavi / Ponovi;Perspektiva;[Samodejno zmešaj;];Zbledi;];Prilagoditve;[Svetlost/Kontrast;Ravni;krivulje;Osvetljenost;Živahnost;Odtenek/Zasičenost;Uravnoteženost barv;Črno & Belo;Foto filter;Kanalski mešalnik;Barvni pregled;Invert;Posterizirati;Prag;Prelivanje;Izberi Barvo;[Samodejni odtenek;Samodejni kontrast;Samodejna barva];Nadomesti barvo];[Izreži;Kopiraj;Prilepi;Novo;Izbriši;Omogoči;Onemogoči;Kopiraj vse;Uporabi;Ponovno;Posodobi];[Podvoji plast;Nova nastavitvena plast;Rasterska Maska;Vektorska Maska;Dodaj (Pokaži vse);[Dodaj (Skrij vse);;;];[Obrezana maska;];Pretvori v Pametni Objekt;Rasteriziraj;Združi plasti;Združi plasti ▼;Združi plasti ▲;[Združi izbrane plasti;Združi plasti];Nova plast;Omogoči Rastersko Masko;Onemogoči Rastersko Masko;Omogoči Vektorsko Masko;Onemogoči Vektorsko Masko;Omogoči obrezano masko;Onemogoči obrezano masko;Nova mapa;Dodaj Rastersko Masko;Zbriši Rastersko Masko;Dodaj Vektorsko Masko;Zbriši Vektorsko Masko;Poveži Rastersko Masko;Razveži Rastersko Masko;Poveži Vektorsko Masko;Razveži Vektorsko Masko;Omogoči Efekte Plasti;Onemogoči Efekte Plasti;Zbriši plast;Sprememba prosojnosti plasti;Sprememba mešanja;Rasteriziraj Stil Plasti;Vrstni Red Plasti;[Ustvari pametni objekt;Osveži Pameti Objekt;Postavitev pametnega objekta;Vir (pametni objekt);];Sprememba imena;Sprememba barve;Uredi nastavitveno plast;Pretvori v obliko;Omogoči Masko Filtra;Onemogoči Masko Filtra;Omogoči Pametne Filtre;Onemogoči Pametne Filtre;Dodaj Masko Filtra;Zbriši Masko Filtra;Odstrani Pametne Filtre;[[Zapolni z Barvo;Zapolni z Prelivom;Zapolni z Vzorcem;Zavedanje vsebine];Nova zapolnitvena plast;Uredi zaplonitveno plast];Plast prek kopije;Maska Filtra;Izbriši Stil Plasti;Premakni Pametni Filter;Izbriši Pametni Filter;[Poveži Plasti;Razveži Plasti];Uredi;[V ospredje;Naprej;Nazaj;Pošlji Nazaj];[Plast je Zaklenjena;Zakleni Spreminjanje;];];[Vse;Odznači;Obrni;Uredi;Razširi;Stisni;Širina Roba;Premakni izbiro;Razpon Barv;Obroba;Transformiraj izbiro;Izboljšaj Robove;Popravi izbiro;];[Približaj;Oddalji;Vodila;Ravnila;Mreža;Pripni;Pripni na;Meje dokumenta;Točkovna Mreža;Krivulje;Pripni na piksle;[;];Pokaži];[Zgodovina;Plasti;Možnosti;Čopič;Znak;Odstavek;Informacije;Kompozicije plasti;Barve;Akcije;Histogram;Navigator;Konfiguracija orodja;];[Čopiči;Kloniranje;Izrezovanje;Brisanje;Elipsa;Kapalka;Prelivanje;Premik pogleda;Pisave;Laso;Magnetni Laso;Premikanje;Čarobna palica;Barvanje;Poligonski Laso;Pravokotnik;Prosta transformacija;Lupa;Zameglitev;Izostritev;Razlivanje;Orodje osvetlitve;Potemnitev;Razbarvaj;Čopič za popravljanje madežev;Čopič za popravke;Premik zaplate;Izberi krivulje;Izberi direktno;Svinčnik;Prosto pisalo;Oblika po Meri;Kvadrat;Elipsa;Večkotnik;Črta;Ravnilo;Hitra izbira;Risanje;Obreži s perspektivo;;;Zamenjaj barvo;Rdeče oči;;Odstrani ozadje;;;;];[Fotografiraj;Izberi barvo;Urejanje Obrobe;Velikost platna;Podvoji v ...;Urejanje Prelivanja;Stil Plasti;Nov Projekt;Shrani za Splet;Ukrivi;Velikost slike;Spremeni pike v črte;[Odreži;Izreži;Pokaži vse];Bljižnice tipkovnice;Dodaj vodila;[;]];[Gostota;Efekti;Svetlost;[Kontrast;Použiť kompatibilitu];Kanal;Osvetlitev;Odmakni;Gamma Nastavitve;Odtenek;Nasičenost;Svetlost;Obarvaj;Razpon;Živahnost;[Velikost;Interpolacija;Najbližja sosednja;Bilinearna];Naklon;Zaobljenost robov;Trdota;Razmak;[Način mešanja;Mešajte, ko];Velikost vzorca;Obroba;Stil;[Obrni;Relativno;Sidro];Toleranca;Sosednje;Zapolni;Uporabi Globalni Naklon;Razdalija;Razširi;Šum;Ne nariši sence;Tehnika;Smer;Globina;Zmehčaj;Način;Preliv;Moč;Poravnaj s Plastjo;Lokacija;Širina;Višina;Cilj;Tip;Ospredje;Ozadje;Po Meri;Ime;Ustvari;Format;Ohrani Razmerje Stranic;[Kvaliteta;Strani];Podvoji;Premakni;Pametni Filtri;Radij;Gostota;Porazdelitev;[Uniformna;Gaussova];Monokromatsko;Velikost Celice;Vzorec;Tok;Moč;Zaščiti Podrobnosti;Vrsta Polnila;Tekstura;Dodaj Šum;Rob;Izvor;Cilj;Kanali;Maska;Gostota;Poravnano;[Pot;Oblika;Pikice;Inče;Centimetrov;Milimetrov;Odstotkov];Oblike;Strani;Lastnosti;[Dolžina;Razmerje;Katerikoli;Vrsta mreže;Izometrično;Razmak mreže;Enote ravnila];Zmanjšaj Šum;Barve;Razdalje;Stopnja;Samodejno Izberi;Najdi;Definiraj novo;[Fotografija;Zaslon;Mobilna Naprava;Oglasi;Tisk];[Brezplačno;Zaklenjeno Razmerje;Zaklenjena Velikost];Pomoč;[Obstojne oblike;Uredi obstojne oblike;Enak premer];Nejasnost;[Večkotnik;Zvezda;Spirala;Kvadrat];[Polmer roba;Notranji polmer]];[Barva;[Brez;Rdeča;Oranžna;Rumena;Zelena;Modra;Vijolična;Siva;Bela;Prosojna;Črna;Cian;Magenta;Neutralno];Celotno;Absolutno;Ohrani svetlost];[Senca;Notranja Senca;Zunanji Sijaj;Notranji Sijaj;Zaobljenost in izbočenost;Prelij z Barvo;Prekrij z Prelivom;Prekrij z Vzorcem;Saten;Obrobi;Možnosti mešanja;];[Oblika konice;Dinamika konice;Raztresi;Dinamika barve;[Naključnost velikosti;Minimalni premer;Naključnost kota;Naključnost zaobljenosti;Minimalna zaobljenost];[Naključnost pozicije;Število;Naključnost števila];[Naključnost ospredja/ozadja;Naključnost odtenka;Naključnost nasičenosti;Naključnost svetlosti];[Izberi področje dupliciranja s pritiskom Alt (ali K) in klikom na sliko.;Označi Ospredje z Belo, Ozadje z Črno in neznano področje z Sivo barvo.;Plasti ni mogoče urejati.;Tekstovna Plast mora biti najprej rasterizirana.;Pametni Objekt mora biti najprej rasteriziran.;Izberi več plasti;Poravnaj plast;Najprej odpri dokument.;Najprej zapri trenutno okno;Samo trenutno orodje];[Snemaj;Nov nabor akcij;Nova akcija];[Pritiska stylusa kontrolira prosojnost;Pritiska stylusa kontrolira velikost];[Normalno;Raztopi;Potemni;Zmnoži;Vžgi barvo;Vžgi linearno;Temnejša barva;Posvetli;Presvetli;Izogni se barvam;Linearno se izogni;Svetlejša barva;Prekrij;Mehka svetloba;Trda svetloba;Živa svetloba;Linearna svetloba;Točkasta svetloba;Trda mešanica;Razlika;Izključitev;Odštej;Deli;Odtenek;Nasičenost;Barva;Svetlost;Spusti skozi]];[Razmak vrstic;Razpiranje;Premik črkovne črte;[Pretvori v naslovni tekst;Pretvori v glavni tekst]];[Vse Plasti;Trenutna Plast;Izbira;Trenutni in spodnji];[Zamenjaj;Združi;Odštej;Presek;Izključi;Združi];[[Linearno;Krožno;Kot;Zrcaljeno;Diamant;Vtis oblike];[Mehkeje;Natančno];[Zaobljenost zunaj;Zaobljenost znotraj;Izboči;Zaobljenost zamenjana;Zaobljenost obrobe;Širina poteze];[Mehko;Trdo izklesano;Mehko izklesano;Mehkost];[Gor;Dol];[Zunanji Rob;Centriraj;Znotraj;Iz sredine];[Sence;Srednji toni;Svetli toni];[Odstrani barve;Nasiči];[Malo;Srednje;Veliko];[Zakončeni;Rohy;Čiarky]];[Izberi objekt pod kazalcem;Kontrole transformacije;Piksel za piksel;Zapolni prostor;[Poravnaj leve robove;Poravnaj Horizontalno;Poravnaj desne robove;Poravnaj zgornje robove;Poravnaj Vertikalno;Poravnaj spodnje robove;Enaki razmaki]];[Vstavi v;Trenutni Projekt;Nov Projekt;Ločljivost;Dodano v trenutni projekt.;Nov projekt je pripravljen;Nimam dostopa do kamere.];[Orientacija;Ukrivi;Vodoravno popačenje;Navpično popačenje;[Horizontalno;Vertikalno;Vodoravno;Navpično];[Nič;Lok;Lok spodaj;Lok zgoraj;Obok;Izboklina;Školjka spodaj;Školjka zgoraj;Zastavica;Val;Riba;Dvigni;Ribje oko;Napihni;Stisni;Zasuk;Po Meri];[Pisava;ni na voljo;Se bo prikazalo s pomočjo;Nekaj dela ni shranjenega v;Želite res zapreti?];[Zamenjaj Barve;Privzeto: Črno - Belo]];[naložen;dodan;Premakni Vodilo;Izbriši Vodilo;Dodaj Vodilo;Nalagam;Naloži VAR0];[Galerija Filtrov;[[Utekočini;[Zmehčaj;Povrni;Zmehčaj;Zavrti Spiralno;Stisni;Razširi;Potisni Levo;Zamrzni;Odmrzni]];[Popravek Leče]];Zameglitev;[Povprečje;Zameglitev;Močna Zameglitev;Kvadratna Zameglitev;Nastavljiva Zameglitev;Zameglitev Leče;Smerna Zameglitev;Krožna zameglitev;Oblikovna Zameglitev;Pametna Zameglitev;Površinska Zameglitev];Popači;[Razporedi;Napihni v sredini;Polarne koordinate;Valovito;Nagni;Zaobli;Valovito];Šum;[Dodaj Šum;Odstrani prah;Prah in Praske;Mediana];Pikčasto;[Barvni raster;Kristaliziraj;Pikice;Razkoščkaj;Jedkanje;Mozaik;Pointilizem];Upodobi;[Oblaki;Drugačni oblaki;];Ostro;[Ostro;Ostri Robovi;Več Ostrine;Pametna Ostrina;Maska Ostrine];Stiliziraj;[Razprši;Izboči;Iztisni;Najdi Robove;Oljna slika];Drugo;[Po meri;Prepusti visoke frekvence;Maximum;Minimum;Zamakni;Ponovi];[Nedefinirano Področje;Nastavi Prosojno;Ponovi robne piksle;Ovij;Zadnji Filter;Predogled]];[Predloge;[Filter pisav;Ključne besede;Naključno];[S simboli;S sliko];[Sličice;Seznam]]", + "[Dosya;Düzenle;Görüntü;Katman;Klasör;Seç;Filtre;Görünüm;Pencere;Dil;Giriş Yap;Çıkış;Tercüme Et;[Hesap;Kullanım Şartları;Geri;Hakkında;Hata Bildir;Öğren];Daha Fazla;Tema;WebGL Kullan;[Photopea: Gelişmiş Resim Editörü;PSD, XCF, Sketch, XD ve CDR formatlarını destekleyen ücretsiz çevrimiçi editör.;Yeni bir resim oluşturun veya mevcut dosyaları bilgisayarınızdan açın. Çalışmanızı PSD (Dosya - PSD Olarak Kaydet) veya JPG / PNG / SVG (Dosya - Farklı Dışa Aktar) olarak kaydedin.; veya 'ta yeni özellikler önerin. Amacımız oluşturmaktır.;Sponsor bağlantıları yeni bir pencerede açılır.;Bu özellik bulunmamaktadır.;Photopea uygulamasını yükle]];[Aç;Online Yayınla;Kaydet;PSD Olarak Kaydet;Yazdır;URL Bağlantısını Aç;Bilgisayardan aç;Google Drive bağlan;Farklı Dışa Aktar;Katmanları Dışa Aktar;Kod;Aç ve Yerleştir;Kapat;Yerel Depolama;Dosya Bilgisi];[İleri Git;Geri Git;Temizle;Doldur;Dönüştür;Döndür;VAR0 Çevir;VAR0 Ölçek;Geri / İleri;Perspektif;[Otomatik Karıştır;Otomatik Hizala];Soldur;Görüntü Uygula];Ayarlama;[Parlaklık/Kontrast;Seviye;Eğriler;Poz;Titreşim;Ton/Doygunluk;Renk Dengesi;Siyah-Beyaz;Fotoğraf Filtresi;Kanal Değiştirici;Renk Arama;Ters Çevir;Poster;Eşik;Degrade Eşleme;Renk Seçici;[Otomatik Ton;Otomatik Kontrast;Otomatik Renk];Renkleri Değiştir];[Kes;Kopyala;Yapıştır;Yeni;Sil;Etkinleştir;Devre Dışı Bırak;Birleştirilmiş Kopyala;Uygula;Tekrar;Güncelle];[Katmanı Çoğalt;Yeni Ayar Katmanı;Raster Maskesi;Vektör Maskesi;Ekle (Tümünü Göster);[Ekle (Tümünü Gizle);Seçimi Göster;Seçimi Gizle;Saydamlıktan];[Kırpma Maskesi;Hızlı Maske Kipi];Akıllı Nesneye Dönüştür;Rasterleştir;Katmanları Grupla;Aşağıda Birleştir;Yukarıdakiyle Birleştir;[Katmanları Birleştir;Görüntüyü Düzleştir];Yeni Katman;Raster Maskesini Etkinleştir;Raster Maskesini Devre Dışı Bırak;Vektör Maskesini Etkinleştir;Vektör Maskesini Devre Dışı Bırak;Kırpma Maskesini Etkinleştir;Kırpma Maskesini Devre Dışı Bırak;Yeni Dosya;Raster Maskesi Ekle;Raster Maskesini Sil;Vektör Maskesi Ekle;Vektör Maskesini Sil;Raster Maskesini Bağla;Raster Maskesini Bağlantılarını Kaldır;Vektör Maskesini Bağla;Vektör Maskesinin Bağlantılarını Kaldır;Katman Efektlerini Etkinleştir;Katman Efektlerini Devre Dışı Bırak;Katmanı Sil;Katman Opaklığını Değiştir;Karıştırma değiştir;Katman Stilini Sıfırla;Katman sıralaması;[Akıllı Nesne Oluşturuluyor;Akıllı Nesne Güncelleniyor;Akıllı Nesneyi Yerleştirme;Kaynak (Akıllı Nesne);Yığın Modu];İsim Değiştir;Renk Değiştir;Ayarlama Katmanını Düzenle;Şekile Dönüştür;Filtre Maskesini Etkinleştir;Filtre Maskesini Devre Dışı Bırak;Akıllı Filtreleri Etkinleştir;Akıllı Filtreleri Devre Dışı Bırak;Filtre Maskesi Ekle;Filtre Maskesini Sil;Akıllı Filtreleri Temizle;[[Katı Renk Dolgu;Degrade Dolgu;Desen Dolgu;İçeriğe Uygun];Yeni Dolgu Katmanı;Dolgu Katmanını Değiştir];Önceki Katmanı Kopyala;Filtre Maskesi;Katman Stilini Sil;Akıllı Filtreyi taşıyın;Akıllı Filtreyi Sil;[Katmanları Bağla;Katmanları Bağlantılarını Kaldır];Düzenle;[Öne Getir;Ön Tarafa Al;Arkaya Al;Geriye Götür];[Katman kilitlendi;Kilit değiştir;Kilitle];Animasyon];[Tümü;Seçimi Kaldır;Çevir;Değiştir;Genişlet;Kontrast;Geçiş Yumuşatma;Seçimi taşıyın;Renk Aralığı;Çerçeve;Seçimi Dönüştür;Kenarları Yumuşat;Seçimi İyileştir;Sihirli Kesme Aracı];[Büyült;Kücült;Kılavuzlar;Kurallar;Izgara;Yakala;Şuraya Yakala;Belge Sınırları;Piksel Izgarası;Yollar;Piksele Yasla;[Dilimler;Dilim Seçenekleri];Göster];[Geçmiş;Katmanlar;Özellikleri;Fırça;Karakter;Paragraf;Özellikler;Katman kompozisyonları;Renk Örneklerini;Eylemler;Histogram;Gezgin;Araç Hazır Ayarları;Glifler];[Fırça Aracı;Klonlama Aracı;Kırpma;Silgi Aracı;Oval İşaretleme;Damlalık;Degrade Aracı;El Aracı;Yazı Aracı;Kement;Manyetik Kement;Taşıma Aracı;Sihirli Değnek;Boya Kovası;Çokgen Kement;Dikdörtgen İşaretleme;Serbest Dönüştürme;Yakınlaştırma;Bulanıklaştırma;Keskinleştirme;Leke;Soldurma;Yakma;Sünger;Nokta Düzeltme Fırçası;Düzeltme Fırçası;Yama;Yol Seçimi;Doğrudan Seçim;Kalem;Serbest Biçim Kalemi;Özel Şekil;Dikdörtgen;Elips;Çokgen Şekil;Çizgi;Cetvel;Hızlı Seçim;Kalem Aracı;Perspektif Kırp;Dilim;Dilim Seçimi;Renk Değiştirme;Kırmızı Göz aracı;Nesne Seçim;Arka Plan Silgisi;Kukla Çarpıtma;Görünümü Döndür;İçeriğe Duyarlı Ölçekleme;İçeriğe Uygun Taşıma];[Fotoğraf Çek;Damlalık;Kontur Editörü;Tuval Alanı;İçine Çoğalt;Degrade Düzenleyicisi;Katman Sitili;Yeni Proje;Web için Kaydet;Çarpıt;Görüntü Boyutu;Bitmap'i Vektörleştir;[Kes;Kırpma;Tümünü Göster];Klavye Kısayolları;Kılavuzları Ekle;[Kılavuzları Temizle;Katmandan Kılavuzlar]];[Opaklık;Efekt;Parlaklık;[Kontrast;Eskiyi Kullan];Kanal;Poz;Kaydırma;Gama Düzeltmesi;Ton;Doygunluk;Aydınlık;Renklendirme;Aralık;Titreşimlilik;[Boyut;Enterpolasyonu;En Yakın Komşu;Bilineer];Açı;Yuvarlaklık;Sertlik;Aralık;[Karıştırma modu;Bu Koşulda Karıştır];Örnek Boyutu;Kontur;Stil;[Ters Çevir;Göreli;Bağlantı];Tolerans;Bitişik;Dolgu;Genel Açıyı Kullan;Mesafe;Yayılmış;Gürültü;Gölge Düşür;Teknik;Yön;Derinlik;Yumuşatmak;Mod;Degrade;Ölçek;Katmanla Hizala;Pozisyon;Genişlik;Yükseklik;Destinasyon;Tip;Ön plan;Arkaplan;Özel;İsim;Oluştur;Format;En-boy oranını koru;[Kalite;Sayfalar];Çoğalt;Taşıyın;Akıllı Filtreler;Yarıçap;Tutar;Dağılım;[Genel;Gauss];Tek renkli;Hücre Boyutu;Desen;Akış;Sertlik;Ayrıntıyı Koru;Dolgu Türü;Doku;Seğirme;Kenar;Kaynak;Hedef;Kanallar;Maske;Yoğunluk;Hizalı;[Yol;Şekil;Piksel;İnç;Santimetre;Milimetre;Yüzde];Şekiller;Kenarlar;Özellikler;[Uzunluk;Oran;Hiç;Izgara tipi;Izometrik;Izgara aralığı;Cetvel Birimleri];Paraziti Azalt;Renkler;Mesafeler;Hızı;Oto-Seçim;Bulmak;Yeni Tanımla;[Fotoğraf;Ekran;Mobil;Reklam;Baskı];[Ücretsiz;Sabit Oran;Sabit Boyut];Yardım;[Canlı Şekli;Canlı Şekli Düzenle;Aynı Yarıçaplar];Belirsizlik;[Çokgen;Yıldız;Spiral;Kare];[Köşe yarıçap;İç yarıçap]];[Renk;[Yok;Kırmızı;Turuncu;Sarı;Yeşil;Mavi;Mor;Gri;Beyaz;Şeffaf;Siyah;Camgöbeği;Macenta;Nötr];Toplam;Mutlak;Parlaklığı Sakla'yı];[Alt Gölge;İç Gölge;Dış Işıma;İç Işıma;Eğim Ver ve Kabart;Renk Kaplama;Degrade Kaplama;Desen Kaplama;Saten;Kontur;Karıştırma seçenekleri;Pikselleri Seç];[Uç Biçimi;İpucu Dinamikleri;Saç;Renk Dinamikleri;[Boyut Değişimi;Minimum Çap;Açı Değişimi;Yuvarlaklık Değişimi;Minimum Yuvarlaklık];[Pozisyon Değişimi;Adet;Adet Değişimi];[Ön Plan/Arka Plan Değişimi;Ton Değişimi;Doygunluk Değişimi;Parlaklık Değişimi];[Alt (veya K) tuşunu basılı tutun ve görüntüyü tıklatarak kopyalama kaynağını seçin.;Beyazla Ön Plan, Siyahla Arka Plan ve Gri ile bilinmeyen alanı işaretleyin.;Bu katman düzenlenemez.;Önce Metin Katmanı rasterleştirilmelidir;Akıllı Nesne önce rasterleştirilmelidir;Birden fazla katman seç;Katmanı Düzleştir;Önce bir belge açın.;Önce geçerli pencereyi kapatın.;Sadece Geçerli Araç];[Kaydet;Yeni Eylem Kümesi;Yeni eylem];[Kalem basınç kontrolleri opaklık;Kalem basınç kontrolleri boyut];[Normal;Erime;Koyulaştır;Çoğalt;Renk Yanması;Doğrusal Yanma;Daha Koyu Renk;Açıklaştır;Ekran;Renk Soldurma;Doğrusal Soldurma;Daha Açık Renk;Kaplama;Yumuşak Işık;Sert Işık;Canlı Işık;Doğrusal Işık;Pin Işığı;Katı Karışım;Fark;Dışlama;Çıkar;Böl;Ton;Doygunluk;Renk;Parlaklığı;Pass Through]];[Satır Aralığı;İzleme;Satır Taban Çizgisi Kayması;[Nokta Metnine Dönüştür;Paragraf Metnine Dönüştür]];[Tüm Katmanlar;Geçerli Katman;Seçim;Geçerli ve Altı];[Değiştir;Birim;Çıkar;Kesiştir;Dışlamak;Birleştir];[[Doğrusal;Radyal;Açı;Yansımış;Baklava;Shape Burst];[Daha Yumuşak;Kesin];[Dış Eğim;İç Eğim;Kabartma;Yastık Kabartma;Kontur Kabartma;Kontur genişliği];[Düzgünleştir;Sert Keski;Yumuşak Keski;Düzgünlük];[Yukarı;Aşağı];[Dışına;Merkez;Içine;Merkezden];[Gölgeler;Orta tonlar;Vurgular];[Doygunluğu Azalt;Doygunlaştır];[Küçük;Orta;Büyük];[Uçlar;Köşeler;Çizgiler]];[İmlecin altındaki nesneyi seç;Dönüşüm kontrolleri;Piksel Piksele;Alana Sığdır;[Sol Kenarları Hizala;Yatay Merkez;Sağ Kenarları Hizala;Üst Kenarları Hizala;Dikey Merkez;Alt Kenarları Hizala;Eşit Boşluklar]];[İçine Yerleştir;Geçerli Proje;Yeni Proje;Çözünürlük;Geçerli projeye eklendi.;Yeni proje oluşturuldu.;Kamera erişimi reddedildi.];[Yönlendirme;Bük;Yatay deformasyon;Dikey deformasyon;[Yatay;Dikey;Yatay;Dikey];[Yok;Yay;Altı Yaylaştır;Üstü Yaylaştir;Kemer;Çıkıntı;Aşağıyı Toparla;Yukarıyı Toparla;Bayrak;Dalga;Balık;Yükseliş;Balık gözü;Şişirmek;Sıkmak;Girdap;Özel];[Yazı tipi;kullanılabilir değil;Kullanılarak oluşturulacak;Kaydedilmemiş çalışma var:;Gerçekten kapatmak istiyor musun?];[Renkleri Değiştir;Varsayılan: Beyaz ve Siyah]];[yüklendi;eklendi;Kılavuzu Taşıyın;Kılavuzu Sil;Kılavuzu Ekle;Yükleniyor;VAR0 Yükle];[Filtre Galerisi;[[Sıvılaştır;[Lekelemek;Imar etmek;Yumuşatır;Burgu;Küçültmek;Şişirmek;Sola İt;Dondurmak;Erimek]];[Mercek Düzeltmesi]];Bulanıklaştırma;[Ortalama;Bulanıklaştırma;Daha Fazla Bulanıklaştırma;Kutu Bulanıklaştırma;Gauss Bulanıklığı;Mercek Bulanıklığı;Hareket Bulanıklığı;Radyal Bulanıklık;Şekil Bulanıklığı;Akıllı Bulanıklaştırma;Yüzey Bulanıklaştırma];Çarpıtmak;[Ötele;Bükme;Polar Koordinatlar;Dalgacık;Yamult;Küreleştirme;Dalga];Gürültü;[Gürültü Ekle;Lekeleri Temizle;Toz ve Çizikler;Medyan];Pikselleştirme;[Renkli Yarım Tonlu;Kristalleştir;Yön;Parça;Bakır Klişe Baskı;Mozaik;Noktalaştır];Görüntü Oluşturma;[Bulutlar;Fark Bulutları;Mercek Parlaması];Keskinleştirme;[Keskinleştir;Kenarları Keskinleştir;Daha Keskinleştir;Akıllı Keskinleştirme;Keskinliği Azaltma Maskesi];Stilize;[Yaygın;Kabartma;Derinlik;Sınırları Bul;Yağlı Boya];Diğer;[Özel;Yüksek Geçiş;Maksimum;Minimum;Kaydırma;Tekrarla];[Tanımsız Alan;Şeffaf Olarak Ayarla;Kenar Piksellerini Tekrarla;Etrafına Sar;Son Filtre;Önizleme]];[Şablonlar;[Yazı Tipi Filtresi;Anahtar kelimeler;Karıştırmak];[Sembolleri ile;Fotoğraf ile];[Minik Resimler;Liste]]", + "[Plik;Edycja;Obraz;Warstwa;Folder;Wybierz;Filtr;Widok;Okno;Język;Zaloguj się;Wyloguj się;Utwórz tłumaczenie;[Konto;Warunki korzystania;Powrót;O programie;Zgłoś błąd;Ucz się];Więcej;Motyw;Użyj WebGL;[Photopea: zaawansowany edytor obrazów;Darmowy edytor online obsługujący formaty PSD, XCF, Sketch, XD i CDR.;Utwórz nowy obraz lub otwórz istniejące pliki z komputera. Zapisz swoją pracę jako PSD (Plik - Zapisz jako PSD) lub jako JPG / PNG / SVG (Plik - Eksportuj jako).;Zaproponuj nowe funkcje w naszym lub . Naszym celem jest stworzenie .;Linki sponsora otwierają się w nowym oknie.;Ta funkcja jest nie dostępna.;Zainstaluj Photopea]];[Otwórz;Publikuj online;Zapisz;Zapisz jako PSD;Drukuj;Otwórz z adresu URL;Otwórz z komputera;Połącz z Google Drive;Eksportuj jako;Eksportuj warstwy;Skrypt;Otwórz i umieść;Zamknij;Pamięć lokalna;Informacje o pliku];[Krok do przodu;Krok do tyłu;Wyczyść;Wypełnij;Przekształć;Obróć;Odbij VAR0;Skaluj VAR0;Cofnij / Ponów;Perspektywa;[Auto-mieszanie;Automatycznie wyrównaj];Stonuj;Zastosuj obraz];Dostosowania;[Jasność/Kontrast;Poziomy;Krzywe;Ekspozycja;Jaskrawość;Barwa/Nasycenie;Balans kolorów;Czarny i Biały;Filtr fotograficzny;Mikser kanałów;Wyszukiwanie kolorem;Odwróć;Posteryzacja;Próg;Mapa gradientu;Kolor selektywny;[Auto-tony;Auto-kontrast;Auto-kolor];Zamień kolor];[Wytnij;Kopiuj;Wklej;Nowy;Usuń;Włącz;Wyłącz;Kopiuj scalone;Zastosuj;Ponownie;Uaktualnij];[Duplikuj warstwę;Nowa warstwa dopasowania;Maska rastrowa;Maska wektorowa;Dodaj (pokaż wszystko);[Dodaj (ukryj wszystko);Odkryj zaznaczenie;Ukryj zaznaczenie;Z przezroczystości];[Maska przycinająca;Tryb szybkiej maski];Konwertuj na obiekt inteligentny;Rasteryzuj;Grupuj warstwy;Scal w dół;Scal w górę;[Scal warstwy;Spłaszcz obraz];Nowa warstwa;Włącz maskę rastrową;Wyłącz maskę rastrową;Włącz maskę wektorową;Wyłącz maskę wektorową;Włącz maskę przycinającą;Wyłącz maskę przycinającą;Nowy folder;Dodaj maskę rastrową;Usuń maskę rastrową;Dodaj maskę wektorową;Usuń maskę wektorową;Połącz maskę rastrową;Rozłącz maskę rastrową;Połącz wektorową maskę;Odłącz maskę wektorową;Włącz efekty warstwy;Wyłącz efekty warstwy;Usuń warstwę;Zmiana krycia warstwy;Zmiana mieszania;Rasteryzuj styl warstwy;Kolejność warstwy;[Tworzenie obiektu inteligentnego;Aktualizacja obiektu inteligentnego;Umieszczenie obiektu inteligentnego;Źródło (obiekt inteligentny);Tryb nakładania];Zmiana nazwy;Zmiana koloru;Edycja warstwy dopasowania;Konwertuj na kształt;Włącz maskę filtru;Wyłącz maskę filtru;Włącz inteligentne filtry;Wyłącz inteligentne filtry;Dodaj maskę filtra;Usuń maskę filtra;Wyczyść filtry inteligentne;[[Wypełnienie kolorem;Wypełnienie gradientem;Wypełnienie wzorem;Uwzględnianie zawartości];Nowa warstwa wypełnienia;Modyfikuj warstwę wypełnienia];Kopiuj poprzez warstwę;Maska filtru;Usuń Styl Warstwy;Przesuń Filtr Inteligentny;Usuń Filtr Inteligentny;[Połącz warstwy;Odłącz warstwy];Ułóż;[Przenieś na wierzch;Przenieś wyżej;Przenieś niżej;Przenieś na spód];[Warstwa jest zablokowana;Zablokuj zmianę;Zablokuj];Animacja];[Wszystko;Odznacz;Odwróć;Zmień;Rozszerz;Zawęź;Wtapianie;Przesuń Zaznaczenie;Zakres kolorów;Granica;Przekształć zaznaczenie;Popraw krawędź;Naprawa zaznaczenia;];[Przybliż;Oddal;Linie pomocnicze;Linijki;Siatka;Przyciągnij;Przyciągnij do;Obszar dokumentu;Siatka pikseli;Ścieżki;Przyciągnij do pikseli;[Plasterki;Opcje plasterków];Pokaż];[Historia;Warstwy;Właściwości;Pędzel;Znak;Akapit;Informacje;Kompozycje warstw;Próbki;Operacje;Histogram;Nawigator;Ustawienia domyślne narzędzi;Glify];[Narzędzia pędzla;Narzędzia klonowania;Kadrowanie;Narzędzie usuwania;Zaznaczenie elipsy;Pipeta;Gradient;Narzędzie Rączka;Tekst;Lasso;Lasso magnetyczne;Przesunięcie;Różdżka;Wiadro z farbą;Lasso wielokątne;Prostokąt;Przekształć Swobodnie;Narzędzie Powiększenie;Rozmycie;Wyostrzenie;Smużenie;Rozjaśnianie;Ściemnianie;Gąbka;Punktowy pędzel korygujący;Pędzel korygujący;Łatka;Wybierz ścieżkę;Zaznaczenie bezpośrednie;Pióro;Pióro dowolne;Niestandardowy Kształt;Prostokąt;Elipsa;Kształt Parametryczny;Linia;Linijka;Szybki wybór;Ołówek;Kadrowanie perspektywiczne;Narzędzie Odcięcie;Narzędzie Zaznaczanie odcięcia;Zastępowanie kolorów;Narzędzie Czerwone oczy;Zaznaczanie obiektów;Usuwanie Tła;Wypaczenie marionetkowe;Obracanie widoku;Skala z uwzględnieniem zawartości;Przesuwanie z uwzględnieniem zawartości];[Zrób zdjęcie;Wybieranie koloru;Edytor konturów;Rozmiar obszaru roboczego;Duplikuj;Edytor gradientów;Styl warstwy;Nowy projekt;Zapisz do sieci;Wypaczenie;Rozmiar obrazu;Wektoryzuj Bitmapę;[Przytnij;Kadrowanie;Odkryjajas];Skróty klawiszowe;Dodaj linie pomocnicze;[Usuń linie pomocnicze;Warstwa na ścieżki]];[Krycie;Efekty;Jasność;[Kontrast;Użyj dziedziczenia];Kanał;Ekspozycja;Przesunięcie;Korekcja gammy;Barwa;Nasycenie;Jasność;Koloryzuj;Zasięg;Jaskrawość;[Rozmiar;Interpolacji;Najbliższy sąsiad;Dwuliniowa];Kąt;Zaokrąglenie;Twardość;Odstęp;[Opcja mieszania;Mieszaj gdy];Wielkość próbki;Kontura;Styl;[Cofnij;Względna;Zakotwiczenie];Tolerancja;Ciągłe;Wypełnij;Użyj globalnego kąta;Odległość;Rozpiętość;Szum;Warstwa odcina cień;Technika;Kierunek;Głębia;Zmiękczyć;Tryb;Gradient;Skala;Dopasuj do warstwy;Pozycja;Szerokość;Wysokość;Cel;Typ;Pierwszy plan;Tło;Dostosuj;Nazwa;Utwórz;Format;Zachowaj proporcje;[Jakość;Strony];Powiel;Przesuń;Sprytne filtry;Promień;Miara;Dystrybucja;[Jednolity;Gaussa];Monochromatyczne;Rozmiar komórki;Wzór;Przepływ;Siła;Chroń Szczegóły;Typ Wypełnienia;Tekstura;Drganie;Krawędź;Źródło;Cel;Kanały;Maska;Gęstość;Wyrównane;[Ścieżka;Kształt;Piksele;Cale;Centymetry;Milimetry;Procent];Kształty;Strony;Preferencje;[Długość;Proporcje;Dowolny;Typ siatki;Izometryczny;Rozstaw siatki;Jednostki miarki];Zmniejsz szum;Kolory;Odległości;Częstotliwość;Auto zaznaczenie;Znajdź;Zdefiniuj nowe;[Zdjęcie;Ekran;Mobilne;Reklamy;Druk];[Dowolny;Stały współczynnik;Stały rozmiar];Pomoc;[Aktywny kształt;Edycja aktywny kształt;Identyczny promień];Tolerancja;[Wielokąt;Gwiazda;Spirala;Obszar];[Promień zaokrąglenia;Promień wewnętrzny]];[Kolor;[Brak;Czerwony;Pomarańczowy;Żołty;Zielony;Niebieski;Fioletowy;Szary;Biały;Przezroczysty;Czarny;Niebieskozielony;Karmazynowy;Neutralny];Total;Absolutny;Utrzymaj jasność];[Cień zewnętrzny;Cień wewnętrzny;Zewnętrzna poświata;Wewnętrzna poświata;Faza i płaskorzeźba;Nakładka koloru;Nakładka gradientu;Nakładka wzorem;Satyna;Obrys;Opcje mieszania;Zaznacz Piksele];[Kształt końcówki;Dynamika końcówki;Rozproszenie;Dynamika koloru;[Rozmiar Drgań;Minimalna Średnica;Kąt Drgań;Okrągłość Drgań;Minimalna okrągłość];[Pozycja Drgań;Ilość;Ilość Drgań];[Pierwszy Plan/Tło Drgań;Barwa Drgań;Nasycenie drgań;Jasność drgań];[Wybierz źródło powielenia przytrzymując Alt (lub K) i klikając na obraz.;Zaznacz pierwszy plan na biały, tło czarnym i inny obszar za pomocą szarego.;Warstwa nie jest edytowalna.;Warstwa tekstowa musi najpierw zostać zrasteryzowana;Obiekt inteligentny musi najpierw zostać zrasteryzowany;Wybierz wiele warstw;Prostuj warstwę;Najpierw otwórz dokument.;Zamknij bieżące okno jako pierwsze;Tylko bieżące narzędzie];[Nagrywaj;Nowy zestaw operacji;Nowa operacja];[Nacisk pisaka kontroluje kryciem;Nacisk pisaka kontroluje rozmiar];[Zwykły;Rozpuszczanie;Ciemniej;Mnożenie;Ściemnianie;Ściemnianie liniowe;Ciemniejszy kolor;Jaśniej;Ekran;Rozjaśnianie;Rozjaśnianie liniowe;Jaśniejszy kolor;Nakładka;Łagodne światło;Ostre światło;Światło jaskrawe;Światło liniowe;Światło punktowe;Mieszanie twarde;Różnica;Wykluczenie;Odejmowanie;Dzielenie;Barwa;Nasycenie;Kolor;Jasność;Przejście bezpośrednie]];[Interlinia;Spacjowanie;Przesunięcie linii bazowej;[Konwertuj na tekst punktowy;Konwertuj na tekst akapitowy]];[Wszystkie warstwy;Bieżąca warstwa;Wybór;Bieżąca i niższa];[Zamień;Połączenie;Różnica;Przecięcie;XOR;Scal];[[Liniowe;Promieniowe;Kąt;Odbicie;Diament;Rozerwij Kształt];[Minkštesnis;Dokładny];[Faza zewnętrzna;Faza wewnętrzna;Płaskorzeźba;Żłobienie;Płaskorzeźba obrysu;Grubości obrysu];[Gładki;Dłuto twarde;Dłuto miękkie;Gładkość];[W górę;W dół];[Na zewnątrz;W środku;Wewnątrz;Ze środka];[Cienie;Półcienie;Podświetlenia];[Zmniejsz nasycenie;Zwiększ nasycenie];[Mały;Średni;Duży];[Zakończenia;Narożniki;Kreski]];[Wybierz obiekt pod kursorem;Kontrolki przekształcenia;Pixel do Pixela;Dopasuj do powierzchni;[Wyrównaj Lewe Krawędzie;Wyrównaj w poziomie;Wyrównaj Prawe Krawędzie;Wyrównaj Górne Krawędzie;Wyrównaj w pionie;Wyrównaj Dolne Krawędzie;Równe przerwy]];[Umieść w;Bieżący projekt;Nowy projekt;Rozdzielczość;Dodano do bieżącego projektu.;Utworzono nowy projekt.;Odmówiono dostępu do aparatu.];[Orientacja;Pochylenie;Zniekształcenie poziome;Odkształcenie pionowe;[Poziomy;Pionowy;w poziomie;w pionie];[Brak;Łuk;Łuk Dolny;Łuk Górny;Łuk;Wybrzuszenie;Muszla w dół;Muszla w górę;Flaga;Fala;Ryba;Wzrost;Rybie oko;Nadmuchać;Wyciskać;Wykręcać;Niestandardowy];[Czcionka;nie jest dostępny;Zostanie wyrenderowane za pomocą;Jest tu niezapisana praca.;Czy aby na pewno chcesz to zamknąć?];[Zamień Kolory;Domyślnie: Biały i Czarny]];[załadowane;dodane;Przesuń linię pomocniczą;Usuń linię pomocniczą;Dodaj linię pomocniczą;Ładowanie;Załaduj VAR0];[Galeria filtrów;[[Transformacja;[Smużyć;Zrekonstruować;Wygładzać;Wir;Kurczyć;Wiać;Naciśnij w lewo;Zamroź;Odmroź]];[Korekcja soczewki]];Rozmycie;[Uśredniony;Rozmycie;Rozmyj bardziej;Rozmycie Pudełkowe;Rozmycie Gaussowskie;Rozmycie Optyczne;Rozmycie Ruchu;Rozmycie Radialne;Rozmycie Kształtem;Inteligentne Rozmycie;Rozmycie Powierzchni];Przekształć;[Przemieszczenie;Ściśnięcie;Współrzędne biegunowe;Falowanie;Ścinanie;Sferyzacja;Fale];Szum;[Dodaj Szum;Odplamkuj;Kurz i zarysowania;Mediana];Pikselizuj;[Półton;Krystalizacja;Aspekt;Fragmentuj;Mezzotinta;Mozaika;Pointylizacja];Renderuj;[Chmury;Chmury różnicowe;Flara obiektywu];Wyostrz;[Wyostrz;Wyostrz Krawędzie;Wyostrz Bardziej;Inteligentne Wyostrzenie;Wyostrz Krawędzie];Stylizacja;[Rozpraszanie;Płaskorzeźba;Wytłaczanie;Znajdź krawędzie;Farba olejna];Inne;[Dostosuj;Filtr Górnoprzepustowy;Maksimum;Minimum;Przesunięcie;Powtarzać];[Niezdefiniowany obszar;Ustaw jako przezroczyste;Powtórz Piksele Brzegowe;Owiń w okół;Ostatni filtr;Podgląd]];[Szablony;[Filtr czcionek;Słowa kluczowe;Losowanie];[Z symbolami;Ze zdjęciem];[Miniaturki;Lista]]", + "[Indonesia;Ubah;Gambar;Lapisan;Folder;Pilih;Penyaring;Tampilan;Jendela;Bahasa;Masuk;Keluar;Buat terjemahan;[Akun;Syarat Pelayanan;Kembali;Mengenai;Laporkan bug;Belajar];Lainnya;Tema;Gunakan WebGL;[Photopea: editor gambar tingkat lanjut;Editor online gratis yang mendukung format PSD, XCF, Sketch, XD dan CDR.;Buat gambar baru atau membuka file yang ada dari komputer Anda. Simpan pekerjaan Anda sebagai PSD (Berkas - Simpan sebagai PSD) atau sebagai JPG / PNG / SVG (Berkas - Ekspor sebagai).;Sarankan fitur baru di atau kami. Tujuan kami adalah untuk menciptakan .;Tautan sponsor terbuka di jendela baru.;Tampilan ini tidak tersedia;]];[Buka;Terbitkan online;Simpan;Simpan sebagai PSD;Cetak;Buka dari URL;Buka Dari Komputer;Sambungkan Dengan Google Drive;Ekspor sebagai;Ekspor lapisan;Skrip;Buka & Letakkan;Tutup;Penyimpanan Lokal;];[Langkah berikutnya;Langkah sebelumnya;Bersihkan;Isi;Ubah;Putar;Balik VAR0;Skala VAR0;Batalkan / Kembalikan;Perspektif;[Blend Otomatis;];Luntur;];Pengaturan;[Kecerahan/Kontras;Level;Kurva;Eksposur;Vibransi;Hue/Saturasi;Keseimbangan Warna;Hitam & Putih;Filter Foto;Channel Mixer;pencarian warna;Inversi;Posterize;Ambang;Peta Gradient;Selektif Warna;[Nada Otomatis;Kontras Otomatis;Warna Otomatis];Ganti Warna];[Potong;Salin;Tempel;Baru;Hapus;ada;Nonaktifkan;Salin Digabung;Terapkan;Ulangi aksi;Perbaharui];[Lapisan duplikat;Lapisan Penyesuaian Baru;Mask Raster;Masker Vektor;Tambah (Lihat Semua);[Tambah (Sembunyikan Semua);auswahl;Sembunyikan Pilihan;aus];[Clipping Mask;];Konversiere ke Smart Object;Rasterize;gruppenebene;zusammenführe;Gabung;[Gabung Lapisan;Ratakan Gambar];Lapisan Baru;Aktifkan Mask Raster;Nonaktifkan Mask Raster;Aktifkan Vector Mask;Nonaktifkan Vector Mask;Aktifkan Clipping Mask;Nonaktifkan Clipping Mask;Folder Baru;Tambahkan Mask Raster;Hapus Mask Raster;Tambahkan Vector Mask;Hapus Vector Mask;Link Masker Raster;Batalkan tautan Masker Raster;Link Vector Mask;Hapus Mask Vector;Aktifkan Efek Lapisan;Nonaktifkan Efek Lapisan;Hapus Lapisan;Perubahan Kegelapan Lapisan;Perubahan Campuran;Rasterisasi Lapisan;Urutan Lapisan;[Membuat Obyek Pintar;Memperbaharui Obyek Pintar;Menempatkan Obyek Pintar;Sumber (Smart Object);Mode Tumpuk];Ubah Nama;Ubah Warna;Ubah Penyesuaian Lapisan;Konversi ke bentuk;Hidupkan Filter Mask;Matikan Filter Mask;Nyalakan Filter Pintar;Matikan Filter Pintar;Tambah Filter Mask;Hapus Filter Mask;Bersihkan Filter Pintar;[[Isi Warna Dasar;Isi Gradasi;Isi Motif;Kesadaran Konten];Lapisan Isi Baru;Atur Lapisan Isi];Lapisan Baru Dengan Disalin;Filter Mask;Hapus Lapisan Gaya;Pindahkan Filter Pintar;Hapus Filter Pintar;[Hubungkan Lapisan;Putushubungkan Antar Lapisan];Atur;[Taruh di Depan;Taruh di atasnya;Taruh di belakang;Taruh di belakangnya];[Lapisan ini terkunci.;Kunci perubahan;];];[Semua;Lepaskan pemilihan;Balikan;Ubah;Tambahkan;Kontrak;Kehalusan pinggiran;Pindahkan pemilih;Rentang Warna;Garis tepi;Pilih untuk perpindahan;Haluskan Tepi;Pemilih perbaikan gambar;];[Memperbesar;Memperkecil;Garis bantu;Penggaris;Garis Bantu Persegi;Lekatkan;Lekatkan ke;Batas dokumen;Kisi Piksel;Garis pemotong;;[;];Tampilkan];[Riwayat;Lapisan;Properti;Kuas;Karakter;Paragraf;Info;Komposisikan Lapisan;;;Histogram;;;];[Alat kuas;Alat peniru;Pemotong;Penghapus;Pemilih Bundar;Ambil sample warna;Gradasikan;Geserkan Layar;Isi kata-kata;Garis Pemilih Bebas;;Pindahkan;Pemilih otomatis;Isi seluruh area;Garis pemilih bersiku;Kotak pemilih;;Besarkan layar;Buramkan;Pertajamkan;;;;;Perbaiki titik hitam;Kuas Perbaikan;;;Pilih langsung;Pulpen;Pulpen bebas;Bentuk Kustom;Persegi;Lingkaran/Bundar;Bentuk Parametrik;Garis;Penggaris;Pemilihan Cepat;Pensil;;;;;;;;;;;];[Ambil gambar;Ambil contoh warna;Pengedit Kontur;Ukuran Kanvas;Duplikatkan ke...;Pengedit Gradasi;Gaya Lapisan;Proyek Baru;Simpan untuk web;Lengkungkan;Ukuran Gambar;Vektorkan Bitmap;[Pangkas;;];Pintasan Keyboard;;[;]];[Tingkat transparansi;Efek;Kecerahan;[Kontras;];;Tingkat Terang;;Perbaiki Gamma;Hue;Tingkat Warna;Tingkat pencahayaan;Warnai;Rentang;Tingkat Semarak Warna;[Ukuran;Interpolasi;Bertetangga;Bilinier];Sudut;Tingkat kebulatan;Tingkat kekerasan;Jarak;[Modus Penyatuan;];Ukuran Sampel;Kontur;Gaya;[Balikan;;];Tingkat toleransi;Dekatkan;Isi;Gunakan Angle Global;Jarak;Penyebaran;Pecahkan;;Teknik;Arah;Kedalaman;Kehalusan;Modus;Gradasi;Ukuran;Sejajar dengan lapisan;Posisi;Panjang;Lebar;Destinasi;Tipe;Latar depan;Latar belakang;Kustom;Nama;Buat;Format;Jaga Aspek Rasio;[Kualitas;Halaman];Duplikat;Pindahkan;Filter Pintar;Radius;Jumlah;Distribusi;[Seragam;Gaussian];Monokromatik;Ukuran Sel;Corak;Alur;Kuatkan;Jaga Detail;Tipe isi;Tekstur;Jitter;Sudut;Sumber;Target;;;;;[Alur;Bentuk;Piksel;;Sentimeter;Milimeter;];;Sisi;Preferensi;[Panjang;Rasio;Semua;;Isometrik;;];Kurangi pecah gambar;Warna;Jarak;Tingkat;Pilih otomatis;Cari;;[Foto;Tampilan;Telepon;Iklan;];[;Rasio tetap;Ukuran tetap];Bantuan;[Bentuk Langsung;Ubah Bentuk Langsung;];;[Poligon;Bintang;Spiral;Persegi];[;]];[Warna;[Kosong;Merah;Jingga;Kuning;Hijau;Biru;Ungu;Abu-Abu;Putih;Transparansi;Hitam;Cyan;Magenta;];;;];[Taruh Bayangan;Bayangan di dalam;Bersinar di luar;Bersinar di dalam;Sudut dan Timbul;Lapisi Warna;Lapisi Gradasi;Lapisi Corak;Satin;Garis tepi;Pilihan Campuran;];[Titik berbentuk;Titik dinamis;Hamburkan;Warna Dinamis;[Ukuran Jitter;Diameter Minimal;Sudut Jitter;Tingkat kebulatan Jitter;Tingkat minimal kebulatan];[;Jumlah;Jumlah Jitter];[Latar Depan/Belakang Jitter;Warna Jitter;Tingkat warna jitter;Tingkat kecerahan jitter];[Pilih sampel contoh dengan tekan Alt (atau K) terus klik di gambar;Tandai Latar Depan pake Putih, Latar Depan pake Item terus Area lainnya pake abu-abu;Lapisannya gak bisa diedit;Lapisan teks harus di-raterize dulu;Smart Object-nya harus di-rasterize dulu;Pilih beberapa lapisan;;;;];[;;];[;];[;;;;;;;;Layar;;;;;;;;;;;;;;;;;;;]];[Arahkan;Lacak;Tukar garis dasar;[;]];[Semua Lapisan;Lapisan saat ini;Pilihan;Ini dan bawahnya];[Ganti;Satukan;Kurangi;Potong;Kecualikan;];[[Garis lurus;Bundar;Sudut;Cerminkan;Berlian;Bentuk Semburan];[Lebih halus;Presisi];[Sudut luar;Sudut dalam;Timbul;Timbulan halus;Timbulan keras;];[Halus;Pahatan Keras;Pahatan Halus;];[Atas;Bawah];[Luar;Tengah;Dalam;Dari tengah];[Bayangan;Cahaya Umumnya;Sorotan Cahaya];[Pudarkan warna;Warnai];[Kecil;Sedang;Besar];[;;]];[Pilih objek di bawah kursor;Kontrol transformasi;Piksel ke Piksel;Sesuaikan dengan Area;[Sejajarkan dengan Sudut Kiri;Tengah secara horizontal;Sejajarkan dengan Sudut Kanan;Sejajarkan dengan Sudut Atas;Tengah secara vertikal;Sejajarkan dengan Sudut Bawah;Samakan jarak]];[Taruh ke dalam...;Proyek Sekarang;Proyek Baru;Resolusi;Udah ditambahin ke proyek sekarang;Proyek baru udah dibuat;Akses ke kamera ditolak];[Orientasi;Bengkokan;Distorsi Horizontal;Distorsi Vertikal;[Horizontal;Vertikal;secara horizontal;secara vertikal];[Gak ada;Bentuk Kurva;Bentuk kurva bawah;Bentuk kurva atas;Melengkung;Menonjol;Bentuk Kerang Bawah;Bentuk Kerang Atas;Bentuk Bendera;Bergelombang;Bentuk Ikan;Timbul;Bentuk Mata Ikan;Tonjolkan;Remaskan;Pelintirkan;Bebas];[Huruf;gak tersedia;Bakal dirender pake;Ada file yang belum tersimpan di;Apa kamu yakin akan menutupnya?];[Tukar warna;Default: Putih dan Hitam]];[udah dimuat;udah ditambahin;Geser Patokan;Buang Patokan;Tambah Patokan;Memuat;Muat VAR0];[Galeri Filter;[[Cairkan;[Nodai;Buat Ulang;Haluskan;Putarkan;Ciutkan;Gembungkan;Tekan ke kiri;Bekukan;Batalkan beku]];[Koreksi lensa]];Buram;[Rata-rata;Buram;Buram Banget;Buram bentuk Kotak;Buram Gaussian;Buram Lensa;Buram Gerakan;Buram bentuk bundar;Buram berbentuk sesuatu;Buram Pintar;Buram permukaan];Distorsi;[Perpindahan;Cubit;Koordinat Polar;Beriak;Pangkas;Bentuk menjadi Bundar/Bola;Gelombang];Pecah Gambar;[Pecahkan Gambar;Hapus debu dan goresan;Tambahkan debu dan goresan;Median];Ubah jadi Pecahan Piksel;[Ubah jadi Halftone;Ubah jadi kristal;Segi;Potongan;Mezzotint;Mosaik;Titik-Titik];Render;[Berawan;Awan-awan aneh;];Pertajam;[Pertajam;Pertajam tepi;Tajam Banget;Pertajaman Pintar;Batalin Mask Pertajaman];Ubah-ubah;[Baurkan;Timbulkan;Tarik-Keluarkan;Cari Sudut;];Lainnya;[Terserah;;Maksimum;Minimum;;Ulang];[;Atur jadi Transparan;;;Filter sebelumnya;Pratinjau]];[Templat;[;Kata kunci;Acak];[Dengan simbol;Dengan foto];[Thumbnails;Daftar]]", + "[文件;编辑;图像;图层;文件夹;选择;滤镜;视图;窗口;语言;登录;注销;创建翻译;[账户;服务条款;返回;关于;反馈错误;学习];更多;主题;使用 WebGL;[Photopea: 高级图片编辑器;支持 PSD, XCF, Sketch, XD 和 CDR 格式的免费在线编辑器。;创建新图像或打开已有文件。保存你的作品为 PSD 格式(文件 - 另存为 PSD)或 JPG / PNG / SVG 格式(文件 - 导出为)。;在我们的 上提出功能需求。我们的目标是打造 <最强大而易用的图片编辑器>;赞助商链接在新窗口中打开。;此功能不可使用。;安装 Photopea]];[打开;在线发布;保存;另存为 PSD;打印;从 URL 打开;从电脑打开;连接 Google Drive;导出为;导出图层;脚本;打开并放置;关闭;本地存储;Hustle Fresh];[重做;撤销;清除;填充;变形;旋转;VAR0翻转;VAR0缩放;撤销/重做;透视;[自动混合;自动对齐];渐隐;应用图像];调整;[亮度 / 对比度;色阶;曲线;曝光度;自然饱和度;色调/饱和度;色彩平衡;黑白;图片滤镜;通道混合器;颜色查找;反向;色调分离;阈值;渐变映射;可选颜色;[自动色调;自动对比度;自动颜色];微软雅黑];[剪切;复制;粘贴;新建;删除;启用;禁用;复制合并;应用;再次;更新];[复制图层;新调整图层;光栅遮罩;矢量蒙版;添加(显示全部);[添加(隐藏全部);显示选区;隐藏选区;从透明区域];[剪切蒙版;快速遮罩模式];转化为智能对象;栅格化;图层组;向下合并;向上合并;[合并图层;拼合图像];新建图层;开启光栅遮罩;禁用光栅遮罩;开启矢量蒙版;禁用矢量蒙版;开启剪切蒙版;禁用剪切蒙版;新建文件夹;添加光栅蒙版;删除光栅蒙版;添加矢量蒙版;删除矢量蒙版;链接光栅蒙版;取消光栅遮罩链接;连接矢量蒙版;取消矢量蒙版链接;启用图层效果;禁用图层效果;删除图层;图层透明度更改;混合更改;栅格化图层样式;图层排序;[创建智能对象;更新智能对象;放置智能对象;来源(智能对象);堆叠模式];重命名;更改颜色;编辑调整图层;转换为形状;开启滤镜遮罩;禁用滤镜遮罩;开启智能滤镜;禁用智能滤镜;添加滤镜遮罩;删除滤镜遮罩;清除智能滤镜;[[填充;渐变填充;图案填充;内容感知];新建图层;修改填充层];图层(通过复制);滤镜蒙版;删除图层样式;移动智能滤镜;删除智能滤镜;[连接图层;取消图层连接];排列;[置于顶层;前移一层;后移一层;置于底层];[图层已锁定;锁定修改;锁定];动画];[全部;取消选择;反选;修改;扩展;收缩;羽化;移动选区;色彩范围;边框;转换所选项;调整边缘;恢复选区;];[放大;缩小;参考线;标尺;网格;快照;对齐到;页面边界;像素网格;路径;像素对齐;[切片;切片选项];显示];[历史记录;图层;属性;笔刷;字符;段落;信息;图层组合;取样;动作;立方图;导航器;工具预设;字形];[笔刷工具;克隆工具;剪切工具;橡皮工具;椭圆选区;吸管;渐变工具;手型工具;文字工具;套索;磁性套索;移动;魔棒;填充;多边形套索;矩形;自由变换;放大镜工具;模糊;锐化工具;涂抹工具;减淡工具;加深工具;海绵工具;污点修复笔刷工具;修复画笔工具;修补工具;路径选择;直接选择;钢笔;自由钢笔;自定形状工具;矩形;椭圆形;形状图形;线;尺子;快速选中;铅笔工具;透视裁剪工具;切片;切片选择;颜色更换;红眼工具;选取目标;背景擦;布偶弯曲;旋转视图;内容识别比例;内容识别移动];[拍照;拾色器;等高线编辑器;画布大小;复制到...;渐变编辑器;图层样式;新建项目;另存为网页;弯曲;图像大小;向量位图;[裁切;裁剪;显示全部];键盘快捷键;添加参考线;[清除参考线;图层引导]];[透明度;效果;亮度;[对比度;使用旧版];通道;曝光度;补偿;伽玛校正;色调;饱和度;明度;着色;范围;抖动;[大小;插值;邻近;两次线性];角度;圆度;硬度;间距;[混合模式;混合颜色带];样本大小;轮廓;样式;[反向;相对;定位];容差;连续;填充;全局视图;距离;扩展;杂色;移除阴影;技巧;方向;深度;软化;样式;渐变;缩放;图层对齐;位置;宽;高度;目标;类型;前景色;背景色;自定义;名字;创建;格式;保持长宽比;[质量;网页];复制;更多;智能滤镜;圆角;数量;分布;[统一;高斯];单色;栅格大小;样式;流;强度;保护细节;填色类型;贴图;抖动;边缘;源;目标;通道;蒙版;密度;对齐;[路径;形状;像素;英寸;厘米;毫米;百分比];图形;边;首选项;[长度;比例;任何;网格类型;等距;网格间距;标尺单位];降低噪点;色彩;距离;比例;自动选择;查找;定义新的;[照片;屏幕;移动;广告;打印];[释放;固定比例;固定大小];帮助;[实时形状;编辑实时形状;相同半径];模糊;[多边形;星状;螺旋;正方形];[角半径;内半径]];[颜色;[无;红;橙色;黄色;绿色;蓝色;紫色;灰色;白色;透明;黑;青色;品红;中性色];总量;绝对;保持亮度];[阴影;内阴影;外发光;内发光;斜面和浮雕;颜色叠加;渐变叠加;图案叠加;光泽;描边;混合模式;像素选择];[笔尖形状;提示动态;散射;动态颜色;[大小调整;最小直径;角度调整;圆形调整;最小圆度];[位置调整;数量;分布调整];[前景/背景调整;色调调整;饱和度;亮度调整];[通过按住Alt(或K)选择克隆源,并单击图像。;用白色标记前景,用黑色标记背景,用灰色标记未知区域。;无法编辑图层。;必须对文本图层进行栅格化;必须对智能对象进行栅格化;选择多个图层;拉直图层;首先打开文档。;首先关闭当前窗口。;仅限当前工具];[记录;新动作集;新动作];[绘图板压力控制不透明度;绘图板压力控制大小];[正常;溶解;变暗;正片叠底;颜色加深;线性加深;浅色;变亮;滤色;颜色减淡;线性减淡;深色;叠加;柔光;强光;亮光;线性光;点光;实色混合;差值;排除;减去;划分;色相;饱和度;颜色;明度;穿透]];[行距;字距;基线偏移;[转换为点文本;转换为段落文本]];[所有图层;当前图层;选择;当前和下方图层];[替换;合并;分离;交叉;排除;合并];[[线性;径向;角;倒影;菱形;形状脱离];[柔和;精确];[外斜角;内斜角;浮雕;枕状浮雕;边缘浮雕;描边宽];[平滑;雕刻清晰;雕刻柔和;平滑度];[上;下];[外部;中心;内部;从中心];[阴影;中间调;高光];[去色;饱和];[小;中;大];[端点;角;短划线]];[自动选择;变换工具;像素到像素;按屏幕大小缩放;[左对齐;水平居中;右对齐;顶部对齐;垂直居中;底部对齐;等间距]];[应用图像;当前项目;新建项目;分辨率;添加到当前项目中。;新项目已创建;摄像机的访问被拒绝。];[定位;弯曲变形;水平变形;垂直变形;[水平;垂直;水平;垂直];[无;弧;下弧形;向上弧度;弓形;凸起;下张;上张;标记;波形;搜寻;上升;鱼眼;膨胀;挤压;扭曲;自定义];[字体;不可用;将被渲染使用;有未保存的工作;你真的想关闭吗?];[替换颜色;默认值:白色和黑色]];[已加载;添加;移动参考线;删除参考线;添加参考线;加载;加载 VAR0];[滤镜组;[[液化;[涂抹;重建;平滑;旋转;压缩;放大;向左推;锁定;解锁]];[镜头校正]];模糊;[平均;模糊;高斯模糊;方形模糊;高斯模糊;镜头模糊;动态模糊;圆形模糊;形状模糊;智能模糊;表面模糊];变形;[替换;挤压;极坐标;波纹;斜变;球面化;波浪];噪点;[添加杂色;祛斑;蒙尘与刮痕;中值];像素化;[彩色半调;晶格化;彩块化;碎片;铜板雕刻;马赛克;点状化];渲染;[云彩;差值分层云彩;镜头光晕];锐化;[锐化;锐化边缘;进一步锐化;智能锐化;USM 锐化];风格化;[扩散;浮雕;挤压;查找边缘;油画];其它;[自定义;高反差保留;最大值;最小值;抵消;重复];[未定义区域;设为透明;重复像素边缘;环绕;上次滤镜;预览]];[模板;[字体过滤;关键词;随机];[带符号;带图片];[缩览图;列表]]", + "[檔案;編輯;影像;圖層;資料夾;選取;濾鏡;檢視;視窗;語言;登入;登出;建立翻譯;[帳戶;服務條款;返回;關於;回報問題;學習];更多;主題;使用 WebGL;[Photopea: 進階影像編輯器;支援 PSD, XCF, Sketch, XD 和 CDR 格式的免費在線編輯器。;創建新圖像或打開已有文件。保存工作為 PSD 格式(文件 - 另存為 PSD)或 JPG / PNG / SVG 格式(文件 - 轉存為)。;在我們的 上提供新功能建議 。我們的目標是打造 <最強大而易用的圖片編輯器>。;贊助商鏈接將在新窗口打開。;此功能不可使用。;安裝 Photopea]];[開啟;線上發佈;存檔;存檔為 PSD;列印;從網址打開;從電腦開啟;連接Google Drive;轉存為;輸出圖層;腳本;置入;關閉;內部存儲;檔案信息];[下一步;上一步;清空;填滿;變形;旋轉;VAR0翻轉;VAR0比例尺;返回 / 向前;透視;[自動合成;自動對齊];淡化;套用影像];調整;[亮度 / 對比;色階;曲線;曝光;鮮艷;色相 / 飽和度;色彩平衡;黑白;圖片濾鏡;通道混合器;色彩查詢;倒置;色調分離;閾值;漸層地圖;色彩選擇;[自動色調;自動對比;自動色彩];取代顏色];[剪下;複製;貼上;新增;刪除;開啟;關閉;複製合併;應用;再一次;更新];[複製圖層;新調整圖層;光柵遮罩;向量遮罩;新增(顯示全部);[新增(隱藏全部);顯現選取範圍;隱藏選取範圍;來自透明選取範圍];[剪裁遮罩;快速遮色片模式];轉換成智慧物件;柵格化;圖層群組;向下合併;向上合併;[合併圖層;影像平面化];新圖層;開啟光柵遮罩;關閉光柵遮罩;開啟向量遮罩;關閉光柵遮罩;開啟剪裁遮罩;關閉剪裁遮罩;新資料夾;新增光柵遮罩;移除光柵遮罩;新增向量遮罩;移除向量遮罩;連結光柵遮罩;移除光柵遮罩連結;聯結向量圖遮色片;取消鏈接向量圖遮色片;啟用圖層效果;關閉圖層效果;刪除圖層;更改圖層不透明度;混合變更;點陣化圖層樣式;圖層順序;[建立智慧型物件;更新智慧型物件;建立智慧型物件;來源 (智能物件);堆疊模式];更改命名;更改顏色;編輯調整圖層;轉換成圖形;啟用過濾遮罩;關閉過濾遮罩;啟用智慧過濾;關閉智慧過濾;新增過濾遮罩;刪除過濾遮罩;清除智慧過濾;[[實色填滿;漸層填滿;網格填滿;內容意識];新建填充圖層;變更填充圖層];圖層(通過複製);濾鏡遮罩;刪除圖層樣式;移動智慧遮罩;刪除智慧遮罩;[超鏈接圖層;取消超鏈接圖層];排列;[移上一層;移下一層;下移一層;移到下層];[圖層已被鎖定;鎖定變更;鎖定];動畫];[全部;取消選擇;反選;修改;擴展;對比;羽化;移動選擇項目;顏色範圍;邊框;變形選區;調整邊緣;恢復選擇;];[放大;縮小;參考線;尺規;格線;對齊;對齊到;頁面邊界;像素格點;路徑;對齊像素;[切片;切片選項];顯示];[歷史紀錄;圖層;屬性;刷子;符號;段落;資訊;圖層構圖;顏色板;動作;直方圖;導覽器;工具預設集;字符];[筆刷工具;複製工具;裁剪工具;橡皮擦工具;橢圓選取;滴管;漸層;手繪工具;文字工具;套索選取;磁性套索選取;移動工具;魔術棒;油漆桶工具;多邊形套索選取;矩形選取;自由變換;縮放工具;模糊工具;銳利化工具;指尖工具;加亮工具;加深工具;海綿工具;污點修復筆刷工具;修復筆刷工具;修補工具;路徑選擇;直接選擇;鋼筆;自由鋼筆;自訂形狀工具;矩形;橢圓形;形狀圖形;線;尺標;快速選擇;鉛筆工具;透視修剪;切片;切片選取;顏色取代工具;紅眼;物件選擇;背景像皮擦;布偶彎曲;旋轉檢視;內容感知比率;內容感知移動];[快照;色彩選擇;輪廓編輯器;畫布尺寸;複製到...;漸變編輯器;圖層樣式;新增專案;另存網頁;曲線;圖片大小;向量像素化;[修剪;裁剪;顯示全部];熱鍵;添加參考線;[清除參考線;從圖層新增參考線]];[透明度;效果;亮度;[對比;使用舊版];色版;曝光度;偏移;伽馬校正;色相;飽和度;亮度;著色;範圍;抖動;[大小;內插;最接近像素;縱橫增值法];角度;圓度;硬度;間距;[混合模式;混合範圍];樣本大小;輪廓;風格;[顛倒;相對;錨點];容差;連續;填滿;使用全局視角;距離;擴散;雜訊;移除陰影;技巧;方向;深度;柔化;模式;漸層;比例尺;圖層對齊;位置;寬;高;目的地;類型;前景色;背景;自定義;名稱;建立;格式;保持長寬比例;[質量;網頁];複製;移動;智能濾鏡;半徑;數量;分佈;[統一;高斯];單色;格大小;圖樣;流;強度;保護細節;填色類型;紋理;抖動;邊緣;來源;目標;通道;遮罩;密度;對齊;[路徑;形狀;像素;英寸;公分;毫米;百分比];圖形;邊;選項;[長;比例;任意;格框類型;等角;格框間隙;尺單位];移除雜訊;色彩;距離;比例;自動選擇;搜尋;定義新的;[照片;螢幕;手機;廣告;版畫];[自由;鎖定比例;鎖定大小];幫助;[即時形狀;編輯即時形狀;相同半徑];模糊度;[多邊形;星;螺旋;方形];[角半徑;內半徑]];[顏色;[無;紅;橘;黃;綠;藍;紫;灰;白;透明;黑;青色;品紅;中色];總計;絕對;保持亮度];[陰影;內陰影;外發光;內發光;斜面與浮雕;顏色疊加;漸變疊加;紋理疊加;光澤;筆畫;混合模式;選擇畫素];[筆尖形狀;提示動態;散射;動態顏色;[大小調整;最小直徑;角度調整;圓度調整;最小圓度];[位置調整;數量;數量調整];[前景/後景調整;色相調整;飽和度調整;亮度調整];[按住Alt鍵(或K鍵)並點擊在影像上以選取複製來源;使用白色標註前景,黑色為背景,灰色為未知區域;圖層無法編輯。;必須先對文字圖層進行光柵化;必須先對智能對象進行光柵化;選中多個圖層;拉直層;首先打開文檔。;首先關閉當前窗口。;僅限目前工具];[記錄;新動作集;新動作];[數位板壓力控制不透明度;數位板壓力控制大小];[正常;溶解;變暗;色彩增值;加深顏色;線性加深;顏色變暗;變亮;濾色;加亮顏色;線性加亮;顏色變亮;覆蓋;柔光;實光;強烈光源;線性光源;小光源;實色疊印混合;差異化;排除;減去;分割;色相;飽和度;顏色;明度;穿過]];[行距;字距;基線偏移;[轉換為錨點文字;轉換為段落文字]];[全部圖層;目前圖層;選擇;目前及底下的圖層];[取代;合併;分離;相交;排除;合併];[[線性;徑向;角度;反映;鑽石;形狀爆裂];[柔和;精確];[外斜角;內斜角;浮雕;枕狀浮雕;邊緣浮雕;線條寬度];[平滑;雕刻清晰;雕刻柔和;平滑度];[上;下];[外部;中央;內部;從中央];[陰影;中間調;亮部];[去飽和度;飽和度];[小;中;大];[端點;轉折角;短橫線]];[選擇游標下的物件;變形調控;像素到像素;按屏幕大小縮放;[左邊緣對齊;水平置中;右邊緣對齊;頂端對齊;垂直置中;底端對齊;間隔相等]];[應用圖像;目前專案;新方案;分辨度;加入本方案;已經建立一個新的專案;對攝像頭的操作被拒絕];[定位;彎曲變形;水平變形;垂直變形;[水平;垂直;水平;垂直];[無;弧;下弧形;上弧形;弓形;凸起;下張;上張;旗標;波浪;魚;上升;魚眼;膨脹;擠壓;扭曲;自定義];[字體;不可用;渲染(將使用);有未保存工作在;確定要關閉?];[交換顏色;預設: 白與黑]];[加載;加入;移動參考線;刪除參考線;加入參考線;載入中;載入 VAR0];[濾鏡庫;[[液化;[塗抹;重建工具;平滑;旋轉扭曲;縮攏工具;膨脹工具;向左移動;凍結;取消凍結]];[鏡頭矯正]];模糊;[平均;模糊;更多模糊;方形模糊;高斯模糊;鏡頭模糊;行動模糊;圓形模糊;形狀模糊;智能模糊;表面模糊];變形;[更換;掐;極座標;漣漪效果;修剪;球體化;波狀];雜訊;[加入雜訊;斑點;蒙塵與刮痕;中值];像素化;[彩色半調;水晶化;彩塊化;碎片;銅板雕刻;馬賽克;點狀化];渲染;[雲彩;差值分層雲彩;反光效果];銳利化;[銳利化;邊緣銳化;更多銳化;智慧銳利化;USM 蒙板];風格化;[擴散;浮雕;擠壓;查找邊緣;油畫];其他;[自定義;高反差保留;最大值;最小值;偏移;重覆];[未定義區域;設為透明;重複像素邊緣;環繞;最後一個濾鏡;預覽]];[模板;[字體過濾;關鍵字;隨機];[帶符號;帶圖片];[型縮圖;清單]]", + "[ไฟล์;แก้ไข;รูปภาพ;เลเยอร์;โฟลเดอร์;เลือก;ตัวกรอง;มุมมอง;หน้าต่าง;ภาษา;เข้าสู่ระบบ;ออกจากระบบ;สร้างการแปล;[บัญชี;เงื่อนไขการใช้งาน;ย้อนกลับ;เกี่ยวกับ;รายงานความผิดพลาด;เรียนรู้];เพิ่มเติม;ธีม;ใช้ WebGL;[Photopea: โปรแกรมแก้ไขภาพขั้นสูง;โปรแกรมแก้ไขออนไลน์ฟรีที่รองรับรูปแบบ PSD, XCF, Sketch, XD และ CDR;สร้างภาพใหม่หรือเปิดไฟล์ที่มีอยู่จากคอมพิวเตอร์ของคุณ บันทึกงานของคุณเป็น PSD (ไฟล์ - บันทึกเป็น PSD) หรือเป็น JPG / PNG / SVG (ไฟล์ - ส่งออกเป็น);แนะนำคุณสมบัติใหม่ที่ หรือ ของเรา เป้าหมายของเราคือการสร้าง <โปรแกรมแก้ไขภาพที่ทันสมัยที่สุดและราคาไม่แพง>;ลิงก์จากผู้สนับสนุนเปิดในหน้าต่างใหม่;ฟีเจอร์นี้ไม่พร้อมใช้งาน;]];[เปิด;เผยแพร่ทางออนไลน์;บันทึก;บันทึกเป็น PSD;พิมพ์;เปิดจาก URL;เปิดจากคอมพิวเตอร์;เชื่อมต่อกับ Google Drive;ส่งออกเป็น;ส่งออกเลเยอร์;สคริปท์;เปิดและวาง;ปิด;ไฟล์ข้อมูล ท้องถิ่น;];[ขั้นตอนต่อไป;ขั้นตอนก่อนหน้า;ล้าง;ใส่;แปลง;หมุน;พลิกVAR0;สเกลVAR0;ยกเลิก / ทำซ้ำ;มุมมอง;[;การจัดตำแหน่งอัตโนมัติ];;];การปรับ;[ความสว่าง/ความเปรียบต่าง;ระดับ;เส้นโค้ง;การเปิดรับ;ความสั่นไหว;สีสัน/ความอิ่มตัว;ความสมดุลของสี;ขาวดำ;ตัวกรองภาพถ่าย;เครื่องผสมสัญญาณ;การค้นหาสี;กลับหัวกลับหาง;โปสเตอร์;ธรณีประตู;แผนที่แบบไล่ระดับสี;สีที่เลือก;[ปรับโทนอัตโนมัติ;ปรับความเปรียบต่างอัตโนมัติ;ปรับสีอัตโนมัติ];แทนที่สี];[ตัด;คัดลอก;แปะ;ใหม่;ลบ;เปิดใช้งาน;ปิดใช้งาน;สำเนาควบรวม;อะไร;อีกที;อัปเดต];[เลเยอร์ซ้ำ;เลเยอร์การปรับใหม่;หน้ากากแรสเตอร์;หน้ากากเวกเตอร์;เพิ่ม (แสดงทั้งหมด);[เพิ่ม (ซ่อนทั้งหมด);แสดงการเลือก;ซ่อนการเลือก;];[หน้ากากตัด;];แปลงเป็นวัตถุอัจฉริยะ;;เลเยอร์กลุ่ม;ผสานลง;ผสานขึ้น;[รวมเลเยอร์;];เลเยอร์ใหม่;เปิดใช้งานหน้ากากแรสเตอร์;ปิดใช้งานหน้ากากแรสเตอร์;เปิดใช้งานหน้ากากเวกเตอร์;ปิดใช้งานหน้ากากเวกเตอร์;เปิดใช้งานหน้ากากตัด;ปิดใช้งานหน้ากากตัด;โฟลเดอร์ใหม่;เพิ่มหน้ากากแรสเตอร์;ลบหน้ากากแรสเตอร์;เพิ่มหน้ากากเวกเตอร์;ลบหน้ากากเวกเตอร์;การลิงก์หน้ากากแรสเตอร์;ยกเลิกการเชื่อมโยงหน้ากากแรสเตอร์;การลิงก์หน้ากากเวกเตอร์;ยกเลิกการเชื่อมโยงหน้ากากเวกเตอร์;เปิดใช้งานผลลัพท์เลเยอร์;ปิดใช้งานเลเยอร์เอฟเฟ็กต์;ลบเลเยอร์;เปลี่ยนความทึบของเลเยอร์;การผสมผสานการเปลี่ยนแปลง;;ลำดับชั้น;[การสร้างวัตถุอัจฉริยะ;กำลังอัปเดตวัตถุอัจฉริยะ;การวางวัตถุอัจฉริยะ;แหล่ง (วัตถุอัจฉริยะ);];เปลี่ยนชื่อ;เปลี่ยนสี;แก้ไขเลเยอร์การปรับแต่ง;แปลงเป็นรูปทรง;เปิดใช้งานตัวกรองหน้ากาก;ปิดใช้งานหน้ากากกรอง;เปิดใช้งานตัวกรองอัจฉริยะ;ปิดใช้งานตัวกรองอัจฉริยะ;เพิ่มหน้ากากกรอง;ลบหน้ากากกรอง;ล้างตัวกรองอัจฉริยะ;[[สีทึบเติม;ไล่ระดับเติม;ลวดลายเติม;];เลเยอร์การเติมใหม่;แก้ไขเลเยอร์การเติม];เลเยอร์ผ่านทางสำเนา;กรองมาสก์;ลบรูปแบบเลเยอร์;ย้ายตัวกรองอัจฉริยะ;ลบตัวกรองอัจฉริยะ;[การลิงก์เลเยอร์;ยกเลิกการเชื่อมโยงเลเยอร์];จัดเรียง;[ข้างหน้า;นำไปไว้ข้างหน้า;ส่งกลับไปข้างหลัง;ส่งไปหลังสุด];[เลเยอร์ถูกล็อค;แก้ล็อค;];];[ทั้งหมด;ยกเลิกการเลือก;ผกผัน;แก้ไข;ขยายตัว;สัญญา;ขน;ย้ายการเลือก;ช่วงสี;ชายแดน;เปลี่ยนการเลือก;ปรับขอบ;;];[ขยายเข้า;ซูมออก;เส้นบอกแนว;ผู้ปกครอง;ตาราง;ตะครุบ;จับไปที่;ขอบเขตเอกสาร;ตารางพิกเซล;พาธ;;[;];];[ประวัติ;เลเยอร์;คุณสมบัติ;แปรง;รูปลักษณ์;ย่อหน้า;ข้อมูล;รวมเลเยอร์;ตัวอย่าง;แมโคร;ฮิสโทแกรม;ภาพรวม;;];[เครื่องแปรง;เครื่องสำเนา;เครื่องครอบตัด;เครื่องมือยางลบ;เลือกแบบวงรี;ที่หยอดตา;เครื่องไล่เฉด;เครื่องใช้มือ;เครื่องพิมพ์อักษร;เลือกแบบบ่วง;เลือกแบบบ่วงยึด;เครื่องย้าย;คฑาวิเศษ;เครื่องเทสี;เลือกแบบบ่วงเหลี่ยม;เลือกแบบสี่เหลี่ยม;แปลงร่างอิสระ;เครื่องขยาย;เครื่องทำภาพมัว;เครื่องทำภาพชัด;เครื่องเกลี่ยสี;เครื่องกลบสี;เครื่องเผา;เครื่องทำฟอง;เครื่องมือแปรงซ่อมเป็นจุด;เครื่องมือแปรงซ่อม;เครื่องมือซ่อม;เลือกพาธ;เลือกตรงๆ;ปากกา;ปากกาอิสระ;รูปร่างตามใจ;สีเหลี่ยม;วงรี;รูปร่างสมมาตร;เส้น;ไม้บรรทัด;เลือกอย่างเร็ว;เครื่องมือดินสอ;;;;;;เลือกวัตถุ;;;;;];[ถ่ายรูป;เลือกสี;ตัวแก้เส้นขอบ;ขนาดผ้าวาด;สำเนาไปที่ ...;ตัวแก้การไล่สี;ลักษณะเลเยอร์;โครงการใหม่;จัดเก็บสำหรับใช้กับเว็บ;วาร์ป;ขนาดภาพ;;[ตัดขอบ;;เปิดเผยทั้งหมด];แป้นลัด;เพิ่มเส้นบอกแนว;[;]];[ความทึบแสง;ลูกเล่น;ความสว่าง;[ความเปรียบต่าง;ใช้อัลกอริทึมเก่า];ช่อง;ช่องรับแสง;ระยะ;การแก้แกมม่า;สีสัน;ความอิ่มตัว;ความสว่าง;เล่นสี;ช่วง;ความสด;[ขนาด;;;];ุมุม;ความมน;ความแข็ง;ระยะว่าง;[รูปแบบการกลืน;];ขนาดพื้นฐาน;เส้นแสดงรูปร่าง;สไตล์;[ย้อนกลับ;;];บริษัท;ติดกัน;เติม;ใช้มุมทั่วโลก;ระยะ;ขยาย;ตัวกรองเสียงรบกวน;นำเงาออก;เทคนิค;ทิศทาง;ความลึก;อ่อนลง;โหมด;ไล่ระดับ;สเกล;จัดเรียงตามเลเยอร์;ตำแหน่ง;กว้าง;สูง;เป้าหมาย;ประเภท;เบื้องหน้า;พื้นหลัง;กำหนดเอง;ชื่อ;สร้าง;รูปแบบ;รักษาอัตราส่วน;[คุณภาพ;หน้า];ทำซ้ำ;ย้าย;ตัวกรองอัจฉริยะ;รัศมี;จำนวน;การกระจาย;[รูปแบบ;เกาส์เชียน];สีเดียว;ขนาดโมเสค;ลวดลาย;;เรี่ยวแรง;ป้องกันรายละเอียด;ประเภทเติม;พื้นผิว;จีมิน;มุม;แหล่ง;เป้าหมาย;;หน้ากาก;;จัดเรียง;[เส้นทาง;รูปร่าง;พิกเซล;นิ้ว;เซนติเมตร;มิลลิเมตร;เปอร์เซ็นต์];รูปร่าง;;การตั้งค่า;[ความยาว;อัตราส่วน;อื่นๆ;ประเภทตาราง;;;หน่วยไม้บรรทัด];ลดเสียงรบกวน;สี;ระยะทาง;;เลือกอัตโนมัติ;ค้นหา;จำกัดความใหม่;[รูปภาพ;จอแสดงผล;มือถือ;โฆษณา;พิมพ์];[ฟรี;;กำหนดขนาดคงที่];ช่วยเหลือ;[;;];;[รูปหลายเหลี่ยม;ดาว;เกลียว;];[รัศมีมุม;รัศมีภายใน]];[สี;[ไม่มีสี;สีแดง;สีส้ม;สีเหลือง;สีเขียว;สีน้ำเงิน;สีม่วง;สีเทา;สีขาว;ความโปร่งใส;สีดำ;สีไซอัน;สีม่วงแดง;];;สัมบูรณ์;];[วางเงา;เงาภายใน;ส่องแสงด้านนอก;ส่องแสงด้านใน;;;;;;ขอบ;;];[รูปร่างปลาย;รูปร่างไดนามิก;;สีไดนามิค;[;;;;];[;รวม;];[;;;];[เลือกแหล่งโคลนโดยการกด Alt (หรือ K) และคลิกที่ภาพ;;ไม่สามารถแก้ไขเลเยอร์ได้;;;เลือกหลายเลเยอร์;;เปิดเอกสารก่อน;ปิดหน้าต่างปัจจุบันก่อน;];[เรกคอร์ด;ใหม่ชุดแมโคร;ใหม่แมโคร];[;];[Normal;Dissolve;Darken;Multiply;Color Burn;Linear Burn;Darker Color;Lighten;Screen;Color Dodge;Linear Dodge;Lighter Color;Overlay;Soft Light;Hard Light;Vivid Light;Linear Light;Pin Light;Hard Mix;Difference;Exclusion;Subtract;Divide;Hue;Saturation;Color;Luminosity;Pass Through]];[;;;[;]];[เลเยอร์ทั้งหมด;เลเยอร์ปัจจุบัน;การเลือก;];[แทนที่;;;;;];[[เส้นตรง;รัศมี;มุม;;;];[;];[;;;;;];[;;;];[;];[ด้านนอก;ตรงกลาง;ด้านใน;];[;;];[;];[เล็ก;กลาง;ใหญ่];[;;]];[;;พิกเซลเป็นพิกเซล;พอดีกับพื้นที่;[จัดแนวขอบด้านซ้าย;กึ่งกลางแนวนอน;จัดแนวขอบด้านขวา;จัดแนวขอบด้านบน;กึ่งกลางแนวตั้ง;จัดแนวขอบด้านล่าง;]];[;โปรเจคปัจจุบัน;โปรเจคใหม่;ความละเอียด;เพิ่มในโปรเจคปัจจุบันแล้ว;สร้างโปรเจคใหม่ เรียบร้อยแล้ว;การเข้าถึงกล้องถ่ายรูป ถูกปฏิเสธ];[;บิดงอ;ความผิดเพี้ยนแนวนอน;ความผิดเพี้ยนแนวตั้ง;[แนวนอน;แนวตั้ง;แนวนอน;แนวตั้ง];[ไม่มี;;;;;;;;;;;;;;;;กำหนดเอง];[แบบอักษร;ไม่สามารถใช้งานได้;จะแสดงผลโดยใช้;มีงานที่ไม่ได้บันทึกใน;จริงๆคุณต้องการที่จะปิดมันได้หรือไม่];[สลับสี;ค่าเริ่มต้น: สีขาว และ สีดำ]];[โหลดแล้ว;เพิ่มแล้ว;ย้ายเส้นบอกแนว;ลบเส้นบอกแนว;เพิ่มคเส้นบอกแนว;กำลังโหลด;โหลด VAR0];[แกลลอรี่กรอง;[[;[;;;;;;;แข็ง;เลิกแข็ง]];[การแก้ไขเลนส์]];ตัวกรองเบลอ;[ค่าเฉลี่ย;เบลอ;เบลอเพิ่มเติม;เบลอสนาม;เกาส์เบลอ;เลนส์เบลอ;โมชั่นเบลอ;;;;];ตัวกรองบิดเบือน;[;;พิกัดเชิงขั้ว;;ตัด;;คลื่น];ตัวกรองเสียงรบกวน;[เพิ่มเสียงรบกวน;ลบเสียงรบกวน;ฝุ่นและรอยขีดข่วน;มัธยฐาน];ตัวกรอง Pixelate;[;;;ส่วน;การแกะแม่พิมพ์วิธีเมดโสะทินท;;];ตัวกรอง Render;[เมฆ;;];ตัวกรอง Sharpen;[;;;;];ตัวกรอง Stylize;[กระจาย;;;;];อื่นๆ;[กำหนดเอง;;สูงสุด;ขั้นต่ำ;ออฟเซ็ต;ทำซ้ำ];[;ตั้งเป็นโปร่งใส;;;ตัวกรองสุดท้าย;ดูตัวอย่าง]];[แม่แบบ;[ตัวกรองแบบอักษร;คำสำคัญ;สุ่ม];[พร้อมสัญลักษณ์;พร้อมรูปถ่าย];[รูปขนาดย่อ;รายการ]]", + "[ファイル;編集;イメージ;レイヤー;フォルダー;選択;フィルター;表示;ウインドウ;言語;ログイン;ログアウト;翻訳する;[アカウント;利用規約;戻る;アプリについて;バグを報告;ラーニング];その他;テーマ;WebGLを使う;[Photopea:高度な画像エディタ;PSD、XCF、Sketch、XD、CDR フォーマットをサポートする無料のオンラインエディタ。;新しい画像を作成するか、コンピュータから既存のファイルを開きます。作業内容を PSD(ファイル/PSDとして保存)または JPG、PNG、SVG(ファイル/としてエクスポート)として保存します。;またはで新しい機能を提案してください。私たちの目標は、<最も先進的で手頃な価格のフォトエディタ>を作成することです。;広告リンクは新しいウィンドウで開きます。;この機能は利用できません。;]];[開く;公開する;保存;PSDとして保存;印刷;URLから開く;コンピュータから開く;Google Driveに接続;別名で保存;レイヤーをエクスポート;スクリプト;オープン&プレース;閉じる;ローカルストレージ;];[やり直す;元に戻す;消去;塗りつぶし;変形;回転;VAR0に反転;VAR0拡大・縮小;元に戻す / やり直し;展望;[オートブレンド;自動整列];フェード;画像操作];調整;[明るさ / コントラスト;レベル;曲線;露出;自然な彩度;色相/彩度;カラーバランス;黒と白;フォトフィルター;チャンネルミキサー;色検索;反転;ポスタライズ;しきい値;グラデーションマップ;選択色;[オートトーン;オートコントラスト;オートカラー];色を交換];[切り取り;コピー;ペースト;新規;削除;有効化;無効化;コピー結合;適用;もう一度;更新];[レイヤーを複製;新しい調整レイヤー;ラスター マスク;ベクター マスク;追加(全てを表示);[追加(全てを隠す);選択範囲外をマスク;選択範囲をマスク;透明部分をマスク];[クリッピングマスク;クイックマスクモー];スマートオブジェクトへの変換;ラスタライズ;レイヤーのグループ化;下のレイヤーと統合;上のレイヤーと統合;[レイヤーを結合;画像を統合];新規レイヤー;ラスターマスクを有効化する;ラスターマスクを無効化;ベクターマスクを有効化;ベクターマスクを無効化;クリッピングマスクを有効化;クリッピングマスクを無効化;新規フォルダ;ラスターマスクを追加;ラスターマスクを削除;ベクターマスクを追加;ベクターマスクを削除;ラスターマスクをリンク;ラスターマスクのリンクを解除;ベクターマスクをリンク;ベクターマスクのリンクを解除;レイヤー効果を有効にする;レイヤー効果を無効にする;レイヤーを削除;レイヤー透明度の変更;ブレンドの変更;レイヤースタイルのラスタライズ;レイヤーの順序;[スマートオブジェクトの作成;スマートオブジェクトを更新;スマートオブジェクトを配置;ソース (スマートオブジェクト);スタックモード];名前の変更;カラーの変更;調整レイヤーの編集;シェープに変換;フィルターマスクの有効化;フィルターマスクの無効化;スマートフィルターを有効化;スマートフィルターを無効化;フィルターマスクを追加;フィルターマスクを削除;フィルターマスクをクリア;[[単色塗りつぶし;グラデーション塗りつぶし;パターン塗りつぶし;コンテンツに応じる];新規塗りつぶしレイヤー;塗りつぶしレイヤーの編集];コピーからレイヤーを作成;フィルターマスク;レイヤースタイルを削除;スマートフィルターを動かす;スマートフィルターを削除;[リンクレイヤーズ;アンリンクレイヤーズ];重ね順;[最前面へ;前面へ;最背面へ;背面へ];[レイヤーはロックされています;ロックの変更;];];[全て;選択解除;選択範囲を反転;編集;拡げる;コントラクト;フェザー;セレクション移動;カラーレンジ;ボーダー;セレクション変形;エッジを絞り込む;ヒールセレクション;];[拡大;縮小;ガイド;定規;グリッド;スナップ;...へスナップ;ドキュメントの境界;ピクセルグリッド;パス;ピクセルへスナップ;[スライス;スライスオプショ];表示];[履歴;レイヤー;プロパティ;ブラシ;文字;パラグラフ;情報;レイヤーコンプ;見本;アクション;ヒストグラム;ナビゲーター;ツールプリセット;字形];[ブラシツール;コピーツール;切り抜きツール;消しゴム;楕円形 選択;スポイト;グラデーションツール;手のひらツール;テキストツール;投げ縄 選択;マグネット 投げ縄 選択;移動ツール;自動選択;バケツ;多角形選択;矩形選択;自由変形;ズームツール;ぼかしツール;シャープツール;指先ツール;覆い焼きツール;焼きこみツール;スポンジツール;スポット修復ブラシツール;修復ブラシツール;パッチツール;パスコンポーネント選択;パス選択;ペン;フリーフォームペン;カスタムシェイプ;矩形;楕円;パラメトリック図形;ライン;ルーラ;クイック選択;ペンシルツール;パースペクティブクロップ;スライスツール;スライス選択ツール;色の置き換え;赤目修正ツール;オブジェクト選択;背景消しゴムツール;パペットワープ;回転ビューツール;コンテンツに応じて拡大;コンテンツに応じた移動];[写真撮影;カラーピッカー;輪郭エディタ;キャンバスサイズ;複製する…;グラデーションエディタ;レイヤースタイル;新規プロジェクト;Web用に保存;ワープ;画像サイズ;ビットマップをベクトル化;[トリミング;切り抜き;すべてを明らかにする];キーボードショートカット;ガイドの追加;[ガイドを消去;レイヤーからのガイド]];[不透明度;効果;明るさ;[コントラスト;従来方式を使用];チャンネル;露光;オフセット;ガンマ値;色相;彩度;明るさ;着色;距離;自然な彩度;[サイズ;補間;ニアレストネイバー法;バイリニア法];角度;丸み;硬度;間隔;[ブレンドモード;ブレンド条件];サンプルサイズ;輪郭検出;スタイル;[選択範囲を反転;相対;基準位置];許容値;隣接;フィル;包括角度の使用;距離;拡散;ノイズ;ドロップシャドウをノックアウト;技術;方向;深度;美肌;モード;グラデーション;スケール;レイヤーの整列;位置;幅;高さ;距離;タイプ;最前面;最背面;カスタム;名前;作成;フォーマット;縦横比を保持;[品質;ページ];複製;移動;スマートフィルター;半径;断片数;分布;[均一;ガウス];モノクロ;セルサイズ;パターン;フロー;力;詳細の保護;塗りつぶしタイプ;テクスチャ;ジッター;エッジ;ソース;ターゲット;チャンネル;マスク;濃度;整列;[パス(経路);形状;ピクセル;インチ;センチメートル;ミリメートル;%];形;サイド;設定;[長さ;比率;どれか;グリッドタイプ;アイソメ;グリッドの間隔;定規の単位];ノイズを減らす;カラー;距離;レート;オートセレクト;探す;新しい定義;[フォト;スクリーン;モバイル;広告;プリント];[無料;固定比率;固定サイズ];ヘルプ;[ライブシェイプ;ライブシェイプの編集;同じ半径];あいまいさ;[ポリゴン;星;スパイラル;正方形];[コーナーラディウス;インナーラディウス]];[カラー(色);[なし;赤;オレンジ;イエロー;緑;青;紫;グレイ(灰色);白;透明;黒;シアン;マゼンタ;中間];合計;絶対値;輝度を保持];[ドロップシャドウ;インナーシャドウ;アウターグロウ;インナーグロウ;斜角と浮き彫り;カラーオーバーレイ;グラデーションオーバーレイ;パターンオーバーレイ;サテン;ストローク;ブレンドオプション;ピクセルを選択];[チップ形状;チップダイナミクス;散布;カラーダイナミクス;[サイズジッター;最小直径;アングルジッター;丸みジッター;最小限の真円度];[ポジションジッター;カウント;カウントジッター];[前景/背景 ジッター;色相ジッター;緩和ジッター;輝度ジッター];[Alt(またはK)を押しながらイメージをクリックして、クローンソースを選択;前景に白、背景に黒、未知の領域にグレーをマークします。;レイヤーは編集できません;テキストレイヤを最初にラスタライズする必要があります;スマートオブジェクトを最初にラスタライズする必要があります;マルチプルレイヤーを選択;レイヤー角度補正;最初にドキュメントを開きます。;最初に現在のウィンドウを閉じます。;現在のツールのみ];[記録;新 アクションセット;新 アクション];[筆圧で不透明度を調節ボタン;筆圧でサイズを調節ボタン];[通常;ディザ合成;比較(暗);乗算;焼き込みカラー;焼き込み(リニア);カラー比較(暗);比較(明);スクリーン;覆い焼きカラー;覆い焼き(リニア);カラー比較(明);オーバーレイ;ソフトライト;ハードライト;ビビッドライト;リニアライト;ピンライト;ハードミックス;差の絶対値;除外;減算;除算;色相;彩度;カラー;輝度;通過]];[行送り;追跡;ベースラインシフト;[ポイントテキストに変換;段落テキストに変換]];[すべてのレイヤー;現在のレイヤー;選択;現在のレイヤー以下];[置き換え;合体;減数;交差;除外;マージ];[[直線;放射状;アングル;反射;ダイヤモンド;シェープバースト];[柔らかい;正確];[アウター斜角;インナー斜角;エンボス;枕の浮き彫り;ストロークエンボス;幅];[スムース;チゼルハード;チゼルソフト;滑らかさ];[アップ;ダウン];[外側;中央;内側;中心から];[シャドウ;ミドルトーン;ハイライト];[不飽和化;飽和];[スモール;ミディアム;ラージ];[線端;角;線分]];[カーソルの下のオブジェクトを選択する;変換コントロール;ピクセルからピクセル;エリアに合わせる;[左端を揃える;水平にセンター;右端を揃える;上端を揃える;垂直に中央;ボトムエッジの整列;等間隔]];[写真を撮る;現在のプロジェクト;新しいプロジェクト;解像度;現在のプロジェクトに追加されました;新しいプロジェクトが作成されました;カメラへのアクセスが拒否されました];[オリエンテーション;ベンド;水平方向の歪み;垂直方向の歪み;[水平;垂直;水平方向;垂直方向];[なし;弧;アークローワー;アークアッパー;アーチ;膨らみ;シェルローワー;シェルアッパー;旗;波;魚;上昇;魚眼;膨らませる;圧搾;ねじれ;カスタム];[フォント;利用できません;使用してレンダリングされます;このプロジェクトには未保存の作業が含まれています:;本当に閉じますか?];[スワップカラー;デフォルト:黒と白]];[ロードされた;追加された;移動ガイド;ガイドの削除;ガイドの追加;読み込み中;VAR0 を読み込み];[フィルタギャラリー;[[液化液;[汚れ;再構築;スムーズ;トール;シュリンク;ブロー;左を押す;フリーズ;アンフリーズ]];[レンズ補正]];ぼかし;[平均;ぼかし;ぼかしを多く;ボックスのぼかし;ガウスぼかし;レンズぼかし;モーションぼかし;放射状のぼかし;形状ブラー;スマートなぼかし;表面のぼかし];歪み;[置き場所;ピンチ;極座標;リップル;剪断;Spherize;波];ノイズ;[ノイズを追加;間引き;ホコリと傷;中央値];ピクセル化;[カラーハーフトーン;結晶化;ファセット;断片;メゾチント;モザイク;点字化];レンダリング;[雲;雲の違い;逆光];シャープ;[シャープ;エッジをシャープにする;もっと磨く;スマートシャープ;アンシャープマスク];書式設定;[拡散;エンボス;押出;エッジを見つける;油絵具];その他;[カスタム;ハイパス;最大;最小;オフセット;リピート];[未定義領域;透明に設定;リピートエッジピクセル;包み込む;最後のフィルタ;プレヴュー]];[テンプレート;[フォントフィルター;キーワード;ランダム];[シンボル付き;写真付き];[サムネールと;リスト]]", + "[파일;편집;이미지;레이어;폴더;선택;필터;보기;창;언어;로그인;로그아웃;번역하기;[계정;서비스 약관;뒤로가기;앱에 대해;버그보고;학습];더 보기;테마;WebGL 사용;[Photopea: 고급 이미지 편집기;PSD, XCF, Sketch, XD 및 CDR 형식을 지원하는 무료 온라인 편집기.;새 이미지를 만들거나 컴퓨터에서 기존 파일을 엽니다. PSD (파일 - PSD로 저장) 또는 JPG / PNG / SVG (파일 - 내보내기 형식)로 작업을 저장합니다.; 또는 에서 새로운 기능을 제안하십시오. 우리의 목표는 <가장 진보되고 저렴한 사진 편집기> 를 만드는 것입니다.;광고 링크가 새 창에서 열립니다.;이 기능은 사용할 수 없습니다.;]];[열기;온라인 게시;저장;PSD 로 저장;인쇄;URL에서 열기;컴퓨터에서 파일 열기;구글 드라이브와 연결;내보내기 형식;레이어 추출;스크립트;열기 및 장소;닫기;로컬 저장소;];[앞으로 가기;뒤로 가기;없애기;채우기;변형;회전;VAR0 뒤집기;VAR0 스케일;실행취소 / 다시실행;원근법;[자동 혼합;자동 정렬];희미하게 하기;이미지 적용];조정;[밝기 / 대비;레벨;곡선;노출;채도;색조 / 채도;색깔 조정;흑백;사진 필터;채널 믹서;색깔 찾아보기;뒤집기;포스터화;한계점;그라디언트 맵;선택적 색상;[자동 톤;자동 대비;자동 색상];색상 대체];[잘라내기;복사;붙여넣기;새로 만들기;제거;활성화;비활성화;병합 복사;적용;반복;업데이트];[레이어 복제;새 조정 레이어;래스터 마스크;벡터 마스크;추가 (모두 표시);[추가 (모두 숨기기);선택 영역 나타내기;선택 영역 숨기기;시작 투명도];[클리핑 마스크;빠른 마스크 모드];고급 개체로 변환;래스터화;그룹 레이어;아래로 병합;위로 병합;[레이어 병합;이미지 병합];새 레이어;래스터 마스크 활성화;래스터 마스크 비활성화;벡터 마스크 활성화;벡터 마스크 비활성화;클리핑 마스크 활성화;클리핑 마스크 비활성화;새 폴더;래스터 마스크 추가;래스터 마스크 제거;벡터 마스크 추가;벡터 마스크 제거;래스터 마스크 연결;래스터 마스크 연결 해제;벡터 마스크 연결;벡터 마스크 연결 해제;레이어 효과 활성화;레이어 효과 비활성화;레이어 제거;레이어 불투명도 변경;혼합 변경;래스터화 레이어 스타일;레이어 순서;[고급 개체 만들기;고급 개체 업데이트;고급 개체 배치;원본 (고급 개체);스택 모드];이름 변경;색 변경;조정 레이어 편집;모양으로 변환;필터 마스크 활성화;필터 마스크 비활성화;스마트 필터 활성화;스마트 필터 비활성화;필터 마스크 추가;필터 마스크 제거;스마트 필터 없애기;[[단색 채우기;그라디언트 채우기;패턴 채우기;내용 인식];새 칠 레이어;채우기 레이어 수정];복사를 통한 레이어;필터 마스크;레이어 스타일 삭제;스마트 필터 이동;스마트 필터 삭제;[레이어 연결;레이어 연결 해제];정렬;[맨 앞으로 가져오기;앞으로 가져오기;뒤로 보내기;제일 뒤로 보내기];[레이어가 잠겼습니다.;잠금 변경;];];[모두 선택;선택 취소;반전;수정;확장;축소;페더;선택 이동;색상 범위;경계;변형 선택;가장자리 미세 조정;선택 부분 되살리기;];[확대;축소;안내선;자;격자;스냅;스냅 대상;문서 경계;픽셀 격자;경로;스냅 대상 픽셀;[분할 영역을;분할 영역 옵션];표시];[히스토리;레이어;속성;붓;글자;절;정보;레이어 컴프레서;스와치;액션;막대 그래프;내비게이터;도구 사전 설정;글리프];[붓 도구;복제 도구;자르기 도구;지우개 도구;타원형 선택;스포이드;그라디언트 도구;손 도구;문자 도구;올가미 선택;자석 올가미 선택;이동 도구;마법 지팡이;페인트 통 도구;다각형 올가미 선택;직사각형 선택;자유 변형;확대 / 축소 도구;흐림 도구;선명 도구;얼룩 도구;닷지 도구;번 도구;스폰지 도구;얼룩 치유 브러시 도구;치유 브러쉬 도구;패치 도구;경로 선택;직접 선택;펜;자유형 펜;사용자 정의 모양;사각형;타원;파라메트릭 모양;선;자;빠른 선택;필기 도구;원근 자르기;분할 영역 도구;분할 영역 선택 도구;색깔 교체;적목 현상 도구;개체 선택;배경 지우개 도구;퍼펫 뒤틀기;회전 보기;내용 인식 비율;내용 인식 이동];[사진 찍기;색상 선택기;윤곽 편집기;캔버스 크기;복제;그라디언트 편집기;레이어 스타일;새 프로젝트;웹용으로 저장;뒤틀기;이미지 크기;비트맵 벡터화;[재단;잘라내기;모두 표시];키보드 단축키;안내선 추가;[안내선 잠그기;레이어 가이드]];[불투명도;효과;명도;[대비;레거시 사용];채널;노출;오프셋;감마 교정;색조;포화도;밝기;색상화;범위;활기;[크기;보간;최단입점;쌍선형];각도;진원도;경도;간격;[혼합 모드;혼합 조건];표본 크기;윤곽;스타일;[반전;상대치;기준];여유도;인접;채우기;종합 각도 사용;거리;확산;노이즈;녹아웃 그림자;기법;방향;깊이;부드럽게;모드;그라디언트;범위;레이어에 정렬;위치;너비;높이;목적;유형;전경;배경;사용자 설정;이름;생성;형식;종횡비 유지;[품질;페이지];복제;이동;스마트 필터;반지름;양;분포;[유니폼;가우스];단색;셀 크기;패턴;흐름;강도;세부 보호;채우기 유형;텍스처;흐트러짐;가장자리;원본;목표;채널;마스크;밀도;정렬됨;[패스;모양;픽셀;인치;센티미터;밀리미터;퍼센트];모양들;사이드;설정;[길이;비율;임의;격자 유형;등축;격자 간격;눈금자 단위];노이즈 줄이기;색;차이;율;자동 선택;발견;새로운 정의;[사진;화면;변하기 쉬운;광고;인쇄 된];[자유;고정 비율;고정 크기];도움;[실시간 모양;실시간 모양 편집;같은 반경];허용량;[다각형;별모양;나선;정사각형];[모퉁이 반경;내부 반경]];[색깔;[없슴;빨간색;주황색;노랑;초록색;파란색;보라색;회색;흰색;투명한;검정;사이안;마젠타;중간];전체;절대치;광도 유지];[그림자;내부 그림자;외부 광선;내부 광선;경사와 엠보스;색 오버레이;그라디언트 오버레이;패턴 오버레이;새틴;획;혼합 옵션;픽셀 선택];[끝 부분 모양;끝 부분 강약 조절;산포화;색 강약 조절;[크기 흐트러짐;최소 직경;각도 흐트러짐;형태 흐트러짐;최소 형태];[위치 흐트러짐;순서;순서 흐트러짐];[전경/배경 흐트러짐;색 흐트러짐;포화 흐트러짐;밝기 흐트러짐];[Alt (또는 K) 키를 누른 상태에서 이미지를 클릭해 원본 복제를 선택합니다.;전경을 흰색으로, 배경을 검정색으로, 알 수없는 부분을 회색으로 표시하십시오.;레이어를 편집 할 수 없습니다.;텍스트 레이어를 먼저 래스터화해야 합니다.;고급 개체 먼저 래스터화해야 합니다.;여러 레이어 선택;레이어 똑바르게;먼저 문서를 엽니다.;현재 창을 먼저 닫습니다.;현재 도구만];[기록;새 액션 세트;새 액션];[태블릿 압력 컨트롤 불투명도;태블릿 압력 컨트롤 크기];[표준;디졸브;어둡게 하기;곱하기;색상 번;색상 번;어두운 색상;밝게 하기;스크린;색상 닷지;선형 닷지;밝은 색상;오버레이;소프트 라이트;하드 라이트;선명한 라이트;선형 라이트;핀 라이트;하드 혼;차이;제외;빼기;나누기;색조;채도;색상;광도;통과]];[행간;자간;기준선 이동;[포인트 텍스트 변환;단락 텍스트로 변환]];[모든 레이어;현재 레이어;선택;현재 및 아래];[바꾸기;통합;빼기;교차;제외;병합];[[선형;방사;각도;반사됨;다이아몬드;모양 파열];[부드럽게;명확함];[외부 경도;내부 경도;엠보스;베개 엠보스;외곽선 엠보스;윤곽 너비];[매끄럽게;강한 끌;부드러운 끌;매끄러움];[위;밑];[밖;가운데;내부;중앙부터];[어두운 영역;중간톤;밝은 영역];[포화도;포화];[작음;중간;큼];[단면;모퉁이;대시를]];[커서 아래에서 개체를 선택해 주십시오;변형 제어;픽셀에서 픽셀로;영역에 맞추기;[왼쪽 모서리 정렬;수평 중심;오른쪽 모서리 정렬;윗쪽 모서리 정렬;수직 중심;아랫쪽 모서리 정렬;균등 간격]];[사진 찍기;현재 프로젝트;새 프로젝트;해상도;현재 프로젝트에 추가되었습니다.;새 프로젝트가 생성되었습니다.;카메라에 대한 접근이 거부되었습니다.];[성향;굽히기;수평 왜곡;수직 왜곡;[가로;세로;가로로;세로로];[없음;포물선;포물선 낮게;포물선 높게;아치형;꽉차게;셸 낮게;셸 높게;깃발;파도;물고기;증가;물고기 눈;부풀리기;짜내기;휘틀리기;사용자 설정];[글꼴;을(를) 사용할 수 없습니다;을(를) 사용하여 렌더링됩니다.;이 프로젝트에는 저장되지 않은 작업이 있습니다:;정말로 닫으시겠습니까?];[색상 바꾸기;기본값: 흰색과 검은색]];[불러옴;추가됨;안내선 이동;안내선 제거;안내선 추가;불러오는 중;VAR0 불러];[필터 갤러리;[[액체화하다;[더러움;재건축;부드럽게;회전;수축;타격;왼쪽 밀기;동결;해동]];[렌즈 교정]];흐리게;[평균;흐리게;더 흐리게;사각형으로 흐리게;가우스 흐림 효과;렌즈 흐림 효과;모션 흐림 효과;방사형 흐림 효과;모양 흐림 효과;스마트 흐림 효과;표면 흐림 효과];왜곡;[변위;핀치;극좌표;잔물결;기울임;구형화;돌리기];노이즈;[노이즈 추가;얼룩 제거;먼지 및 스크래치;중앙값];픽셀화;[색 망판;구체화;측면;조각;메조틴트;모자이크;점묘화];렌더;[구름 효과 1;구름 효과 2;렌즈 플레어];날카롭게;[날카롭게;가장자리 날카롭게;더 날카롭게;스마트 날카로움 효과;언샵 마스크];양식화;[확산;엠보스;밀어내기;가장자리 찾기;오일 페인트];그 외;[사용자 설정;고역 통과;최대화;최소화;오프셋;반복];[알 수 없는 구역;투명 설정;가장자리 픽셀 반복;줄 바꿈;마지막 필터;미리 보기]];[템플릿;[글꼴 필터;키워드;무작위로];[기호 포함;사진 포함];[축소판;목록]]", + "[Arquivo;Editar;Imagem;Camada;Pasta;Selecionar;Filtro;Visualizar;Janela;Idioma;Entrar;Sair;Criar Tradução;[Conta;Termos de Uso;Voltar;Acerca;Reportar um erro;Aprender];Mais;Tema;Usar WebGL;[Photopea: Editor de Imagem Avançado;Editor online gratuito que suporta os formatos PSD, XCF, Sketch, XD e CDR.;Crie uma nova imagem ou abra arquivos existentes no seu computador. Salve seu trabalho como PSD (Arquivo - Gravar como PSD) ou como JPG / PNG / SVG (Arquivo - Exportar como).;Sugira novas funções no nosso ou . Nosso objetivo é fazer .;Os links do patrocinador são abertos em uma nova janela.;Este recurso não está disponível.;Instale Photopea]];[Abrir;Publicar Online;Salvar;Salvar como PSD;Imprimir;Abrir de URL;Abrir do Computador;Conectar Com o Google Drive;Exportar como;Exportar Camadas;Script;Abra e Coloque;Fechar;Armazenamento Local;Informações do arquivo];[Passo a Frente;Passo atrás;Limpar;Preencher;Transformar;Rotacionar;Espelhar VAR0;Escalar VAR0;Desfazer / Refazer;Perspectiva;[Mesclar automaticamente;Alinhar automaticamente];Atenuar;Aplicar Imagem];Ajustes;[Brilho/Contraste;Níveis;Curvas;Exposição;Vibração;Matriz/Saturação;Equilíbrio de Cores;Preto e Branco;Filtro de Fotos;Misturador de Canais;Pesquisa de cores;Inverter;Posterizar;Limite;Mapa de Gradiente;Cor Seletiva;[Tom automático;Contraste automático;Cor automática];Substituir cor];[Cortar;Copiar;Colar;Novo;Deletar;Ativar;Desativar;Copiar Mesclado;Aplicar;Novamente;Atualizar];[Duplicar Camada;Nova Camada de Ajuste;Máscara de Rasterização;Máscara de Vetor;Adicionar (Mostrar tudo);[Adicionar (Ocultar Tudo);Revelar Seleção;Ocultar Seleção;Da transparência];[Máscara de Corte;Modo de máscara rápido];Converter em Objeto Inteligente;Rasterizar;Agrupar Camadas;Mesclar Abaixo;Mesclar Acima;[Mesclar Camadas;Achatar imagem];Nova Camada;Ativar Máscara de Rasterização;Desativar Máscara de Rasterização;Ativar Máscara de Vetor;Desativar Máscara de Vetor;Ativar Máscara de Recorte;Desativar Máscara de Recorte;Nova Pasta;Adicionar Máscara de Rasterização;Remover Máscara de Rasterização;Adicionar Máscara de Vetor;Remover Máscara de Vetor;Associar Máscara de Rasterização;Desassociar Máscara de Rasterização;Associar Máscara de Vetor;Desassociar Máscara de Vetor;Ativar Efeitos de Camada;Desativar Efeitos de Camada;Apagar Camada;Alterar Opacidade da Camada;Alterar Mistura;Rasterizar Estilo da Camada;Ordem de Camada;[Criando Objeto Inteligente;Atualizando Objeto Inteligente;Colocando Objeto Inteligente;Fonte (Objeto Inteligente);Modo de pilha];Alterar Nome;Alterar Cor;Editar Camada de Ajuste;Converter para Forma;Ativar Máscara de Filtro;Desativar Máscara de Filtro;Ativar Filtros Inteligentes;Desativar Filtros Inteligentes;Adicionar Máscara de Filtro;Apagar Máscara de Filtro;Limpar Filtros Inteligentes;[[Preencher com Cor Sólida;Preencher com Gradiente;Preencher com Padrão;Sensível a conteúdo];Nova Camada de Preenchimento;Modificar Camada de Preenchimento];Camada via Cópia;Máscara de Filtro;Excluir Estilo de Camada;Mover Filtro Inteligente;Excluir Filtro Inteligente;[Vincular Camadas;Desvincular Camadas];Organizar;[Trazer para a frente;Avançar;Recuar;Enviar para trás];[Esta Camada está Bloqueada.;Travar mudanças;Bloquear];Animação];[Tudo;Desselecionar;Inverso;Modificar;Expandir;Contrair;Difusão;Mover Seleção;Intervalo de Cores;Borda;Transformar Seleção;Refinar Arestas;Curar Seleção;Varinha Mágica];[Mais Zoom;Menos Zoom;Guias;Réguas;Grade;Encaixar;Encaixar Em;Documento Limite;Grade de Pixel;Demarcadores;Converter para Pixels;[Fatias;Opções de fatiar];Mostrar];[História;Camadas;Propriedades;Pincel;Caractere;Parágrafo;Informações;Composições de Camada;Amostras;Ações;Histograma;Navegação;Predefinições de Ferramenta;Glifos];[Ferramenta Pincel;Ferramenta de Clone;Ferramenta de Corte;Borracha;Selecionar em Elipse;Conta-Gotas;Gradiente;Mão;Ferramenta de Texto;Seleção em Laço;Ferramenta Laço Magnético;Mover;Varinha Mágica;Lata de Tinta;Laço Poligonal;Seleção Retangular;Transformação Livre;Lupa;Desfoque;Nitidez;Ferramenta Borrar;Ferramenta de Exposição;Ferramenta de Queimar;Esponja;Pincel de Cicatrização Localizada;Pincel de Cicatrização;Ferramenta de Correção;Seleção de demarcador;Seleção Direta;Caneta;Caneta Livre;Forma Personalizada;Retângulo;Elipse;Forma Paramétrica;Linha;Régua;Seleção Rápida;Ferramenta Lápis;Corte de perspectiva;Ferramenta de fatia;Seleção de fatia;Substituição de cor;Olhos vermelhos;Seleção de objeto;Borracha de plano de fundo;Distorção de marionete;Girar Visualização;Escala sensível a conteúdo;Movimento Sensível ao Conteúdo];[Tire uma Foto;Colhedor de Cores;Editor de Contorno;Tamanho da Tela de Pintura;Duplicar em...;Editor de Gradientes;Estilo de Camada;Novo Projeto;Salvar para Web;Deformar;Tamanho da Imagem;Vetorizar Bitmap;[Aparar;Cortar;Mostrar tudo];Atalhos de Teclado;Adicionar Guias;[Apagar Guias;Guias da Camada]];[Opacidade;Efeitos;Brilho;[Contraste;Usar Legado];Canal;Exposição;Equilibrar;Correção de Gama;Matriz;Saturação;Luminosidade;Colorir;Alcance;Vibração;[Tamanho;Interpolação;Vizinho mais próximo;Bilinear];Ângulo;Arredondamento;Dureza;Espaçamento;[Modo de Mistura;Mesclar Se];Tamanho da Amostra;Contorno;Estilo;[Oposto;Relativa;Âncora];Tolerância;Contíguo;Preenchimento;Use o Ângulo Global;Distância;Espalhar;Ruído;Derrubar a Sombra;Técnica;Direção;Profundidade;Suavizar;Modo;Gradiente;Escalar;Alinhar À Camada;Posição;Largura;Altura;Destino;Tipo;Primeiro Plano;Plano de Fundo;Personalizado;Nome;Criar;Formato;Manter a Proporção;[Qualidade;Páginas];Duplicar;Mover;Filtros Inteligentes;Raio;Quantia;Distribuição;[Uniforme;Gaussiano];Monocromático;Tamanho da Célula;Padrão;Fluxo;Força;Proteger Detalhe;Tipo de Preenchimento;Textura;Tensão;Canto;Fonte;Alvo;Canais;Máscara;Densidade;Alinhado;[Demarcador;Forma;Pixels;Polegadas;Centímetros;Milímetros;Porcentagem];Formas;Lados;Preferências;[Comprimento;Ratio;Qualquer;Tipo de grade;Isométrico;Espaçamento da grade;Unidades da Régua];Reduzir Ruído;Cores;Distâncias;Ritmo;Seleção Automática;Procurar;Definir novo;[Foto;Tela;Celular;Anúncios;Cópia impressa];[Livre;Taxa Fixa;Tamanho Fixo];Ajuda;[Forma Viva;Editar Forma Viva;O mesmo Raio];Grau de seleção;[Polígono;Estrela;Espiral;Quadrado];[Raio do Canto;Raio interno]];[Cor;[Nenhum;Vermelho;Laranja;Amarelo;Verde;Azul;Roxo;Cinza;Branco;Transparente;Preto;Ciano;Magenta;Neutral];Total;Absoluto;Preservar Luminosidade];[Sombra Externa;Sombra Interna;Brilho Externo;Brilho Interno;Bisel e Relevo;Sobreposição de Cor;Sobreposição em Gradiente;Sobreposição em Padrão;Cetim;Traçado;Opções de Mistura;Selecionar Pixels];[Forma de Ponta;Dinâmica de Ponta;Dispersão;Dinâmica de Cor;[Variação da Tensão;Diâmetro Mínimo;Tensão Angular;Tensão Arredondada;Redondeza Mínima];[Posicionamento Tensional;Contagem;Quantidade de Tensão];[Tremulação do Plano de Fundo/Primeiro Plano;Matriz Tensional;Saturação Tensional;Brilho Tensional];[Selecione a fonte de clonagem segurando Alt (ou K) e clicando na imagem.;Marque Primeiro Plano com Branco, Fundo com Preto e a área desconhecida com Cinza.;Camada não editável.;Camada de Texto deve ser rasterizada primeiro;Objeto Inteligente Deve Ser Rasterizado Primeiro;Selecione Várias Camadas;Endireitar Camada;Abra um documento primeiro.;Feche a janela atual primeiro.;Somente Ferramenta Atual];[Gravar;Novo Conjunto de Ações;Nova Ação];[Pressão de Caneta controla a Opacidade;Pressão de Caneta controla o Tamanho];[Normal;Dissolver;Escurecer;Multiplicação;Superexposição de Cor;Superexposição Linear;Cor Mais Escura;Clarear;Tela;Subexposição de Cor;Subexposição Linear;Cor Mais Clara;Sobrepor;Luz Indireta;Luz Direta;Luz Brilhante;Luz Linear;Luz do Pino;Mistura Sólida;Diferença;Exclusão;Subtrair;Dividir;Matiz;Saturação;Cor;Luminosidade;Passagem]];[Entrelinhas;Rastreamento;Deslocamento de linha de base;[Converter para Texto de Ponto;Converter para Texto de Parágrafo]];[Todas as Camadas;Camada Atual;Seleção;Atual e Abaixo];[Substituir;Unir;Subtrair;Intersecção;Excluir;Mesclar];[[Linear;Radial;Ângulo;Refletido;Diamante;Estouro de Forma];[Mais Macio;Preciso];[Bisel Externo;Bisel Interno;Entalhe;Relevo Travesseiro;Relevo do Contorno;Largura do traçado];[Suavizar;Cinzel Duro;Cinzel Macio;Suavidade];[Cima;Baixo];[Fora;Centro;Dentro;A Partir do Centro];[Sombras;Tons Médios;Realces];[Dessaturar;Saturar];[Pequeno;Médio;Ampla];[Arremates;Cantos;Traços]];[Escolha o objeto abaixo do cursor;Controles de Transformação;Pixel a Pixel;Encaixe a Área;[Alinhar Cantos Esquerdos;Centralizar Horizontalmente;Alinhar Cantos Direitos;Alinhar Cantos de Cima;Centralizar Verticalmente;Alinhar Cantos de Baixo;Lacunas Iguais]];[Colocar em;Projeto Atual;Novo Projeto;Resolução;Adicionado ao projeto atual.;Um novo projeto foi criado.;O acesso à câmera foi recusado.];[Orientação;Curvatura;Distorção Horizontal;Distorção Vertical;[Horizontal;Vertical;Horizontalmente;Verticalmente];[Nenhum;Arco;Arco Inferior;Arco Superior;Arquear;Protuberância;Concha Inferior;Concha Superior;Bandeira;Onda;Peixe;Elevar;Olho de Peixe;Inflar;Espremer;Torcer;Personalizado];[Fonte;não está disponível;Será renderizado usando;Existe trabalho não salvo em;Deseja realmente fechar?];[Trocar Cores;Padrão: Branco e Preto]];[carregado;adicionado;Mover Guia;Excluir Guia;Adicionar Guia;Carregando;Carregar VAR0];[Galeria de Filtros;[[Dissolver;[Borrar;Reconstruir;Suavizar;Redemoinho;Encolher;Inflar;Empurre à Esquerda;Congelar;Descongelar]];[Correção de lente]];Borrão;[Médio;Desfocar;Desfoque Maior;Desfoque de Caixa;Desfoque Gaussiano;Desfoque de Lente;Desfoque de Movimento;Desfoque Radial;Desfoque de Forma;Desfoque Inteligente;Desfoque de Superfície];Distorcer;[Mesclar;Sucção;Coordenadas Polares;Ondulação;Cisalhamento;Esferização;Ondas];Ruído;[Adicionar Ruído;Remover Manchas;Poeira e Rabiscos;Mediana];Pixelizar;[Meio-Tom de Cor;Cristalizar;Faceta;Fragmento;Mezzo-tinto;Mosaico;Pontilhar];Renderizar;[Nuvens;Nuvens Diferenciais;Reflexo de Flash];Aguçar;[Tornar Nítido;Tornar Arestas Nítidas;Nitidez Maior;Aplicação Inteligente de Nitidez;Máscara de Nitidez];Estilizar;[Difusão;Realçar;Extrusão;Indicação de Arestas;Pintura a óleo];Outros Filtros;[Personalizado;Alta frequência;Máximo;Mínimo;Deslocamento;Repetir];[Área Indefinida;Definir como Transparente;Repetir Pixels da Aresta;Preencher com Lado Oposto;Último Filtro;Visualizar]];[Modelos;[Filtro de Fontes;Palavras-chave;Aleatória];[Com símbolos;Com foto];[Miniaturas;Lista]]", + "[Fájl;Szerkesztés;Kép;Réteg;Mappa;Kijelölés;Szűrő;Nézet;Ablak;Nyelv;Bejelentkezés;Kijelentkezés;Fordítás készítése;[Fiók;Jogi nyilatkozat;Vissza;Információ;Hiba jelentése;Tanulás];Több;Téma;WebGL használata;[Photopea: Fejlett képszerkesztő;Ingyenes online szerkesztő támogatja PSD, XCF, Sketch, XD és CDR formátumokat.;Hozzon létre egy új képet, vagy nyissa meg a meglévő fájlokat a számítógépről. Mentse el munkáját PSD (Fájl - Mentés mint PSD) vagy JPG / PNG / SVG (Fájl - Exportálás ekként) formátumban.;Javasoljon új funkciókat a vagy -on. Célunk, hogy megteremtse .;Szponzor linkek nyitott egy új ablakban.;Photopea;Photopea telepítése]];[Megnyitás;Közzététel online;Mentés;Mentés mint PSD;Nyomtatás;URL hely megnyitása;Megnyitás saját gépről;Kapcsolódás Google Drive-hoz;Exportálás ekként;Rétegek exportálása;Parancsfájlok;Megnyitás és Hely;Bezárás;Helyi meghajtó;Fájl információk];[Egy lépés előre;Egy lépés vissza;Törlése;Kitöltés;Alakítás;Forgatás;VAR0 tükrözés;VAR0 méretezés;Visszavon / Kész;Perspektivikus;[Automatikus keverése;Automatikus igazítása];Halványítás;Kép alkalmazása];Színkorrekciók;[Fényerő/kontraszt;Szintbeállítás;Görbék;Exponálás;Vibrálás;Színezet/Telítettség;Színegyensúly;Fekete-fehér;Fotószűrő;Csatornakeverő;Színkeresés;Invertálás;Keményítés;Határérték;Színátmenettérkép;Szín kiválasztás;[Automatikus színárnyalat;Automatikus kontraszt;Automatikus szín];Színcsere];[Vágás;Másolás;Beillesztés;Új;Törlés;Engedélyezés;Tiltás;Másolás egyesítve;Alkalmaz;Újra;Frissítés];[Réteg kétszerezése;Új szabályozható réteg;Rasztermaszk;Vektormaszk;Hozzáadás (Összes megjelenítése);[Hozzáadás (Összes elrejtése);Kijelölés mutatása;Kijelölés elrejtése;Átlátszóságból];[Vágómaszk;Gyorsmaszk módban];Okos objektummá alakítás;Raszterizálás;Rétegek csoportosítása;Egyesítés lefele;Egyesítés felfelé;[Rétegek egyesítése;Rétegek összeolvasztása];Új réteg;Rasztermaszk engedélyezése;Rasztermaszk letiltása;Vektormaszk engedélyezése;Vektormaszk letiltása;Vágómaszk engedélyezése;Vágómaszk letiltása;Új mappa;Rasztermaszk hozzáadása;Rasztermaszk törlése;Vektormaszk hozzáadása;Vektormaszk törlése;Rasztermaszk összekötése;Rasztermaszk szétkapcsolása;Vektormaszkok összekapcsolása;Vektormaszkok szétkapcsolása;Rétegeffektek engedélyezése;Rétegeffektek letiltása;Réteg törlése;Réteg átlátszóságának változtatása;Keverési beállítások;Rétegstílus raszterizálása;Rétegrend;[Okos objektum hozzáadása;Okos objektum frissítése;Okos objektum elhelyezése;Forrás (Okos objektum);Halommódot];Névváltoztatás;Színváltoztatás;Állítható réteg szerkesztése;Alakzattá alakítás;Szűrőmaszk engedélyezése;Szűrőmaszk letiltása;Okos szűrők engedélyezése;Okos szűrők letiltása;Szűrőmaszk hozzáadása;Szűrőmaszk törlése;Okos szűrők törlése;[[Egyszínű kitöltés;Színátmenetes Kitöltés;Minta kitöltés;Tartalomérzékeny];Új kitöltő réteg;Kitöltési réteg módosítás];Jelenlegi réteg másolása;Szűrőmaszk;Réteg stílus törlése;Okos szűrő mozgatása;Okos szűrő törlése;[Rétegek csatolása;Rétegek leválasztása];Rendezés;[Előrehozás;Előtérbe hozás;Hátrébb küldés;Hátraküldés];[Ez a réteg zárolva van.;Zárolás Változtatás;Zárolása];];[Összes;Kijelölés megszüntetése;Inverzálás;Módosítás;Kiterjesztés;Összehúzás;Madártoll;Kijelölés mozgatása;Színtartomány;Szegély;Kijelölés átalakítása;Szegély finomítása;Kijelölés javítása;];[Nagyítás;Kicsinyítés;Segédvonalak;Szabályzók;Rács;Igazítás;Igazítás a köv. p.;Dokumentumszegélyek;Képpontrács;Görbék;Igazítás képpontokkal;[Szeletek;Szelet beállításai];Megjelenítés];[Előzmény;Rétegek;Beállítások;Ecset;Karakter;Paragrafus;Információ;Rétegszedők;Színtár;Műveletek;Hisztogram;Navigátor;Eszközkészletek;Karaktertábla];[Festő eszköz;Másoló eszköz;Vágó eszköz;Törlő eszköz;Ellipszis kijelölö;Pipetta;Színátmenet eszközre;Mozgató eszköz;Szövegbevitel;Lasszó;Mágneses lasszó;Mozgató eszköz;Varázspálca;Festékesvödör;Sokszög lasszó;Téglalap kijelölö;Szabad átalakítás;Közelítő eszköz;Életlenítési eszköz;Élességi eszköz;Maszatoló eszköz;Világosító eszköz;Sötétítő eszköz;Szivacs eszköz;Helyi javító ecset eszköz;Javító ecset eszköz;Folt;Görbeválasztó;Közvetlen kijelölés;Toll;Szabadkézi toll;Egyéni alakzat;Téglalap;Ellipszis;Parametrikus alakzat;Vonal;Vonalzó;Gyors kijelölés;Ceruza eszköz;Perspektivikus vágás;Szelet;Szeletkijelölő;Színcsere eszköz;Vörösszem-eltávolító eszköz;Objektumkijelölés;Háttér radír;Bábu hajlítása;Nézet elforgatása;Tartalomérzékeny méretezés;Tartalomérzékeny mozgatás];[Készíts egy képet;Színválasztó;Kontúr szerkesztő;Vászon méret;Duplázás ide...;Színátmenet szerkesztő;Rétegstílus;Új projekt;Mentés webre;Csavarás;Képméret;Bittérképet vektorizálja;[Körülvágás;;Összes megjelenítése];Billentyűparancsok;Segédvonalak hozzáadása;[Segédvonalak törlése;]];[Opacitás;Effektek;Fényerő;[Kontraszt;Örökölt használata];Csatorna;Exponálás;Eltolás;Gamma korrekció;Színezet;Telítettség;Könnyűség;Színezése;Hatótávolság;Élénkség;[Méret;Interpoláción;Legközelebbi szomszéd;Bilineáris];Szög;Kerekség;Keménység;Térköz;[Kevert mód;Keverés, ha];Minta méret;Kontúr;Stílus;[Fordított;Relatív;Szerkesztőpont];Tűréshatár;Határos;Kitöltés;Globális szög használat;Távolság;Kiterjedés;Zaj;Árnyék kihagyás;Technika;Irány;Mélység;Lágy;Mód;Színátmenet;Méretezés;Réteghez igazítás;Pozíció;Szélesség;Magasság;Rendeltetési hely;Típus;Előtér;Háttér;Egyedi;Név;Létrehoz;Formázás;Képarány megtartása;[Minőség;Oldalak];Másolat;Mozgató;Szelektív szűrők;Sugár;Összeg;Terjesztés;[Egyen;Gauss];Egyszínű;Cella méret;Minta;Folyatás;Erő;Védett részlet;Kitöltés típusa;Textúra;Élénkség;Él;Forrás;Cél;Csatorna;Maszk;Sűrűség;Igazított;[Görbe;Alakzat;Pixel;Hüvelyk;Centiméter;Milliméter;Százalék];Alakzatok;Oldalak;Előnyben részesített;[Hossz;Arány;Bármilyen;Rács Típus;Izometrikus;Rácstérköz;Vonalzó mértékegysége];Zajcsökkentés;Színek;Távolságok;Sebesség;Automatikus kijelölés;Keresés;Megadása;[Fénykép;Képernyő;Mobil;Hirdetések;Nyomat];[Normál;Rögzített arány;Rögzített méret];Súgó;[Élő alakzatot;Élő alakzatot szerkesztése;Azonos sugarú];Tűrés;[Sokszög;Csillag;Spirál;Négyzetes];[Sarok sugara;Belső sugár]];[Szín;[Egyik sem;Piros;Narancs;Sárga;Zöld;Kék;Lila;Szürke;Fehér;Átláltszó;Fekete;Cián;Bíbor;Semleges];Teljes;Abszolút;Fényintenzitás megőrzése];[Árnyék;Belső árnyék;Külső ragyogás;Belső ragyogás;Bevésés és Domborítás;Színátfedés;Színátmenet-átfedés;Mintaátfedés;Szatén;Körvonal;Összhatás beállítások;];[Csúcs Alak;Csúcs Dinamika;Szórás;Szín dinamika;[Bemozdulás méret;Minimális átmérő;Bemozdulás szög;Bemozdulás kerekség;Minimális Kerekség];[Bemozdulási pozíció;Számol;Bemozdulási szám];[Bemozdulás Előtér / Háttér;Bemozdulás Színárnyalat;Remegés Telítettség;Remegés Fényereje];[Válassza ki a klón forrását a nyomva tartott Alt billenytűvel (vagy K), és kattintson a képre.;Jelölje meg az előtéret fehérvel, az háttéret feketével, és az ismeretlen terület szürkével.;Réteg nem szerkeszthető.;Szövegréteg először raszterizálni kell;Okos objektum először raszterizálni kell;Több réteg kiválasztása;Dőlésmentesítés;Először nyisson meg egy dokumentumot.;Először zárja be az aktuális ablakot.;Csak az aktuális eszköz];[Rögzítése;Új műveletkészlet;Új művelet];[Tábla nyomásszabályzó vezérlőelemeinek Áttetszőség;Tábla nyomásszabályzó vezérlőelemeinek Méret];[Normál;Szórt;Sötétítés;Szendvicspozitív;Színégetés;Lineáris égetés;Sötétebb szín;Világosítás;Szendvicsnegatív;Színfakítás;Lineáris fakítás;Világosabb szín;Átfedés;Lágy fény;Kemény fény;Élénk fény;Lineáris világosítás;Tűfény;Kemény keverés;Különbség;Kizárás;Elvétel;Felosztás;Színezet;Telítettség;Szín;Fényintenzitás;Áthúzás]];[Sortávolság;Betűköz;Kiindulási műszak;[Átalakítás pontszöveggé vagy;Átalakítás bekezdésszöveggé parancsra]];[Összes réteg;Aktuális réteg;Kijelölési;Aktuális és alatta];[Csere;Egyesítés;Különbség;Metszőpont;XOR;Egyesítés];[[Egyenes irányú;Sugárirányú;Szög;Tükröződés;Gyémánt;Shape Burst];[Lágyabb;Pontos];[Külső Tompaszög;Belső Tompaszög;Dombor;Párna Dombor;Ecsetvonás Dombor;Vonalvastagság];[Simítás;Véső Kemény;Véső Lágy;Finomság];[Fel;Le];[Kívül;Közép;Belül;Középről];[Árnyék;Középtónusok;Csúcsfény];[Telítettség csökkentése;Telítés];[Kicsi;Közepes;Nagy];[Vonalvégek;Sarkok;Szaggatott]];[Válassza ki a tárgyat a kurzor alatt;Átalakítási vezérlőelemek;Pixeltől Pixelig;Területhez Illesztés;[Igazítás bal szegélyek;Vízszintes középre igazítás;Igazítás jobb szegélyek;Igazítás felső szegélyek;Függőleges középre igazítás;Igazítás alsó szegélyek;Egyenletes eloszlás]];[Helyezzen be;Aktuális projekt;Új projekt;Felbontás;Hozzáadni az aktuális projekthez.;Egy új projekt jött létre.;Kamera hozzáférés megtagadva.];[Helyzet;Hajlás;Vízszintes csavarás;Függőleges csavarás;[Vízszintes;Függőleges;Vízszintes;Függőleges];[Nincs;Ívelés;Ívelés lejjebb;Ívelés feljebb;Ív;Kidomborítás;Kagyló (alsó);Kagyló (felsö);Jelzö;Hullám;Hal;Emelés;Halszem;Felfújás;Összepréselés;Csavarás;Egyedi];[Betűtípus;nem elérhető;Lesz renderelt segítségével;A projektben nem mentett munka van:;Biztosan bezárja?];[Színének felcserélése;Alapértelmezés: fehér és fekete]];[betöltve;hozzáadva;Segédvonal mozgatása;Segédvonal törlése;Segédvonal hozzáadása;Betöltés;VAR0 betöltése];[Szűrőgaléria;[[Cseppfolyósítás;[Maszatoló;Visszaépítés;Simítás;Örvény;Összezsugorodik;Felfúj;Balra tolás;Fagyasztása;Olvasztása]];[Lencsekorrekció]];Életlenítési;[Átlag;Életlenítés;Több életlenítés;Doboz életlenítése;Gauss-életlenítés;Lencsefolt;Bemozdulás;Sugaras életlenítés;Alakzatos életlenítés;Intelligens életlenítés;Felület életlenítése];Torzítási;[Fénytörés;Tölcsér;Ellentétes koordináták;Fodrozás;Nyírás;Gömb;Hullám];Zajkezelési;[Zaj hozzáadása;Rácstalanítás;Por és karcok;Medián];Képpontosítási;[Színes raszterrács;Kristályosítás;Szellemkép;Töredék;Borzolás;Mozaik;Pointillista];Renderelési;[Felhők;Negatív felhők;Lencsefényfolt];Élesítési;[Élesítés;Szegélyek élesítése;Több élesítés;Intelligens élesítés;Életlen maszk];Stilizálási;[Szétszórás;Domborítás;Kiemelés;Szegélyek megkeresése;];Egyéb;[Egyéni;Élkiemelés;Maximális;Minimális;Eltolás;Ismétlés];[Nem definiált terület;Beállítás áttetszőként;Szegélyképpontok megismétlése;Körétördelés;Utolsó szűrő;Előnézet]];[Sablonok;[Betűtípusszűrő;Kulcsszavak;Véletlenszerű];[Szimbólumok;Képekkel];[Bélyegkép;Lista]]", + "[Súbor;Upraviť;Obraz;Vrstva;Priečinok;Vybrať;Filter;Zobrazenie;Okno;Jazyk;Prihlásiť sa;Odhlásiť sa;Vytvoriť preklad;[Účet;Podmienky služby;Späť;O programe;Nahlás chybu;Nauč sa];Viac;Téma;Použiť WebGL;[Photopea: Pokročilý grafický editor;Bezplatný online editor podporujúci formáty PSD, XCF, Sketch, XD a CDR.;Vytvorte nový obrázok alebo otvorte existujúce súbory z počítača. Uložte svoju prácu ako PSD (Súbor - Uložiť ako PSD) alebo ako JPG / PNG / SVG (Súbor - Exportovať ako).;Navrhnite nové funkcie v našom alebo . Naším cieľom je vytvoriť .;Sponzorské odkazy sa otvárajú v novom okne.;Táto funkcia nie je dostupná.;]];[Otvoriť;Zverejniť online;Uložiť;Uložiť ako PSD;Tlačiť;Otvoriť z URL;Otvoriť z počítača;Spojiť s Google Drive;Exportovať ako;Exportuj vrstvy;Skript;Otvoriť a Umiestniť;Zatvoriť;Miestne Úložisko;];[Krok dopredu;Krok dozadu;Vyčistiť;Vyplniť;Transformácia;Otočiť;Preklopiť VAR0;Roztiahnuť VAR0;Dopredu / Dozadu;Perspektíva;[Automatické prelínanie;Automaticky zarovnať];Zoslabiť;];Úpravy;[Jas/Kontrast;Úrovne;Krivky;Expozícia;Živosť;Odtieň/Sýtosť;Vyváženie farieb;Čierna & Biela;Fotografický filter;Miešanie kanálov;Vyhľadávanie farieb;Invertovať;Posterizovať;Prah;Gradientový prechod;Selektívna farba;[Auto Tón;Auto Kontrast;Auto Farby];Nahradiť farbu];[Vystrihnúť;Kopírovať;Vložiť;Nový;Vymazať;Zapnúť;Vypnúť;Kopírovať z celku;Použiť;Znovu;Aktualizovať];[Duplikovať vrstvu;Nová vrstva úprav;Rastrová maska;Vektorová maska;Pridať (Odhaliť všetko);[Pridať (skryť všetko);Odhaliť výber;Skryť výber;Podľa priehľadnosti];[Orezová maska;Režim Rýchla maska];Previesť na Smart Object;Rastrovať;Pridať do zložky;Zlúčiť nadol;Zlúčiť nahor;[Spojiť vrstvy;Do jednej vrstvy];Nová vrstva;Zapnúť rastrovú masku;Vypnúť rastrovú masku;Zapnúť vektorovú masku;Vypnúť vektorovú masku;Zapnúť orezovú masku;Vypnúť orezovú masku;Nový priečinok;Pridať rastrovú masku;Zmazať rastrovú masku;Pridať vektorovú masku;Zmazať vektorovú masku;Spojiť rastrovú masku;Rozdeliť rastrovú masku;Spojiť vektorovú masku;Rozdeliť vektorovú masku;Zapnúť štýly vrstvy;Vypnúť štýly vrstvy;Zmazať vrstvu;Zmena priehľadnosti vrstvy;Zmena režimu prelínania;Rastrovať štýl vrstvy;Poradie vrstiev;[Vytvoriť Smart Object;Aktualizovať Smart Object;Umiestniť Smart Object;Zdroj (Smart Object);Režim balíčku];Zmena názvu;Zmena farby;Zmena vrstvy úprav;Previesť na tvar;Zapnúť masku filtrov;Vypnúť masku filtrov;Zapnúť chytré filtre;Vypnúť chytré filtre;Pridať masku filtrov;Zmazať masku filtrov;Zmazať chytré filtre;[[Prekrytie farbou;Prekrytie prechodom;Prekrytie vzorkom;Podľa obsahu];Nová vrstva krytia;Úprava vrstvy krytia];Vrstva kopírovaním;Maska filtra;Zmazať štýl vrstvy;Presunúť chytré filter;Zmazať chytré filter;[Prepojiť vrstvy;Zrušiť prepojenie vrstiev];Usporiadať;[Presunúť na začiatok;Presunúť dopredu;Presunúť dozadu;Presunúť na koniec];[Vrstva je zamknutá.;Zmena Zámku;];];[Všetko;Odznačiť;Invertovať;Upraviť;Rozšíriť;Zúžiť;Zmäkčiť okraj;Posun výberu;Rozsah farieb;Okraj;Transformovať výber;Spresniť okraje;Opraviť výber;];[Priblížiť;Oddialiť;Vodítka;Pravítka;Mriežka;Prichytávanie;Prichytiť k;Okraj dokumentu;Pixelová mriežka;Cesty;Prichytiť k pixelom;[Rezy;Parametre rezu];Zobraziť];[História;Vrstvy;Vlastnosti;Štetec;Znak;Odstavec;Info;Kompozícia;Vzorkovník;Akcia;Histogram;Navigátor;Konfigurácia nástrojov;];[Štetec;Klonovacie razítko;Orez;Guma;Eliptický výber;Kvapkadlo;Prechod;Ruka;Vodorovný text;Laso;Magnetické laso;Presun;Kúzelná palička;Kýblik farby;Mnohouholníkové laso;Obdĺžnikový výber;Voľná transformácia;Lupa;Rozostrenie;Zostrenie;Rozmazanie;Zosvetlenie;Stmavenie;Hubka;Bodový retušovací štetec;Retušovací štetec;Záplata;Výber cesty;Priamy výber;Pero;Pero od ruky;Iný tvar;Obdĺžnik;Elipsa;Tvar s parametrami;Čiara;Pravítko;Rýchly výber;Ceruzka;Perspektívne Orez;Nástroj rez;Nástroj výber rezu;Nahradiť farbu;Červené oči;Výber objektov;Mazanie pozadie;;Otočiť Obraz;;];[Vyfotiť;Výber farby;Editor kontúr;Veľkosť plátna;Duplikovať do ...;Editor prechodu;Štýl vrstvy;Nový projekt;Uložiť pre web;Pokrivenie;Veľkosť obrazu;Vektorizovať bitmapu;[Zastrihnúť;Orezať;Odhaliť všetko];Klávesové skratky;Pridať vodítka;[Odstrániť vodítka;Vodítka podľa vrstvy]];[Krytie;Efekty;Jas;[Kontrast;Použiť kompatibilitu];Kanál;Expozícia;Posun;Gamma korekcia;Odtieň;Sýtosť;Svetlosť;Kolorizovať;Rozsah;Živosť;[Veľkosť;Interpolácia;Najbližší sused;Bilineárna];Uhol;Zaoblenie;Tvrdosť;Medzery;[Režim prelínania;Prelínať keď];Veľkosť vzorku;Kontúra;Štýl;[Otočiť;Relatívna;Ukotviť];Tolerancia;Súvislé;Výplň;Použiť globálny uhol;Vzdialenosť;Rozšírenie;Šum;Vyseknúť vrhnutý tieň;Metóda;Smer;Hĺbka;Zmäkčiť;Režim;Prechod;Veľkosť;Zarovnať s vrstvou;Poloha;Šírka;Výška;Cieľ;Typ;Popredie;Pozadie;Vlastné;Názov;Vytvoriť;Formát;Zachovať pomer strán;[Kvalita;Stránky];Duplikovať;Presun;Chytré filtre;Polomer;Miera;Distribúcia;[Rovnomerná;Gaussovská];Monochromatický;Veľkosť bunky;Vzorka;Hustota;Sila;Zachovať detaily;Typ výplne;Textúra;Chvenie;Hrana;Zdroj;Cieľ;Kanály;Maska;Hustota;Zarovnaný;[Cesta;Tvar;Pixely;Palce;Centimeter;Milimeter;Percento];Tvary;Strany;Predvoľby;[Dĺžka;Pomer;Ľubovoľný;Typ mriežky;Izometrický;Veľkosť mriežky;Jednotky pravítka];Redukovať šum;Farby;Vzdialenosti;Miera;Automatický výber;Nájsť;Definovať nový;[Foto;Obrazovka;Mobil;Reklama;Tlač];[Voľný;Pevný pomer;Pevná veľkosť];Pomoc;[Živé tvary;Úprava živých tvarov;Rovnaké polomery];Rozmazanosť;[Mnohouholník;Hviezda;Špirála;Štvorec];[Polomer rohov;Vnútorný polomer]];[Farba;[Žiadna;Červená;Oranžová;Žltá;Zelená;Modrá;Fialová;Šedá;Biela;Priesvitná;Čierna;Azúrová;Purpurová;Neutrálny];Celkom;Absolútna;Zachovať svetlosť];[Vrhnutý tieň;Vnútorný tieň;Vonkajšia žiara;Vnútorná žiara;Úkos a reliéf;Prekrytie farbou;Prekrytie prechodom;Prekrytie vzorkom;Satén;Vytiahnutie;Možnosti prelínania;Vybrať pixely];[Tvar špičky;Dynamika špičky;Rozptyl;Dynamika farby;[Kolísanie veľkosti;Minimálny priemer;Kolísanie uhla;Kolísanie zaoblenia;Minimálne zaoblenie];[Rozptyl polohy;Počet;Kolísanie počtu];[Kolísanie popredia/pozadia;Kolísanie odtieňa;Kolísanie sýtosti;Kolísanie jasu];[Zvoľte zdroj klonovania pridržaním Alt a kliknutím do obrazu.;Označte popredie Bielou, pozadie Čiernou a neznámu oblasť Šedou.;Vrstvu nemožno upravovať.;Textová vrstva sa musí najsôr rastrovať;Smart Object sa musí najsôr rastrovať;Vyberte niekoľko vrstiev;Vyrovnať vrstvu;Najprv otvorte dokument.;Najprv zatvorte aktuálne okno.;Len aktuálny nástroj];[Nahrať;Nová skupina akciu;Nová akcia];[Prítlak pera mení priehľadnosť;Prítlak pera mení veľkosť];[Normálne;Rozpustiť;Stmaviť;Násobenie;Stmaviť farby;Lineárne stmaviť;Tmavšia farba;Zosvetliť;Závoj;Zosvetliť farby;Lineárne zosvetliť;Svetlejšia farba;Prekryť;Mäkké svetlo;Tvrdé svetlo;Jasné svetlo;Lineárne svetlo;Bodové svetlo;Tvrdé miešanie;Rozdiel;Vylúčiť;Odpočítať;Rozdeliť;Odtieň;Sýtosť;Farba;Svetlosť;Prejst skrz]];[Preklad;Prestrkanie;Posun účiaria;[Previesť na bodový text;Previesť na odstavcový text]];[Všetok obsah;Aktuálna vrstva;Výber;Vrstva a vrstvy pod ňou];[Nahradiť;Spojiť;Odobrať;Prienik;Vylúčiť;Spojiť];[[Lineárny;Kruhový;Uhlový;Zrkadlený;Diamant;Podľa tvaru];[Mäkší;Presná];[Vonkajší úkos;Vnútorný úkos;Reliéf;Poduškový reliéf;Reliéfny ťah;Hrúbka vytiahnutie];[Vyhladiť;Tvrdá;Mäkká;Hladkosť];[Hore;Dole];[Vonku;Na stred;Vnútri;Zo stredu];[Tiene;Stredné tóny;Odlesky];[Znížiť sýtosť;Zvýšiť sýtosť];[Malý;Stredný;Veľký];[Zakončenie;Rohy;Čiarky]];[Vybrať objekt pod kurzorom;Ovládacie prvky transformácie;Skutočné pixely;Prispôsobiť obrazovke;[Zarovnať ľavé hrany;Vodorovne na stred;Zarovnať pravé hrany;Zarovnať horné hrany;Zvisle na stred;Zarovnať spodné hrany;Rovnaké medzery]];[Vložiť do;Súčasný projekt;Nový projekt;Rozlíšenie;Pridané do súčasného projektu.;Nový projekt vytvorený.;Nebol povolený prístup ku kamere.];[Orientácia;Ohyb;Vodorovná deformácia;Zvislá deformácia;[Vodorovne;Zvisle;vodorovne;zvisle];[Žiadne;Oblúk;Spodný oblúk;Vrchný oblúk;Klenba;Vydutie;Mušľa dole;Mušľa hore;Vlajka;Vlna;Ryba;Vyvýšenie;Rybie oko;Nafúknutie;Stlačenie;Skrútenie;Vlastné];[Font;nie je dostupný;Pre vykreslenie sa použije;Máte neuloženú prácu v;Naozaj ho chcete zatvoriť?];[Prehodiť farby;Základné: čierna a biela]];[Načítaný;pridané;Posun vodítka;Zmazanie vodítka;Pridanie vodítka;Načítanie;Načítať VAR0];[Galéria filtrov;[[Skvapalniť;[Rozmazať;Obnoviť;Vyhladiť;Zatočiť;Zmrštiť;Nafúknuť;Posun doľava;Zmraziť;Rozmraziť]];[Korekcia šošovky objektívu]];Rozostrenie;[Priemer;Rozostriť;Rozostriť viac;Pravouhlé rozostrenie;Gaussovské rozostrenie;Rozostrenie šošovkou;Rozostrenie pohybom;Kruhové rozostrenie;Rozostrenie tvarom;Chytré rozostrenie;Rozostrenie povrchu];Skresliť;[Pokriviť;Uštipnúť;Polárne súradnice;Zvlniť;Strihať;Zagulatiť;Vlna];Šum;[Pridať šum;Vyhladiť;Prach a škrabance;Medián];Pixelizácia;[Farebné poltónovanie;Kryštalizácia;Fazeta;Fragment;Mezzotinta;Mozaika;Vybodkovať];Vykresliť;[Mraky;Mraky: Rozdiel;Odlesk objektívu];Zaostriť;[Zaostriť;Zaostriť hrany;Zaostriť viac;Chytré zaostrenie;Maska zaostrenia];Štylizácia;[Difúzia;Reliéf;Extrudácia;Nájsť hrany;Olejová Maľba];Ostatné;[Vlastné;Výšky;Maximum;Minimum;Posun;Opakovať];[Oblasť okolo;Nastaviť priehľadnú;Zopakovať pixely na hrane;Zopakovať obrázok;Posledný Filter;Náhľad]];[Šablóny;[Filter písma;Kľúčové slová;Zamiešať];[So symbolmi;S fotkou];[Miniatúry;Zoznam]]", + "[Tệp;Chỉnh sửa;Hình ảnh;Lớp;Thư mục;Lựa chọn;Bộ lọc;Xem;Cửa sổ;Ngôn ngữ;Đăng nhập;Đăng xuất;Tạo bản dịch;[Tài khoản;Điều khoản dịch vụ;Trở lại;Giới thiệu;Báo lỗi;Hướng dẫn];Thêm;Giao diện;Sử dụng WebGL;[Photopea: trình chỉnh sửa hình ảnh nâng cao;Trình chỉnh sửa trực tuyến miễn phí hỗ trợ các định dạng PSD, XCF, Sketch, XD và CDR.;Tạo một hình ảnh mới hoặc mở các tập tin hiện có từ máy tính của bạn. Lưu công việc của bạn dưới dạng PSD (Tệp - Lưu dưới dạng PSD) hoặc dưới dạng JPG / PNG / SVG (Tệp - Xuất dưới dạng).;Đề xuất các tính năng mới tại hoặc của chúng tôi. Mục tiêu của chúng tôi là tạo ra ;Liên kết tài trợ mở trong một cửa sổ mới.;;]];[Mở;Xuất bản trực tuyến;Lưu;Lưu dưới dạng PSD;In;Mở từ URL;Mở File từ máy tính;Kết nối với Google Drive;Xuất dưới dạng;Xuất các lớp;Bản thảo;Chèn ảnh;Đóng;Lưu trữ cục bộ;];[Bước Tiến;Bước giật lùi;Xóa;Tô màu;Biến đổi;Quay;Lật theo chiều VAR0;Quy mô VAR0;Hoàn tác / Làm lại;Phối cảnh;[Trộn lớp;];Mờ;];Điều chỉnh;[Độ sáng/tương phản;Trình độ;Đường cong;Phơi bày;Rung động;Vùng màu/Độ bão hòa màu;Cân bằng màu sắc;Đen trắng;Bộ lọc ảnh;Bộ chỉnh âm;Màu tra cứu;Đảo ngược;Áp dụng;Ngưỡng;Bản đồ Gradient;Màu sắc chọn lọc;[Tự chỉnh tone;Tự cân bằng sáng;Tự chỉnh màu];Thay thế màu];[Cắt;Sao chép;Dán;Mới;Xóa bỏ;Bật;Vô hiệu hóa;Bản sao hợp nhất;Áp dụng;Làm lại;Cập nhật];[Nhân bản lớp;Lớp điều chỉnh mới;Mặt nạ Raster;Mặt nạ vector;Thêm (Hiển thị Tất cả);[Thêm (Ẩn tất cả);Tiết lộ vùng chọn;Ẩn vùng chọn;Từ sự minh bạch];[Mặt lạ Clipping;];Đổi thành lớp ảnh đối tượng;Đổi thành lớp ảnh Raster;Nhóm các lớp;Hợp nhất với lớp dưới;Hợp nhất;[Hợp nhất lớp;];Lớp mới;Bật Mặt nạ Raster;Vô hiệu hoá Mặt nạ Raster;Bật Mặt nạ Vector;Tắt Mặt nạ Vector;Bật Clipping Mask;Vô hiệu Clipping Mask;Thư mục mới;Thêm Mặt nạ Raster;Xoá Mặt nạ Raster;Thêm Mặt nạ Vector;Xóa Mặt nạ Vector;Nối Mặt nạ Raster;Bỏ nối Mặt nạ Raster;Nối Mặt nạ Vector;Bỏ nối Mặt nạ Vector;Bật Hiệu ứng cho lớp;Tắt Hiệu ứng cho lớp;Xóa lớp;Thay đổi độ mờ lớp;Thay đổi chế độ Hòa trộn;Chuyển Layer Style thành Raster;Sắp xếp lớp;[Tạo Smart Object;Cập nhật Smart Object;Đặt Smart Object;Nguồn (Đối tượng thông minh);];Đổi tên;Đổi màu;Chỉnh sửa lớp Hiệu chỉnh;Chuyển thành Shape;Bật Mặt nạ lọc;Tắt mặt lạ lọc;Bật bộ lọc thông minh;Tắt bộ lọc thông minh;Thêm mặt nạ lọc;Xóa mặt lạ lọc;Xóa lọc thông minh;[[Đổ màu Solid;Đổ màu chuyển sắc;Đổ họa tiết;Nội dung nhận thức];Lớp đổ màu mới;Hiệu chỉnh lớp đổ màu];Tạo lớp bằng copy;Mặt lạ lọc;Xóa style của lớp;Di chuyển lọc thông minh;Xóa lọc thông Minh;[Liên kết lớp;Hủy liên kết lớp];Sắp xếp;[Đưa lên trước;Đưa lên trên;Đưa về sau;Đưa về sau cùng];[Lớp đã khóa;Đổi trạng thái khóa;];];[Tất cả;Bỏ chọn;Ngược lại;Hiệu chỉnh;Mở rộng;Thu hẹp;Độ mờ;Di chuyển vùng chọn;Chọn vùng màu;Khung;Chỉnh sửa vùng chọn;Làm láng cạnh;Sửa theo vùng chọn;];[Phóng to;Thu nhỏ;Hướng dẫn;Thước;Lưới;Gắn;Gắn vào;Giới hạn tệp tin;Lưới điểm ảnh;Path;Chụp ảnh theo pixel;[Chia cắt;];];[Lịch sử;Lớp;Các thuộc tính;Nét bút;Kí tự;Đoạn văn bản;Thông tin;So sánh lớp;Swatch màu;Hành động;Biểu đồ;Điều hướng;Công cụ cài đặt sẵn;];[Bút lông;Cọ sao chép;Cắt xén tỷ lệ;Tẩy xóa;Vòng chọn tròn;Lấy mẫu màu;Chuyển sắc;Di chuyển;Văn bản;Chọn vùng tự do;Chọn vùng nhanh;Di chuyển;Chọn vùng theo màu;Đổ màu;Chọn vùng theo nét;Vùng chọn vuông;Thay đổi hình dạng tự do;Phóng to;Làm mờ;Làm nét;Chà mờ;Làm sáng;Làm tối;Làm nhòe;Sửa nét bút;Sửa bút vẽ;Vá ảnh;Chọn Path;Chọn trực tiếp;Bút;Vẽ tự do;Khung tùy chọn;Hình vuông;Hình e-líp;Hình đa giác;Đường thẳng;Thước kẻ;Chọn vùng nhanh;Bút chì;Cắt xén tự do;Chia cắt;Chọn chia cắt;;;;;;;;];[Chụp ảnh;Chọn màu sắc;Chỉnh sửa viền;Kích cỡ Canvas;Nhân bản vào tệp tin...;Trình chỉnh sửa Gradient;Kiểu lớp ảnh;Dự án mới;Lưu cho web;Làm cong;Kích thước ảnh;Ảnh Vector;[Trim-Cắt;;];Các phím tắt bàn phím;Thêm hướng dẫn;[;]];[Độ trong đục;Hiệu ứng;Độ sáng;[Tương phản;Sử dụng sẵn có];Kênh;Tiếp xúc;Bù đắp;Điều chỉnh gamma;Vùng màu;Độ bão hòa màu;Nhẹ nhàng;Tô màu;Phạm vi;Rung;[Kích thước;Nội suy;Trọng số gần nhất;Song tuyến];Góc;Tròn;Độ mềm cứng;khoảng cách;[Chế độ Blend;Trộn];Cỡ mẫu;Viền;Kiểu;[Đảo ngược;Tương đối;Điểm neo];Lòng khoan dung;Tiếp giáp;Tô màu;Sử dụng toàn bộ góc;Khoảng cách;Lan tỏa;Nhiễu;Bóng đổ viền;Chuyên môn;Đường dẫn;Độ sâu màu;Làm mềm;Mode;Màu chuyển sắc;Tỉ lệ;Căn chỉnh với lớp;Vị trí;Chiều rộng;Chiều cao;Điểm đến;Kiểu;Màu tô;Màu nền;Tùy chỉnh;Tên;Tạo;Định dạng;Giữ tỷ lệ khung hình;[Chất lượng;Trang];Nhân bản;Di chuyển;Bộ lọc thông minh;Bán kính;Giá trị;Phân phối;[Đồng phục;Gaussian];Đơn sắc;Kích thước Ô;Họa tiết;Mờ tỏ;Mạnh;Bảo vệ chi tiết;Loại màu;Họa tiết;Jitter;Cạnh;Nguồn;Đích;Kênh;Mặt nạ;Tỉ trọng;Căn chỉnh;[Đường dẫn;Hình dạng;Pixels;Inches;Centimet;Millimet;Phần trăm];Hình dạng;Số cạnh;Sở thích;[Chiều dài;Tỉ lệ;Bất kì;Loại lưới;Phương vị;Khoảng cách lưới;Đơn vị thước];Giảm noise;Màu sắc;Khoảng cách;Khoảng cách;Tự động lựa chọn;Tìm kiếm;Xác định mới;[Ảnh;Màn hình;Điện thoại di động;Quảng cáo;In];[Tự do;Tỷ lệ cố định;Kích thước tùy chỉnh];Trợ giúp;[Hình sống động;Chỉnh sửa hình dạng trực tiếp;Cùng Radii];Fuzziness;[Đa giác;Hình sao;Xoắn ốc;Hình vuông];[Bán kính góc;Bán kính trong]];[Màu;[Không;R. Đỏ cờ;Cam;Vàng;G. Xanh cây;B. Xanh tím;Tím;Xám;Trắng;Nền trong;Đen;Xanh lam;Đỏ sen;Trung tính];Toàn bộ;Tuyệt đối;Giữ gìn độ sáng];[Thả bóng;Bóng bên trong;Ánh sáng bên ngoài;Sáng bên trong;Vát cạnh và chạm nổi;Lớp phủ màu;Lớp phủ màu chuyển sắc;Lớp phủ họa tiết;Sa tanh;Bo viền;Tùy chỉnh kiểu lớp ảnh;];[Hình dạng nhọn;Tip Dynamics;Tiêu tan;Động lực màu;[Kích thước jitter;Đường kính tối thiểu;Góc jitter;Độ tròn jitter;Độ tròn tối thiểu];[Vị trí jitter;Đếm;Đếm jitter];[Jitter Màu / nền;Sắc tố Jitter;Bão hòa jitter;Độ sáng jitter];[Chọn nguồn clone bằng cách giữ Alt (hoặc K) và nhấp vào hình ảnh.;Đánh dấu tiền cảnh với màu trắng, nền với màu đen và khu vực không xác định với màu xám.;Lớp không thể chỉnh sửa;Lớp văn bản phải được rasterized trước;Đối tượng thông minh phải được rasterized trước;Chọn nhiều lớp;Sắp đặt lớp;Mở tài liệu trước;Đóng cửa sổ hiện tại trước.;Chỉ công cụ hiện tại];[Ghi lại;Thiết lập hành động mới;Hành động mới];[Stylus điều khiển độ trong đục;Stylus Điều khiển Kích cỡ];[Bình thường;Hòa tan;Làm tối;Multiply;Ghi màu;Tuyến tính nóng;Màu tối hơn;Làm sáng;Màn hình;Màu Dodge;Tuyến tính Dodge;Màu sáng hơn;Lớp phủ;Ánh sáng mềm mại;Đèn rất sáng;Ánh sáng sinh động;Ánh sáng tuyến tính;Pin nhẹ;Hỗn hợp cứng;Sự khác biệt;Loại trừ;Trừ khử;Phân chia;Vùng màu;Độ bão hòa màu;Màu;Độ sáng;Đi qua]];[Dẫn đầu;Theo dõi;Đổi đường nét;[Chuyển đổi thành văn bản;Chuyển đổi sang đoạn văn bản]];[Tất cả các lớp;Lớp hiện tại;Lựa chọn;Lớp hiện tại];[Thay thế;Kết hợp;Loại trừ;Giao nhau;Loại trừ;Hợp nhất];[[Tuyến tính;Xuyên tâm;Góc;Phản ánh;Kim cương;Hình nổ tung];[Mềm hơn;Tóm lược];[Góc ngoài;Góc xiên bên trong;Chạm nổi;Gối chạm khắc;Chạm nổi đường viền;Chiều rộng đường viền];[Mịn;Chạm cứng;Chạm khắc mềm;Độ mịn];[Lên;Xuống];[Nét ngoài;Trung tâm;Phía trong;Từ giữa];[Bóng đổ;Midton;Điểm nổi bật];[Bão hòa;Bão hòa];[Nhỏ;Trung bình;Lớn];[Mũ;Góc;Dấu gạch ngang]];[Chọn đối tượng dưới con trỏ;Tùy chọn biến đổi;Xem thực tế;Vừa với vùng làm việc;[Căn lề trái;Vào giữa theo chiều ngang;Căn lề phải;Căn chỉnh lên đầu;Vào giữa theo chiều dọc;Căn lề dưới;Khoảng cách bằng nhau]];[Đặt vào;Dự án hiện tại;Tạo mới;Độ phân giải;Đã thêm vào dự án hiện tại.;Một dự án mới đã được tạo ra.;Truy cập vào máy ảnh đã bị từ chối];[Sự định hướng;Bẻ cong;Biến dạng ngang;Thay đổi dọc;[Ngang;Dọc;ngang;dọc];[Không;Vòng cung;Vòng cung thấp;Vòng cung trên;Cổng vòm;Phồng;Vỏ dưới;Vỏ trên;Cờ;Làn sóng;Cá;Tăng lên;Mắt cá;Thổi phồng;Bóp méo;Xoắn;Tùy chỉnh];[Phông chữ;không có sẵn;Sẽ được hiển thị bằng;Có công việc chưa được lưu trong;Bạn có thực sự muốn đóng nó?];[Đổi màu sắc;Mặc định: trắng và đen]];[Tải;Thêm;Di chuyển hướng dẫn;Xóa hướng dẫn;Thêm hướng dẫn;Đang tải;Tải VAR0];[Lọc thư viện ảnh;[[Hóa lỏng;[Dơ bẩn;Tái thiết;Làm mịn;Xoay tròn;Co lại;Thổi;Đẩy sang trái;Đông cứng;Làm lỏng ra]];[Hiệu chỉnh ống kính]];Làm mờ;[Trung bình cộng;Mờ;Làm mờ thêm;Hộp mờ;Mờ Gaussia;Làm mờ ống kính;Chuyển động mờ;Mờ xuyên tâm;Nhòe hình dạng;Làm mờ thông minh;Bề mặt mờ];Làm méo;[Chỗ để;Giữ;Tọa độ cực;Gợn sóng;Cắt;Hình cầu;Làn sóng];Độ ồn;[Thêm độ ồn;Tuyệt vọng;Bụi và vết trầy xước;Giữa đường];Pixel;[Hạt màu;Kết tinh;Khía cạnh;Miếng;Gác lửng;Khảm;Pointillize];Kết xuất;[Đám mây;Mây khác biệt;];Làm sắc nét;[Làm sắc nét;Làm sắc cạnh;Làm sắc nét hơn;Làm sắc nét thông minh;Mặt nạ unsharp];Cách điệu;[Khuếch tán;Chạm nổi;Đùn lên;Tìm các cạnh;];Khác;[Tùy chỉnh;Vượt lên cao;Tối đa;Tối thiểu;Bù lại;Lặp lại];[Khu vực không xác định;Đặt thành trong suốt;Lặp lại các pixel cạnh;Quấn quanh;Lọc cuối;Xem trước]];[Mẫu;[Bộ lọc phông chữ;Từ khóa;Ngẫu];[Với biểu tượng;Với ảnh];[Hình thu nhỏ;Danh sách]]", + "[Файл;Редакция;Изображение;Слой;Папка;Изберете;Филтър;Изглед;Прозорец;Език;Вход;Изход;Създай превод;[Профил;Условия за ползване;Назад;За;Съобщаване за грешка;Научете];Повече;Тема;Използвайте WebGL;[Photopea: Разширен редактор на изображения;Безплатен онлайн редактор, поддържащ PSD, XCF, Sketch, XD и CDR формати.;Създайте ново изображение или отворете съществуващи файлове от вашия компютър. Запазете работата си като PSD (Файл - Запис като PSD) или като JPG / PNG / SVG (Файл - Експортиране като).;Предложете нови функции в нашия или . Нашата цел е да създадем <най-напредналия и достъпен фоторедактор>.;Спонсорите връзки се отварят в нов прозорец.;;]];[Отвори;Публикувай online;Запис;Запис като PSD;Печат;Отвори от URL;Отвори от компютъра;Връзка с Google Drive;Експортиране като;Експортиране на слоеве;Скрипт;Отвори и постави;Затвори;Локално пространство;];[Стъпка напред;Стъпка назад;Изчисти;Запълни;Трансформация;Завъртане;Обърнете VAR0;Мащабиране VAR0;Отмяна / Повторение;Перспективно;[Авто-смес;];Отслаби;];Корекции;[Яркост / Контраст;Нива;Криви;Експонация;Вибрантност на цвета;Оттенък / Наситеност;Цветови баланс;Черно и Бяло;Фото Филтър;Смесител на канали;Търсене на цвят;Инвертиране;Плакат;Праг;Карта на градиента;Селективен Цвят;[Автоматичен Тон;Автоматичен Контраст;Автоматичен Цвят];Сменете цвета];[Изрязване;Копиране;Поставяне;Нов;Изтрий;Активиране;Деактивиране;Копиране на сливането;Приложи;Отново;Актуализиране];[Дублиране на слоя;Нов слой за настройка;Растерна маска;Векторна маска;Добави (покажи всички);[Добави (скрий всички);Покажи селекцията;Скрий селекцията;От прозрачност];[Маска за изрязване;Режим на бърза маска];Превърни в интелигентен обект;Рестиризилане;Групирай слоеве;Сливане надолу;Сливане нагоре;[Сливане на слоеве;Изравнете изображението];Нов слой;Активиране на растерна маска;Деактивиране на растерна маска;Активиране на векторна маска;Деактивиране на векторна маска;Активиране на маска за изрязване;Деактивиране на маска за изрязване;Нова папка;Добави растерна маска;Изтрий растерна маска;Добави векторна маска;Изтрий векторна маска;Свързване на растерна маска;Изключване на растерна маска;Свързване на векторна маска;Изключване на векторна маска;Активиране ефекти на слоя;Деактивиране ефекти на слоя;Изтриване на слой;Промяна прозрачност на слоя;Промяна на смесването;Растеризиране стилове на слоя;Ред на слоевете;[Създай Смарт обект;Актуализиране на Смарт обект;Поставяне на Смарт обект;Източници (Интелектен обект);];Смяна на име;Смяна на цвят;Промяна на Регулиращ Слой;Конвертирай във Форма;Активиране Филтърна Маска;Деактивиране Филтърна Маска;Активиране Смарт Филтри;Деактивиране Смарт Филтри;Добави Филтър Маска;Изтрий Филтър Маска;Изчисти Смарт Филтри;[[Попълване с плътен цвят;Попълване с градиент;Попълване с текстура;Базирано на съдържание];Нов слой за попълване;Промени слой за попълване];Слой от копие;Филтър Маска;Изтрий стил на слой;Премести Смарт филтър;Изтрий Смарт филтър;[Свързване на слоеве;Откачане на слоеве];Подреди;[Доведи отпред;Доведи напред;Заведи назад;Заведи отзад];[Слоят е заключен.;Заключи/Отключи;];];[Всичко;Отмяна на избора;Обръщане;Промени;Разшири;Свий;Изтъняване;Премести селекцията;Цветови диапазон;Бордер;Трансформирай селекцията;Преработка на краищата;Heal селекция;];[Увеличи;Отдалечи;Водачи;Владетели;Мрежа;Свържи;Свържи със;Граници на документа;Пикселова мрежа;Пътища;Прилепване към пиксели;[Oтрез;Опции за отрез];Покажи];[История;Слоеве;Свойства;Четки;Символ;Параграф;Информация;Състав на слоевете;Мостри;Операция;Хистограма;Навигатор;Предварителни настройки на инструмента;];[Четка;Инструмент за клониране;Инструмент за изрязване;Инструмент за изтриване;Избор с елипса;Пипета;Инструмент за градиент;Инструмент ръка;Инструмент за писане;Избор с ласо;Избор с магнетично ласо;Инструмент за местене;Магическа пръчица;Кофа;Полигонично Ласо Селектиране;Квадратна селекция;Свободна Трансформация;Приближаване и отдалечаване;Замъгляване;Острота;Замазване;Изсветляване;Потъмняване;Гъба;Премахване на петна;Излекуване;Закърпване;Избиране на Пътека;Директно Избиране;Химикалка;Свободна Химикалка;Специални Форми;Правоъгълник;Елипса;Параметрични Форми;Линия;Владетел;Бърза селекция;Молив;Изрязване на перспектива;Инструмент за изрязване;Инструмент за избор на сектори;Смяна на цвета;Инструмент за червени очи;Избор на обект;Гума за фон;;;;];[Снимай;Цветоизбирач;Контурен Едитор;Големина на Платното;Дупликирай в;Градиент редактор;Стил на Слоя;Нов проект;Запази за Уеб-а;Деформиране;Големина на Изображението;Векторизиране на Растерното Изображение;[Подрязване;Изрязване;Разкрий всички];Клавишни Преки Пътища;Добави Ръководства;[Изчистване на водачите;Ръководства от слой]];[Прозрачност;Ефекти;Светлост;[Контраст;Използвайте съвместимост];Канал;Експозиция;Изместване;Корекция на Гамата;Оттенък;Наситеност;Светлинност;Оцветяване;Диапазон;Цветова Живост;[Размер;Интерполация;Най-близкия съсед;Билинеарна];Ъгъл;Закръгленост;Твърдост;Интервал между;[Начин на Смесване;Смес];Размер на Извадката;Контур;Стил;[Наобратно;Относителен;Котва];Толерантност;Съседен;Запълване;Използвай глобалния ъгъл;Дистанция;Разпространи;Шум;Нокайтурай Падащата Сянка;Техника;Посока;Дълбочина;Омекоти;Метод;Градиент;Мащаб;Подравнете със слой;Позиция;Широчина;Височина;Дестинация;Тип;Преден План;Заден План;Персонализиран;Име;Създай;Формат;Запази Съотношението;[Качество;Страници];Дублирай;Премести;Интелигенти Филтъри;Радиус;Количество;Разпределение;[Еднороден;Гауски];Едноцветен;Размер на Клетката;Шарка;Менструация;Сила;Запази Детайлите;Тип Запълване;Текстура;Треперене;Ръб;Източник;Мишена;Канали;Маска;Плътност;Подравнен;[Пътека;Форма;Пиксели;Инча;Сантиметри;Милиметри;Процент];Форми;Страни;Преференции;[Дължина;Съотношение;Всеки;Тип мрежа;Изометрични;Размер на мрежа;Единици на линийката];Намали Шума;Цветове;Разстояния;Рейтинг;Авто-Избиране;Намери;Дефинирай Нов;[Снимка;Экран;Мобилно;Реклами;Принтиране];[Освободен режим;Фиксирано Съотношение;Фиксирана Големина];Помощ;[Живи Форми;Промени Живата Форма;Същите Радиуси];Мъгла;[Многоъгълник;Звезда;Спирала;Квадрат];[Радиус на ъглите;Вътрешен радиус]];[Цвят;[Нищо;Червено;Оранжево;Жълто;Зелено;Синьо;Лилаво;Сиво;Бяло;Прозрачно;Черно;Циан;Маджента;неутрален];Общо;Абсолютно;Зберігати свічення];[Падаща Сянка;Вътрешна Сянка;Външна Светлина;Вътрешна Светлина;Наклон И Релеф;Цветова Настилка;Градиентова Настилка;Шаркова Настилка;Сатина;Щрих;Опции за Смесване;Изберете пиксели];[Форма на Върха;Връхови Динамики;Разпилей;Цветовни Динамики;[Големина на Трептенето;Минимален Диаметър;Ъгъл на Треперенето;Кръглост на Трептенето;Минимална Кръглост];[Позиционно Трептене;Брой;Брой на Трептенията];[Трептене на Предния/Задния-план;Оттенък на Трептенето;Насищане на Трептенето;Сетлинност на Трептенето];[Задръжте АЛТ (или К) бутона и цъкнете върху изображението за да изберете източника на клониране;Отбележи Предния план с Бяло, Задния фон с Черно и незнайната територия със Сиво;Слоят неможе да бъде променян.;Текстовият Слой трябва да бъде растеризиран преди това;Интелигентият Обект трябва да бъде растеризиран преди това;Избери множество слоеве;Изправяне на слой;Първо отворете документ.;Първо затворете текущия прозорец.;Само текущ инструмент];[Запис;Нов набор операции;Нова операция];[Стилус налягане контролира непрозрачност;Контрол на налягането];[Normal;Dissolve;Darken;Multiply;Color Burn;Linear Burn;Darker Color;Lighten;Screen;Color Dodge;Linear Dodge;Lighter Color;Overlay;Soft Light;Hard Light;Vivid Light;Linear Light;Pin Light;Hard Mix;Difference;Exclusion;Subtract;Divide;Оттенък;Наситеност;Цвят;Свічення;Pass Through]];[Водещ;Проследяване;Базовата линия;[Преобразуване в текст на точка;Преобразуване в текст на абзаца]];[Всички Слоеве;Текущ Слой;Избор;Текущ и Надоло];[Замени;Обедини;Изваждане;Пресичане;Изключване;Сливане];[[Линеен;Радиален;Ъгъл;Отразено;Диамант;Изблик на Формата];[По-меко;Прецизно];[Външен Наклон;Вътрешен Наклон;Релеф;Възглавнично Релефиране;Контурен Релеф;Ширина на контура];[Гладко;Длето (твърдо);Длето (меко);Гладкост];[Нагоре;Надолу];[Отвън;Центрирано;Отвътре;От центъра];[Сенки;Средни тонове;Осветени части];[Десатурирай (черно-бяло);Сатурирай (цвят)];[Малко;Средно;Голямо];[Краища;Ъгли;тирета]];[Избери обекта под курсора;Контроли за транформация;Пиксел към пиксел;Прилягане на площта;[Подравнете левите ръбове;Центрирайте хоризонтално;Подравнете десните ръбове;Подравнете горните ръбове;Центрирайте вертикално;Подравнете долните ръбове;Равни пропуски]];[Поставете в;Текущ проект;Нов Проект;Резолюция;Добавен в текущия проект;Създаден е нов проект;Достъпът до камерата беше отказан.];[Ориентация;ভাল আছি;Хоризонтално изкривяване;Вертикално изкривяване;[Хоризонтален;Вертикален;хоризонтално;вертикално];[Няма;Дъга;Долна дъга;Горна дъга;Арка;Издутина;По-ниска обвивка;Горна част на обвивката;Флаг;Вълна;Риба;Покачване;Рибено око;Издуват;Стиснете;извъртане;];[Шрифтът;не е налице;;;];[;]];[;добавено;;;;;];[Филтър галерия;[[;[;;;;;;;;]];[]];;[;;;;;Замъгляване на обектива;;;;;];;[;;;;;;];;[;;;];;[;;;;;;];;[;;];;[;;;;];;[;;;;];Друго;[;;;Минимум;;];[;;Повторение на пикселите на ръбовете;Обгърне;Предишен филтър;Преглед]];[Шаблони;[Филтър за шрифтове;Ключови думи;По случайност];[Със Символи;Със снимка];[Миниатюри;Списък]]", + "[Датотека;Измени;Слика;Слој;Фолдер;Изабери;Филтар;Поглед;Прозор;Језик;Улогуј се;Излогуј се;Направи превод;[Налог;Услови коришћења;Назад;О програму;Пријави грешку;Научи];Више;Тема;Користи WebGL;[Photopea: напредна обрада слика;Бесплатна онлајн обрада слика која подржава PSD, XCF, Sketch XD и CDR формате.;Направи нову слику или отвори постојећу датотеку са свог рачуанра. Сачувај рад као PSD (Датотека - Сачувај као PSD) или као JPG / PNG / SVG (Датотека - Извези као));Предложи нове функционалности на нашим или страницама. Наш циљ је стварање <најнапреднијег и најприступачније платформе за обраду слика>.;Линкови спонзора се отварају у новом прозору.;Ова функција није доступна.;]];[Отвори;Објави онлајн;Сними;Сними као PSD;Штампај;Отвори са URL;Отвори са рачунара;Повежи са Google Drive;Извези као;Извези слојеве;Скрипта;Отвори & Стави;Затвори;Локално складиште;];[Корак напред;Корак назад;Бриши;Попуни;Трансформиши;Ротирај;Обрни VAR0;Скалирање VAR0;Корак назад / Корак напред;Перспектива;[Аутоматско уклапање слојева;Аутоматски поравнај];Избледи;];Измене;[Осветљеност/Контраст;Нивои;Криве;Експозиција;Живост;Нијанса/Засићеност;Баланс боја;Црно & бело;Фото филтар;Канални миксер;Претраживач боје;Обрни;Постеризуј;Праг;Мапа градијента;Изабрана боја;[Аутоматско тонирање;Аутоматски контраст;Аутоматска боја];Замени боју];[Исеци;Копирај;Налепи;Ново;Избриши;Омогући;Онемогући;Копирај спојено;Примени;Понови;Ажурирај];[Дуплирај слој;Нови корективни слој;Растерска маска;Векторска маска;Додај (Прикажи све);[Додај (Сакриј све);Прикажи обележено;Сакриј обележено;Од непровидности];[Маска исечка;Брзо маскирање];Промени у Паметни објекат;Растеризуј;Групиши слојеве;Слепи наниже;Слепи навише;[Слепи слојеве;Сравни слику];Нови слој;Омогући Растерску маску;Онемогући Растерску маску;Омогући Векторску маску;Онемогући Векторску маску;Омогући Маску исечка;Онемогући Маску исечка;Нови директоријум;Додај Растерску маску;Избриши Растерску маску;Додај Векторску маску;Избриши Векторску маску;Повежи Растерску маску;Откачи Растерску маску;Повежи Векторску маску;Откачи Векторску маску;Омогући Ефекте слоја;Онемогући Ефекте слоја;Избриши Слој;Промена прозирности слоја;Промена мешања;Растеризуј стил слоја;Редослед слојева;[Креирање Паметног објекта;Ажурирање Паметног објекта;Постављање Паметног објекта;Извор (Паметни објекат);Мод слојевања];Промена имена;Промена боје;Измени Корективни слој;Претвори у Облик;Омогући Маску филтра;Онемогући Маску филтра;Омогући Паметне филтере;Онемогући Паметне филтере;Додај Маску филтера;Избриши Маску Филтера;Бриши Паметне Филтере;[[Испуна бојом;Испуна градијентом;Испуна узорком;Свестан Садржаја];Нови слој испуне;Измени слој испуне];Слој преко копије;Филтер маска;Избриши стил слоја;Помери паметни филтер;Избриши паметни филтер;[Повежи слојеве;Развежи слој];Уреди;[Постави у први план;Приближи унапред;Удаљи уназад;Пошаљи назад];[Овај слој је закључан.;Закључај промену;];];[Све;Уклони обележено;Обрнуто;Промени;Прошири;Смањење;Перо;Помери обележно;Распон боја;Ивица;Трансформиши одабрано;Дотерај ивицу;Поправи одабрано;];[Приближи;Удаљи;Вођице;Лењири;Мрежа;Лепљење;Залепи на;Ивице слике;Мрежа пиксела;Путање;Залепи за пикселе;[Исечци;Опције исечака];Приказивање];[Историја;Слојеви;Подешавања;Четка;Знак;Пасус;Информације;Композиције слојева;Палета боја;Акције;Хистограм;Навигатор;Подешавање алата;];[Алат Четка;Алат Клон;Алат Секач;Алат Гумица;Одабир елипсе;Алат Одабира боје;Алат Градијент;Алат Рука;Алат Куцање;Ласо одабир;Магнетни ласо одабир;Алат Померање;Чаробни штапић;Алат Канта боје;Полигонални ласо одабир;Правоугаони одабир;Слободна трансформација;Алат Zoom;Алат Замагљивања;Алат Изоштравања;Алат Размазивања;Алат Избељивања;Алат Затамњивања;Алат Сунђер;Алат Четка за лечење мрље;Алат Четка за лечење;Алат Закрпа;Одабир путања;Директни одабир;Оловка;Слободна оловка;Прилагођен облик;Правоугаоник;Елипса;Параметарски облик;Линија;Лењир;Брзи одабир;Алат Оловка;Сечење перспективе;Алат Исечак;Алат Одабира исечка;Замена боје;Алатка Црвене очи;Одабир објекта;Брисање позадине;ja sam;Ротирај преглед;;];[Снимање фотографије;Бирач боје;Уређивање контура;Величина платна;Дуплирај на...;Уређивање градијента;Стил слоја;Нови пројекат;Сачувати за веб;Искривити;Величина слике;Претворити у векторску графику;[Исецање;Сечење;Откриј све];Скраћенице на тастатури;Додати вођице;[Избрисати вођице;Вођице са слоја]];[Непрозирност;Ефекти;Осветљеност;[Контраст;Коришћење старе верзије];Канал;Експозиција;Офсет;Гама корекција;Нијанса;Засићеност;Светлина;Обојити;Опсег;Живост боја;[Величина;Интерполација;Најближи сусед;Дволинијски];Угао;Закривљеност;Тврдоћа;Проред;[Мешања;Мешај ако];Величина узорка;Контура;Стил;[Обрнути;Релативно;Тежиште];Толеранција;Непрекидно;Испуна;Користити глобални угао;Удаљеност;Ширење;Шум;Искључити сенку;Техника;Правац;Дубина;Омекшање;Начин;Градијент;Скалирање;Поравнати са слојем;Позиција;Ширина;Висина;Дестинација;Тип;Предњи план;Позадина;Изабрана;Назив;Направи;Формат;Задржати однос страна;[Квалитет;Стране];Дуплирати;Померати;Паметни филтри;Полупречник;Количина;Дистрибуција;[Уједначити;Гаусов];Монохроматски;Величина ћелије;Узорак;Ток;Јачина;Заштити детаљ;Врста испуне;Текстура;Џитер;Ивица;Порекло;Мета;Канали;Маска;Густина;Поравнато;[Путања;Облик;Пиксели;Инче;Центиметри;Милиметри;Проценат];Облици;Стране;Подешавања;[Дужина;Однос;Било који;Тип мреже;Изометријски;Процеп мреже;Јединице лењира];Умањи шум;Боје;Удаљености;Стопа;Ауто-одабир;Нађи;Дефиниши ново;[Фотографија;Екран;Мобилни;Рекламе;Штампа];[Бесплатно;Фиксирани однос;Фиксирана величина];Помоћ;[Живи облик;Уреди живи облик;Исти полупречници];Мутност;[Полигон;Звезда;Спирала;Квадрат];[Угао полупречника;Унтрашњи полупречник]];[Боја;[Празно;Црвена;Наранџаста;Жута;Зелена;Плава;Љубичаста;Сива;Бела;Провидна;Црна;Цијан;Мађента;Неутрална];Укупно;Апсолутни;Очувај осветљеност];[Додај сенку;Унутрашња сенка;Спољашњи одсјај;Унутрашњи одсјај;Косина и Клесање;Прекривање бојом;Прекривање градијентом;Прекривање узорком;Сатен;Ивица;Опције мешања;Изабери пиксел];[Предложи облик;Предложи динамике;Распршити;Динамике боје;[Насумична величина;Минимални пречник;Насумични угао;Насумична заобљеност;Минимална заобљеност];[Насумична позиција;Број;Насумични број];[Насумични предњи план/позадина;Насумична нијанса;Насумична засићеност;Насумична сјајност];[Изаберите извор клонирања држањем Аlt (или K) и кликом на слику.;Обележите предњи план с белом, позадину са црном, а непознате делове са сивом бојом.;Слој није могуће изменити.;Слој текста најпре мора бити растеризован;Паметни објекат мора најпре бити растеризован;Обележи више слојева;Исправи слој;Најпре отвори документ.;Најпре затворите тренутни прозор.;Само за тренутни алат];[Сними;Група нових акција;Нова акција];[Притисак стајлуса контролише непровидност;Притисак стајлуса контролише величину];[Нормални;Отопљени;Затамњени;Вишеструки;Тамњење боје;Линеарно затамњење;Затамни боју;Посветли;Екран;Посветљење боје;Линеарно посветљење;Посветли боју;Прекривање;Меко светло;Оштро светло;Живописно светло;Линеарно светло;Везивно светло;Јаки микс;Разлика;Изузеће;Одузимање;Дељење;Нијанса;Засићеност;Боја;Блиставост;Пролазак]];[Размак редова;Размак између слова;Промена основне линије;[Промени у тачку текста;Промени у текст у пасусу]];[Сви слојеви;Тренутни слој;Избор;Тренутни & Испод];[Замени;Споји;Одузети;Пресећи;Искључити;Спојити];[[Линеарно;Радијално;Угао;Рефлексија;Дијамант;Прасак облика];[Смекшај;Прецизније];[Спољна косина;Унутрашња косина;Клесање;Мекано клесање;Клесање линије;Дебљина ивице];[Мекано;Јако длето;Меко длето;Мекоћа];[Горе;Доле];[Споља;Центар;Унутра;Из центра];[Сенке;Средњи тонови;Светли тонови];[Уклонити засићење;Засити];[Мали;Средњи;Велики];[Велика слова;Углови;Цртице]];[Изаберите објекат испод курсора;Контроле трансформације;Пиксел за пиксел;Попуни област;[Поравнај леве ивице;Центрирај хоризонтално;Поравнај десне ивице;Поравнај горње ивице;Центрирај вертикално;Поравнај доње ивице;Једнаки прореди]];[Постави на;Тренутни пројекат;Нови пројекат;Резолуција;Додато у тренутни пројекат.;Нови пројекат је креиран.;Приступ камери је забрањен.];[Оријентација;Савити;Хоризонтална дисторзија;Вертикална дисторзија;[Хоризонтала;Вертикала;Хоризонтално;Вертикално];[Ништа;Лу̑к;Доњи лу̑к;Горњи лу̑к;Свод;Испупчење;Доњи омотач;Горњи омотач;Застава;Талас;Риба;Раст;Рибље око;Надувати;Стиснути;Увити;Изборни];[Фонт;није доступан;Биће рендерован коришћењем;Постоји несачувани рад;Да ли заиста желиш да затвориш?];[Замени боје;Предефинисано: бело и црно]];[учитан;додат;Помери вођицу;Обриши вођицу;Додај вођицу;Учитавање;Учитај VAR0];[Галерија филтра;[[Учини течним;[Замуљај;Реконструиши;Смекшај;Ковитлај;Смањи;Повећај;Гурни лево;Замрзни;Одмрзни]];[Корекција сочива]];Замагли;[Просек;Замаглити;Замагли више;Ограничено замагљење;Гаусово замагљење;Замагљење сочива;Замагљење покрета;Замагљење кружно;Замагљење облика;Паметно замагљење;Замагљење површине];Дисторзија;[Помери;Уштини;Поларне координате;Заталасај;Смакни;Начини сферичним;Талас];Шум;[Додај шум;Уклони тачкице;Прашина & Огреботине;Тежишна линија];Пикселизуј;[Полутон боје;Кристализуј;Брушење;Фрагмент;Мецотинта;Мозаик;Истачкај];Рендеруј;[Облаци;Облаци разлике;Одсјај сочива];Изоштри;[Изоштри;Изоштри ивице;Изоштри више;Паметно изоштравање;Маска против оштрења];Стилизуј;[Дифузуј;Клесање;Извуци;Нађи ивице;Уљана фарба];Остало;[Изборни;Високи пролаз;Максимум;Минимум;Офсет;Понови];[Непозната површина;Постави на провидно;Понови ивичне пикселе;Обмотај;Последњи филтар;Преглед]];[Шаблони;[Филтер фонтова;Кључне речи;Насумично измешај];[Са симболима;Са фотографијом];[Минијатуре;Списак]]", + "[;Redakto;Foto;Shtresa;Dosja;Përzgjidh;Filtrues;Pamja;Dritarja;Gjuha;Kyçu;Dil;Krijo përkthim;[Llogaria;Kushtet e Shërbimit;Prapa;;;];Më shumë;Motivi;Perdor WebGL;[;;;;;;]];[Hape;Boto në internet;Ruaje;Ruaje si PSD;Shtype;Hape nga URL;Hape nga kompjuteri;Lidhu me Google Drive;Eksporto Si;Eksporto Shtresat;Skript;Hap & Vendos;Mbyll;;];[Ec para;Ec prapa;Pastro;Mbush;Transformo;Rrotullo;;;Ç'bëje / Ribëje;Perspektive;[;];Zhduket;];Përshtatjet;[Shkëlqimi/Kontrasti;Nivelet;Lakoret;Ekspozimi;Dinamika;Toni/Përzierja;Ekuilibri i Ngjyrave;Bardh & Zi;Foto Filtruesi;Përzierës Ngjyrash;Kërkues Ngjyrash;Anasjelltas;Posterizo;Pragu;Harta Gradient;Ngjyrë e Përzgjedhur;[Auto Tone;Auto Kontrast;Auto Ngjyre];Zevendeso Ngjyren];[Preje;Kopjo;Hidhe;E Re;Grise;Mundëso;Pamundëso;Kopjo së bashku;Vendos;;];[Dyfisho shtresën;Shtresë e Re e Përshtatjes;Maska Raster;Maska e Vektorit;Shto (Shfaq të gjitha);[Shto (Fshih të gjitha);;;];[Maska Prerëse;];E konverto në Objekt të Mençur;Rasterizo;Grupo Shtresat;Bashko Poshtë;Bashko Sipër;[Bashko Shtresat;];Shtresë e Re;Mundëso Maskën Raster;Pamundëso Maskën Raster;Mundëso Maskën Vektoriale;Pamundëso Maskën Vektoriale;Mundëso Maskën e Prerjes;Pamundëso Maskën e Prerjes;Dosje e Re;Shto Maskë Raster;Grise Maskën Raster;Shto Maskë Vektoriale;Grise Maskën Vektoriale;Lidhe Maskën Raster;Ç'lidhe Maskën Raster;Lidhe Maskën Vektoriale;Ç'lidhe Maskën Vektoriale;Mundëso Efektet e Shtresës;Pamundëso Efektet e Shtresës;Grise Shtresën;Ndrysho Tejdukshmërinë e Shtresës;Ndryshimi i Përzierjes;Stili i Shtresës së Rasterizimit;Radhitja e Shtresave;[Krijimi i Objektit të Mençur;Përditësimi i Objektit të Mençur;Vendosja e Objektit të Mençur;;];Ndryshimi i Emrit;Ndryshimi i Ngjyrës;Redakto Shtresën e Përshtatjes;E konverto në Formë;Mundëso Maskë Filtrimi;Pamundëso Maskë Filtrimi;Mundëso Filtruesit e Mençur;Pamundëso Filtruesit e Mençur;Shto Maskë Filtruese;Grise Maskën Filtruese;Pastro Filtruesit e Mençur;[[Mbushje me Ngjyrë të Pastër;Mbushje Gradient;Mbushje me Model;];Shtresë e Re Mbushjeje;Ndrysho Shtresën Mbushëse];Shtresë përmes Kopjimit;Maska Filtruese;Grise Stilin e Shtresës;Zhvendose Filtruesin e Mençur;Grise Filtruesin e Mençur;[Lidh Shtresat;Clidh Shtresat];Rendit;[Sill ne Fillim;Sill Perpara;Co Mbrapa;Co ne Fund];[Shtresa eshte e Kycur.;Kyc Ndryshimin;];];[Të Gjitha;Ç'selekto;Anasjelltas;Ndrysho;Zgjero;Zvogëlim;Pendë;Zhvendos Përzgjedhjen;Gama e Ngjyrave;Kufiri;Transformo Selektimin;Rafino Qoshet;Seleksioni i Sherimit;];[Zmadho;Zvoglo;Udhëzuesi;Rregullat;Rrjeta;Kapje;Kapja Tek;Kufizimet e dokumenteve;Rrjeti i Pikselëve;Rrugët;;[;];];[Historia;Shtresat;Vetitë;Brusha;arabic;Paragrafi;Informacion;Kompozime Shtresash;Galeria e Ngjyrave;Veprime;Histogram;;;];[Brusha;Klonuesi;Prerësi;Grisësi;Përzgjidh Elipsin;Përzgjedhje ngjyrash;Mjeti Kursimit;Dora;Mjeti Shkrimit;Përzgjidh Litarin;Përzgjedhje me Laso Magnetike;Lëvizësi;Muri Magjik;Kova e Ngjyrave;Përzgjedhësi Poligonal;Përzgjedhësi Katrorë;Transformimi Lirë;Zmadhuesi;Paqartësuesi;Theksuesi;Ndotësi;Terruesi;Djegësi;Sfungjeri;Furçe riparuese në formë pike;Furçe Riparuese;Bandazhuesi;Përzgjidh Rrugën;Përzgjidhja e Drejtpërdrejtë;Lapsi;Laps i Lirë;Formë Personale;Drejtkëndësh;Elipsë;Formë Parametrale;Vijë;Vizorja;Përzgjedhje e Shpejtë;Stilolapsi;Kropo ne Perspektive;;;;;;;;;;];[Bëj Foto;Përzgjedhës Ngjyrash;Redaktuesi Konturit;Madhësia kanavacë;Dyfishoje në ...;Redaktori Rrjedhës Ngjyrës;Stili i Shtresës;Projekti Ri;Ruaje për ueb;Deformo;Madhësia fotos;Bitmap vektorizimi;[Zvogëlim;;];Kombinimet e Tastieres;;[;]];[Mbushja;Efektet;Ndriçimi;[Kontrast;];Kanali;Zbulimi;Menjanimi;Gama Korrigjim;Nuanca;Ngopja;Ndriçimi;Ngjyrimi;Domeni;Gjallëria;[Madhësia;;;];Këndi;Rrumbullak;Fortësia;Hapësira;[Mënyra Përzierjes;];Madhësia Mostrës;Numëruesi;Stili;[E Kundërta;;];Toleranca;Vazhdues;Mbush;Shfrytëzo kënd të përgjithshëm;Largësia;Përhap;Zhurmimi;Maskimi i hijes;Teknika;Drejtimi;Thellësia;Zbute;Mënyra;Rrjedha Ngjyrës;Shkalla;E nivelo me fletën;Pozita;Gjerësia;Lartësia;Destinacioni;Lloji;Paravija;Prapavija;Përzgjedhur;Emri;Krijo;Formati;Ruaje raportin e anëve;[Kualiteti;];Dyfisho;Lëvize;Filtruesit e Mençur;Radius;Sasia;Shpërndarja;[Njësimi;Gausian];Monokromatik;Madhësia Qelisë;Mostra;Rrjedha;Forca;Mbrojtje e Detajuar;Lloji Mbushjes;Teksturë;Luhatje;Qoshja;Burimi;Objektivi;Kanalet;Maska;Dendësia;Rradhitur;[Rruga;Forma;Piksel;Inçi;Centimetri;Milimetri;Përqind];Format;Anët;Parapëlqimet;[Gjatësia;Raporti;Cdo;;;;];Zvogëlo Zhurmën;Ngjyrat;Largësitë;Sasia;Selekto Automatikisht;Gjej;Krijo te re;[Foto;Ekrani;Celular;Reklama;];[Liro;Raport Fiks;Permase Fikse];Ndihme;[Figura Live;Edito Figuren Live;Rrezet e Njejta];;[;;;Katror];[;]];[Ngjyra;[Asnjë;E Kuqe;Portokalli;E Verdhë;E Gjelbër;E Kaltër;Vjollcë;Gri;E Bardhë;E Tejdukshme;E Zeze;;;];;;];[Shto Hije;Hije e Brendshme;Shkëlqimi Jashtëm;Shkëlqimi Brendshëm;Hapësirë dhe qoshe të rrafshëta;Mbulimi Ngjyrës;Mbulesa e Gradientit;Mbulesa Mostrës;Saten;Ramja;Mundësitë e Përzierjes;];[Forma Këndit;Dinamika Qosheve;Copëzimi;Dinamika Ngjyrës;[Luhatja Rastit;Diametri Minimal;Luhatja Këndit;Luhatja Rrethit;Rrumbullakësia Minimale];[Luhatja Pozitës;Numrimi;Numri Luhatjeve];[Luhatja në Paravijë/Prapavijë;Luhatja Tonit të Ngjyrës;Luhatja Ngopjes;Luhatja e ndriçimit];[Përzgjidh burimin e klonimit duke shtypur Alt (ose K) dhe duke klikuar nbi foto.;Vendos Foregroundin me te Bardhe, Backgroundin me te Zeze, dhe Zonen tjeter me Gri.;Shtresa eshte e pa Editueshme;Shtresa me Tekst duhet Restarizuar ne fillim;Objekti Smart duhet te Restarizohet ne fillim;Selekto Disa Shtresa;;;;];[;;];[;];[;;;;;;;;;;;;;;;;;;;;;;;;;;;]];[Udhëheqja;Ndjekja;Ndryshimi Bazës;[;]];[Përmbajtja Gjithësej;Fleta Momentale;Përzgjedhja;Kete & Me Poshte];[Zëvendëso;Bashko;Dallimi;Prerja;Përjashto;Bashko];[[Linear;Rrezor;Qoshe;Reflektuar;Diamant;Shpërthimi Formës];[Më e butë;Preciz];[Koni Jashtëm;Koni Brendshëm;Reliefi;Jastëk Stampim;Stampim Goditje;];[Zbut;Gdhendje e Fortë;Gdhendje e Butë;];[Sipër;Poshtë];[Jashtë;Në Mes;Brenda;];[Hijet;Mesi;Pikat kryesore];[Zbrazje;Mbushje];[E Vogel;E Mesme;E Madhe];[;;]];[Përzgjidh objektin nën kursorin;Ngjyrat e transformimit;Piksel për Piksel;Mbush Hapësirën;[Ofro Këndet Majtas;Centro Horizontalisht;Ofro Këndet Djathtas;Ofro Këndet Sipër;Centro Vertikalisht;Ofro Këndet Poshtë;Hapsira te Barabarta]];[E vendos në;Projekti Momental;Projekti Ri;Zgjidhja;E shto në projektin momental.;U krijua projekt i ri.;Qasja tek kamera u refuzua.];[Orientimi;Lako;Shfytyrim Horizontal;Shfytyrim Vertikal;[Horizontal;Vertikal;;];[Asnjë;Hark;Hark Tatëpjetë;Hark Përpjetë;Hark;Ç'gungim;Guaca Poshtë;Guaca Sipër;Flamur;Valë;Peshk;Rrit;Sy Peshku;Fryj;Shtrydh;Përdridh;Përzgjedhur];[Shkronjat;nuk është në dispozicion;Do të kryhet përmes;;];[Ndërro Ngjyrat;Përzgjedhur: Bardh e Zi]];[hapur;shtuar;Lëviz Ndihmuesin;Grise Ndihmuesin;Shto Ndihmues;Duke u hapur;];[Galeria Filtruese;[[Likuifiko;[Perziej;Rikonsktrukto;Lemoje;Rrotulloje ne Spirale;Zvogeloje;Zmadhoje;Shtyje Majtas;Ngri;Shkri]];[Korrigjo Lenten]];Turbull;[Mesatare;Turbullo;Turbullo më shumë;Turbullo kuti;Mjegullim Gausian;Mjegullim Objektivi;Mjegullim Lëvizës;Mjegullim Rrezor;Turbullo në formë;Mjegullim i Mençur;Mjegullimi Sipërfaqes];Shtrembërim;[Displanco;Zmadho;Koordinata Polare;Valezo;Prit;Sferizo;Vale];Zhurmimi;[Shto Zhurmë;Largimi Pengimit;Pluhur & Gërvishtje;Mesatarja];Pikselim;[Ngjyra Gjysmëton;Kristalizim;Aspekt;Fragmento;Mezotint;Mozaik;Pikëzim];Suvatim;[Retë;Diferenco Rete;];Theksimi;[Thekso;Thekso Qoshet;Thekso më shumë;Theksimi i Mençur;Maska e patheksuar];Stilizo;[Shpërndaj;Stampim;Shtrydh;Gjej Qoshet;];Tjera;[Përshtatur;Lartësia;Maksimumi;Minimumi;Efekti Zhvendosjes;Perserit];[Hapësira e padefinuar;Bëje të Tejdukshme;Përsërit Pikselët e Këndit;Pështjell;Filtri i Fundit;Shiko]];[Te Gatshme;[Fikter Fonti;Fjalet Kyc;Zgjidh Rastesisht];[Me simbole;Me foto];[Thumbnails;Listë]]", + "[கோப்பு;தொகு;படம்;அடுக்கு;கோப்பகம்;தெரிவு செய்;வடிகட்டு;காட்சி;சாளரம்;மொழி;உள் நுழை;வெளியேறு;மொழிமாற்று;[கணக்கு;சேவை விதிமுறைகள்;பின்னே;இதைப்பற்றி;பிழையை புகாரளி;கற்றுக்கொள்ள];மேலும்;தோற்றம்;WebGL ஐ உபயோகி;[Photopea : மேம்பட்ட புகைப்பட தொகுப்பி;PSD, XCF, Sketch, XD மற்றும் CDR வகை கோப்புகளை ஆதரிக்கும் இலவச நிகழ்நிலை தொகுப்பி;புதிய படத்தை உருவாக்கு அல்லது கணினியில் ஏற்கனவே உள்ளதை திற. உங்கள் கோப்பை PSD (கோப்பு - PSD ஆக சேமி) அல்லது JPG / PNG / PSD (கோப்பு - கணினியில் ஏற்றுமதியிடு);புதிய வசதிகளை எங்கள்<முகநூல் > இல் பரிந்துரையுங்கள். எங்கள் நோக்கம் <மிகவும் மேம்பட்ட விலையில்லா புகைப்பட தொகுப்பி> ஐ உருவாக்குவதே;ஆதரவாளர் இணைப்புகள் புதிய சாளரத்தில் திறக்கப்படும்.;இந்த வசதி இல்லை.;போட்டோபீயை நிறுவு]];[திற;நிகழ்நிலையில் பதிப்பி;சேமி;PSD ஆக சேமி;அச்சு;URL இல் இருந்து திற;கணினியிலிருந்து திற;Google Drive உடன் இணை;இவ்வாறு சேமி;அடுக்குகளை ஏற்று;அச்சுப்படிவும்;திற & இடப்படுத்து;மூடு;அகச் சேமிப்பகம்;கோப்பு தகவல்];[முன்னர் இருந்த நிலைக்கு செல்;பின்னிருந்த நிலைக்கு செல்;தெளிநீக்கு;நிரப்பு;உருமாற்று;உருட்டு;கவிழ் VAR0;அளவி VAR0;அவிழ் / மீள்செய்;உளப்பார்வை;[தானியங்கு ஒருக்கலத்தல்;தானியங்கு ஒழுங்குமை];மங்க செய்;படத்தை ஓட்டிடு];சீரமைப்புகள்;[ஒளிர்வு/உறழ்பொருவு;மட்டங்கள்;வளைவுகள்;ஒளிபலுக்கல்;வண்ண அதிர்வு;சாயல்/செறிவு;நிறம் நிறைகோல்;கருப்பு வெள்ளை;பட வடிகட்டி;ஒளிவழித்தட கலப்பி;வண்ண அட்டவணை;கவிழ்;பொதிப்பொட்டியாக்கு;தொடக்க வரம்பு;சாய்வுப்படம்;தேர்விட்ட நிறம்;[தானியங்கு தொனி;தானியங்கு உறழ்பொருவு;தானியங்கு நிறம்];நிறத்தை இடமாற்று];[வெட்டு;நகலெடு;ஒட்டு;புதிது;நீக்கு;இயலு;முடக்கு;ஒன்றுபட்டதை நகலெடு;ஓட்டிடு;மீண்டும்;புதுப்பி];[படிவை மறுநகலெடு;புதிய சரிசெய்தல் அடுக்கு;பரவு ஒளிமறை;திசையன் ஒளிமறை;கூட்டுசேர் (அனைத்தையும் வெளிக்காண்பி);[கூட்டுசேர் (அனைத்தையும் மறைத்து);தேர்வை காண்பி;தேர்வை மறை;ஒளியூடுவிலிருந்து];[குத்தி ஒளிமறை;விரைவு ஒளிமறை பயன்முறை];சூட்டிகை பொருளாக மாற்று;பரவாக்கு;குழு அடுக்குகள்;கீழோடு இணை;மேலோடு ஒன்றினை;[அடுக்குகளை ஒன்றினை;படத்தை சமநிலையாக்கு];புதிய அடுக்கு;பரவு ஒளிமறையயை இயல்வி;பரவு ஒளிமறையயை முடக்கு;திசையன் ஒளிமறையை இயல்வி;திசையன் ஒளிமறையை முடக்கு;குத்திய ஒளிமறையை இயல்வி;குத்திய ஒளிமறையை முடக்கு;புதிய கோப்பகம்;பரவு ஒளிமறை சேர்;பரவு ஒளிமறை நீக்கு;திசையன் ஒளிமறை சேர்;திசையன் ஒளிமறை நீக்கு;பரவு ஒளிமறையை இணை;பரவு ஒளிமறையை இணையவிழ்;திசையன் ஒளிமறை இணை;திசையன் ஒளிமறை இணையவிழ்;அடுக்கு விளைவுகளை இயல்வி;அடுக்கு விளைவுகளை முடக்கு;அடுக்கை நீக்கு;அடுக்கு ஒளிபுகாமை மாற்று;ஒருக்கலத்தலை மாற்று;அடுக்கு பாங்கை பரவாக்கு;அடுக்கு வரிசை;[சூட்டிகை பொருள் உருவாக்கம்;சூட்டிகை பொருள் புதுப்பித்தம்;சூட்டிகை பொருள் வைத்தம்;மூலம் (சூட்டிகை பொருள்);குவிப்பு முறை];பெயர் மாற்றம்;நிற மாற்றம்;சீரமைவு அடுக்கை தொகு;வடிவமாக உருமாற்று;வடிகட்டு ஒளிமறையை இயல்வி;வடிகட்டு ஒளிமறையை முடக்கு;சூட்டிகை வடிகட்டல்களை இயல்வி;சூட்டிகை வடிகட்டல்களை முடக்கு;வடிகட்டல் ஒளிமறையை கூட்டுசேர்;வடிகட்டல் ஒளிமறையை நீக்கு;சூட்டிகை ஒளிமறைகளை தெளிநீக்கு;[[நிறம் நிரப்பு;சாய்வுப்படம் நிரப்பு;கோலம் நிரப்பு;உள்ளடக்க விழிப்பு];புதிய நிரப்பு அடுக்கு;நிரப்பு அடுக்கு மாற்றியமை];நகலின் வழியே அடுக்கு;வடிகட்டல் ஒளிமறை;அடுக்கு பாங்கு நீக்கு;சூட்டிகை வடிகட்டல் நகர்த்து;சூட்டிகை வடிகட்டல் நீக்கு;[அடுக்குகளை இணை;அடுக்குகளை அவிழ்];வரிசை முறை;[முன் கொணறு;முன்னே கொணறு;பின்னே அனுப்பு;பின்னுக்கு அனுப்பு];[gngni;மாற்றத்தை பூட்டு;பூட்டு];இயங்குபடம்];[அனைத்தையும்;தேர்வுநீக்கு;கவிழ்;முறை மாற்று;vkfuyfyrr65er7t673465e67rte5;சுருக்கு;மென்மையாக்கு;தேர்வை நகர்த்து;நிற எல்லைகள்;ஓரம்;தேர்வை உருமாற்று;விளிம்பு மாசகற்றி;தேர்வை குணப்படுத்து;மாய வெட்டு];[பெரிதாக்கு;சிறிதாக்கு;வழிகாட்டு கோடுகள்;வரைகோல்;கோட்டு சட்டம்;ஈர்த்தொட்டு;ஈர்த்தொட்டு இதனோடு;ஆவண எல்லைகள்;படத்துணுக்கு சட்டம்;பாதை;படத்துணுக்களோடு ஈரத்தொட்டு;[துண்டுகள்;துண்டு விருப்பங்கள்];காண்பி];[வரலாறு;அடுக்குகள்;பண்புகள்;தூரிகை;எழுத்து;பத்தி;தகவல்;அடுக்கு கலவைகள்;நிற துணி;செயல்கள்;வரலாற்று வரிபட்டை;மீகான்;கருவி முன்னமைவுகள்;செதுக்குகள்];[தூரிகை கருவி;நகலி கருவி;சிறிதாக்கி கருவி;அழிப்பான் கருவி;நீள்வட்ட தேர்வு;நிறத்தேர்வு கருவி;சாய்வு கருவி;கை கருவி;தட்டச்சு கருவி;சுருக்கு தேர்வு;ஈர்ப்பு சுருக்கு தேர்வு;நகர்ப்பான் கருவி;மாயக்கழி;நிற வாளி கருவி;பலகோண சுருக்கு தேர்வு;செவ்வக தேர்வு;விடுவித்த உருமாற்று;பெரிதாக்கி கருவி;மங்கு கருவி;கூராக்கு கருவி;கறையாக்கு கருவி;ஒளிர்வாக்கு கருவி;இருளாக்கு கருவி;நிறவற்றி கருவி;புள்ளி குணமாக்கி தூரிகை கருவி;குணமாக்கி தூரிகை கருவி;நகலொட்டி கருவி;வழி தேர்வு;நேரடி தேர்வு;எழுதுகோல்;விடுவித்த எழுதுகோல்;தனி வடிவம்;செவ்வகம்;நீள்வட்டம்;அளவுரு வடிவம்;கோடு;வரைகோல்;விரைவு தேர்வு;கரிக்கோல் கருவி;உளக்காட்சி சுருக்கி;துண்டாக்கி கருவி;துண்டு தேர்வு கருவி;நிறம் பதிலிடங்கொள்ளுகை;செந்நிற கண் கருவி;பொருள் தேர்வு;பின்னணி அழிப்பான்;பாவை உருமாற்றி;காட்சியை சுழற்று;உள்ளடக்க விழிப்பு அளவி;உள்ளடக்க விழிப்பு நகர்த்தி கருவி];[ஒரு படம் எடு;வண்ண தெரிவி;விளிம்பு தொகுப்பி;இரட்டு அளவு;இதனுள் நகலெடு...;நிறச்சாய்வு தொகுப்பி;அடுக்கு பாங்கு;புதிய திட்டம்;வலைக்காக சேமி;உருமாற்றி;பட அளவு;இணுப்படத்தை திசையனாக்கு;[நேர்த்தியாக்கு;சுருக்கு;அனைத்தையும் காட்டு];விசைப்பலகை குறுக்குவழிகள்;வழிகாட்டிகளைச் கூட்டுசேர்;[வழிகாட்டிகளை வழுநீக்கு;அடுக்கிலிருந்து வழிகாட்டிகள்]];[ஒளிபுகாமை;விளைவுகள்;ஒளிர்மை;[உறழ்பொருவு;பழையமரபு ஐ பயன்படுத்து];அலைத்தடம்;ஒளியிடரின்மை;ஈடு;காமா திருத்தம்;சாயல்;நிற செறிவு;ஒளிமை;வண்ணமயமாக்கு;எல்லை;நிறவதிர்வு;[அளவு;இடைக்கணிப்பு;அருகிலுள்ள அண்டை;ஈரோர்படு];கோணம்;வட்டத்தன்மை;தின்மை;இடைவெளி;[ஒருக்கலப்பு முறை;கலப்பு தொனி எல்லை];மாதிரி அளவு;விளிம்பு;பாங்கு;[மறிநிலை;உறவெண்;நங்கூரமிடு];பொறுத்தல்;தொடர்ச்சியானது;நிரப்பு;உலகளாவிய கோணத்தை பயன்படுத்த்து;தொலைவு;விரி;இரைச்சல்;விழுநிழலை வெளியே தள்ளு;நுட்பம்;திசை;ஆழம்;மென்மையாக்கு;பயன்முறை;நிற சாய்வு;அளவி;அடுக்குடன் சீராக்கு;விளைவின் இடம்;அகலம்;உயரம்;இலக்கு;வகை;முன்புறம்;பின்புலம்;தனிவழக்கம்;பெயர்;படை;படவடிவம்;காட்சி விகிதத்தை காத்திடு;[தரம்;பக்கங்கள்];மறுநகல்;நகர்த்து;சூட்டிகை வடிகட்டல்கள்;ஆரம்;தொகை;வழங்கல்;[சீர்;ஃகாசியன்];ஓர்வண்ணம்;அணுக்கல அளவு;கோலம்;ஓட்டம்;வலிமை;படவிவரங்களை காத்திடு;நிரப்பு வகை;இழைநயம்;நடுக்க துகள்;விளிம்புமுனை;மூலம்;குறியிலக்கு;அலைத்தடங்கள்;ஒளிமறை;நெருக்கம்;சீரமைந்தது;[வழி;வடிவம்;படத்துணுக்குகள்;அங்குலங்கள்;சதமமீற்றர்;மில்லிமீட்டர்;சதவீதம்];வடிவங்கள்;பக்கங்கள்;விருப்பத்தேர்வுகள்;[நீளம்;விகிதம்;ஏதாகிலும்;கட்ட வகை;சமநீள;கட்ட இடைவெளி;வரக்கோல் அலகுகள்];இரைச்சலை குறை;நிறங்கள்;தொலைவுகள்;வீதம்;தானே தேர்வி;கண்டுபிடி;புதியதை வரையறு;[நிழற்படம்;கணினித்திரை;திறன்பேசி;விளம்பரங்கள்;அச்சு];[விடுவித்த;நிலைத்த விகிதம்;நிலைத்த அளவு];உதவி;[நேரடி வடிவம்;நேரடி வடிவத்தைத் திருத்து;ஒரே ஆரம்];தெளிவின்மை;[பலகோணம்;விண்மீன்;திருகுச்சுருள்;சதுரம்];[வளைவு ஆரம்;உள் ஆரம்]];[நிறம்;[ஏதுமில்லை;சிவப்பு;செம்மஞ்சள்;மஞ்சள்;பச்சை;நீலம்;ஊதா;சாம்பல்;வெள்ளை;ஒளிபுகுமை;கருப்பு;நீலப்பச்சை;சென்னீலம்;சார்பற்ற];மொத்தம்;அறுதி;ஒளிர்மையை காத்திடு];[விழுநிழல்;உள்நிழல்;வெளி ஒளிர்வு;உள் ஒளிர்வு;முனைமழுக்கு மற்றும் புடைப்பு;நிற மேலடுக்கு;நிறச்சாய்வு மேலடுக்கு;கோல மேலடுக்கு;பளபளப்பு;கீரல்;ஒருக்கலப்பு விருப்பங்கள்;படத்துணுக்குகளை தேர்வெடு];[கூர்முனை வடிவம்;கூர்முனை இயங்குவியல்;சிதறல்;நிற இயங்குவியல்;[நடுங்கு அளவு;குறைந்தபட்ச குறுக்களவு;கோண நடுக்கம்;வட்டமை நடுக்கம்;குறைந்தபட்ச வட்டமை];[நிலையிட நடுக்கம்;எண்ணிக்கை;எண்ணு நடுக்கம்];[முன்புற/ பின்புற நடுக்கம்;சாயல் நடுக்கம்;செறிவு நடுக்கம்;ஒளிர்வு நடுக்கம்];[Alt (அல்லது K) ஐ பிடித்து படத்தைக் சொடுக்கி நகலி மூலத்தைத் தேர்வேடு.;முன்புறத்தை வெள்ளையாலும், பின்புறத்தை கருப்பாலும், மற்றும் அறியப்படாத பகுதியை சாம்பலாலும் குறி.;அடுக்கு திருத்த இயலாது.;உரை அடுக்கு முதலில் பரவாக்கப்பட வேண்டும்;சூட்டிகை பொருள் முதலில் பரவாக்கப்பட வேண்டும்;பல அடுக்குகளைத் தேர்வெடு;அடுக்கை நேராக்கு;முதலில் ஒரு ஆவணத்தைத் திற.;நடப்பு சாளரத்தை முதலில் மூடு.;நடப்பு கருவி மட்டும்];[பதிவு செய்;புதிய செயல் தொகுப்பு;புதிய செயல்];[மின்னெழுத்தாணி அழுத்தம் ஒளிபுகாநிலையை கட்டுப்படுத்துகிறது;மின்னெழுத்தாணி அழுத்தம் அளவைக் கட்டுப்படுத்துகிறது];[இயல்பானது;கரைப்பு;இருளாக்கு;பெருக்கு;நிற எரிப்பு;நேரியல் எரிப்பு;இருண்ட நிறம்;ஒளிரச்செய்;புகுத்திக்காட்டு;நிற ஒளிர்வு;நேரியல் ஒளிர்வு;இலகுவான நிறம்;மேலே கவி;மென்மையான ஒளி;கடின ஒளி;தெளிவான ஒளி;நேரியல் ஒளி;குத்திய ஒளி;கடின கலவை;வேறுபாடு;விலக்கம்;கழித்தம்;வகுத்தம்;சாயல்;செறிவு;நிறம்;ஒளிர்வு;ஒளி ஊடு]];[முன்னணி;பின்தொடர்;அடிக்கோடு மாற்றம்;[புள்ளி உரைக்கு மாற்ற்று;பத்தி உரைக்கு மாற்று]];[எல்லா அடுக்குகளும்;நடப்பு அடுக்கு;தேர்வு;நடப்பு & கீழே];[பதிலிடங்கொள்;ஒருசேர்;கழி;ஊடறு;தவிர்;ஒன்றிணை];[[நேரியல்;ஆரியல்;கோணம்;எதிரொளித்தது;வைரம்;வடிவ வெடிப்பு];[மென்மையான;துல்லியமான];[வெளி நுனி;உள் நுனி;புடைப்பு;தலையணை புடைப்பு;கீறல் புடைப்பு;கீறல் அகலம்];[மென்மையாக்கு;கடின உளி;மெல்லிய உளி;மென்மை];[மேல்;கீழ்];[வெளிப்புறம்;நடுவே;உட்புறம்;நடுவிலிருந்து];[நிழல்கள்;நடு தொனிகள்;ஒளிர்வுகள்];[செறிவு குறை;செறிவு கூட்டு];[சிறிது;நடுத்தரம்;பெரிது];[தலையெழுத்து;மூலைகள்;தொடர் கோடுகள்]];[சுட்டியின் கீழுள்ள பொருளைத் தேர்வி;உருமாற்றி கட்டுகள்;படத்தொனிகளுக்குள்;பகுதிக்குள் பொருத்து;[இடது விளிம்புகளை சீரமை;கிடைமட்டமாக நடுநிறுத்து;வலது விளிம்புகளை சீரமை;மேல் விளிம்புகளை சீரமை;செங்குத்தாக நடுநிறுத்து;கீழ் விளிம்புகளை சீரமை;சம இடைவெளிகள்]];[இதனுள் இடு;நடப்பு திட்டம்;புதிய திட்டம்;நுணுக்கம்;நடப்பு திட்டத்தில் சேர்க்கப்பட்டது;ஒரு புதிய திட்டம் உருவாக்கப்பட்டது;படமி அணுகல் மறுக்கப்பட்டது];[நோக்குநிலை;வளை;கிடைமட்ட திரிபு;செங்குத்து திரிபு;[கிடைமட்டம்;செங்குத்து;கிடைமட்டமாக;செங்குத்தாக];[எதுவுமில்லை;வில்;தாழ்ந்த வில்;உயர்ந்த வில்;வில்வளைவு;வீக்கம்;தாழ்ந்த சிப்பி;உயர்ந்த சிப்பி;கொடி;அலை;மீன்;ஏழு;மீன் கண்;காற்றேற்று;பிழி;திருகு;தனிவழக்கம்];[எழுத்துரு;கிடைக்கவில்லை;பயன்படுத்தி ஒப்படைக்கப்படும்;சேமிக்கப்படாத பணி இதிலுள்ளது;உண்மையில் அதை மூட விருப்பமா?];[நிறங்களை மாற்று;இயல்புநிலை: வெள்ளை மற்றும் கருப்பு]];[ஏற்றப்பட்டது;சேர்க்கப்பட்டது;வழிக்கோடை நகர்த்து;வழிக்கோடு நீக்கு;வழிக்கோடு சேர்;ஏற்றுகிறது;VAR0 ஏற்று];[வடிகட்டி தொகுப்பு;[[வழிமமாக்கு;[அழுக்காக்கு;புனரமை;மென்மையாக்கு;சுழற்று;சுருக்கு;ஊது;இடற்புறம் தள்ளு;உறை;கட்டவிழ்]];[வில்லை திருத்தம்]];மங்கல்;[நிரலளவு;மங்கலாக்கு;மேலும் மங்கலாக்கு;பெட்டி மங்கல்;காசியன் மங்கல்;வில்லை மங்கல்;அசைவு மங்கல்;ஆரச்சீர் மங்கல்;வடிவ மங்கல்;சூட்டிகை மங்கல்;மேற்பரப்பு மங்கல்];திரி;[பெயரு;கிள்ளு;முனைவு ஒருங்கிணைப்புகள்;சிற்றலை;தரி;கோளமாக்கு;அலை];இரைச்சல்;[இரைச்சல் சேர்;பொட்டுபெருக்கு;தூசி & கீறல்கள்;இடைக்கோடு];படத்துணுக்காக்கு;[நிற தொனிப்பாதி;படிகமாக்கு;முகப்பரப்பு;துண்டு;உலர்ப்புள்ளி முறை;பல்லடுக்கு;புள்ளிப்படமாக்கு];ஒப்படை;[மேகங்கள்;வேற்றுமை மேகங்கள்;வில்லை பட்டொளி];கூர்தீட்டு;[கூர்தீட்டு;முனைகளை கூர்தீட்டு;மேலும் கூர்தீட்டு;சூட்டிகை கூர்தீட்டு;கூரில்லா ஒளிமறை];மிடுக்காகு;[விரவு;புடை;விலக்கு;விளிம்புகளை தேடு;எண்ணெய் வரையல்];மற்றவை;[தனிவழக்கு;உயர் நுழை;பெருமம்;சிறுமம்;ஈடு;ஒப்பி];[வரையறா பகுதி;ஒளிபுகுமையாக்கு;விளிம்பு படத்துணுக்குகளை ஒப்பி;சுற்றி மடக்கு;கடைசி வடிகட்டி;முற்காட்சி]];[வார்ப்புருக்கள்;[எழுத்துரு வடிகட்டி;சிறப்புச் சொற்கள்;சீர்கெடு];[சின்னங்களுடன்;படங்களுடன்];[சிறுபடங்கள்;பட்டியல்]]", + "[བཀྲིས་བདེ་ལེགས།;བཟོ་སྒྲིག;དཔར།;ངོས།;ཡིག་ཁུག;འདེམས།;ཚགས།;ལྟ་སྣང་།;སྒེའུ་ཁུང་།;སྐད་ཡིག;ནང་དུ་འཛུལ།;སྒོ་གཏན།;ཡིག་སྒྱུར་བྱེད།;[དེབ་སྐྱེལ།;ཞབས་ཞུའི་འགན་རྒྱ།;ཕྱིར་ལོག;ངོ་སྤྲོད།;སྙན་ཞུ།;སྦྱོང་།];དེ་ལས་མང་བ།;དཔེ་དཔང་།;WebGL སྤྱད།;[Photopea-དཔར་བཟོའི་མཉེན་ཆས།;PSD, XCF, Sketch, XD, CDR སོགས་དཔར་རིགས་ལ་རྒྱབ་སྐྱོར་ཐོབ་པའི་རིན་མེད་དཔར་བཟོའི་མཉེན་ཆས།;ཡིག་ཆ་གསར་པ་བཟོ་བའམ་ཡང་ན་གློག་ཀླད་ནང་ཡོད་པའི་དཔར་ཞིག་ཁ་འབྱེད། བཟོ་སྒྲིག་ཚར་བ་དང་ PSD (ཡིག་ཆ། - PSD རྣམ་པར་ཉར།) དང་ JPG / PNG / SVG (ཡིག་ཆ། - ཕབས་སྟངས་གཞན།) སོགས་རྣམ་པ་ཅི་རིགས་ཐོག་ཕབ་ལེན་ཉར་ཚགས་བྱེད་ཆོག;ཁྱད་ཆོས་གསར་པའི་རིགས་བསམ་འཆར་ཡོད་ན་ དང་ ཐོག་སྤེལ་རོགས། < ང་ཚོའི་དམིགས་ཡུལ་ནི་རིན་མེད་ཀྱི་དཔར་བཟོའི་མཉེན་ཆས་སྤུས་དག་ཞིག་མཁོ་འདོན་བྱེད་རྒྱུ་ཡིན།>.;སྦྱིན་བདག་ཚོའི་སྒེའུ་ཁུང་།;མཐུན་རྐྱེན་དེ་མིན་འདུག;]];[ཁ་འབྱེད།;དྲ་གནས་སུ་སྤེལ།;ཉར་ཚགས།;PSD རྣམ་པར་ཉར།;དཔར་སློག;དྲ་ཐག་ནས་ཁ་འབྱེད།;གློག་ཀླད་ནས་ཁ་འབྱེད།;Google Drive དང་མཐུད།;ཕབས་སྟངས་གཞན།;ངོས་ཕྱིར་ཕབས།;བརྡ་ཡིག;འདིར་ཁ་ཕྱེ།;ཁ་རྒྱབས།;ས་གནས་སུ་ཉར་གསོག;];[མདུན་གཤིག;རྒྱབ་གཤིག;སུབ།;འགེང།;གཟུགས་འགྱུར།;བསྐོར།;སྐོར་ཚད། 0;ཆེ་ཆུང་། ཚད། 0;ཕྱོར་ལོག / སྔོན་ལོག;སྣང་ཚོད།;[རང་འགུལ་དུ་བསྲེ།;རང་འགུལ་རུ་སྒྲིག];ཡལ།;];སྙོམ་སྒྲིག;[བཀྲག་མདངས། / ལྡོག་ཆོས།;ཆ་སྙོམ།;གུག་ཐིག;འཚེར་ཤུགས།;ཚོན་ཤུགས།;ཚོན། / ཧར་ལོད།;ཚོན་དོ་སྙོམ།;དཀར་པོ་དང་ནག་པོ།;དཔར་ཚགས།;ཁ་དོག་སྲེ་སྦྱོར།;ཁ་དོག་དཔྱད་བསྡུར།;ཕྱི་ནང་སློག་པ།;པར་གཞི་བཟོ་བ།;ཡས་ཆོད།;སྟེགས་རིས་ས་ཁྲ།;གདམ་ག་ཅན་གྱི་ཁ་དོག;[ཚོན་མདངས་རང་སྒྲིག;ལྡོག་ཆོས་རང་སྒྲིག;ཁ་དོག་རང་སྒྲིག];ཚོས་བརྗེ།];[གཏུབ།;བཤུ།;སྦྱར།;གསར་པ།;དོར།;ནུས་ཡོད་བཟོ།;ནུས་མེད་བཟོ།;ཟླ་སྒྲིལ་བྱས་པ་དེ་བཤུས།;སྤྱད།;ཡང་བསྐྱར་བྱེད།;རིམ་སྤར།];[ངོས་འདྲ་བཤུས།;སྒྲིག་ངོས་གསར་པ།;ལྷུ་འབག;སྲ་འབག;གནོན། (ཆ་ཚང་);[སྣོན། (ཆ་ཚང་བསྐུང་);འདེམ་གཞི་མངོན་པ་བཟོ།;འདེམ་གཞི་མི་མངོན་པ་བཟོ།;དྭངས་མ་ནས།];[འབག་བཅད་ཤོག;འབག་གི་རྣམ་པ།];བསྡུ་རིས་ལ་བཟོ།;ལྷུ་བཤིག;ངོས་སྡེ་ཚན་དུ་བཟོ།;འོག་ཏུ་ཟླ་སྒྲིལ།;ཡར་ཟླ་སྒྲིལ།;[ངོས་རྣམས་ཟླ་སྒྲིལ་གཏོང་།;ངོས་གཅིག་ལ་བསྒྲིལ།];ངོས་གསར་པ།;ལྷུ་འབག་ནུས་ཡོད་བཟོ།;ལྷུ་འབག་ནུས་མེད་བཟོ།;སྲ་འབག་ནུས་ཡོད་བཟོ།;སྲ་འབག་ནུས་མེད་བཟོ།;འབག་བཅད་ཤོག་ནུས་ཡོད་བཟོ།;འབག་བཅད་ཤོག་ནུས་མེད་བཟོ།;ཡིག་ཁུག་གསར་པ།;ལྷུ་འབག་སྣོན།;ལྷུ་འབག་དོར།;སྲ་འབག་སྣོན།;སྲ་འབག་དོར།;ལྷུ་འབག་མཐུད།;ལྷུ་འབག་བཅད།;སྲ་འབག་མཐུད།;སྲ་འབག་བཅད།;ངོས་ཀྱི་ཁྱད་ཆོས་ནུས་ཡོད་བཟོ།;ངོས་ཀྱི་ཁྱད་ཆོས་ནུས་མེད་བཟོ།;ངོས་དོར།;ངོས་གསལ་ཆ་སྒྲིག;སྡེབ་སྦྱོར་སྒྲིག;ངོས་ཀྱི་བཀོད་སྒྲིག་ལྷུ་བཤིག;ངོས་ཀྱི་གོ་རིམ།;[བསྡུ་རིས་བཟོ།;བསྡུ་རིས་ཁ་གསབ།;བསྡུ་རིས་འཇོག;ཁུངས། (བསྡུ་རིས།);བརྩེགས་རིམ།];མིང་བརྗེ།;ཚོན་མདོག་བརྗེ།;སྒྲིག་ངོས་སྒྲིག་སྦྱོར།;དབྱིབས་ལ་འགྱུར།;འབག་ཚགས་ནུས་ལྡན་བཟོ།;འབག་ཚགས་ནུས་མེད་བཟོ།;བསྡུ་ཚགས་ནུས་ཡོད་བཟོ།;བསྡུ་ཚགས་ནུས་མེད་བཟོ།;འབག་ཚགས་སྣོན།;འབག་ཚགས་དོར།;བསྡུ་ཚགས་སུབ།;[[ཚོན་རྡོག་གཏོང་།;ཚོན་སྟེགས་གཏོང་།;བཀོད་དཔེ་གཏོང་།;མངོན་ཤེས།];འགེང་ངོས་གསར་པ།;འགེང་ངོས་འགྱུར་བཅོས།];ཤུལ་ནས་ངོས་སུ།;འབག་ཚགས།;ངོས་ཀྱི་བཀོད་སྒྲིག་དོར།;བསྡུ་ཚགས་སྤོ།;བསྡུ་ཚགས་དོར།;[ངོས་དང་མཐུད།;ངོས་དང་མཐུད་བཅད།];གོ་རིམ་སྒྲིག;[མདུན་མདུན་དུ་འཇོག;མདུན་ལ་གཏོང་།;རྒྱབ་ལ་གཏོང་།;རྒྱབ་་རྒྱབ་ལ་འཇོག];[ངོས་བཀག;འགྱུར་བཅོས་བཀག;];];[ཆ་ཚང་།;སློད།;ཕྱི་ནང་སློག་པ།;བཟོ་བཅོས་གཏོང་།;རྒྱ་སྐྱེད།;འདུས་པ།;བྱ་སྒྲོ།;འདེམས་འགུལ།;ཚོན་མདོག་རིགས།;མཚམས་ཐིག;འདེམ་བྱ་གཟུགས་འགྱུར།;མཐའ་སྣེ་སྤུས་དག་ཏུ་གཏོང་།;འདེམ་བྱ་གསོ་ཐབས།;];[ཆེ་རུ་མངོན།;ཆུང་དུ་མངོན།;སྣོན་ཐིག;ཐིག་ཤིང་།;སྒྲོམ་ཐིག;གནན་པ།;དེར་གནན་པ།;ཤོག་མཚམས།;པིག་ཟེལ་སྒྲོམ་ཐིག;ལམ།;པེག་ཟེལ་སྒང་ལ་བསྡད།;[གཏུབ།;གཏུབ་ཆེད་གདམ་ག];སྟོན།];[བྱུང་རིམ།;ངོས།;ཁྱད་ཆོས།;པིར།;ཡིག་འབྲུ།;དུམ་མཚམས།;གནས་ཚུལ།;ངོས་ཀྱི་གྲུབ་ཆ།;ཚོན་སྟར།;ལས་འགུལ།;སྐྱེད་རིས།;ཟུར་ལྟ།;ཡོ་ཆས་སྔོན་སྒྲིག;];[པིར།;འདྲ་བཟོའི་ལག་ཆ།;གཏུབ་ཆས།;སུབ་ཆས།;སྒོར་སྒོར་འདེམས།;ཚོན་བཤེར།;སྟེགས་ཚོན་ལག་ཆ།;ལག་པ།;ཡིག་བཏགས།;ཐག་པ།;ངར་ལྕགས།;འདེམས་བྱེད།;དབྱུག་པ།;ལྕགས་ཀྲིན།;ཐག་པ་ཟུར་ཅན།;གྲུ་བཞི་ཅན།;རང་མོས་གཟུགས་འགྱུར།;མཐོང་ཆ།;རབ་རིབ་བཟོ་ཆས།;དྭངས་གསལ་གཏོང་ཆས།;ནག་ནོག་བཟོ་ཆས།;སླ་ཆས།;སྲེག་ཆས།;འགྱིག་སོབ།;ནག་ཐིག་གསོ་བའི་པིར།;གསོ་བྱེད་པིར།;ལྷན་པ་བརྒྱབ་ཆས།;ཐིག་འདེམས།;ཐད་ཀར་འདེམས།;སྨྱུ་གུ།;རང་མོས་སྨྱུ་གུ།;རང་མོས་དབྱིབས།;གྲུ་བཞི་ནར་མོ།;སྒོར་དབྱིབས།;དབྱིབས་རྒྱས་པ།;ཐིག;ཐིག་ཤིང་།;མྱུར་འདེམས།;མྱུ་གུའི་ལག་ཆ།;ཟུར་བྲེག;གཏུབ་ཆས།;གཏུབ་ཆ་འདེམས་ཆས།;ཚོན་བརྗེ་འགྱུར།;མིག་དམར་པོའོ་ལག་ཆ།;སྡུས་རིས་གདམ།;རྒྱབ་ལྗོངས་སུབ་བྱེད།;ཉེད་ཉེད།;སྐོར་ལྟ།;དངོས་རྟོགས་ཆེ་ཆུང་།;];[པར་ལེན་པ།;ཚོན་འདེམ་བྱེད།;འབུར་ཀོང་སྒྲིག་ཆས།;རས་གཞི།;འདྲ་བཤུས་སུ་་་;སྟེབས་རིས་སྒྲིག;ངོས་ཀྱི་བཀོད་སྒྲིག;ཡིག་ཆ་གསར་པ།;དྲ་རྒྱའི་ཆེད་དུ་ཉར་ཚགས།;གཅུ་སྒྲིམ།;དཔར་ཆེ་ཆུང་།;ཝེག་ཊར་ལ་འགྱུར།;[གཏུབས།;བྲེག;ཆ་ཚང་མངོན།];མྱུར་མཐེབ།;ཐིག་མཚམས་སྣོན།;[ཐིག་མཚམས་གསུབ།;ངོས་བརྟེན་ཐིག་མཚམས།]];[སྒྲིབ་ཚད།;ཤུགས་རྐྱེན།;བཀྲག་མདངས།;[ལྡོག་ཆོས།;འགྲོ་ལུགས་རྙིང་པ་སྤྱད།];ཁ་དོག;འཚེར་ཤུགས།;ཟུར་འཇོག;ག་མ་བཅོས་སྒྲིག;ཚོན།;ཧར་ལོད།;མདངས།;ཚོན་བརྒྱབ།;ཁྱབ་ཚད།;ཚོན་མདངས།;[ཆེ་ཆུང།;ཁ་གསབ།;གྲོང་པ་ཉེ་ཤོས།;གཉིས་ཐིག];གྲུ་ཟུར།;ཟླུམ་ལོད།;མཁྲེགས་ལོད།;སྟོང་ཆ།;[བསྲེ་སྦྱོར་རྣམ་པ།;བསྲེ་སྦྱོར། གལ་ཏེ།];ཆེ་ཆུང་ཚད་གཞི་འགའ།;འབུར་ཀོང་།;བཀོད་སྒྲིག;[ཕྱིན་ཅི་ལོག;ལྟོས་ས་ལྟོས་འཇོག;འཛིན་ས།];བཟོད་སྲན།;ཉེ་འདབས།;འགེང་།;ཟུར་ཁུག་གཅིག་འགྱུར་སྤྱོད།;རྒྱང་ཚད།;བརྐྱངས།;ལྷད།;ལྷད་འཇོམས་པ།;ཐབས་ཇུས།;ཁ་ཕྱོགས།;གཏིང་།;སོབ་སོབ།;རྣམ་པ།;སྟེགས་ཚོན།;ཆེ་རུ་གཏོང་།;ངོས་དང་འཁོད་སྙོམ།;གནས།;ཞེང་ཁ།;མཐོ་ཚད།;ཕྱོགས་ཡུལ།;བཏགས།;ཁ་ངོས།;རྒྱབ་ངོས།;རང་མོས་ལྟར་སྒྲིག;མིང་།;བཟོ།;རྣམ་གཞག;བསྡུར་ཚད་བརྟན་སྡོད་ཐོག;[སྤུད་ཚད།;ཤོག་ངོས།];འདྲ་བཤུས།;འགུལ།;བསྡུ་ཚགས།;ཚངས་ཐིག;གྲངས་འབོར།;འགྲེམས་སྤེལ།;[གཅིག་གྱུར།;ག་ཤན།];ཚོས་གཅིག་མ།;སེལ་ཆེ་ཆུང་།;བཀོད་རིས།;འགྲོས།;ནུས་ཤུགས།;ཞིབ་ཕྲ་སྲུང་སྐྱོབ།;ཡིག་ཆའི་རྣམ་པ།;ཐགས་རན།;སག་སག;མཐའ།;ཁུངས།;ཁ་གཏད།;རྒྱུ་ལམ།;འབག;གར་ལོད།;རུ་སྒྲིག;[ཐིག;དབྱིབས།;པིག་ཟེལ།;ཨིན་ཅི།;སེན་ཊི་མི་ཊར།;མི་ལི་མི་ཊར།;བརྒྱ་ཆ།];དབྱིབས།;ཟུར།;འདམ་ང་།;[རིང་ཚད།;བསྡུར་ཚད།;གང་རུང་།;སྒྲོམ་ཀྱི་རིགས།;རྫས་མཚུངས།;སྒྲོམ་གྱི་བར་ཐག;ཐིག་ཤིང་ཚད་གཞི།];ལྷད་སེལ།;ཚོན་མདོག;བར་ཐག;ཚད།;རང་འགུལ་ངང་འདེམ།;འཚོལ།;ཚད་གཞི་གསར་བཀོད།;[འདྲ་པར།;འཆར་ངོས།;ཁ་པར།;ཁྱབ་བསྒྲགས།;པར་སློག་རྒྱག];[རིན་མེད།;བསྡུར་ཚད་གཅིག;བསྡུར་ཚད་གཅིག་འཇོག];རོགས་རམ།;[དབྱིབས་དངོས་མཐོང་།;དབྱིབས་དངོས་མཐོང་བཟོ་བཅོས།;ཕྱེད་ཚངས་ཐིག་གཅིག་པ།];ཟིབ་ཟིབ།;[ཟུར་མང་ཅན།;སྐར་མ།;གཅུས་སྒྲིམ་ཅན།;གྲུ་བཞི།];[ཟུར་གདོང་ཚངས་ཐིག;ཚངས་ཐིག་ནང་མ།]];[ཚོན་མདོག;[གང་ཡང་མེད།;དམར་པོ།;ལི་ཝང་།;སེར་པོ།;ལྗང་ཁུ།;སྔོན་པོ།;མུ་མེན།;ཐལ་དོག;དཀར་པོ།;ཕྱི་གསལ་ནང་གསལ།;ནག་པོ།;སྔོ་ལྗང་།;དམར་སྨུག;བར་གནས།];ཆ་ཚང་།;ཚད་རྩོད་མེད།;འོད་ཤུགས་ཉར་སྲུང་།];[གྲིབ་གཟུགས།;གྲིབ་གཟུགས་ནང་མ།;འོད་གཟུགས་ཕྱི་མ།;འོད་གཟུགས་ནང་མ།;འཕྲེད་གསེག་དང་འབུར་རྐོས།;སྒང་ལ་ཚོན་འདེབས།;སྒང་ལ་སྟེགས་ཚོན་འདེབས།;སྒང་ལ་བཀོད་རིས་འདེབས།;འཇམ་འོད།;ཐིག་རིས།;སྡེབ་སྦྱོར་བཀོད་སྒྲིག;པིག་ཟེལ་འདེམ།];[དབྱིབས་རྩེ།;ཤུགས་ལྡན་སྣེ།;ཁ་འཐོར།;ཚོན་ཤུགས་ཅན།;[ཆེ་ཆུང་ཚད་སག་སག;དཀྱིལ་ཐིགཉུང་ཤོས།;གྲུ་ཟུར་སག་སག;ཟླུམ་ཟུར་སག་སག;ཟླུམ་ཟུར་ཉུང་ཤོས།];[གནས་སག་སག;གྲངས་བརྩིས།;གྲངས་སག་སག];[ཁ་ངོས་དང་རྒྱབ་ངོས་སག་སག;ཚོན་སག་སག;ཧར་ལོད་སག་སག;བཀྲག་མདངས་སག་སག];[Alt གནོན་ཞོར་འདྲ་ཤུལ་གྱི་ཁུངས་འདེམས།;ཁ་ངོས་དཀར་པོ་དང་། རྒྱབ་ངོས་ནག་པོ། དེ་ནས་ཧ་མ་གོ་རྣམས་ཐལ་མདོག་གྱིས་རྟགས་བརྒྱབ།;ངོས་འདི་བཟོ་བཅོས་མི་ཐུབ།;ཡིག་ངོས་འདི་སྔོན་ལ་ཁ་གཏོར་དགོས།;སྔོན་ལ་བསྡུ་རིས་ལྷུ་བཤིག;ངོས་མང་པོ་འདེམས།;ངོས་ཁར་ཐུག་བཟོ།;ཡིག་ཆ་ཞིག་སྔོན་ལ་ཁ་ཕྱེ།;ད་ལྟའི་སྒེའུ་ཁུང་དེ་ཁ་རྒྱོབས།;ད་ལྟའི་ལག་ཆ་ཁོ་ན།];[བྱ་རིམ་ཐོ་ལེན།;བྱ་རིམ་སྡེ་གསར་པ།;བྱ་རིམ་གསར་པ།];[གློག་སྨྱུག་གནོན་ཤུགས་ཀྱིས་གསལ་ཆ་ཚོད་འཛིན།;གློག་སྨྱུག་གནོན་ཤུགས་ཀྱིས་ཁ་ཆེ་ཆུང་ཚོད་འཛིན།];[སྤྱིར་བཏང་།;ཐིམ་པ།;ནག་ཏུ་གཏོང་།;འཕེལ་སྐྱེད་གཏོང་།;མཚོན་སྲེག;ཐད་སྲེག;མཚོན་ནག་ཏུ་གཏོང་།;དཀར་རུ་གཏོང་།;གསང་ཡོལ།;མཚོན་གཡོལ།;ཐད་གཡོལ།;དཀར་ཆ་ཆེ་བའི་མཚོན།;ཡོངས་སུ་འགྲེམ་པ།;འོད་འཇམ་པ།;འོད་ཤུགས་ཆེ་བ།;འོད་གསལ།;འོག་ཕྱོགས་གཅིག;འོད་སྣེ་མོ་གཅིག;སྲེ་ཆེ་བ།;བར་ཁྱད་ཅན།;ཟུར་འདོན་ཅན།;འབྲེད་པ་ཅན།;ཆ་བགོས་ཅན།;ཚོན།;ཟབ་ཚོན།;ཚོན་ཁྲ།;འོད་ཀྱི་ཁྱབ་ཤུགས།;གསེབ་ལམ།]];[ཕྱོགས་སྟོན།;རྗེས་འདེད།;མ་ཐིག་སྤར།;[ནག་ཐིག་ཅན་གྱི་ཡི་གེར་སྒྱུར།;ཡི་གེའི་དུམ་མཚམས་ལ་སྒྱུར།]];[ངོས་ཆ་ཚང་།;ད་ལྟའི་ངོས།;འདེམས་བྱ།;ད་ལྟ་དང་འདིའི་འོག་མ།];[བརྗེ་ལེན།;ཟླ་སྒྲིལ།;འཐེན་པ།;འབྲེལ་ཐུག;ཟུར་འདོན།;ཟླ་སྒྲིལ།];[[ནར་མོ།;འཁོར་མོ།;གྲུ་ཟུར།;ལྡོག་འཕྲོས།;ས་ཕག;གཟུགས་འཐོར།];[སོབ་སོབ།;ཏག་ཏག];[ཕྱི་གསེག;ནང་གསེག;འབུར་བཟོ།;འབོལ་འབུར།;ཞུ་འབུར།;ཐིག་གི་སྦོམ་ཚད།];[འཇམ་ཤ;གཟོང་རྩུབ་པ།;གཟོང་འཇམ་པ།;འཇམ་ལོས།];[ཡར།;མར།];[ཕྱི་ལ།;དཀྱིལ་ལ།;ནང་ལ།;དཀྱིལ་ནས།];[གྲིབ་གཟུགས།;གྲིབ་མདངས་དབུས།;དཀར་ཆ།];[ཚོན་སླ་པོ།;ཧར་པོ།];[ཆུང་།;འབྲིང་།;ཆེ།];[རྩེ།;ཟུར།;དུམ་ཐིག]];[བརྡ་མོའི་འོག་དེ་འདེམས།;གཟུགས་འགྱུར་སྟངས་འཛིན།;པིག་ཟེལ་ནས་པིག་ཟེལ།;ངོས་འདིར་བཀངས།;[གཡོན་ཟུར་སྟར་སྒྲིག;འཕྲེད་ཀྱི་དཀྱིལ།;གཡས་ཟུར་སྟར་སྒྲིག;སྟེང་ཟུར་སྟར་སྒྲིག;གྱེན་གྱི་དཀྱིལ།;འོག་ཟུར་སྟར་སྒྲིག;བར་སྟོང་གཅིག་པ།]];[སྟེང་དུ་འཇོག;ད་ལྟའི་ལས་འཆར།;ལས་འཆར་གསར་པ།;སྤུས་ཚད།;ད་ལྟའི་ལས་འཆར་ཐོག་སྣོན།;ལས་འཆར་གསར་པ་ཕྱེ་ཟིན།;པར་ཆས་སྤྱོད་རྒྱུར་བཀག་འགོག་བྱུང་སོང་།];[ཁ་ཕྱོགས།;གུག་གུག;འཕྲེད་ལ་སྣར།;གྱེན་ལ་སྣར།;[འཕྲེད་ལ།;གྱེན་ལ།;འཕྲེད་ལ།;གྱེན་ལ།];[གང་ཡང་མིན།;གཞུ་དབྱིབས།;གཞུ་དབྱིབས་འོག་མ།;གཞུ་དབྱིབས་སྒང་མ།;གུག་ཆ།;འབུར་འབུར།;ཉ་སྐོགས་འོག་མ།;ཉ་སྐོགས་སྒང་མ།;དར་ཆ།;རླབས།;ཉ།;ཐོན་པ།;ཉ་མིག;རྒྱངས་པ།;བཙིར་བ།;གཅུ་སྒྲིམ།;རང་མོས་ལྟར།];[ཡིག་གཟུགས།;དེ་ད་ལྟ་མིན་འདུག;སྤྱད་དེ་སྒྲིག་ངེས།;ལས་འཕྲོས་ཤིག་འདིར་འདུག;འདི་ཁ་རྒྱབ་མཁན་ཡིན་ནམ།];[ཚོན་བརྗེ་རེས།;དང་ཐོག དཀར་ནག]];[འདྲེན་ཟིན།;སྣོན་ཟིན།;སྣོན་ཐིག་འགུལ།;སྣོན་ཐིག་སུབ།;སྣོན་ཐིག་གསར་པ།;འདྲེན་བཞིན་པ།;ཕབས། ཚད། 0];[ཚགས་སྡེ།;[[གཤེར་ཁུ།;[ནག་ནོག;བསྐྱར་གསོ།;འཇམ་ཤ;སྦྲུལ་འཁྱིལ།;འཁུམ་པ།;རྒྱང་པ།;གཡོན་ལ་སྐུལ།;ཧྲེང་།;མ་ཧྲེང་།]];[དྭངས་ཤེལ་སྒྲིག]];རབ་རིབ།;[ཆ་སྙོམ།;རབ་རིབ།;རབ་རིབ་མང་ཙམ།;ས་ཕག་རབ་རིབ།;ག་ཤན་རབ་རིབ།;དྭངས་ཤེལ་རབ་རིབ།;གཡོ་འགུལ་རབ་རིབ།;འཁོར་མོ་རབ་རིབ།;གཟུགས་རབ་རིབ།;བསྡུ་རབ་རིབ།;ཕྱི་ངོས་རབ་རིག];སྣར།;[གནས་སྤོ།;ཕྲན་ཙམ།;གཞུང་ཐིག་འབྲེལ་གནས།;རླབས་ཕྲན།;གཏུབ་པ།;ཟླུམ་གཟུགས།;རླབས།];ལྷད།;[ལྷད་སྣོན།;ཟེགས་རྡུལ་འཇོམས།;ཐལ་བ་དང་བྲད་ཤུལ།;གུང་ཐིག];པིག་ཟེལ་བཟོ་བ།;[ཚོན་མདངས་ཕྱེད།;དྭངས་ཤེལ་ཅན།;ཟུར་ངོས།;དུམ་བུ།;མེ་ཛོ་ཊིན།;རྡོ་ཧྲུག;ཚོན་འབྲུ།];སྒྲིག་སྦྱང་།;[སྤྲིན།;བར་ཁྱད་ཅན་གྱི་སྤྲིན་པ།;དྭངས་ཤེལ་འོད་འཚེར།];གསལ་ཆ།;[དྭངས་གསལ།;མཐའ་ཟུར་དྭངས་གསལ།;དྭང་གསལ་མང་ཙམ།;བསྡུ་དྭང་གསལ།;འབག་དྭངས་གསལ་མེད་པ།];བཀོད་སྒྲིག་བྱས།;[གྲམ་པ།;འབུར་འབུར།;བཙིར་འདོན།;མཐའ་ཟུར་བཙལ།;སྣུམ་ཚོན་རི་མོ།];གཞན།;[རང་མོས་ལྟར།;ལ་མཐོ་བ།;མཐོ་ཤོས།;ཉུང་ཤོས།;ཟུར་འཇོག;བསྐྱར་ལྡབ།];[ཚད་ཐིག་མེད་པའི་ས་ཆ།;ཕྱི་གསལ་ནང་གསལ་འདེམས།;མཐའ་ཟུར་པིག་ཟེར་བསྐྱར་ལྡབ།;ཕྱོགས་མཚམས་ནས་བསྐོར།;ཚགས་མཐའ་མ།;སྔོན་ལྟ།]];[དཔེ་དཔང་།;[ཡིག་གཟུགས་ཚགས།;གནད་ཚིག;གང་བྱུང་བྱུང་ཞིག];[དཔེ་མཚོན་མཉམ་དུ།;དཔར་དང་མཉམ་དུ།];[དཔེ་རིས།;ཐོ།]]", + "[Fitxer;Editar;Imatge;Capa;Carpeta;Selecciona;Filtre;Veure;Finestra;Llengua;Inici de sessió;Surt;Crear traducció;[Compte;Condicions d'ús;Endarrere;Sobre;Informa d'un error;Aprendre];Més;Tema;Utilitza WebGL;[Photopea: editor d'imatges avançat;Editor en línia gratuït que admet formats PSD, XCF, Sketch, XD i CDR.;Creeu una imatge nova o obriu els fitxers existents des de l’ordinador. Deseu el vostre treball com a PSD (Fitxer - Desar com a PSD) o com a JPG / PNG / SVG (Fitxer - Exportar com).;Suggeriu noves funcions al nostre o . El nostre objectiu és crear .;Els enllaços dels patrocinadors s'obren en una finestra nova.;;Instal·la Photopea]];[Obrir;Publicar en línia;Desar;Desar com a PSD;Imprimir;Obrir des d'enllaç;Obrir des de l'ordinador;Connecta amb Google Drive;Exportar com a;Exportar les capes;Script;Obrir i situar;Tancar;Emmagatzematge local;];[Pas endavant;Pas enrere;Neteja;Omple;Transformar;Gira;Gireu VAR0;Escala VAR0;Desfer / Refer;Perspectiva;[Fusionar automàticament;];Esvaeix;];Ajustaments;[Brillantor/Contrast;Nivells;Corbes;Exposició;Vivor;To/Saturació;Balanç de color;Blanc i negre;Filtre fotogràfic;Mesclador de canals;Cerca de colors;Invertir;Redueix el nombre de colors;Llindar;Mapa de degradat;Color selectiu;[To automàtic;Contrast automàtic;Color automàtic];Reemplaça color];[Tallar;Copiar;Enganxar;Nou;Eliminar;Habilitar;Inhabilitar;Còpiar fusionada;Aplica;De nou;Actualització];[Duplica la capa;Nova capa d'ajustament;Màscara ràster;Màscara vectorial;Afegir (mostra-ho tot);[Afegir (amaga-ho tot);Revelar la selecció;Amaga la selecció;A partir de transparència];[Màscara de retall;Mode de màscara ràpida];Convertir en objecte intel·ligent;Aplana;Agrupa les capes;Fusiona cap avall;Fusiona cap amunt;[Fusiona les capes;Aplana la imatge];Nova capa;Habilita màscara ràster;Inhabilita màscara ràster;Habilita màscara vectorial;Inhabilita màscara vectorial;Habilita màscara de retall;Inhabilita máscara de retall;Nova Carpeta;Afegir màscara ràster;Eliminar màscara ràster;Afegir màscara vectorial;Eliminar màscara vectorial;Enllaça màscara ràster;Desenllaça màscara ràster;Enllaça màscara vectorial;Desenllaça màscara vectorial;Habilita els efectes de capa;Inhabilita els efectes de capa;Eliminar capa;Canvia l'opacitat de la capa;Canvia de fusió;Aplana l'estil de la capa;Ordre de les capes;[Creant objecte intel·ligent;Actualitzant objecte intel·ligent;Situant objecte intel·ligent;Font (objecte intel·ligent);];Canvia el nom;Canvia color;Edita la capa d'ajustament;Convertir en forma;Habilita màscara de filtre;Inhabilita màscara de filtre;Habilita els filtres intel·ligents;Inhabilita filtres intel·ligents;Afegir màscara de filtre;Eliminar màscara de filtre;Neteja filtres intel·ligents;[[Emplena amb color sòlid;Emplena amb degradat;Emplena amb un patró;Segons el contingut];Nova capa d'emplenament;Modifica la capa d'emplenament];Capa a través d'una còpia;Màscara de filtre;Eliminar l'estil de la capa;Mou filtre intel·ligent;Eliminar filtre intel·ligent;[Enllaça capes;Desenllaça capes];Organitza;[Porta al davant;Porta endavant;Mou cap al fons;Envia cap endarrere];[La capa està blocada;Bloqueja canvis;];];[Tot;Deseleccionar;Inverteix;Modifica;Expandeix;Redueix;Pluma;Mou la selecció;Rang de color;Vora;Transformar la selecció;Refina la vora;Sanar la selecció;];[Ampliar;Reduir;Guies;Regles;Quadrícula;Ajusta;Ajusta a;Límits del document;Quadrícula de píxels;Camí;Ajusta a píxels;[Sectors;Opcions delliçans];Mostrar];[Historial;Capes;Propietats;Pinzell;Caràcters;Paràgraf;Informació;Composició de capa;Mostres;Accions;Histograma;Navegador;Predefinits de l'eina;];[Eina pinzell;Eina de clonació;Eina escapça;Eina borrador;Selecció el·líptica;Comptagotes;Degradat;Eina mà;Eina de text;Selecció lliure;Selecció llaç magnètic;Eina mou;Vareta màgica;Eina cubell de pintura;Selecció amb llaç poligonal;Selecció rectangular;Transformació lliure;Lupa;Eina desenfoca;Perfila;Eina difumina;Eina esvaeix;Eina crema;Esponja;Eina pinzell corrector puntual;Eina pinzell corrector;Eina pedaç;Selecció de camí;Selecció directa;Llapis;Llapis lliure;Forma personalitzada;Rectangle;El·lipse;Forma paramètrica;Línia;Regle;Selecció ràpida;Eina pinzell;Escapça amb perspectiva;Eina de Sectors;Eina de Selecció de Sectors;Substitució de color;Eina Ull Vermell;Selecció d'objecte;Esborra fons;;;;];[Prendre una foto;Tria un color;Editor de contorn;Mida del llenç;Duplica a ...;Editor de degradat;Estil de la capa;Projecte nou;Desar per web;Deforma;Mida de la imatge;Vectoritza el mapa de bits;[Retalla;Buida;];Dreceres del teclat;Afegir guies;[Neteja guies;Guies de la capa]];[Opacitat;Efectes;Brillantor;[Contrast;Utilitzeu l’algorisme anterior];Canal;Exposició;Desplaçament;Correcció gamma;To;Saturació;Brillantor;Acoloreix;Tram;Vivesa;[Mida;Interpolació;Veí més proper;Bilinear];Angle;Arrodoniment;Duresa;Espaiat;[Mode de fusió;Fusionar si és];Mida de la mostra;Contorn;Estil;[Inverteix;Relatiu;Àncora];Tolerància;Contigu;Emplena;Utilitza angle global;Distància;Escampa;Soroll;Amaga l'ombra paral·lela;Tècnica;Direcció;Profunditat;Suavitza;Mode;Degradat;Escala;Alinea amb la capa;Posició;Amplada;Alçada;Destinació;Tipus;Primer pla;Fons;Personalitzat;Nom;Crea;Format;Mantén la relació d'aspecte;[Qualitat;Pàgines];Duplica;Mou;Filtres intel·ligents;Radi;Quantitat;Distribució;[Uniforme;Gausià];Monocromàtic;Mida de la cel·la;Patró;Flux;Intensitat;Protegir detall;Tipus d'emplenament;Textura;Fluctuació;Vora;Font;Objectiu;Canals;Màscara;Densitat;Alineat;[Camí;Forma;Píxels;Polzades;Centímetres;Mil·límetres;Percentatge];Formes;Costats;Preferències;[Longitud;Ràtio;Qualsevol;Tipus de quadrícula;Isomètrica;Espaiat de quadrícula;Unitat de regla];Reducció del soroll;Colors;Distàncies;Taxa;Autoselecciona;Cerca;Definir nou;[Foto;Pantalla;Mòbil;Anuncis;Impressió];[Lliure;Fixa relació;Mida fixa];Ajuda;[Formes en directe;Edita formes en directe;Igualar radis];Tolerància;[Polígon;Estrella;Espiral;Quadrat];[Radi de cantonada;Radi interior]];[Color;[Cap;Vermell;Taronja;Groc;Verd;Blau;Lila;Gris;Blanc;Transparent;Negre;Cian;Magenta;Neutre];Total;Absolut;Conservar lluminositat];[Ombra paral·lela;Ombra interior;Resplendor exterior;Resplendor intern;Bissell i relleu;Superposició de color;Superposició de degradat;Superposició de patró;Setinat;Traç;Opcions de fusió;Selecciona píxels];[Forma suggerida;Dinàmica de punta;Dispersió;Dinàmica de color;[Variació de mida;Diàmetre mínim;Variació d'angle;Variació d'arrodoniment;Arrodoniment mínim];[Variació de position;Conta;Variació del conta];[Variació de primer pla/fons;Variació de to;Variació de saturació;Variació de brillantor];[Selecciona la font de clonat mantenint Alt (o K) i fes clic sobre la imatge;Marca el primer pla amb blanc, el fons amb negre, i l'àrea desconeguda amb gris.;La capa no es pot editar.;La capa de text s'ha d'aplanar primer;L'objecte intel·ligent s'ha d'aplanar primer (rasterize);Selecciona diverses capes;Redreçar la capa;Obriu un document primer.;Tanqueu la finestra actual primer.;Només eina actual];[Gravar;Nou conjunt d'accions;Nova acció];[La pressió de stylus controla l'opacitat;La pressió de stylus controla la mida];[Normal;Dissol;Enfosqueix;Multiplica;Crema de color;Crema lineal;Color més fosc;Aclareix;Pantalla;Aclareix de color;Aclareix lineal;Color més clar;Superposa;Llum suau;Llum forta;Llum intensa;Llum lineal;Llum focal;Mescla màxima;Diferència;Exclusió;Sostreu;Divideix;To;Saturació;Color;Lluminositat;Transferència]];[Iniciar;Seguiment;Canvi de la línea base;[Convertir en text de punt;Convertir en text de paràgraf]];[Totes les capes;Capa actual;Selecció;Actual i de sota];[Reemplaça;Uneix;Resta;Intersecciona;Exclou;Fusiona];[[Lineal;Radial;Angle;Reflexa;Diamant;Explosió de forma];[Suavitzar;Precisió];[Bisell extern;Bisell intern;Relleu;Relleu tipus coixí;Traç de relleu;Amplada de traç];[Suau;Tall fort;Tall suau;Suavització];[Amunt;Avall];[Fora;Centre;Dins;Des del centre];[Ombres;Tons mitjans;Ressaltats];[Dessatura;Satura];[Petit;Mitjà;Gran];[Tapes;Cantonades;Guions]];[Tria l'objecte a sota del cursor;Controls de transformació;Píxel a píxel;Adapta a l'àrea;[Alinea les vores a l'esquerra;Centra horitzontalment;Alinea les vores a la dreta;Alinea les vores a dalt;Centra verticalment;Alinea les vores a sota;Iguala els buits]];[Situar a;Projecte actual;Projecte nou;Resolució;Afegit a el projecte actual.;S'ha creat un nou projecte.;S'ha denegat l'accés a la càmara.];[Orientació;Torça;Distorció horitzontal;Distorció vertical;[Horitzontal;Vertical;horitzontalment;verticalment];[Cap;Arc;Arc inferior;Arc superior;Arc;Infla;Closca Inferior;Capa Superior;Senyal;Ona;Peix;Augmentar;Ull de peix;Infla;Comprimeix;Gira;Personalitzat];[Font;no està disponible;Es renderitzarà utilitzant;Hi ha treball no guardat en;Realment vols tancar-lo?];[Intercanvia colors;Per defecte: Blanc i negre]];[carregat;afegit;Mou guia;Eliminar guia;Afegeix guia;Carregant;Carregar VAR0];[Galeria de filtres;[[Liqua;[Escampa;Reconstrueix;Suavitza;Regira;Encongeix;Bufa;Empeny a l'esquerra;Congela;Descongela]];[Correcció de les lents]];Desenfoca;[Promig;Difumina;Difumina més;Control de difuminat;Difuminat gaussià;Difuminat de lent;Difumina mode moviment;Difuminat radial;Difuminat de forma;Difuminat intel·ligent;Difuminat de superfície];Distorciona;[Desplaça;Pessiga;Coordenades polars;Onades del mar;Inclina;Esfèric;Onada];Soroll;[Afegeix soroll;Elimina els pics;Pols i ratllades;Mitjana];Pixela;[Mig to de color;Cristal·litza;Faceta;Fragment;Manera negra;Mosaic;Puntillisme];Renderitza;[Núvols;Diferencia de núvols;Llum enlluernador];Realça la vora;[Realça la vora;Ressalta les vores;Ressalta més;Realçat intel·ligent;Emmascara les parts borroses];Estilitza;[Difusió;Esculpeix;Extrusió;Detecta els contorns;];Altres;[Personalitza;Filtre passaalt;Màxim;Mínim;Desplaçament;Repetir];[Àrea indefinida;Fes transparent;Repeteix els píxels de la vora;Ajusta al voltant;Últim filtre;Previsualització]];[Plantilles;[Filtre de tipus de lletra;Paraules clau;Aleatori];[Amb símbols;Amb fotografia];[Miniatura;Llista]]", + "[Fil;Rediger;Bilde;Lag;Mappe;Velg;Filter;Visning;Vindu;Språk;Logg inn;Logg ut;Opprett oversettelse;[Konto;Brukervilkår;Tilbake;Om appen;Rapporter en feil;Læring];Mer;Tema;Bruk WebGL;[Photopea: avansert bilderedigerer;Gratis online editor som støtter PSD, XCF, Sketch, XD og CDR formater.;Opprett et nytt bilde eller åpne eksisterende filer fra datamaskinen. Lagre arbeidet ditt som PSD (Fil - Lagre som PSD) eller som JPG / PNG / SVG (Fil - Eksporter som).;Foreslå nye funksjoner på vår eller . Målet vårt er å lage .;Sponsorlenker åpnes i nytt vindu.;Denne funksjonen er ikke tilgjengelig.;Installer Photopea]];[Åpne;Publiser online;Lagre;Lagre som PSD;Skriv ut;Åpne fra URL;Åpne fra datamaskin;Koble til Google Drive;Eksporter som;Eksporter lag;Skript;Åpne og plassér;Lukk;Lokallagring;];[Gå frem;Gå tilbake;Tøm;Fyll;Transformer;Roter;Vend VAR0;Skalér VAR0;Angre/gjenta;Perspektiv;[Automatisk blanding;Juster automatisk];Uttoning;Bruk bilde];Justeringer;[Lysstyrke/kontrast;Nivåer;Kurver;Eksponering;Dynamikk;Kulør/metning;Fargebalanse;Svart-hvitt;Fotofilter;Kanaler;Fargeoppslag;Invertér;Fargereduksjon;Terskel;Graderingskart;Selektiv farge;[Automatisk tone;Automatisk kontrast;Automatisk farge];Erstatt farge];[Klipp ut;Kopier;Lim inn;Ny;Slett;Aktiver;Deaktiver;Kopier sammenflettet;Bruk;På nytt;Oppdater];[Duplisér lag;Nytt justeringslag;Rastermaskering;Vektormaskering;Legg til (vis alle);[Legg til (skjul alle);Vis markering;Skjul markering;Fra gjennomsiktighet];[Utklippsmaskering;Hurtigmaskemodus];Gjør om til Smartobjekt;Rastrer;Gruppér lag;Slå sammen nedover;Slå sammen oppover;[Slå sammen lag;Slå sammen alle lag];Nytt lag;Aktiver rastermaskering;Deaktiver rastermaskering;Aktiver vektormaskering;Deaktiver vektormaskering;Aktiver utklippsmaskering;Deaktiver utklippsmaskering;Ny mappe;Legg til rastermaskering;Slett rastermaskering;Legg til vektormaskering;Slett vektormaskering;Koble sammen rastermaskering;Koble fra rastermaskering;Koble til vektormaskering;Koble fra vektormaskering;Aktiver lageffekter;Deaktiver lageffekter;Slett lag;Laggjennomsiktighetsendring;Blandingsmodus endring;Rastrer lagstil;Lagrekkefølge;[Oppretter Smartobjekt;Oppdaterer Smartobjekt;Plasserer Smartobjekt;Kilde (Smartobjekt);Stakkmodus];Navneeendring;Fargeendring;Rediger justeringslag;Konverter til form;Aktiver filtermaskering;Deaktiver filtermaskering;Aktiver Smart-filtre;Deaktiver Smart-filtre;Legg til filtermaskering;Slett filtermaskering;Slett Smart-filtre;[[Ensfarget fyll;Graderingsfyll;Mønsterfyll;Innholdstilpasset];Nytt fyllag;Modifiser fyllag];Nytt lag via kopier;Filtermaskering;Slett lagstil;Flytt Smart-filter;Slett Smart-filter;[Koble til lag;Koble fra lag];Ordne;[Plasser lengst frem;Flytt fremover;Flytt bakover;Plasser lengst bak];[Laget er låst.;Låsendring;Lås];];[Alt;Fravelg;Inverter;Endre;Utvid;Trekk sammen;Uttoning;Flytt markering;Fargespekter;Ramme;Transformer markering;Finjuster kant;Forbedre markering;];[Zoom inn;Zoom ut;Hjelpelinjer;Linjaler;Rutenett;Fest;Fest til;Dokumentgrenser;Rutenett for bildepunkter;Baner;Fest til piksler;[Stykker;Alternativer for stykke];Vis];[Historie;Lag;Egenskaper;Pensel;Tegn;Avsnitt;Info;Lagsammensetninger;Fargekart;Prosedyrer;Histogram;Navigatør;Forhåndsinnstillinger for verktøy;Tegnvarianter];[Pensel;Kloneverktøy;Beskjæring;Viskelær;Ellipsemarkering;Pipette;Graderingsverktøyet;Hånd;Tekstverktøy;Lassomarkering;Magnetisk lassomarkering;Flytt;Tryllestavverktøy;Malingsspann;Mangekantet lassomarkering;Rektangelmarkering;Fri transformer;Zoom;Gjør uskarpt;Gjør skarpere;Finger;Lysne;Mørkne;Svamp;Flekkreparering;Repareringspensel;Lappeverktøy;Banemerkingsverktøyet;Hurtigvalgverktøy;Penn;Fri penn;Egendefinert form;Rektangel;Ellipse;Parametrisk form;Linje;Linjal;Hurtigmarkering;Blyant;Perspektivbeskjæring;Stykkeverktøyet;Stykkemarkeringsverktøyet;Fargeerstatningsverktøyet;Røde øyne-verktøyet;Objektvalg;Bakgrunnsviskelæret;Marionettfordreining;Visningsrotering;Innholdstilpasset skala;Innholdstilpasset flytteverktøy];[Ta et bilde;Fargevelger;Konturredigering;Arbeidsområde;Kopier inn i...;Graderingsredigering;Lagstil;Nytt prosjekt;Lagre for web;Fordrei;Bildestørrelse;Vektoriser punktgrafikk;[Skjær til;Beskjære;Vis alt];Tastatursnarveier;Legg til hjelpelinjer;[Fjern hjelpelinjer;Hjelpelinjer fra lag]];[Gjennomsiktighet;Effekter;Lysstyrke;[Kontrast;Bruk utdatert];Kanal;Eksponering;Forskyvning;Gammakorreksjon;Kulør;Metning;Lyshet;Fargelegg;Område;Tilpasset metning;[Størrelse;Interpolering;Nærmeste nabo;Bilineær];Vinkel;Rundhet;Hardhet;Mellomrom;[Blandingsmodus;Bruk overgang hvis];Størrelse på eksempel;Kontur;Stil;[Reverser;Relativ;Anker];Toleranse;Sammenhengende;Fyll;Bruk global vinkel;Avstand;Spre;Støy;Fjern bakgrunnsskygge;Teknikk;Retning;Dybde;Mykgjør;Modus;Gradering;Skala;Juster etter lag;Posisjon;Bredde;Høyde;Mål;Type;Forgrunn;Bakgrunn;Tilpasset;Navn;Opprett;Format;Behold størrelsesforhold;[Kvalitet;Sider];Dupliser;Flytt;Smarte filtre;Radius;Mengde;Distribusjon;[Ensartet;Gaussisk];Ensfarget;Cellestørrelse;Mønster;Flyt;Styrke;Beskytt detaljer;Fylltype;Tekstur;Variasjon;Kant;Kilde;Mål;Kanaler;Maskering;Tetthet;Justert;[Bane;Form;Piksler;Tommer;Centimeter;Millimeter;Prosent];Former;Sider;Innstillinger;[Lengde;Forhold;Vilkårlig;Rutenetttype;Isometrisk;Linjeavstand i rutenett;Linjalenheter];Reduser støy;Farger;Avstander;Hastighet;Velg automatisk;Finn;Definer ny;[Foto;Skjerm;Mobiltelefon;Annonser;Utskrift];[Fri;Fast forhold;Fast størrelse];Hjelp;[Live form;Rediger live form;Lik hjørneavrunding];Toleranse;[Mangekant;Stjerne;Spiral;Kvadratisk];[Hjørneradius;Indre radius]];[Farge;[Ingen;Rød;Oransje;Gul;Grønn;Blå;Lilla;Grå;Hvit;Gjennomsiktig;Svart;Cyan;Magenta;Nøytral];Total;Absolutt;Bevar lysstyrke];[Skygger;Indre skygge;Ytre glød;Indre glød;Skråkant og preg;Fargeoverlapping;Graderingsoverlapping;Mønsteroverlapping;Sateng;Strøk;Blandingsvalg;Velg piksler];[Spissform;Spissdynamikk;Spredning;Fargedynamikk;[Størrelsesvariasjon;Minste diameter;Vinkelvariasjon;Rundhetsvariasjon;Minimal rundhet];[Posisjonsvariasjon;Antall;Antallvariasjon];[Forgrunns/bakgrunns-variasjon;Kulørvariasjon;Metningvariasjon;Lysstyrkevariasjon];[Velg kilde for kloning ved å trykke Alt (eller K) og klikke på bildet.;Angi forgrunn med hvitt, bakgrunn med sort og ukjent område med grått.;Laget kan ikke endres.;Tekstlaget må gjøres om til punktgrafikk først;Smartobjekt må gjøres om til punktgrafikk først;Velg flere lag;Rett lag;Åpne et dokument først.;Lukk gjeldende vindu først.;Bare gjeldende verktøy];[Start opptak;Ny prosedyrersett;Ny prosedyre];[Stylus-trykk styrer gjennomsiktighet;Stylus-trykk styrer størrelsen];[Normal;Dryss;Gjør mørkere;Flere;Mørkne farge;Lineær mørkning;Mørkere farge;Gjør lysere;Skjerm;Lysne farge;Lineær lysning;Lysere farge;Legg over;Mykt lys;Hardt lys;Sterkt lys;Lineært lys;Punktlys;Hard fargeblanding;Differens;Utelatelse;Trekk fra;Del;Kulør;Metning;Farge;Lysstyrke;Gjennomgang]];[Linjeavstand;Bokstavmellomrom;Grunnlinjeforskyvning;[Konverter til punkttekst;Konverter til avsnittstekst]];[Alle lag;Gjeldende lag;Markering;Gjeldende og under];[Erstatt;Slå sammen;Trekk fra;Overlapp;Utelat;Slå sammen];[[Lineær;Sirkulær;Vinkel;Speilet;Rombe;Shape Burst];[Mykere;Nøyaktig];[Ytre skråkant;Indre skråkant;Relieff;Putepreg;Strekrelieff;Strøkbredden];[Jevn ut;Hard meisel;Myk meisel;Utjevning];[Opp;Ned];[Utsiden;Sentrum;Innsiden;Fra midten];[Skygger;Mellomtoner;Høylys];[Mindre metning;Metning];[Liten;Medium;Stor];[Endepunkter;Hjørner;Streger]];[Velg objektet under markøren;Transformeringskontroller;Piksel til piksel;Tilpass området;[Juster venstrekanter;Sentrer horisontalt;Juster høyrekanter;Juster øvre kanter;Sentrer vertikalt;Juster nedre kanter;Selv avstander]];[Plasser inn;Gjeldende prosjekt;Nytt prosjekt;Oppløsning;Lagt til i gjeldende prosjekt.;Et nytt prosjekt ble opprettet.;Ingen tilgang til kameraet.];[Retning;Bøy;Horisontal forvrengning;Vertikal forvrengning;[Horisontal;Vertikal;horisontalt;vertikalt];[Ingen;Bue;Bue nedover;Bue oppover;Hvelv;Utbulning;Skjellform nedover;Skjellform oppover;Flagg;Bølge;Fisk;Stige;Fisheye;Pump opp;Trykk sammen;Vri;Egendefinert];[Font;er ikke tilgjengelig;Vil bli rendert med;Det er ulagrede endringer i;Er du sikker på at du vil lukke det?];[Bytt farger;Standard: Hvit og sort]];[lastet;lagt til;Flytt hjelpelinje;Slett hjelpelinje;Legg til hjelpelinje;Laster;Laster inn VAR0];[Filtergalleri;[[Gjør flytende;[Gni ut;Rekonstruer;Jevn ut;Snurr;Krymp;Øk størrelse;Skyv til venstre;Frys;Tin]];[Objektivkorrigering]];Uskarpt-filtre;[Gjennomsnittlig;Uskarphet;Mer uskarphet;Boksuskarphet;Gaussisk uskarphet;Linseuskarphet;Bevegelsesuskarphet;Radial uskarphet;Formuskarphet;Smart uskarphet;Overflateuskarphet];Forvreng;[Forflytning;Knip;Polare koordinater;Krusninger;Klipp;Kuleformet;Bølger];Støy-filtre;[Legg til støy;Flekkfjerning;Støv og skrammer;Median];Bryt opp-filtre;[Rastermønster;Krystalliser;Fasetter;Fragmenter;Mezzotint;Mosaikk;Pointilist];Gjengi-filtre;[Skyer;Dobbelteksponerte skyer;Motlysslør];Gjør skarpere-filtre;[Gjør skarpere;Skarpere kanter;Gjør enda skarpere;Smart skarphet;Uskarp maske];Spesialeffekter;[Diffus;Preg;Ekstruder;Finn kanter;Oljemaleri];Andre-filtre;[Egendefinert;Høypass;Maksimum;Minimum;Forskyvning;Gjenta];[Udefinert område;Sett til gjennomsiktig;Gjenta kantpiksler;Flyt rundt;Forrige filter;Forhåndsvis]];[Maler;[Fontfilter;Nøkkelord;Bland];[Med symboler;Med foto];[Miniatyrer;Liste]]", + "[Fail;Muuda;Pilt;Kiht;Kaust;Märgista;Filter;Vaade;Aken;Keel;Logi sisse;Logi välja;Loo tõlge;[Konto;Kasutustingimused;Tagasi;Rakenduse kohta;Probleemist teatamine;Koolitus];Veel;Teema;Kasuta WebGL;[Photopea: Täiustatud pildiredaktor;Tasuta online toimetaja, mis toetab PSD, XCF, Sketch, XD ja CDR formaate.;Looge uus pilt või avage arvutis olemasolevad failid. Salvestage oma töö PSD (Fail - Salvesta nagu PSD) või JPG / PNG / SVG (Fail - Ekspordi nagu).;Soovita uusi funktsioone meie või . Meie eesmärk on luua .;Sponsori lingid avatakse uues aknas.;;]];[Ava;Avalda veebis;Salvesta;Salvesta nagu PSD;Prindi;Ava veebiaadressilt;Ava arvutist;Ühendu Google Drive abil;Ekspordi nagu;Ekspordi kihid;Skript;Ava & Aseta;Sulge;Kohalik salvestus;];[Samm edasi;Samm tagasi;Tühjenda;Täida;Transformeeri;Pööra;VAR0 ümberpööre;VAR0 skaleerimine;Tagasi / Edasi;Perspektiiv;[Automaatne segamine;];Tuhmuma;];Kohandused;[Heledus/Kontrast;Heledustasemed;Kurvid;Säri;Paindlik värviküllastus;Toon/Küllastus;Värvi tasakaal;Must & Valge;Foto filter;Kanalite mikser;Värvi leidja;Pööra ringi;Posteriseeri;Barjäär;Gradiendi kaart;Valikuline Värv;[Auto Toon;Auto Kontrast;Auto Värv];Asenda Värv];[Lõika;Kopeeri;Kleebi;Uus;Kustuta;Võimalda;Keela;Kopeeri Kõik;Rakenda;Uuesti;Värskenda];[Koopia Kihist;Uus Kohanduskiht;Rastermask;Vektormask;Lisa (Näita kõik);[Lisa (Peida kõik);Näita Märgistust;Peida Märgistust;Läbipaistvusest];[Lõikemask;];Teisenda Targaks Objektiks;Rasteriseeri;Grupeeri Kihid;Liida alumisega;Liida Ülemisega;[Liida Kihid;];Uus Kiht;Võimalda Rastermask;Keela Rastermask;Võimalda Vektormask;Keela Vektormask;Võimalda Lõikemask;Keela Lõikemask;Uus Kaust;Lisa Rastermask;Kustuta Rastermask;Lisa Vektormask;Kustuta Vektormask;Ühenda Rastermask;Ühenda Lahti Rastermask;Ühenda Vektormask;Ühenda Lahti Vektormask;Võimalda Kihiefektid;Keela Kihiefektid;Kustuta Kiht;Kihi Nähtavuse Muutus;Segamisreziimi Muutus;Rasteriseeri Kihi Stiil;Kihtide Järjekord;[Loon Targa Objekti;Uuendan Targa Objekti;Paigutan Targa Objekti;Allikas (Tark objekt);];Nime Muutus;Värvi Muutus;Muuda kohanduskihti;Teisenda Kujuks;Võimalda Filtrite Mask;Keela Filtrite Mask;Võimalda Targad Filtrid;Keela Targad Filtrid;Lisa Filtri Mask;Kustuta Filtri Mask;Tühjenda Targad Filtrid;[[Ühevärviline täide;Gradiendi täide;Mustri täide;Sisutundliku];Uus Täitekiht;Muuda Täitekihti];Kiht Kopeerides;Filtri Mask;Kustuta Kihi Stiil;Liiguta Tark Filter;Kustuta Tark Filter;[Ühenda Kihid;Ühenda Kihid Lahti];Järjesta;[Too Esimeseks;Too ettepoole;Saada Tahapoole;Saada Tagumiseks];[Kiht on Lukus;Luku Muutus;];];[Kõik;Eemalda Märgistus;Pööra Ringi;Muuda;Laienda;Tõmba koomale;Pehme Serv;Liiguta Märgistust;Värvi Piirkond;Serv;Transformeeri Märgistust;Täpsusta Serva;Tervenda Märgistust;];[Suurenda Sisse;Suurenda Välja;Abijooned;Joonlauad;Võrk;Napsa;Tõmme;Dokumendi Piirid;Pikslite Võrk;Vektorjooned;Tõmme pikslitesse;[;];];[Kulgemine;Kihid;Seaded;Pintsel;Kiri;Lõik;Info;Kihikomplektid;Värvikaardid;Makros;Histogramm;;Tööriista eelseadistused;];[Pintsel;Kloonimistööriist;Kärpimistööriist;Kustutaja;Ovaalne märgistus;Pipett;Gradiendi tööriist;Liigutamistööriist;Trükkimistööriist;Lasso Märgistus;Magnet Lasso Märgistus;Liigutamistööriist;Võlukepp;Värvitäite Tööriist;Nurklasso Tööriist;Nelinurk Märkimine;Vaba Transformatsioon;Suurendamise Tööriist;Udutamise Tööriist;Teravustamise Tööriist;Hägustamise Tööriist;Helestamise Tööriist;Põletamise Tööriist;Värvilahusti Tööriist;Punkti Tervendamise Tööriist;Ravipintsel;Plaaster;Vektorjoone Märkimine;Komponendi Märkimise Tööriist;Sulepea;Vabakäe Pliiats;Eriilmeline Kujund;Ristkülik;Ovaal;Parameetriline Kujund;Joon;Joonlaud;Kiirmärgistus;Pliiats;Perspektiivse kärpimistööriist;;;;;;;;;;];[Tee pilt;Värvi Korjaja;Kontuuri muutja;Lõuendi Suurus;Tee koopia ...;Gradiendi muutja;Kihi Stiil;Uus Projekt;Salvesta Veebi jaoks;Venita;Pildi Suurus;Vektoriseeri raster;[Trimmi;;];Klaviatuuri kiirkäsud;Lisa abijooned;[;]];[Nähtavus;Efektid;Heledus;[Kontrast;];Kanal;Säri;Nihe;Gamma korrektsioon;Toon;Küllastus;Heledus;Värvi;Piirkond;Dünaamiline küllastus;[Suurus;Interpoleerimine;Lähim naaber;Bilineaarne];Nurk;Ümarus;Nurgelisus;Vaheruum;[Segamisrežiim;];Näidise Suurus;Kontuur;Stiil;[Pööra Ümber;Relatiivne;Ankur];Tolerants;Jätkuv;Täida;Kasuta globaalnurka;Vahemaa;Valguvus;Müra;Peida varju langemine;Tehnika;Suund;Sügavus;Pehmenda;Reziim;Gradient;Skaala;Joonda Kihiga;Positsioon;Laius;Kõrgus;Sihtpunkt;Tüüp;Eesplaani värv;Tagaplaani värv;Juhuslik;Nimi;Loo;Formaat;Hoia Külgede Suhet;[Kvaliteet;Leheküljed];Tee koopia;Liiguta;Targad Filtrid;Raadius;Mõju;Jagamine;[Ühtlane;Gaussi];Monokromaatiline;Killu Suurus;Muster;Voolavus;Tugevus;Säilita Detaile;Täitmise tüüp;Tekstuur;Värelus;Serv;Allikas;Sihtmärk;Kanalid;Mask;Tugevus;Joondatud;[Joon;Kujund;Pikslid;Toll;Sentimeeter;Millimeeter;Protsent];Kujundid;Küljed;Seaded;[Pikkus;Suhe;Vaba;Võrgu tüüp;Isomeetrilise;Võrgu lõhe;Joonlaua ühikud];Vähenda müra;Värvid;Vahemaad;Suhe;Auto-märgistus;Leia;Defineeri uus;[Foto;Ekraan;Mobiil;Reklaamid;Trükised];[Vaba;Fikseeritud Suhe;Fikseeritud Suurus];Abi;[Muudetavad Kujundid;Muuda kujundit;Sama raadius];Lubatud kõrvalekalle;[Hulknurk;Täht;Spiraal;Ruut];[Nurga raadius;Sisemine raadius]];[Värv;[Ei ole;Punane;Oranz;Kollane;Roheline;Sinine;Lilla;Hall;Valge;Läbipaistev;Must;Tsüaan;Magenta;Neutraalne];;Absoluutne;Hoidke värvi heledus];[Vari;Sisemine vari;Helendav serv;Sisemine helendus;Tõstetud serv;Värvi ülekate;Gradiendiga ülekate;Mustriga ülekate;Satiin;Servajoon;Segamise seaded;];[Tipu kuju;Tipu dünaamika;Jaotus;Värvi dünaamika;[Suuruse jaotus;Minimaalne diameeter;Nurga jaotus;Ümaruse jaotus;Minimaalne ümarus];[Positsiooni jaotus;Arv;Arvu jaotus];[Esi/Tagaplaani jaotus;Tooni jaotus;Küllastuse jaotus;Heleduse jaotus];[Märgi kloonimise allikas hoides Alt (või K) ja kliki pildil.;Märgi esiplaan valgega, tagaplaan mustaga ja tundmatu ala halliga;Kiht ei ole muudetav.;Tekstikiht tuleb kõigepealt rasteriseerida;Tark objekt tuleb kõigepealt rasteriseerida;Vali mitu kihti;;Esmalt avage dokument.;Sulgege esmalt praegune aken.;Ainult praegune tööriist];[Salvesta;Uus makrokomplekt;Uus makro];[;];[;;;;;;;;;;;;;;;;;;;;;;;Toon;Küllastus;Värv;Värvi heledus;]];[Rea kõrgus;Tähe vahe;Baasjoone nihe;[;]];[Kõik kihid;Praegune kiht;Märgistus;Praegune & Allpool olev];[Asenda;Ühenda;Lahuta;Ristuv;Jäta välja;Liida];[[Lineaarne;Radiaalne;Nurk;Peegeldatud;Teemant;Kujundi kiirgus];[Pehmendus;Täpne];[Väljapoole tõstuserv;Sissepoole tõstuserv;Emboss;Sisse vajutatud;Servaga vajutatud;];[Pehme;Meisel tugev;Meisel pehme;];[Üles;Alla];[Väljaspool;Keskel;Seespool;Keskusest];[Varjud;Kesktoonid;Heledad];[Desatureeri;Satureeri];[Väike;Keskmine;Suur];[;;]];[Vali kursori all olev objekt;Transformatsiooni kontrollid;Piksel pikslile;Mahuta piirkonda;[Joonda vasakud servad;Joonda horisontaalsed keskmised;Joonda paremad servad;Joonda ülemised servad;Joonda vertikaalselt keskele;Joonda alumised servad;Võrdsed vahed]];[Paiguta sisse;Praegune projekt;Uus projekt;Resolutsioon;Lisatud praegusesse projekti;Uus projekt loodi;Ligipääs kaamerale on keelatud];[Orientatsioon;Painuta;Horisontaalne painutus;Vertikaalne painutus;[Horisontaalne;Vertikaalne;Horisontaalne;Vertikaalne];[Tühista;Kaar;Alumine kaar;Ülemine kaar;Kaared;Mõhk;Alumine karp;Ülemine karp;Lipp;Laine;Kala;Tõus;Kalasilm;Täidetud;Kokku pressitud;Väänatud;Vabakäeline];[Kirjastiil;ei ole saadaval;Renderdatakse kasutades;Selles projektis on salvestamata tööd:;Kas sa tõesti tahad selle sulgeda?];[Vaheta värvid;Vaikimisi: Valge ja Must]];[laaditud;lisatud;Liiguta abijoont;Kustuta abijoon;Lisa abijoon;Laadib;Laadi VAR0];[Filtrite galerii;[[Vedelda;[Sega;Konstrueeri tagasi;Pehmenda;Keeruta;Vähenda;Täida õhuga;Suru vasakule;Külmuta;Sulata]];[Läätsekorrektsioon]];Udu;[Keskmine;Udu;Uduta rohkem;Kandiline Udu;Gaussiani Udu;Läätse udu;Liikuv udu;Radiaalne udu;Kujundi Udu;Tark Udu;Pinna udu];Vääna;[Paiguta ümber;Venita kokku;Polaarkordinaadid;Lainetus;Rebi;Sfääri;Laine];Müra;[Lisa Müra;Despeckle;Mustus & Kriimud;Mediaan];Pikseliseeri;[Värvide pooltoonid;Kristalliseeri;Facet;Fragment;Mezzotint;Mosaiik;Punktita];Renderda;[Pilved;Eriilmelised pilved;];Teravusta;[Teravusta;Teravusta servi;Teravusta rohkem;Tark teravustamine;Teravusmask];Stiliseeri;[Hajutus;Süvatrükk;Välja kasvatama;Leia servad;];Teine;[Eripärane;Kõrge läbilase;Maksimum;Miinimum;Nihe;Korda];[Defineerimata ala;Sea läbipaistvaks;Korda servapiksleid;Mähi ümber;Viimati kasutatud filter;Eelvaade]];[Mallid;[Kirjastiili filter;Märksõnad;Juhuslik];[Sümbolitega;Fototega];[Pisipildid;Nimekiri]]", + "[Failas;Redaguoti;Vaizdas;Sluoksnis;Aplankas;Žymėjimas;Filtrai;Rodymas;Langai;Kalba;Prisijungti;Atsijungti;Sukurti vertimą;[Paskyra;Paslaugos teikimo sąlygos;Atgal;Apie programą;Praneškite apie riktą;Mokymai];Kita;Apipavidalinimas;Naudoti WebGL;[Photopea: Išplėstinė vaizdų redaktorius;Nemokamas internetinis redaktorius, palaikantis PSD, XCF, Sketch, XD ir CDR formatus.;Sukurti naują vaizdą arba atverti kompiuteryje esantį failą. Išsaugoti darbą PSD forrmatu (Failas - Įrašyti kaip PSD) arba kaip JPG / PNG / SVG (Failas - Eksportuoti kaip).;Pasiūlykite naujų funkcijų mūsų arba . Siekiame sukurti .;Rėmėjų nuorodą atverti naujame lange;Ši funkcija negalima;Įdiegti Photopea]];[Atverti;Publikuoti internete;Įrašyti;Irašyti kaip PSD;Spausdinti;Atverti URL nuorodą;Atverti įrašytą kompiuteryje;Prisijungti prie Google disko;Eksportuoti kaip;Eksportuoti sluoksnius;Scenarijus;Atverti ir padėti;Uždaryti;Vietinės saugyklos;Failo informacija];[Žingsnis pirmyn;Žingsnis atgal;Išvalyti;Užpildyti;Transformuoti;Pasukti;Veidrodinis atspindys (VAR0);Mastelio keitimas;Atšaukti / Grąžinti;Perspektyva;[Automatiškai sukloti;Automatinis lygiavimas];Išnykimas;Pritaikyti paveikslą];Pakeitimai;[Šviesumas/Kontrastas;Šviesumo lygiai;Kreivės;Ekspozicija;Spalvingumas;Atspalvis/Grynis;Spalvinis balansas;Nespalvota;Foto filtras;Kanalų maišiklis;Spalvinė ieška;Inversija;Posterizavimas;Slenkstis;Gradiento planas;Spalvų atranka;[Automatinis atspalvio (tonavimo) koregavimas;Automatinis kontrasto koregavimas;Automatinis spalvų koregavimas];Spalvos pakeitimas];[Iškirpti;Kopijuoti;Įklijuoti;Naujas;Ištrinti;Įjungti;Išjungti;Kopijuoti apjungiant visus sluoksnius;Taikyti;Kartoti;Atnaujinti];[Dubliuoti sluoksnį;Naujas koregavimo sluoksnis;Rastro kaukė;Vektorinė kaukė;Pridėti (Rodyti viską);[Pridėti (Slėpti viską);Atskleisti žymėjimą;Paslėpti žymėjimą;Nuo skaidrumo];[Kaukė iškarpa;Greitojo maskavimo veiksena];Konvertuoti į „Smart Object“;Rasterizuoti;Grupuoti sluoksnius;Apjungti su žemesniu;Apjungti su aukštesniu;[Apjungti sluoksnius;Suploti sluoksnius];Naujas sluoksnis;Įjungti rastro kaukę;Išjungti rastro kaukę;Įjungti vektorinę kaukę;Išjungti vektorinę kaukę;Įjungti iškarpinę kaukę;Išjungti iškarpinę kaukę;Naujas aplankas;Pridėti rastro kaukę;Ištrinti rastro kaukę;Pridėti vektorinę kaukę;Ištrinti vektorinę kaukę;Susieti rastro kaukę;Atsieti rastro kaukę;Susieti vektorinę kaukę;Atsieti vektorinę kaukę;Įjungti sluoksnių efektus;Išjungti sluoksnių efektus;Ištrinti sluoksnį;Sluoksnio neskaidrumo pakeitimas;Suklojimo būdo pakeitimas;Sluoksnio stilius;Sluoksnių eilės tvarka;[„Smart Object“ sukūrimas;„Smart Object“ atnaujinimas;„Smart Object“ įkėlimas;Šaltinis (Smart Object);Paketas];Pervardyti;Keisti spalvą;Redaguoti koregavimo sluoksnį;Konvertuoti į figūrą;Įjungti filtro kaukę;Išjungti filtro kaukę;Įjungti išmaniuosius filtrus;Išjungti išmaniųjus filtrus;Pridėti filtro kaukę;Ištrinti filtro kaukę;Išvalyti išmaniuosius filtrus;[[Užlieti ištisa spalva;Užlieti gradientiškai;Užlieti raštais;Kontekstinis užpildas];Naujas užliejimo sluoksnis;Užliejimo sluoksnio koregavimas];Kopijuoti sluoksnį;Filtro kaukė;Ištrinti sluoksnio stilių;Perkelti išmanųjį filtrą;Ištrinti išmanųjį filtrą;[Susieti sluoksnius;Atsieti sluoksnius];Rikiuoti;[Iškelti į priekį;Nukelti pirmyn;Nukelti žemyn;Nukelti į dugną];[Sluoksnis užrakintas;Užrakinti pakeitimus;Užrakinti];Animacija];[Pažymėti viską;Nežymėti;Inversija;Keisti;Išplėsti;Kontraktas;Neryškūs žymėjimo kraštai;Perkelti žymėjimą;Žymėti spalva;Rėmeliu;Transformuoti žymėjimą;Kraštų tobulinimas;Tobulinti žymėjimą;Magiškas iškirpimas];[Artinti;Tolinti;Gairės;Liniuotės;Tinklelis;Pritraukti;Pritraukti prie;Dokumento ribos;Pikselių tinklelis;Kontūrai;Pritraukti prie pikselių;[Pjūviai;Pjūviai];Rodyti];[Istorija;Sluoksniai;Savybės;Teptukas;Tekstas;Paragrafas;Informacija;Sluoksnių kompozicija;Paletė;Makrokomandos;Histograma;Navigatorius;Įrankių nustatymai;Glifas];[Teptukas;Klonavimo įrankis;Apkirpimo įrankis;Trintukas;Žymėti elipse;Pipetė spalvai parinkti;Gradientas;Ranka;Rašymas;Lasas;Magnetinis lasas;Nešimo įrankis;Stebuklų lazdelė;Dažų kibirėlis;Daugiakampis lasas;Stačiakampis žymėjimas;Transformuoti laisvai;Lęšis;Liejimo įrankis;Aštrinimo įrankis;Glodinimo įrankis;Šviesinimas;Tamsinimas;Kempinė;Pleistras spuogams;Pleistras;Lopymo įrankis;Žymėti kontūru;Tiesioginis žymėjimas;Pieštukas;Piešti iš rankos;Savita figūra;Stačiakampis;Elipsė;Parametrinė figūra;Linija;Liniuotė;Žymėti aptiktus kraštus;Pieštukas;Perspektyvos apkarpymas;Pjūvių Įrankis;Žymėjimo skiltimis įrankis;Spalvos Pakeitimas;Raudonų akių taisytuvas;Objekto pažymėjimas;Fono trintukas;Lėlės lankstymas;Pasukti vaizdą;Išmanusis mastelio keitimas;Nuotraukos turinio perkėlimo įrankis];[Fotografuoti;Spalvos parinkimas;Kontūro keitimas;Paveikslo drobės dydis;Dubliuoti į ...;Gradiento koregavimas;Sluoksnio stilius;Naujas kūrinys;Išsaugoti interneto tinklui;Lankstyti;Paveikslo dydis;Rastro vektorinimas;[Apkirpti;Apkirpti;Išskleisti (viską)];Spartieji klavišai;Pridėti gairių;[Panaikinti gaires;Gairės pagal sluoksnį]];[Nepermatomumas;Efektai;Šviesumas;[Kontrastas;Naudoti senuoju būdu];Kanalas;Ekspozicija;Poslinkis;Gama korekcija;Atspalvis;Grynis;Šviesumas;Spalvinimas;Rėžis;Spalvingumas;[Dydis;Interpoliacija;Artimiausia kaimynų;Bilinear];Kampas;Apvalumas;Kietumas;Intervalai;[Sluoksnių suliejimo būdas;Sąlyginis suliejimas];Pavyzdžio dydis;Kontūras;Stilius;[Apgręžti;Reliatyvus;Inkaras];Tolerancija;Ištisai;Lieti;Kampas globaliai;Nuotolis;Paplitimas;Triukšmas;Išjunkite lašas šešėlis;Metodas;Kryptis;Gylis;Švelninti;Būdas;Gradientas;Mastelis;Lygiavimas į sluoksnį;Vietą;Plotis;Aukštis;Paskirtis;Tipas;Priekinio plano;Fono sluoksnis;Pasirinktina spalva;Pavadinimas;Sukurti;Formatas;Išlaikyti proporcijas;[Kokybė;Psl.];Dublikuoti;Perkelti;Išmanieji filtrai;Spindulys;Poveikio stiprumas;Paskirstymas;[Paskirstyti vienodai;Gauso];Vienspalviai;Mozaikos elemento dydis;Raštas;Liejimas;Stiprumas;Išsaugoti detalumą;Užliejimo būdas;Tekstūra;Triukšmas aureolės kraštuose;Kraštas;Šaltinis;Tikslas;Kanalai;Kaukė;Tankumas;Lygiuota;[Kontūras;Figūra;Pikselių;Colis;Centimetras;Milimetras;Procentas];Figūros;Pusės;Savybės;[Ilgis;Santykis;Laisvai;Tinklelio tipas;Izometrinių;Tinklelio tarpai;Liniuotės vienetai];Triukšmų šalinimas;Spalvos;Atstumai;Pakeitimų laipsnis;Automatinis žymėjimas;Rasti;Nustatyti naują;[Nuotrauka;Ekranas;Mobilus įrenginys;Reklama;Spaudiniai];[Laisvai;Fiksuotas santykis;Fiksuotas dydis];Žinynas;[Gyvosios figūros;Keisti gyvąsias figūras;Vienodi kreivumo spinduliai];Leistinas nuokrypis;[Daugiakampis;Žvaigždė;Spiralė;Kvadratas];[Kampo spindulys;Vidinis spindulys]];[Spalva;[Spalva neparinkta;Raudona;Oranžinė;Geltona;Žalia;Mėlyna;Violetinė;Pilka;Balta;Skaidri;Juoda;Ciano;Purpurinė;Neutralios];Iš viso;Absoliutus;Laikykite spalvos ryškumą];[Šešėlis;Vidinis šešėlis;Išorinis švytėjimas;Vidinis švytėjimas;Kanto profilis ir reljefiškumas;Spalvos užklojimas;Gradiento užklojimas;Rašto užklojimas;Satininis;Apvadas;Užklojimo parinktys;Parinkti taškus];[Antgalio forma;Antgalio dinamika;Išsklaidymas;Spalvų dinamika;[Išbarstymo zona;Minimalus diametras;Barstymo kampas;Barstymo apvalumas;Minimalus apvalumas];[Barstymo pozicija;Antgalių kiekis;Barstymų kiekis];[Barstymas priekinio plano/fono;Barstymo atspalvis;Barstymo grynis;Barstymo šviesumas];[Pažymėkite spusteldami pelės klavišu klonuojamą vietą kartu laikydami Alt (arba K) klavišą.;Žymėkite pirmą planą baltai, foną juodai, o nežinomas zonas pilkai.;Nekeistinas sluoksnis;Teksto sluoksnis pirmiausiai turėtų būti rasterizuotas;„Smart Object“ turi būti pirmiausia rastruotas;Pažymėkite keletą sluoksnių;Tiesinti;Pirmiausia atidarykite dokumentą.;Pirmiausia uždarykite dabartinį langą.;Tik dabartinis įrankis];[Įrašyti;Naujas makrokomandų rinkinys;Nauja makrokomanda];[Pieštuko prispaudimas valdys permatomumą;Pieštuko prispaudimas valdys storį];[Normalus;Ištirpinti;Tamsinti;Dauginti;Spalvos ryškinimas;Tiesinis ryškinimas;Tamsinti spalvas;Šviesinti;Šviesinti atrenkant;Spalvos pašviesinimas (Color dodge);Linijinis spalvos pašviesinimas;Spalvos pašviesinimas (Lighter Color);Perdengti;Išsklaidyta šviesa (Soft Light);Kontrastinga šviesa (Hard Light);Ryški šviesa (Vivid Light);Linijinė šviesa (Linear Light);Taškinė šviesa (Pin Light);Maišymas (Hard Mix);Skirtumų ryškinimas;Išimtys (Exclusion);Atimtis;Dalyba (Divide);Atspalvis;Grynis;Spalva;Spalvos ryškumas;Perkloti (Pass Through)]];[Priekinis tarpas;Tarpai tarp raidžių;Bazinės linijos poslinkis;[Konvertuoti į tekstą taškučiais;Konvertavimas į tekstą pastraipoje]];[Visi sluoksniai;Darbinis sluoksnis;Žymėjimas;Darbinis ir žemyn];[Pakeisti;Vienijimas;Atimti;Persiklojimas;Nepersiklojimai;Apjungti];[[Linijinis;Radialinis;Kampas;Atspindėtas;Deimantas;Sprogimo forma];[Minkštesnis;Tikslumas];[Kantas į išorę;Kantas į vidų;Išgaubimas;Išgaubimas pagalvėle;Išgaubimas tiesiai;Kontūro plotis];[Švelniai;Iškalti kietai;Iškalti minkštai;Glotnumas];[Aukštyn;Žemyn];[Išorėn;Centras;Vidus;Iš centro];[Šešėliai;Vidutiniai tonai;Šviesumos];[Išblukinimas;Gryninti];[Mažas;Vidutinis;Didelis];[Didžiosios raidės;Kampai;Brūkšnelis]];[Žymekliu pasirinkite objektą;Transformavimo valdikliai;Normalus mastelis (100%);Sutalpinti;[Lygiuoti kairėn;Centruoti horizontaliai;Lygiuoti dešinėn;Lygiuoti į viršų;Centruoti vertikaliai;Lygiuoti į apačią;Išdėlioti lygiais tarpais]];[Idėti;Darbinis projektas;Naujas projektas;Raiška;Pridėta į darbinį projektą.;Naujas projektas sėkmingai sukurtas.;Prieiga prie kameros uždrausta.];[Orientacija;Lankstyti;Horizontalūs iškraipymai;Vertikalūs iškraipymai;[Horizontaliai;Vertikaliai;Horizontalus;Vertikalus];[Be poveikio;Lankas;Lankas žemyn;Lankas aukštyn;Arka;Išpūstumas;Žemutinis kiautas;Viršutinis kiautas;Vėliava;Banga;Žuvis;Pakilimas;Žuvies akis;Išpūsti;Suspausti;Suvyti;Savaip];[Šriftas;nepasiekiama;Bus atvaizduota naudojant;Šiame projekte yra neišsaugotų darbų:;Ar tikrai norite jį uždaryti?];[Spalvų sukeitimas;Numatytosios: balta ir juoda]];[įkeltas;pridėtas;Perkelti gairę;Ištrinti gairę;Pridėti gairę;Įkeliama;Įkelti VAR0];[Filtrų galerija;[[Suskystinimas;[Glodinimas;Rekonstruoti;Švelninti;Sukti;Sutraukti;Išpūsti;Stumti kairėn;Užšaldyti;Atšaldyti]];[Lęšio iškraipymų korekcija]];Liejimas;[Vidurkinimas;Liejimas;Dar lieti;Lieti dėžute;Gauso liejimas;Lęšio liejimas;Judesio liejimas;Radialinis liejimas;Liejimas forma;Išmanusis liejimas;Paviršinis liejimas];Iškraipymai;[Sudėti pagal kitą;Gnybti;Poliarinės koordinatės;Raibuliavimas;Žirklės;Sfera;Banga];Triukšmas;[Pridėti triukšmo;Dėmių valymas;Dulkės ir įbrėžimai;Mediana];Pikseliuoti;[Pustonis;Kristalai;Facetas;Fragmentas;Pusiau tapyta (mezzo-tinto);Mozaika;Puantilizmas];Vaizduoti;[Debesys;Debesų įvairovė;Lęšio spindesys];Aštrinti;[Aštrinti;Aštrinti kraštus;Aštrinti stipriau;Subtiliai aštrinti;Neryškumų maskavimas];Stilizuoti;[Difuzija;Išgaubimas;Ištraukimas;Kraštų aptikimas;Tapyba aliejumi];Kita;[Savaip;Aukštieji dažniai;Maksimumas;Minimumas;Poslinkis;Kartoti];[Neapibrėžta sritis;Tebūnie skaidru;Kartoti pikselius kraštuose;Aplankstyti;Paskiausias filtras;Peržiūra]];[Šablonai;[Šriftų filtras;Raktiniai žodžiai;Išmaišyti];[Su simboliais;Su nuotrauka];[Miniatiūros;Sąrašas]]" + ] +} \ No newline at end of file diff --git a/www.photopea.com/code/external/ext.js b/www.photopea.com/code/external/ext.js new file mode 100644 index 0000000..8df6aee --- /dev/null +++ b/www.photopea.com/code/external/ext.js @@ -0,0 +1,9036 @@ +var UDOC={};UDOC.B=function(){var V=new Uint8Array(4),B=V.buffer,U=new Int16Array(B),M=new Uint16Array(B),J=new Int32Array(B),D=new Uint32Array(B),d=new Float32Array(B); +return{readShort:function(K,w){V[0]=K[w];V[1]=K[w+1];return U[0]},readUshort:function(K,w){V[0]=K[w]; +V[1]=K[w+1];return M[0]},readInt:function(K,w){V[0]=K[w];V[1]=K[w+1];V[2]=K[w+2];V[3]=K[w+3];return J[0]},readUint:function(K,w){V[0]=K[w]; +V[1]=K[w+1];V[2]=K[w+2];V[3]=K[w+3];return D[0]},readUintBE:function(K,w){V[3]=K[w];V[2]=K[w+1];V[1]=K[w+2]; +V[0]=K[w+3];return D[0]},readFloat:function(K,w){V[0]=K[w];V[1]=K[w+1];V[2]=K[w+2];V[3]=K[w+3];return d[0]},readASCII:function(K,w,I){var O=""; +for(var n=0;nM)M=d;if(KJ)J=K}return[B,U,M,J]},rectToPath:function(V){return{cmds:["M","L","L","L","Z"],crds:[V[0],V[1],V[2],V[1],V[2],V[3],V[0],V[3]]}},insideBox:function(V,B){return B[0]<=V[0]&&B[1]<=V[1]&&V[2]<=B[2]&&V[3]<=B[3]},isBox:function(V,B){var U=function(R,l){for(var Q=0; +Q<8;Q+=2){var c=!0;for(var f=0;f<8;f++)if(Math.abs(l[f]-R[f+Q&7])>=2){c=!1;break}if(c)return!0}return!1},D=!1; +if(V.cmds.length>10)return!1;var M=V.cmds.join(""),J=V.crds;if(M=="MLLLZ"&&J.length==8||(M=="MLLLLZ"||M=="MLLLL")&&J.length==10){if(J.length==10)J=J.slice(0,8); +if(B==null){B=[J[0],J[1],J[0],J[1]];for(var d=0;dJ)D-=2*Math.PI; +else while(D(M[1]-U[1])*(n[0]-U[0])},K=function(){var n=[U[0]-M[0],U[1]-M[1]],S=[J[0]-D[0],J[1]-D[1]],R=U[0]*M[1]-U[1]*M[0],x=J[0]*D[1]-J[1]*D[0],l=1/(n[0]*S[1]-n[1]*S[0]); +return[(R*S[0]-x*n[0])*l,(R*S[1]-x*n[1])*l]},w=V,I,O;U=B[B.length-1];for(O in B){var M=B[O],$=w;w=[]; +J=$[$.length-1];for(I in $){var D=$[I];if(d(D)){if(!d(J)){w.push(K())}w.push(D)}else if(d(J)){w.push(K())}J=D}U=M}return w}}; +UDOC.M={getScale:function(V){return Math.sqrt(Math.abs(V[0]*V[3]-V[1]*V[2]))},translate:function(V,B,U){UDOC.M.concat(V,[1,0,0,1,B,U])},rotate:function(V,B){UDOC.M.concat(V,[Math.cos(B),-Math.sin(B),Math.sin(B),Math.cos(B),0,0])},scale:function(V,B,U){UDOC.M.concat(V,[B,0,0,U,0,0])},concat:function(V,B){var U=V[0],M=V[1],J=V[2],D=V[3],d=V[4],K=V[5]; +V[0]=U*B[0]+M*B[2];V[1]=U*B[1]+M*B[3];V[2]=J*B[0]+D*B[2];V[3]=J*B[1]+D*B[3];V[4]=d*B[0]+K*B[2]+B[4]; +V[5]=d*B[1]+K*B[3]+B[5]},invert:function(V){var B=V[0],U=V[1],M=V[2],J=V[3],D=V[4],d=V[5],K=B*J-U*M; +V[0]=J/K;V[1]=-U/K;V[2]=-M/K;V[3]=B/K;V[4]=(M*d-J*D)/K;V[5]=(U*D-B*d)/K},multPoint:function(V,B){var U=B[0],M=B[1]; +return[U*V[0]+M*V[2]+V[4],U*V[1]+M*V[3]+V[5]]},multArray:function(V,B){for(var U=0;UU?$:(116*I-16)/B,x=w>U?w:(116*K-16)/B,l=S>U?S:(116*n-16)/B,Q=l*96.72,c=x*100,f=R*81.427,y=[Q/100,c/100,f/100],P=[3.1338561,-1.6168667,-.4906146,-.9787684,1.9161415,.033454,.0719453,-.2289914,1.4052427],q=[P[0]*y[0]+P[1]*y[1]+P[2]*y[2],P[3]*y[0]+P[4]*y[1]+P[5]*y[2],P[6]*y[0]+P[7]*y[1]+P[8]*y[2]]; +for(var H=0;H<3;H++)q[H]=Math.max(0,Math.min(1,UDOC.C.srgbGamma(q[H])));return q}};UDOC.getState=function(V){return{font:UDOC.getFont(),dd:{flat:1},ca:1,colr:[0,0,0],space:"/DeviceGray",CA:1,COLR:[0,0,0],sspace:"/DeviceGray",bmode:"/Normal",SA:!1,OPM:0,AIS:!1,OP:!1,op:!1,SMask:"/None",lwidth:1,lcap:0,ljoin:0,mlimit:10,SM:.1,doff:0,dash:[],ctm:[1,0,0,1,0,0],cpos:[0,0],pth:{cmds:[],crds:[]},cpth:V?UDOC.G.rectToPath(V):null,cpstack:[]}}; +UDOC.getFont=function(){return{Tc:0,Tw:0,Th:100,Tl:0,Tf:"Helvetica-Bold",Tfs:1,Tmode:0,Trise:0,Tk:0,Tal:0,Tun:0,Tm:[1,0,0,1,0,0],Tlm:[1,0,0,1,0,0],Trm:[1,0,0,1,0,0]}}; +function FromPS(){}FromPS.Parse=function(V,B){V=new Uint8Array(V);var U=0,D=null,d=null,l=!0;while(!(V[U]==37&&V[U+1]==33))U++; +var M=FromPS.B.readASCII(V,U,V.length-U),J=M.split(/[\n\r]+/);for(var K=0;K>"){var y=[];while(V.length!=0){var P=V.pop();if(P.typ=="mark")break;y.push(P)}y.reverse(); +if(R=="]")V.push({typ:"array",val:y});else{var q={};for(var H=0;H=a4.val.length){}else if(bg.typ=="string")for(var H=0;H=0; +H--)if(U[H].typ=="file"){bX=U[H];break}V.push({typ:"file",val:bX.val})}else if(p=="currentdict"){var X=B[B.length-1]; +V.push({typ:"dict",val:X,maxl:1e3})}else if("currentpacking currentoverprint currentglobal currentsystemparams currentuserparams currentpagedevice".split(" ").indexOf(p)!=-1){var b=J[p.slice(7)]; +V.push({typ:typeof b=="boolean"?"boolean":"dict",val:b})}else if(p=="gcheck"){var L=V.pop();V.push({typ:"boolean",val:!1})}else if("setpacking setoverprint setglobal setsystemparams setuserparams setpagedevice".split(" ").indexOf(p)!=-1){J[p.slice(3)]=V.pop().val}else if(p=="currentflat"){V.push({typ:"real",val:1})}else if(p=="currentlinewidth"){V.push({typ:"real",val:$.lwidth})}else if(p=="currentdash"){V.push({typ:"array",val:FromPS.makeArr($.dash,"integer")},{typ:"real",val:$.doff})}else if(p=="currentpoint"){var bM=$.ctm.slice(0); +UDOC.M.invert(bM);var cd=UDOC.M.multPoint(bM,$.cpos);V.push({typ:"real",val:cd[0]},{typ:"real",val:cd[1]})}else if(p=="currentscreen"){V.push({typ:"int",val:60},{typ:"real",val:0},{typ:"real",val:0})}else if(p=="setscreen"){V.pop(); +V.pop();V.pop()}else if(p=="currenthalftone"){V.push({typ:"dict",val:{},maxl:1e3})}else if(p=="currentblackgeneration"||p=="currentundercolorremoval"){V.push(J.funs[p.slice(7)])}else if(p=="currentcolortransfer"){for(var H=0; +H<4;H++)V.push(J.funs.blackgeneration)}else if(p=="findresource"){var aD=V.pop().val.slice(1),bh=V.pop(),a=bh.val.slice(1),bm; +if(aD=="Font"){J.res[aD].val[a]={typ:"dict",val:{FontType:{typ:"integer",val:1},FontMatrix:{typ:"array",val:FromPS.makeArr([1,0,0,1,0,0],"real")},FontName:bh,FID:{typ:"fontID",val:Math.floor(Math.random()*16777215)},Encoding:{typ:"array",val:[]},FontBBox:{typ:"array",val:FromPS.makeArr([0,0,1,1],"real")},PaintType:{typ:"integer",val:0}}}}if(aD=="Category"&&a=="Generic")bm={typ:"dict",val:{},maxl:1e3}; +else if((aD=="ProcSet"||aD=="Procset")&&a=="CIDInit")bm={typ:"dict",val:{},maxl:1e3};else bm=J.res[aD].val[a]; +if(bm==null)throw"e";V.push(bm)}else if(p=="resourcestatus"){var aD=V.pop().val.slice(1),a=V.pop().val.slice(1),bm=J.res[aD].val[a]; +if(bm){V.push({typ:"integer",val:1});V.push({typ:"integer",val:Object.keys(bm.val).length})}V.push({typ:"boolean",val:bm!=null})}else if(p=="defineresource"){var aD=V.pop().val.slice(1),bC=V.pop(),a=V.pop().val.slice(1); +J.res[aD].val[a]=bC;V.push(bC)}else if(p=="undefineresource"){var aD=V.pop().val.slice(1),a=V.pop().val.slice(1); +delete J.res[aD].val[a]}else if(p=="resourceforall"){var aD=V.pop().val.slice(1),aI=V.pop().val,E=V.pop(),bJ=V.pop().val; +if(bJ.length!=1||bJ[0]!=42)throw"e";var ak=J.res[aD].val;for(var a in ak){var Y=aI.slice(0);for(var H=0; +H0?A<>>-N;if(p=="mod")t=A%N;if(p=="exp")t=Math.pow(A,N);if(p=="atan")t=Math.atan2(A,N)*180/Math.PI; +if(aK=="real"){I[0]=t;t=I[0]}V.push({typ:aK,val:t})}else if("neg abs floor ceiling round truncate sqrt ln sin cos".split(" ").indexOf(p)!=-1){var v=V.pop(),A=v.val,t=0,aK=""; +if(p=="neg"||p=="abs"||p=="truncate"||p=="floor"||p=="ceiling"||p=="round")aK=v.typ;else if(p=="sqrt"||p=="sin"||p=="cos"||p=="ln")aK="real"; +if(v.typ=="real"){I[0]=A;A=I[0]}if(p=="neg")t=-A;if(p=="abs")t=Math.abs(A);if(p=="floor")t=Math.floor(A); +if(p=="ceiling")t=Math.ceil(A);if(p=="round")t=Math.round(A);if(p=="truncate")t=Math.trunc(A);if(p=="sqrt")t=Math.sqrt(A); +if(p=="ln")t=Math.log(A);if(p=="sin")t=Math.sin(A*Math.PI/180);if(p=="cos")t=Math.cos(A*Math.PI/180); +if(p=="ln"&&A<=0)throw"e";if(aK=="real"){I[0]=t;t=I[0]}V.push({typ:aK,val:t})}else if("eq ge gt le lt ne".split(" ").indexOf(p)!=-1){var bF=V.pop(),v=V.pop(),ac=v.typ,aS=bF.typ,A=v.val,N=bF.val,t=!1; +if(p=="eq"||p=="ne"){var h=v.typ==bF.typ;if(h&&["integer","real","name","null","dict"].indexOf(ac)!=-1)t=A==N; +else if(ac=="real"&&aS=="integer"||aS=="real"&&ac=="integer")t=A==N;else if(!h&&(v.typ=="null"||bF.typ=="null"))t=!1; +else if(h&&v.typ=="string"){if(A.length!=N.length)t=!1;else{t=!0;for(var H=0;H=N;else if(p=="gt")t=A>N;else if(p=="le")t=A<=N;else if(p=="lt")t=A0&&_.init<=_.limit||_.inc<0&&_.init>=_.limit){U.push(n);FromPS.addProc(_.proc,U); +V.push({typ:"integer",val:_.init});_.init+=_.inc}}else{var T=new Float32Array(1);T[0]=_.limit;_.limit=T[0]; +T[0]=_.inc;_.inc=T[0];T[0]=_.init;if(_.inc>0&&T[0]<=_.limit||_.inc<0&&T[0]>=_.limit){U.push(n);FromPS.addProc(_.proc,U); +V.push({typ:"real",val:T[0]});T[0]+=_.inc;_.init=T[0]}}}else if(p=="loop"){var E=V.pop();U.push({typ:"name",val:p+"---",ctx:{proc:E}})}else if(p=="loop---"){var _=n.ctx; +U.push(n);FromPS.addProc(_.proc,U)}else if(p=="pathforall"){var Z=V.pop(),ch=V.pop(),bI=V.pop(),bN=V.pop()}else if(p=="forall"){var E=V.pop(),g=V.pop(),_=[E,g,0]; +U.push({typ:"name",val:p+"---",ctx:_})}else if(p=="forall---"){var _=n.ctx,E=_[0],g=_[1],H=_[2];if(g.typ=="dict"){var cb=Object.keys(g.val); +if(HH)U.pop()}else if(p=="bind"){}else if(p=="xcheck"){var g=V.pop(),S=g.typ;V.push({typ:"boolean",val:S=="procedure"})}else if(p=="status"){var Y=V.pop(); +V.push({typ:"boolean",val:!1})}else if(p=="cachestatus"){for(var H=0;H<7;H++)V.push({typ:"integer",val:5e3})}else if(p=="setcachelimit"){V.pop()}else if(p=="type"){var P=V.pop(),aL={name:"nametype",dict:"dicttype",boolean:"booleantype",procedure:"operatortype",string:"stringtype",null:"nulltype",integer:"integertype",array:"arraytype",operator:"operatortype",real:"realtype"}; +if(aL[P.typ]==null){console.log(P);throw P.typ}V.push({typ:"name",val:"/"+aL[P.typ]})}else if(p=="save"){V.push({typ:"state",val:JSON.parse(JSON.stringify($))})}else if(p=="restore"){$=J.gst=V.pop().val}else if(p=="clipsave"){$.cpstack.push(JSON.parse(JSON.stringify($.cpth)))}else if(p=="cliprestore"){$.cpath=$.cpstack.pop()}else if(p=="gsave"){M.push(JSON.parse(JSON.stringify($)))}else if(p=="grestore"){if(M.length!=0)$=J.gst=M.pop(); +else $=UDOC.getState()}else if(p=="grestoreall"){while(M.length!=0)$=J.gst=M.pop()}else if(p=="usertime"||p=="realtime")V.push({typ:"integer",val:p=="usertime"?Date.now()-w:Date.now()}); +else if(p=="flush"||p=="readonly"||p=="executeonly"){}else if(p=="flushfile"){FromPS.GetFile(V.pop())}else if(p=="filter"){var a7=V.pop().val,c1; +if(a7=="/SubFileDecode"){var Y=V.pop();if(Y.typ!="string")throw"e";var aP=V.pop().val;Y=Y.val;c1=[a7,Y,aP]}else c1=[a7]; +var a0=V.pop();V.push({typ:"file",val:{buff:new Uint8Array,off:0},_flt:c1,_src:a0})}else if(p=="begincmap"||p=="endcmap"){}else if(p=="begincodespacerange"||p=="beginbfrange"||p=="beginbfchar"){J.cmnum=V.pop().val}else if(p=="endcodespacerange"||p=="endbfrange"||p=="endbfchar"){var Z=p=="endbfrange"?3:2,ck=p.slice(3),X=B[B.length-1],cf=0; +if(X[ck]==null)X[ck]=[];for(var H=0;H=0;cr--){var au=V.pop(),aE=au.val,b; +if(au.typ=="string"){b=FromPS.strToInt(aE);if(cr==0)cf=aE.length}else{b=[];for(var c5=0;c5=V.buff.length)throw"e";var d=V.buff[D];D++;if(FromPS.isWhite(d))continue;if(d==126){if(M!=0){if(M==3){U.push(J>>>24&255)}if(M==4){U.push(J>>>24&255,J>>>16&255)}var K=5-M<<3,I=J>>>K&255; +J=J&(1<>>24&255);U.push(J>>>16&255);U.push(J>>>8&255);U.push(J>>>0&255); +M=0;J=0}}},RunLengthDecode:function(V){var B=[],U=V.off;while(!0){if(U>=V.buff.length){console.log(B); +throw"e"}var M=V.buff[U];U++;if(M==128){V.off=U;return new Uint8Array(B)}if(M<128){for(var J=0;J>>3]<<16|M[c+8>>>3]<<8|M[c+16>>>3];q=P>>24-(c&7)-Q&(1<>>3]<<16|M[c+8>>>3]<<8|M[c+16>>>3];q=P>>24-(c&7)-Q&(1<=x){n[x]=l;O[n[x]]=a[0];S[x]=1;l=l+1+3&~3; +x++}else{n[x]=l;var F=n[k],Y=S[k];B(O,F,O,l,Y);O[l+Y]=O[a];Y++;S[x]=Y;x++;l=l+Y+3&~3}if(x+1==1<=x){n[x]=l; +S[x]=0;x++}else{n[x]=l;var F=n[k],Y=S[k];B(O,F,O,l,Y);O[l+Y]=O[l];Y++;S[x]=Y;x++;B(O,l,D,d,Y);d+=Y;l=l+Y+3&~3}if(x+1==1<=0){if(B[U][V]!=null)return B[U][V];U--}return null};FromPS.where=function(V,B){var U=B.length-1; +while(U>=0){if(B[U][V]!=null)return B[U];U--}return null};FromPS.skipWhite=function(V){var B=V.off,U=V.buff,M=FromPS.isWhite; +while(M(U[B])||U[B]==37){while(M(U[B]))B++;if(U[B]==37){while(B1){V.pop();if(V.length!=0)J=FromPS.getFToken(V[V.length-1].val,B)}return J}; +FromPS.getFToken=function(V,B){FromPS.skipWhite(V);var U=FromPS.isWhite,M=FromPS.isSpecl,J=V.off,D=V.buff,d=null; +if(J>=D.length)return null;var K=D[J],I=String.fromCharCode(K);J++;if(I=="("){var O=0,$=J;while(!(D[$]==41&&O==0)){if(D[$]==40)O++; +if(D[$]==41)O--;if(D[$]==92)$++;$++}var n=[];for(var S=0;S<$-J;S++)n.push(D[J+S]);J=$+1;n=FromPS.getString(n); +d={typ:"string",val:n}}else if(I=="{"||I=="}"||I=="["||I=="]"){d={typ:"name",val:I}}else if(I=="<"&&D[J]==60||I==">"&&D[J]==62){d={typ:"name",val:I=="<"?"<<":">>"}; +J++}else if(I=="<"){var n;if(D[J]=="~".charCodeAt(0)){V.off=J+1;var R=FromPS.F.ASCII85Decode(V);n=[]; +for(var S=0;SD[5]){D=D.slice(3).concat(D.slice(0,3)); +J.reverse();w.reverse();for(var $=0;$0)K.push([0,U(M[0],[d[0]],B)]);for(var I=0;I>1)&255; +if($==4)for(var n=J;n>1)&255;for(var n=J;n>1)&255}if($==4){for(var n=0; +n=0;I--)D.push(w[I]);continue}var O=K["/MediaBox"];if(O==null)O=V["/Pages"]["/MediaBox"]; +d+=(O[2]-O[0])*(O[3]-O[1])}var D=[V["/Pages"]],$=-1,n=[-1e9,1e9];while(D.length!=0){var K=D.pop();if(K["/Type"]=="/Pages"){var w=K["/Kids"]; +for(var I=w.length-1;I>=0;I--)D.push(w[I]);continue}$++;if($=n[1])break}};FromPDF.addCmd=function(V,B,U){var M=V.length,J=new Uint8Array(M);for(var D=0;D>1)]>>(1-(U&1)<<2)&15; +else if(M==2)J=V[B+(U>>2)]>>(3-(U&3)<<1)&3;else if(M==1)J=V[B+(U>>3)]>>(7-(U&7)<<0)&1;return J};FromPDF.getString=function(V,B){var U=B["/Subtype"],M="",J=0,D=null,d=B["/ToUnicode"],K=B["/Encoding"],w=B,ca; +if(d!=null&&typeof d!="object")d=null;if(U=="/Type0")w=B["/DescendantFonts"][0];if(d!=null)M=FromPDF.toUnicode(V,d); +else if(K=="/WinAnsiEncoding")M=FromPDF.encFromMap(V,FromPDF._win1252);else if(K=="/MacRomanEncoding")M=FromPDF.encFromMap(V,FromPDF._macRoman); +else if(U=="/Type0"){var I=0,O=w["/CIDSystemInfo"]["/Ordering"];if(O=="Identity")I=0;else if(O=="Japan1")I=31; +else if(O=="GB1")I=31;else if(O=="CNS1")I=31;else if(O=="Korea1")I=31;else{console.log("unknown ordering",O); +I=0}for(var $=0;$4){M--;U++}return V[U]<<24|V[U+1]<<16|V[U+2]<<8|V[U+3]}; +FromPDF.getIndirect=function(V,B,U,M){var J=M[V],K;if(J.chr=="f")return null;if(J.val!=null)return J.val; +if(J.opn)return{typ:"ref",ind:V,gen:B};J.opn=!0;var D=U.off;if(J.chr=="s"){var I=FromPDF.getIndirect(J.off,J.gen,U,M),O={buff:FromPS.GS(I),off:0},$=0,n=0; +while($!=V){$=FromPS.getFToken(O).val;n=FromPS.getFToken(O).val}O.off=n+I["/First"];K=FromPDF.readObject(O,U,M)}else{U.off=J.off; +var S=FromPS.getFToken(U);if(S.val!="<<"){var R=FromPS.getFToken(U),x=FromPS.getFToken(U)}else U.off-=2; +K=FromPDF.readObject(U,U,M)}J.val=K;U.off=D;J.opn=!1;return K};FromPDF.readObject=function(V,B,U){var M=FromPS.getFToken(V); +if(M.typ=="integer"){var J=V.off,D=FromPS.getFToken(V);if(D&&D.typ=="integer"){FromPS.skipWhite(V);if(V.buff[V.off]==82){V.off++; +if(U&&U[M.val])return FromPDF.getIndirect(M.val,D.val,B,U);else return{typ:"ref",ind:M.val,gen:D.val}}}V.off=J}if(M.val=="<<")return FromPDF.readDict(V,B,U); +if(M.val=="[")return FromPDF.readArra(V,B,U);if(M.typ=="string"){var d="";for(var K=0;K>")throw"e";return M.val};FromPDF.readDict=function(V,B,U){var M={}; +while(!0){var J=V.off,D=FromPS.getFToken(V);if(D.typ=="name"&&D.val==">>")break;V.off=J;var d=FromPDF.readObject(V,B,U),K=FromPDF.readObject(V,B,U); +M[d]=K}if(M["/Length"]!=null&&M["/CFM"]==null){var w=M["/Length"],I=FromPS.getFToken(V);if(V.buff[V.off]==32)V.off++; +if(V.buff[V.off]==13)V.off++;if(V.buff[V.off]==10)V.off++;if(V.off+w>V.buff.length){console.log("too big /Length of a stream",w,V.buff.length-V.off,V.off)}M.buff=V.buff.slice(V.off,V.off+w); +V.off+=w;FromPS.getFToken(V)}return M};FromPDF.readArra=function(V,B,U){var M=[];while(!0){var J=V.off,D=FromPS.getFToken(V); +if(D.typ=="name"&&D.val=="]")return M;V.off=J;var d=FromPDF.readObject(V,B,U);M.push(d)}};var FromWMF=function(){var V=0,B=53,U=55,M=258,J=259,D=260,d=261,K=262,w=263,I=264,O=295,$=313,n=322,S=329,R=513,x=521,l=529,Q=531,c=532,f=544,y=552,P=561,q=564,H=804,g=805,p=522,k=523,b=524,ct=525,a=526,ca=527,X=1040,F=1042,Y=1045,aJ=1046,e=1048,aF=1049,aP=1065,bV=1078,bg=1313,t=1336,a4=1352,ai=1051,bi=1055,aB=1564,bk=1565,ah=30,b6=2074,bX=2851,L=1574,bM=298,cd=299,aD=300,bh=301,bm=302,bC=2071,aI=2096,E=2338,bJ=2610,ak=3379,bU=2368,aY=2881,cf=3907,bL=496,cl=247,c4=505,bv=762,aH=763,bu=764,ae=1791,bt=1,cn=2,bR=3,cr=4,a1=5,cg=6,ao=7,aw=8,a5=9,b4=10,cq=11,bP=12,r=13,bA=14,bZ=15,c0=16,aU=17,aC=18,bo=19,bK=20,aQ=21,bj=22,ce=23,cs=24,at=25,by=26,bd=27,b5=28,bp=29,c5=30,bw=31,ab=32,aj=33,cc=34,am=35,bc=37,a8=38,b8=42,a9=256,bT=258,az=512,bl=513,b0=514,bW=2049,c7=3073,aq=4096,bf=4097,bz=4098,ad=4110,bO=4111,aM=4112,bD=4115,an=4116,ax=4117,al=4118,G=4119,bq=4120,bF=4121,v=4122,u=4568,A=UDOC.B; +function N(z,s){z=new Uint8Array(z);var i=0,W={fill:!1,strk:!1,bb:[0,0,1,1],lbb:[0,0,1,1],scl:1,fnt:{nam:"Arial",hgh:25,und:!1,orn:0,chrst:0},tclr:[0,0,0],talg:0},o=A.readShort,m=A.readUshort,C=A.readUint,aN=C(z,0),a3=0; +if(aN==2596720087){i=6;var av=o(z,i+8);W.scl=120/av;for(var b1=0;b1<4;b1++){W.bb[b1]=Math.round(o(z,i)*W.scl); +i+=2}i+=2;i+=6}s.StartPage(W.bb[0],W.bb[1],W.bb[2],W.bb[3]);var j=UDOC.getState(W.bb),as=m(z,i);i+=2; +var aG=m(z,i);i+=2;var c6=m(z,i);i+=2;var bn=C(z,i);i+=4;var ag=m(z,i);i+=2;var c3=C(z,i);i+=4;var ag=m(z,i); +i+=2;var _=[];while(!0){var br=C(z,i)<<1,ch=null;i+=4;var a6=m(z,i);i+=2;var T=a6,Z=i;if(!1){}else if(T==V)break; +else if(T==L){var bI=m(z,i);Z+=2;var bN=bI;console.log(T,bN)}else if(T==J||T==K||T==M){}else if(T==bh){var cb=m(z,Z); +Z+=2;var b9=_[cb];if(b9.t=="br"){W.fill=b9.stl!=1;if(b9.stl==0){}else if(b9.stl==1){}else throw b9.stl+" e"; +j.colr=b9.clr}else if(b9.t=="pn"){var aL=b9.stl&7;W.strk=aL!=5;if(aL==0||aL==6)j.lwidth=b9.px;else if(aL==5){}else throw aL+" e"; +if((b9.stl&4096)!=0)j.ljoin=2;else if((b9.stl&8192)!=0)j.ljoin=0;else j.ljoin=1;j.COLR=b9.clr}else if(b9.t=="fn"){W.fnt=b9; +j.font.Tf=b9.nam;j.font.Tfs=Math.abs(b9.hgh);j.font.Tun=b9.und}else throw"e"}else if(T==bL){var cb=m(z,Z); +Z+=2;_[cb]=null}else if(T==k||T==b){var a7=T==k?0:2;W.lbb[a7+1]=o(z,Z);Z+=2;W.lbb[a7]=o(z,Z);Z+=2;ac(W,j)}else if(T==bu){ch={t:"br"}; +ch.stl=m(z,Z);Z+=2;ch.clr=[z[Z]/255,z[Z+1]/255,z[Z+2]/255];Z+=4;ch.htc=m(z,Z);Z+=2}else if(T==bv){ch={t:"pn"}; +ch.stl=m(z,Z);Z+=2;ch.px=o(z,Z);Z+=2;ch.py=o(z,Z);Z+=2;ch.clr=[z[Z]/255,z[Z+1]/255,z[Z+2]/255];Z+=4}else if(T==aH){ch={t:"fn",nam:""}; +ch.hgh=o(z,Z);Z+=2;Z+=2*2;ch.orn=o(z,Z)/10;Z+=2;var c1=o(z,Z);Z+=2;ch.und=z[Z+1];Z+=2;ch.stk=z[Z];ch.chrst=z[i+1]; +Z+=2;Z+=4;while(z[Z]!=0){ch.nam+=String.fromCharCode(z[Z]);Z++}if(c1>500)ch.nam+="-Bold"}else if(T==cl){ch={t:"pl"}}else if(T==x)W.tclr=[z[Z]/255,z[Z+1]/255,z[Z+2]/255]; +else if(T==bm)W.talg=m(z,Z);else if(T==c){UDOC.G.moveTo(j,o(z,Z+2),o(z,Z))}else if(T==Q){if(j.pth.cmds.length==0){var a0=j.ctm.slice(0); +UDOC.M.invert(a0);var ck=UDOC.M.multPoint(a0,j.cpos);UDOC.G.moveTo(j,ck[0],ck[1])}UDOC.G.lineTo(j,o(z,Z+2),o(z,Z)); +var a$=W.fill;W.fill=!1;aS(s,j,W);W.fill=a$}else if(T==t){var au=m(z,Z);Z+=2;var aE=Z;Z+=au*2;for(var b1=0; +b1127){b1++;bB=bB<<8|z[Z+b1]}b2+=String.fromCharCode(bB)}var c8=j.colr;j.colr=W.tclr;s.PutText(j,b2,b2.length*j.font.Tfs*.5); +j.colr=c8}else{console.log(T,br)}if(ch!=null){var cp=0;while(_[cp]!=null)cp++;_[cp]=ch}i+=br-6}s.ShowPage(); +s.Done()}function aK(z,s){var i=A.readShort,W=A.readUshort,o=A.readUint,m=o(z,s),C,aN,av;s+=4;if(m==12)throw"e"; +else{C=o(z,s);s+=4;aN=o(z,s);s+=4;var b1=W(z,s);s+=2;if(b1!=1)throw"e";var j=W(z,s);s+=2;if(j!=1&&j!=24&&j!=32)throw j+" e"; +var as=o(z,s);s+=4;if(as!=0)throw"e";var aG=o(z,s);s+=4;var c6=o(z,s);s+=4;var bn=o(z,s);s+=4;av=o(z,s); +s+=4;var ag=o(z,s);s+=4}var c3=C*aN,_=new Uint8Array(c3*4),a3=Math.floor((C*b1*j+31&~31)/8);if(j==1)for(var br=0; +br>>3)]>>>7-(T&7)&1; +_[Z]=z[s+ch*4+2];_[Z+1]=z[s+ch*4+1];_[Z+2]=z[s+ch*4+0];_[Z+3]=255}}if(j==24){for(var br=0;br500)C.nam+="-Bold"}else if(W==r){m+=16; +var bn=h(G,m),bN="";m+=4;var ag=z(G,m);m+=4;var c3=z(G,m);m+=4;var _=aS(G,m);m+=4;var a3=aS(G,m);m+=4; +var br=u.ctm.slice(0);if(bn==1)u.ctm=[1,0,0,1,0,0];u.font.Tm=[1,0,0,-1,0,0];UDOC.M.rotate(u.font.Tm,v.fnt.orn*Math.PI/180); +UDOC.M.translate(u.font.Tm,_,a3);var a6=v.talg;if((a6&6)==6)u.font.Tal=2;else if((a6&7)==0)u.font.Tal=0; +else throw a6+" e";if((a6&24)==24){}else if((a6&24)==0)UDOC.M.translate(u.font.Tm,0,u.font.Tfs);else console.log("unknown alignment",a6); +var T=h(G,m);m+=4;var Z=h(G,m);m+=4;var ch=h(G,m);m+=4;m+=16;var bI=h(G,m);m+=4;Z+=bF-8;for(var cb=0; +cb0){UDOC.G.curveTo(u,ay(G,m),ay(G,m+cw),ay(G,m+2*cw),ay(G,m+3*cw),ay(G,m+4*cw),ay(G,m+5*cw)); +m+=6*cw;a$-=3}}else if(W==ai||W==a4){UDOC.G.newPath(u);var ap=bD(G,m);if(W==ai){UDOC.G.drawRect(u,ap[0],ap[1],ap[2]-ap[0],ap[3]-ap[1])}else{var bQ=(ap[0]+ap[2])/2,be=(ap[1]+ap[3])/2; +UDOC.G.arc(u,bQ,be,(ap[2]-ap[0])/2,0,2*Math.PI,!1)}UDOC.G.closePath(u);ax(bq,u,v,!0)}else if(W==aY)bq.Fill(u,!1); +else if(W==bL)bq.Stroke(u);else if(W==cf){bq.Fill(u,!1);bq.Stroke(u)}else if(W==aJ||W==e){var aR=[]; +for(var cb=0;cb<6;cb++)aR.push(z(G,m+cb*4));m+=24;if(W==aJ)u.ctm=aR;else{var bn=h(G,m);m+=4;if(bn==2){var a_=u.ctm; +u.ctm=aR;UDOC.M.concat(u.ctm,a_)}else throw"e"}}else if(W==y){var b7=h(G,m);m+=4}else if(W==b4){var ap=bD(G,m); +m+=16;var c2=aS(G,m);m+=4;var b_=aS(G,m);m+=4;var af=aS(G,m);m+=4;var bY=aS(G,m);m+=4;var aa=aS(G,m); +m+=4;var bx=aS(G,m);m+=4;var cj=h(G,m)+bF-8;m+=4;var ba=h(G,m);m+=4;var c9=h(G,m)+bF-8;m+=4;var bs=h(G,m); +m+=4;var aA=h(G,m);m+=4;if(aA!=0)throw"e";var bH=h(G,m);m+=4;var bE=aS(G,m);m+=4;var b2=aS(G,m);m+=4; +var bB=h(G,cj);cj+=4;var c8=h(G,cj);cj+=4;var cp=h(G,cj);cj+=4;if(c8!=aa||cp!=bx)throw"e";var ar=ac(G,cj); +cj+=2;var b$=ac(G,cj);cj+=2;if(b$!=1&&b$!=4&&b$!=8&&b$!=24&&b$!=32)throw b$+" e";var bG=h(G,cj);cj+=4; +if(bG!=0)throw bG+" e";var ci=h(G,cj);cj+=4;var aZ=h(G,cj);cj+=4;var bb=h(G,cj);cj+=4;var bS=h(G,cj); +cj+=4;var b3=h(G,cj);cj+=4;var cv=Math.floor((c8*ar*b$+31&~31)/8),aT=new Uint8Array(c8*cp*4);if(b$==8){for(var be=0; +be>>1); +for(var g=0;ga1)a1=ao}for(var g=0;g=O[K+I+1])return 0;for(var Q=0;Q<=I;Q++){if($>=O[K+Q]&&$255){var k=H.indexOf(p);q.push(k==-1?32:H[k-1])}else q.push(p)}}else{for(var g=0; +g>2);k[b]=Q[g+0]; +k[b+1]=Q[g+1];k[b+2]=Q[g+2]}}var ct=this._res["/XObject"];for(var a in ct){var ca=this._xr[ct[a].ind],X=ca["/SMask"],F=X!=null?1:0,Y=P!=null?1:0; +if(!d(ca.stream,k)||F+Y==1)continue;if(F+Y==2&&!d(this._xr[X.ind].stream,H))continue;return a}var a="/I"+(n(ct)+1); +ct[a]={typ:"ref",ind:this._xr.length};var aJ={"/Type":"/XObject","/Subtype":"/Image","/BitsPerComponent":8,"/ColorSpace":Q.length==c*f||p=="/DCTDecode"&&$(Q)&&$(Q).comps==1?"/DeviceGray":"/DeviceRGB","/Height":f,"/Width":c,stream:k}; +if(p!=null)aJ["/Filter"]=K(Q);if(y){aJ["/SMask"]={typ:"ref",ind:this._xr.length-1}}this._xr.push(aJ); +return a};function $(Q){var c=0;while(c>");if(q){y(Q,P(f)+"\nstream\n");Q.file.req(Q.off,q.length); +for(var g=0;gthis.size)this.size*=2;var y=new Uint8Array(this.size);for(var P=0;P.05;if(S){R=V.ctm.slice(0); +R[1]*=-1;R[2]*=-1;R[4]=$;R[5]=n;$=n=0;this._trsf(R)}var x=8+16+12+4*6+16;this._addRec("EXTTEXTOUTW",x+M*2); +J.off+=16;d(J.file,J.off,2);J.off+=4;I(J.file,J.off,31.25);J.off+=4;I(J.file,J.off,31.25);J.off+=4;K(J.file,J.off,Math.round($)); +J.off+=4;K(J.file,J.off,Math.round(n));J.off+=4;d(J.file,J.off,B.length);J.off+=4;d(J.file,J.off,x); +J.off+=4;d(J.file,J.off,0);J.off+=4;J.off+=16;d(J.file,J.off,0);J.off+=4;for(var l=0;l1; +if(c){R*=Q;if(n=="L")x="POLYLINETO";l=8+20+4*R}this._addRec(x,l);if(c){U.off+=16;M(U.file,U.off,Q*S[1]); +U.off+=4;$+=Q-1}for(var f=0;fthis.size)this.size*=2; +var M=new Uint8Array(this.size);for(var J=0;J0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=o.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==b)throw new Error(d[a]);if(e.header&&o.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?h.string2buf(e.dictionary):"[object ArrayBuffer]"===_.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=o.deflateSetDictionary(this.strm,n),a!==b)throw new Error(d[a]);this._dict_set=!0}}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg||d[a.err];return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}function s(t,e){return e=e||{},e.gzip=!0,n(t,e)}var o=t("./zlib/deflate"),l=t("./utils/common"),h=t("./utils/strings"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=Object.prototype.toString,u=0,c=4,b=0,g=1,m=2,w=-1,p=0,v=8;i.prototype.push=function(t,e){var a,i,n=this.strm,r=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:e===!0?c:u,"string"==typeof t?n.input=h.string2buf(t):"[object ArrayBuffer]"===_.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new l.Buf8(r),n.next_out=0,n.avail_out=r),a=o.deflate(n,i),a!==g&&a!==b)return this.onEnd(a),this.ended=!0,!1;0!==n.avail_out&&(0!==n.avail_in||i!==c&&i!==m)||("string"===this.options.to?this.onData(h.buf2binstring(l.shrinkBuf(n.output,n.next_out))):this.onData(l.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||0===n.avail_out)&&a!==g);return i===c?(a=o.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===b):i!==m||(this.onEnd(b),n.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===b&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=l.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Deflate=i,a.deflate=n,a.deflateRaw=r,a.gzip=s},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(t,e,a){"use strict";function i(t){if(!(this instanceof i))return new i(t);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=s.inflateInit2(this.strm,e.windowBits);if(a!==h.Z_OK)throw new Error(d[a]);this.header=new _,s.inflateGetHeader(this.strm,this.header)}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg||d[a.err];return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}var s=t("./zlib/inflate"),o=t("./utils/common"),l=t("./utils/strings"),h=t("./zlib/constants"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=t("./zlib/gzheader"),u=Object.prototype.toString;i.prototype.push=function(t,e){var a,i,n,r,d,f,_=this.strm,c=this.options.chunkSize,b=this.options.dictionary,g=!1;if(this.ended)return!1;i=e===~~e?e:e===!0?h.Z_FINISH:h.Z_NO_FLUSH,"string"==typeof t?_.input=l.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?_.input=new Uint8Array(t):_.input=t,_.next_in=0,_.avail_in=_.input.length;do{if(0===_.avail_out&&(_.output=new o.Buf8(c),_.next_out=0,_.avail_out=c),a=s.inflate(_,h.Z_NO_FLUSH),a===h.Z_NEED_DICT&&b&&(f="string"==typeof b?l.string2buf(b):"[object ArrayBuffer]"===u.call(b)?new Uint8Array(b):b,a=s.inflateSetDictionary(this.strm,f)),a===h.Z_BUF_ERROR&&g===!0&&(a=h.Z_OK,g=!1),a!==h.Z_STREAM_END&&a!==h.Z_OK)return this.onEnd(a),this.ended=!0,!1;_.next_out&&(0!==_.avail_out&&a!==h.Z_STREAM_END&&(0!==_.avail_in||i!==h.Z_FINISH&&i!==h.Z_SYNC_FLUSH)||("string"===this.options.to?(n=l.utf8border(_.output,_.next_out),r=_.next_out-n,d=l.buf2string(_.output,n),_.next_out=r,_.avail_out=c-r,r&&o.arraySet(_.output,_.output,n,r,0),this.onData(d)):this.onData(o.shrinkBuf(_.output,_.next_out)))),0===_.avail_in&&0===_.avail_out&&(g=!0)}while((_.avail_in>0||0===_.avail_out)&&a!==h.Z_STREAM_END);return a===h.Z_STREAM_END&&(i=h.Z_FINISH),i===h.Z_FINISH?(a=s.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===h.Z_OK):i!==h.Z_SYNC_FLUSH||(this.onEnd(h.Z_OK),_.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===h.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Inflate=i,a.inflate=n,a.inflateRaw=r,a.ungzip=n},{"./utils/common":3,"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(t,e,a){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;a.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(var i in a)a.hasOwnProperty(i)&&(t[i]=a[i])}}return t},a.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,a,i,n){if(e.subarray&&t.subarray)return void t.set(e.subarray(a,a+i),n);for(var r=0;r=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;o[254]=o[254]=1,a.string2buf=function(t){var e,a,i,r,s,o=t.length,l=0;for(r=0;r>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},a.buf2binstring=function(t){return i(t,t.length)},a.binstring2buf=function(t){for(var e=new n.Buf8(t.length),a=0,i=e.length;a4)h[n++]=65533,a+=s-1;else{for(r&=2===s?31:3===s?15:7;s>1&&a1?h[n++]=65533:r<65536?h[n++]=r:(r-=65536,h[n++]=55296|r>>10&1023,h[n++]=56320|1023&r)}return i(h,n)},a.utf8border=function(t,e){var a;for(e=e||t.length,e>t.length&&(e=t.length),a=e-1;a>=0&&128===(192&t[a]);)a--;return a<0?e:0===a?e:a+o[t[a]]>e?a:e}},{"./common":3}],5:[function(t,e,a){"use strict";function i(t,e,a,i){for(var n=65535&t|0,r=t>>>16&65535|0,s=0;0!==a;){s=a>2e3?2e3:a,a-=s;do n=n+e[i++]|0,r=r+n|0;while(--s);n%=65521,r%=65521}return n|r<<16|0}e.exports=i},{}],6:[function(t,e,a){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(t,e,a){"use strict";function i(){for(var t,e=[],a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}function n(t,e,a,i){var n=r,s=i+a;t^=-1;for(var o=i;o>>8^n[255&(t^e[o])];return t^-1}var r=i();e.exports=n},{}],8:[function(t,e,a){"use strict";function i(t,e){return t.msg=D[e],e}function n(t){return(t<<1)-(t>4?9:0)}function r(t){for(var e=t.length;--e>=0;)t[e]=0}function s(t){var e=t.state,a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(R.arraySet(t.output,e.pending_buf,e.pending_out,a,t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))}function o(t,e){C._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,s(t.strm)}function l(t,e){t.pending_buf[t.pending++]=e}function h(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function d(t,e,a,i){var n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,R.arraySet(e,t.input,t.next_in,n,a),1===t.state.wrap?t.adler=N(t.adler,e,n,a):2===t.state.wrap&&(t.adler=O(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)}function f(t,e){var a,i,n=t.max_chain_length,r=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+dt,u=h[r+s-1],c=h[r+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(a=e,h[a+s]===c&&h[a+s-1]===u&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do;while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=dt-(_-r),r=_-dt,i>s){if(t.match_start=e,s=i,i>=o)break;u=h[r+s-1],c=h[r+s]}}while((e=f[e&d])>l&&0!==--n);return s<=t.lookahead?s:t.lookahead}function _(t){var e,a,i,n,r,s=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-ft)){R.arraySet(t.window,t.window,s,s,0),t.match_start-=s,t.strstart-=s,t.block_start-=s,a=t.hash_size,e=a;do i=t.head[--e],t.head[e]=i>=s?i-s:0;while(--a);a=s,e=a;do i=t.prev[--e],t.prev[e]=i>=s?i-s:0;while(--a);n+=s}if(0===t.strm.avail_in)break;if(a=d(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=a,t.lookahead+t.insert>=ht)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(_(t),0===t.lookahead&&e===I)return vt;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,o(t,!1),0===t.strm.avail_out))return vt;if(t.strstart-t.block_start>=t.w_size-ft&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.strstart>t.block_start&&(o(t,!1),0===t.strm.avail_out)?vt:vt}function c(t,e){for(var a,i;;){if(t.lookahead=ht&&(t.ins_h=(t.ins_h<=ht)if(i=C._tr_tally(t,t.strstart-t.match_start,t.match_length-ht),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=ht){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=ht&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=ht-1)),t.prev_length>=ht&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-ht,i=C._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-ht),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=n&&(t.ins_h=(t.ins_h<=ht&&t.strstart>0&&(n=t.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=t.strstart+dt;do;while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=ht?(a=C._tr_tally(t,1,t.match_length-ht),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function m(t,e){for(var a;;){if(0===t.lookahead&&(_(t),0===t.lookahead)){if(e===I)return vt;break}if(t.match_length=0,a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function w(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}function p(t){t.window_size=2*t.w_size,r(t.head),t.max_lazy_match=Z[t.level].max_lazy,t.good_match=Z[t.level].good_length,t.nice_match=Z[t.level].nice_length,t.max_chain_length=Z[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=ht-1,t.match_available=0,t.ins_h=0}function v(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=V,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new R.Buf16(2*ot),this.dyn_dtree=new R.Buf16(2*(2*rt+1)),this.bl_tree=new R.Buf16(2*(2*st+1)),r(this.dyn_ltree),r(this.dyn_dtree),r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new R.Buf16(lt+1),this.heap=new R.Buf16(2*nt+1),r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new R.Buf16(2*nt+1),r(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function k(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Q,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ut:wt,t.adler=2===e.wrap?0:1,e.last_flush=I,C._tr_init(e),H):i(t,K)}function y(t){var e=k(t);return e===H&&p(t.state),e}function x(t,e){return t&&t.state?2!==t.state.wrap?K:(t.state.gzhead=e,H):K}function z(t,e,a,n,r,s){if(!t)return K;var o=1;if(e===Y&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>$||a!==V||n<8||n>15||e<0||e>9||s<0||s>W)return i(t,K);8===n&&(n=9);var l=new v;return t.state=l,l.strm=t,l.wrap=o,l.gzhead=null,l.w_bits=n,l.w_size=1<L||e<0)return t?i(t,K):K;if(o=t.state,!t.output||!t.input&&0!==t.avail_in||o.status===pt&&e!==F)return i(t,0===t.avail_out?P:K);if(o.strm=t,a=o.last_flush,o.last_flush=e,o.status===ut)if(2===o.wrap)t.adler=0,l(o,31),l(o,139),l(o,8),o.gzhead?(l(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),l(o,255&o.gzhead.time),l(o,o.gzhead.time>>8&255),l(o,o.gzhead.time>>16&255),l(o,o.gzhead.time>>24&255),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(l(o,255&o.gzhead.extra.length),l(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(t.adler=O(t.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=ct):(l(o,0),l(o,0),l(o,0),l(o,0),l(o,0),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,zt),o.status=wt);else{var _=V+(o.w_bits-8<<4)<<8,u=-1;u=o.strategy>=G||o.level<2?0:o.level<6?1:6===o.level?2:3,_|=u<<6,0!==o.strstart&&(_|=_t),_+=31-_%31,o.status=wt,h(o,_),0!==o.strstart&&(h(o,t.adler>>>16),h(o,65535&t.adler)),t.adler=1}if(o.status===ct)if(o.gzhead.extra){for(d=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending!==o.pending_buf_size));)l(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=bt)}else o.status=bt;if(o.status===bt)if(o.gzhead.name){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindexd&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.gzindex=0,o.status=gt)}else o.status=gt;if(o.status===gt)if(o.gzhead.comment){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindexd&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.status=mt)}else o.status=mt;if(o.status===mt&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&s(t),o.pending+2<=o.pending_buf_size&&(l(o,255&t.adler),l(o,t.adler>>8&255),t.adler=0,o.status=wt)):o.status=wt),0!==o.pending){if(s(t),0===t.avail_out)return o.last_flush=-1,H}else if(0===t.avail_in&&n(e)<=n(a)&&e!==F)return i(t,P);if(o.status===pt&&0!==t.avail_in)return i(t,P);if(0!==t.avail_in||0!==o.lookahead||e!==I&&o.status!==pt){var c=o.strategy===G?m(o,e):o.strategy===X?g(o,e):Z[o.level].func(o,e);if(c!==yt&&c!==xt||(o.status=pt),c===vt||c===yt)return 0===t.avail_out&&(o.last_flush=-1),H;if(c===kt&&(e===U?C._tr_align(o):e!==L&&(C._tr_stored_block(o,0,0,!1),e===T&&(r(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),s(t),0===t.avail_out))return o.last_flush=-1,H}return e!==F?H:o.wrap<=0?j:(2===o.wrap?(l(o,255&t.adler),l(o,t.adler>>8&255),l(o,t.adler>>16&255),l(o,t.adler>>24&255),l(o,255&t.total_in),l(o,t.total_in>>8&255),l(o,t.total_in>>16&255),l(o,t.total_in>>24&255)):(h(o,t.adler>>>16),h(o,65535&t.adler)),s(t),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?H:j)}function E(t){var e;return t&&t.state?(e=t.state.status,e!==ut&&e!==ct&&e!==bt&&e!==gt&&e!==mt&&e!==wt&&e!==pt?i(t,K):(t.state=null,e===wt?i(t,M):H)):K}function A(t,e){var a,i,n,s,o,l,h,d,f=e.length;if(!t||!t.state)return K;if(a=t.state,s=a.wrap,2===s||1===s&&a.status!==ut||a.lookahead)return K;for(1===s&&(t.adler=N(t.adler,e,f,0)),a.wrap=0,f>=a.w_size&&(0===s&&(r(a.head),a.strstart=0,a.block_start=0,a.insert=0),d=new R.Buf8(a.w_size),R.arraySet(d,e,f-a.w_size,a.w_size,0),e=d,f=a.w_size),o=t.avail_in,l=t.next_in,h=t.input,t.avail_in=f,t.next_in=0,t.input=e,_(a);a.lookahead>=ht;){i=a.strstart,n=a.lookahead-(ht-1);do a.ins_h=(a.ins_h<>>24,b>>>=y,g-=y,y=k>>>16&255,0===y)A[o++]=65535&k;else{if(!(16&y)){if(0===(64&y)){k=m[(65535&k)+(b&(1<>>=y,g-=y),g<15&&(b+=E[r++]<>>24,b>>>=y,g-=y,y=k>>>16&255,!(16&y)){if(0===(64&y)){k=w[(65535&k)+(b&(1<d){t.msg="invalid distance too far back",a.mode=i;break t}if(b>>>=y,g-=y,y=o-l,z>y){if(y=z-y,y>_&&a.sane){t.msg="invalid distance too far back",a.mode=i;break t}if(B=0,S=c,0===u){if(B+=f-y,y2;)A[o++]=S[B++],A[o++]=S[B++],A[o++]=S[B++],x-=3;x&&(A[o++]=S[B++],x>1&&(A[o++]=S[B++]))}else{B=o-z;do A[o++]=A[B++],A[o++]=A[B++],A[o++]=A[B++],x-=3;while(x>2);x&&(A[o++]=A[B++],x>1&&(A[o++]=A[B++]))}break}}break}}while(r>3,r-=x,g-=x<<3,b&=(1<>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function n(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new w.Buf16(320),this.work=new w.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function r(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=T,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new w.Buf32(bt),e.distcode=e.distdyn=new w.Buf32(gt),e.sane=1,e.back=-1,Z):N}function s(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,r(t)):N}function o(t,e){var a,i;return t&&t.state?(i=t.state,e<0?(a=0,e=-e):(a=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?N:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,s(t))):N}function l(t,e){var a,i;return t?(i=new n,t.state=i,i.window=null,a=o(t,e),a!==Z&&(t.state=null),a):N}function h(t){return l(t,wt)}function d(t){if(pt){var e;for(g=new w.Buf32(512),m=new w.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(y(z,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;y(B,t.lens,0,32,m,0,t.work,{bits:5}),pt=!1}t.lencode=g,t.lenbits=9,t.distcode=m,t.distbits=5}function f(t,e,a,i){var n,r=t.state;return null===r.window&&(r.wsize=1<=r.wsize?(w.arraySet(r.window,e,a-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),w.arraySet(r.window,e,a-i,n,r.wnext),i-=n,i?(w.arraySet(r.window,e,a-i,i,0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave>>8&255,a.check=v(a.check,Et,2,0),_=0,u=0,a.mode=F;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&_)<<8)+(_>>8))%31){t.msg="incorrect header check",a.mode=_t;break}if((15&_)!==U){t.msg="unknown compression method",a.mode=_t;break}if(_>>>=4,u-=4,yt=(15&_)+8,0===a.wbits)a.wbits=yt;else if(yt>a.wbits){t.msg="invalid window size",a.mode=_t;break}a.dmax=1<>8&1),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=L;case L:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<>>8&255,Et[2]=_>>>16&255,Et[3]=_>>>24&255,a.check=v(a.check,Et,4,0)),_=0,u=0,a.mode=H;case H:for(;u<16;){if(0===l)break t;l--,_+=n[s++]<>8),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=j;case j:if(1024&a.flags){for(;u<16;){if(0===l)break t;l--,_+=n[s++]<>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0}else a.head&&(a.head.extra=null);a.mode=K;case K:if(1024&a.flags&&(g=a.length,g>l&&(g=l),g&&(a.head&&(yt=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Array(a.head.extra_len)),w.arraySet(a.head.extra,n,s,g,yt)),512&a.flags&&(a.check=v(a.check,n,g,s)),l-=g,s+=g,a.length-=g),a.length))break t;a.length=0,a.mode=M;case M:if(2048&a.flags){if(0===l)break t;g=0;do yt=n[s+g++],a.head&&yt&&a.length<65536&&(a.head.name+=String.fromCharCode(yt));while(yt&&g>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=X;break;case q:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<>>=7&u,u-=7&u,a.mode=ht;break}for(;u<3;){if(0===l)break t;l--,_+=n[s++]<>>=1,u-=1,3&_){case 0:a.mode=J;break;case 1:if(d(a),a.mode=at,e===A){_>>>=2,u-=2;break t}break;case 2:a.mode=$;break;case 3:t.msg="invalid block type",a.mode=_t}_>>>=2,u-=2;break;case J:for(_>>>=7&u,u-=7&u;u<32;){if(0===l)break t;l--,_+=n[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=_t;break}if(a.length=65535&_,_=0,u=0,a.mode=Q,e===A)break t;case Q:a.mode=V;case V:if(g=a.length){if(g>l&&(g=l),g>h&&(g=h),0===g)break t;w.arraySet(r,n,s,g,o),l-=g,s+=g,h-=g,o+=g,a.length-=g;break}a.mode=X;break;case $: +for(;u<14;){if(0===l)break t;l--,_+=n[s++]<>>=5,u-=5,a.ndist=(31&_)+1,_>>>=5,u-=5,a.ncode=(15&_)+4,_>>>=4,u-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=_t;break}a.have=0,a.mode=tt;case tt:for(;a.have>>=3,u-=3}for(;a.have<19;)a.lens[At[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,zt={bits:a.lenbits},xt=y(x,a.lens,0,19,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid code lengths set",a.mode=_t;break}a.have=0,a.mode=et;case et:for(;a.have>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=gt,u-=gt,a.lens[a.have++]=wt;else{if(16===wt){for(Bt=gt+2;u>>=gt,u-=gt,0===a.have){t.msg="invalid bit length repeat",a.mode=_t;break}yt=a.lens[a.have-1],g=3+(3&_),_>>>=2,u-=2}else if(17===wt){for(Bt=gt+3;u>>=gt,u-=gt,yt=0,g=3+(7&_),_>>>=3,u-=3}else{for(Bt=gt+7;u>>=gt,u-=gt,yt=0,g=11+(127&_),_>>>=7,u-=7}if(a.have+g>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=_t;break}for(;g--;)a.lens[a.have++]=yt}}if(a.mode===_t)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=_t;break}if(a.lenbits=9,zt={bits:a.lenbits},xt=y(z,a.lens,0,a.nlen,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid literal/lengths set",a.mode=_t;break}if(a.distbits=6,a.distcode=a.distdyn,zt={bits:a.distbits},xt=y(B,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,zt),a.distbits=zt.bits,xt){t.msg="invalid distances set",a.mode=_t;break}if(a.mode=at,e===A)break t;case at:a.mode=it;case it:if(l>=6&&h>=258){t.next_out=o,t.avail_out=h,t.next_in=s,t.avail_in=l,a.hold=_,a.bits=u,k(t,b),o=t.next_out,r=t.output,h=t.avail_out,s=t.next_in,n=t.input,l=t.avail_in,_=a.hold,u=a.bits,a.mode===X&&(a.back=-1);break}for(a.back=0;St=a.lencode[_&(1<>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,a.length=wt,0===mt){a.mode=lt;break}if(32&mt){a.back=-1,a.mode=X;break}if(64&mt){t.msg="invalid literal/length code",a.mode=_t;break}a.extra=15&mt,a.mode=nt;case nt:if(a.extra){for(Bt=a.extra;u>>=a.extra,u-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=rt;case rt:for(;St=a.distcode[_&(1<>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,64&mt){t.msg="invalid distance code",a.mode=_t;break}a.offset=wt,a.extra=15&mt,a.mode=st;case st:if(a.extra){for(Bt=a.extra;u>>=a.extra,u-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=_t;break}a.mode=ot;case ot:if(0===h)break t;if(g=b-h,a.offset>g){if(g=a.offset-g,g>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=_t;break}g>a.wnext?(g-=a.wnext,m=a.wsize-g):m=a.wnext-g,g>a.length&&(g=a.length),bt=a.window}else bt=r,m=o-a.offset,g=a.length;g>h&&(g=h),h-=g,a.length-=g;do r[o++]=bt[m++];while(--g);0===a.length&&(a.mode=it);break;case lt:if(0===h)break t;r[o++]=a.length,h--,a.mode=it;break;case ht:if(a.wrap){for(;u<32;){if(0===l)break t;l--,_|=n[s++]<=1&&0===j[N];N--);if(O>N&&(O=N),0===N)return b[g++]=20971520,b[g++]=20971520,w.bits=1,0;for(C=1;C0&&(t===o||1!==N))return-1;for(K[1]=0,Z=1;Zr||t===h&&T>s)return 1;for(;;){B=Z-I,m[R]z?(S=M[P+m[R]],E=L[H+m[R]]):(S=96,E=0),p=1<>I)+v]=B<<24|S<<16|E|0;while(0!==v);for(p=1<>=1;if(0!==p?(F&=p-1,F+=p):F=0,R++,0===--j[Z]){if(Z===N)break;Z=e[a+m[R]]}if(Z>O&&(F&y)!==k){for(0===I&&(I=O),x+=C,D=Z-I,U=1<r||t===h&&T>s)return 1;k=F&y,b[k]=O<<24|D<<16|x-g|0}}return 0!==F&&(b[x+F]=Z-I<<24|64<<16|0),w.bits=O,0}},{"../utils/common":3}],13:[function(t,e,a){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(t,e,a){"use strict";function i(t){for(var e=t.length;--e>=0;)t[e]=0}function n(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function r(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function s(t){return t<256?lt[t]:lt[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function l(t,e,a){t.bi_valid>W-a?(t.bi_buf|=e<>W-t.bi_valid,t.bi_valid+=a-W):(t.bi_buf|=e<>>=1,a<<=1;while(--e>0);return a>>>1}function f(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function _(t,e){var a,i,n,r,s,o,l=e.dyn_tree,h=e.max_code,d=e.stat_desc.static_tree,f=e.stat_desc.has_stree,_=e.stat_desc.extra_bits,u=e.stat_desc.extra_base,c=e.stat_desc.max_length,b=0;for(r=0;r<=X;r++)t.bl_count[r]=0;for(l[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;ac&&(r=c,b++),l[2*i+1]=r,i>h||(t.bl_count[r]++,s=0,i>=u&&(s=_[i-u]),o=l[2*i],t.opt_len+=o*(r+s),f&&(t.static_len+=o*(d[2*i+1]+s)));if(0!==b){do{for(r=c-1;0===t.bl_count[r];)r--;t.bl_count[r]--,t.bl_count[r+1]+=2,t.bl_count[c]--,b-=2}while(b>0);for(r=c;0!==r;r--)for(i=t.bl_count[r];0!==i;)n=t.heap[--a],n>h||(l[2*n+1]!==r&&(t.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),i--)}}function u(t,e,a){var i,n,r=new Array(X+1),s=0;for(i=1;i<=X;i++)r[i]=s=s+a[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=d(r[o]++,o))}}function c(){var t,e,a,i,r,s=new Array(X+1);for(a=0,i=0;i>=7;i8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,a,i){g(t),i&&(o(t,a),o(t,~a)),N.arraySet(t.pending_buf,t.window,e,a,t.pending),t.pending+=a}function w(t,e,a,i){var n=2*e,r=2*a;return t[n]>1;a>=1;a--)p(t,r,a);n=l;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],p(t,r,1),i=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=i,r[2*n]=r[2*a]+r[2*i],t.depth[n]=(t.depth[a]>=t.depth[i]?t.depth[a]:t.depth[i])+1,r[2*a+1]=r[2*i+1]=n,t.heap[1]=n++,p(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],_(t,e),u(r,h,t.bl_count)}function y(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=e[2*(i+1)+1],++o=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function B(t,e,a,i){var n;for(l(t,e-257,5),l(t,a-1,5),l(t,i-4,4),n=0;n>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return D;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return I;for(e=32;e0?(t.strm.data_type===U&&(t.strm.data_type=S(t)),k(t,t.l_desc),k(t,t.d_desc),s=z(t),n=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&e!==-1?A(t,e,a,i):t.strategy===O||r===n?(l(t,(F<<1)+(i?1:0),3),v(t,st,ot)):(l(t,(L<<1)+(i?1:0),3),B(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),v(t,t.dyn_ltree,t.dyn_dtree)),b(t),i&&g(t)}function C(t,e,a){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&a,t.last_lit++,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(ht[a]+M+1)]++,t.dyn_dtree[2*s(e)]++),t.last_lit===t.lit_bufsize-1}var N=t("../utils/common"),O=4,D=0,I=1,U=2,T=0,F=1,L=2,H=3,j=258,K=29,M=256,P=M+1+K,Y=30,q=19,G=2*P+1,X=15,W=16,J=7,Q=256,V=16,$=17,tt=18,et=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],at=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],it=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,st=new Array(2*(P+2));i(st);var ot=new Array(2*Y);i(ot);var lt=new Array(rt);i(lt);var ht=new Array(j-H+1);i(ht);var dt=new Array(K);i(dt);var ft=new Array(Y);i(ft);var _t,ut,ct,bt=!1;a._tr_init=E,a._tr_stored_block=A,a._tr_flush_block=R,a._tr_tally=C,a._tr_align=Z},{"../utils/common":3}],15:[function(t,e,a){"use strict";function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=i},{}],"/":[function(t,e,a){"use strict";var i=t("./lib/utils/common").assign,n=t("./lib/deflate"),r=t("./lib/inflate"),s=t("./lib/zlib/constants"),o={};i(o,n,r,s),e.exports=o},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")}); +/** + * @license + * Copyright 2015 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var PDFJS; + +(function(PDFJS) { + "use strict"; + +var JpegError = (function JpegErrorClosure() { + function JpegError(msg) { + this.message = 'JPEG error: ' + msg; + } + + JpegError.prototype = new Error(); + JpegError.prototype.name = 'JpegError'; + JpegError.constructor = JpegError; + + return JpegError; +})(); + + var JpegImage = (function JpegImageClosure() { + // prettier-ignore + var dctZigZag = new Uint8Array([ + 0, + 1, 8, + 16, 9, 2, + 3, 10, 17, 24, + 32, 25, 18, 11, 4, + 5, 12, 19, 26, 33, 40, + 48, 41, 34, 27, 20, 13, 6, + 7, 14, 21, 28, 35, 42, 49, 56, + 57, 50, 43, 36, 29, 22, 15, + 23, 30, 37, 44, 51, 58, + 59, 52, 45, 38, 31, + 39, 46, 53, 60, + 61, 54, 47, + 55, 62, + 63 + ]); + + var dctCos1 = 4017; // cos(pi/16) + var dctSin1 = 799; // sin(pi/16) + var dctCos3 = 3406; // cos(3*pi/16) + var dctSin3 = 2276; // sin(3*pi/16) + var dctCos6 = 1567; // cos(6*pi/16) + var dctSin6 = 3784; // sin(6*pi/16) + var dctSqrt2 = 5793; // sqrt(2) + var dctSqrt1d2 = 2896; // sqrt(2) / 2 + + // eslint-disable-next-line no-shadow + function JpegImage({ decodeTransform = null, colorTransform = -1 } = {}) { + this._decodeTransform = decodeTransform; + this._colorTransform = colorTransform; + } + + function buildHuffmanTable(codeLengths, values) { + var k = 0, + code = [], + i, + j, + length = 16; + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + code.push({ children: [], index: 0 }); + var p = code[0], + q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push((q = { children: [], index: 0 })); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + // p here points to last code + code.push((q = { children: [], index: 0 })); + p.children[p.index] = q.children; + p = q; + } + } + return code[0].children; + } + + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); + } + + function decodeScan( + data, + offset, + frame, + components, + resetInterval, + spectralStart, + spectralEnd, + successivePrev, + successive, + parseDNLMarker = false + ) { + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + + const startOffset = offset; + let bitsData = 0, + bitsCount = 0; + + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return (bitsData >> bitsCount) & 1; + } + bitsData = data[offset++]; + if (bitsData === 0xff) { + var nextByte = data[offset++]; + if (nextByte) { + if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) { + offset += 2; // Skip marker length. + + const scanLines = readUint16(data, offset); + offset += 2; + if (scanLines > 0 && scanLines !== frame.scanLines) { + throw new DNLMarkerError( + "Found DNL marker (0xFFDC) while parsing scan data", + scanLines + ); + } + } else if (nextByte === /* EOI = */ 0xd9) { + if (parseDNLMarker) { + // NOTE: only 8-bit JPEG images are supported in this decoder. + const maybeScanLines = blockRow * 8; + // Heuristic to attempt to handle corrupt JPEG images with too + // large `scanLines` parameter, by falling back to the currently + // parsed number of scanLines when it's at least one order of + // magnitude smaller than expected (fixes issue10880.pdf). + if (maybeScanLines > 0 && maybeScanLines < frame.scanLines / 10) { + throw new DNLMarkerError( + "Found EOI marker (0xFFD9) while parsing scan data, " + + "possibly caused by incorrect `scanLines` parameter", + maybeScanLines + ); + } + } + throw new EOIMarkerError( + "Found EOI marker (0xFFD9) while parsing scan data" + ); + } + throw new JpegError( + `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}` + ); + } + // unstuff 0 + } + bitsCount = 7; + return bitsData >>> 7; + } + + function decodeHuffman(tree) { + var node = tree; + while (true) { + node = node[readBit()]; + switch (typeof node) { + case "number": + return node; + case "object": + continue; + } + throw new JpegError("invalid huffman sequence"); + } + } + + function receive(length) { + var n = 0; + while (length > 0) { + n = (n << 1) | readBit(); + length--; + } + return n; + } + + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + var n = receive(length); + if (n >= 1 << (length - 1)) { + return n; + } + return n + (-1 << length) + 1; + } + + function decodeBaseline(component, blockOffset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[blockOffset] = component.pred += diff; + var k = 1; + while (k < 64) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, + r = rs >> 4; + if (s === 0) { + if (r < 15) { + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[blockOffset + z] = receiveAndExtend(s); + k++; + } + } + + function decodeDCFirst(component, blockOffset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t) << successive; + component.blockData[blockOffset] = component.pred += diff; + } + + function decodeDCSuccessive(component, blockOffset) { + component.blockData[blockOffset] |= readBit() << successive; + } + + var eobrun = 0; + function decodeACFirst(component, blockOffset) { + if (eobrun > 0) { + eobrun--; + return; + } + var k = spectralStart, + e = spectralEnd; + while (k <= e) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[blockOffset + z] = + receiveAndExtend(s) * (1 << successive); + k++; + } + } + + var successiveACState = 0, + successiveACNextValue; + function decodeACSuccessive(component, blockOffset) { + var k = spectralStart; + var e = spectralEnd; + var r = 0; + var s; + var rs; + while (k <= e) { + const offsetZ = blockOffset + dctZigZag[k]; + const sign = component.blockData[offsetZ] < 0 ? -1 : 1; + switch (successiveACState) { + case 0: // initial state + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + throw new JpegError("invalid ACn encoding"); + } + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: // skipping r zero items + case 2: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + r--; + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + break; + case 3: // set value for a zero item + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + component.blockData[offsetZ] = + successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: // eob + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) { + successiveACState = 0; + } + } + } + + let blockRow = 0; + function decodeMcu(component, decode, mcu, row, col) { + var mcuRow = (mcu / mcusPerLine) | 0; + var mcuCol = mcu % mcusPerLine; + blockRow = mcuRow * component.v + row; + var blockCol = mcuCol * component.h + col; + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); + } + + function decodeBlock(component, decode, mcu) { + blockRow = (mcu / component.blocksPerLine) | 0; + var blockCol = mcu % component.blocksPerLine; + const blockOffset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, blockOffset); + } + + var componentsLength = components.length; + var component, i, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } + } else { + decodeFn = decodeBaseline; + } + + var mcu = 0, + fileMarker; + var mcuExpected; + if (componentsLength === 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + + var h, v; + while (mcu <= mcuExpected) { + // reset interval stuff + var mcuToRead = resetInterval + ? Math.min(mcuExpected - mcu, resetInterval) + : mcuExpected; + + // The `mcuToRead === 0` case should only occur when all of the expected + // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but + // some corrupt JPEG images contain more data than intended and we thus + // want to skip over any extra RSTx markers below (fixes issue11794.pdf). + if (mcuToRead > 0) { + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + eobrun = 0; + + if (componentsLength === 1) { + component = components[0]; + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + } + + // find marker + bitsCount = 0; + fileMarker = findNextFileMarker(data, offset); + if (!fileMarker) { + break; // Reached the end of the image data without finding any marker. + } + if (fileMarker.invalid) { + // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip + // past those to attempt to find a valid marker (fixes issue4090.pdf). + const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive"; + warn( + `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}` + ); + offset = fileMarker.offset; + } + if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) { + // RSTx + offset += 2; + } else { + break; + } + } + + return offset - startOffset; + } + + // A port of poppler's IDCT method which in turn is taken from: + // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, + // 'Practical Fast 1-D DCT Algorithms with 11 Multiplications', + // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, + // 988-991. + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable, + blockData = component.blockData; + var v0, v1, v2, v3, v4, v5, v6, v7; + var p0, p1, p2, p3, p4, p5, p6, p7; + var t; + + if (!qt) { + throw new JpegError("missing required Quantization Table."); + } + + // inverse DCT on rows + for (var row = 0; row < 64; row += 8) { + // gather block data + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + + // dequant p0 + p0 *= qt[row]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = (dctSqrt2 * p0 + 512) >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + // dequant p1 ... p7 + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + + // stage 4 + v0 = (dctSqrt2 * p0 + 128) >> 8; + v1 = (dctSqrt2 * p4 + 128) >> 8; + v2 = p2; + v3 = p6; + v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8; + v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + + // stage 3 + v0 = (v0 + v1 + 1) >> 1; + v1 = v0 - v1; + t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + + // inverse DCT on columns + for (var col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = (dctSqrt2 * p0 + 8192) >> 14; + // Convert to 8-bit. + if (t < -2040) { + t = 0; + } else if (t >= 2024) { + t = 255; + } else { + t = (t + 2056) >> 4; + } + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + + // stage 4 + v0 = (dctSqrt2 * p0 + 2048) >> 12; + v1 = (dctSqrt2 * p4 + 2048) >> 12; + v2 = p2; + v3 = p6; + v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12; + v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12; + v5 = p3; + v6 = p5; + + // stage 3 + // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when + // converting to UInt8 range later. + v0 = ((v0 + v1 + 1) >> 1) + 4112; + v1 = v0 - v1; + t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + + // Convert to 8-bit integers. + if (p0 < 16) { + p0 = 0; + } else if (p0 >= 4080) { + p0 = 255; + } else { + p0 >>= 4; + } + if (p1 < 16) { + p1 = 0; + } else if (p1 >= 4080) { + p1 = 255; + } else { + p1 >>= 4; + } + if (p2 < 16) { + p2 = 0; + } else if (p2 >= 4080) { + p2 = 255; + } else { + p2 >>= 4; + } + if (p3 < 16) { + p3 = 0; + } else if (p3 >= 4080) { + p3 = 255; + } else { + p3 >>= 4; + } + if (p4 < 16) { + p4 = 0; + } else if (p4 >= 4080) { + p4 = 255; + } else { + p4 >>= 4; + } + if (p5 < 16) { + p5 = 0; + } else if (p5 >= 4080) { + p5 = 255; + } else { + p5 >>= 4; + } + if (p6 < 16) { + p6 = 0; + } else if (p6 >= 4080) { + p6 = 255; + } else { + p6 >>= 4; + } + if (p7 < 16) { + p7 = 0; + } else if (p7 >= 4080) { + p7 = 255; + } else { + p7 >>= 4; + } + + // store block data + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } + } + + function buildComponentData(frame, component) { + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var computationBuffer = new Int16Array(64); + + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + return component.blockData; + } + + function findNextFileMarker(data, currentPos, startPos = currentPos) { + const maxPos = data.length - 1; + var newPos = startPos < currentPos ? startPos : currentPos; + + if (currentPos >= maxPos) { + return null; // Don't attempt to read non-existent data and just return. + } + var currentMarker = readUint16(data, currentPos); + if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) { + return { + invalid: null, + marker: currentMarker, + offset: currentPos, + }; + } + var newMarker = readUint16(data, newPos); + while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) { + if (++newPos >= maxPos) { + return null; // Don't attempt to read non-existent data and just return. + } + newMarker = readUint16(data, newPos); + } + return { + invalid: currentMarker.toString(16), + marker: newMarker, + offset: newPos, + }; + } + + JpegImage.prototype = { + parse(data, { dnlScanLines = null } = {}) { + function readDataBlock() { + const length = readUint16(data, offset); + offset += 2; + let endOffset = offset + length - 2; + + var fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker && fileMarker.invalid) { + warn( + "readDataBlock - incorrect length, current marker is: " + + fileMarker.invalid + ); + endOffset = fileMarker.offset; + } + + var array = data.subarray(offset, endOffset); + offset += array.length; + return array; + } + + function prepareComponents(frame) { + var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + for (var i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var blocksPerLine = Math.ceil( + (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH + ); + var blocksPerColumn = Math.ceil( + (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV + ); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + + var blocksBufferSize = + 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; + } + + var offset = 0; + var jfif = null; + var adobe = null; + var frame, resetInterval; + let numSOSMarkers = 0; + var quantizationTables = []; + var huffmanTablesAC = [], + huffmanTablesDC = []; + + let fileMarker = readUint16(data, offset); + offset += 2; + if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) { + throw new JpegError("SOI not found"); + } + fileMarker = readUint16(data, offset); + offset += 2; + + markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) { + var i, j, l; + switch (fileMarker) { + case 0xffe0: // APP0 (Application Specific) + case 0xffe1: // APP1 + case 0xffe2: // APP2 + case 0xffe3: // APP3 + case 0xffe4: // APP4 + case 0xffe5: // APP5 + case 0xffe6: // APP6 + case 0xffe7: // APP7 + case 0xffe8: // APP8 + case 0xffe9: // APP9 + case 0xffea: // APP10 + case 0xffeb: // APP11 + case 0xffec: // APP12 + case 0xffed: // APP13 + case 0xffee: // APP14 + case 0xffef: // APP15 + case 0xfffe: // COM (Comment) + var appData = readDataBlock(); + + if (fileMarker === 0xffe0) { + // 'JFIF\x00' + if ( + appData[0] === 0x4a && + appData[1] === 0x46 && + appData[2] === 0x49 && + appData[3] === 0x46 && + appData[4] === 0 + ) { + jfif = { + version: { major: appData[5], minor: appData[6] }, + densityUnits: appData[7], + xDensity: (appData[8] << 8) | appData[9], + yDensity: (appData[10] << 8) | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray( + 14, + 14 + 3 * appData[12] * appData[13] + ), + }; + } + } + // TODO APP1 - Exif + if (fileMarker === 0xffee) { + // 'Adobe' + if ( + appData[0] === 0x41 && + appData[1] === 0x64 && + appData[2] === 0x6f && + appData[3] === 0x62 && + appData[4] === 0x65 + ) { + adobe = { + version: (appData[5] << 8) | appData[6], + flags0: (appData[7] << 8) | appData[8], + flags1: (appData[9] << 8) | appData[10], + transformCode: appData[11], + }; + } + } + break; + + case 0xffdb: // DQT (Define Quantization Tables) + const quantizationTablesLength = readUint16(data, offset); + offset += 2; + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + var z; + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Uint16Array(64); + if (quantizationTableSpec >> 4 === 0) { + // 8 bit values + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if (quantizationTableSpec >> 4 === 1) { + // 16 bit values + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(data, offset); + offset += 2; + } + } else { + throw new JpegError("DQT - invalid table spec"); + } + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + + case 0xffc0: // SOF0 (Start of Frame, Baseline DCT) + case 0xffc1: // SOF1 (Start of Frame, Extended DCT) + case 0xffc2: // SOF2 (Start of Frame, Progressive DCT) + if (frame) { + throw new JpegError("Only single frame JPEGs supported"); + } + offset += 2; // Skip marker length. + + frame = {}; + frame.extended = fileMarker === 0xffc1; + frame.progressive = fileMarker === 0xffc2; + frame.precision = data[offset++]; + const sofScanLines = readUint16(data, offset); + offset += 2; + frame.scanLines = dnlScanLines || sofScanLines; + frame.samplesPerLine = readUint16(data, offset); + offset += 2; + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], + componentId; + var maxH = 0, + maxV = 0; + for (i = 0; i < componentsCount; i++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + if (maxH < h) { + maxH = h; + } + if (maxV < v) { + maxV = v; + } + var qId = data[offset + 2]; + l = frame.components.push({ + h, + v, + quantizationId: qId, + quantizationTable: null, // See comment below. + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + + case 0xffc4: // DHT (Define Huffman Tables) + const huffmanLength = readUint16(data, offset); + offset += 2; + for (i = 2; i < huffmanLength; ) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += codeLengths[j] = data[offset]; + } + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + i += 17 + codeLengthSum; + + (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[ + huffmanTableSpec & 15 + ] = buildHuffmanTable(codeLengths, huffmanValues); + } + break; + + case 0xffdd: // DRI (Define Restart Interval) + offset += 2; // Skip marker length. + + resetInterval = readUint16(data, offset); + offset += 2; + break; + + case 0xffda: // SOS (Start of Scan) + // A DNL marker (0xFFDC), if it exists, is only allowed at the end + // of the first scan segment and may only occur once in an image. + // Furthermore, to prevent an infinite loop, do *not* attempt to + // parse DNL markers during re-parsing of the JPEG scan data. + const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines; + + offset += 2; // Skip marker length. + + var selectorsCount = data[offset++]; + var components = [], + component; + for (i = 0; i < selectorsCount; i++) { + const index = data[offset++]; + var componentIndex = frame.componentIds[index]; + component = frame.components[componentIndex]; + component.index = index; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + try { + var processed = decodeScan( + data, + offset, + frame, + components, + resetInterval, + spectralStart, + spectralEnd, + successiveApproximation >> 4, + successiveApproximation & 15, + parseDNLMarker + ); + offset += processed; + } catch (ex) { + if (ex instanceof DNLMarkerError) { + warn(`${ex.message} -- attempting to re-parse the JPEG image.`); + return this.parse(data, { dnlScanLines: ex.scanLines }); + } else if (ex instanceof EOIMarkerError) { + warn(`${ex.message} -- ignoring the rest of the image data.`); + break markerLoop; + } + throw ex; + } + break; + + case 0xffdc: // DNL (Define Number of Lines) + // Ignore the marker, since it's being handled in `decodeScan`. + offset += 4; + break; + + case 0xffff: // Fill bytes + if (data[offset] !== 0xff) { + // Avoid skipping a valid marker. + offset--; + } + break; + + default: + // Could be incorrect encoding -- the last 0xFF byte of the previous + // block could have been eaten by the encoder, hence we fallback to + // `startPos = offset - 3` when looking for the next valid marker. + const nextFileMarker = findNextFileMarker( + data, + /* currentPos = */ offset - 2, + /* startPos = */ offset - 3 + ); + if (nextFileMarker && nextFileMarker.invalid) { + warn( + "JpegImage.parse - unexpected data, current marker is: " + + nextFileMarker.invalid + ); + offset = nextFileMarker.offset; + break; + } + if (offset >= data.length - 1) { + warn( + "JpegImage.parse - reached the end of the image data " + + "without finding an EOI marker (0xFFD9)." + ); + break markerLoop; + } + throw new JpegError( + "JpegImage.parse - unknown marker: " + fileMarker.toString(16) + ); + } + fileMarker = readUint16(data, offset); + offset += 2; + } + + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + + // Prevent errors when DQT markers are placed after SOF{n} markers, + // by assigning the `quantizationTable` entry after the entire image + // has been parsed (fixes issue7406.pdf). + var quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + + this.components.push({ + index: component.index, + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn, + }); + } + this.numComponents = this.components.length; + return undefined; + }, + + _getLinearizedBlockData(width, height, isSourcePDF = false) { + var scaleX = this.width / width, + scaleY = this.height / height; + + var component, componentScaleX, componentScaleY, blocksPerScanline; + var x, y, i, j, k; + var index; + var offset = 0; + var output; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8ClampedArray(dataLength); + var xScaleBlockOffset = new Uint32Array(width); + var mask3LSB = 0xfffffff8; // used to clear the 3 LSBs + let lastComponentScaleX; + + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = (component.blocksPerLine + 1) << 3; + // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the + // component data, that's only necessary when `componentScaleX` changes. + if (componentScaleX !== lastComponentScaleX) { + for (x = 0; x < width; x++) { + j = 0 | (x * componentScaleX); + xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7); + } + lastComponentScaleX = componentScaleX; + } + // linearize the blocks of the component + for (y = 0; y < height; y++) { + j = 0 | (y * componentScaleY); + index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3); + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + + // decodeTransform contains pairs of multiplier (-256..256) and additive + let transform = this._decodeTransform; + + // In PDF files, JPEG images with CMYK colour spaces are usually inverted + // (this can be observed by extracting the raw image data). + // Since the conversion algorithms (see below) were written primarily for + // the PDF use-cases, attempting to use `JpegImage` to parse standalone + // JPEG (CMYK) images may thus result in inverted images (see issue 9513). + // + // Unfortunately it's not (always) possible to tell, from the image data + // alone, if it needs to be inverted. Thus in an attempt to provide better + // out-of-box behaviour when `JpegImage` is used standalone, default to + // inverting JPEG (CMYK) images if and only if the image data does *not* + // come from a PDF file and no `decodeTransform` was passed by the user. + if (!isSourcePDF && numComponents === 4 && !transform) { + // prettier-ignore + transform = new Int32Array([ + -256, 255, -256, 255, -256, 255, -256, 255]); + } + + if (transform) { + for (i = 0; i < dataLength; ) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1]; + } + } + } + return data; + }, + + get _isColorConversionNeeded() { + if (this.adobe) { + // The adobe transform marker overrides any previous setting. + return !!this.adobe.transformCode; + } + if (this.numComponents === 3) { + if (this._colorTransform === 0) { + // If the Adobe transform marker is not present and the image + // dictionary has a 'ColorTransform' entry, explicitly set to `0`, + // then the colours should *not* be transformed. + return false; + } else if ( + this.components[0].index === /* "R" = */ 0x52 && + this.components[1].index === /* "G" = */ 0x47 && + this.components[2].index === /* "B" = */ 0x42 + ) { + // If the three components are indexed as RGB in ASCII + // then the colours should *not* be transformed. + return false; + } + return true; + } + // `this.numComponents !== 3` + if (this._colorTransform === 1) { + // If the Adobe transform marker is not present and the image + // dictionary has a 'ColorTransform' entry, explicitly set to `1`, + // then the colours should be transformed. + return true; + } + return false; + }, + + _convertYccToRgb: function convertYccToRgb(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 3) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = Y - 179.456 + 1.402 * Cr; + data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + data[i + 2] = Y - 226.816 + 1.772 * Cb; + } + return data; + }, + + _convertYcckToRgb: function convertYcckToRgb(data) { + var Y, Cb, Cr, k; + var offset = 0; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + k = data[i + 3]; + + data[offset++] = + -122.67195406894 + + Cb * + (-6.60635669420364e-5 * Cb + + 0.000437130475926232 * Cr - + 5.4080610064599e-5 * Y + + 0.00048449797120281 * k - + 0.154362151871126) + + Cr * + (-0.000957964378445773 * Cr + + 0.000817076911346625 * Y - + 0.00477271405408747 * k + + 1.53380253221734) + + Y * + (0.000961250184130688 * Y - + 0.00266257332283933 * k + + 0.48357088451265) + + k * (-0.000336197177618394 * k + 0.484791561490776); + + data[offset++] = + 107.268039397724 + + Cb * + (2.19927104525741e-5 * Cb - + 0.000640992018297945 * Cr + + 0.000659397001245577 * Y + + 0.000426105652938837 * k - + 0.176491792462875) + + Cr * + (-0.000778269941513683 * Cr + + 0.00130872261408275 * Y + + 0.000770482631801132 * k - + 0.151051492775562) + + Y * + (0.00126935368114843 * Y - + 0.00265090189010898 * k + + 0.25802910206845) + + k * (-0.000318913117588328 * k - 0.213742400323665); + + data[offset++] = + -20.810012546947 + + Cb * + (-0.000570115196973677 * Cb - + 2.63409051004589e-5 * Cr + + 0.0020741088115012 * Y - + 0.00288260236853442 * k + + 0.814272968359295) + + Cr * + (-1.53496057440975e-5 * Cr - + 0.000132689043961446 * Y + + 0.000560833691242812 * k - + 0.195152027534049) + + Y * + (0.00174418132927582 * Y - + 0.00255243321439347 * k + + 0.116935020465145) + + k * (-0.000343531996510555 * k + 0.24165260232407); + } + // Ensure that only the converted RGB data is returned. + return data.subarray(0, offset); + }, + + _convertYcckToCmyk: function convertYcckToCmyk(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = 434.456 - Y - 1.402 * Cr; + data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr; + data[i + 2] = 481.816 - Y - 1.772 * Cb; + // K in data[i + 3] is unchanged + } + return data; + }, + + _convertCmykToRgb: function convertCmykToRgb(data) { + var c, m, y, k; + var offset = 0; + for (var i = 0, length = data.length; i < length; i += 4) { + c = data[i]; + m = data[i + 1]; + y = data[i + 2]; + k = data[i + 3]; + + data[offset++] = + 255 + + c * + (-0.00006747147073602441 * c + + 0.0008379262121013727 * m + + 0.0002894718188643294 * y + + 0.003264231057537806 * k - + 1.1185611867203937) + + m * + (0.000026374107616089405 * m - + 0.00008626949158638572 * y - + 0.0002748769067499491 * k - + 0.02155688794978967) + + y * + (-0.00003878099212869363 * y - + 0.0003267808279485286 * k + + 0.0686742238595345) - + k * (0.0003361971776183937 * k + 0.7430659151342254); + + data[offset++] = + 255 + + c * + (0.00013596372813588848 * c + + 0.000924537132573585 * m + + 0.00010567359618683593 * y + + 0.0004791864687436512 * k - + 0.3109689587515875) + + m * + (-0.00023545346108370344 * m + + 0.0002702845253534714 * y + + 0.0020200308977307156 * k - + 0.7488052167015494) + + y * + (0.00006834815998235662 * y + + 0.00015168452363460973 * k - + 0.09751927774728933) - + k * (0.00031891311758832814 * k + 0.7364883807733168); + + data[offset++] = + 255 + + c * + (0.000013598650411385307 * c + + 0.00012423956175490851 * m + + 0.0004751985097583589 * y - + 0.0000036729317476630422 * k - + 0.05562186980264034) + + m * + (0.00016141380598724676 * m + + 0.0009692239130725186 * y + + 0.0007782692450036253 * k - + 0.44015232367526463) + + y * + (5.068882914068769e-7 * y + + 0.0017778369011375071 * k - + 0.7591454649749609) - + k * (0.0003435319965105553 * k + 0.7063770186160144); + } + // Ensure that only the converted RGB data is returned. + return data.subarray(0, offset); + }, + + getData({ width, height, forceRGB = false, isSourcePDF = false }) { + if (this.numComponents > 4) { + throw new JpegError("Unsupported color mode"); + } + // Type of data: Uint8ClampedArray(width * height * numComponents) + var data = this._getLinearizedBlockData(width, height, isSourcePDF); + + if (this.numComponents === 1 && forceRGB) { + var dataLength = data.length; + var rgbData = new Uint8ClampedArray(dataLength * 3); + var offset = 0; + for (var i = 0; i < dataLength; i++) { + var grayColor = data[i]; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + } + return rgbData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded) { + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded) { + if (forceRGB) { + return this._convertYcckToRgb(data); + } + return this._convertYcckToCmyk(data); + } else if (forceRGB) { + return this._convertCmykToRgb(data); + } + } + return data; + }, + }; + + return JpegImage; +})(); + + + "use strict"; + var ArithmeticDecoder = function ArithmeticDecoderClosure() { + var QeTable = [{ + qe: 0x5601, + nmps: 1, + nlps: 1, + switchFlag: 1 + }, { + qe: 0x3401, + nmps: 2, + nlps: 6, + switchFlag: 0 + }, { + qe: 0x1801, + nmps: 3, + nlps: 9, + switchFlag: 0 + }, { + qe: 0x0AC1, + nmps: 4, + nlps: 12, + switchFlag: 0 + }, { + qe: 0x0521, + nmps: 5, + nlps: 29, + switchFlag: 0 + }, { + qe: 0x0221, + nmps: 38, + nlps: 33, + switchFlag: 0 + }, { + qe: 0x5601, + nmps: 7, + nlps: 6, + switchFlag: 1 + }, { + qe: 0x5401, + nmps: 8, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x4801, + nmps: 9, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x3801, + nmps: 10, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x3001, + nmps: 11, + nlps: 17, + switchFlag: 0 + }, { + qe: 0x2401, + nmps: 12, + nlps: 18, + switchFlag: 0 + }, { + qe: 0x1C01, + nmps: 13, + nlps: 20, + switchFlag: 0 + }, { + qe: 0x1601, + nmps: 29, + nlps: 21, + switchFlag: 0 + }, { + qe: 0x5601, + nmps: 15, + nlps: 14, + switchFlag: 1 + }, { + qe: 0x5401, + nmps: 16, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x5101, + nmps: 17, + nlps: 15, + switchFlag: 0 + }, { + qe: 0x4801, + nmps: 18, + nlps: 16, + switchFlag: 0 + }, { + qe: 0x3801, + nmps: 19, + nlps: 17, + switchFlag: 0 + }, { + qe: 0x3401, + nmps: 20, + nlps: 18, + switchFlag: 0 + }, { + qe: 0x3001, + nmps: 21, + nlps: 19, + switchFlag: 0 + }, { + qe: 0x2801, + nmps: 22, + nlps: 19, + switchFlag: 0 + }, { + qe: 0x2401, + nmps: 23, + nlps: 20, + switchFlag: 0 + }, { + qe: 0x2201, + nmps: 24, + nlps: 21, + switchFlag: 0 + }, { + qe: 0x1C01, + nmps: 25, + nlps: 22, + switchFlag: 0 + }, { + qe: 0x1801, + nmps: 26, + nlps: 23, + switchFlag: 0 + }, { + qe: 0x1601, + nmps: 27, + nlps: 24, + switchFlag: 0 + }, { + qe: 0x1401, + nmps: 28, + nlps: 25, + switchFlag: 0 + }, { + qe: 0x1201, + nmps: 29, + nlps: 26, + switchFlag: 0 + }, { + qe: 0x1101, + nmps: 30, + nlps: 27, + switchFlag: 0 + }, { + qe: 0x0AC1, + nmps: 31, + nlps: 28, + switchFlag: 0 + }, { + qe: 0x09C1, + nmps: 32, + nlps: 29, + switchFlag: 0 + }, { + qe: 0x08A1, + nmps: 33, + nlps: 30, + switchFlag: 0 + }, { + qe: 0x0521, + nmps: 34, + nlps: 31, + switchFlag: 0 + }, { + qe: 0x0441, + nmps: 35, + nlps: 32, + switchFlag: 0 + }, { + qe: 0x02A1, + nmps: 36, + nlps: 33, + switchFlag: 0 + }, { + qe: 0x0221, + nmps: 37, + nlps: 34, + switchFlag: 0 + }, { + qe: 0x0141, + nmps: 38, + nlps: 35, + switchFlag: 0 + }, { + qe: 0x0111, + nmps: 39, + nlps: 36, + switchFlag: 0 + }, { + qe: 0x0085, + nmps: 40, + nlps: 37, + switchFlag: 0 + }, { + qe: 0x0049, + nmps: 41, + nlps: 38, + switchFlag: 0 + }, { + qe: 0x0025, + nmps: 42, + nlps: 39, + switchFlag: 0 + }, { + qe: 0x0015, + nmps: 43, + nlps: 40, + switchFlag: 0 + }, { + qe: 0x0009, + nmps: 44, + nlps: 41, + switchFlag: 0 + }, { + qe: 0x0005, + nmps: 45, + nlps: 42, + switchFlag: 0 + }, { + qe: 0x0001, + nmps: 45, + nlps: 43, + switchFlag: 0 + }, { + qe: 0x5601, + nmps: 46, + nlps: 46, + switchFlag: 0 + }]; + function ArithmeticDecoder(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F; + this.clow = this.clow << 7 & 0xFFFF; + this.ct -= 7; + this.a = 0x8000; + } + ArithmeticDecoder.prototype = { + byteIn: function ArithmeticDecoder_byteIn() { + var data = this.data; + var bp = this.bp; + if (data[bp] === 0xFF) { + var b1 = data[bp + 1]; + if (b1 > 0x8F) { + this.clow += 0xFF00; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 0xFFFF) { + this.chigh += this.clow >> 16; + this.clow &= 0xFFFF; + } + }, + readBit: function ArithmeticDecoder_readBit(contexts, pos) { + var cx_index = contexts[pos] >> 1, + cx_mps = contexts[pos] & 1; + var qeTableIcx = QeTable[cx_index]; + var qeIcx = qeTableIcx.qe; + var d; + var a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 0xFFFF; + this.ct--; + } while ((a & 0x8000) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } + }; + return ArithmeticDecoder; +}(); + + + + "use strict"; + var JpxImage = function JpxImageClosure() { + var SubbandsGainLog2 = { + 'LL': 0, + 'LH': 1, + 'HL': 1, + 'HH': 2 + }; + function JpxImage() { + this.failOnCorruptedImage = false; + } + JpxImage.prototype = { + parse: function JpxImage_parse(data) { + var head = readUint16(data, 0); + if (head === 0xFF4F) { + this.parseCodestream(data, 0, data.length); + return; + } + var position = 0, + length = data.length; + while (position < length) { + var headerSize = 8; + var lbox = readUint32(data, position); + var tbox = readUint32(data, position + 4); + position += headerSize; + if (lbox === 1) { + lbox = readUint32(data, position) * 4294967296 + readUint32(data, position + 4); + position += 8; + headerSize += 8; + } + if (lbox === 0) { + lbox = length - position + headerSize; + } + if (lbox < headerSize) { + error('JPX Error: Invalid box field size'); + } + var dataLength = lbox - headerSize; + var jumpDataLength = true; + switch (tbox) { + case 0x6A703268: + jumpDataLength = false; + break; + case 0x636F6C72: + var method = data[position]; + if (method === 1) { + var colorspace = readUint32(data, position + 3); + switch (colorspace) { + case 16: + case 17: + case 18: + break; + default: + warn('Unknown colorspace ' + colorspace); + break; + } + } else if (method === 2) { + info('ICC profile not supported'); + } + break; + case 0x6A703263: + this.parseCodestream(data, position, position + dataLength); + break; + case 0x6A502020: + if (readUint32(data, position) !== 0x0d0a870a) { + warn('Invalid JP2 signature'); + } + break; + case 0x6A501A1A: + case 0x66747970: + case 0x72726571: + case 0x72657320: + case 0x69686472: + break; + default: + var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF); + warn('Unsupported header type ' + tbox + ' (' + headerType + ')'); + break; + } + if (jumpDataLength) { + position += dataLength; + } + } + }, + parseImageProperties: function JpxImage_parseImageProperties(stream) { + var newByte = stream.getByte(); + while (newByte >= 0) { + var oldByte = newByte; + newByte = stream.getByte(); + var code = oldByte << 8 | newByte; + if (code === 0xFF51) { + stream.skip(4); + var Xsiz = stream.getInt32() >>> 0; + var Ysiz = stream.getInt32() >>> 0; + var XOsiz = stream.getInt32() >>> 0; + var YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + var Csiz = stream.getUint16(); + this.width = Xsiz - XOsiz; + this.height = Ysiz - YOsiz; + this.componentsCount = Csiz; + this.bitsPerComponent = 8; + return; + } + } + error('JPX Error: No size marker found in JPX stream'); + }, + parseCodestream: function JpxImage_parseCodestream(data, start, end) { + var context = {}; + var doNotRecover = false; + try { + var position = start; + while (position + 1 < end) { + var code = readUint16(data, position); + position += 2; + var length = 0, + j, + sqcd, + spqcds, + spqcdSize, + scalarExpounded, + tile; + switch (code) { + case 0xFF4F: + context.mainHeader = true; + break; + case 0xFFD9: + break; + case 0xFF51: + length = readUint16(data, position); + var siz = {}; + siz.Xsiz = readUint32(data, position + 4); + siz.Ysiz = readUint32(data, position + 8); + siz.XOsiz = readUint32(data, position + 12); + siz.YOsiz = readUint32(data, position + 16); + siz.XTsiz = readUint32(data, position + 20); + siz.YTsiz = readUint32(data, position + 24); + siz.XTOsiz = readUint32(data, position + 28); + siz.YTOsiz = readUint32(data, position + 32); + var componentsCount = readUint16(data, position + 36); + siz.Csiz = componentsCount; + var components = []; + j = position + 38; + for (var i = 0; i < componentsCount; i++) { + var component = { + precision: (data[j] & 0x7F) + 1, + isSigned: !!(data[j] & 0x80), + XRsiz: data[j + 1], + YRsiz: data[j + 1] + }; + calculateComponentDimensions(component, siz); + components.push(component); + } + context.SIZ = siz; + context.components = components; + calculateTileGrids(context, components); + context.QCC = []; + context.COC = []; + break; + case 0xFF5C: + length = readUint16(data, position); + var qcd = {}; + j = position + 2; + sqcd = data[j++]; + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + qcd.noQuantization = spqcdSize === 8; + qcd.scalarExpounded = scalarExpounded; + qcd.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + var spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcd.SPqcds = spqcds; + if (context.mainHeader) { + context.QCD = qcd; + } else { + context.currentTile.QCD = qcd; + context.currentTile.QCC = []; + } + break; + case 0xFF5D: + length = readUint16(data, position); + var qcc = {}; + j = position + 2; + var cqcc; + if (context.SIZ.Csiz < 257) { + cqcc = data[j++]; + } else { + cqcc = readUint16(data, j); + j += 2; + } + sqcd = data[j++]; + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + qcc.noQuantization = spqcdSize === 8; + qcc.scalarExpounded = scalarExpounded; + qcc.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcc.SPqcds = spqcds; + if (context.mainHeader) { + context.QCC[cqcc] = qcc; + } else { + context.currentTile.QCC[cqcc] = qcc; + } + break; + case 0xFF52: + length = readUint16(data, position); + var cod = {}; + j = position + 2; + var scod = data[j++]; + cod.entropyCoderWithCustomPrecincts = !!(scod & 1); + cod.sopMarkerUsed = !!(scod & 2); + cod.ephMarkerUsed = !!(scod & 4); + cod.progressionOrder = data[j++]; + cod.layersCount = readUint16(data, j); + j += 2; + cod.multipleComponentTransform = data[j++]; + cod.decompositionLevelsCount = data[j++]; + cod.xcb = (data[j++] & 0xF) + 2; + cod.ycb = (data[j++] & 0xF) + 2; + var blockStyle = data[j++]; + cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); + cod.resetContextProbabilities = !!(blockStyle & 2); + cod.terminationOnEachCodingPass = !!(blockStyle & 4); + cod.verticalyStripe = !!(blockStyle & 8); + cod.predictableTermination = !!(blockStyle & 16); + cod.segmentationSymbolUsed = !!(blockStyle & 32); + cod.reversibleTransformation = data[j++]; + if (cod.entropyCoderWithCustomPrecincts) { + var precinctsSizes = []; + while (j < length + position) { + var precinctsSize = data[j++]; + precinctsSizes.push({ + PPx: precinctsSize & 0xF, + PPy: precinctsSize >> 4 + }); + } + cod.precinctsSizes = precinctsSizes; + } + var unsupported = []; + if (cod.selectiveArithmeticCodingBypass) { + unsupported.push('selectiveArithmeticCodingBypass'); + } + if (cod.resetContextProbabilities) { + unsupported.push('resetContextProbabilities'); + } + if (cod.terminationOnEachCodingPass) { + unsupported.push('terminationOnEachCodingPass'); + } + if (cod.verticalyStripe) { + unsupported.push('verticalyStripe'); + } + if (cod.predictableTermination) { + unsupported.push('predictableTermination'); + } + if (unsupported.length > 0) { + doNotRecover = true; + throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')'); + } + if (context.mainHeader) { + context.COD = cod; + } else { + context.currentTile.COD = cod; + context.currentTile.COC = []; + } + break; + case 0xFF90: + length = readUint16(data, position); + tile = {}; + tile.index = readUint16(data, position + 2); + tile.length = readUint32(data, position + 4); + tile.dataEnd = tile.length + position - 2; + tile.partIndex = data[position + 8]; + tile.partsCount = data[position + 9]; + context.mainHeader = false; + if (tile.partIndex === 0) { + tile.COD = context.COD; + tile.COC = context.COC.slice(0); + tile.QCD = context.QCD; + tile.QCC = context.QCC.slice(0); + } + context.currentTile = tile; + break; + case 0xFF93: + tile = context.currentTile; + if (tile.partIndex === 0) { + initializeTile(context, tile.index); + buildPackets(context); + } + length = tile.dataEnd - position; + parseTilePackets(context, data, position, length); + break; + case 0xFF55: + case 0xFF57: + case 0xFF58: + case 0xFF64: + length = readUint16(data, position); + break; + case 0xFF53: + throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented'); + default: + throw new Error('Unknown codestream code: ' + code.toString(16)); + } + position += length; + } + } catch (e) { + if (doNotRecover || this.failOnCorruptedImage) { + error('JPX Error: ' + e.message); + } else { + warn('JPX: Trying to recover from: ' + e.message); + } + } + this.tiles = transformComponents(context); + this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; + this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; + this.componentsCount = context.SIZ.Csiz; + } + }; + function calculateComponentDimensions(component, siz) { + component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); + component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); + component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); + component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); + component.width = component.x1 - component.x0; + component.height = component.y1 - component.y0; + } + function calculateTileGrids(context, components) { + var siz = context.SIZ; + var tile, + tiles = []; + var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); + var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); + for (var q = 0; q < numYtiles; q++) { + for (var p = 0; p < numXtiles; p++) { + tile = {}; + tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); + tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); + tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); + tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); + tile.width = tile.tx1 - tile.tx0; + tile.height = tile.ty1 - tile.ty0; + tile.components = []; + tiles.push(tile); + } + } + context.tiles = tiles; + var componentsCount = siz.Csiz; + for (var i = 0, ii = componentsCount; i < ii; i++) { + var component = components[i]; + for (var j = 0, jj = tiles.length; j < jj; j++) { + var tileComponent = {}; + tile = tiles[j]; + tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); + tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); + tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); + tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); + tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; + tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; + tile.components[i] = tileComponent; + } + } + } + function getBlocksDimensions(context, component, r) { + var codOrCoc = component.codingStyleParameters; + var result = {}; + if (!codOrCoc.entropyCoderWithCustomPrecincts) { + result.PPx = 15; + result.PPy = 15; + } else { + result.PPx = codOrCoc.precinctsSizes[r].PPx; + result.PPy = codOrCoc.precinctsSizes[r].PPy; + } + result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); + result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); + return result; + } + function buildPrecincts(context, resolution, dimensions) { + var precinctWidth = 1 << dimensions.PPx; + var precinctHeight = 1 << dimensions.PPy; + var isZeroRes = resolution.resLevel === 0; + var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); + var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); + var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; + var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; + var numprecincts = numprecinctswide * numprecinctshigh; + resolution.precinctParameters = { + precinctWidth: precinctWidth, + precinctHeight: precinctHeight, + numprecinctswide: numprecinctswide, + numprecinctshigh: numprecinctshigh, + numprecincts: numprecincts, + precinctWidthInSubband: precinctWidthInSubband, + precinctHeightInSubband: precinctHeightInSubband + }; + } + function buildCodeblocks(context, subband, dimensions) { + var xcb_ = dimensions.xcb_; + var ycb_ = dimensions.ycb_; + var codeblockWidth = 1 << xcb_; + var codeblockHeight = 1 << ycb_; + var cbx0 = subband.tbx0 >> xcb_; + var cby0 = subband.tby0 >> ycb_; + var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; + var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; + var precinctParameters = subband.resolution.precinctParameters; + var codeblocks = []; + var precincts = []; + var i, j, codeblock, precinctNumber; + for (j = cby0; j < cby1; j++) { + for (i = cbx0; i < cbx1; i++) { + codeblock = { + cbx: i, + cby: j, + tbx0: codeblockWidth * i, + tby0: codeblockHeight * j, + tbx1: codeblockWidth * (i + 1), + tby1: codeblockHeight * (j + 1) + }; + codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); + codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); + codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); + codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); + var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); + var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); + precinctNumber = pi + pj * precinctParameters.numprecinctswide; + codeblock.precinctNumber = precinctNumber; + codeblock.subbandType = subband.type; + codeblock.Lblock = 3; + if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { + continue; + } + codeblocks.push(codeblock); + var precinct = precincts[precinctNumber]; + if (precinct !== undefined) { + if (i < precinct.cbxMin) { + precinct.cbxMin = i; + } else if (i > precinct.cbxMax) { + precinct.cbxMax = i; + } + if (j < precinct.cbyMin) { + precinct.cbxMin = j; + } else if (j > precinct.cbyMax) { + precinct.cbyMax = j; + } + } else { + precincts[precinctNumber] = precinct = { + cbxMin: i, + cbyMin: j, + cbxMax: i, + cbyMax: j + }; + } + codeblock.precinct = precinct; + } + } + subband.codeblockParameters = { + codeblockWidth: xcb_, + codeblockHeight: ycb_, + numcodeblockwide: cbx1 - cbx0 + 1, + numcodeblockhigh: cby1 - cby0 + 1 + }; + subband.codeblocks = codeblocks; + subband.precincts = precincts; + } + function createPacket(resolution, precinctNumber, layerNumber) { + var precinctCodeblocks = []; + var subbands = resolution.subbands; + for (var i = 0, ii = subbands.length; i < ii; i++) { + var subband = subbands[i]; + var codeblocks = subband.codeblocks; + for (var j = 0, jj = codeblocks.length; j < jj; j++) { + var codeblock = codeblocks[j]; + if (codeblock.precinctNumber !== precinctNumber) { + continue; + } + precinctCodeblocks.push(codeblock); + } + } + return { + layerNumber: layerNumber, + codeblocks: precinctCodeblocks + }; + } + function LayerResolutionComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + var l = 0, + r = 0, + i = 0, + k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < layersCount; l++) { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i = 0; + } + r = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ResolutionLayerComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + var r = 0, + l = 0, + i = 0, + k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; l < layersCount; l++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i = 0; + } + l = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ResolutionPositionComponentLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var l, r, c, p; + var maxDecompositionLevelsCount = 0; + for (c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount); + } + var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1); + for (r = 0; r <= maxDecompositionLevelsCount; ++r) { + var maxNumPrecincts = 0; + for (c = 0; c < componentsCount; ++c) { + var resolutions = tile.components[c].resolutions; + if (r < resolutions.length) { + maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts); + } + } + maxNumPrecinctsInLevel[r] = maxNumPrecincts; + } + l = 0; + r = 0; + c = 0; + p = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; p < maxNumPrecinctsInLevel[r]; p++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + if (p >= numprecincts) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, p, l); + l++; + return packet; + } + l = 0; + } + c = 0; + } + p = 0; + } + error('JPX Error: Out of packets'); + }; + } + function PositionComponentResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var precinctsIterationSizes = precinctsSizes; + var l = 0, + r = 0, + c = 0, + px = 0, + py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + if (k === null) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + c = 0; + } + px = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ComponentPositionResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var l = 0, + r = 0, + c = 0, + px = 0, + py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; c < componentsCount; ++c) { + var component = tile.components[c]; + var precinctsIterationSizes = precinctsSizes.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsIterationSizes.resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + if (k === null) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + px = 0; + } + py = 0; + } + error('JPX Error: Out of packets'); + }; + } + function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { + var posX = pxIndex * precinctIterationSizes.minWidth; + var posY = pyIndex * precinctIterationSizes.minHeight; + if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { + return null; + } + var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; + return posX / sizeInImageScale.height + startPrecinctRowIndex; + } + function getPrecinctSizesInImageScale(tile) { + var componentsCount = tile.components.length; + var minWidth = Number.MAX_VALUE; + var minHeight = Number.MAX_VALUE; + var maxNumWide = 0; + var maxNumHigh = 0; + var sizePerComponent = new Array(componentsCount); + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var sizePerResolution = new Array(decompositionLevelsCount + 1); + var minWidthCurrentComponent = Number.MAX_VALUE; + var minHeightCurrentComponent = Number.MAX_VALUE; + var maxNumWideCurrentComponent = 0; + var maxNumHighCurrentComponent = 0; + var scale = 1; + for (var r = decompositionLevelsCount; r >= 0; --r) { + var resolution = component.resolutions[r]; + var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; + var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; + minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution); + minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution); + maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide); + maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh); + sizePerResolution[r] = { + width: widthCurrentResolution, + height: heightCurrentResolution + }; + scale <<= 1; + } + minWidth = Math.min(minWidth, minWidthCurrentComponent); + minHeight = Math.min(minHeight, minHeightCurrentComponent); + maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); + maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); + sizePerComponent[c] = { + resolutions: sizePerResolution, + minWidth: minWidthCurrentComponent, + minHeight: minHeightCurrentComponent, + maxNumWide: maxNumWideCurrentComponent, + maxNumHigh: maxNumHighCurrentComponent + }; + } + return { + components: sizePerComponent, + minWidth: minWidth, + minHeight: minHeight, + maxNumWide: maxNumWide, + maxNumHigh: maxNumHigh + }; + } + function buildPackets(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var componentsCount = siz.Csiz; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var resolutions = []; + var subbands = []; + for (var r = 0; r <= decompositionLevelsCount; r++) { + var blocksDimensions = getBlocksDimensions(context, component, r); + var resolution = {}; + var scale = 1 << decompositionLevelsCount - r; + resolution.trx0 = Math.ceil(component.tcx0 / scale); + resolution.try0 = Math.ceil(component.tcy0 / scale); + resolution.trx1 = Math.ceil(component.tcx1 / scale); + resolution.try1 = Math.ceil(component.tcy1 / scale); + resolution.resLevel = r; + buildPrecincts(context, resolution, blocksDimensions); + resolutions.push(resolution); + var subband; + if (r === 0) { + subband = {}; + subband.type = 'LL'; + subband.tbx0 = Math.ceil(component.tcx0 / scale); + subband.tby0 = Math.ceil(component.tcy0 / scale); + subband.tbx1 = Math.ceil(component.tcx1 / scale); + subband.tby1 = Math.ceil(component.tcy1 / scale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolution.subbands = [subband]; + } else { + var bscale = 1 << decompositionLevelsCount - r + 1; + var resolutionSubbands = []; + subband = {}; + subband.type = 'HL'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'LH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'HH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + resolution.subbands = resolutionSubbands; + } + } + component.resolutions = resolutions; + component.subbands = subbands; + } + var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; + switch (progressionOrder) { + case 0: + tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); + break; + case 1: + tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); + break; + case 2: + tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); + break; + case 3: + tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); + break; + case 4: + tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); + break; + default: + error('JPX Error: Unsupported progression order ' + progressionOrder); + } + } + function parseTilePackets(context, data, offset, dataLength) { + var position = 0; + var buffer, + bufferSize = 0, + skipNextBit = false; + function readBits(count) { + while (bufferSize < count) { + var b = data[offset + position]; + position++; + if (skipNextBit) { + buffer = buffer << 7 | b; + bufferSize += 7; + skipNextBit = false; + } else { + buffer = buffer << 8 | b; + bufferSize += 8; + } + if (b === 0xFF) { + skipNextBit = true; + } + } + bufferSize -= count; + return buffer >>> bufferSize & (1 << count) - 1; + } + function skipMarkerIfEqual(value) { + if (data[offset + position - 1] === 0xFF && data[offset + position] === value) { + skipBytes(1); + return true; + } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) { + skipBytes(2); + return true; + } + return false; + } + function skipBytes(count) { + position += count; + } + function alignToByte() { + bufferSize = 0; + if (skipNextBit) { + position++; + skipNextBit = false; + } + } + function readCodingpasses() { + if (readBits(1) === 0) { + return 1; + } + if (readBits(1) === 0) { + return 2; + } + var value = readBits(2); + if (value < 3) { + return value + 3; + } + value = readBits(5); + if (value < 31) { + return value + 6; + } + value = readBits(7); + return value + 37; + } + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var sopMarkerUsed = context.COD.sopMarkerUsed; + var ephMarkerUsed = context.COD.ephMarkerUsed; + var packetsIterator = tile.packetsIterator; + while (position < dataLength) { + alignToByte(); + if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { + skipBytes(4); + } + var packet = packetsIterator.nextPacket(); + if (!readBits(1)) { + continue; + } + var layerNumber = packet.layerNumber; + var queue = [], + codeblock; + for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { + codeblock = packet.codeblocks[i]; + var precinct = codeblock.precinct; + var codeblockColumn = codeblock.cbx - precinct.cbxMin; + var codeblockRow = codeblock.cby - precinct.cbyMin; + var codeblockIncluded = false; + var firstTimeInclusion = false; + var valueReady; + if (codeblock['included'] !== undefined) { + codeblockIncluded = !!readBits(1); + } else { + precinct = codeblock.precinct; + var inclusionTree, zeroBitPlanesTree; + if (precinct['inclusionTree'] !== undefined) { + inclusionTree = precinct.inclusionTree; + } else { + var width = precinct.cbxMax - precinct.cbxMin + 1; + var height = precinct.cbyMax - precinct.cbyMin + 1; + inclusionTree = new InclusionTree(width, height, layerNumber); + zeroBitPlanesTree = new TagTree(width, height); + precinct.inclusionTree = inclusionTree; + precinct.zeroBitPlanesTree = zeroBitPlanesTree; + } + if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) { + while (true) { + if (readBits(1)) { + valueReady = !inclusionTree.nextLevel(); + if (valueReady) { + codeblock.included = true; + codeblockIncluded = firstTimeInclusion = true; + break; + } + } else { + inclusionTree.incrementValue(layerNumber); + break; + } + } + } + } + if (!codeblockIncluded) { + continue; + } + if (firstTimeInclusion) { + zeroBitPlanesTree = precinct.zeroBitPlanesTree; + zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); + while (true) { + if (readBits(1)) { + valueReady = !zeroBitPlanesTree.nextLevel(); + if (valueReady) { + break; + } + } else { + zeroBitPlanesTree.incrementValue(); + } + } + codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + } + var codingpasses = readCodingpasses(); + while (readBits(1)) { + codeblock.Lblock++; + } + var codingpassesLog2 = log2(codingpasses); + var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; + var codedDataLength = readBits(bits); + queue.push({ + codeblock: codeblock, + codingpasses: codingpasses, + dataLength: codedDataLength + }); + } + alignToByte(); + if (ephMarkerUsed) { + skipMarkerIfEqual(0x92); + } + while (queue.length > 0) { + var packetItem = queue.shift(); + codeblock = packetItem.codeblock; + if (codeblock['data'] === undefined) { + codeblock.data = []; + } + codeblock.data.push({ + data: data, + start: offset + position, + end: offset + position + packetItem.dataLength, + codingpasses: packetItem.codingpasses + }); + position += packetItem.dataLength; + } + } + return position; + } + function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { + var x0 = subband.tbx0; + var y0 = subband.tby0; + var width = subband.tbx1 - subband.tbx0; + var codeblocks = subband.codeblocks; + var right = subband.type.charAt(0) === 'H' ? 1 : 0; + var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; + for (var i = 0, ii = codeblocks.length; i < ii; ++i) { + var codeblock = codeblocks[i]; + var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; + var blockHeight = codeblock.tby1_ - codeblock.tby0_; + if (blockWidth === 0 || blockHeight === 0) { + continue; + } + if (codeblock['data'] === undefined) { + continue; + } + var bitModel, currentCodingpassType; + bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb); + currentCodingpassType = 2; + var data = codeblock.data, + totalLength = 0, + codingpasses = 0; + var j, jj, dataItem; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + totalLength += dataItem.end - dataItem.start; + codingpasses += dataItem.codingpasses; + } + var encodedData = new Uint8Array(totalLength); + var position = 0; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); + encodedData.set(chunk, position); + position += chunk.length; + } + var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); + bitModel.setDecoder(decoder); + for (j = 0; j < codingpasses; j++) { + switch (currentCodingpassType) { + case 0: + bitModel.runSignificancePropagationPass(); + break; + case 1: + bitModel.runMagnitudeRefinementPass(); + break; + case 2: + bitModel.runCleanupPass(); + if (segmentationSymbolUsed) { + bitModel.checkSegmentationSymbol(); + } + break; + } + currentCodingpassType = (currentCodingpassType + 1) % 3; + } + var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; + var sign = bitModel.coefficentsSign; + var magnitude = bitModel.coefficentsMagnitude; + var bitsDecoded = bitModel.bitsDecoded; + var magnitudeCorrection = reversible ? 0 : 0.5; + var k, n, nb; + position = 0; + var interleave = subband.type !== 'LL'; + for (j = 0; j < blockHeight; j++) { + var row = offset / width | 0; + var levelOffset = 2 * row * (levelWidth - width) + right + bottom; + for (k = 0; k < blockWidth; k++) { + n = magnitude[position]; + if (n !== 0) { + n = (n + magnitudeCorrection) * delta; + if (sign[position] !== 0) { + n = -n; + } + nb = bitsDecoded[position]; + var pos = interleave ? levelOffset + (offset << 1) : offset; + if (reversible && nb >= mb) { + coefficients[pos] = n; + } else { + coefficients[pos] = n * (1 << mb - nb); + } + } + offset++; + position++; + } + offset += width - blockWidth; + } + } + } + function transformTile(context, tile, c) { + var component = tile.components[c]; + var codingStyleParameters = component.codingStyleParameters; + var quantizationParameters = component.quantizationParameters; + var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; + var spqcds = quantizationParameters.SPqcds; + var scalarExpounded = quantizationParameters.scalarExpounded; + var guardBits = quantizationParameters.guardBits; + var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; + var precision = context.components[c].precision; + var reversible = codingStyleParameters.reversibleTransformation; + var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); + var subbandCoefficients = []; + var b = 0; + for (var i = 0; i <= decompositionLevelsCount; i++) { + var resolution = component.resolutions[i]; + var width = resolution.trx1 - resolution.trx0; + var height = resolution.try1 - resolution.try0; + var coefficients = new Float32Array(width * height); + for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { + var mu, epsilon; + if (!scalarExpounded) { + mu = spqcds[0].mu; + epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); + } else { + mu = spqcds[b].mu; + epsilon = spqcds[b].epsilon; + b++; + } + var subband = resolution.subbands[j]; + var gainLog2 = SubbandsGainLog2[subband.type]; + var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var mb = guardBits + epsilon - 1; + copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed); + } + subbandCoefficients.push({ + width: width, + height: height, + items: coefficients + }); + } + var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0); + return { + left: component.tcx0, + top: component.tcy0, + width: result.width, + height: result.height, + items: result.items + }; + } + function transformComponents(context) { + var siz = context.SIZ; + var components = context.components; + var componentsCount = siz.Csiz; + var resultImages = []; + for (var i = 0, ii = context.tiles.length; i < ii; i++) { + var tile = context.tiles[i]; + var transformedTiles = []; + var c; + for (c = 0; c < componentsCount; c++) { + transformedTiles[c] = transformTile(context, tile, c); + } + var tile0 = transformedTiles[0]; + var out = new Uint8Array(tile0.items.length * componentsCount); + var result = { + left: tile0.left, + top: tile0.top, + width: tile0.width, + height: tile0.height, + items: out + }; + var shift, offset, max, min, maxK; + var pos = 0, + j, + jj, + y0, + y1, + y2, + r, + g, + b, + k, + val; + if (tile.codingStyleDefaultParameters.multipleComponentTransform) { + var fourComponents = componentsCount === 4; + var y0items = transformedTiles[0].items; + var y1items = transformedTiles[1].items; + var y2items = transformedTiles[2].items; + var y3items = fourComponents ? transformedTiles[3].items : null; + shift = components[0].precision - 8; + offset = (128 << shift) + 0.5; + max = 255 * (1 << shift); + maxK = max * 0.5; + min = -maxK; + var component0 = tile.components[0]; + var alpha01 = componentsCount - 3; + jj = y0items.length; + if (!component0.codingStyleParameters.reversibleTransformation) { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + r = y0 + 1.402 * y2; + g = y0 - 0.34413 * y1 - 0.71414 * y2; + b = y0 + 1.772 * y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } else { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + g = y0 - (y2 + y1 >> 2); + r = g + y2; + b = g + y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } + if (fourComponents) { + for (j = 0, pos = 3; j < jj; j++, pos += 4) { + k = y3items[j]; + out[pos] = k <= min ? 0 : k >= maxK ? 255 : k + offset >> shift; + } + } + } else { + for (c = 0; c < componentsCount; c++) { + var items = transformedTiles[c].items; + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + max = 127.5 * (1 << shift); + min = -max; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = val <= min ? 0 : val >= max ? 255 : val + offset >> shift; + pos += componentsCount; + } + } + } + resultImages.push(result); + } + return resultImages; + } + function initializeTile(context, tileIndex) { + var siz = context.SIZ; + var componentsCount = siz.Csiz; + var tile = context.tiles[tileIndex]; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD; + component.quantizationParameters = qcdOrQcc; + var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD; + component.codingStyleParameters = codOrCoc; + } + tile.codingStyleDefaultParameters = context.currentTile.COD; + } + var TagTree = function TagTreeClosure() { + function TagTree(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i = 0; i < levelsLength; i++) { + var level = { + width: width, + height: height, + items: [] + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + TagTree.prototype = { + reset: function TagTree_reset(i, j) { + var currentLevel = 0, + value = 0, + level; + while (currentLevel < this.levels.length) { + level = this.levels[currentLevel]; + var index = i + j * level.width; + if (level.items[index] !== undefined) { + value = level.items[index]; + break; + } + level.index = index; + i >>= 1; + j >>= 1; + currentLevel++; + } + currentLevel--; + level = this.levels[currentLevel]; + level.items[level.index] = value; + this.currentLevel = currentLevel; + delete this.value; + }, + incrementValue: function TagTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index]++; + }, + nextLevel: function TagTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + currentLevel--; + if (currentLevel < 0) { + this.value = value; + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return TagTree; + }(); + var InclusionTree = function InclusionTreeClosure() { + function InclusionTree(width, height, defaultValue) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i = 0; i < levelsLength; i++) { + var items = new Uint8Array(width * height); + for (var j = 0, jj = items.length; j < jj; j++) { + items[j] = defaultValue; + } + var level = { + width: width, + height: height, + items: items + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + InclusionTree.prototype = { + reset: function InclusionTree_reset(i, j, stopValue) { + var currentLevel = 0; + while (currentLevel < this.levels.length) { + var level = this.levels[currentLevel]; + var index = i + j * level.width; + level.index = index; + var value = level.items[index]; + if (value === 0xFF) { + break; + } + if (value > stopValue) { + this.currentLevel = currentLevel; + this.propagateValues(); + return false; + } + i >>= 1; + j >>= 1; + currentLevel++; + } + this.currentLevel = currentLevel - 1; + return true; + }, + incrementValue: function InclusionTree_incrementValue(stopValue) { + var level = this.levels[this.currentLevel]; + level.items[level.index] = stopValue + 1; + this.propagateValues(); + }, + propagateValues: function InclusionTree_propagateValues() { + var levelIndex = this.currentLevel; + var level = this.levels[levelIndex]; + var currentValue = level.items[level.index]; + while (--levelIndex >= 0) { + level = this.levels[levelIndex]; + level.items[level.index] = currentValue; + } + }, + nextLevel: function InclusionTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + level.items[level.index] = 0xFF; + currentLevel--; + if (currentLevel < 0) { + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return InclusionTree; + }(); + var BitModel = function BitModelClosure() { + var UNIFORM_CONTEXT = 17; + var RUNLENGTH_CONTEXT = 18; + var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]); + var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]); + var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]); + function BitModel(width, height, subband, zeroBitPlanes, mb) { + this.width = width; + this.height = height; + this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel; + var coefficientCount = width * height; + this.neighborsSignificance = new Uint8Array(coefficientCount); + this.coefficentsSign = new Uint8Array(coefficientCount); + this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); + this.processingFlags = new Uint8Array(coefficientCount); + var bitsDecoded = new Uint8Array(coefficientCount); + if (zeroBitPlanes !== 0) { + for (var i = 0; i < coefficientCount; i++) { + bitsDecoded[i] = zeroBitPlanes; + } + } + this.bitsDecoded = bitsDecoded; + this.reset(); + } + BitModel.prototype = { + setDecoder: function BitModel_setDecoder(decoder) { + this.decoder = decoder; + }, + reset: function BitModel_reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 4 << 1 | 0; + this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; + this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; + }, + setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { + var neighborsSignificance = this.neighborsSignificance; + var width = this.width, + height = this.height; + var left = column > 0; + var right = column + 1 < width; + var i; + if (row > 0) { + i = index - width; + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + neighborsSignificance[i] += 0x04; + } + if (row + 1 < height) { + i = index + width; + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + neighborsSignificance[i] += 0x04; + } + if (left) { + neighborsSignificance[index - 1] += 0x01; + } + if (right) { + neighborsSignificance[index + 1] += 0x01; + } + neighborsSignificance[index] |= 0x80; + }, + runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var neighborsSignificance = this.neighborsSignificance; + var processingFlags = this.processingFlags; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processedInverseMask = ~1; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + for (var i0 = 0; i0 < height; i0 += 4) { + for (var j = 0; j < width; j++) { + var index = i0 * width + j; + for (var i1 = 0; i1 < 4; i1++, index += width) { + var i = i0 + i1; + if (i >= height) { + break; + } + processingFlags[index] &= processedInverseMask; + if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision) { + var sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + decodeSignBit: function BitModel_decodeSignBit(row, column, index) { + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contribution, sign0, sign1, significance1; + var contextLabel, decoded; + significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; + if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { + sign1 = coefficentsSign[index + 1]; + if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign1 - sign0; + } else { + contribution = 1 - sign1 - sign1; + } + } else if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign0 - sign0; + } else { + contribution = 0; + } + var horizontalContribution = 3 * contribution; + significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; + if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { + sign1 = coefficentsSign[index + width]; + if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign1 - sign0 + horizontalContribution; + } else { + contribution = 1 - sign1 - sign1 + horizontalContribution; + } + } else if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign0 - sign0 + horizontalContribution; + } else { + contribution = horizontalContribution; + } + if (contribution >= 0) { + contextLabel = 9 + contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel); + } else { + contextLabel = 9 - contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + } + return decoded; + }, + runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var neighborsSignificance = this.neighborsSignificance; + var contexts = this.contexts; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var length = width * height; + var width4 = width * 4; + for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { + indexNext = Math.min(length, index0 + width4); + for (var j = 0; j < width; j++) { + for (var index = index0 + j; index < indexNext; index += width) { + if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = 16; + if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { + processingFlags[index] ^= firstMagnitudeBitMask; + var significance = neighborsSignificance[index] & 127; + contextLabel = significance === 0 ? 15 : 14; + } + var bit = decoder.readBit(contexts, contextLabel); + coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + runCleanupPass: function BitModel_runCleanupPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var neighborsSignificance = this.neighborsSignificance; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var oneRowDown = width; + var twoRowsDown = width * 2; + var threeRowsDown = width * 3; + var iNext; + for (var i0 = 0; i0 < height; i0 = iNext) { + iNext = Math.min(i0 + 4, height); + var indexBase = i0 * width; + var checkAllEmpty = i0 + 3 < height; + for (var j = 0; j < width; j++) { + var index0 = indexBase + j; + var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; + var i1 = 0, + index = index0; + var i = i0, + sign; + if (allEmpty) { + var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); + if (!hasSignificantCoefficent) { + bitsDecoded[index0]++; + bitsDecoded[index0 + oneRowDown]++; + bitsDecoded[index0 + twoRowsDown]++; + bitsDecoded[index0 + threeRowsDown]++; + continue; + } + i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (i1 !== 0) { + i = i0 + i1; + index += i1 * width; + } + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + index = index0; + for (var i2 = i0; i2 <= i; i2++, index += width) { + bitsDecoded[index]++; + } + i1++; + } + for (i = i0 + i1; i < iNext; i++, index += width) { + if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision === 1) { + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + } + } + } + }, + checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { + var decoder = this.decoder; + var contexts = this.contexts; + var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (symbol !== 0xA) { + error('JPX Error: Invalid segmentation symbol'); + } + } + }; + return BitModel; + }(); + var Transform = function TransformClosure() { + function Transform() {} + Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) { + var ll = subbands[0]; + for (var i = 1, ii = subbands.length; i < ii; i++) { + ll = this.iterate(ll, subbands[i], u0, v0); + } + return ll; + }; + Transform.prototype.extend = function extend(buffer, offset, size) { + var i1 = offset - 1, + j1 = offset + 1; + var i2 = offset + size - 2, + j2 = offset + size; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1] = buffer[j1]; + buffer[j2] = buffer[i2]; + }; + Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { + var llWidth = ll.width, + llHeight = ll.height, + llItems = ll.items; + var width = hl_lh_hh.width; + var height = hl_lh_hh.height; + var items = hl_lh_hh.items; + var i, j, k, l, u, v; + for (k = 0, i = 0; i < llHeight; i++) { + l = i * 2 * width; + for (j = 0; j < llWidth; j++, k++, l += 2) { + items[l] = llItems[k]; + } + } + llItems = ll.items = null; + var bufferPadding = 4; + var rowBuffer = new Float32Array(width + 2 * bufferPadding); + if (width === 1) { + if ((u0 & 1) !== 0) { + for (v = 0, k = 0; v < height; v++, k += width) { + items[k] *= 0.5; + } + } + } else { + for (v = 0, k = 0; v < height; v++, k += width) { + rowBuffer.set(items.subarray(k, k + width), bufferPadding); + this.extend(rowBuffer, bufferPadding, width); + this.filter(rowBuffer, bufferPadding, width); + items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k); + } + } + var numBuffers = 16; + var colBuffers = []; + for (i = 0; i < numBuffers; i++) { + colBuffers.push(new Float32Array(height + 2 * bufferPadding)); + } + var b, + currentBuffer = 0; + ll = bufferPadding + height; + if (height === 1) { + if ((v0 & 1) !== 0) { + for (u = 0; u < width; u++) { + items[u] *= 0.5; + } + } + } else { + for (u = 0; u < width; u++) { + if (currentBuffer === 0) { + numBuffers = Math.min(width - u, numBuffers); + for (k = u, l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + colBuffers[b][l] = items[k + b]; + } + } + currentBuffer = numBuffers; + } + currentBuffer--; + var buffer = colBuffers[currentBuffer]; + this.extend(buffer, bufferPadding, height); + this.filter(buffer, bufferPadding, height); + if (currentBuffer === 0) { + k = u - numBuffers + 1; + for (l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + items[k + b] = colBuffers[b][l]; + } + } + } + } + } + return { + width: width, + height: height, + items: items + }; + }; + return Transform; + }(); + var IrreversibleTransform = function IrreversibleTransformClosure() { + function IrreversibleTransform() { + Transform.call(this); + } + IrreversibleTransform.prototype = Object.create(Transform.prototype); + IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n, current, next; + var alpha = -1.586134342059924; + var beta = -0.052980118572961; + var gamma = 0.882911075530934; + var delta = 0.443506852043971; + var K = 1.230174104914001; + var K_ = 1 / K; + j = offset - 3; + for (n = len + 4; n--; j += 2) { + x[j] *= K_; + } + j = offset - 2; + current = delta * x[j - 1]; + for (n = len + 3; n--; j += 2) { + next = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + if (n--) { + j += 2; + current = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + } else { + break; + } + } + j = offset - 1; + current = gamma * x[j - 1]; + for (n = len + 2; n--; j += 2) { + next = gamma * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = gamma * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + j = offset; + current = beta * x[j - 1]; + for (n = len + 1; n--; j += 2) { + next = beta * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = beta * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + if (len !== 0) { + j = offset + 1; + current = alpha * x[j - 1]; + for (n = len; n--; j += 2) { + next = alpha * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = alpha * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + } + }; + return IrreversibleTransform; + }(); + var ReversibleTransform = function ReversibleTransformClosure() { + function ReversibleTransform() { + Transform.call(this); + } + ReversibleTransform.prototype = Object.create(Transform.prototype); + ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n; + for (j = offset, n = len + 1; n--; j += 2) { + x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; + } + for (j = offset + 1, n = len; n--; j += 2) { + x[j] += x[j - 1] + x[j + 1] >> 1; + } + }; + return ReversibleTransform; + }(); + return JpxImage; +}(); + + + "use strict"; + + var Jbig2Image = function Jbig2ImageClosure() { + function ContextCache() {} + ContextCache.prototype = { + getContexts: function (id) { + if (id in this) { + return this[id]; + } + return this[id] = new Int8Array(1 << 16); + } + }; + function DecodingContext(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + } + DecodingContext.prototype = { + get decoder() { + var decoder = new ArithmeticDecoder(this.data, this.start, this.end); + return shadow(this, 'decoder', decoder); + }, + get contextCache() { + var cache = new ContextCache(); + return shadow(this, 'contextCache', cache); + } + }; + function decodeInteger(contextCache, procedure, decoder) { + var contexts = contextCache.getContexts(procedure); + var prev = 1; + function readBits(length) { + var v = 0; + for (var i = 0; i < length; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256; + v = v << 1 | bit; + } + return v >>> 0; + } + var sign = readBits(1); + var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2); + return sign === 0 ? value : value > 0 ? -value : null; + } + function decodeIAID(contextCache, decoder, codeLength) { + var contexts = contextCache.getContexts('IAID'); + var prev = 1; + for (var i = 0; i < codeLength; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev << 1 | bit; + } + if (codeLength < 31) { + return prev & (1 << codeLength) - 1; + } + return prev & 0x7FFFFFFF; + } + var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'patternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension']; + var CodingTemplates = [[{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: 2, + y: -1 + }, { + x: -4, + y: 0 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: 2, + y: -1 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -3, + y: -1 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -4, + y: 0 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }]]; + var RefinementTemplates = [{ + coding: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: -1, + y: 1 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] + }, { + coding: [{ + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] + }]; + var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195]; + var RefinementReusedContexts = [0x0020, 0x0008]; + function decodeBitmapTemplate0(width, height, decodingContext) { + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var contextLabel, + i, + j, + pixel, + row, + row1, + row2, + bitmap = []; + var OLD_PIXEL_MASK = 0x7BF7; + for (i = 0; i < height; i++) { + row = bitmap[i] = new Uint8Array(width); + row1 = i < 1 ? row : bitmap[i - 1]; + row2 = i < 2 ? row : bitmap[i - 2]; + contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4; + for (j = 0; j < width; j++) { + row[j] = pixel = decoder.readBit(contexts, contextLabel); + contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; + } + } + return bitmap; + } + function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { + if (mmr) { + error('JBIG2 error: MMR encoding is not supported'); + } + if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { + return decodeBitmapTemplate0(width, height, decodingContext); + } + var useskip = !!skip; + var template = CodingTemplates[templateIndex].concat(at); + template.sort(function (a, b) { + return a.y - b.y || a.x - b.x; + }); + var templateLength = template.length; + var templateX = new Int8Array(templateLength); + var templateY = new Int8Array(templateLength); + var changingTemplateEntries = []; + var reuseMask = 0, + minX = 0, + maxX = 0, + minY = 0; + var c, k; + for (k = 0; k < templateLength; k++) { + templateX[k] = template[k].x; + templateY[k] = template[k].y; + minX = Math.min(minX, template[k].x); + maxX = Math.max(maxX, template[k].x); + minY = Math.min(minY, template[k].y); + if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) { + reuseMask |= 1 << templateLength - 1 - k; + } else { + changingTemplateEntries.push(k); + } + } + var changingEntriesLength = changingTemplateEntries.length; + var changingTemplateX = new Int8Array(changingEntriesLength); + var changingTemplateY = new Int8Array(changingEntriesLength); + var changingTemplateBit = new Uint16Array(changingEntriesLength); + for (c = 0; c < changingEntriesLength; c++) { + k = changingTemplateEntries[c]; + changingTemplateX[c] = template[k].x; + changingTemplateY[c] = template[k].y; + changingTemplateBit[c] = 1 << templateLength - 1 - k; + } + var sbb_left = -minX; + var sbb_top = -minY; + var sbb_right = width - maxX; + var pseudoPixelContext = ReusedContexts[templateIndex]; + var row = new Uint8Array(width); + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var ltp = 0, + j, + i0, + j0, + contextLabel = 0, + bit, + shift; + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + bitmap.push(row); + continue; + } + } + row = new Uint8Array(row); + bitmap.push(row); + for (j = 0; j < width; j++) { + if (useskip && skip[i][j]) { + row[j] = 0; + continue; + } + if (j >= sbb_left && j < sbb_right && i >= sbb_top) { + contextLabel = contextLabel << 1 & reuseMask; + for (k = 0; k < changingEntriesLength; k++) { + i0 = i + changingTemplateY[k]; + j0 = j + changingTemplateX[k]; + bit = bitmap[i0][j0]; + if (bit) { + bit = changingTemplateBit[k]; + contextLabel |= bit; + } + } + } else { + contextLabel = 0; + shift = templateLength - 1; + for (k = 0; k < templateLength; k++, shift--) { + j0 = j + templateX[k]; + if (j0 >= 0 && j0 < width) { + i0 = i + templateY[k]; + if (i0 >= 0) { + bit = bitmap[i0][j0]; + if (bit) { + contextLabel |= bit << shift; + } + } + } + } + } + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; + } + function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) { + var codingTemplate = RefinementTemplates[templateIndex].coding; + if (templateIndex === 0) { + codingTemplate = codingTemplate.concat([at[0]]); + } + var codingTemplateLength = codingTemplate.length; + var codingTemplateX = new Int32Array(codingTemplateLength); + var codingTemplateY = new Int32Array(codingTemplateLength); + var k; + for (k = 0; k < codingTemplateLength; k++) { + codingTemplateX[k] = codingTemplate[k].x; + codingTemplateY[k] = codingTemplate[k].y; + } + var referenceTemplate = RefinementTemplates[templateIndex].reference; + if (templateIndex === 0) { + referenceTemplate = referenceTemplate.concat([at[1]]); + } + var referenceTemplateLength = referenceTemplate.length; + var referenceTemplateX = new Int32Array(referenceTemplateLength); + var referenceTemplateY = new Int32Array(referenceTemplateLength); + for (k = 0; k < referenceTemplateLength; k++) { + referenceTemplateX[k] = referenceTemplate[k].x; + referenceTemplateY[k] = referenceTemplate[k].y; + } + var referenceWidth = referenceBitmap[0].length; + var referenceHeight = referenceBitmap.length; + var pseudoPixelContext = RefinementReusedContexts[templateIndex]; + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GR'); + var ltp = 0; + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + error('JBIG2 error: prediction is not supported'); + } + } + var row = new Uint8Array(width); + bitmap.push(row); + for (var j = 0; j < width; j++) { + var i0, j0; + var contextLabel = 0; + for (k = 0; k < codingTemplateLength; k++) { + i0 = i + codingTemplateY[k]; + j0 = j + codingTemplateX[k]; + if (i0 < 0 || j0 < 0 || j0 >= width) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | bitmap[i0][j0]; + } + } + for (k = 0; k < referenceTemplateLength; k++) { + i0 = i + referenceTemplateY[k] + offsetY; + j0 = j + referenceTemplateX[k] + offsetX; + if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | referenceBitmap[i0][j0]; + } + } + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; + } + function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext) { + if (huffman) { + error('JBIG2 error: huffman is not supported'); + } + var newSymbols = []; + var currentHeight = 0; + var symbolCodeLength = log2(symbols.length + numberOfNewSymbols); + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + while (newSymbols.length < numberOfNewSymbols) { + var deltaHeight = decodeInteger(contextCache, 'IADH', decoder); + currentHeight += deltaHeight; + var currentWidth = 0; + while (true) { + var deltaWidth = decodeInteger(contextCache, 'IADW', decoder); + if (deltaWidth === null) { + break; + } + currentWidth += deltaWidth; + var bitmap; + if (refinement) { + var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder); + if (numberOfInstances > 1) { + bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext); + } else { + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length]; + bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext); + } + } else { + bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext); + } + newSymbols.push(bitmap); + } + } + var exportedSymbols = []; + var flags = [], + currentFlag = false; + var totalSymbolsLength = symbols.length + numberOfNewSymbols; + while (flags.length < totalSymbolsLength) { + var runLength = decodeInteger(contextCache, 'IAEX', decoder); + while (runLength--) { + flags.push(currentFlag); + } + currentFlag = !currentFlag; + } + for (var i = 0, ii = symbols.length; i < ii; i++) { + if (flags[i]) { + exportedSymbols.push(symbols[i]); + } + } + for (var j = 0; j < numberOfNewSymbols; i++, j++) { + if (flags[i]) { + exportedSymbols.push(newSymbols[j]); + } + } + return exportedSymbols; + } + function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext) { + if (huffman) { + error('JBIG2 error: huffman is not supported'); + } + var bitmap = []; + var i, row; + for (i = 0; i < height; i++) { + row = new Uint8Array(width); + if (defaultPixelValue) { + for (var j = 0; j < width; j++) { + row[j] = defaultPixelValue; + } + } + bitmap.push(row); + } + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + var stripT = -decodeInteger(contextCache, 'IADT', decoder); + var firstS = 0; + i = 0; + while (i < numberOfSymbolInstances) { + var deltaT = decodeInteger(contextCache, 'IADT', decoder); + stripT += deltaT; + var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder); + firstS += deltaFirstS; + var currentS = firstS; + do { + var currentT = stripSize === 1 ? 0 : decodeInteger(contextCache, 'IAIT', decoder); + var t = stripSize * stripT + currentT; + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var applyRefinement = refinement && decodeInteger(contextCache, 'IARI', decoder); + var symbolBitmap = inputSymbols[symbolId]; + var symbolWidth = symbolBitmap[0].length; + var symbolHeight = symbolBitmap.length; + if (applyRefinement) { + var rdw = decodeInteger(contextCache, 'IARDW', decoder); + var rdh = decodeInteger(contextCache, 'IARDH', decoder); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + symbolWidth += rdw; + symbolHeight += rdh; + symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext); + } + var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight); + var offsetS = currentS - (referenceCorner & 2 ? symbolWidth : 0); + var s2, t2, symbolRow; + if (transposed) { + for (s2 = 0; s2 < symbolHeight; s2++) { + row = bitmap[offsetS + s2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[s2]; + var maxWidth = Math.min(width - offsetT, symbolWidth); + switch (combinationOperator) { + case 0: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] |= symbolRow[t2]; + } + break; + case 2: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] ^= symbolRow[t2]; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + } + currentS += symbolHeight - 1; + } else { + for (t2 = 0; t2 < symbolHeight; t2++) { + row = bitmap[offsetT + t2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[t2]; + switch (combinationOperator) { + case 0: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] |= symbolRow[s2]; + } + break; + case 2: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] ^= symbolRow[s2]; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + } + currentS += symbolWidth - 1; + } + i++; + var deltaS = decodeInteger(contextCache, 'IADS', decoder); + if (deltaS === null) { + break; + } + currentS += deltaS + dsOffset; + } while (true); + } + return bitmap; + } + function readSegmentHeader(data, start) { + var segmentHeader = {}; + segmentHeader.number = readUint32(data, start); + var flags = data[start + 4]; + var segmentType = flags & 0x3F; + if (!SegmentTypes[segmentType]) { + error('JBIG2 error: invalid segment type: ' + segmentType); + } + segmentHeader.type = segmentType; + segmentHeader.typeName = SegmentTypes[segmentType]; + segmentHeader.deferredNonRetain = !!(flags & 0x80); + var pageAssociationFieldSize = !!(flags & 0x40); + var referredFlags = data[start + 5]; + var referredToCount = referredFlags >> 5 & 7; + var retainBits = [referredFlags & 31]; + var position = start + 6; + if (referredFlags === 7) { + referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF; + position += 3; + var bytes = referredToCount + 7 >> 3; + retainBits[0] = data[position++]; + while (--bytes > 0) { + retainBits.push(data[position++]); + } + } else if (referredFlags === 5 || referredFlags === 6) { + error('JBIG2 error: invalid referred-to flags'); + } + segmentHeader.retainBits = retainBits; + var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4; + var referredTo = []; + var i, ii; + for (i = 0; i < referredToCount; i++) { + var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? readUint16(data, position) : readUint32(data, position); + referredTo.push(number); + position += referredToSegmentNumberSize; + } + segmentHeader.referredTo = referredTo; + if (!pageAssociationFieldSize) { + segmentHeader.pageAssociation = data[position++]; + } else { + segmentHeader.pageAssociation = readUint32(data, position); + position += 4; + } + segmentHeader.length = readUint32(data, position); + position += 4; + if (segmentHeader.length === 0xFFFFFFFF) { + if (segmentType === 38) { + var genericRegionInfo = readRegionSegmentInformation(data, position); + var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; + var genericRegionMmr = !!(genericRegionSegmentFlags & 1); + var searchPatternLength = 6; + var searchPattern = new Uint8Array(searchPatternLength); + if (!genericRegionMmr) { + searchPattern[0] = 0xFF; + searchPattern[1] = 0xAC; + } + searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF; + searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF; + searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF; + searchPattern[5] = genericRegionInfo.height & 0xFF; + for (i = position, ii = data.length; i < ii; i++) { + var j = 0; + while (j < searchPatternLength && searchPattern[j] === data[i + j]) { + j++; + } + if (j === searchPatternLength) { + segmentHeader.length = i + searchPatternLength; + break; + } + } + if (segmentHeader.length === 0xFFFFFFFF) { + error('JBIG2 error: segment end was not found'); + } + } else { + error('JBIG2 error: invalid unknown segment length'); + } + } + segmentHeader.headerEnd = position; + return segmentHeader; + } + function readSegments(header, data, start, end) { + var segments = []; + var position = start; + while (position < end) { + var segmentHeader = readSegmentHeader(data, position); + position = segmentHeader.headerEnd; + var segment = { + header: segmentHeader, + data: data + }; + if (!header.randomAccess) { + segment.start = position; + position += segmentHeader.length; + segment.end = position; + } + segments.push(segment); + if (segmentHeader.type === 51) { + break; + } + } + if (header.randomAccess) { + for (var i = 0, ii = segments.length; i < ii; i++) { + segments[i].start = position; + position += segments[i].header.length; + segments[i].end = position; + } + } + return segments; + } + function readRegionSegmentInformation(data, start) { + return { + width: readUint32(data, start), + height: readUint32(data, start + 4), + x: readUint32(data, start + 8), + y: readUint32(data, start + 12), + combinationOperator: data[start + 16] & 7 + }; + } + var RegionSegmentInformationFieldLength = 17; + function processSegment(segment, visitor) { + var header = segment.header; + var data = segment.data, + position = segment.start, + end = segment.end; + var args, at, i, atLength; + switch (header.type) { + case 0: + var dictionary = {}; + var dictionaryFlags = readUint16(data, position); + dictionary.huffman = !!(dictionaryFlags & 1); + dictionary.refinement = !!(dictionaryFlags & 2); + dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; + dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3; + dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1; + dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1; + dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); + dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); + dictionary.template = dictionaryFlags >> 10 & 3; + dictionary.refinementTemplate = dictionaryFlags >> 12 & 1; + position += 2; + if (!dictionary.huffman) { + atLength = dictionary.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.at = at; + } + if (dictionary.refinement && !dictionary.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.refinementAt = at; + } + dictionary.numberOfExportedSymbols = readUint32(data, position); + position += 4; + dictionary.numberOfNewSymbols = readUint32(data, position); + position += 4; + args = [dictionary, header.number, header.referredTo, data, position, end]; + break; + case 6: + case 7: + var textRegion = {}; + textRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var textRegionSegmentFlags = readUint16(data, position); + position += 2; + textRegion.huffman = !!(textRegionSegmentFlags & 1); + textRegion.refinement = !!(textRegionSegmentFlags & 2); + textRegion.stripSize = 1 << (textRegionSegmentFlags >> 2 & 3); + textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3; + textRegion.transposed = !!(textRegionSegmentFlags & 64); + textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3; + textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1; + textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27; + textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; + if (textRegion.huffman) { + var textRegionHuffmanFlags = readUint16(data, position); + position += 2; + textRegion.huffmanFS = textRegionHuffmanFlags & 3; + textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; + textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3; + textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3; + textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3; + textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3; + textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3; + textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 14); + } + if (textRegion.refinement && !textRegion.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + textRegion.refinementAt = at; + } + textRegion.numberOfSymbolInstances = readUint32(data, position); + position += 4; + if (textRegion.huffman) { + error('JBIG2 error: huffman is not supported'); + } + args = [textRegion, header.referredTo, data, position, end]; + break; + case 38: + case 39: + var genericRegion = {}; + genericRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var genericRegionSegmentFlags = data[position++]; + genericRegion.mmr = !!(genericRegionSegmentFlags & 1); + genericRegion.template = genericRegionSegmentFlags >> 1 & 3; + genericRegion.prediction = !!(genericRegionSegmentFlags & 8); + if (!genericRegion.mmr) { + atLength = genericRegion.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + genericRegion.at = at; + } + args = [genericRegion, data, position, end]; + break; + case 48: + var pageInfo = { + width: readUint32(data, position), + height: readUint32(data, position + 4), + resolutionX: readUint32(data, position + 8), + resolutionY: readUint32(data, position + 12) + }; + if (pageInfo.height === 0xFFFFFFFF) { + delete pageInfo.height; + } + var pageSegmentFlags = data[position + 16]; + readUint16(data, position + 17); + pageInfo.lossless = !!(pageSegmentFlags & 1); + pageInfo.refinement = !!(pageSegmentFlags & 2); + pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; + pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3; + pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); + pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); + args = [pageInfo]; + break; + case 49: + break; + case 50: + break; + case 51: + break; + case 62: + break; + default: + error('JBIG2 error: segment type ' + header.typeName + '(' + header.type + ') is not implemented'); + } + var callbackName = 'on' + header.typeName; + if (callbackName in visitor) { + visitor[callbackName].apply(visitor, args); + } + } + function processSegments(segments, visitor) { + for (var i = 0, ii = segments.length; i < ii; i++) { + processSegment(segments[i], visitor); + } + } + function parseJbig2(data, start, end) { + var position = start; + if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) { + error('JBIG2 error: invalid header'); + } + var header = {}; + position += 8; + var flags = data[position++]; + header.randomAccess = !(flags & 1); + if (!(flags & 2)) { + header.numberOfPages = readUint32(data, position); + position += 4; + } + readSegments(header, data, position, end); + error('Not implemented'); + } + function parseJbig2Chunks(chunks) { + var visitor = new SimpleSegmentVisitor(); + for (var i = 0, ii = chunks.length; i < ii; i++) { + var chunk = chunks[i]; + var segments = readSegments({}, chunk.data, chunk.start, chunk.end); + processSegments(segments, visitor); + } + return visitor.buffer; + } + function SimpleSegmentVisitor() {} + SimpleSegmentVisitor.prototype = { + onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) { + this.currentPageInfo = info; + var rowSize = info.width + 7 >> 3; + var buffer = new Uint8Array(rowSize * info.height); + if (info.defaultPixelValue) { + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = 0xFF; + } + } + this.buffer = buffer; + }, + drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) { + var pageInfo = this.currentPageInfo; + var width = regionInfo.width, + height = regionInfo.height; + var rowSize = pageInfo.width + 7 >> 3; + var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator; + var buffer = this.buffer; + var mask0 = 128 >> (regionInfo.x & 7); + var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); + var i, j, mask, offset; + switch (combinationOperator) { + case 0: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] |= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + case 2: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] ^= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + }, + onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) { + var regionInfo = region.info; + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion.apply(this, arguments); + }, + onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { + var huffmanTables; + if (dictionary.huffman) { + error('JBIG2 error: huffman is not supported'); + } + var symbols = this.symbols; + if (!symbols) { + this.symbols = symbols = {}; + } + var inputSymbols = []; + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); + } + var decodingContext = new DecodingContext(data, start, end); + symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext); + }, + onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) { + var regionInfo = region.info; + var huffmanTables; + var symbols = this.symbols; + var inputSymbols = []; + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); + } + var symbolCodeLength = log2(inputSymbols.length); + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() { + this.onImmediateTextRegion.apply(this, arguments); + } + }; + function Jbig2Image() {} + Jbig2Image.prototype = { + parseChunks: function Jbig2Image_parseChunks(chunks) { + return parseJbig2Chunks(chunks); + } + }; + return Jbig2Image; +}(); + + + + + + function log2(x) { + var n = 1, i = 0; + while (x > n) { + n <<= 1; + i++; + } + return i; + } + function readInt8(data, start) { + return data[start] << 24 >> 24; + } + function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; + } + function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; + } + function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value: value, + enumerable: true, + configurable: true, + writable: false + }); + return value; + } + var error = function() { + console.error.apply(console, arguments); + throw new Error("PDFJS error: " + arguments[0]); + }; + var warn = function() { + console.warn.apply(console, arguments); + }; + var info = function() { + console.info.apply(console, arguments); + }; + Jbig2Image.prototype.parse = function parseJbig2(data) { + var position = 0, end = data.length; + if (data[position] !== 151 || data[position + 1] !== 74 || data[position + 2] !== 66 || data[position + 3] !== 50 || data[position + 4] !== 13 || data[position + 5] !== 10 || data[position + 6] !== 26 || data[position + 7] !== 10) { + error("JBIG2 error: invalid header"); + } + var header = {}; + position += 8; + var flags = data[position++]; + header.randomAccess = !(flags & 1); + if (!(flags & 2)) { + header.numberOfPages = readUint32(data, position); + position += 4; + } + var visitor = this.parseChunks([ { + data: data, + start: position, + end: end + } ]); + var width = visitor.currentPageInfo.width; + var height = visitor.currentPageInfo.height; + var bitPacked = visitor.buffer; + var data = new Uint8Array(width * height); + var q = 0, k = 0; + for (var i = 0; i < height; i++) { + var mask = 0, buffer; + for (var j = 0; j < width; j++) { + if (!mask) { + mask = 128; + buffer = bitPacked[k++]; + } + data[q++] = buffer & mask ? 0 : 255; + mask >>= 1; + } + } + this.width = width; + this.height = height; + this.data = data; + }; + PDFJS.JpegImage = JpegImage; + PDFJS.JpxImage = JpxImage; + PDFJS.Jbig2Image = Jbig2Image; +})(PDFJS || (PDFJS = {})); + + +;(function(){var o,X=0,e=null,n=null;o=window.FFT={};var f={o:function(G){if(G!==0&&(G&G-1)===0){X=G; +f.B();f.q();f.i()}else{throw new Error("init: radix-2 required")}},X:function(G,B){f.G(G,B,1)},e:function(G,B){var j=1/X; +f.G(G,B,-1);for(var q=0;q>2; +for(var P=0;P>1;while(q<=B){B-=q;q>>=1}B+=q;e[G]=B}},i:function(){var G=X>>1,B=X>>2,j=X>>3,q=G+B,i=Math.sin(Math.PI/X),m=2*i*i,Z=Math.sqrt(m*(2-m)),p=n[B]=1,C=n[0]=0; +i=2*m;for(var a=1;an){var p=this.type===c.types.logicalOR||this.type===c.types.logicalAND,g=this.value;this.next();var k=this.start,q=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null, +!1),k,q,d,e);b=this.buildBinary(a,h,b,d,g,p);return this.parseExprOp(b,a,h,n,e)}return b};a.buildBinary=function(b,c,a,n,e,m){b=this.startNodeAt(b,c);b.left=a;b.operator=e;b.right=n;return this.finishNode(b,m?"LogicalExpression":"BinaryExpression")};a.parseMaybeUnary=function(b,a){var d=this.start,n=this.startLoc;if(this.type.prefix){var e=this.startNode();var m=this.type===c.types.incDec;e.operator=this.value;e.prefix=!0;this.next();e.argument=this.parseMaybeUnary(null,!0);this.checkExpressionErrors(b, +!0);m?this.checkLVal(e.argument):this.strict&&"delete"===e.operator&&"Identifier"===e.argument.type?this.raiseRecoverable(e.start,"Deleting local variable in strict mode"):a=!0;m=this.finishNode(e,m?"UpdateExpression":"UnaryExpression")}else{m=this.parseExprSubscripts(b);if(this.checkExpressionErrors(b))return m;for(;this.type.postfix&&!this.canInsertSemicolon();)e=this.startNodeAt(d,n),e.operator=this.value,e.prefix=!1,e.argument=m,this.checkLVal(m),this.next(),m=this.finishNode(e,"UpdateExpression")}return!a&& +this.eat(c.types.starstar)?this.buildBinary(d,n,m,this.parseMaybeUnary(null,!1),"**",!1):m};a.parseExprSubscripts=function(b){var c=this.start,a=this.startLoc,n=this.parseExprAtom(b),e="ArrowFunctionExpression"===n.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);return this.checkExpressionErrors(b)||e?n:this.parseSubscripts(n,c,a)};a.parseSubscripts=function(b,a,h,n){for(var e;;)if(this.eat(c.types.dot))e=this.startNodeAt(a,h),e.object=b,e.property=this.parseIdent(!0),e.computed=!1, +b=this.finishNode(e,"MemberExpression");else if(this.eat(c.types.bracketL))e=this.startNodeAt(a,h),e.object=b,e.property=this.parseExpression(),e.computed=!0,this.expect(c.types.bracketR),b=this.finishNode(e,"MemberExpression");else if(!n&&this.eat(c.types.parenL))e=this.startNodeAt(a,h),e.callee=b,e.arguments=this.parseExprList(c.types.parenR,!1),b=this.finishNode(e,"CallExpression");else if(this.type===c.types.backQuote)e=this.startNodeAt(a,h),e.tag=b,e.quasi=this.parseTemplate(),b=this.finishNode(e, +"TaggedTemplateExpression");else return b};a.parseExprAtom=function(b){var a=this.potentialArrowAt==this.start;switch(this.type){case c.types._super:this.inFunction||this.raise(this.start,"'super' outside of function or class");case c.types._this:return b=this.type===c.types._this?"ThisExpression":"Super",a=this.startNode(),this.next(),this.finishNode(a,b);case c.types.name:b=this.start;var h=this.startLoc,n=this.parseIdent(this.type!==c.types.name);return a&&!this.canInsertSemicolon()&&this.eat(c.types.arrow)? +this.parseArrowExpression(this.startNodeAt(b,h),[n]):n;case c.types.regexp:return b=this.value,a=this.parseLiteral(b.value),a.regex={pattern:b.pattern,flags:b.flags},a;case c.types.num:case c.types.string:return this.parseLiteral(this.value);case c.types._null:case c.types._true:case c.types._false:return a=this.startNode(),a.value=this.type===c.types._null?null:this.type===c.types._true,a.raw=this.type.keyword,this.next(),this.finishNode(a,"Literal");case c.types.parenL:return this.parseParenAndDistinguishExpression(a); +case c.types.bracketL:return a=this.startNode(),this.next(),a.elements=this.parseExprList(c.types.bracketR,!0,!0,b),this.finishNode(a,"ArrayExpression");case c.types.braceL:return this.parseObj(!1,b);case c.types._function:return a=this.startNode(),this.next(),this.parseFunction(a,!1);case c.types._class:return this.parseClass(this.startNode(),!1);case c.types._new:return this.parseNew();case c.types.backQuote:return this.parseTemplate();default:this.unexpected()}};a.parseLiteral=function(b){var a= +this.startNode();a.value=b;a.raw=this.input.slice(this.start,this.end);this.next();return this.finishNode(a,"Literal")};a.parseParenExpression=function(){this.expect(c.types.parenL);var b=this.parseExpression();this.expect(c.types.parenR);return b};a.parseParenAndDistinguishExpression=function(b){var a=this.start,h=this.startLoc;if(6<=this.options.ecmaVersion){this.next();for(var n=this.start,e=this.startLoc,m=[],p=!0,g={shorthandAssign:0,trailingComma:0},k=void 0,q=void 0;this.type!==c.types.parenR;)if(p? +p=!1:this.expect(c.types.comma),this.type===c.types.ellipsis){k=this.start;m.push(this.parseParenItem(this.parseRest()));break}else this.type!==c.types.parenL||q||(q=this.start),m.push(this.parseMaybeAssign(!1,g,this.parseParenItem));var p=this.start,f=this.startLoc;this.expect(c.types.parenR);if(b&&!this.canInsertSemicolon()&&this.eat(c.types.arrow))return this.checkPatternErrors(g,!0),q&&this.unexpected(q),this.parseParenArrowList(a,h,m);m.length||this.unexpected(this.lastTokStart);k&&this.unexpected(k); +this.checkExpressionErrors(g,!0);1b)return!1; +e+=a[c+1];if(e>=b)return!0}}f.__esModule=!0;f.isIdentifierStart=function(b,a){return 65>b?36===b:91>b?!0:97>b?95===b:123>b?!0:65535>=b?170<=b&&g.test(String.fromCharCode(b)):!1===a?!1:c(b,d)};f.isIdentifierChar=function(a,e){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:65535>=a?170<=a&&b.test(String.fromCharCode(a)):!1===e?!1:c(a,d)||c(a,h)};f.reservedWords={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", +5:"class enum extends super const export import",6:"enum",7:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"};f.keywords={5:"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",6:"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this const class extends export import super"}; +a="\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ad\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +var g=new RegExp("["+a+"]"),b=new RegExp("["+a+"\u200c\u200d\u00b7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]"); +a=null;var d=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,99,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,287,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,1288, +921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,16481,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,1340,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],h=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3, +41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,168,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,316,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,20855,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,3617,6,792618,239]},{}],3:[function(a,l,f){f.__esModule=!0;f.parse=function(a,b){return(new c.Parser(b,a)).parse()};f.parseExpressionAt=function(a,b,d){a=new c.Parser(d,a,b);a.nextToken(); +return a.parseExpression()};f.tokenizer=function(a,b){return new c.Parser(b,a)};var c=a("./state");a("./parseutil");a("./statement");a("./lval");a("./expression");a("./location");f.Parser=c.Parser;f.plugins=c.plugins;l=a("./options");f.defaultOptions=l.defaultOptions;l=a("./locutil");f.Position=l.Position;f.SourceLocation=l.SourceLocation;f.getLineInfo=l.getLineInfo;l=a("./node");f.Node=l.Node;l=a("./tokentype");f.TokenType=l.TokenType;f.tokTypes=l.types;l=a("./tokencontext");f.TokContext=l.TokContext; +f.tokContexts=l.types;l=a("./identifier");f.isIdentifierChar=l.isIdentifierChar;f.isIdentifierStart=l.isIdentifierStart;l=a("./tokenize");f.Token=l.Token;a=a("./whitespace");f.isNewLine=a.isNewLine;f.lineBreak=a.lineBreak;f.lineBreakG=a.lineBreakG;f.version="3.1.0"},{"./expression":1,"./identifier":2,"./location":4,"./locutil":5,"./lval":6,"./node":7,"./options":8,"./parseutil":9,"./state":10,"./statement":11,"./tokencontext":12,"./tokenize":13,"./tokentype":14,"./whitespace":16}],4:[function(a,l, +f){l=a("./state");var c=a("./locutil");a=l.Parser.prototype;a.raise=function(a,b){var d=c.getLineInfo(this.input,a);b+=" ("+d.line+":"+d.column+")";var h=new SyntaxError(b);h.pos=a;h.loc=d;h.raisedAt=this.pos;throw h;};a.raiseRecoverable=a.raise;a.curPosition=function(){if(this.options.locations)return new c.Position(this.curLine,this.pos-this.lineStart)}},{"./locutil":5,"./state":10}],5:[function(a,l,f){function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function"); +}f.__esModule=!0;f.getLineInfo=function(a,c){for(var d=1,e=0;;){g.lineBreakG.lastIndex=e;var m=g.lineBreakG.exec(a);if(m&&m.indexthis.options.ecmaVersion||"let"!=this.value)return!1;g.skipWhiteSpace.lastIndex=this.pos;var a=g.skipWhiteSpace.exec(this.input),a=this.pos+a[0].length,d=this.input.charCodeAt(a);if(91===d||123==d)return!0;if(b.isIdentifierStart(d,!0)){for(d=a+1;b.isIdentifierChar(this.input.charCodeAt(d,!0));++d);a=this.input.slice(a,d);if(!this.isKeyword(a))return!0}return!1}; +a.parseStatement=function(a,b){var e=this.type,d=this.startNode(),k=void 0;this.isLet()&&(e=c.types._var,k="let");switch(e){case c.types._break:case c.types._continue:return this.parseBreakContinueStatement(d,e.keyword);case c.types._debugger:return this.parseDebuggerStatement(d);case c.types._do:return this.parseDoStatement(d);case c.types._for:return this.parseForStatement(d);case c.types._function:return!a&&6<=this.options.ecmaVersion&&this.unexpected(),this.parseFunctionStatement(d);case c.types._class:return a|| +this.unexpected(),this.parseClass(d,!0);case c.types._if:return this.parseIfStatement(d);case c.types._return:return this.parseReturnStatement(d);case c.types._switch:return this.parseSwitchStatement(d);case c.types._throw:return this.parseThrowStatement(d);case c.types._try:return this.parseTryStatement(d);case c.types._const:case c.types._var:return k=k||this.value,a||"var"==k||this.unexpected(),this.parseVarStatement(d,k);case c.types._while:return this.parseWhileStatement(d);case c.types._with:return this.parseWithStatement(d); +case c.types.braceL:return this.parseBlock();case c.types.semi:return this.parseEmptyStatement(d);case c.types._export:case c.types._import:return this.options.allowImportExportEverywhere||(b||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),e===c.types._import?this.parseImport(d):this.parseExport(d);default:var k=this.value,m=this.parseExpression();return e===c.types.name&& +"Identifier"===m.type&&this.eat(c.types.colon)?this.parseLabeledStatement(d,k,m):this.parseExpressionStatement(d,m)}};a.parseBreakContinueStatement=function(a,b){var e="break"==b;this.next();this.eat(c.types.semi)||this.insertSemicolon()?a.label=null:this.type!==c.types.name?this.unexpected():(a.label=this.parseIdent(),this.semicolon());for(var d=0;d=a)return String.fromCharCode(a);a-=65536;return String.fromCharCode((a>>10)+55296,(a&1023)+56320)}f.__esModule=!0;var b=a("./identifier"),d=a("./tokentype");l=a("./state");var h=a("./locutil"),n=a("./whitespace"),e=function k(a){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");this.type=a.type;this.value=a.value;this.start=a.start;this.end=a.end;a.options.locations&&(this.loc= +new h.SourceLocation(a,a.startLoc,a.endLoc));a.options.ranges&&(this.range=[a.start,a.end])};f.Token=e;a=l.Parser.prototype;var m="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);a.next=function(){if(this.options.onToken)this.options.onToken(new e(this));this.lastTokEnd=this.end;this.lastTokStart=this.start;this.lastTokEndLoc=this.endLoc;this.lastTokStartLoc=this.startLoc;this.nextToken()};a.getToken=function(){this.next();return new e(this)};"undefined"!== +typeof Symbol&&(a[Symbol.iterator]=function(){var a=this;return{next:function(){var b=a.getToken();return{done:b.type===d.types.eof,value:b}}}});a.setStrict=function(a){this.strict=a;if(this.type===d.types.num||this.type===d.types.string){this.pos=this.start;if(this.options.locations)for(;this.pos=this.input.length)return this.finishToken(d.types.eof);if(a.override)return a.override(this);this.readToken(this.fullCharCodeAtPos())};a.readToken=function(a){return b.isIdentifierStart(a,6<=this.options.ecmaVersion)||92===a?this.readWord():this.getTokenFromCode(a)};a.fullCharCodeAtPos=function(){var a=this.input.charCodeAt(this.pos);if(55295>=a||57344<= +a)return a;var b=this.input.charCodeAt(this.pos+1);return(a<<10)+b-56613888};a.skipBlockComment=function(){var a=this.options.onComment&&this.curPosition(),b=this.pos,c=this.input.indexOf("*/",this.pos+=2);-1===c&&this.raise(this.pos-2,"Unterminated comment");this.pos=c+2;if(this.options.locations){n.lineBreakG.lastIndex=b;for(var d=void 0;(d=n.lineBreakG.exec(this.input))&&d.indexa||5760<=a&&n.nonASCIIwhitespace.test(String.fromCharCode(a)))++this.pos;else break a}}};a.finishToken=function(a,b){this.end=this.pos;this.options.locations&& +(this.endLoc=this.curPosition());var c=this.type;this.type=a;this.value=b;this.updateContext(c)};a.readToken_dot=function(){var a=this.input.charCodeAt(this.pos+1);if(48<=a&&57>=a)return this.readNumber(!0);var b=this.input.charCodeAt(this.pos+2);if(6<=this.options.ecmaVersion&&46===a&&46===b)return this.pos+=3,this.finishToken(d.types.ellipsis);++this.pos;return this.finishToken(d.types.dot)};a.readToken_slash=function(){var a=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos, +this.readRegexp()):61===a?this.finishOp(d.types.assign,2):this.finishOp(d.types.slash,1)};a.readToken_mult_modulo_exp=function(a){var b=this.input.charCodeAt(this.pos+1),c=1;a=42===a?d.types.star:d.types.modulo;7<=this.options.ecmaVersion&&42===b&&(++c,a=d.types.starstar,b=this.input.charCodeAt(this.pos+2));return 61===b?this.finishOp(d.types.assign,c+1):this.finishOp(a,c)};a.readToken_pipe_amp=function(a){var b=this.input.charCodeAt(this.pos+1);return b===a?this.finishOp(124===a?d.types.logicalOR: +d.types.logicalAND,2):61===b?this.finishOp(d.types.assign,2):this.finishOp(124===a?d.types.bitwiseOR:d.types.bitwiseAND,1)};a.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(d.types.assign,2):this.finishOp(d.types.bitwiseXOR,1)};a.readToken_plus_min=function(a){var b=this.input.charCodeAt(this.pos+1);return b===a?45==b&&62==this.input.charCodeAt(this.pos+2)&&n.lineBreak.test(this.input.slice(this.lastTokEnd,this.pos))?(this.skipLineComment(3),this.skipSpace(), +this.nextToken()):this.finishOp(d.types.incDec,2):61===b?this.finishOp(d.types.assign,2):this.finishOp(d.types.plusMin,1)};a.readToken_lt_gt=function(a){var b=this.input.charCodeAt(this.pos+1),c=1;if(b===a)return c=62===a&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+c)?this.finishOp(d.types.assign,c+1):this.finishOp(d.types.bitShift,c);if(33==b&&60==a&&45==this.input.charCodeAt(this.pos+2)&&45==this.input.charCodeAt(this.pos+3))return this.inModule&&this.unexpected(), +this.skipLineComment(4),this.skipSpace(),this.nextToken();61===b&&(c=2);return this.finishOp(d.types.relational,c)};a.readToken_eq_excl=function(a){var b=this.input.charCodeAt(this.pos+1);return 61===b?this.finishOp(d.types.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===a&&62===b&&6<=this.options.ecmaVersion?(this.pos+=2,this.finishToken(d.types.arrow)):this.finishOp(61===a?d.types.eq:d.types.prefix,1)};a.getTokenFromCode=function(a){switch(a){case 46:return this.readToken_dot();case 40:return++this.pos, +this.finishToken(d.types.parenL);case 41:return++this.pos,this.finishToken(d.types.parenR);case 59:return++this.pos,this.finishToken(d.types.semi);case 44:return++this.pos,this.finishToken(d.types.comma);case 91:return++this.pos,this.finishToken(d.types.bracketL);case 93:return++this.pos,this.finishToken(d.types.bracketR);case 123:return++this.pos,this.finishToken(d.types.braceL);case 125:return++this.pos,this.finishToken(d.types.braceR);case 58:return++this.pos,this.finishToken(d.types.colon);case 63:return++this.pos, +this.finishToken(d.types.question);case 96:if(6>this.options.ecmaVersion)break;++this.pos;return this.finishToken(d.types.backQuote);case 48:a=this.input.charCodeAt(this.pos+1);if(120===a||88===a)return this.readRadixNumber(16);if(6<=this.options.ecmaVersion){if(111===a||79===a)return this.readRadixNumber(8);if(98===a||66===a)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(a);case 47:return this.readToken_slash(); +case 37:case 42:return this.readToken_mult_modulo_exp(a);case 124:case 38:return this.readToken_pipe_amp(a);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(a);case 60:case 62:return this.readToken_lt_gt(a);case 61:case 33:return this.readToken_eq_excl(a);case 126:return this.finishOp(d.types.prefix,1)}this.raise(this.pos,"Unexpected character '"+g(a)+"'")};a.finishOp=function(a,b){var c=this.input.slice(this.pos,this.pos+b);this.pos+=b;return this.finishToken(a, +c)};var p=!!c("\uffff","u");a.readRegexp=function(){for(var a=this,b=void 0,e=void 0,f=this.pos;;){this.pos>=this.input.length&&this.raise(f,"Unterminated regular expression");var g=this.input.charAt(this.pos);n.lineBreak.test(g)&&this.raise(f,"Unterminated regular expression");if(b)b=!1;else{if("["===g)e=!0;else if("]"===g&&e)e=!1;else if("/"===g&&!e)break;b="\\"===g}++this.pos}b=this.input.slice(f,this.pos);++this.pos;e=this.readWord1();g=b;if(e){var h=/^[gim]*$/;6<=this.options.ecmaVersion&&(h= +/^[gimuy]*$/);h.test(e)||this.raise(f,"Invalid regular expression flag");0<=e.indexOf("u")&&!p&&(g=g.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(b,c,d){c=Number("0x"+c);1114111=k?k-48:Infinity;if(k>=a)break;++this.pos;d=d*a+k}return this.pos===c||null!=b&&this.pos-c!==b?null:d};a.readRadixNumber=function(a){this.pos+=2;var c=this.readInt(a);null==c&&this.raise(this.start+2,"Expected number in radix "+a);b.isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");return this.finishToken(d.types.num,c)};a.readNumber=function(a){var c=this.pos,e=!1,f=48===this.input.charCodeAt(this.pos);a|| +null!==this.readInt(10)||this.raise(c,"Invalid number");a=this.input.charCodeAt(this.pos);46===a&&(++this.pos,this.readInt(10),e=!0,a=this.input.charCodeAt(this.pos));if(69===a||101===a)a=this.input.charCodeAt(++this.pos),43!==a&&45!==a||++this.pos,null===this.readInt(10)&&this.raise(c,"Invalid number"),e=!0;b.isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");a=this.input.slice(c,this.pos);var k=void 0;e?k=parseFloat(a):f&&1!==a.length?/[89]/.test(a)|| +this.strict?this.raise(c,"Invalid number"):k=parseInt(a,8):k=parseInt(a,10);return this.finishToken(d.types.num,k)};a.readCodePoint=function(){if(123===this.input.charCodeAt(this.pos)){6>this.options.ecmaVersion&&this.unexpected();var a=++this.pos;var b=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos);++this.pos;1114111=this.input.length&&this.raise(this.start, +"Unterminated string constant");var e=this.input.charCodeAt(this.pos);if(e===a)break;92===e?(b+=this.input.slice(c,this.pos),b+=this.readEscapedChar(!1),c=this.pos):(n.isNewLine(e)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}b+=this.input.slice(c,this.pos++);return this.finishToken(d.types.string,b)};a.readTmplToken=function(){for(var a="",b=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var c=this.input.charCodeAt(this.pos);if(96=== +c||36===c&&123===this.input.charCodeAt(this.pos+1)){if(this.pos===this.start&&this.type===d.types.template){if(36===c)return this.pos+=2,this.finishToken(d.types.dollarBraceL);++this.pos;return this.finishToken(d.types.backQuote)}a+=this.input.slice(b,this.pos);return this.finishToken(d.types.template,a)}if(92===c)a+=this.input.slice(b,this.pos),a+=this.readEscapedChar(!0),b=this.pos;else if(n.isNewLine(c)){a+=this.input.slice(b,this.pos);++this.pos;switch(c){case 13:10===this.input.charCodeAt(this.pos)&& +++this.pos;case 10:a+="\n";break;default:a+=String.fromCharCode(c)}this.options.locations&&(++this.curLine,this.lineStart=this.pos);b=this.pos}else++this.pos}};a.readEscapedChar=function(a){var b=this.input.charCodeAt(++this.pos);++this.pos;switch(b){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return g(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\x0B";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&& +++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(48<=b&&55>=b){var b=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],c=parseInt(b,8);255=f?1:2;else if(92===f)this.containsEsc=!0,a+=this.input.slice(d,this.pos),d=this.pos,117!=this.input.charCodeAt(++this.pos)&&this.raise(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos,f=this.readCodePoint(),(c?b.isIdentifierStart:b.isIdentifierChar)(f,e)||this.raise(d, +"Invalid Unicode escape"),a+=g(f),d=this.pos;else break;c=!1}return a+this.input.slice(d,this.pos)};a.readWord=function(){var a=this.readWord1(),b=d.types.name;(6<=this.options.ecmaVersion||!this.containsEsc)&&this.keywords.test(a)&&(b=d.keywords[a]);return this.finishToken(b,a)}},{"./identifier":2,"./locutil":5,"./state":10,"./tokentype":14,"./whitespace":16}],14:[function(a,l,f){function c(a,c){return new b(a,{beforeExpr:!0,binop:c})}function g(a){var c=1>=arguments.length||void 0===arguments[1]? +{}:arguments[1];c.keyword=a;h[a]=d["_"+a]=new b(a,c)}f.__esModule=!0;var b=function e(a){var b=1>=arguments.length||void 0===arguments[1]?{}:arguments[1];if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");this.label=a;this.keyword=b.keyword;this.beforeExpr=!!b.beforeExpr;this.startsExpr=!!b.startsExpr;this.isLoop=!!b.isLoop;this.isAssign=!!b.isAssign;this.prefix=!!b.prefix;this.postfix=!!b.postfix;this.binop=b.binop||null;this.updateContext=null};f.TokenType=b;a={beforeExpr:!0}; +l={startsExpr:!0};var d={num:new b("num",l),regexp:new b("regexp",l),string:new b("string",l),name:new b("name",l),eof:new b("eof"),bracketL:new b("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new b("]"),braceL:new b("{",{beforeExpr:!0,startsExpr:!0}),braceR:new b("}"),parenL:new b("(",{beforeExpr:!0,startsExpr:!0}),parenR:new b(")"),comma:new b(",",a),semi:new b(";",a),colon:new b(":",a),dot:new b("."),question:new b("?",a),arrow:new b("=>",a),template:new b("template"),ellipsis:new b("...",a),backQuote:new b("`", +l),dollarBraceL:new b("${",{beforeExpr:!0,startsExpr:!0}),eq:new b("=",{beforeExpr:!0,isAssign:!0}),assign:new b("_=",{beforeExpr:!0,isAssign:!0}),incDec:new b("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new b("prefix",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:c("||",1),logicalAND:c("&&",2),bitwiseOR:c("|",3),bitwiseXOR:c("^",4),bitwiseAND:c("&",5),equality:c("==/!=",6),relational:c("",7),bitShift:c("<>",8),plusMin:new b("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}), +modulo:c("%",10),star:c("*",10),slash:c("/",10),starstar:new b("**",{beforeExpr:!0})};f.types=d;var h={};f.keywords=h;g("break");g("case",a);g("catch");g("continue");g("debugger");g("default",a);g("do",{isLoop:!0,beforeExpr:!0});g("else",a);g("finally");g("for",{isLoop:!0});g("function",l);g("if");g("return",a);g("switch");g("throw",a);g("try");g("var");g("const");g("while",{isLoop:!0});g("with");g("new",{beforeExpr:!0,startsExpr:!0});g("this",l);g("super",l);g("class");g("extends",a);g("export"); +g("import");g("null",l);g("true",l);g("false",l);g("in",{beforeExpr:!0,binop:7});g("instanceof",{beforeExpr:!0,binop:7});g("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0});g("void",{beforeExpr:!0,prefix:!0,startsExpr:!0});g("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},{}],15:[function(a,l,f){f.__esModule=!0;f.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)};f.has=function(a,f){return Object.prototype.hasOwnProperty.call(a,f)}},{}],16:[function(a,l,f){f.__esModule= +!0;f.isNewLine=function(a){return 10===a||13===a||8232===a||8233==a};a=/\r\n?|\n|\u2028|\u2029/;f.lineBreak=a;f.lineBreakG=new RegExp(a.source,"g");f.nonASCIIwhitespace=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/;f.skipWhiteSpace=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g},{}]},{},[3])(3)}); +var UPNG = {}; + + + +UPNG.toRGBA8 = function(out) +{ + var w = out.width, h = out.height; + if(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer]; + + var frms = []; + if(out.frames[0].data==null) out.frames[0].data = out.data; + + var len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len); + for(var i=0; i>3)]>>(7-((i&7)<<0)))& 1), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>2)]>>(6-((i&3)<<1)))& 3), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>1)]>>(4-((i&1)<<2)))&15), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>>3)]>>>(7 -((x&7) )))& 1), al=(gr==tr*255)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 2) for(var x=0; x>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 4) for(var x=0; x>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 8) for(var x=0; x>>2<<5);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7); +var D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3; +w+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257; +h=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0; +cj)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d; +d=l(b.u,(1<>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254; +if(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15); +d+=Y&15;while(w>>4; +if(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3); +n+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I>>1; +while(An)n=M;A++}while(A>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8}; +H.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)}; +H.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array; +return{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}(); +(function(){var N=H.H.m,W=1<<15;for(var R=0;R>>1|(V&1431655765)<<1; +V=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8; +N.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R]; +N.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9); +H.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0); +n(N.D,30,0);n(N.v,320,0)}());return H.H.N}() + + +UPNG.decode._readInterlace = function(data, out) +{ + var w = out.width, h = out.height; + var bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8); + var img = new Uint8Array( h * bpl ); + var di = 0; + + var starting_row = [ 0, 0, 4, 0, 2, 0, 1 ]; + var starting_col = [ 0, 4, 0, 2, 0, 1, 0 ]; + var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ]; + var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ]; + + var pass=0; + while(pass<7) + { + var ri = row_increment[pass], ci = col_increment[pass]; + var sw = 0, sh = 0; + var cr = starting_row[pass]; while(cr>3]; val = (val>>(7-(cdi&7)))&1; + img[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0))); + } + if(bpp==2) { + var val = data[cdi>>3]; val = (val>>(6-(cdi&7)))&3; + img[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1))); + } + if(bpp==4) { + var val = data[cdi>>3]; val = (val>>(4-(cdi&7)))&15; + img[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2))); + } + if(bpp>=8) { + var ii = row*bpl+col*cbpp; + for(var j=0; j>3)+j]; + } + cdi+=bpp; col+=ci; + } + y++; row += ri; + } + if(sw*sh!=0) di += sh * (1 + bpll); + pass = pass + 1; + } + return img; +} + +UPNG.decode._getBPP = function(out) { + var noc = [1,null,3,1,2,null,4][out.ctype]; + return noc * out.depth; +} + +UPNG.decode._filterZero = function(data, out, off, w, h) +{ + var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth; + bpp = Math.ceil(bpp/8); + + var i=0, di=1, type=data[off], x=0; + + if(type>1) data[off]=[0,0,1][type-2]; + if(type==3) for(x=bpp; x>>1) )&255; + + for(var y=0; y>>1)); + for(; x>>1) ); } + else { for(; x>8)&255; buff[p+1] = n&255; }, + readUint : function(buff,p) { return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]); }, + writeUint : function(buff,p,n){ buff[p]=(n>>24)&255; buff[p+1]=(n>>16)&255; buff[p+2]=(n>>8)&255; buff[p+3]=n&255; }, + readASCII : function(buff,p,l){ var s = ""; for(var i=0; i=0 && yoff>=0) { si = (y*sw+x)<<2; ti = (( yoff+y)*tw+xoff+x)<<2; } + else { si = ((-yoff+y)*sw-xoff+x)<<2; ti = (y*tw+x)<<2; } + + if (mode==0) { tb[ti] = sb[si]; tb[ti+1] = sb[si+1]; tb[ti+2] = sb[si+2]; tb[ti+3] = sb[si+3]; } + else if(mode==1) { + var fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; + var ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; + + var ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa); + tb[ti+3] = 255*oa; + tb[ti+0] = (fr+br*ifa)*ioa; + tb[ti+1] = (fg+bg*ifa)*ioa; + tb[ti+2] = (fb+bb*ifa)*ioa; + } + else if(mode==2){ // copy only differences, otherwise zero + var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; + var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; + if(fa==ba && fr==br && fg==bg && fb==bb) { tb[ti]=0; tb[ti+1]=0; tb[ti+2]=0; tb[ti+3]=0; } + else { tb[ti]=fr; tb[ti+1]=fg; tb[ti+2]=fb; tb[ti+3]=fa; } + } + else if(mode==3){ // check if can be blended + var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; + var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; + if(fa==ba && fr==br && fg==bg && fb==bb) continue; + //if(fa!=255 && ba!=0) return false; + if(fa<220 && ba>20) return false; + } + } + return true; +} + + +UPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte) +{ + if(ps==null) ps=0; + if(forbidPlte==null) forbidPlte = false; + + var nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]); + UPNG.encode.compressPNG(nimg, -1); + + return UPNG.encode._main(nimg, w, h, dels, tabs); +} + +UPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) { + var nimg = { ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4), depth: depth, frames: [] }; + + var time = Date.now(); + var bipp = (cc+ac)*depth, bipl = bipp * w; + for(var i=0; i1, pltAlpha = false; + + var leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0); + if(tabs["sRGB"]!=null) leng += 8+1+4; + if(tabs["pHYs"]!=null) leng += 8+9+4; + if(nimg.ctype==3) { + var dl = nimg.plte.length; + for(var i=0; i>>24)!=255) pltAlpha = true; + leng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0); + } + for(var j=0; j>>8)&255, b=(c>>>16)&255; + data[offset+ti+0]=r; data[offset+ti+1]=g; data[offset+ti+2]=b; + } + offset+=dl*3; + wUi(data,offset,crc(data,offset-dl*3-4,dl*3+4)); offset+=4; // crc + + if(pltAlpha) { + wUi(data,offset, dl); offset+=4; + wAs(data,offset,"tRNS"); offset+=4; + for(var i=0; i>>24)&255; + offset+=dl; + wUi(data,offset,crc(data,offset-dl-4,dl+4)); offset+=4; // crc + } + } + + var fi = 0; + for(var j=0; j>2, bln>>2)); + for(var j=0; jnw && c==img32[i-nw]) ind[i]=ind[i-nw]; + else { + var cmc = cmap[c]; + if(cmc==null) { cmap[c]=cmc=plte.length; plte.push(c); if(plte.length>=300) break; } + ind[i]=cmc; + } + } + } + //console.log("make palette", Date.now()-time); time = Date.now(); + } + + var cc=plte.length; //console.log("colors:",cc); + if(cc<=256 && forbidPlte==false) { + if(cc<= 2) depth=1; else if(cc<= 4) depth=2; else if(cc<=16) depth=4; else depth=8; + depth = Math.max(depth, minBits); + } + + for(var j=0; j>1)] |= (inj[ii+x]<<(4-(x&1)*4)); + else if(depth==2) for(var x=0; x>2)] |= (inj[ii+x]<<(6-(x&3)*2)); + else if(depth==1) for(var x=0; x>3)] |= (inj[ii+x]<<(7-(x&7)*1)); + } + cimg=nimg; ctype=3; bpp=1; + } + else if(gotAlpha==false && frms.length==1) { // some next "reduced" frames may contain alpha for blending + var nimg = new Uint8Array(nw*nh*3), area=nw*nh; + for(var i=0; i palette indices", Date.now()-time); time = Date.now(); + + return {ctype:ctype, depth:depth, plte:plte, frames:frms }; +} +UPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) { + /* DISPOSE + - 0 : no change + - 1 : clear to transparent + - 2 : retstore to content before rendering (previous frame disposed) + BLEND + - 0 : replace + - 1 : blend + */ + var frms = []; + for(var j=0; jmax) max=x; + if(ymay) may=y; + } + } + if(max==-1) mix=miy=max=may=0; + if(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; } + var sarea = (max-mix+1)*(may-miy+1); + if(sareamax) max=cx; + if(cymay) may=cy; + } + } + if(max==-1) mix=miy=max=may=0; + if(evenCrd) { if((mix&1)==1)mix--; if((miy&1)==1)miy--; } + r = {x:mix, y:miy, width:max-mix+1, height:may-miy+1}; + + var fr = frms[i]; fr.rect = r; fr.blend = 1; fr.img = new Uint8Array(r.width*r.height*4); + if(frms[i-1].dispose==0) { + UPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0); + UPNG.encode._prepareDiff(cimg,w,h,fr.img,r); + //UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2); + } + else + UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0); +} +UPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) { + UPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2); + /* + var n32 = new Uint32Array(nimg.buffer); + var og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer); + UPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0); + for(var i=4; i>>2]==o32[(i>>>2)-1]) { + n32[i>>>2]=o32[i>>>2]; + //var j = i, c=p32[(i>>>2)-1]; + //while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; } + } + } + for(var i=nimg.length-8; i>0; i-=4) { + if(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) { + n32[i>>>2]=o32[i>>>2]; + //var j = i, c=p32[(i>>>2)-1]; + //while(p32[j>>>2]==c) { n32[j>>>2]=c; j+=4; } + } + }*/ +} + +UPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero) +{ + var fls = [], ftry=[0,1,2,3,4]; + if (filter!=-1) ftry=[filter]; + else if(h*bpl>500000 || bpp==1) ftry=[0]; + var opts; if(levelZero) opts={level:0}; + + + var CMPR = (data.length>10e6 && UZIP!=null) ? UZIP : pako; + + var time = Date.now(); + for(var i=0; i>1) +256)&255; + if(type==4) for(var x=bpp; x>1))&255; + for(var x=bpp; x>1))&255; } + if(type==4) { for(var x= 0; x>> 1); + else c = c >>> 1; + } + tab[n] = c; } + return tab; })(), + update : function(c, buf, off, len) { + for (var i=0; i>> 8); + return c; + }, + crc : function(b,o,l) { return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; } +} + + +UPNG.quantize = function(abuf, ps) +{ + var oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer); + + var KD = UPNG.quantize.getKDtree(nimg, ps); + var root = KD[0], leafs = KD[1]; + + var planeDst = UPNG.quantize.planeDst; + var sb = oimg, tb = nimg32, len=sb.length; + + var inds = new Uint8Array(oimg.length>>2), nd; + if(oimg.length<20e6) // precise, but slow :( + for(var i=0; i>2] = nd.ind; tb[i>>2] = nd.est.rgba; + } + else + for(var i=0; i>2] = nd.ind; tb[i>>2] = nd.est.rgba; + } + return { abuf:nimg.buffer, inds:inds, plte:leafs }; +} + +UPNG.quantize.getKDtree = function(nimg, ps, err) { + if(err==null) err = 0.0001; + var nimg32 = new Uint32Array(nimg.buffer); + + var root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null }; // basic statistic, extra statistic + root.bst = UPNG.quantize.stats( nimg,root.i0, root.i1 ); root.est = UPNG.quantize.estats( root.bst ); + var leafs = [root]; + + while(leafs.length maxL) { maxL=leafs[i].est.L; mi=i; } + if(maxL=s0 || node.i1<=s0); + //console.log(maxL, leafs.length, mi); + if(s0wrong) { node.est.L=0; continue; } + + + var ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null }; ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 ); + ln.est = UPNG.quantize.estats( ln.bst ); + var rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null }; rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N}; + for(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i]; + for(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i]; + rn.est = UPNG.quantize.estats( rn.bst ); + + node.left = ln; node.right = rn; + leafs[mi]=ln; leafs.push(rn); + } + leafs.sort(function(a,b) { return b.bst.N-a.bst.N; }); + for(var i=0; i0) { node0=nd.right; node1=nd.left; } + + var ln = UPNG.quantize.getNearest(node0, r,g,b,a); + if(ln.tdst<=planeDst*planeDst) return ln; + var rn = UPNG.quantize.getNearest(node1, r,g,b,a); + return rn.tdst eMq) i1-=4; + if(i0>=i1) break; + + var t = nimg32[i0>>2]; nimg32[i0>>2] = nimg32[i1>>2]; nimg32[i1>>2]=t; + + i0+=4; i1-=4; + } + while(vecDot(nimg, i0, e)>eMq) i0-=4; + return i0+4; +} +UPNG.quantize.vecDot = function(nimg, i, e) +{ + return nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3]; +} +UPNG.quantize.stats = function(nimg, i0, i1){ + var R = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]; + var m = [0,0,0,0]; + var N = (i1-i0)>>2; + for(var i=i0; i>>0) }; +} +UPNG.M4 = { + multVec : function(m,v) { + return [ + m[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3], + m[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3], + m[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3], + m[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3] + ]; + }, + dot : function(x,y) { return x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]; }, + sml : function(a,y) { return [a*y[0],a*y[1],a*y[2],a*y[3]]; } +} + +UPNG.encode.concatRGBA = function(bufs) { + var tlen = 0; + for(var i=0; il)M.push(6/7*W+1/7*l,5/7*W+2/7*l,4/7*W+3/7*l,3/7*W+4/7*l,2/7*W+5/7*l,1/7*W+6/7*l); +else M.push(4/5*W+1/5*l,3/5*W+2/5*l,2/5*W+3/5*l,1/5*W+4/5*l,0,255);return M}function T(W,l,M,F,t){var K=Q(W[l],W[l+1]); +M.W+=16;for(var $=0;$<64;$+=4){var I=a2(W,M,3);F[$+t]=K[I]}}function u(W,l,M,F,t){var K={W:l*8},$=new Uint8Array(4*4*4); +$.fill(255);for(var I=0;I>8;F[t+2]=S>>16;t+=3}c(F,t,K);t+=8}return t}var E=new Uint8Array(16); +function D(W,l,M){var F=W[l+1]<<8|W[l],t=W[l+3]<<8|W[l+2],K=(F&31)*(255/31),$=(F>>>5&31)*(255/31),I=(F>>10)*(255/31),O=(t&31)*(255/31),C=(t>>>5&63)*(255/63),j=(t>>11)*(255/31),b=E; +b[0]=~~I;b[1]=~~$;b[2]=~~K;b[3]=255;b[12]=~~j;b[13]=~~C;b[14]=~~O;b[15]=255;var h=2/3,_=1-h;b[4]=~~(h*I+_*j); +b[5]=~~(h*$+_*C);b[6]=~~(h*K+_*O);b[7]=255;h=1/3;_=1-h;b[8]=~~(h*I+_*j);b[9]=~~(h*$+_*C);b[10]=~~(h*K+_*O); +b[11]=255;z(W,M,b,l)}function Y(W,l,M){var F=W[l+1]<<8|W[l],t=W[l+3]<<8|W[l+2],K=(F&31)*(255/31),$=(F>>>5&63)*(255/63),I=(F>>11)*(255/31),O=(t&31)*(255/31),C=(t>>>5&63)*(255/63),j=(t>>11)*(255/31),b=E; +b[0]=~~I;b[1]=~~$;b[2]=~~K;b[3]=255;b[4]=~~j;b[5]=~~C;b[6]=~~O;b[7]=255;if(t>8],$=M[(t>>8)+1],I=M[(t>>8)+2],O=M[t&255],C=M[(t&255)+1],j=M[(t&255)+2],b=K>>3<<11|$>>2<<5|I>>3,h=O>>3<<11|C>>2<<5|j>>3; +if(b>>5&63)*(255/63)),K=Math.floor((b>>11)*(255/31)),j=Math.floor((h&31)*(255/31)),C=Math.floor((h>>>5&63)*(255/63)),O=Math.floor((h>>11)*(255/31)); +W[l+0]=b&255;W[l+1]=b>>8;W[l+2]=h&255;W[l+3]=h>>8;var S=2/3,J=1-S,v=Math.floor(S*K+J*O),V=Math.floor(S*$+J*C),p=Math.floor(S*I+J*j); +S=1/3;J=1-S;var w=Math.floor(S*K+J*O),a5=Math.floor(S*$+J*C),y=Math.floor(S*I+J*j),m=l*8+32;for(var i=0; +i<64;i+=4){var f=M[i],H=M[i+1],an=M[i+2],a9=F(f,H,an,K,$,I),a8=F(f,H,an,O,C,j),o=F(f,H,an,v,V,p),R=F(f,H,an,w,a5,y),al=Math.min(a9,Math.min(a8,Math.min(o,R))),g=0; +if(al==a8)g=1;else if(al==o)g=2;else if(al==R)g=3;W[m>>3]|=g<<(m&7);m+=2}}function z(W,l,M,F){var t=F+4<<3; +for(var K=0;K<64;K+=4){var $=W[t>>3]>>(t&7)&3;t+=2;$=$<<2;l[K]=M[$];l[K+1]=M[$+1];l[K+2]=M[$+2];l[K+3]=M[$+3]}}function r(W,l,M,F,t,K){for(var $=0; +$<4;$++){var I=(t+$)*l+F<<2,O=$<<4;K[O+0]=W[I+0];K[O+1]=W[I+1];K[O+2]=W[I+2];K[O+3]=W[I+3];K[O+4]=W[I+4]; +K[O+5]=W[I+5];K[O+6]=W[I+6];K[O+7]=W[I+7];K[O+8]=W[I+8];K[O+9]=W[I+9];K[O+10]=W[I+10];K[O+11]=W[I+11]; +K[O+12]=W[I+12];K[O+13]=W[I+13];K[O+14]=W[I+14];K[O+15]=W[I+15]}}function n(W,l,M,F,t,K){for(var $=0; +$<4;$++){var I=(t+$)*l+F<<2,O=$<<4;W[I+0]=K[O+0];W[I+1]=K[O+1];W[I+2]=K[O+2];W[I+3]=K[O+3];W[I+4]=K[O+4]; +W[I+5]=K[O+5];W[I+6]=K[O+6];W[I+7]=K[O+7];W[I+8]=K[O+8];W[I+9]=K[O+9];W[I+10]=K[O+10];W[I+11]=K[O+11]; +W[I+12]=K[O+12];W[I+13]=K[O+13];W[I+14]=K[O+14];W[I+15]=K[O+15]}}var d="0011001100110011 0001000100010001 0111011101110111 0001001100110111 0000000100010011 0011011101111111 0001001101111111 0000000100110111 0000000000010011 0011011111111111 0000000101111111 0000000000010111 0001011111111111 0000000011111111 0000111111111111 0000000000001111 0000100011101111 0111000100000000 0000000010001110 0111001100010000 0011000100000000 0000100011001110 0000000010001100 0111001100110001 0011000100010000 0000100010001100 0110011001100110 0011011001101100 0001011111101000 0000111111110000 0111000110001110 0011100110011100 0101010101010101 0000111100001111 0101101001011010 0011001111001100 0011110000111100 0101010110101010 0110100101101001 0101101010100101 0111001111001110 0001001111001000 0011001001001100 0011101111011100 0110100110010110 0011110011000011 0110011010011001 0000011001100000 0100111001000000 0010011100100000 0000001001110010 0000010011100100 0110110010010011 0011011011001001 0110001110011100 0011100111000110 0110110011001001 0110001100111001 0111111010000001 0001100011100111 0000111100110011 0011001111110000 0010001011101110 0100010001110111".split(" "),q="0011001102212222 0001001122112221 0000200122112211 0222002200110111 0000000011221122 0011001100220022 0022002211111111 0011001122112211 0000000011112222 0000111111112222 0000111122222222 0012001200120012 0112011201120112 0122012201220122 0011011211221222 0011200122002220 0001001101121122 0111001120012200 0000112211221122 0022002200221111 0111011102220222 0001000122212221 0000001101220122 0000110022102210 0122012200110000 0012001211222222 0110122112210110 0000011012211221 0022110211020022 0110011020022222 0011012201220011 0000200022112221 0000000211221222 0222002200120011 0011001200220222 0120012001200120 0000111122220000 0120120120120120 0120201212010120 0011220011220011 0011112222000011 0101010122222222 0000000021212121 0022112200221122 0022001100220011 0220122102201221 0101222222220101 0000212121212121 0101010101012222 0222011102220111 0002111200021112 0000211221122112 0222011101110222 0002111211120002 0110011001102222 0000000021122112 0110011022222222 0022001100110022 0022112211220022 0000000000002112 0002000100020001 0222122202221222 0101222222222222 0111201122012220".split(" "),Z=[[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,2,0],[0,8,0],[0,2,0],[0,2,0],[0,8,0],[0,8,0],[0,15,0],[0,2,0],[0,8,0],[0,2,0],[0,2,0],[0,8,0],[0,8,0],[0,2,0],[0,2,0],[0,15,0],[0,15,0],[0,6,0],[0,8,0],[0,2,0],[0,8,0],[0,15,0],[0,15,0],[0,2,0],[0,8,0],[0,2,0],[0,2,0],[0,2,0],[0,15,0],[0,15,0],[0,6,0],[0,6,0],[0,2,0],[0,6,0],[0,8,0],[0,15,0],[0,15,0],[0,2,0],[0,2,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,2,0],[0,2,0],[0,15,0]],ae=[[0,3,15],[0,3,8],[0,15,8],[0,15,3],[0,8,15],[0,3,15],[0,15,3],[0,15,8],[0,8,15],[0,8,15],[0,6,15],[0,6,15],[0,6,15],[0,5,15],[0,3,15],[0,3,8],[0,3,15],[0,3,8],[0,8,15],[0,15,3],[0,3,15],[0,3,8],[0,6,15],[0,10,8],[0,5,3],[0,8,15],[0,8,6],[0,6,10],[0,8,15],[0,5,15],[0,15,10],[0,15,8],[0,8,15],[0,15,3],[0,3,15],[0,5,10],[0,6,10],[0,10,8],[0,8,9],[0,15,10],[0,15,6],[0,3,15],[0,15,8],[0,5,15],[0,15,3],[0,15,6],[0,15,6],[0,15,8],[0,3,15],[0,15,3],[0,5,15],[0,5,15],[0,5,15],[0,8,15],[0,5,15],[0,10,15],[0,5,15],[0,10,15],[0,8,15],[0,13,15],[0,15,3],[0,12,15],[0,3,15],[0,3,8]]; +function P(W,l,M,F,t){var K=a2,$={W:0},I=new Uint8Array(4*4*4),O=[null,null,[0,21,43,64],[0,9,18,27,37,46,55,64],[0,4,9,13,17,21,26,30,34,38,43,47,51,55,60,64]],C=[null,null,d,q],j=[null,null,Z,ae]; +for(var b=0;b>_&1)!=1)_++;$.W=(l<<3)+_+1; +var S=_==4||_==5?K(W,$,2):0,J=_==4?K(W,$,1):0,v=[4,6,6,6,0,0,0,6][_],V=K(W,$,v),p=[4,6,5,7,5,7,7,5][_],w=[0,0,0,0,6,8,7,5][_],a5=[1,1,0,1,0,0,1,1][_],y=[6,4,6,4,2,2,2,4][_],m=[]; +for(var i=0;i<4;i++){var f=i==3?w:p;for(var H=0;H>2)-48,a0=g[x]==i>>2?1:0,a4=K(W,$,o-a0),s=ak[a4]/64,a7=(1-s)*m[0*y+2*x+0]+s*m[0*y+2*x+1],ad=(1-s)*m[1*y+2*x+0]+s*m[1*y+2*x+1],ag=(1-s)*m[2*y+2*x+0]+s*m[2*y+2*x+1],a1=(1-s)*m[3*y+2*x+0]+s*m[3*y+2*x+1]; +I[i]=a7*255;I[i+1]=ad*255;I[i+2]=ag*255;I[i+3]=a1*255}ak=O[R];$.W=ac;if(R!=0)for(var i=0;i<64;i+=4){var x=al.charCodeAt(i>>2)-48,a0=g[x]==i>>2?1:0,a4=K(W,$,R-a0),s=ak[a4]/64,a1=(1-s)*m[3*y+2*x+0]+s*m[3*y+2*x+1]; +I[i+3]=a1*255}ai(I,S);n(M,F,t,h,b,I);l+=16}return l}function ai(W,l){if(l==0)return;for(var M=0;M<64; +M+=4){var F=W[M],t=W[M+1],K=W[M+2],$=W[M+3];if(l==1){var I=$;$=F;F=I}if(l==2){var I=$;$=t;t=I}if(l==3){var I=$; +$=K;K=I}W[M]=F;W[M+1]=t;W[M+2]=K;W[M+3]=$}}function a2(W,l,M){var F=0,t=M;while(M!=0){F=F|X(W,l)<>3]>>(M&7)&1}function e(W,l,M){var F=l>>1,t=M>>1,K=new Uint8Array(F*t*4); +for(var $=0;$>2,p=V==0?0:.25/V; +K[O]=~~(h*p+.5);K[O+1]=~~(_*p+.5);K[O+2]=~~(S*p+.5);K[O+3]=V}return K}function A(W,l,M,F,t,K){return(W-F)*(W-F)+(l-t)*(l-t)+(M-K)*(M-K)}function af(W){var l=A,M=0,F=0; +for(var t=0;t<64;t+=4){var K=W[t],$=W[t+1],I=W[t+2];for(var O=t+4;O<64;O+=4){var C=l(K,$,I,W[O],W[O+1],W[O+2]); +if(C>F){F=C;M=t<<8|O}}}return M}var aj=new ArrayBuffer(4),N=new Uint8Array(aj),ab=new Uint32Array(aj),am=new Uint16Array(aj),a3={Y:function(W,l){N[0]=W[l+0]; +N[1]=W[l+1];return am[0]},T:function(W,l){N[0]=W[l+0];N[1]=W[l+1];N[2]=W[l+2];N[3]=W[l+3];return ab[0]},G:function(W,l,M){ab[0]=M; +W[l+0]=N[0];W[l+1]=N[1];W[l+2]=N[2];W[l+3]=N[3]},t:function(W,l,M){var F="";for(var t=0;t>1)+1]<<8|a[E+(t>>1)];A[t+0]=(K&af)*N; +A[t+1]=(K&ab)*am;A[t+2]=(K&W)*l;A[t+3]=(K&M)*F}E+=e>>>1}else throw"unknown bit count "+Z}else if(c.u&L.i||c.u&L.Q||c.u&L.$){if(Z==8){for(var t=0; +t>2)];E+=e>>>2}else throw"unknown bit count "+Z}else{console.log("unknown texture format, head flags: ",Y.u.toString(2),"pixelFormat flags: ",c.u.toString(2)); +throw"e"}d.push({width:r,height:n,image:A.buffer});r=r>>>1;n=n>>>1}return d}function aa(G,a,E){var G=new Uint8Array(G),D=255,r=0,n=0; +for(var Y=3;Y>1;E=E>>1;n++}z[28]=n;return z.buffer.slice(0,r)}function k(G,a){var E={},D=UTEX.X.T;a+=4;E.u=D(G,a); +a+=4;E.height=D(G,a);a+=4;E.width=D(G,a);a+=4;E.pitch=D(G,a);a+=4;E.depth=D(G,a);a+=4;E.c=D(G,a);a+=4; +a+=11*4;E.Z=Q(G,a);a+=32;E.v=D(G,a);a+=4;E.g=D(G,a);a+=4;E.a3=D(G,a);a+=4;E.a8=D(G,a);a+=4;a+=4;return E}function B(G,a,E,D,Y){var c=UTEX.X.G,z=L.r|L.D|L.h|L.S; +z|=L._|L.N;var r=L.B|L.z|L.A,n=(a*E>>1)*(D?2:1),d=D?1:0;c(G,Y,124);Y+=4;c(G,Y,z);Y+=4;c(G,Y,E);Y+=4; +c(G,Y,a);Y+=4;c(G,Y,n);Y+=4;c(G,Y,d);Y+=4;c(G,Y,10);Y+=4;Y+=11*4;T(G,D,Y);Y+=32;c(G,Y,r);Y+=4;Y+=4*4}function Q(G,a){var E={},D=UTEX.X.T; +a+=4;E.u=D(G,a);a+=4;E.f=UTEX.X.t(G,a,4);a+=4;E.w=D(G,a);a+=4;E.l=D(G,a);a+=4;E.j=D(G,a);a+=4;E.H=D(G,a); +a+=4;E.m=D(G,a);a+=4;return E}function T(G,a,E){var D=UTEX.X.G,Y=L.a;D(G,E,32);E+=4;D(G,E,Y);E+=4;UTEX.X.b(G,E,a?"DXT5":"DXT1"); +E+=4;E+=5*4}function u(G,a){var E={},D=UTEX.X.T;E.V=D(G,a);a+=4;E.a4=D(G,a);a+=4;E.a6=D(G,a);a+=4;E.a1=D(G,a); +a+=4;E.a0=D(G,a);a+=4;return E}return{encode:aa,decode:a6}}();UTEX.VTF=function(){var L={};function a6(k){var B=new Uint8Array(k),Q=0,T={}; +Q=aa(B,Q,T);var u=T.F,G=T.d;if(u*G!=0){var a=new Uint8Array(u*G*4);Q=UTEX.R(B,Q,a,u,G)}var E=T.s,D=T.p,Y=[]; +for(var c=0;c>>D-1-c,r=T.height>>>D-1-c;for(var n=0;n=2){Q.depth=u(k,B);B+=2;if(E>=3){B+=3;Q.a5=T(k,B);B+=4}}return D}return{decode:a6}}();(function(){var _={};if(typeof module=="object"){module.exports=_}else{self.UTIF=_}var b5=typeof require==="function"?require("pako"):self.pako; +function av(){if(typeof process=="undefined"||process.env.NODE_ENV=="development")console.log.apply(console,arguments)}(function(_,b5){(function(){"use strict"; +var M=function Y(){function M($){this.message="JPEG error: "+$}M.prototype=new Error;M.prototype.name="JpegError"; +M.constructor=M;return M}(),t=function h(){var $=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),R=4017,Q=799,l=3406,e=2276,b=1567,C=3784,T=5793,i=2896; +function t(E){if(E==null)E={};if(E.w==null)E.w=-1;this.V=E.n;this.N=E.w}function z(E,q){var N=0,H=[],n,j,X=16,u; +while(X>0&&!E[X-1]){X--}H.push({children:[],index:0});var d=H[0];for(n=0;n0){d=H.pop()}d.index++;H.push(d);while(H.length<=n){H.push(u={children:[],index:0}); +d.children[d.index]=u.children;d=u}N++}if(n+10){U--;return S>>U&1}S=E[q++]; +if(S===255){var aB=E[q++];if(aB){if(aB===220&&Z){q+=2;var aC=c(E,q);q+=2;if(aC>0&&aC!==N.s){throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",aC)}}else if(aB===217){if(Z){var aO=J*8; +if(aO>0&&aO>>7}function aa(aB){var aC=aB;while(!0){aC=aC[a()];switch(typeof aC){case"number":return aC; +case"object":continue}throw new M("invalid huffman sequence")}}function ap(aB){var ab=0;while(aB>0){ab=ab<<1|a(); +aB--}return ab}function w(aB){if(aB===1){return a()===1?1:-1}var ab=ap(aB);if(ab>=1<>4;if(a_===0){if(as<15){break}m+=16;continue}m+=as; +var ar=$[m];p.D[aB+ar]=w(a_);m++}}function aI(p,aB){var aC=aa(p.J),aO=aC===0?0:w(aC)<0){r--; +return}var m=j,aC=X;while(m<=aC){var aO=aa(p.i),a9=aO&15,a_=aO>>4;if(a9===0){if(a_<15){r=ap(a_)+(1<>4;if(a9===0){if(aO<15){r=ap(aO)+(1<0){for(v=0;v0?"unexpected":"excessive";q=aF.offset}if(aF.M>=65488&&aF.M<=65495){q+=2}else{break}}return q-W}function K(E,q,N){var H=E.$,n=E.D,j,X,u,d,Z,B,k,W,S,U,r,L,az,J,p,aH,v; +if(!H){throw new M("missing required Quantization Table.")}for(var x=0;x<64;x+=8){S=n[q+x];U=n[q+x+1]; +r=n[q+x+2];L=n[q+x+3];az=n[q+x+4];J=n[q+x+5];p=n[q+x+6];aH=n[q+x+7];S*=H[x];if((U|r|L|az|J|p|aH)===0){v=T*S+512>>10; +N[x]=v;N[x+1]=v;N[x+2]=v;N[x+3]=v;N[x+4]=v;N[x+5]=v;N[x+6]=v;N[x+7]=v;continue}U*=H[x+1];r*=H[x+2];L*=H[x+3]; +az*=H[x+4];J*=H[x+5];p*=H[x+6];aH*=H[x+7];j=T*S+128>>8;X=T*az+128>>8;u=r;d=p;Z=i*(U-aH)+128>>8;W=i*(U+aH)+128>>8; +B=L<<4;k=J<<4;j=j+X+1>>1;X=j-X;v=u*C+d*b+128>>8;u=u*b-d*C+128>>8;d=v;Z=Z+k+1>>1;k=Z-k;W=W+B+1>>1;B=W-B; +j=j+d+1>>1;d=j-d;X=X+u+1>>1;u=X-u;v=Z*e+W*l+2048>>12;Z=Z*l-W*e+2048>>12;W=v;v=B*Q+k*R+2048>>12;B=B*R-k*Q+2048>>12; +k=v;N[x]=j+W;N[x+7]=j-W;N[x+1]=X+k;N[x+6]=X-k;N[x+2]=u+B;N[x+5]=u-B;N[x+3]=d+Z;N[x+4]=d-Z}for(var m=0; +m<8;++m){S=N[m];U=N[m+8];r=N[m+16];L=N[m+24];az=N[m+32];J=N[m+40];p=N[m+48];aH=N[m+56];if((U|r|L|az|J|p|aH)===0){v=T*S+8192>>14; +if(v<-2040){v=0}else if(v>=2024){v=255}else{v=v+2056>>4}n[q+m]=v;n[q+m+8]=v;n[q+m+16]=v;n[q+m+24]=v; +n[q+m+32]=v;n[q+m+40]=v;n[q+m+48]=v;n[q+m+56]=v;continue}j=T*S+2048>>12;X=T*az+2048>>12;u=r;d=p;Z=i*(U-aH)+2048>>12; +W=i*(U+aH)+2048>>12;B=L;k=J;j=(j+X+1>>1)+4112;X=j-X;v=u*C+d*b+2048>>12;u=u*b-d*C+2048>>12;d=v;Z=Z+k+1>>1; +k=Z-k;W=W+B+1>>1;B=W-B;j=j+d+1>>1;d=j-d;X=X+u+1>>1;u=X-u;v=Z*e+W*l+2048>>12;Z=Z*l-W*e+2048>>12;W=v;v=B*Q+k*R+2048>>12; +B=B*R-k*Q+2048>>12;k=v;S=j+W;aH=j-W;U=X+k;p=X-k;r=u+B;J=u-B;L=d+Z;az=d-Z;if(S<16){S=0}else if(S>=4080){S=255}else{S>>=4}if(U<16){U=0}else if(U>=4080){U=255}else{U>>=4}if(r<16){r=0}else if(r>=4080){r=255}else{r>>=4}if(L<16){L=0}else if(L>=4080){L=255}else{L>>=4}if(az<16){az=0}else if(az>=4080){az=255}else{az>>=4}if(J<16){J=0}else if(J>=4080){J=255}else{J>>=4}if(p<16){p=0}else if(p>=4080){p=255}else{p>>=4}if(aH<16){aH=0}else if(aH>=4080){aH=255}else{aH>>=4}n[q+m]=S; +n[q+m+8]=U;n[q+m+16]=r;n[q+m+24]=L;n[q+m+32]=az;n[q+m+40]=J;n[q+m+48]=p;n[q+m+56]=aH}}function V(E,q){var N=q.P,H=q.c,n=new Int16Array(64); +for(var j=0;j=H){return null}var j=c(E,q);if(j>=65472&&j<=65534){return{u:null,M:j,offset:q}}var X=c(E,n); +while(!(X>=65472&&X<=65534)){if(++n>=H){return null}X=c(E,n)}return{u:j.toString(16),M:X,offset:n}}t.prototype={parse(E,q){if(q==null)q={}; +var N=q.F,H=0,n=null,j=null,X,u,d=0;function Z(){var as=c(E,H);H+=2;var ar=H+as-2,U=G(E,ar,H);if(U&&U.u){ar=U.offset}var a2=E.subarray(H,ar); +H+=a2.length;return a2}function B(X){var as=Math.ceil(X.o/8/X.X),ar=Math.ceil(X.s/8/X.B);for(var r=0; +r>4===0){for(L=0; +L<64;L++){aH=$[L];m[aH]=E[H++]}}else if(x>>4===1){for(L=0;L<64;L++){aH=$[L];m[aH]=c(E,H);H+=2}}else{throw new M("DQT - invalid table spec")}k[x&15]=m}break; +case 65472:case 65473:case 65474:if(X){throw new M("Only single frame JPEGs supported")}H+=2;X={};X.G=U===65473; +X.Z=U===65474;X.precision=E[H++];var ab=c(E,H),ae,ax=0,aF=0;H+=2;X.s=N||ab;X.o=c(E,H);H+=2;X.W=[];X._={}; +var aU=E[H++];for(r=0;r>4,aS=E[H+1]&15;if(ax>4===0?S:W)[ap&15]=z(w,aI)}break;case 65501:H+=2;u=c(E,H); +H+=2;break;case 65498:var aq=++d===1&&!N,ag;H+=2;var aQ=E[H++],af=[];for(r=0;r>4];ag.i=W[aV&15];af.push(ag)}var a4=E[H++],aB=E[H++],aC=E[H++]; +try{var aO=O(E,H,X,af,u,a4,aB,aC>>4,aC&15,aq);H+=aO}catch(ex){if(ex instanceof DNLMarkerError){return this.parse(E,{F:ex.s})}else if(ex instanceof EOIMarkerError){break markerLoop}throw ex}break; +case 65500:H+=4;break;case 65535:if(E[H]!==255){H--}break;default:var a9=G(E,H-2,H-3);if(a9&&a9.u){H=a9.offset; +break}if(H>=E.length-1){break markerLoop}throw new M("JpegImage.parse - unknown marker: "+U.toString(16))}U=c(E,H); +H+=2}this.width=X.o;this.height=X.s;this.g=n;this.b=j;this.W=[];for(r=0;r>8)+m[S+1]}}}return p},get f(){if(this.b){return!!this.b.a}if(this.p===3){if(this.N===0){return!1}else if(this.W[0].index===82&&this.W[1].index===71&&this.W[2].index===66){return!1}return!0}if(this.N===1){return!0}return!1},z:function b0(E){var q,N,H; +for(var n=0,j=E.length;n4){throw new M("Unsupported color mode")}var j=this.Y(q,N,n);if(this.p===1&&H){var X=j.length,u=new Uint8ClampedArray(X*3),d=0; +for(var Z=0;Z>24}function c($,R){return $[R]<<8|$[R+1]}function I($,R){return($[R]<<24|$[R+1]<<16|$[R+2]<<8|$[R+3])>>>0}_.JpegDecoder=t}()); +_.encodeImage=function(M,t,Y,h){var c={t256:[t],t257:[Y],t258:[8,8,8,8],t259:[1],t262:[2],t273:[1e3],t277:[4],t278:[Y],t279:[t*Y*4],t282:[[72,1]],t283:[[72,1]],t284:[1],t286:[[0,1]],t287:[[0,1]],t296:[1],t305:["Photopea (UTIF.js)"],t338:[1]}; +if(h)for(var I in h)c[I]=h[I];var $=new Uint8Array(_.encode([c])),R=new Uint8Array(M),Q=new Uint8Array(1e3+t*Y*4); +for(var I=0;I<$.length;I++)Q[I]=$[I];for(var I=0;I>>3)];if(l==null)l=t.t325;var e=new Uint8Array(t.height*(R>>>3)); +if(t.t322!=null){var b=t.t322[0],C=t.t323[0],T=Math.floor((t.width+b-1)/b),f=Math.floor((t.height+C-1)/C),i=new Uint8Array(Math.ceil(b*C*$/8)|0); +for(var z=0;z>>3,f=M.t278?M.t278[0]:M.height,i=Math.ceil(b*C*M.width/8); +if(b==16&&!M.isLE&&M.t33422==null)for(var z=0;z>>8&255}else if(C==3)for(var Q=3; +Q>>3]>>>7-(V&7)&1;K[1]++;return y}function e(K,V){if(Y==null){Y={}; +for(var y=0;y>>1}return K}function b(K,V){return K>>V}function C(K,V,y,D,E,q){V[y]=b(b(11*K[E]-4*K[E+q]+K[E+q+q]+4,3)+K[D],1); +V[y+q]=b(b(5*K[E]+4*K[E+q]-K[E+q+q]+4,3)-K[D],1)}function T(K,V,y,D,E,q){var H=K[E-q]-K[E+q],n=K[E],u=K[D]; +V[y]=b(b(H+4,3)+n+u,1);V[y+q]=b(b(-H+4,3)+n-u,1)}function f(K,V,y,D,E,q){V[y]=b(b(5*K[E]+4*K[E-q]-K[E-q-q]+4,3)+K[D],1); +V[y+q]=b(b(11*K[E]-4*K[E-q]+K[E-q-q]+4,3)-K[D],1)}function z(K){K=K<0?0:K>4095?4095:K;K=P[K]>>>2;return K}function A(K,V,y,D,E){D=new Uint16Array(D.buffer); +var q=Date.now(),H=_._binBE,n=V+y,u,k,F,S,a3,r,an,L,az,ah,aR,at,J,ak,p,ad,a8,aL;V+=4;while(V>>1)*(F>>>1));aL=new Int16Array((k>>>1)*(F>>>1));h=new Int16Array(1024); +for(var ay=0;ay<1024;ay++){var aM=ay-512,a6=Math.abs(aM),u=Math.floor(768*a6*a6*a6/(255*255*255))+a6; +h[ay]=Math.sign(aM)*u}P=new Uint16Array(4096);var ab=(1<<16)-1;for(var ay=0;ay<4096;ay++){var ae=ay,aT=ab*(Math.pow(113,ae/4095)-1)/112; +P[ay]=Math.min(aT,ab)}}var b1=a8[an],ax=o(k,1+c[S]),aU=o(F,1+c[S]);if(S==0){for(var a=0;a>>1)+w]=K[b8]<<8|K[b8+1]}}else{var aI=[K,V*8],aq=[],aQ=0,af=ax*aU,b3=[0,0],a5=0,x=0; +while(aQ0){aq[aQ++]=x;a5--}}var aV=(S-1)%3,a4=aV!=1?ax:0,aB=aV!=0?aU:0; +for(var a=0;a>>1)+a4,aO=a*ax;for(var w=0;w>>1,a9=ax*2,a_=aU*2; +for(var a=0;a>14-aW*2&3; +var aN=aP[a$];if(aN!=0)for(var a=0;a>>1)*(k>>>1)+(w>>>1),b6=au[b8],aY=aZ[b8]-2048,aw=aA[b8]-2048,aJ=ac[b8]-2048,aG=(aY<<1)+b6,aX=(aw<<1)+b6,b7=b6+aJ,b2=b6-aJ; +D[a1]=z(aG);D[a1+1]=z(b7);D[a1+k]=z(b2);D[a1+k+1]=z(aX)}}V+=aE*4}else if(m==16388){V+=aE*4}else if(aD==8192||aD==8448||aD==9216){}else throw m.toString(16)}}console.log(Date.now()-q)}return A}(); +_.decode._ljpeg_diff=function(M,t,Y){var h=_.decode._getbithuff,P,c;P=h(M,t,Y[0],Y);c=h(M,t,P,0);if((c&1<>>(b[C]>>>8);for(var T=0;T>>4;P[c+C+1]=G<<4|y>>>4;P[c+C+2]=y<<4|b0>>>4}return}var s=new Uint16Array(16),u=new Uint8Array(I+1); +for(z=0;z<$;z++){for(var d=0;d>>11;N=15&D>>>22;H=15&D>>>26;for(n=0;n<4&&128<>3))>>>(j&7)&127)<2047)s[C]=2047;j+=7}for(C=0; +C<16;C++,i+=2){var V=s[C]<<1;_.decode._putsF(P,(z*I+i)*R,V<<16-R)}i-=i&1?1:31}}};_.decode._decodeNikon=function(M,t,Y,h,P,c,I){var $=[[0,0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0,5,4,3,6,2,7,1,0,8,9,11,10,12],[0,0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0,57,90,56,39,22,5,4,3,2,1,0,11,12,12],[0,0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0,5,4,6,3,7,2,8,1,9,0,10,11,12],[0,0,1,4,3,1,1,1,1,1,2,0,0,0,0,0,0,5,6,4,7,8,3,9,2,1,0,10,11,12,13,14],[0,0,1,5,1,1,1,1,1,1,1,2,0,0,0,0,0,8,92,75,58,41,7,6,5,4,3,2,1,0,13,14],[0,0,1,4,2,2,3,1,2,0,0,0,0,0,0,0,0,7,6,8,5,9,4,10,3,11,12,2,0,1,13,14]],R=M.t256[0],Q=M.t257[0],l=M.t258[0],e=0,o=0,b=_.decode._make_decoder,C=_.decode._getbithuff,T=t[0].exifIFD.makerNote,f=T.t150?T.t150:T.t140,i=0,z=f[i++],A=f[i++],y=0,V,D,E,q,N,H,n=0; +if(z==73||A==88)i+=2110;if(z==70)e=2;if(l==14)e+=3;var O=[[0,0],[0,0]],K=M.isLE?_._binLE:_._binBE;for(var V=0; +V<2;V++)for(var G=0;G<2;G++){O[V][G]=K.readShort(f,i);i+=2}var b0=1<1)y=Math.floor(b0/(s-1));if(z==68&&A==32&&y>0)o=K.readShort(f,562);var j=[0,0],X=b($[e]),u=[h,0,0,0]; +for(n=D=0;D>>4;H=(C(Y,u,q-N,0)<<1)+1<>>1; +if((H&1<>>3;M[h]|=Y>>>16; +M[h+1]|=Y>>>8;M[h+2]|=Y};_.decode._getbithuff=function(M,t,Y,h){var P=0,c=_.decode._get_byte,I,$=t[0],R=t[1],Q=t[2],l=t[3]; +if(Y==0||Q<0)return 0;while(!l&&Q>>32-Y; +if(h){Q-=h[I+1]>>>8;I=h[I+1]&255}else Q-=Y;if(Q<0)throw"e";t[0]=$;t[1]=R;t[2]=Q;t[3]=l;return I};_.decode._make_decoder=function(M){var t,Y,h,c,I,$=[],R=17; +for(t=16;t!=0&&!M[t];t--);$[0]=t;for(h=Y=1;Y<=t;Y++)for(c=0;c>>8}else for(var o=0; +o>>8;P[c+(o<<1)+1]=f[o]&255}}else if(T==14||T==12){var z=16-T;for(var o=0;o1}if(!T){if(t[Y]==255&&t[Y+1]==P)return{jpegOffset:Y};if(A!=null){if(t[Y+O]==255&&t[Y+O+1]==P)e=Y+O; +else av("JPEGInterchangeFormat does not point to SOI");if(K==null)av("JPEGInterchangeFormatLength field is missing"); +else if(O>=o||O+V<=o)av("JPEGInterchangeFormatLength field value is invalid");if(e!=null)return{jpegOffset:e}}}if(b0!=null){y=b0[0]; +s=b0[1]}if(A!=null)if(K!=null)if(V>=2&&O+V<=o){if(t[Y+O+V-2]==255&&t[Y+O+V-1]==P)b=new Uint8Array(V-2); +else b=new Uint8Array(V);for(f=0;f offset to first strip or tile"); +if(b==null){var q=0,N=[];N[q++]=255;N[q++]=P;var H=M.t519;if(H==null)throw new Error("JPEGQTables tag is missing"); +for(f=0;f>>8;N[q++]=j&255; +N[q++]=f|z<<4;for(i=0;i<16;i++)N[q++]=t[Y+n[f]+i];for(i=0;i>>8&255;N[q++]=M.height&255;N[q++]=M.width>>>8&255; +N[q++]=M.width&255;N[q++]=D;if(D==1){N[q++]=1;N[q++]=17;N[q++]=0}else for(f=0;f<3;f++){N[q++]=f+1;N[q++]=f!=0?17:(y&15)<<4|s&15; +N[q++]=f}if(E!=null&&E[0]!=0){N[q++]=255;N[q++]=R;N[q++]=0;N[q++]=4;N[q++]=E[0]>>>8&255;N[q++]=E[0]&255}b=new Uint8Array(N)}var X=-1; +f=0;while(f>>8&255; +b[d++]=M.height&255;b[d++]=M.width>>>8&255;b[d++]=M.width&255;b[d++]=D;if(D==1){b[d++]=1;b[d++]=17;b[d++]=0}else for(f=0; +f<3;f++){b[d++]=f+1;b[d++]=f!=0?17:(y&15)<<4|s&15;b[d++]=f}}if(t[o]==255&&t[o+1]==l){var Z=t[o+2]<<8|t[o+3]; +C=new Uint8Array(Z+2);C[0]=t[o];C[1]=t[o+1];C[2]=t[o+2];C[3]=t[o+3];for(f=0;f>>8&255;Q[e.sofPosition+6]=M.height&255;Q[e.sofPosition+7]=M.width>>>8&255; +Q[e.sofPosition+8]=M.width&255;if(t[Y]!=255||t[Y+1]!=SOS){Q.set(e.sosMarker,l);l+=sosMarker.length}for(I=0; +I=0&&R<128)for(var Q=0;Q=-127&&R<0){for(var Q=0; +Q<-R+1;Q++){I[P]=c[t];P++}t++}}};_.decode._decodeThunder=function(M,t,Y,h,P){var c=[0,1,0,-1],I=[0,1,2,3,0,-3,-2,-1],$=t+Y,R=P*2,Q=0; +while(t<$){var l=M[t],e=l>>>6,o=l&63;t++;if(e==3){Q=o&15;h[R>>>1]|=Q<<4*(1-R&1);R++}if(e==0)for(var b=0; +b>>1]|=Q<<4*(1-R&1);R++}if(e==2)for(var b=0;b<2;b++){var C=o>>>3*(1-b)&7;if(C!=4){Q+=I[C]; +h[R>>>1]|=Q<<4*(1-R&1);R++}}if(e==1)for(var b=0;b<3;b++){var C=o>>>2*(2-b)&3;if(C!=2){Q+=c[C];h[R>>>1]|=Q<<4*(1-R&1); +R++}}}};_.decode._dmap={"1":0,"011":1,"000011":2,"0000011":3,"010":-1,"000010":-2,"0000010":-3};_.decode._lens=function(){var M=function(R,Q,l,e){for(var o=0; +o>>3>>3]>>>7-(R&7)&1;if(I==2)y=M[R>>>3]>>>(R&7)&1;R++;l+=y;if(V=="H"){if($._lens[O][l]!=null){var s=$._lens[O][l]; +l="";Q+=s;if(s<64){$._addNtimes(e,Q,O);C+=Q;O=1-O;Q=0;G--;if(G==0)V=""}}}else{if(l=="0001"){l="";$._addNtimes(e,z-C,O); +C=z}if(l=="001"){l="";V="H";G=2}if($._dmap[l]!=null){T=i+$._dmap[l];$._addNtimes(e,T-C,O);C=T;l="";O=1-O}}if(e.length==c&&V==""){$._writeBits(e,h,P*8+K*b0); +O=0;K++;C=0;o=$._makeDiff(e);e=[]}}};_.decode._findDiff=function(M,t,Y){for(var h=0;h=t&&M[h+1]==Y)return M[h]}; +_.decode._makeDiff=function(M){var t=[];if(M[0]==1)t.push(0,1);for(var Y=1;Y>>3>>3]>>>7-(Q&7)&1;if(I==2)D=M[Q>>>3]>>>(Q&7)&1;Q++;e+=D;if(y){if(R._lens[K][e]!=null){var E=R._lens[K][e]; +e="";l+=E;if(E<64){R._addNtimes(o,l,K);K=1-K;l=0}}}else{if(G=="H"){if(R._lens[K][e]!=null){var E=R._lens[K][e]; +e="";l+=E;if(E<64){R._addNtimes(o,l,K);T+=l;K=1-K;l=0;b0--;if(b0==0)G=""}}}else{if(e=="0001"){e="";R._addNtimes(o,O-T,K); +T=O}if(e=="001"){e="";G="H";b0=2}if(R._dmap[e]!=null){f=z+R._dmap[e];R._addNtimes(o,f-T,K);T=f;e=""; +K=1-K}}}if(e.endsWith("000000000001")){if(V>=0)R._writeBits(o,h,P*8+V*s);if($){if(I==1)y=(M[Q>>>3]>>>7-(Q&7)&1)==1; +if(I==2)y=(M[Q>>>3]>>>(Q&7)&1)==1;Q++}e="";K=0;V++;T=0;b=R._makeDiff(o);o=[]}}if(o.length==c)R._writeBits(o,h,P*8+V*s)}; +_.decode._addNtimes=function(M,t,Y){for(var h=0;h>>3]|=M[h]<<7-(Y+h&7)};_.decode._decodeLZW=_.decode._decodeLZW=function(){var M,Y,h,P,c=0,I=0,$=0,R=0,Q=function(){var z=M>>>3,O=Y[z]<<16|Y[z+1]<<8|Y[z+2],K=O>>>24-(M&7)-I&(1<>>----------------");for(var R=0;R4){M.writeUint(Y,h,$);f=$}if(e==1||e==7){for(var i=0;i4){T+=T&1;$+=T}h+=4}return[h,$]};_.toRGBA8=function(M,t){var Y=M.width,h=M.height,c=Y*h,I=c*4,$=M.data,R=new Uint8Array(c*4),Q=M.t262?M.t262[0]:2,l=M.t258?Math.min(32,M.t258[0]):1; +if(M.t262==null&&l==1)Q=0;if(!1){}else if(Q==0){var e=Math.ceil(l*Y/8);for(var o=0;o>3)]>>7-(T&7)&1;R[f]=R[f+1]=R[f+2]=(1-i)*255;R[f+3]=255}if(l==4)for(var T=0; +T>1)]>>4-4*(T&1)&15;R[f]=R[f+1]=R[f+2]=(15-i)*17;R[f+3]=255}if(l==8)for(var T=0; +T>3)]>>7-(T&7)&1; +R[f]=R[f+1]=R[f+2]=i*255;R[f+3]=255}if(l==2)for(var T=0;T>2)]>>6-2*(T&3)&3; +R[f]=R[f+1]=R[f+2]=i*85;R[f+3]=255}if(l==8)for(var T=0;T>8;R[f+1]=G[256+b0]>>8;R[f+2]=G[512+b0]>>8;R[f+3]=255}}else if(Q==5){var z=M.t258?M.t258.length:4,y=z>4?1:0; +for(var T=0;T>>1),q=$[s+(X&1)],d=$[s+2]-128,Z=$[s+3]-128,B=q+((Z>>2)+(Z>>3)+(Z>>5)),g=q-((d>>2)+(d>>4)+(d>>5))-((Z>>1)+(Z>>3)+(Z>>4)+(Z>>5)),k=q+(d+(d>>1)+(d>>2)+(d>>6)); +R[f]=Math.max(0,Math.min(255,B));R[f+1]=Math.max(0,Math.min(255,g));R[f+2]=Math.max(0,Math.min(255,k)); +R[f+3]=255}}}else av("Unknown Photometric interpretation: "+Q);return R};_.replaceIMG=function(M){if(M==null)M=document.getElementsByTagName("img"); +var t=["tif","tiff","dng","cr2","nef"];for(var Y=0;Yc){c=Q;I=R}}_.decodeImage(Y,I,h);var l=_.toRGBA8(I),e=I.width,o=I.height,b=_._xhrs.indexOf(M.target),R=_._imgs[b]; +_._xhrs.splice(b,1);_._imgs.splice(b,1);var C=document.createElement("canvas");C.width=e;C.height=o; +var T=C.getContext("2d"),f=new ImageData(new Uint8ClampedArray(l.buffer),e,o);T.putImageData(f,0,0); +R.setAttribute("src",C.toDataURL())};_._binBE={nextZero:function(M,t){while(M[t]!=0)t++;return t},readUshort:function(M,t){return M[t]<<8|M[t+1]},readShort:function(M,t){var Y=_._binBE.ui8; +Y[0]=M[t+1];Y[1]=M[t+0];return _._binBE.i16[0]},readInt:function(M,t){var Y=_._binBE.ui8;Y[0]=M[t+3]; +Y[1]=M[t+2];Y[2]=M[t+1];Y[3]=M[t+0];return _._binBE.i32[0]},readUint:function(M,t){var Y=_._binBE.ui8; +Y[0]=M[t+3];Y[1]=M[t+2];Y[2]=M[t+1];Y[3]=M[t+0];return _._binBE.ui32[0]},readASCII:function(M,t,Y){var h=""; +for(var P=0;P>8&255; +M[t+1]=Y&255},writeInt:function(M,t,Y){var h=_._binBE.ui8;_._binBE.i32[0]=Y;M[t+3]=h[0];M[t+2]=h[1]; +M[t+1]=h[2];M[t+0]=h[3]},writeUint:function(M,t,Y){M[t]=Y>>24&255;M[t+1]=Y>>16&255;M[t+2]=Y>>8&255;M[t+3]=Y>>0&255},writeASCII:function(M,t,Y){for(var h=0; +h>8&255},writeInt:function(M,t,Y){var h=_._binBE.ui8; +_._binBE.i32[0]=Y;M[t+0]=h[0];M[t+1]=h[1];M[t+2]=h[2];M[t+3]=h[3]},writeUint:function(M,t,Y){M[t]=Y>>>0&255; +M[t+1]=Y>>>8&255;M[t+2]=Y>>>16&255;M[t+3]=Y>>>24&255},writeASCII:_._binBE.writeASCII};_._copyTile=function(M,t,Y,h,P,c,I,$){var R=Math.min(t,P-I),Q=Math.min(Y,c-$); +for(var l=0;l>--al&1; +a3=d[a3+U]}F[g]=a3}}function A(u,d,Z,B){if(u[d+3]!=255)return 0;if(Z==0)return d;for(var g=0;g<2;g++){if(u[d+g]==0){u[d+g]=u.length; +u.push(0,0,B,255)}var k=A(u,u[d+g],Z-1,B+1);if(k!=0)return k}return 0}function O(u){var d=u.c,Z=u.d; +while(d<25){var B=u.data[u.a++];if(!u.b)u.a+=B+1>>>8;Z=Z<<8|B;d+=8}u.c=d;u.d=Z}function V(u,d){if(d.c>(d.c-=u)&65535>>16-u}function b0(u,d){var Z=u[0],B=0,g=255,k=0;if(d.c<16)O(d);var W=d.d>>d.c-8&255; +B=u[1][W];g=Z[B+3];d.c-=Z[B+2];while(g==255){k=d.d>>--d.c&1;B=Z[B+k];g=Z[B+3]}return g}function s(u,d){if(u<32768>>16-d)u+=-(1<>>1);else throw k;u[U]=r+D(W[F],Z)}}S+=d}}function N(u,d){var Z=V(u,d); +return u==16?-32768:s(Z,u)}function j(u,d,Z){var B=M.length-t;for(var g=0;g>>4]}I=e();t+=2;break}else{t+=Z-2}}var al=Y>8?Uint16Array:Uint8Array,S=P*c,a3=new al(h*S),U={c:0,d:0,b:I==8,a:t,data:M}; +if(U.b)j(a3,S,U);else q(a3,S,U);return a3}return X}()}(_,b5))}())// (c) Dean McNamee , 2013. +// +// https://github.com/deanm/omggif +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// +// omggif is a JavaScript implementation of a GIF 89a encoder and decoder, +// including animation and compression. It does not rely on any specific +// underlying system, so should run in the browser, Node, or Plask. + +"use strict"; + +function GifWriter(buf, width, height, gopts) { + var p = 0; + + var gopts = gopts === undefined ? { } : gopts; + var loop_count = gopts.loop === undefined ? null : gopts.loop; + var global_palette = gopts.palette === undefined ? null : gopts.palette; + + if (width <= 0 || height <= 0 || width > 65535 || height > 65535) + throw new Error("Width/Height invalid."); + + function check_palette_and_num_colors(palette) { + var num_colors = palette.length; + if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors-1)) { + throw new Error( + "Invalid code/color length, must be power of 2 and 2 .. 256."); + } + return num_colors; + } + + // - Header. + buf[p++] = 0x47; buf[p++] = 0x49; buf[p++] = 0x46; // GIF + buf[p++] = 0x38; buf[p++] = 0x39; buf[p++] = 0x61; // 89a + + // Handling of Global Color Table (palette) and background index. + var gp_num_colors_pow2 = 0; + var background = 0; + if (global_palette !== null) { + var gp_num_colors = check_palette_and_num_colors(global_palette); + while (gp_num_colors >>= 1) ++gp_num_colors_pow2; + gp_num_colors = 1 << gp_num_colors_pow2; + --gp_num_colors_pow2; + if (gopts.background !== undefined) { + background = gopts.background; + if (background >= gp_num_colors) + throw new Error("Background index out of range."); + // The GIF spec states that a background index of 0 should be ignored, so + // this is probably a mistake and you really want to set it to another + // slot in the palette. But actually in the end most browsers, etc end + // up ignoring this almost completely (including for dispose background). + if (background === 0) + throw new Error("Background index explicitly passed as 0."); + } + } + + // - Logical Screen Descriptor. + // NOTE(deanm): w/h apparently ignored by implementations, but set anyway. + buf[p++] = width & 0xff; buf[p++] = width >> 8 & 0xff; + buf[p++] = height & 0xff; buf[p++] = height >> 8 & 0xff; + // NOTE: Indicates 0-bpp original color resolution (unused?). + buf[p++] = (global_palette !== null ? 0x80 : 0) | // Global Color Table Flag. + gp_num_colors_pow2; // NOTE: No sort flag (unused?). + buf[p++] = background; // Background Color Index. + buf[p++] = 0; // Pixel aspect ratio (unused?). + + // - Global Color Table + if (global_palette !== null) { + for (var i = 0, il = global_palette.length; i < il; ++i) { + var rgb = global_palette[i]; + buf[p++] = rgb >> 16 & 0xff; + buf[p++] = rgb >> 8 & 0xff; + buf[p++] = rgb & 0xff; + } + } + + if (loop_count !== null) { // Netscape block for looping. + if (loop_count < 0 || loop_count > 65535) + throw new Error("Loop count invalid."); + // Extension code, label, and length. + buf[p++] = 0x21; buf[p++] = 0xff; buf[p++] = 0x0b; + // NETSCAPE2.0 + buf[p++] = 0x4e; buf[p++] = 0x45; buf[p++] = 0x54; buf[p++] = 0x53; + buf[p++] = 0x43; buf[p++] = 0x41; buf[p++] = 0x50; buf[p++] = 0x45; + buf[p++] = 0x32; buf[p++] = 0x2e; buf[p++] = 0x30; + // Sub-block + buf[p++] = 0x03; buf[p++] = 0x01; + buf[p++] = loop_count & 0xff; buf[p++] = loop_count >> 8 & 0xff; + buf[p++] = 0x00; // Terminator. + } + + + var ended = false; + + this.addFrame = function(x, y, w, h, indexed_pixels, opts) { + if (ended === true) { --p; ended = false; } // Un-end. + + opts = opts === undefined ? { } : opts; + + // TODO(deanm): Bounds check x, y. Do they need to be within the virtual + // canvas width/height, I imagine? + if (x < 0 || y < 0 || x > 65535 || y > 65535) + throw new Error("x/y invalid."); + + if (w <= 0 || h <= 0 || w > 65535 || h > 65535) + throw new Error("Width/Height invalid."); + + if (indexed_pixels.length < w * h) + throw new Error("Not enough pixels for the frame size."); + + var using_local_palette = true; + var palette = opts.palette; + if (palette === undefined || palette === null) { + using_local_palette = false; + palette = global_palette; + } + + if (palette === undefined || palette === null) + throw new Error("Must supply either a local or global palette."); + + var num_colors = check_palette_and_num_colors(palette); + + // Compute the min_code_size (power of 2), destroying num_colors. + var min_code_size = 0; + while (num_colors >>= 1) ++min_code_size; + num_colors = 1 << min_code_size; // Now we can easily get it back. + + var delay = opts.delay === undefined ? 0 : opts.delay; + + // From the spec: + // 0 - No disposal specified. The decoder is + // not required to take any action. + // 1 - Do not dispose. The graphic is to be left + // in place. + // 2 - Restore to background color. The area used by the + // graphic must be restored to the background color. + // 3 - Restore to previous. The decoder is required to + // restore the area overwritten by the graphic with + // what was there prior to rendering the graphic. + // 4-7 - To be defined. + // NOTE(deanm): Dispose background doesn't really work, apparently most + // browsers ignore the background palette index and clear to transparency. + var disposal = opts.disposal === undefined ? 0 : opts.disposal; + if (disposal < 0 || disposal > 3) // 4-7 is reserved. + throw new Error("Disposal out of range."); + + var use_transparency = false; + var transparent_index = 0; + if (opts.transparent !== undefined && opts.transparent !== null) { + use_transparency = true; + transparent_index = opts.transparent; + if (transparent_index < 0 || transparent_index >= num_colors) + throw new Error("Transparent color index."); + } + + if (disposal !== 0 || use_transparency || delay !== 0) { + // - Graphics Control Extension + buf[p++] = 0x21; buf[p++] = 0xf9; // Extension / Label. + buf[p++] = 4; // Byte size. + + buf[p++] = disposal << 2 | (use_transparency === true ? 1 : 0); + buf[p++] = delay & 0xff; buf[p++] = delay >> 8 & 0xff; + buf[p++] = transparent_index; // Transparent color index. + buf[p++] = 0; // Block Terminator. + } + + // - Image Descriptor + buf[p++] = 0x2c; // Image Seperator. + buf[p++] = x & 0xff; buf[p++] = x >> 8 & 0xff; // Left. + buf[p++] = y & 0xff; buf[p++] = y >> 8 & 0xff; // Top. + buf[p++] = w & 0xff; buf[p++] = w >> 8 & 0xff; + buf[p++] = h & 0xff; buf[p++] = h >> 8 & 0xff; + // NOTE: No sort flag (unused?). + // TODO(deanm): Support interlace. + buf[p++] = using_local_palette === true ? (0x80 | (min_code_size-1)) : 0; + + // - Local Color Table + if (using_local_palette === true) { + for (var i = 0, il = palette.length; i < il; ++i) { + var rgb = palette[i]; + buf[p++] = rgb >> 16 & 0xff; + buf[p++] = rgb >> 8 & 0xff; + buf[p++] = rgb & 0xff; + } + } + + p = GifWriterOutputLZWCodeStream( + buf, p, min_code_size < 2 ? 2 : min_code_size, indexed_pixels); + + return p; + }; + + this.end = function() { + if (ended === false) { + buf[p++] = 0x3b; // Trailer. + ended = true; + } + return p; + }; + + this.getOutputBuffer = function() { return buf; }; + this.setOutputBuffer = function(v) { buf = v; }; + this.getOutputBufferPosition = function() { return p; }; + this.setOutputBufferPosition = function(v) { p = v; }; +} + +// Main compression routine, palette indexes -> LZW code stream. +// |index_stream| must have at least one entry. +function GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) { + buf[p++] = min_code_size; + var cur_subblock = p++; // Pointing at the length field. + + var clear_code = 1 << min_code_size; + var code_mask = clear_code - 1; + var eoi_code = clear_code + 1; + var next_code = eoi_code + 1; + + var cur_code_size = min_code_size + 1; // Number of bits per code. + var cur_shift = 0; + // We have at most 12-bit codes, so we should have to hold a max of 19 + // bits here (and then we would write out). + var cur = 0; + + function emit_bytes_to_buffer(bit_block_size) { + while (cur_shift >= bit_block_size) { + buf[p++] = cur & 0xff; + cur >>= 8; cur_shift -= 8; + if (p === cur_subblock + 256) { // Finished a subblock. + buf[cur_subblock] = 255; + cur_subblock = p++; + } + } + } + + function emit_code(c) { + cur |= c << cur_shift; + cur_shift += cur_code_size; + emit_bytes_to_buffer(8); + } + + // I am not an expert on the topic, and I don't want to write a thesis. + // However, it is good to outline here the basic algorithm and the few data + // structures and optimizations here that make this implementation fast. + // The basic idea behind LZW is to build a table of previously seen runs + // addressed by a short id (herein called output code). All data is + // referenced by a code, which represents one or more values from the + // original input stream. All input bytes can be referenced as the same + // value as an output code. So if you didn't want any compression, you + // could more or less just output the original bytes as codes (there are + // some details to this, but it is the idea). In order to achieve + // compression, values greater then the input range (codes can be up to + // 12-bit while input only 8-bit) represent a sequence of previously seen + // inputs. The decompressor is able to build the same mapping while + // decoding, so there is always a shared common knowledge between the + // encoding and decoder, which is also important for "timing" aspects like + // how to handle variable bit width code encoding. + // + // One obvious but very important consequence of the table system is there + // is always a unique id (at most 12-bits) to map the runs. 'A' might be + // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship + // can be used for an effecient lookup strategy for the code mapping. We + // need to know if a run has been seen before, and be able to map that run + // to the output code. Since we start with known unique ids (input bytes), + // and then from those build more unique ids (table entries), we can + // continue this chain (almost like a linked list) to always have small + // integer values that represent the current byte chains in the encoder. + // This means instead of tracking the input bytes (AAAABCD) to know our + // current state, we can track the table entry for AAAABC (it is guaranteed + // to exist by the nature of the algorithm) and the next character D. + // Therefor the tuple of (table_entry, byte) is guaranteed to also be + // unique. This allows us to create a simple lookup key for mapping input + // sequences to codes (table indices) without having to store or search + // any of the code sequences. So if 'AAAA' has a table entry of 12, the + // tuple of ('AAAA', K) for any input byte K will be unique, and can be our + // key. This leads to a integer value at most 20-bits, which can always + // fit in an SMI value and be used as a fast sparse array / object key. + + // Output code for the current contents of the index buffer. + var ib_code = index_stream[0] & code_mask; // Load first input index. + var code_table = { }; // Key'd on our 20-bit "tuple". + + emit_code(clear_code); // Spec says first code should be a clear code. + + // First index already loaded, process the rest of the stream. + for (var i = 1, il = index_stream.length; i < il; ++i) { + var k = index_stream[i] & code_mask; + var cur_key = ib_code << 8 | k; // (prev, k) unique tuple. + var cur_code = code_table[cur_key]; // buffer + k. + + // Check if we have to create a new code table entry. + if (cur_code === undefined) { // We don't have buffer + k. + // Emit index buffer (without k). + // This is an inline version of emit_code, because this is the core + // writing routine of the compressor (and V8 cannot inline emit_code + // because it is a closure here in a different context). Additionally + // we can call emit_byte_to_buffer less often, because we can have + // 30-bits (from our 31-bit signed SMI), and we know our codes will only + // be 12-bits, so can safely have 18-bits there without overflow. + // emit_code(ib_code); + cur |= ib_code << cur_shift; + cur_shift += cur_code_size; + while (cur_shift >= 8) { + buf[p++] = cur & 0xff; + cur >>= 8; cur_shift -= 8; + if (p === cur_subblock + 256) { // Finished a subblock. + buf[cur_subblock] = 255; + cur_subblock = p++; + } + } + + if (next_code === 4096) { // Table full, need a clear. + emit_code(clear_code); + next_code = eoi_code + 1; + cur_code_size = min_code_size + 1; + code_table = { }; + } else { // Table not full, insert a new entry. + // Increase our variable bit code sizes if necessary. This is a bit + // tricky as it is based on "timing" between the encoding and + // decoder. From the encoders perspective this should happen after + // we've already emitted the index buffer and are about to create the + // first table entry that would overflow our current code bit size. + if (next_code >= (1 << cur_code_size)) ++cur_code_size; + code_table[cur_key] = next_code++; // Insert into code table. + } + + ib_code = k; // Index buffer to single input k. + } else { + ib_code = cur_code; // Index buffer to sequence in code table. + } + } + + emit_code(ib_code); // There will still be something in the index buffer. + emit_code(eoi_code); // End Of Information. + + // Flush / finalize the sub-blocks stream to the buffer. + emit_bytes_to_buffer(1); + + // Finish the sub-blocks, writing out any unfinished lengths and + // terminating with a sub-block of length 0. If we have already started + // but not yet used a sub-block it can just become the terminator. + if (cur_subblock + 1 === p) { // Started but unused. + buf[cur_subblock] = 0; + } else { // Started and used, write length and additional terminator block. + buf[cur_subblock] = p - cur_subblock - 1; + buf[p++] = 0; + } + return p; +}; + +var UGIF=function(){var a=function(){var j,F,c,b,H=0,k=0,Z=0,P=0,l=function(){var R=j>>>3,i=F[R+2]<<16|F[R+1]<<8|F[R],M=i>>>(j&7)&(1<>>7,P=b>>>4&7,X=b>>>3&1,l=b>>>0&7,m=f,e=0,V,W=0,G=0,C=0,z=260; +if(Z==1)f+=3*(1<>>2&7;G=A();z=B();if((b&1)==0)z=260;B()}else if(L==254){U()}else if(L==255){U()}else throw L}else if(Q==44){var R=A(),i=A(),M=A(),v=A(),t=B(),q=t>>>7; +C=t>>>6&1;if(q==1){var l=t>>>0&7;e=f;f+=3*(1<=O.length){alert("Some frames are damaged."); +T.pop();break}B();V.d=new Uint8Array(S);var r=a(E,0,Y,V.d,0,Q)}else if(Q==59)break;else throw Q}return{width:F,height:c,data:O,frames:T}}; +function D(j,F,O,c,b,H,k,Z){for(var P=0;P=0; k--) { + line[k] *= l; + } +} + +/** + * Add line number j multiplied by l to line number i + */ +Mat.prototype.addmul = function (i, j, l) { + if (this.mirror) this.mirror.addmul(i,j,l); + var lineI = this.data[i], lineJ = this.data[j]; + for (var k=lineI.length-1; k>=0; k--) { + lineI[k] = lineI[k] + l*lineJ[k]; + } +} + +/** + * Tests if line number i is composed only of zeroes + */ +Mat.prototype.hasNullLine = function (i) { + for (var j=0; j Math.abs(maxValue)) { + maxLine = k; + maxValue = val; + } + } + if (maxValue === 0) { + // The matrix is not invertible. The system may still have solutions. + nullLines.push(pivot); + } else { + // The value of the pivot is maxValue + this.multline(maxLine, 1/maxValue); + this.swap(maxLine, pivot); + for (var i=0; i 0 && result[0].length === 1) { + // Convert Nx1 matrices to simple javascript arrays + for (var i=0; i>8&255; +h[d+1]=T&255},ae:function(h,d,T){var L=[];for(var e=0;e>24&255; +h[d+1]=T>>16&255;h[d+2]=T>>8&255;h[d+3]=T>>0&255},f:function(h,d){return U.B.u(h,d)*(4294967295+1)+U.B.u(h,d+4)},z:function(h,d,T){var L=""; +for(var e=0;e255)return-1; +return U.T.$.b6(h,U.T.$.a_[d])},a0:function(h,d,T){var L=U.B,e=[".notdef"],G=h[d];d++;if(G==0){for(var B=0; +B>4,m=$&15;if(x!=15)i.push(x);if(m!=15)i.push(m);if(m==15)break}var u=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"]; +for(var z=0;z>>1;T.az=e(h,d);d+=2;T.ad=e(h,d);d+=2; +T.ar=e(h,d);d+=2;T.aL=G(h,d,Y);d+=Y*2;d+=2;T.af=G(h,d,Y);d+=Y*2;T.aB=[];for(var A=0;A>>1);return T},av:function(h,d,T){var L=U.B,e=d;d+=2;var G=L.d(h,d); +d+=2;var B=L.d(h,d);d+=2;T.aU=L.d(h,d);d+=2;var f=L.d(h,d);d+=2;T.R=[];for(var O=0;O=f.ak||f.ag>=f.at)return null; +if(f.j>0){f.h=[];for(var O=0;O>>8;A&=15;if(A==0)d=G.H(h,d,O)}return O},aO:function(h,d,T,L){var e=U.B,G=U.T.U,B=e.p(h,d),f=e.u(h,d+4); +d+=8;var O={P:[],Z:[]};for(var s=0;s65535)G++;e.push(U.U.codeToGlyph(h,B))}var O=[]; +for(var G=0;G>>1);if($[V*u]<=z)F=V; +else a=V}return F*u},O=T.C[L],s=O.aw,Y=-1;if(s==0){if(d>=O.map.length)Y=0;else Y=O.map[d]}else if(s==4){var A=-1,t=O.aL; +if(d>t[t.length-1])A=-1;else{A=B(t,1,d);if(t[A]>1)-(O.m.length-A)];else k=d+O.aB[A];Y=k&65535}}else if(s==6){var i=d-O.aU,$=O.R; +if(i<0||i>=$.length)Y=0;else Y=$[i]}else if(s==12){var x=O.a9;if(d>x[x.length-2])Y=0;else{var G=B(x,3,d); +if(x[G]<=d&&d<=x[G+1]){Y=x[G+2]+(d-x[G])}if(Y==-1)Y=0}}else throw"unknown cmap table format "+O.aw;var m=h["SVG "],n=h.loca; +if(Y!=0&&h["CFF "]==null&&(m==null||m.entries[Y]==null)&&n[Y]==n[Y+1]&&[9,10,11,12,13,32,133,160,5760,8232,8233,8239,12288,6158,8203,8204,8205,8288,65279].indexOf(d)==-1&&!(8192<=d&&d<=8202))Y=0; +return Y},glyphToPath:function(h,d){var T={B:[],b:[]},L=h["SVG "],e=h["CFF "],G=h.COLR,B=U.U;if(L&&L.entries[d]){var f=L.entries[d]; +if(f!=null){if(typeof f=="string"){f=B.SVG.b7(f);L.entries[d]=f}T=f}}else if(G&&G[0]["g"+d]){function O(F){var a=F.toString(16); +return(a.length==1?"0":"")+a}var s=h.CPAL,Y=G[0]["g"+d];for(var A=0;A-1)U.U._simpleGlyph(L,T);else U.U._compoGlyph(L,d,T)}},_simpleGlyph:function(h,d){var T=U.U.P; +for(var L=0;L>1;G.length=0;f=!0}else if(y=="o3"||y=="o23"){var l;l=G.length%2!==0; +if(l&&!f){O=G.shift()+K}B+=G.length>>1;G.length=0;f=!0}else if(y=="o4"){if(G.length>1&&!f){O=G.shift()+K; +f=!0}if(s)j.D(e);t+=G.pop();j.G(e,A,t);s=!0}else if(y=="o5"){while(G.length>0){A+=G.shift();t+=G.shift(); +j.J(e,A,t)}}else if(y=="o6"||y=="o7"){var D=G.length,Q=y=="o6";for(var o=0;oMath.abs(F-t)){A=z+G.shift()}else{t=F+G.shift()}j.l(e,k,$,x,m,H,b); +j.l(e,n,u,z,F,A,t)}}else if(y=="o14"){if(G.length>0&&!f){O=G.shift()+T.nominalWidthX;f=!0}if(G.length==4){var a9=0,_=G.shift(),I=G.shift(),ah=G.shift(),a6=G.shift(),ae=g.Y(T,ah),a4=g.Y(T,a6); +U.U._drawCFF(T.CharStrings[ae],d,T,L,e);d.x=_;d.y=I;U.U._drawCFF(T.CharStrings[a4],d,T,L,e)}if(s){j.D(e); +s=!1}}else if(y=="o19"||y=="o20"){var l;l=G.length%2!==0;if(l&&!f){O=G.shift()+K}B+=G.length>>1;G.length=0; +f=!0;Y+=B+7>>3}else if(y=="o21"){if(G.length>2&&!f){O=G.shift()+K;f=!0}t+=G.pop();A+=G.pop();if(s)j.D(e); +j.G(e,A,t);s=!0}else if(y=="o22"){if(G.length>1&&!f){O=G.shift()+K;f=!0}A+=G.pop();if(s)j.D(e);j.G(e,A,t); +s=!0}else if(y=="o25"){while(G.length>6){A+=G.shift();t+=G.shift();j.J(e,A,t)}k=A+G.shift();$=t+G.shift(); +x=k+G.shift();m=$+G.shift();A=x+G.shift();t=m+G.shift();j.l(e,k,$,x,m,A,t)}else if(y=="o26"){if(G.length%2){A+=G.shift()}while(G.length>0){k=A; +$=t+G.shift();x=k+G.shift();m=$+G.shift();A=x;t=m+G.shift();j.l(e,k,$,x,m,A,t)}}else if(y=="o27"){if(G.length%2){t+=G.shift()}while(G.length>0){k=A+G.shift(); +$=t;x=k+G.shift();m=$+G.shift();A=x+G.shift();t=m;j.l(e,k,$,x,m,A,t)}}else if(y=="o10"||y=="o29"){var C=y=="o10"?L:T; +if(G.length==0){console.log("error: empty stack")}else{var S=G.pop(),q=C.Subrs[S+C.Bias];d.x=A;d.y=t; +d.N=B;d.w=f;d.width=O;d.open=s;U.U._drawCFF(q,d,T,L,e);A=d.x;t=d.y;B=d.N;f=d.w;O=d.width;s=d.open}}else if(y=="o30"||y=="o31"){var D,X=G.length,r=0,c=y=="o31"; +D=X&~2;r+=X-D;while(r0&&A[i-1]!="e"){A=A.slice(0,i)+" "+A.slice(i); +i++;k=!0}}A=A.split(/\s*[\s,]\s*/).map(parseFloat);if(!1){}else if(Y=="translate"){if(A.length==1)h.translate(t,A[0],0); +else h.translate(t,A[0],A[1])}else if(Y=="scale"){if(A.length==1)h.scale(t,A[0],A[0]);else h.scale(t,A[0],A[1])}else if(Y=="rotate"){var x=0,m=0; +if(A.length!=1){x=A[1];m=A[2]}h.translate(t,-x,-m);h.rotate(t,-Math.PI*A[0]/180);h.translate(t,x,m)}else if(Y=="matrix")t=A; +else console.log("unknown transform: ",Y);return t}function G(Y){var A={B:[],b:[]};if(Y==null)return A; +var t=new DOMParser,k=t.parseFromString(Y,"image/svg+xml"),i=k.getElementsByTagName("svg")[0],$=i.getAttribute("viewBox"); +if($)$=$.trim().split(" ").map(parseFloat);else $=[0,0,1e3,1e3];B(i.children,A);for(var x=0;x=0?1:-1)*Math.acos(Math.max(-1,Math.min(1,as)))},a7=(X-ao)/I,aj=(c-a2)/v,am=ab(1,0,a7,aj),au=ab(a7,aj,(-X-ao)/I,(-c-a2)/v); +au=au%(2*Math.PI);var ac=function(a8,i,$,R,P,M,E){var a5=function(w,Z){var an=Math.sin(Z),p=Math.cos(Z),Z=w[0],ai=w[1],ad=w[2],Y=w[3]; +w[0]=Z*p+ai*an;w[1]=-Z*an+ai*p;w[2]=ad*p+Y*an;w[3]=-ad*an+Y*p},N=function(w,Z){for(var K=0;KP)M-=2*Math.PI;else while(M>>2,z=e.hb_buffer_get_glyph_positions(x,0)>>>2; +for(var F=0;F>>16)+4)}B=new Uint8Array(G.buffer);f=new Uint32Array(G.buffer);O=new Int32Array(G.buffer); +if(s!=z){if(Y!=null){e.hb_blob_destroy(Y);e.free(A);e.hb_face_destroy(t);e.hb_font_destroy(k)}A=e.malloc(u.byteLength); +B.set(u,A);Y=e.hb_blob_create(A,u.byteLength,2,0,0);t=e.hb_face_create(Y,0);k=e.hb_font_create(t);s=z}if(window.TextEncoder==null){alert("Your browser is too old. Please, update it."); +return}if($==null)$=new window.TextEncoder("utf8");var V=e.hb_buffer_create(),H=$.encode(m),b=H.length,g=e.malloc(b); +B.set(H,g);e.hb_buffer_add_utf8(V,g,b,0,b);e.free(g);e.hb_buffer_set_direction(V,n?4:5);e.hb_buffer_guess_segment_properties(V); +e.hb_shape(k,V,0,0);var j=i(V);e.hb_buffer_destroy(V);var K=j.slice(0);if(!n)K.reverse();for(var l=1; +l8514000) { + //console.log(PUtils.readASCII(buf , 8514500, 500)); + //console.log(PUtils.readASCII(nbuf, 8514500, 500)); + } + for(var i=0; i>>4); + //console.log(CM, CINFO,CMF,FLG); + return UZIP.inflateRaw(new Uint8Array(file.buffer, file.byteOffset+2, file.length-6), buf); +} +UZIP.deflate = function(data, opts/*, buf, off*/) { + if(opts==null) opts={level:6}; + var off=0, buf=new Uint8Array(50+Math.floor(data.length*1.1)); + buf[off]=120; buf[off+1]=156; off+=2; + off = UZIP.F.deflateRaw(data, buf, off, opts.level); + var crc = UZIP.adler(data, 0, data.length); + buf[off+0]=((crc>>>24)&255); + buf[off+1]=((crc>>>16)&255); + buf[off+2]=((crc>>> 8)&255); + buf[off+3]=((crc>>> 0)&255); + return new Uint8Array(buf.buffer, 0, off+4); +} +UZIP.deflateRaw = function(data, opts) { + if(opts==null) opts={level:6}; + var buf=new Uint8Array(50+Math.floor(data.length*1.1)); + var off = UZIP.F.deflateRaw(data, buf, off, opts.level); + return new Uint8Array(buf.buffer, 0, off); +} + + +UZIP.encode = function(obj, noCmpr) { + if(noCmpr==null) noCmpr=false; + var tot = 0, wUi = UZIP.bin.writeUint, wUs = UZIP.bin.writeUshort; + var zpd = {}; + for(var p in obj) { var cpr = !UZIP._noNeed(p) && !noCmpr, buf = obj[p], crc = UZIP.crc.crc(buf,0,buf.length); + zpd[p] = { cpr:cpr, usize:buf.length, crc:crc, file: (cpr ? UZIP.deflateRaw(buf) : buf) }; } + + for(var p in zpd) tot += zpd[p].file.length + 30 + 46 + 2*UZIP.bin.sizeUTF8(p); + tot += 22; + + var data = new Uint8Array(tot), o = 0; + var fof = [] + + for(var p in zpd) { + var file = zpd[p]; fof.push(o); + o = UZIP._writeHeader(data, o, p, file, 0); + } + var i=0, ioff = o; + for(var p in zpd) { + var file = zpd[p]; fof.push(o); + o = UZIP._writeHeader(data, o, p, file, 1, fof[i++]); + } + var csize = o-ioff; + + wUi(data, o, 0x06054b50); o+=4; + o += 4; // disks + wUs(data, o, i); o += 2; + wUs(data, o, i); o += 2; // number of c d records + wUi(data, o, csize); o += 4; + wUi(data, o, ioff ); o += 4; + o += 2; + return data.buffer; +} +// no need to compress .PNG, .ZIP, .JPEG .... +UZIP._noNeed = function(fn) { var ext = fn.split(".").pop().toLowerCase(); return "png,jpg,jpeg,zip".indexOf(ext)!=-1; } + +UZIP._writeHeader = function(data, o, p, obj, t, roff) +{ + var wUi = UZIP.bin.writeUint, wUs = UZIP.bin.writeUshort; + var file = obj.file; + + wUi(data, o, t==0 ? 0x04034b50 : 0x02014b50); o+=4; // sign + if(t==1) o+=2; // ver made by + wUs(data, o, 20); o+=2; // ver + wUs(data, o, 2048); o+=2; // gflip + wUs(data, o, obj.cpr?8:0); o+=2; // cmpr + + wUi(data, o, 0); o+=4; // time + wUi(data, o, obj.crc); o+=4; // crc32 + wUi(data, o, file.length); o+=4; // csize + wUi(data, o, obj.usize); o+=4; // usize + + wUs(data, o, UZIP.bin.sizeUTF8(p)); o+=2; // nlen + wUs(data, o, 0); o+=2; // elen + + if(t==1) { + o += 2; // comment length + o += 2; // disk number + o += 6; // attributes + wUi(data, o, roff); o+=4; // usize + } + var nlen = UZIP.bin.writeUTF8(data, o, p); o+= nlen; + if(t==0) { data.set(file, o); o += file.length; } + return o; +} + + + + + +UZIP.crc = { + table : ( function() { + var tab = new Uint32Array(256); + for (var n=0; n<256; n++) { + var c = n; + for (var k=0; k<8; k++) { + if (c & 1) c = 0xedb88320 ^ (c >>> 1); + else c = c >>> 1; + } + tab[n] = c; } + return tab; })(), + update : function(c, buf, off, len) { + for (var i=0; i>> 8); + return c; + }, + crc : function(b,o,l) { return UZIP.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; } +} +UZIP.adler = function(data,o,len) { + var a = 1, b = 0; + var off = o, end=o+len; + while(off>8)&255; }, + readUint : function(buff,p) { return (buff[p+3]*(256*256*256)) + ((buff[p+2]<<16) | (buff[p+1]<< 8) | buff[p]); }, + writeUint : function(buff,p,n){ buff[p]=n&255; buff[p+1]=(n>>8)&255; buff[p+2]=(n>>16)&255; buff[p+3]=(n>>24)&255; }, + readASCII : function(buff,p,l){ var s = ""; for(var i=0; i> 6)); buff[p+i+1] = (128|((code>> 0)&63)); i+=2; } + else if((code&(0xffffffff-(1<<16)+1))==0) { buff[p+i] = (224|(code>>12)); buff[p+i+1] = (128|((code>> 6)&63)); buff[p+i+2] = (128|((code>>0)&63)); i+=3; } + else if((code&(0xffffffff-(1<<21)+1))==0) { buff[p+i] = (240|(code>>18)); buff[p+i+1] = (128|((code>>12)&63)); buff[p+i+2] = (128|((code>>6)&63)); buff[p+i+3] = (128|((code>>0)&63)); i+=4; } + else throw "e"; + } + return i; + }, + sizeUTF8 : function(str) { + var strl = str.length, i=0; + for(var ci=0; ci>>3; + } + + var lits = U.lits, strt=U.strt, prev=U.prev, li=0, lc=0, bs=0, ebits=0, c=0, nc=0; // last_item, literal_count, block_start + if(dlen>2) { nc=UZIP.F._hash(data,0); strt[nc]=0; } + var nmch=0,nmci=0; + + for(i=0; i14000 || lc>26697) && (dlen-i)>100) { + if(cvrd>>16)>>16)>(mch>>>16)) mch=0; + }//*/ + var len = mch>>>16, dst = mch&0xffff; //if(i-dst<0) throw "e"; + if(mch!=0) { + var len = mch>>>16, dst = mch&0xffff; //if(i-dst<0) throw "e"; + var lgi = goodIndex(len, U.of0); U.lhst[257+lgi]++; + var dgi = goodIndex(dst, U.df0); U.dhst[ dgi]++; ebits += U.exb[lgi] + U.dxb[dgi]; + lits[li] = (len<<23)|(i-cvrd); lits[li+1] = (dst<<16)|(lgi<<8)|dgi; li+=2; + cvrd = i + len; + } + else { U.lhst[data[i]]++; } + lc++; + } + } + if(bs!=i || data.length==0) { + if(cvrd>>3; +} +UZIP.F._bestMatch = function(data, i, prev, c, nice, chain) { + var ci = (i&0x7fff), pi=prev[ci]; + //console.log("----", i); + var dif = ((ci-pi + (1<<15)) & 0x7fff); if(pi==ci || c!=UZIP.F._hash(data,i-dif)) return 0; + var tl=0, td=0; // top length, top distance + var dlim = Math.min(0x7fff, i); + while(dif<=dlim && --chain!=0 && pi!=ci /*&& c==UZIP.F._hash(data,i-dif)*/) { + if(tl==0 || (data[i+tl]==data[i+tl-dif])) { + var cl = UZIP.F._howLong(data, i, dif); + if(cl>tl) { + tl=cl; td=dif; if(tl>=nice) break; //* + if(dif+2maxd) { maxd=curd; pi = ei; } + } //*/ + } + } + + ci=pi; pi = prev[ci]; + dif += ((ci-pi + (1<<15)) & 0x7fff); + } + return (tl<<16)|td; +} +UZIP.F._howLong = function(data, i, dif) { + if(data[i]!=data[i-dif] || data[i+1]!=data[i+1-dif] || data[i+2]!=data[i+2-dif]) return 0; + var oi=i, l = Math.min(data.length, i+258); i+=3; + //while(i+4>>23), end = off+(qb&((1<<23)-1)); + while(off>16), lgi=(qc>>8)&255, dgi=(qc&255); + pos = UZIP.F._writeLit(257+lgi, ltree, out, pos); + putsE(out, pos, len-U.of0[lgi]); pos+=U.exb[lgi]; + + pos = UZIP.F._writeLit(dgi, dtree, out, pos); + putsF(out, pos, dst-U.df0[dgi]); pos+=U.dxb[dgi]; off+=len; + } + } + pos = UZIP.F._writeLit(256, ltree, out, pos); + } + //console.log(pos-opos, fxdSize, dynSize, cstSize); + return pos; +} +UZIP.F._copyExact = function(data,off,len,out,pos) { + var p8 = (pos>>>3); + out[p8]=(len); out[p8+1]=(len>>>8); out[p8+2]=255-out[p8]; out[p8+3]=255-out[p8+1]; p8+=4; + out.set(new Uint8Array(data.buffer, off, len), p8); + //for(var i=0; i4 && U.itree[(U.ordr[numh-1]<<1)+1]==0) numh--; + return [ML, MD, MH, numl, numd, numh, lset, dset]; +} +UZIP.F.getSecond= function(a) { var b=[]; for(var i=0; i>1)+","; return b; } +UZIP.F.contSize = function(tree, hst) { var s=0; for(var i=0; i15) { UZIP.F._putsE(out, pos, rst, rsl); pos+=rsl; } + } + return pos; +} +UZIP.F._lenCodes = function(tree, set) { + var len=tree.length; while(len!=2 && tree[len-1]==0) len-=2; // when no distances, keep one code with length 0 + for(var i=0; i>>1, 138); + if(zc<11) set.push(17, zc-3); + else set.push(18, zc-11); + i += zc*2-2; + } + else if(l==prv && nxt==l && nnxt==l) { + var lz = i+5; + while(lz+2>>1, 6); + set.push(16, zc-3); + i += zc*2-2; + } + else set.push(l, 0); + } + return len>>>1; +} +UZIP.F._hufTree = function(hst, tree, MAXL) { + var list=[], hl = hst.length, tl=tree.length, i=0; + for(i=0; iMAXL) { UZIP.F.restrictDepth(l2, MAXL, maxl); maxl = MAXL; } + for(i=0; iMD) { var od=dps[i].d; dps[i].d=MD; dbt+=bCost-(1<<(maxl-od)); } else break; + dbt = dbt>>>(maxl-MD); + while(dbt>0) { var od=dps[i].d; if(od=0; i--) if(dps[i].d==MD && dbt<0) { dps[i].d--; dbt++; } if(dbt!=0) console.log("debt left"); +} + +UZIP.F._goodIndex = function(v, arr) { + var i=0; if(arr[i|16]<=v) i|=16; if(arr[i|8]<=v) i|=8; if(arr[i|4]<=v) i|=4; if(arr[i|2]<=v) i|=2; if(arr[i|1]<=v) i|=1; return i; +} +UZIP.F._writeLit = function(ch, ltree, out, pos) { + UZIP.F._putsF(out, pos, ltree[ch<<1]); + return pos+ltree[(ch<<1)+1]; +} + + + + + + + + +UZIP.F.inflate = function(data, buf) { + var u8=Uint8Array; + if(data[0]==3 && data[1]==0) return (buf ? buf : new u8(0)); + var F=UZIP.F, bitsF = F._bitsF, bitsE = F._bitsE, decodeTiny = F._decodeTiny, makeCodes = F.makeCodes, codes2map=F.codes2map, get17 = F._get17; + var U = F.U; + + var noBuf = (buf==null); + if(noBuf) buf = new u8((data.length>>>2)<<3); + + var BFINAL=0, BTYPE=0, HLIT=0, HDIST=0, HCLEN=0, ML=0, MD=0; + var off = 0, pos = 0; + var lmap, dmap; + + while(BFINAL==0) { + BFINAL = bitsF(data, pos , 1); + BTYPE = bitsF(data, pos+1, 2); pos+=3; + //console.log(BFINAL, BTYPE); + + if(BTYPE==0) { + if((pos&7)!=0) pos+=8-(pos&7); + var p8 = (pos>>>3)+4, len = data[p8-4]|(data[p8-3]<<8); //console.log(len);//bitsF(data, pos, 16), + if(noBuf) buf=UZIP.F._check(buf, off+len); + buf.set(new u8(data.buffer, data.byteOffset+p8, len), off); + //for(var i=0; itl)tl=l; } pos+=3*HCLEN; //console.log(itree); + makeCodes(U.itree, tl); + codes2map(U.itree, tl, U.imap); + + lmap = U.lmap; dmap = U.dmap; + + pos = decodeTiny(U.imap, (1<>>24))-1; pos+=(ml&0xffffff); + makeCodes(U.ltree, mx0); + codes2map(U.ltree, mx0, lmap); + + //var md = decodeTiny(U.imap, (1<>>24))-1; pos+=(md&0xffffff); + makeCodes(U.dtree, mx1); + codes2map(U.dtree, mx1, dmap); + } + //var ooff=off, opos=pos; + while(true) { + var code = lmap[get17(data, pos) & ML]; pos += code&15; + var lit = code>>>4; //U.lhst[lit]++; + if((lit>>>8)==0) { buf[off++] = lit; } + else if(lit==256) { break; } + else { + var end = off+lit-254; + if(lit>264) { var ebs = U.ldef[lit-257]; end = off + (ebs>>>3) + bitsE(data, pos, ebs&7); pos += ebs&7; } + //UZIP.F.dst[end-off]++; + + var dcode = dmap[get17(data, pos) & MD]; pos += dcode&15; + var dlit = dcode>>>4; + var dbs = U.ddef[dlit], dst = (dbs>>>4) + bitsF(data, pos, dbs&15); pos += dbs&15; + + //var o0 = off-dst, stp = Math.min(end-off, dst); + //if(stp>20) while(off>>3); + } + //console.log(UZIP.F.dst); + //console.log(tlen, dlen, off-tlen+tcnt); + return buf.length==off ? buf : buf.slice(0,off); +} +UZIP.F._check=function(buf, len) { + var bl=buf.length; if(len<=bl) return buf; + var nbuf = new Uint8Array(Math.max(bl<<1,len)); nbuf.set(buf,0); + //for(var i=0; i>>4; + if(lit<=15) { tree[i]=lit; i++; } + else { + var ll = 0, n = 0; + if(lit==16) { + n = (3 + bitsE(data, pos, 2)); pos += 2; ll = tree[i-1]; + } + else if(lit==17) { + n = (3 + bitsE(data, pos, 3)); pos += 3; + } + else if(lit==18) { + n = (11 + bitsE(data, pos, 7)); pos += 7; + } + var ni = i+n; + while(i>>1; + while(imx)mx=v; i++; } + while(i>1; + var cl = tree[i+1], val = (lit<<4)|cl; // : (0x8000 | (U.of0[lit-257]<<7) | (U.exb[lit-257]<<4) | cl); + var rest = (MAX_BITS-cl), i0 = tree[i]<>>(15-MAX_BITS); + while(i0!=i1) { + var p0 = r15[i0]>>>(15-MAX_BITS); + map[p0]=val; i0++; + } + } +} +UZIP.F.revCodes = function(tree, MAX_BITS) { + var r15 = UZIP.F.U.rev15, imb = 15-MAX_BITS; + for(var i=0; i>>imb; } +} + +// used only in deflate +UZIP.F._putsE= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); } +UZIP.F._putsF= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); dt[o+2]|=(val>>>16); } + +UZIP.F._bitsE= function(dt, pos, length) { return ((dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) )>>>(pos&7))&((1<>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16))>>>(pos&7))&((1<>>3] | (dt[(pos>>>3)+1]<<8))>>>(pos&7))&511; +} */ +UZIP.F._get17= function(dt, pos) { // return at least 17 meaningful bytes + return (dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16) )>>>(pos&7); +} +UZIP.F._get25= function(dt, pos) { // return at least 17 meaningful bytes + return (dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16) | (dt[(pos>>>3)+3]<<24) )>>>(pos&7); +} +UZIP.F.U = function(){ + var u16=Uint16Array, u32=Uint32Array; + return { + next_code : new u16(16), + bl_count : new u16(16), + ordr : [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], + of0 : [3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999], + exb : [0,0,0,0,0,0,0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0], + ldef : new u16(32), + df0 : [1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577, 65535, 65535], + dxb : [0,0,0,0,1,1,2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0], + ddef : new u32(32), + flmap: new u16( 512), fltree: [], + fdmap: new u16( 32), fdtree: [], + lmap : new u16(32768), ltree : [], ttree:[], + dmap : new u16(32768), dtree : [], + imap : new u16( 512), itree : [], + //rev9 : new u16( 512) + rev15: new u16(1<<15), + lhst : new u32(286), dhst : new u32( 30), ihst : new u32(19), + lits : new u32(15000), + strt : new u16(1<<16), + prev : new u16(1<<15) + }; +} (); + +(function(){ + var U = UZIP.F.U; + var len = 1<<15; + for(var i=0; i>> 1) | ((x & 0x55555555) << 1)); + x = (((x & 0xcccccccc) >>> 2) | ((x & 0x33333333) << 2)); + x = (((x & 0xf0f0f0f0) >>> 4) | ((x & 0x0f0f0f0f) << 4)); + x = (((x & 0xff00ff00) >>> 8) | ((x & 0x00ff00ff) << 8)); + U.rev15[i] = (((x >>> 16) | (x << 16)))>>>17; + } + + function pushV(tgt, n, sv) { while(n--!=0) tgt.push(0,sv); } + + for(var i=0; i<32; i++) { U.ldef[i]=(U.of0[i]<<3)|U.exb[i]; U.ddef[i]=(U.df0[i]<<4)|U.dxb[i]; } + + pushV(U.fltree, 144, 8); pushV(U.fltree, 255-143, 9); pushV(U.fltree, 279-255, 7); pushV(U.fltree,287-279,8); + /* + var i = 0; + for(; i<=143; i++) U.fltree.push(0,8); + for(; i<=255; i++) U.fltree.push(0,9); + for(; i<=279; i++) U.fltree.push(0,7); + for(; i<=287; i++) U.fltree.push(0,8); + */ + UZIP.F.makeCodes(U.fltree, 9); + UZIP.F.codes2map(U.fltree, 9, U.flmap); + UZIP.F.revCodes (U.fltree, 9) + + pushV(U.fdtree,32,5); + //for(i=0;i<32; i++) U.fdtree.push(0,5); + UZIP.F.makeCodes(U.fdtree, 5); + UZIP.F.codes2map(U.fdtree, 5, U.fdmap); + UZIP.F.revCodes (U.fdtree, 5) + + pushV(U.itree,19,0); pushV(U.ltree,286,0); pushV(U.dtree,30,0); pushV(U.ttree,320,0); + /* + for(var i=0; i< 19; i++) U.itree.push(0,0); + for(var i=0; i<286; i++) U.ltree.push(0,0); + for(var i=0; i< 30; i++) U.dtree.push(0,0); + for(var i=0; i<320; i++) U.ttree.push(0,0); + */ +})() + + +var paper=function(t,e){var i=(t=t||require("./node/self.js")).window,n=t.document,r=new function(){function t(t,e,r,s,a){function u(n,u){"string"==typeof(u=u||(u=o(e,n))&&(u.get?u:u.value))&&"#"===u[0]&&(u=t[u.substring(1)]||u);var c,f="function"==typeof u,d=u,_=a||f&&!u.base?u&&u.get?n in t:t[n]:null;a&&_||(f&&_&&(u.base=_),f&&!1!==s&&(c=n.match(/^([gs]et|is)(([A-Z])(.*))$/))&&(l[c[3].toLowerCase()+c[4]]=c[2]),d&&!f&&d.get&&"function"==typeof d.get&&i.isPlainObject(d)||(d={value:d,writable:!0}),(o(t,n)||{configurable:!0}).configurable&&(d.configurable=!0,d.enumerable=null!=r?r:!c),h(t,n,d))}var l={};if(e){for(var c in e)e.hasOwnProperty(c)&&!n.test(c)&&u(c);for(var c in l){var f=l[c],d=t["set"+f],_=t["get"+f]||d&&t["is"+f];!_||!0!==s&&0!==_.length||u(c,{get:_,set:d})}}return t}function i(){for(var t=0,e=arguments.length;t0||u+s0?[["dictionary",n.definitions],s]:s},deserialize:function(t,e,i,n,s){var a=t,o=!i,h=o&&t&&t.length&&"dictionary"===t[0][0];if(i=i||{},Array.isArray(t)){var u=t[0],l="dictionary"===u;if(1==t.length&&/^#/.test(u))return i.dictionary[u];a=[];for(var c=(u=r.exports[u])?1:0,f=t.length;ct.length&&(n=t.length);for(u=0;u0){var s=e[r],a=s&&s[n];a&&a.call(this,r)}},statics:{inject:function t(e){var i=e._events;if(i){var n={};r.each(i,function(t,i){var s="string"==typeof t,a=s?t:i,o=r.capitalize(a),h=a.substring(2).toLowerCase();n[h]=s?{}:t,a="_"+a,e["get"+o]=function(){return this[a]},e["set"+o]=function(t){var e=this[a];e&&this.off(h,e),t&&this.on(h,t),this[a]=t}}),e._eventTypes=n}return t.base.apply(this,arguments)}}},a=r.extend({_class:"PaperScope",initialize:function e(){paper=this,this.settings=new r({applyMatrix:!0,insertItems:!0,handleSize:4,hitTolerance:0}),this.project=null,this.projects=[],this.tools=[],this._id=e._id++,e._scopes[this._id]=this;var i=e.prototype;if(!this.support){var n=Q.getContext(1,1)||{};i.support={nativeDash:"setLineDash"in n||"mozDash"in n,nativeBlendModes:tt.nativeModes},Q.release(n)}if(!this.agent){var s=t.navigator.userAgent.toLowerCase(),a=(/(darwin|win|mac|linux|freebsd|sunos)/.exec(s)||[])[0],o="darwin"===a?"mac":a,h=i.agent=i.browser={platform:o};o&&(h[o]=!0),s.replace(/(opera|chrome|safari|webkit|firefox|msie|trident|atom|node)\/?\s*([.\d]+)(?:.*version\/([.\d]+))?(?:.*rv\:v?([.\d]+))?/g,function(t,e,i,n,r){if(!h.chrome){var s="opera"===e?n:/^(node|trident)$/.test(e)?r:i;h.version=s,h.versionNumber=parseFloat(s),e="trident"===e?"msie":e,h.name=e,h[e]=!0}}),h.chrome&&delete h.webkit,h.atom&&delete h.chrome}},version:"0.11.5",getView:function(){var t=this.project;return t&&t._view},getPaper:function(){return this},execute:function(t,e){paper.PaperScript.execute(t,this,e),U.updateFocus()},install:function(t){var e=this;r.each(["project","view","tool"],function(i){r.define(t,i,{configurable:!0,get:function(){return e[i]}})});for(var i in this)!/^_/.test(i)&&this[i]&&(t[i]=this[i])},setup:function(t){return paper=this,this.project=new y(t),this},createCanvas:function(t,e){return Q.getCanvas(t,e)},activate:function(){paper=this},clear:function(){for(var t=this.projects,e=this.tools,i=t.length-1;i>=0;i--)t[i].remove();for(i=e.length-1;i>=0;i--)e[i].remove()},remove:function(){this.clear(),delete a._scopes[this._id]},statics:new function(){function t(t){return t+="Attribute",function(e,i){return e[t](i)||e[t]("data-paper-"+i)}}return{_scopes:{},_id:0,get:function(t){return this._scopes[t]||null},getAttribute:t("get"),hasAttribute:t("has")}}}),o=r.extend(s,{initialize:function(t){this._scope=paper,this._index=this._scope[this._list].push(this)-1,!t&&this._scope[this._reference]||this.activate()},activate:function(){if(!this._scope)return!1;var t=this._scope[this._reference];return t&&t!==this&&t.emit("deactivate"),this._scope[this._reference]=this,this.emit("activate",t),!0},isActive:function(){return this._scope[this._reference]===this},remove:function(){return null!=this._index&&(r.splice(this._scope[this._list],null,this._index,1),this._scope[this._reference]==this&&(this._scope[this._reference]=null),this._scope=null,!0)},getView:function(){return this._scope.getView()}}),h=r.extend({initialize:function(t){this.precision=r.pick(t,5),this.multiplier=Math.pow(10,this.precision)},number:function(t){return this.precision<16?Math.round(t*this.multiplier)/this.multiplier:t},pair:function(t,e,i){return this.number(t)+(i||",")+this.number(e)},point:function(t,e){return this.number(t.x)+(e||",")+this.number(t.y)},size:function(t,e){return this.number(t.width)+(e||",")+this.number(t.height)},rectangle:function(t,e){return this.point(t,e)+(e||",")+this.size(t,e)}});h.instance=new h;var u=new function(){function t(t,e,i){return ti?i:t}function e(t,e,i){function n(t){var e=134217729*t,i=t-e+e;return[i,t-i]}var r=e*e-t*i,a=e*e+t*i;if(3*s(r)1e8)?o(2,-Math.round(h(t))):0}var n=[[.5773502691896257],[0,.7745966692414834],[.33998104358485626,.8611363115940526],[0,.5384693101056831,.906179845938664],[.2386191860831969,.6612093864662645,.932469514203152],[0,.4058451513773972,.7415311855993945,.9491079123427585],[.1834346424956498,.525532409916329,.7966664774136267,.9602898564975363],[0,.3242534234038089,.6133714327005904,.8360311073266358,.9681602395076261],[.14887433898163122,.4333953941292472,.6794095682990244,.8650633666889845,.9739065285171717],[0,.26954315595234496,.5190961292068118,.7301520055740494,.8870625997680953,.978228658146057],[.1252334085114689,.3678314989981802,.5873179542866175,.7699026741943047,.9041172563704749,.9815606342467192],[0,.2304583159551348,.44849275103644687,.6423493394403402,.8015780907333099,.9175983992229779,.9841830547185881],[.10805494870734367,.31911236892788974,.5152486363581541,.6872929048116855,.827201315069765,.9284348836635735,.9862838086968123],[0,.20119409399743451,.3941513470775634,.5709721726085388,.7244177313601701,.8482065834104272,.937273392400706,.9879925180204854],[.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]],r=[[1],[.8888888888888888,.5555555555555556],[.6521451548625461,.34785484513745385],[.5688888888888889,.47862867049936647,.23692688505618908],[.46791393457269104,.3607615730481386,.17132449237917036],[.4179591836734694,.3818300505051189,.27970539148927664,.1294849661688697],[.362683783378362,.31370664587788727,.22238103445337448,.10122853629037626],[.3302393550012598,.31234707704000286,.26061069640293544,.1806481606948574,.08127438836157441],[.29552422471475287,.26926671930999635,.21908636251598204,.1494513491505806,.06667134430868814],[.2729250867779006,.26280454451024665,.23319376459199048,.18629021092773426,.1255803694649046,.05566856711617366],[.24914704581340277,.2334925365383548,.20316742672306592,.16007832854334622,.10693932599531843,.04717533638651183],[.2325515532308739,.22628318026289723,.2078160475368885,.17814598076194574,.13887351021978725,.09212149983772845,.04048400476531588],[.2152638534631578,.2051984637212956,.18553839747793782,.15720316715819355,.12151857068790319,.08015808715976021,.03511946033175186],[.2025782419255613,.19843148532711158,.1861610000155622,.16626920581699392,.13957067792615432,.10715922046717194,.07036604748810812,.03075324199611727],[.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096]],s=Math.abs,a=Math.sqrt,o=Math.pow,h=Math.log2||function(t){return Math.log(t)*Math.LOG2E};return{EPSILON:1e-12,MACHINE_EPSILON:1.12e-16,CURVETIME_EPSILON:1e-8,GEOMETRIC_EPSILON:1e-7,TRIGONOMETRIC_EPSILON:1e-8,KAPPA:4*(a(2)-1)/3,isZero:function(t){return t>=-1e-12&&t<=1e-12},clamp:t,integrate:function(t,e,i,s){for(var a=n[s-2],o=r[s-2],h=.5*(i-e),u=h+e,l=0,c=s+1>>1,f=1&s?o[l++]*t(u):0;l0?(a=n,n=f<=r?.5*(r+a):f):(r=n,n=f>=a?.5*(r+a):f)}return t(n,r,a)},solveQuadratic:function(n,r,o,h,u,l){var c,f=1/0;if(s(n)<1e-12){if(s(r)<1e-12)return s(o)<1e-12?-1:0;c=-o/r}else{var d=e(n,r*=-.5,o);if(d&&s(d)<1.12e-16){var _=i(s(n),s(r),s(o));_&&(d=e(n*=_,r*=_,o*=_))}if(d>=-1.12e-16){var g=d<0?0:a(d),v=r+(r<0?-g:g);0===v?f=-(c=o/n):(c=v/n,f=o/v)}}var p=0,m=null==u,y=u-1e-12,w=l+1e-12;return isFinite(c)&&(m||c>y&&cy&&f0?1.324717957244746*Math.max(x,a(C)):x,P=_-b*S;if(P!==_){do{d(P),P=0===p?_:_-m/p/(1+1.12e-16)}while(b*P>b*_);s(e)*_*_>s(h/_)&&(g=((v=-h/_)-r)/_)}}var I=u.solveQuadratic(e,g,v,l,c,f),M=null==c;return isFinite(_)&&(0===I||I>0&&_!==l[0]&&_!==l[1])&&(M||_>c-1e-12&&_1?a[1]:a[0])):"x"in a?this._set(a.x||0,a.y||0):"width"in a?this._set(a.width||0,a.height||0):"angle"in a?(this._set(a.length||0,0),this.setAngle(a.angle||0)):(this._set(0,0),r=0)}return n&&(this.__read=r),this},set:"#initialize",_set:function(t,e){return this.x=t,this.y=e,this},equals:function(t){return this===t||t&&(this.x===t.x&&this.y===t.y||Array.isArray(t)&&this.x===t[0]&&this.y===t[1])||!1},clone:function(){return new c(this.x,this.y)},toString:function(){var t=h.instance;return"{ x: "+t.number(this.x)+", y: "+t.number(this.y)+" }"},_serialize:function(t){var e=t.formatter;return[e.number(this.x),e.number(this.y)]},getLength:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},setLength:function(t){if(this.isZero()){var e=this._angle||0;this._set(Math.cos(e)*t,Math.sin(e)*t)}else{var i=t/this.getLength();u.isZero(i)&&this.getAngle(),this._set(this.x*i,this.y*i)}},getAngle:function(){return 180*this.getAngleInRadians.apply(this,arguments)/Math.PI},setAngle:function(t){this.setAngleInRadians.call(this,t*Math.PI/180)},getAngleInDegrees:"#getAngle",setAngleInDegrees:"#setAngle",getAngleInRadians:function(){if(arguments.length){var t=c.read(arguments),e=this.getLength()*t.getLength();if(u.isZero(e))return NaN;var i=this.dot(t)/e;return Math.acos(i<-1?-1:i>1?1:i)}return this.isZero()?this._angle||0:this._angle=Math.atan2(this.y,this.x)},setAngleInRadians:function(t){if(this._angle=t,!this.isZero()){var e=this.getLength();this._set(Math.cos(t)*e,Math.sin(t)*e)}},getQuadrant:function(){return this.x>=0?this.y>=0?1:4:this.y>=0?2:3}},{beans:!1,getDirectedAngle:function(){var t=c.read(arguments);return 180*Math.atan2(this.cross(t),this.dot(t))/Math.PI},getDistance:function(){var t=c.read(arguments),e=t.x-this.x,i=t.y-this.y,n=e*e+i*i;return r.read(arguments)?n:Math.sqrt(n)},normalize:function(t){t===e&&(t=1);var i=this.getLength(),n=0!==i?t/i:0,r=new c(this.x*n,this.y*n);return n>=0&&(r._angle=this._angle),r},rotate:function(t,e){if(0===t)return this.clone();t=t*Math.PI/180;var i=e?this.subtract(e):this,n=Math.sin(t),r=Math.cos(t);return i=new c(i.x*r-i.y*n,i.x*n+i.y*r),e?i.add(e):i},transform:function(t){return t?t._transformPoint(this):this},add:function(){var t=c.read(arguments);return new c(this.x+t.x,this.y+t.y)},subtract:function(){var t=c.read(arguments);return new c(this.x-t.x,this.y-t.y)},multiply:function(){var t=c.read(arguments);return new c(this.x*t.x,this.y*t.y)},divide:function(){var t=c.read(arguments);return new c(this.x/t.x,this.y/t.y)},modulo:function(){var t=c.read(arguments);return new c(this.x%t.x,this.y%t.y)},negate:function(){return new c(-this.x,-this.y)},isInside:function(){return g.read(arguments).contains(this)},isClose:function(){var t=c.read(arguments),e=r.read(arguments);return this.getDistance(t)<=e},isCollinear:function(){var t=c.read(arguments);return c.isCollinear(this.x,this.y,t.x,t.y)},isColinear:"#isCollinear",isOrthogonal:function(){var t=c.read(arguments);return c.isOrthogonal(this.x,this.y,t.x,t.y)},isZero:function(){var t=u.isZero;return t(this.x)&&t(this.y)},isNaN:function(){return isNaN(this.x)||isNaN(this.y)},isInQuadrant:function(t){return this.x*(t>1&&t<4?-1:1)>=0&&this.y*(t>2?-1:1)>=0},dot:function(){var t=c.read(arguments);return this.x*t.x+this.y*t.y},cross:function(){var t=c.read(arguments);return this.x*t.y-this.y*t.x},project:function(){var t=c.read(arguments),e=t.isZero()?0:this.dot(t)/t.dot(t);return new c(t.x*e,t.y*e)},statics:{min:function(){var t=c.read(arguments),e=c.read(arguments);return new c(Math.min(t.x,e.x),Math.min(t.y,e.y))},max:function(){var t=c.read(arguments),e=c.read(arguments);return new c(Math.max(t.x,e.x),Math.max(t.y,e.y))},random:function(){return new c(Math.random(),Math.random())},isCollinear:function(t,e,i,n){return Math.abs(t*n-e*i)<=1e-8*Math.sqrt((t*t+e*e)*(i*i+n*n))},isOrthogonal:function(t,e,i,n){return Math.abs(t*i+e*n)<=1e-8*Math.sqrt((t*t+e*e)*(i*i+n*n))}}},r.each(["round","ceil","floor","abs"],function(t){var e=Math[t];this[t]=function(){return new c(e(this.x),e(this.y))}},{})),f=c.extend({initialize:function(t,e,i,n){this._x=t,this._y=e,this._owner=i,this._setter=n},_set:function(t,e,i){return this._x=t,this._y=e,i||this._owner[this._setter](this),this},getX:function(){return this._x},setX:function(t){this._x=t,this._owner[this._setter](this)},getY:function(){return this._y},setY:function(t){this._y=t,this._owner[this._setter](this)},isSelected:function(){return!!(this._owner._selection&this._getSelection())},setSelected:function(t){this._owner._changeSelection(this._getSelection(),t)},_getSelection:function(){return"setPosition"===this._setter?4:0}}),d=r.extend({_class:"Size",_readIndex:!0,initialize:function(t,e){var i=typeof t,n=this.__read,r=0;if("number"===i){var s="number"==typeof e;this._set(t,s?e:t),n&&(r=s?2:1)}else if("undefined"===i||null===t)this._set(0,0),n&&(r=null===t?1:0);else{var a="string"===i?t.split(/[\s,]+/)||[]:t;r=1,Array.isArray(a)?this._set(+a[0],+(a.length>1?a[1]:a[0])):"width"in a?this._set(a.width||0,a.height||0):"x"in a?this._set(a.x||0,a.y||0):(this._set(0,0),r=0)}return n&&(this.__read=r),this},set:"#initialize",_set:function(t,e){return this.width=t,this.height=e,this},equals:function(t){return t===this||t&&(this.width===t.width&&this.height===t.height||Array.isArray(t)&&this.width===t[0]&&this.height===t[1])||!1},clone:function(){return new d(this.width,this.height)},toString:function(){var t=h.instance;return"{ width: "+t.number(this.width)+", height: "+t.number(this.height)+" }"},_serialize:function(t){var e=t.formatter;return[e.number(this.width),e.number(this.height)]},add:function(){var t=d.read(arguments);return new d(this.width+t.width,this.height+t.height)},subtract:function(){var t=d.read(arguments);return new d(this.width-t.width,this.height-t.height)},multiply:function(){var t=d.read(arguments);return new d(this.width*t.width,this.height*t.height)},divide:function(){var t=d.read(arguments);return new d(this.width/t.width,this.height/t.height)},modulo:function(){var t=d.read(arguments);return new d(this.width%t.width,this.height%t.height)},negate:function(){return new d(-this.width,-this.height)},isZero:function(){var t=u.isZero;return t(this.width)&&t(this.height)},isNaN:function(){return isNaN(this.width)||isNaN(this.height)},statics:{min:function(t,e){return new d(Math.min(t.width,e.width),Math.min(t.height,e.height))},max:function(t,e){return new d(Math.max(t.width,e.width),Math.max(t.height,e.height))},random:function(){return new d(Math.random(),Math.random())}}},r.each(["round","ceil","floor","abs"],function(t){var e=Math[t];this[t]=function(){return new d(e(this.width),e(this.height))}},{})),_=d.extend({initialize:function(t,e,i,n){this._width=t,this._height=e,this._owner=i,this._setter=n},_set:function(t,e,i){return this._width=t,this._height=e,i||this._owner[this._setter](this),this},getWidth:function(){return this._width},setWidth:function(t){this._width=t,this._owner[this._setter](this)},getHeight:function(){return this._height},setHeight:function(t){this._height=t,this._owner[this._setter](this)}}),g=r.extend({_class:"Rectangle",_readIndex:!0,beans:!0,initialize:function(t,i,n,s){var a,o=typeof t;if("number"===o?(this._set(t,i,n,s),a=4):"undefined"===o||null===t?(this._set(0,0,0,0),a=null===t?1:0):1===arguments.length&&(Array.isArray(t)?(this._set.apply(this,t),a=1):t.x!==e||t.width!==e?(this._set(t.x||0,t.y||0,t.width||0,t.height||0),a=1):t.from===e&&t.to===e&&(this._set(0,0,0,0),r.filter(this,t),a=1)),a===e){var h,u,l=c.readNamed(arguments,"from"),f=r.peek(arguments),_=l.x,g=l.y;if(f&&f.x!==e||r.hasNamed(arguments,"to")){var v=c.readNamed(arguments,"to");h=v.x-_,u=v.y-g,h<0&&(_=v.x,h=-h),u<0&&(g=v.y,u=-u)}else{var p=d.read(arguments);h=p.width,u=p.height}this._set(_,g,h,u),a=arguments.__index;var m=arguments.__filtered;m&&(this.__filtered=m)}return this.__read&&(this.__read=a),this},set:"#initialize",_set:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},clone:function(){return new g(this.x,this.y,this.width,this.height)},equals:function(t){var e=r.isPlainValue(t)?g.read(arguments):t;return e===this||e&&this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height||!1},toString:function(){var t=h.instance;return"{ x: "+t.number(this.x)+", y: "+t.number(this.y)+", width: "+t.number(this.width)+", height: "+t.number(this.height)+" }"},_serialize:function(t){var e=t.formatter;return[e.number(this.x),e.number(this.y),e.number(this.width),e.number(this.height)]},getPoint:function(t){return new(t?c:f)(this.x,this.y,this,"setPoint")},setPoint:function(){var t=c.read(arguments);this.x=t.x,this.y=t.y},getSize:function(t){return new(t?d:_)(this.width,this.height,this,"setSize")},_fw:1,_fh:1,setSize:function(){var t=d.read(arguments),e=this._sx,i=this._sy,n=t.width,r=t.height;e&&(this.x+=(this.width-n)*e),i&&(this.y+=(this.height-r)*i),this.width=n,this.height=r,this._fw=this._fh=1},getLeft:function(){return this.x},setLeft:function(t){if(!this._fw){var e=t-this.x;this.width-=.5===this._sx?2*e:e}this.x=t,this._sx=this._fw=0},getTop:function(){return this.y},setTop:function(t){if(!this._fh){var e=t-this.y;this.height-=.5===this._sy?2*e:e}this.y=t,this._sy=this._fh=0},getRight:function(){return this.x+this.width},setRight:function(t){if(!this._fw){var e=t-this.x;this.width=.5===this._sx?2*e:e}this.x=t-this.width,this._sx=1,this._fw=0},getBottom:function(){return this.y+this.height},setBottom:function(t){if(!this._fh){var e=t-this.y;this.height=.5===this._sy?2*e:e}this.y=t-this.height,this._sy=1,this._fh=0},getCenterX:function(){return this.x+this.width/2},setCenterX:function(t){this._fw||.5===this._sx?this.x=t-this.width/2:(this._sx&&(this.x+=2*(t-this.x)*this._sx),this.width=2*(t-this.x)),this._sx=.5,this._fw=0},getCenterY:function(){return this.y+this.height/2},setCenterY:function(t){this._fh||.5===this._sy?this.y=t-this.height/2:(this._sy&&(this.y+=2*(t-this.y)*this._sy),this.height=2*(t-this.y)),this._sy=.5,this._fh=0},getCenter:function(t){return new(t?c:f)(this.getCenterX(),this.getCenterY(),this,"setCenter")},setCenter:function(){var t=c.read(arguments);return this.setCenterX(t.x),this.setCenterY(t.y),this},getArea:function(){return this.width*this.height},isEmpty:function(){return 0===this.width||0===this.height},contains:function(t){return t&&t.width!==e||4===(Array.isArray(t)?t:arguments).length?this._containsRectangle(g.read(arguments)):this._containsPoint(c.read(arguments))},_containsPoint:function(t){var e=t.x,i=t.y;return e>=this.x&&i>=this.y&&e<=this.x+this.width&&i<=this.y+this.height},_containsRectangle:function(t){var e=t.x,i=t.y;return e>=this.x&&i>=this.y&&e+t.width<=this.x+this.width&&i+t.height<=this.y+this.height},intersects:function(){var t=g.read(arguments),e=r.read(arguments)||0;return t.x+t.width>this.x-e&&t.y+t.height>this.y-e&&t.x=4&&(t[1]+=n?"Y":"X");var r=t[n?0:1],s=t[n?1:0],a="get"+r,o="get"+s,h="set"+r,u="set"+s,l="set"+i;this["get"+i]=function(t){return new(t?c:f)(this[a](),this[o](),this,l)},this[l]=function(){var t=c.read(arguments);this[h](t.x),this[u](t.y)}},{beans:!0})),v=g.extend({initialize:function(t,e,i,n,r,s){this._set(t,e,i,n,!0),this._owner=r,this._setter=s},_set:function(t,e,i,n,r){return this._x=t,this._y=e,this._width=i,this._height=n,r||this._owner[this._setter](this),this}},new function(){var t=g.prototype;return r.each(["x","y","width","height"],function(t){var e=r.capitalize(t),i="_"+t;this["get"+e]=function(){return this[i]},this["set"+e]=function(t){this[i]=t,this._dontNotify||this._owner[this._setter](this)}},r.each(["Point","Size","Center","Left","Top","Right","Bottom","CenterX","CenterY","TopLeft","TopRight","BottomLeft","BottomRight","LeftCenter","TopCenter","RightCenter","BottomCenter"],function(e){var i="set"+e;this[i]=function(){this._dontNotify=!0,t[i].apply(this,arguments),this._dontNotify=!1,this._owner[this._setter](this)}},{isSelected:function(){return!!(2&this._owner._selection)},setSelected:function(t){var e=this._owner;e._changeSelection&&e._changeSelection(2,t)}}))}),p=r.extend({_class:"Matrix",initialize:function t(e,i){var n=arguments.length,r=!0;if(n>=6?this._set.apply(this,arguments):1===n||2===n?e instanceof t?this._set(e._a,e._b,e._c,e._d,e._tx,e._ty,i):Array.isArray(e)?this._set.apply(this,i?e.concat([i]):e):r=!1:n?r=!1:this.reset(),!r)throw new Error("Unsupported matrix parameters");return this},set:"#initialize",_set:function(t,e,i,n,r,s,a){return this._a=t,this._b=e,this._c=i,this._d=n,this._tx=r,this._ty=s,a||this._changed(),this},_serialize:function(t,e){return r.serialize(this.getValues(),t,!0,e)},_changed:function(){var t=this._owner;t&&(t._applyMatrix?t.transform(null,!0):t._changed(9))},clone:function(){return new p(this._a,this._b,this._c,this._d,this._tx,this._ty)},equals:function(t){return t===this||t&&this._a===t._a&&this._b===t._b&&this._c===t._c&&this._d===t._d&&this._tx===t._tx&&this._ty===t._ty},toString:function(){var t=h.instance;return"[["+[t.number(this._a),t.number(this._c),t.number(this._tx)].join(", ")+"], ["+[t.number(this._b),t.number(this._d),t.number(this._ty)].join(", ")+"]]"},reset:function(t){return this._a=this._d=1,this._b=this._c=this._tx=this._ty=0,t||this._changed(),this},apply:function(t,e){var i=this._owner;return!!i&&(i.transform(null,!0,r.pick(t,!0),e),this.isIdentity())},translate:function(){var t=c.read(arguments),e=t.x,i=t.y;return this._tx+=e*this._a+i*this._c,this._ty+=e*this._b+i*this._d,this._changed(),this},scale:function(){var t=c.read(arguments),e=c.read(arguments,0,{readNull:!0});return e&&this.translate(e),this._a*=t.x,this._b*=t.x,this._c*=t.y,this._d*=t.y,e&&this.translate(e.negate()),this._changed(),this},rotate:function(t){t*=Math.PI/180;var e=c.read(arguments,1),i=e.x,n=e.y,r=Math.cos(t),s=Math.sin(t),a=i-i*r+n*s,o=n-i*s-n*r,h=this._a,u=this._b,l=this._c,f=this._d;return this._a=r*h+s*l,this._b=r*u+s*f,this._c=-s*h+r*l,this._d=-s*u+r*f,this._tx+=a*h+o*l,this._ty+=a*u+o*f,this._changed(),this},shear:function(){var t=c.read(arguments),e=c.read(arguments,0,{readNull:!0});e&&this.translate(e);var i=this._a,n=this._b;return this._a+=t.y*this._c,this._b+=t.y*this._d,this._c+=t.x*i,this._d+=t.x*n,e&&this.translate(e.negate()),this._changed(),this},skew:function(){var t=c.read(arguments),e=c.read(arguments,0,{readNull:!0}),i=Math.PI/180,n=new c(Math.tan(t.x*i),Math.tan(t.y*i));return this.shear(n,e)},append:function(t,e){if(t){var i=this._a,n=this._b,r=this._c,s=this._d,a=t._a,o=t._c,h=t._b,u=t._d,l=t._tx,c=t._ty;this._a=a*i+h*r,this._c=o*i+u*r,this._b=a*n+h*s,this._d=o*n+u*s,this._tx+=l*i+c*r,this._ty+=l*n+c*s,e||this._changed()}return this},prepend:function(t,e){if(t){var i=this._a,n=this._b,r=this._c,s=this._d,a=this._tx,o=this._ty,h=t._a,u=t._c,l=t._b,c=t._d,f=t._tx,d=t._ty;this._a=h*i+u*n,this._c=h*r+u*s,this._b=l*i+c*n,this._d=l*r+c*s,this._tx=h*a+u*o+f,this._ty=l*a+c*o+d,e||this._changed()}return this},appended:function(t){return this.clone().append(t)},prepended:function(t){return this.clone().prepend(t)},invert:function(){var t=this._a,e=this._b,i=this._c,n=this._d,r=this._tx,s=this._ty,a=t*n-e*i,o=null;return a&&!isNaN(a)&&isFinite(r)&&isFinite(s)&&(this._a=n/a,this._b=-e/a,this._c=-i/a,this._d=t/a,this._tx=(i*s-n*r)/a,this._ty=(e*r-t*s)/a,o=this),o},inverted:function(){return this.clone().invert()},concatenate:"#append",preConcatenate:"#prepend",chain:"#appended",_shiftless:function(){return new p(this._a,this._b,this._c,this._d,0,0)},_orNullIfIdentity:function(){return this.isIdentity()?null:this},isIdentity:function(){return 1===this._a&&0===this._b&&0===this._c&&1===this._d&&0===this._tx&&0===this._ty},isInvertible:function(){var t=this._a*this._d-this._c*this._b;return t&&!isNaN(t)&&isFinite(this._tx)&&isFinite(this._ty)},isSingular:function(){return!this.isInvertible()},transform:function(t,e,i){return arguments.length<3?this._transformPoint(c.read(arguments)):this._transformCoordinates(t,e,i)},_transformPoint:function(t,e,i){var n=t.x,r=t.y;return e||(e=new c),e._set(n*this._a+r*this._c+this._tx,n*this._b+r*this._d+this._ty,i)},_transformCoordinates:function(t,e,i){for(var n=0,r=2*i;ns[h]&&(s[h]=o)}return e||(e=new g),e._set(r[0],r[1],s[0]-r[0],s[1]-r[1],i)},inverseTransform:function(){return this._inverseTransform(c.read(arguments))},_inverseTransform:function(t,e,i){var n=this._a,r=this._b,s=this._c,a=this._d,o=this._tx,h=this._ty,u=n*a-r*s,l=null;if(u&&!isNaN(u)&&isFinite(o)&&isFinite(h)){var f=t.x-this._tx,d=t.y-this._ty;e||(e=new c),l=e._set((f*a-d*s)/u,(d*n-f*r)/u,i)}return l},decompose:function(){var t,e,i,n=this._a,r=this._b,s=this._c,a=this._d,o=n*a-r*s,h=Math.sqrt,u=Math.atan2,l=180/Math.PI;if(0!==n||0!==r){var f=h(n*n+r*r);t=Math.acos(n/f)*(r>0?1:-1),e=[f,o/f],i=[u(n*s+r*a,f*f),0]}else if(0!==s||0!==a){var d=h(s*s+a*a);t=Math.asin(s/d)*(a>0?1:-1),e=[o/d,d],i=[0,u(n*s+r*a,d*d)]}else t=0,i=e=[0,0];return{translation:this.getTranslation(),rotation:t*l,scaling:new c(e),skewing:new c(i[0]*l,i[1]*l)}},getValues:function(){return[this._a,this._b,this._c,this._d,this._tx,this._ty]},getTranslation:function(){return new c(this._tx,this._ty)},getScaling:function(){return(this.decompose()||{}).scaling},getRotation:function(){return(this.decompose()||{}).rotation},applyToContext:function(t){this.isIdentity()||t.transform(this._a,this._b,this._c,this._d,this._tx,this._ty)}},r.each(["a","b","c","d","tx","ty"],function(t){var e=r.capitalize(t),i="_"+t;this["get"+e]=function(){return this[i]},this["set"+e]=function(t){this[i]=t,this._changed()}},{})),m=r.extend({_class:"Line",initialize:function(t,e,i,n,r){var s=!1;arguments.length>=4?(this._px=t,this._py=e,this._vx=i,this._vy=n,s=r):(this._px=t.x,this._py=t.y,this._vx=e.x,this._vy=e.y,s=i),s||(this._vx-=this._px,this._vy-=this._py)},getPoint:function(){return new c(this._px,this._py)},getVector:function(){return new c(this._vx,this._vy)},getLength:function(){return this.getVector().getLength()},intersect:function(t,e){return m.intersect(this._px,this._py,this._vx,this._vy,t._px,t._py,t._vx,t._vy,!0,e)},getSide:function(t,e){return m.getSide(this._px,this._py,this._vx,this._vy,t.x,t.y,!0,e)},getDistance:function(t){return Math.abs(this.getSignedDistance(t))},getSignedDistance:function(t){return m.getSignedDistance(this._px,this._py,this._vx,this._vy,t.x,t.y,!0)},isCollinear:function(t){return c.isCollinear(this._vx,this._vy,t._vx,t._vy)},isOrthogonal:function(t){return c.isOrthogonal(this._vx,this._vy,t._vx,t._vy)},statics:{intersect:function(t,e,i,n,r,s,a,o,h,l){h||(i-=t,n-=e,a-=r,o-=s);var f=i*o-n*a;if(!u.isZero(f)){var d=t-r,_=e-s,g=(a*_-o*d)/f,v=(i*_-n*d)/f;if(l||-1e-12=1?1:g),new c(t+g*i,e+g*n)}},getSide:function(t,e,i,n,r,s,a,o){a||(i-=t,n-=e);var h=r-t,l=h*n-(s-e)*i;return!o&&u.isZero(l)&&(l=(h*i+h*i)/(i*i+n*n))>=0&&l<=1&&(l=0),l<0?-1:l>0?1:0},getSignedDistance:function(t,e,i,n,r,s,a){return a||(i-=t,n-=e),0===i?n>0?r-t:t-r:0===n?i<0?s-e:e-s:((r-t)*n-(s-e)*i)/Math.sqrt(i*i+n*n)},getDistance:function(t,e,i,n,r,s,a){return Math.abs(m.getSignedDistance(t,e,i,n,r,s,a))}}}),y=o.extend({_class:"Project",_list:"projects",_reference:"project",_compactSerialize:!0,initialize:function(t){o.call(this,!0),this._children=[],this._namedChildren={},this._activeLayer=null,this._currentStyle=new V(null,null,this),this._view=U.create(this,t||Q.getCanvas(1,1)),this._selectionItems={},this._selectionCount=0,this._updateVersion=0},_serialize:function(t,e){return r.serialize(this._children,t,!0,e)},_changed:function(t,e){if(1&t){var i=this._view;i&&(i._needsUpdate=!0,!i._requested&&i._autoUpdate&&i.requestUpdate())}var n=this._changes;if(n&&e){var r=this._changesById,s=e._id,a=r[s];a?a.flags|=t:n.push(r[s]={item:e,flags:t})}},clear:function(){for(var t=this._children,e=t.length-1;e>=0;e--)t[e].remove()},isEmpty:function(){return!this._children.length},remove:function t(){return!!t.base.call(this)&&(this._view&&this._view.remove(),!0)},getView:function(){return this._view},getCurrentStyle:function(){return this._currentStyle},setCurrentStyle:function(t){this._currentStyle.set(t)},getIndex:function(){return this._index},getOptions:function(){return this._scope.settings},getLayers:function(){return this._children},getActiveLayer:function(){return this._activeLayer||new b({project:this,insert:!0})},getSymbolDefinitions:function(){var t=[],e={};return this.getItems({class:P,match:function(i){var n=i._definition,r=n._id;return e[r]||(e[r]=!0,t.push(n)),!1}}),t},getSymbols:"getSymbolDefinitions",getSelectedItems:function(){var t=this._selectionItems,e=[];for(var i in t){var n=t[i],r=n._selection;1&r&&n.isInserted()?e.push(n):r||this._updateSelection(n)}return e},_updateSelection:function(t){var e=t._id,i=this._selectionItems;t._selection?i[e]!==t&&(this._selectionCount++,i[e]=t):i[e]===t&&(this._selectionCount--,delete i[e])},selectAll:function(){for(var t=this._children,e=0,i=t.length;e0){t.save(),t.strokeWidth=1;var h=this._selectionItems,u=this._scope.settings.handleSize,l=this._updateVersion;for(var f in h)h[f]._drawSelection(t,e,u,h,l);t.restore()}}}),w=r.extend(s,{statics:{extend:function t(e){return e._serializeFields&&(e._serializeFields=r.set({},this.prototype._serializeFields,e._serializeFields)),t.base.apply(this,arguments)},NO_INSERT:{insert:!1}},_class:"Item",_name:null,_applyMatrix:!0,_canApplyMatrix:!0,_canScaleStroke:!1,_pivot:null,_visible:!0,_blendMode:"normal",_opacity:1,_locked:!1,_guide:!1,_clipMask:!1,_selection:0,_selectBounds:!0,_selectChildren:!1,_serializeFields:{name:null,applyMatrix:null,matrix:new p,pivot:null,visible:!0,blendMode:"normal",opacity:1,locked:!1,guide:!1,clipMask:!1,selected:!1,data:{}},_prioritize:["applyMatrix"]},new function(){var t=["onMouseDown","onMouseUp","onMouseDrag","onClick","onDoubleClick","onMouseMove","onMouseEnter","onMouseLeave"];return r.each(t,function(t){this._events[t]={install:function(t){this.getView()._countItemEvent(t,1)},uninstall:function(t){this.getView()._countItemEvent(t,-1)}}},{_events:{onFrame:{install:function(){this.getView()._animateItem(this,!0)},uninstall:function(){this.getView()._animateItem(this,!1)}},onLoad:{},onError:{}},statics:{_itemHandlers:t}})},{initialize:function(){},_initialize:function(t,i){var n=t&&r.isPlainObject(t),s=n&&!0===t.internal,a=this._matrix=new p,o=n&&t.project||paper.project,h=paper.settings;return this._id=s?null:l.get(),this._parent=this._index=null,this._applyMatrix=this._canApplyMatrix&&h.applyMatrix,i&&a.translate(i),a._owner=this,this._style=new V(o._currentStyle,this,o),s||n&&0==t.insert||!h.insertItems&&(!n||!0!==t.insert)?this._setProject(o):(n&&t.parent||o)._insertItem(e,this,!0),n&&t!==w.NO_INSERT&&this.set(t,{internal:!0,insert:!0,project:!0,parent:!0}),n},_serialize:function(t,e){function i(i){for(var a in i){var o=s[a];r.equals(o,"leading"===a?1.2*i.fontSize:i[a])||(n[a]=r.serialize(o,t,"data"!==a,e))}}var n={},s=this;return i(this._serializeFields),this instanceof x||i(this._style._defaults),[this._class,n]},_changed:function(t){var i=this._symbol,n=this._parent||i,r=this._project;8&t&&(this._bounds=this._position=this._decomposed=this._globalMatrix=e),n&&40&t&&w._clearBoundsCache(n),2&t&&w._clearBoundsCache(this),r&&r._changed(t,this),i&&i._changed(t)},getId:function(){return this._id},getName:function(){return this._name},setName:function(t){if(this._name&&this._removeNamed(),t===+t+"")throw new Error("Names consisting only of numbers are not supported.");var i=this._getOwner();if(t&&i){var n=i._children,r=i._namedChildren;(r[t]=r[t]||[]).push(this),t in n||(n[t]=this)}this._name=t||e,this._changed(128)},getStyle:function(){return this._style},setStyle:function(t){this.getStyle().set(t)}},r.each(["locked","visible","blendMode","opacity","guide"],function(t){var e=r.capitalize(t),i="_"+t,n={locked:128,visible:137};this["get"+e]=function(){return this[i]},this["set"+e]=function(e){e!=this[i]&&(this[i]=e,this._changed(n[t]||129))}},{}),{beans:!0,getSelection:function(){return this._selection},setSelection:function(t){if(t!==this._selection){this._selection=t;var e=this._project;e&&(e._updateSelection(this),this._changed(129))}},_changeSelection:function(t,e){var i=this._selection;this.setSelection(e?i|t:i&~t)},isSelected:function(){if(this._selectChildren)for(var t=this._children,e=0,i=t.length;e=0;i--)if(e[i].contains(t))return!0;return!1}return t.isInside(this.getInternalBounds())},isInside:function(){return g.read(arguments).contains(this.getBounds())},_asPathItem:function(){return new L.Rectangle({rectangle:this.getInternalBounds(),matrix:this._matrix,insert:!1})},intersects:function(t,e){return t instanceof w&&this._asPathItem().getIntersections(t._asPathItem(),null,e,!0).length>0}},new function(){function t(){return this._hitTest(c.read(arguments),M.getOptions(arguments))}function e(){var t=c.read(arguments),e=M.getOptions(arguments),i=[];return this._hitTest(t,r.set({all:i},e)),i}function i(t,e,i,n){var r=this._children;if(r)for(var s=r.length-1;s>=0;s--){var a=r[s],o=a!==n&&a._hitTest(t,e,i);if(o&&!e.all)return o}return null}return y.inject({hitTest:t,hitTestAll:e,_hitTest:i}),{hitTest:t,hitTestAll:e,_hitTestChildren:i}},{_hitTest:function(t,e,i){function n(t){return t&&_&&!_(t)&&(t=null),t&&e.all&&e.all.push(t),t}function s(e,i){var n=i?l["get"+i]():g.getPosition();if(t.subtract(n).divide(u).length<=1)return new M(e,g,{name:i?r.hyphenate(i):e,point:n})}if(this._locked||!this._visible||this._guide&&!e.guides||this.isEmpty())return null;var a=this._matrix,o=i?i.appended(a):this.getGlobalMatrix().prepend(this.getView()._matrix),h=Math.max(e.tolerance,1e-12),u=e._tolerancePadding=new d(L._getStrokePadding(h,a._shiftless().invert()));if(!(t=a._inverseTransform(t))||!this._children&&!this.getBounds({internal:!0,stroke:!0,handle:!0}).expand(u.multiply(2))._containsPoint(t))return null;var l,c,f=!(e.guides&&!this._guide||e.selected&&!this.isSelected()||e.type&&e.type!==r.hyphenate(this._class)||e.class&&!(this instanceof e.class)),_=e.match,g=this,v=e.position,p=e.center,m=e.bounds;if(f&&this._parent&&(v||p||m)){if((p||m)&&(l=this.getInternalBounds()),!(c=v&&s("position")||p&&s("center","Center"))&&m)for(var y=["TopLeft","TopRight","BottomLeft","BottomRight","LeftCenter","TopCenter","RightCenter","BottomCenter"],w=0;w<8&&!c;w++)c=s("bounds",y[w]);c=n(c)}return c||(c=this._hitTestChildren(t,e,o)||f&&n(this._hitTestSelf(t,e,o,this.getStrokeScaling()?null:o._shiftless().invert()))||null),c&&c.point&&(c.point=a.transform(c.point)),c},_hitTestSelf:function(t,e){if(e.fill&&this.hasFill()&&this._contains(t))return new M("fill",this)},matches:function(t,e){function i(t,e){for(var n in t)if(t.hasOwnProperty(n)){var s=t[n],a=e[n];if(r.isPlainObject(s)&&r.isPlainObject(a)){if(!i(s,a))return!1}else if(!r.equals(s,a))return!1}return!0}var n=typeof t;if("object"===n){for(var s in t)if(t.hasOwnProperty(s)&&!this.matches(s,t[s]))return!1;return!0}if("function"===n)return t(this);if("match"===t)return e(this);var a=/^(empty|editable)$/.test(t)?this["is"+r.capitalize(t)]():"type"===t?r.hyphenate(this._class):this[t];if("class"===t){if("function"==typeof e)return this instanceof e;a=this._class}if("function"==typeof e)return!!e(a);if(e){if(e.test)return e.test(a);if(r.isPlainObject(e))return i(e,a)}return r.equals(a,e)},getItems:function(t){return w._getItems(this,t,this._matrix)},getItem:function(t){return w._getItems(this,t,this._matrix,null,!0)[0]||null},statics:{_getItems:function t(e,i,n,s,a){if(!s){var o="object"==typeof i&&i,h=o&&o.overlapping,u=o&&o.inside,l=(w=h||u)&&g.read([w]);s={items:[],recursive:o&&!1!==o.recursive,inside:!!u,overlapping:!!h,rect:l,path:h&&new L.Rectangle({rectangle:l,insert:!1})},o&&(i=r.filter({},i,{recursive:!0,inside:!0,overlapping:!0}))}var c=e._children,f=s.items;n=(l=s.rect)&&(n||new p);for(var d=0,_=c&&c.length;d<_;d++){var v=c[d],m=n&&n.appended(v._matrix),y=!0;if(l){var w=v.getBounds(m);if(!l.intersects(w))continue;l.contains(w)||s.overlapping&&(w.contains(l)||s.path.intersects(v,m))||(y=!1)}if(y&&v.matches(i)&&(f.push(v),a))break;if(!1!==s.recursive&&t(v,i,m,s,a),a&&f.length>0)break}return f}}},{importJSON:function(t){var e=r.importJSON(t,this);return e!==this?this.addChild(e):e},addChild:function(t){return this.insertChild(e,t)},insertChild:function(t,e){var i=e?this.insertChildren(t,[e]):null;return i&&i[0]},addChildren:function(t){return this.insertChildren(this._children.length,t)},insertChildren:function(t,e){var i=this._children;if(i&&e&&e.length>0){for(var n={},s=(e=r.slice(e)).length-1;s>=0;s--){var a=(l=e[s])&&l._id;!l||n[a]?e.splice(s,1):(l._remove(!1,!0),n[a]=!0)}r.splice(i,e,t,0);for(var o=this._project,h=o._changes,s=0,u=e.length;s=0;n--)i[n]._remove(!0,!1);return i.length>0&&this._changed(11),i},clear:"#removeChildren",reverseChildren:function(){if(this._children){this._children.reverse();for(var t=0,e=this._children.length;t0},isInserted:function(){return!!this._parent&&this._parent.isInserted()},isAbove:function(t){return-1===this._getOrder(t)},isBelow:function(t){return 1===this._getOrder(t)},isParent:function(t){return this._parent===t},isChild:function(t){return t&&t._parent===this},isDescendant:function(t){for(var e=this;e=e._parent;)if(e===t)return!0;return!1},isAncestor:function(t){return!!t&&t.isDescendant(this)},isSibling:function(t){return this._parent===t._parent},isGroupedWith:function(t){for(var e=this._parent;e;){if(e._parent&&/^(Group|Layer|CompoundPath)$/.test(e._class)&&t.isDescendant(e))return!0;e=e._parent}return!1}},r.each(["rotate","scale","shear","skew"],function(t){var e="rotate"===t;this[t]=function(){var i=(e?r:c).read(arguments),n=c.read(arguments,0,{readNull:!0});return this.transform((new p)[t](i,n||this.getPosition(!0)))}},{translate:function(){var t=new p;return this.transform(t.translate.apply(t,arguments))},transform:function(t,e,i,n){var r=this._matrix,s=t&&!t.isIdentity(),a=(e||this._applyMatrix)&&(!r.isIdentity()||s||e&&i&&this._children);if(!s&&!a)return this;if(s){!t.isInvertible()&&r.isInvertible()&&(r._backup=r.getValues()),r.prepend(t,!0);var o=this._style,h=o.getFillColor(!0),u=o.getStrokeColor(!0);h&&h.transform(t),u&&u.transform(t)}if(a&&(a=this._transformContent(r,i,n))){var l=this._pivot;l&&r._transformPoint(l,l,!0),r.reset(!0),n&&this._canApplyMatrix&&(this._applyMatrix=!0)}var c=this._bounds,f=this._position;(s||a)&&this._changed(9);var d=s&&c&&t.decompose();if(d&&d.skewing.isZero()&&d.rotation%90==0){for(var _ in c){var g=c[_];if(g.nonscaling)delete c[_];else if(a||!g.internal){var v=g.rect;t._transformBounds(v,v)}}this._bounds=c;var p=c[this._getBoundsCacheKey(this._boundsOptions||{})];p&&(this._position=p.rect.getCenter(!0))}else s&&f&&this._pivot&&(this._position=t._transformPoint(f,f));return this},_transformContent:function(t,e,i){var n=this._children;if(n){for(var r=0,s=n.length;rr:n1&&s<4?-1:1,s>2?-1:1),o=a.multiply(r),h=o.subtract(a.multiply(n));if(new g(i?o.add(a.multiply(i)):o,h).contains(e))return{point:h,quadrant:s}}}function e(t,e,i,n){var r=t.divide(e);return(!n||r.isInQuadrant(n))&&r.subtract(r.normalize()).multiply(e).divide(i).length<=1}return{_contains:function e(i){if("rectangle"===this._type){var n=t(this,i);return n?i.subtract(n.point).divide(this._radius).getLength()<=1:e.base.call(this,i)}return i.divide(this.size).getLength()<=.5},_hitTestSelf:function i(n,r,s,a){var o=!1,h=this._style,u=r.stroke&&h.hasStroke(),l=r.fill&&h.hasFill();if(u||l){var c=this._type,f=this._radius,d=u?h.getStrokeWidth()/2:0,_=r._tolerancePadding.add(L._getStrokePadding(d,!h.getStrokeScaling()&&a));if("rectangle"===c){var v=_.multiply(2),p=t(this,n,v);if(p)o=e(n.subtract(p.point),f,_,p.quadrant);else{var m=new g(this._size).setCenter(0,0),y=m.expand(v),w=m.expand(v.negate());o=y._containsPoint(n)&&!w._containsPoint(n)}}else o=e(n,f,_)}return o?new M(u?"stroke":"fill",this):i.base.apply(this,arguments)}}},{statics:new function(){function t(t,e,i,n,s){var a=new C(r.getNamed(s),e);return a._type=t,a._size=i,a._radius=n,a}return{Circle:function(){var e=c.readNamed(arguments,"center"),i=r.readNamed(arguments,"radius");return t("circle",e,new d(2*i),i,arguments)},Rectangle:function(){var e=g.readNamed(arguments,"rectangle"),i=d.min(d.readNamed(arguments,"radius"),e.getSize(!0).divide(2));return t("rectangle",e.getCenter(!0),e.getSize(!0),i,arguments)},Ellipse:function(){var e=C._readEllipse(arguments),i=e.radius;return t("ellipse",e.center,i.multiply(2),i,arguments)},_readEllipse:function(t){var e,i;if(r.hasNamed(t,"radius"))e=c.readNamed(t,"center"),i=d.readNamed(t,"radius");else{var n=g.readNamed(t,"rectangle");e=n.getCenter(!0),i=n.getSize(!0).divide(2)}return{center:e,radius:i}}}}}),S=w.extend({_class:"Raster",_applyMatrix:!1,_canApplyMatrix:!1,_boundsOptions:{stroke:!1,handle:!1},_serializeFields:{crossOrigin:null,source:null},_prioritize:["crossOrigin"],initialize:function(t,i){if(!this._initialize(t,i!==e&&c.read(arguments,1))){var r="string"==typeof t?n.getElementById(t):t;r?this.setImage(r):this.setSource(t)}this._size||(this._size=new d,this._loaded=!1)},_equals:function(t){return this.getSource()===t.getSource()},copyContent:function(t){var e=t._image,i=t._canvas;if(e)this._setImage(e);else if(i){var n=Q.getCanvas(t._size);n.getContext("2d").drawImage(i,0,0),this._setImage(n)}this._crossOrigin=t._crossOrigin},getSize:function(){var t=this._size;return new _(t?t.width:0,t?t.height:0,this,"setSize")},setSize:function(){var t=d.read(arguments);if(!t.equals(this._size))if(t.width>0&&t.height>0){var e=this.getElement();this._setImage(Q.getCanvas(t)),e&&this.getContext(!0).drawImage(e,0,0,t.width,t.height)}else this._canvas&&Q.release(this._canvas),this._size=t.clone()},getWidth:function(){return this._size?this._size.width:0},setWidth:function(t){this.setSize(t,this.getHeight())},getHeight:function(){return this._size?this._size.height:0},setHeight:function(t){this.setSize(this.getWidth(),t)},getLoaded:function(){return this._loaded},isEmpty:function(){var t=this._size;return!t||0===t.width&&0===t.height},getResolution:function(){var t=this._matrix,e=new c(0,0).transform(t),i=new c(1,0).transform(t).subtract(e),n=new c(0,1).transform(t).subtract(e);return new d(72/i.getLength(),72/n.getLength())},getPpi:"#getResolution",getImage:function(){return this._image},setImage:function(t){function e(t){var e=i.getView(),n=t&&t.type||"load";e&&i.responds(n)&&(paper=e._scope,i.emit(n,new G(t)))}var i=this;this._setImage(t),this._loaded?setTimeout(e,0):t&&Z.add(t,{load:function(n){i._setImage(t),e(n)},error:e})},_setImage:function(t){this._canvas&&Q.release(this._canvas),t&&t.getContext?(this._image=null,this._canvas=t,this._loaded=!0):(this._image=t,this._canvas=null,this._loaded=!!(t&&t.src&&t.complete)),this._size=new d(t?t.naturalWidth||t.width:0,t?t.naturalHeight||t.height:0),this._context=null,this._changed(521)},getCanvas:function(){if(!this._canvas){var t=Q.getContext(this._size);try{this._image&&t.drawImage(this._image,0,0),this._canvas=t.canvas}catch(e){Q.release(t)}}return this._canvas},setCanvas:"#setImage",getContext:function(t){return this._context||(this._context=this.getCanvas().getContext("2d")),t&&(this._image=null,this._changed(513)),this._context},setContext:function(t){this._context=t},getSource:function(){var t=this._image;return t&&t.src||this.toDataURL()},setSource:function(e){var i=new t.Image,n=this._crossOrigin;n&&(i.crossOrigin=n),i.src=e,this.setImage(i)},getCrossOrigin:function(){var t=this._image;return t&&t.crossOrigin||this._crossOrigin||""},setCrossOrigin:function(t){this._crossOrigin=t;var e=this._image;e&&(e.crossOrigin=t)},getElement:function(){return this._canvas||this._loaded&&this._image}},{beans:!1,getSubCanvas:function(){var t=g.read(arguments),e=Q.getContext(t.getSize());return e.drawImage(this.getCanvas(),t.x,t.y,t.width,t.height,0,0,t.width,t.height),e.canvas},getSubRaster:function(){var t=g.read(arguments),e=new S(w.NO_INSERT);return e._setImage(this.getSubCanvas(t)),e.translate(t.getCenter().subtract(this.getSize().divide(2))),e._matrix.prepend(this._matrix),e.insertAbove(this),e},toDataURL:function(){var t=this._image,e=t&&t.src;if(/^data:/.test(e))return e;var i=this.getCanvas();return i?i.toDataURL.apply(i,arguments):null},drawImage:function(t){var e=c.read(arguments,1);this.getContext(!0).drawImage(t,e.x,e.y)},getAverageColor:function(t){var e,i;if(t?t instanceof A?(i=t,e=t.getBounds()):"object"==typeof t&&("width"in t?e=new g(t):"x"in t&&(e=new g(t.x-.5,t.y-.5,1,1))):e=this.getBounds(),!e)return null;var n=Math.min(e.width,32),s=Math.min(e.height,32),a=S._sampleContext;a?a.clearRect(0,0,33,33):a=S._sampleContext=Q.getContext(new d(32)),a.save();var o=(new p).scale(n/e.width,s/e.height).translate(-e.x,-e.y);o.applyToContext(a),i&&i.draw(a,new r({clip:!0,matrices:[o]})),this._matrix.applyToContext(a);var h=this.getElement(),u=this._size;h&&a.drawImage(h,-u.width/2,-u.height/2),a.restore();for(var l=a.getImageData(.5,.5,Math.ceil(n),Math.ceil(s)).data,c=[0,0,0],f=0,_=0,v=l.length;_0&&(null==t||"object"==typeof t?1===c&&t&&"point"in t?(o=t.point,h=t.handleIn,u=t.handleOut,l=t.selection):(o=t,h=i,u=n,l=r):(o=[t,i],h=n!==e?[n,r]:null,u=s!==e?[s,a]:null)),new z(o,this,"_point"),new z(h,this,"_handleIn"),new z(u,this,"_handleOut"),l&&this.setSelection(l)},_serialize:function(t,e){var i=this._point,n=this._selection,s=n||this.hasHandles()?[i,this._handleIn,this._handleOut]:i;return n&&s.push(n),r.serialize(s,t,!0,e)},_changed:function(t){var e=this._path;if(e){var i,n=e._curves,r=this._index;n&&(t&&t!==this._point&&t!==this._handleIn||!(i=r>0?n[r-1]:e._closed?n[n.length-1]:null)||i._changed(),t&&t!==this._point&&t!==this._handleOut||!(i=n[r])||i._changed()),e._changed(25)}},getPoint:function(){return this._point},setPoint:function(){this._point.set(c.read(arguments))},getHandleIn:function(){return this._handleIn},setHandleIn:function(){this._handleIn.set(c.read(arguments))},getHandleOut:function(){return this._handleOut},setHandleOut:function(){this._handleOut.set(c.read(arguments))},hasHandles:function(){return!this._handleIn.isZero()||!this._handleOut.isZero()},isSmooth:function(){var t=this._handleIn,e=this._handleOut;return!t.isZero()&&!e.isZero()&&t.isCollinear(e)},clearHandles:function(){this._handleIn._set(0,0),this._handleOut._set(0,0)},getSelection:function(){return this._selection},setSelection:function(t){var e=this._selection,i=this._path;this._selection=t=t||0,i&&t!==e&&(i._updateSelection(this,e,t),i._changed(129))},_changeSelection:function(t,e){var i=this._selection;this.setSelection(e?i|t:i&~t)},isSelected:function(){return!!(7&this._selection)},setSelected:function(t){this._changeSelection(7,t)},getIndex:function(){return this._index!==e?this._index:null},getPath:function(){return this._path||null},getCurve:function(){var t=this._path,e=this._index;return t?(e>0&&!t._closed&&e===t._segments.length-1&&e--,t.getCurves()[e]||null):null},getLocation:function(){var t=this.getCurve();return t?new O(t,this===t._segment1?0:1):null},getNext:function(){var t=this._path&&this._path._segments;return t&&(t[this._index+1]||this._path._closed&&t[0])||null},smooth:function(t,i,n){var r=t||{},s=r.type,a=r.factor,o=this.getPrevious(),h=this.getNext(),u=(o||this)._point,l=this._point,f=(h||this)._point,d=u.getDistance(l),_=l.getDistance(f);if(s&&"catmull-rom"!==s){if("geometric"!==s)throw new Error("Smoothing method '"+s+"' not supported.");if(o&&h){var g=u.subtract(f),v=a===e?.4:a,p=v*d/(d+_);i||this.setHandleIn(g.multiply(p)),n||this.setHandleOut(g.multiply(p-v))}}else{var m=a===e?.5:a,y=Math.pow(d,m),w=y*y,x=Math.pow(_,m),b=x*x;if(!i&&o){var C=2*b+3*x*y+w,S=3*x*(x+y);this.setHandleIn(0!==S?new c((b*u._x+C*l._x-w*f._x)/S-l._x,(b*u._y+C*l._y-w*f._y)/S-l._y):new c)}if(!n&&h){var C=2*w+3*y*x+b,S=3*y*(y+x);this.setHandleOut(0!==S?new c((w*f._x+C*l._x-b*u._x)/S-l._x,(w*f._y+C*l._y-b*u._y)/S-l._y):new c)}}},getPrevious:function(){var t=this._path&&this._path._segments;return t&&(t[this._index-1]||this._path._closed&&t[t.length-1])||null},isFirst:function(){return!this._index},isLast:function(){var t=this._path;return t&&this._index===t._segments.length-1||!1},reverse:function(){var t=this._handleIn,e=this._handleOut,i=t.clone();t.set(e),e.set(i)},reversed:function(){return new T(this._point,this._handleOut,this._handleIn)},remove:function(){return!!this._path&&!!this._path.removeSegment(this._index)},clone:function(){return new T(this._point,this._handleIn,this._handleOut)},equals:function(t){return t===this||t&&this._class===t._class&&this._point.equals(t._point)&&this._handleIn.equals(t._handleIn)&&this._handleOut.equals(t._handleOut)||!1},toString:function(){var t=["point: "+this._point];return this._handleIn.isZero()||t.push("handleIn: "+this._handleIn),this._handleOut.isZero()||t.push("handleOut: "+this._handleOut),"{ "+t.join(", ")+" }"},transform:function(t){this._transformCoordinates(t,new Array(6),!0),this._changed()},interpolate:function(t,e,i){var n=1-i,r=i,s=t._point,a=e._point,o=t._handleIn,h=e._handleIn,u=e._handleOut,l=t._handleOut;this._point._set(n*s._x+r*a._x,n*s._y+r*a._y,!0),this._handleIn._set(n*o._x+r*h._x,n*o._y+r*h._y,!0),this._handleOut._set(n*l._x+r*u._x,n*l._y+r*u._y,!0),this._changed()},_transformCoordinates:function(t,e,i){var n=this._point,r=i&&this._handleIn.isZero()?null:this._handleIn,s=i&&this._handleOut.isZero()?null:this._handleOut,a=n._x,o=n._y,h=2;return e[0]=a,e[1]=o,r&&(e[h++]=r._x+a,e[h++]=r._y+o),s&&(e[h++]=s._x+a,e[h++]=s._y+o),t&&(t._transformCoordinates(e,e,h/2),a=e[0],o=e[1],i?(n._x=a,n._y=o,h=2,r&&(r._x=e[h++]-a,r._y=e[h++]-o),s&&(s._x=e[h++]-a,s._y=e[h++]-o)):(r||(e[h++]=a,e[h++]=o),s||(e[h++]=a,e[h++]=o))),e}}),z=c.extend({initialize:function(t,i,n){var r,s,a;if(t)if((r=t[0])!==e)s=t[1];else{var o=t;(r=o.x)===e&&(r=(o=c.read(arguments)).x),s=o.y,a=o.selected}else r=s=0;this._x=r,this._y=s,this._owner=i,i[n]=this,a&&this.setSelected(!0)},_set:function(t,e){return this._x=t,this._y=e,this._owner._changed(this),this},getX:function(){return this._x},setX:function(t){this._x=t,this._owner._changed(this)},getY:function(){return this._y},setY:function(t){this._y=t,this._owner._changed(this)},isZero:function(){var t=u.isZero;return t(this._x)&&t(this._y)},isSelected:function(){return!!(this._owner._selection&this._getSelection())},setSelected:function(t){this._owner._changeSelection(this._getSelection(),t)},_getSelection:function(){var t=this._owner;return this===t._point?1:this===t._handleIn?2:this===t._handleOut?4:0}}),k=r.extend({_class:"Curve",beans:!0,initialize:function(t,e,i,n,r,s,a,o){var h,u,l,c,f,d,_=arguments.length;3===_?(this._path=t,h=e,u=i):_?1===_?"segment1"in t?(h=new T(t.segment1),u=new T(t.segment2)):"point1"in t?(l=t.point1,f=t.handle1,d=t.handle2,c=t.point2):Array.isArray(t)&&(l=[t[0],t[1]],c=[t[6],t[7]],f=[t[2]-t[0],t[3]-t[1]],d=[t[4]-t[6],t[5]-t[7]]):2===_?(h=new T(t),u=new T(e)):4===_?(l=t,f=e,d=i,c=n):8===_&&(l=[t,e],c=[a,o],f=[i-t,n-e],d=[r-a,s-o]):(h=new T,u=new T),this._segment1=h||new T(l,null,f),this._segment2=u||new T(c,d,null)},_serialize:function(t,e){return r.serialize(this.hasHandles()?[this.getPoint1(),this.getHandle1(),this.getHandle2(),this.getPoint2()]:[this.getPoint1(),this.getPoint2()],t,!0,e)},_changed:function(){this._length=this._bounds=e},clone:function(){return new k(this._segment1,this._segment2)},toString:function(){var t=["point1: "+this._segment1._point];return this._segment1._handleOut.isZero()||t.push("handle1: "+this._segment1._handleOut),this._segment2._handleIn.isZero()||t.push("handle2: "+this._segment2._handleIn),t.push("point2: "+this._segment2._point),"{ "+t.join(", ")+" }"},classify:function(){return k.classify(this.getValues())},remove:function(){var t=!1;if(this._path){var e=this._segment2,i=e._handleOut;(t=e.remove())&&this._segment1._handleOut.set(i)}return t},getPoint1:function(){return this._segment1._point},setPoint1:function(){this._segment1._point.set(c.read(arguments))},getPoint2:function(){return this._segment2._point},setPoint2:function(){this._segment2._point.set(c.read(arguments))},getHandle1:function(){return this._segment1._handleOut},setHandle1:function(){this._segment1._handleOut.set(c.read(arguments))},getHandle2:function(){return this._segment2._handleIn},setHandle2:function(){this._segment2._handleIn.set(c.read(arguments))},getSegment1:function(){return this._segment1},getSegment2:function(){return this._segment2},getPath:function(){return this._path},getIndex:function(){return this._segment1._index},getNext:function(){var t=this._path&&this._path._curves;return t&&(t[this._segment1._index+1]||this._path._closed&&t[0])||null},getPrevious:function(){var t=this._path&&this._path._curves;return t&&(t[this._segment1._index-1]||this._path._closed&&t[t.length-1])||null},isFirst:function(){return!this._segment1._index},isLast:function(){var t=this._path;return t&&this._segment1._index===t._curves.length-1||!1},isSelected:function(){return this.getPoint1().isSelected()&&this.getHandle1().isSelected()&&this.getHandle2().isSelected()&&this.getPoint2().isSelected()},setSelected:function(t){this.getPoint1().setSelected(t),this.getHandle1().setSelected(t),this.getHandle2().setSelected(t),this.getPoint2().setSelected(t)},getValues:function(t){return k.getValues(this._segment1,this._segment2,t)},getPoints:function(){for(var t=this.getValues(),e=[],i=0;i<8;i+=2)e.push(new c(t[i],t[i+1]));return e}},{getLength:function(){return null==this._length&&(this._length=k.getLength(this.getValues(),0,1)),this._length},getArea:function(){return k.getArea(this.getValues())},getLine:function(){return new m(this._segment1._point,this._segment2._point)},getPart:function(t,e){return new k(k.getPart(this.getValues(),t,e))},getPartLength:function(t,e){return k.getLength(this.getValues(),t,e)},divideAt:function(t){return this.divideAtTime(t&&t.curve===this?t.time:this.getTimeAt(t))},divideAtTime:function(t,e){var i=null;if(t>=1e-8&&t<=1-1e-8){var n=k.subdivide(this.getValues(),t),r=n[0],s=n[1],a=e||this.hasHandles(),o=this._segment1,h=this._segment2,u=this._path;a&&(o._handleOut._set(r[2]-r[0],r[3]-r[1]),h._handleIn._set(s[4]-s[6],s[5]-s[7]));var l=r[6],f=r[7],d=new T(new c(l,f),a&&new c(r[4]-l,r[5]-f),a&&new c(s[2]-l,s[3]-f));u?(u.insert(o._index+1,d),i=this.getNext()):(this._segment2=d,this._changed(),i=new k(d,h))}return i},splitAt:function(t){var e=this._path;return e?e.splitAt(t):null},splitAtTime:function(t){return this.splitAt(this.getLocationAtTime(t))},divide:function(t,i){return this.divideAtTime(t===e?.5:i?t:this.getTimeAt(t))},split:function(t,i){return this.splitAtTime(t===e?.5:i?t:this.getTimeAt(t))},reversed:function(){return new k(this._segment2.reversed(),this._segment1.reversed())},clearHandles:function(){this._segment1._handleOut._set(0,0),this._segment2._handleIn._set(0,0)},statics:{getValues:function(t,e,i,n){var r=t._point,s=t._handleOut,a=e._handleIn,o=e._point,h=r.x,u=r.y,l=o.x,c=o.y,f=n?[h,u,h,u,l,c,l,c]:[h,u,h+s._x,u+s._y,l+a._x,c+a._y,l,c];return i&&i._transformCoordinates(f,f,4),f},subdivide:function(t,i){var n=t[0],r=t[1],s=t[2],a=t[3],o=t[4],h=t[5],u=t[6],l=t[7];i===e&&(i=.5);var c=1-i,f=c*n+i*s,d=c*r+i*a,_=c*s+i*o,g=c*a+i*h,v=c*o+i*u,p=c*h+i*l,m=c*f+i*_,y=c*d+i*g,w=c*_+i*v,x=c*g+i*p,b=c*m+i*w,C=c*y+i*x;return[[n,r,f,d,m,y,b,C],[b,C,w,x,v,p,u,l]]},getMonoCurves:function(t,e){var i=[],n=e?0:1,r=t[n+0],s=t[n+2],a=t[n+4],o=t[n+6];if(r>=s==s>=a&&s>=a==a>=o||k.isStraight(t))i.push(t);else{var h=3*(s-a)-r+o,l=2*(r+a)-4*s,c=s-r,f=[],d=u.solveQuadratic(h,l,c,f,1e-8,1-1e-8);if(d){f.sort();var _=f[0],g=k.subdivide(t,_);i.push(g[0]),d>1&&(_=(f[1]-_)/(1-_),g=k.subdivide(g[1],_),i.push(g[0])),i.push(g[1])}else i.push(t)}return i},solveCubic:function(t,e,i,n,r,s){var a=t[e],o=t[e+2],h=t[e+4],l=t[e+6],c=0;if(!(ai&&l>i&&o>i&&h>i)){var f=3*(o-a),d=3*(h-o)-f,_=l-a-f-d;c=u.solveCubic(_,d,f,a-i,n,r,s)}return c},getTimeOf:function(t,e){var i=new c(t[0],t[1]),n=new c(t[6],t[7]);if(null===(e.isClose(i,1e-12)?0:e.isClose(n,1e-12)?1:null))for(var r=[e.x,e.y],s=[],a=0;a<2;a++)for(var o=k.solveCubic(t,a,r[a],s,0,1),h=0;h=0&&i<=1){var n=e.getDistance(k.getPoint(t,i),!0);if(n.999999999999?1:k.getTimeOf(t,new c(n+h*s,r+h*a))}for(var u=1/0,l=0,f=0;f<=100;f++)i(f/100);for(var d=.005;d>1e-8;)i(l-d)||i(l+d)||(d/=2);return l},getPart:function(t,e,i){var n=e>i;if(n){var r=e;e=i,i=r}return e>0&&(t=k.subdivide(t,e)[1]),i<1&&(t=k.subdivide(t,(i-e)/(1-e))[0]),n?[t[6],t[7],t[4],t[5],t[2],t[3],t[0],t[1]]:t},isFlatEnough:function(t,e){var i=t[0],n=t[1],r=t[2],s=t[3],a=t[4],o=t[5],h=t[6],u=t[7],l=3*r-2*i-h,c=3*s-2*n-u,f=3*a-2*h-i,d=3*o-2*u-n;return Math.max(l*l,f*f)+Math.max(c*c,d*d)<=16*e*e},getArea:function(t){var e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],a=t[5],o=t[6],h=t[7];return 3*((h-i)*(n+s)-(o-e)*(r+a)+r*(e-s)-n*(i-a)+h*(s+e/3)-o*(a+i/3))/20},getBounds:function(t){for(var e=t.slice(0,2),i=e.slice(),n=[0,0],r=0;r<2;r++)k._addBounds(t[r],t[r+2],t[r+4],t[r+6],r,0,e,i,n);return new g(e[0],e[1],i[0]-e[0],i[1]-e[1])},_addBounds:function(t,e,i,n,r,s,a,o,h){function l(t,e){var i=t-e,n=t+e;io[r]&&(o[r]=n)}s/=2;var c=a[r]-s,f=o[r]+s;if(tf||e>f||i>f||n>f)if(e=0&&o<=1&&h<=0&&h>=-1}}return!1},isLinear:function(t,e,i,n){var r=n.subtract(t).divide(3);return e.equals(r)&&i.negate().equals(r)}},function(t,e){this[e]=function(e){var i=this._segment1,n=this._segment2;return t(i._point,i._handleOut,n._handleIn,n._point,e)},this.statics[e]=function(e,i){var n=e[0],r=e[1],s=e[6],a=e[7];return t(new c(n,r),new c(e[2]-n,e[3]-r),new c(e[4]-s,e[5]-a),new c(s,a),i)}},{statics:{},hasHandles:function(){return!this._segment1._handleOut.isZero()||!this._segment2._handleIn.isZero()},hasLength:function(t){return(!this.getPoint1().equals(this.getPoint2())||this.hasHandles())&&this.getLength()>(t||0)},isCollinear:function(t){return t&&this.isStraight()&&t.isStraight()&&this.getLine().isCollinear(t.getLine())},isHorizontal:function(){return this.isStraight()&&Math.abs(this.getTangentAtTime(.5).y)<1e-8},isVertical:function(){return this.isStraight()&&Math.abs(this.getTangentAtTime(.5).x)<1e-8}}),{beans:!1,getLocationAt:function(t,e){return this.getLocationAtTime(e?t:this.getTimeAt(t))},getLocationAtTime:function(t){return null!=t&&t>=0&&t<=1?new O(this,t):null},getTimeAt:function(t,e){return k.getTimeAt(this.getValues(),t,e)},getParameterAt:"#getTimeAt",getOffsetAtTime:function(t){return this.getPartLength(0,t)},getLocationOf:function(){return this.getLocationAtTime(this.getTimeOf(c.read(arguments)))},getOffsetOf:function(){var t=this.getLocationOf.apply(this,arguments);return t?t.getOffset():null},getTimeOf:function(){return k.getTimeOf(this.getValues(),c.read(arguments))},getParameterOf:"#getTimeOf",getNearestLocation:function(){var t=c.read(arguments),e=this.getValues(),i=k.getNearestTime(e,t),n=k.getPoint(e,i);return new O(this,i,n,null,t.getDistance(n))},getNearestPoint:function(){var t=this.getNearestLocation.apply(this,arguments);return t?t.getPoint():t}},new function(){var t=["getPoint","getTangent","getNormal","getWeightedTangent","getWeightedNormal","getCurvature"];return r.each(t,function(t){this[t+"At"]=function(e,i){var n=this.getValues();return k[t](n,i?e:k.getTimeAt(n,e))},this[t+"AtTime"]=function(e){return k[t](this.getValues(),e)}},{statics:{_evaluateMethods:t}})},new function(){function t(t){var e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],a=t[5],o=9*(n-s)+3*(t[6]-e),h=6*(e+s)-12*n,u=3*(n-e),l=9*(r-a)+3*(t[7]-i),c=6*(i+a)-12*r,f=3*(r-i);return function(t){var e=(o*t+h)*t+u,i=(l*t+c)*t+f;return Math.sqrt(e*e+i*i)}}function i(t,e){return Math.max(2,Math.min(16,Math.ceil(32*Math.abs(e-t))))}function n(t,e,i,n){if(null==e||e<0||e>1)return null;var r=t[0],s=t[1],a=t[2],o=t[3],h=t[4],l=t[5],f=t[6],d=t[7],_=u.isZero;_(a-r)&&_(o-s)&&(a=r,o=s),_(h-f)&&_(l-d)&&(h=f,l=d);var g,v,p=3*(a-r),m=3*(h-a)-p,y=f-r-p-m,w=3*(o-s),x=3*(l-o)-w,b=d-s-w-x;if(0===i)g=0===e?r:1===e?f:((y*e+m)*e+p)*e+r,v=0===e?s:1===e?d:((b*e+x)*e+w)*e+s;else{if(e<1e-8?(g=p,v=w):e>1-1e-8?(g=3*(f-h),v=3*(d-l)):(g=(3*y*e+2*m)*e+p,v=(3*b*e+2*x)*e+w),n){0===g&&0===v&&(e<1e-8||e>1-1e-8)&&(g=h-a,v=l-o);var C=Math.sqrt(g*g+v*v);C&&(g/=C,v/=C)}if(3===i){var h=6*y*e+2*m,l=6*b*e+2*x,S=Math.pow(g*g+v*v,1.5);g=0!==S?(g*l-v*h)/S:0,v=0}}return 2===i?new c(v,-g):new c(g,v)}return{statics:{classify:function(t){function i(t,i,n){var r=i!==e,s=r&&i>0&&i<1,a=r&&n>0&&n<1;return!r||(s||a)&&("loop"!==t||s&&a)||(t="arch",s=a=!1),{type:t,roots:s||a?s&&a?i0?Math.sqrt(y/3):Math.sqrt(-y),x=2*g;return i(y>0?"serpentine":"loop",(_+w)/x,(_-w)/x)},getLength:function(n,r,s,a){if(r===e&&(r=0),s===e&&(s=1),k.isStraight(n)){var o=n;s<1&&(o=k.subdivide(o,s)[0],r/=s),r>0&&(o=k.subdivide(o,r)[1]);var h=o[6]-o[0],l=o[7]-o[1];return Math.sqrt(h*h+l*l)}return u.integrate(a||t(n),r,s,i(r,s))},getTimeAt:function(n,r,s){if(s===e&&(s=r<0?1:0),0===r)return s;var a=Math.abs,o=r>0,h=o?s:0,l=o?1:s,c=t(n),f=k.getLength(n,h,l,c),d=a(r)-f;if(a(d)<1e-12)return o?l:h;if(d>1e-12)return null;var _=r/f,g=0;return u.findRoot(function(t){return g+=u.integrate(c,s,t,i(s,t)),s=t,g-r},c,s+_,h,l,32,1e-12)},getPoint:function(t,e){return n(t,e,0,!1)},getTangent:function(t,e){return n(t,e,1,!0)},getWeightedTangent:function(t,e){return n(t,e,1,!1)},getNormal:function(t,e){return n(t,e,2,!0)},getWeightedNormal:function(t,e){return n(t,e,2,!1)},getCurvature:function(t,e){return n(t,e,3,!1).x},getPeaks:function(t){var e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],a=t[5],o=3*n-e-3*s+t[6],h=3*e-6*n+3*s,l=-3*e+3*n,c=3*r-i-3*a+t[7],f=3*i-6*r+3*a,d=-3*i+3*r,_=[];return u.solveCubic(9*(o*o+c*c),9*(o*h+f*c),2*(h*h+f*f)+3*(l*o+d*c),l*h+f*d,_,1e-8,1-1e-8),_.sort()}}}},new function(){function t(t,e,i,n,r,s,a){var o=!a&&i.getPrevious()===r,h=!a&&i!==r&&i.getNext()===r;if(null!==n&&n>=(o?1e-8:0)&&n<=(h?1-1e-8:1)&&null!==s&&s>=(h?1e-8:0)&&s<=(o?1-1e-8:1)){var u=new O(i,n,null,a),l=new O(r,s,null,a);u._intersection=l,l._intersection=u,e&&!e(u)||O.insert(t,u,!0)}}function e(r,s,a,o,h,u,l,c,f,d,_,g,v){if(++f>=4096||++c>=40)return f;var p,y,w=s[0],x=s[1],b=s[6],C=s[7],S=m.getSignedDistance,P=S(w,x,b,C,s[2],s[3]),I=S(w,x,b,C,s[4],s[5]),M=P*I>0?.75:4/9,T=M*Math.min(0,P,I),z=M*Math.max(0,P,I),O=S(w,x,b,C,r[0],r[1]),A=S(w,x,b,C,r[2],r[3]),L=S(w,x,b,C,r[4],r[5]),N=S(w,x,b,C,r[6],r[7]),B=i(O,A,L,N),D=B[0],j=B[1];if(0===P&&0===I&&0===O&&0===A&&0===L&&0===N||null==(p=n(D,j,T,z))||null==(y=n(D.reverse(),j.reverse(),T,z)))return f;var E=d+(_-d)*p,F=d+(_-d)*y;if(Math.max(v-g,F-E)<1e-9){var R=(E+F)/2,q=(g+v)/2;t(h,u,l?o:a,l?q:R,l?a:o,l?R:q)}else if(r=k.getPart(r,p,y),y-p>.8)if(F-E>v-g){R=(E+F)/2;f=e(s,(V=k.subdivide(r,.5))[0],o,a,h,u,!l,c,f,g,v,E,R),f=e(s,V[1],o,a,h,u,!l,c,f,g,v,R,F)}else{var V=k.subdivide(s,.5),q=(g+v)/2;f=e(V[0],r,o,a,h,u,!l,c,f,g,q,E,F),f=e(V[1],r,o,a,h,u,!l,c,f,q,v,E,F)}else f=v-g>=1e-9?e(s,r,o,a,h,u,!l,c,f,g,v,E,F):e(r,s,a,o,h,u,l,c,f,E,F,g,v);return f}function i(t,e,i,n){var r,s=[0,t],a=[1/3,e],o=[2/3,i],h=[1,n],u=e-(2*t+n)/3,l=i-(t+2*n)/3;if(u*l<0)r=[[s,a,h],[s,o,h]];else{var c=u/l;r=[c>=2?[s,a,h]:c<=.5?[s,o,h]:[s,a,o,h],[s,h]]}return(u||l)<0?r.reverse():r}function n(t,e,i,n){return t[0][1]n?r(e,!1,n):t[0][0]}function r(t,e,i){for(var n=t[0][0],r=t[0][1],s=1,a=t.length;s=i:h<=i)return h===i?o:n+(i-r)*(o-n)/(h-r);n=o,r=h}return null}function s(t,e,i,n,r){var s=u.isZero;if(s(n)&&s(r)){var a=k.getTimeOf(t,new c(e,i));return null===a?[]:[a]}for(var o=Math.atan2(-r,n),h=Math.sin(o),l=Math.cos(o),f=[],d=[],_=0;_<8;_+=2){var g=t[_]-e,v=t[_+1]-i;f.push(g*l-v*h,g*h+v*l)}return k.solveCubic(f,1,0,d,0,1),d}function a(e,i,n,r,a,o,h){for(var u=i[0],l=i[1],c=s(e,u,l,i[6]-u,i[7]-l),f=0,d=c.length;fl(n[0],n[2],n[4],n[6])&&l(i[0],i[2],i[4],i[6])-1e-12l(n[1],n[3],n[5],n[7])&&l(i[1],i[3],i[5],i[7])-1e-12>1,C=1&x,S=6*b,P=6*C,I=new c(i[S],i[S+1]),M=new c(n[P],n[P+1]);I.isClose(M,1e-12)&&t(h,u,r,b,s,C)}}}return h}function l(e,i,n,r){var s=k.classify(e);if("loop"===s.type){var a=s.roots;t(n,r,i,a[0],i,a[1])}return n}function f(t,e){function i(t){var e=t[6]-t[0],i=t[7]-t[1];return e*e+i*i}var n=Math.abs,r=m.getDistance,s=k.isStraight(t),a=k.isStraight(e),o=s&&a,h=i(t)>1,C=k.getTimeOf(v[w],new c(v[x][b?6:0],v[x][b?7:1]));if(null!=C){var S=w?[b,C]:[C,b];(!p.length||n(S[0]-p[0][0])>1e-8&&n(S[1]-p[0][1])>1e-8)&&p.push(S)}if(y>2&&!p.length)break}if(2!==p.length)p=null;else if(!o){var P=k.getPart(t,p[0][0],p[1][0]),I=k.getPart(e,p[0][1],p[1][1]);(n(I[2]-P[2])>1e-7||n(I[3]-P[3])>1e-7||n(I[4]-P[4])>1e-7||n(I[5]-P[5])>1e-7)&&(p=null)}return p}return{getIntersections:function(t){var e=this.getValues(),i=t&&t!==this&&t.getValues();return i?h(e,i,this,t,[]):l(e,this,[])},statics:{getOverlaps:f,getIntersections:function(t,e,i,n,r,s){var a=!e;a&&(e=t);for(var o,u,c=t.length,f=e.length,d=[],_=[],g=0;g=.99999999){var s=t.getNext();s&&(e=0,t=s)}this._setCurve(t),this._time=e,this._point=i||t.getPointAtTime(e),this._overlap=n,this._distance=r,this._intersection=this._next=this._previous=null},_setCurve:function(t){var e=t._path;this._path=e,this._version=e?e._version:0,this._curve=t,this._segment=null,this._segment1=t._segment1,this._segment2=t._segment2},_setSegment:function(t){this._setCurve(t.getCurve()),this._segment=t,this._time=t===this._segment1?0:1,this._point=t._point.clone()},getSegment:function(){var t=this._segment;if(!t){var e=this.getCurve(),i=this.getTime();0===i?t=e._segment1:1===i?t=e._segment2:null!=i&&(t=e.getPartLength(0,i)1?n[r-1]:r>0?n[0]:.5;c.push(k.getLength(i,e?s:0,e?1:s)/2)}function e(t,e,i){return ee&&te||t=1e-8&&n<=1-1e-8,a=r>=1e-8&&r<=1-1e-8;if(s&&a)return!this.isTouching();var o=this.getCurve(),h=n<1e-8?o.getPrevious():o,u=i.getCurve(),l=r<1e-8?u.getPrevious():u;if(n>1-1e-8&&(o=o.getNext()),r>1-1e-8&&(u=u.getNext()),!(h&&o&&l&&u))return!1;var c=[];s||(t(h,!0),t(o,!1)),a||(t(l,!0),t(u,!1));var f=this.getPoint(),d=Math.min.apply(Math,c),_=s?o.getTangentAtTime(n):o.getPointAt(d).subtract(f),g=s?_.negate():h.getPointAt(-d).subtract(f),v=a?u.getTangentAtTime(r):u.getPointAt(d).subtract(f),p=a?v.negate():l.getPointAt(-d).subtract(f),m=g.getAngle(),y=_.getAngle(),w=p.getAngle(),x=v.getAngle();return!!(s?e(m,w,x)^e(y,w,x)&&e(m,x,w)^e(y,x,w):e(w,m,y)^e(x,m,y)&&e(w,y,m)^e(x,y,m))},hasOverlap:function(){return!!this._overlap}},r.each(k._evaluateMethods,function(t){var e=t+"At";this[t]=function(){var t=this.getCurve(),i=this.getTime();return null!=i&&t&&t[e](i,!0)}},{preserve:!0}),new function(){function t(t,e,i){function n(i,n){for(var s=i+n;s>=-1&&s<=r;s+=n){var a=t[(s%r+r)%r];if(!e.getPoint().isClose(a.getPoint(),1e-7))break;if(e.equals(a))return a}return null}for(var r=t.length,s=0,a=r-1;s<=a;){var o,h=s+a>>>1,u=t[h];if(i&&(o=e.equals(u)?u:n(h,-1)||n(h,1)))return e._overlap&&(o._overlap=o._intersection._overlap=!0),o;var l=e.getPath(),c=u.getPath();(l!==c?l._id-c._id:e.getIndex()+e.getTime()-(u.getIndex()+u.getTime()))<0?a=h-1:s=h+1}return t.splice(s,0,e),e}return{statics:{insert:t,expand:function(e){for(var i=e.slice(),n=e.length-1;n>=0;n--)t(i,e[n]._intersection,!1);return i}}}}),A=w.extend({_class:"PathItem",_selectBounds:!1,_canScaleStroke:!0,beans:!0,initialize:function(){},statics:{create:function(t){var e,i,n;if(r.isPlainObject(t)?(i=t.segments,e=t.pathData):Array.isArray(t)?i=t:"string"==typeof t&&(e=t),i){var s=i[0];n=s&&Array.isArray(s[0])}else e&&(n=(e.match(/m/gi)||[]).length>1||/z\s*\S+/i.test(e));return new(n?N:L)(t)}},_asPathItem:function(){return this},isClockwise:function(){return this.getArea()>=0},setClockwise:function(t){this.isClockwise()!=(t=!!t)&&this.reverse()},setPathData:function(t){function e(t,e){var i=+n[t];return o&&(i+=h[e]),i}function i(t){return new c(e(t,"x"),e(t+1,"y"))}var n,r,s,a=t&&t.match(/[mlhvcsqtaz][^mlhvcsqtaz]*/gi),o=!1,h=new c,u=new c;this.clear();for(var l=0,f=a&&a.length;lu&&this[n?"removeSegments":"removeChildren"](u,h);for(c=0;c=0&&e;h--){var u=i[h];e=!1;for(var l=s-1;l>=0&&!e;l--)u.compare(n[l])&&(a[l]||(a[l]=!0,o++),e=!0)}e=e&&o===s}return e}}),L=A.extend({_class:"Path",_serializeFields:{segments:[],closed:!1},initialize:function(t){this._closed=!1,this._segments=[],this._version=0;var i=Array.isArray(t)?"object"==typeof t[0]?t:arguments:!t||t.size!==e||t.x===e&&t.point===e?null:arguments;i&&i.length>0?this.setSegments(i):(this._curves=e,this._segmentSelection=0,i||"string"!=typeof t||(this.setPathData(t),t=null)),this._initialize(!i&&t)},_equals:function(t){return this._closed===t._closed&&r.equals(this._segments,t._segments)},copyContent:function(t){this.setSegments(t._segments),this._closed=t._closed},_changed:function t(i){if(t.base.call(this,i),8&i){if(this._length=this._area=e,16&i)this._version++;else if(this._curves)for(var n=0,r=this._curves.length;n0&&(i(f[0],!0),p.push("z")),p.join("")},isEmpty:function(){return!this._segments.length},_transformContent:function(t){for(var e=this._segments,i=new Array(6),n=0,r=e.length;n0&&e+r-1===u?e-1:e,c=l,f=Math.min(l+r,u);t._curves&&(n.splice.apply(n,[l,0].concat(t._curves)),c+=t._curves.length);for(a=c;a0?t-1:t},add:function(t){return arguments.length>1&&"number"!=typeof t?this._add(T.readList(arguments)):this._add([T.read(arguments)])[0]},insert:function(t,e){return arguments.length>2&&"number"!=typeof e?this._add(T.readList(arguments,1),t):this._add([T.read(arguments,1)],t)[0]},addSegment:function(){return this._add([T.read(arguments)])[0]},insertSegment:function(t){return this._add([T.read(arguments,1)],t)[0]},addSegments:function(t){return this._add(T.readList(t))},insertSegments:function(t,e){return this._add(T.readList(e),t)},removeSegment:function(t){return this.removeSegments(t,t+1)[0]||null},removeSegments:function(t,e,i){t=t||0,e=r.pick(e,this._segments.length);var n=this._segments,s=this._curves,a=n.length,o=n.splice(t,e-t),h=o.length;if(!h)return o;for(l=0;l0&&e===a+(this._closed?1:0)?t-1:t,l=(s=s.splice(f,h)).length-1;l>=0;l--)s[l]._path=null;i&&(o._curves=s.slice(1)),this._adjustCurves(f,f)}return this._changed(25),o},clear:"#removeSegments",hasHandles:function(){for(var t=this._segments,e=0,i=t.length;e0&&this._segmentSelection===7*t},setFullySelected:function(t){t&&this._selectSegments(!0),this.setSelected(t)},setSelection:function t(e){1&e||this._selectSegments(!1),t.base.call(this,e)},_selectSegments:function(t){var e=this._segments,i=e.length,n=t?7:0;this._segmentSelection=n*i;for(var r=0;r0&&this.setSelected(!0)},divideAt:function(t){var e,i=this.getLocationAt(t);return i&&(e=i.getCurve().divideAt(i.getCurveOffset()))?e._segment1:null},splitAt:function(t){var e=this.getLocationAt(t),i=e&&e.index,n=e&&e.time;n>1-1e-8&&(i++,n=0);var r=this.getCurves();if(i>=0&&i=1e-8&&r[i++].divideAtTime(n);var s,a=this.removeSegments(i,this._segments.length,!0);return this._closed?(this.setClosed(!1),s=this):((s=new L(w.NO_INSERT)).insertAbove(this),s.copyAttributes(this)),s._add(a,0),this.addSegment(a[0]),s}return null},split:function(t,i){var n,r=i===e?t:(n=this.getCurves()[t])&&n.getLocationAtTime(i);return null!=r?this.splitAt(r):null},join:function(t,e){var i=e||0;if(t&&t!==this){var n=t._segments,r=this.getLastSegment(),s=t.getLastSegment();if(!s)return this;r&&r._point.isClose(s._point,i)&&t.reverse();var a=t.getFirstSegment();if(r&&r._point.isClose(a._point,i))r.setHandleOut(a._handleOut),this._add(n.slice(1));else{var o=this.getFirstSegment();o&&o._point.isClose(a._point,i)&&t.reverse(),s=t.getLastSegment(),o&&o._point.isClose(s._point,i)?(o.setHandleIn(s._handleIn),this._add(n.slice(0,n.length-1),0)):this._add(n.slice())}t._closed&&this._add([n[0]]),t.remove()}var h=this.getFirstSegment(),u=this.getLastSegment();return h!==u&&h._point.isClose(u._point,i)&&(h.setHandleIn(u._handleIn),u.remove(),this.setClosed(!0)),this},reduce:function(t){for(var e=this.getCurves(),i=t&&t.simplify,n=i?1e-7:0,r=e.length-1;r>=0;r--){var s=e[r];!s.hasHandles()&&(!s.hasLength(n)||i&&s.isCollinear(s.getNext()))&&s.remove()}return this},reverse:function(){this._segments.reverse();for(var t=0,e=this._segments.length;t0&&n.push(new T(e[i-1].curve.slice(6))),this.setSegments(n)},simplify:function(t){var e=new D(this).fit(t||2.5);return e&&this.setSegments(e),!!e},smooth:function(t){function i(t,e){var i=t&&t.index;if(null!=i){var r=t.path;if(r&&r!==n)throw new Error(t._class+" "+i+" of "+r+" is not part of "+n);e&&t instanceof k&&i++}else i="number"==typeof t?t:e;return Math.min(i<0&&h?i%o:i<0?i+o:i,o-1)}var n=this,r=t||{},s=r.type||"asymmetric",a=this._segments,o=a.length,h=this._closed,u=h&&r.from===e&&r.to===e,l=i(r.from,0),c=i(r.to,o-1);if(l>c)if(h)l-=o;else{var f=l;l=c,c=f}if(/^(?:asymmetric|continuous)$/.test(s)){var d="asymmetric"===s,_=Math.min,g=c-l+1,v=g-1,p=u?_(g,4):1,m=p,y=p,w=[];if(h||(m=_(1,l),y=_(1,o-c-1)),(v+=m+y)<=1)return;for(var x=0,b=l-m;x<=v;x++,b++)w[x]=a[(b<0?b+o:b)%o]._point;for(var C=w[0]._x+2*w[1]._x,S=w[0]._y+2*w[1]._y,P=2,I=v-1,M=[C],T=[S],z=[P],O=[],A=[],x=1;x=0;x--)O[x]=(M[x]-O[x+1])/z[x],A[x]=(T[x]-A[x+1])/z[x];O[v]=(3*w[v]._x-O[I])/2,A[v]=(3*w[v]._y-A[I])/2;for(var x=m,F=v-y,b=l;x<=F;x++,b++){var R=a[b<0?b+o:b],q=R._point,V=O[x]-q._x,H=A[x]-q._y;(u||xm)&&R.setHandleIn(-V,-H)}}else for(x=l;x<=c;x++)a[x<0?x+o:x].smooth(r,!u&&x===l,!u&&x===c)},toShape:function(t){function i(t,e){var i=l[t],n=i.getNext(),r=l[e],s=r.getNext();return i._handleOut.isZero()&&n._handleIn.isZero()&&r._handleOut.isZero()&&s._handleIn.isZero()&&n._point.subtract(i._point).isCollinear(s._point.subtract(r._point))}function n(t){var e=l[t],i=e.getNext(),n=e._handleOut,r=i._handleIn;if(n.isOrthogonal(r)){var s=e._point,a=i._point,o=new m(s,n,!0).intersect(new m(a,r,!0),!0);return o&&u.isZero(n.getLength()/o.subtract(s).getLength()-.5522847498307936)&&u.isZero(r.getLength()/o.subtract(a).getLength()-.5522847498307936)}return!1}function r(t,e){return l[t]._point.getDistance(l[e]._point)}if(!this._closed)return null;var s,a,o,h,l=this._segments;if(!this.hasHandles()&&4===l.length&&i(0,2)&&i(1,3)&&function(t){var e=l[t],i=e.getPrevious(),n=e.getNext();return i._handleOut.isZero()&&e._handleIn.isZero()&&e._handleOut.isZero()&&n._handleIn.isZero()&&e._point.subtract(i._point).isOrthogonal(n._point.subtract(e._point))}(1)?(s=C.Rectangle,a=new d(r(0,3),r(0,1)),h=l[1]._point.add(l[2]._point).divide(2)):8===l.length&&n(0)&&n(2)&&n(4)&&n(6)&&i(1,5)&&i(3,7)?(s=C.Rectangle,o=(a=new d(r(1,6),r(0,3))).subtract(new d(r(0,7),r(1,2))).divide(2),h=l[3]._point.add(l[4]._point).divide(2)):4===l.length&&n(0)&&n(1)&&n(2)&&n(3)&&(u.isZero(r(0,2)-r(1,3))?(s=C.Circle,o=r(0,2)/2):(s=C.Ellipse,o=new d(r(2,0)/2,r(3,1)/2)),h=l[1]._point),s){var c=this.getPosition(!0),f=new s({center:c,size:a,radius:o,insert:!1});return f.copyAttributes(this,!0),f._matrix.prepend(this._matrix),f.rotate(h.subtract(c).getAngle()+90),(t===e||t)&&f.insertAbove(this),f}return null},toPath:"#clone",compare:function t(e){if(!e||e instanceof N)return t.base.call(this,e);var i=this.getCurves(),n=e.getCurves(),r=i.length,s=n.length;if(!r||!s)return r==s;for(var a,o,h=i[0].getValues(),u=[],l=0,c=0,f=0;f0?s-1:f,o=v[0][1];break}}for(var d,_=Math.abs,g=u[a];h&&g;){var v=k.getOverlaps(h,g);if(v&&_(v[0][0]-c)<1e-8){1===(c=v[1][0])&&(h=++l=s&&(a=0),g=u[a]||n[a].getValues(),o=0),!h)return d[0]===a&&d[1]===o;continue}}break}return!1},_hitTestSelf:function(t,e,i,n){function r(e,i){return t.subtract(e).divide(i).length<=1}function s(t,i,n){if(!e.selected||i.isSelected()){var s=t._point;if(i!==s&&(i=i.add(s)),r(i,x))return new M(n,g,{segment:t,point:i})}}function a(t,i){return(i||e.segments)&&s(t,t._point,"segment")||!i&&e.handles&&(s(t,t._handleIn,"handle-in")||s(t,t._handleOut,"handle-out"))}function o(t){f.add(t)}function h(e){var i=y||e._index>0&&e._index0||S?0:null;if(null!==P&&(P>0?(u=v.getStrokeJoin(),l=v.getStrokeCap(),c=v.getMiterLimit(),x=x.add(L._getStrokePadding(P,n))):u=l="round"),!e.ends||e.segments||y){if(e.segments||e.handles)for(T=0;T1?h(d.getSegment())||(d=null):r(d.getPoint(),x)||(d=null)}if(!d&&"miter"===u&&m>1)for(var T=0;Tt)return a.getLocationAt(t-s)}if(e.length>0&&t<=this.getLength())return new O(e[e.length-1],1)}else if(t&&t.getPath&&t.getPath()===this)return t;return null}}),new function(){function t(t,e,i,n){function r(e){var i=h[e],n=h[e+1];s==i&&a==n||(t.beginPath(),t.moveTo(s,a),t.lineTo(i,n),t.stroke(),t.beginPath(),t.arc(i,n,o,0,2*Math.PI,!0),t.fill())}for(var s,a,o=n/2,h=new Array(6),u=0,l=e.length;u0&&n(f[0])}return{_draw:function(t,i,n,r){function s(t){return c[(t%f+f)%f]}var a=i.dontStart,o=i.dontFinish||i.clip,h=this.getStyle(),u=h.hasFill(),l=h.hasStroke(),c=h.getDashArray(),f=!paper.support.nativeDash&&l&&c&&c.length;if(a||t.beginPath(),(u||l&&!f||o)&&(e(t,this,r),this._closed&&t.closePath()),!o&&(u||l)&&(this._setStyles(t,i,n),u&&(t.fill(h.getFillRule()),t.shadowColor="rgba(0,0,0,0)"),l)){if(f){a||t.beginPath();var d,_=new B(this,.25,32,!1,r),g=_.length,v=-h.getDashOffset(),p=0;for(v%=g;v>0;)v-=s(p--)+s(p--);for(;v0||d>0)&&_.drawPart(t,Math.max(v,0),Math.max(d,0)),v=d+s(p++)}t.stroke()}},_drawSelected:function(i,n){i.beginPath(),e(i,this,n),i.stroke(),t(i,this._segments,n,paper.settings.handleSize)}}},new function(){function t(t){var e=t._segments;if(!e.length)throw new Error("Use a moveTo() command first");return e[e.length-1]}return{moveTo:function(){var t=this._segments;1===t.length&&this.removeSegment(0),t.length||this._add([new T(c.read(arguments))])},moveBy:function(){throw new Error("moveBy() is unsupported on Path items.")},lineTo:function(){this._add([new T(c.read(arguments))])},cubicCurveTo:function(){var e=c.read(arguments),i=c.read(arguments),n=c.read(arguments),r=t(this);r.setHandleOut(e.subtract(r._point)),this._add([new T(n,i.subtract(n))])},quadraticCurveTo:function(){var e=c.read(arguments),i=c.read(arguments),n=t(this)._point;this.cubicCurveTo(e.add(n.subtract(e).multiply(1/3)),e.add(i.subtract(e).multiply(1/3)),i)},curveTo:function(){var e=c.read(arguments),i=c.read(arguments),n=r.pick(r.read(arguments),.5),s=1-n,a=t(this)._point,o=e.subtract(a.multiply(s*s)).subtract(i.multiply(n*n)).divide(2*n*s);if(o.isNaN())throw new Error("Cannot put a curve through points with parameter = "+n);this.quadraticCurveTo(o,i)},arcTo:function(){var e,i,n,s,a=Math.abs,o=Math.sqrt,h=t(this),l=h._point,f=c.read(arguments),_=r.peek(arguments);if("boolean"==typeof(x=r.pick(_,!0)))var g=(C=l.add(f).divide(2)).add(C.subtract(l).rotate(x?-90:90));else if(r.remain(arguments)<=2)g=f,f=c.read(arguments);else{var v=d.read(arguments),y=u.isZero;if(y(v.width)||y(v.height))return this.lineTo(f);var w=r.read(arguments),x=!!r.read(arguments),b=!!r.read(arguments),C=l.add(f).divide(2),S=(W=l.subtract(C).rotate(-w)).x,P=W.y,I=a(v.width),M=a(v.height),z=I*I,k=M*M,O=S*S,A=P*P,L=o(O/z+A/k);if(L>1&&(z=(I*=L)*I,k=(M*=L)*M),L=(z*k-z*A-k*O)/(z*A+k*O),a(L)<1e-12&&(L=0),L<0)throw new Error("Cannot create an arc with the given arguments");e=new c(I*P/M,-M*S/I).multiply((b===x?-1:1)*o(L)).rotate(w).add(C),i=(n=(s=(new p).translate(e).rotate(w).scale(I,M))._inverseTransform(l)).getDirectedAngle(s._inverseTransform(f)),!x&&i>0?i-=360:x&&i<0&&(i+=360)}if(g){var N=new m(l.add(g).divide(2),g.subtract(l).rotate(90),!0),B=new m(g.add(f).divide(2),f.subtract(g).rotate(90),!0),D=new m(l,f),j=D.getSide(g);if(!(e=N.intersect(B,!0))){if(!j)return this.lineTo(f);throw new Error("Cannot create an arc with the given arguments")}i=(n=l.subtract(e)).getDirectedAngle(f.subtract(e));var E=D.getSide(e);0===E?i=j*a(i):j===E&&(i+=i<0?360:-360)}for(var F=a(i),R=F>=360?4:Math.ceil((F-1e-7)/90),q=i/R,V=q*Math.PI/360,H=4/3*Math.sin(V)/(1+Math.cos(V)),Z=[],U=0;U<=R;U++){var W=f,G=null;if(U0&&(h(t[0],y),h(t[t.length-1],y)),v},_getStrokePadding:function(t,e){if(!e)return[t,t];var i=new c(t,0).transform(e),n=new c(0,t).transform(e),r=i.getAngleInRadians(),s=i.getLength(),a=n.getLength(),o=Math.sin(r),h=Math.cos(r),u=Math.tan(r),l=Math.atan2(a*u,s),f=Math.atan2(a,u*s);return[Math.abs(s*Math.cos(l)*h+a*Math.sin(l)*o),Math.abs(a*Math.sin(f)*h+s*Math.cos(f)*o)]},_addBevelJoin:function(t,e,i,n,r,s,a,o){var h=t.getCurve(),u=h.getPrevious(),l=h.getPoint1().transform(r),f=u.getNormalAtTime(1).multiply(i).transform(s),d=h.getNormalAtTime(0).multiply(i).transform(s);if(f.getDirectedAngle(d)<0&&(f=f.negate(),d=d.negate()),o&&a(l),a(l.add(f)),"miter"===e){var _=new m(l.add(f),new c(-f.y,f.x),!0).intersect(new m(l.add(d),new c(-d.y,d.x),!0),!0);_&&l.getDistance(_)<=n*i&&a(_)}a(l.add(d))},_addSquareCap:function(t,e,i,n,r,s,a){var o=t._point.transform(n),h=t.getLocation(),u=h.getNormal().multiply(0===h.getTime()?i:-i).transform(r);"square"===e&&(a&&(s(o.subtract(u)),s(o.add(u))),o=o.add(u.rotate(-90))),s(o.add(u)),s(o.subtract(u))},getHandleBounds:function(t,e,i,n,r){var s,a,o=i.getStyle();if(r.stroke&&o.hasStroke()){var h=i._getStrokeMatrix(n,r),u=o.getStrokeWidth()/2,l=u;"miter"===o.getStrokeJoin()&&(l=u*o.getMiterLimit()),"square"===o.getStrokeCap()&&(l=Math.max(l,u*Math.SQRT2)),s=L._getStrokePadding(u,h),a=L._getStrokePadding(l,h)}for(var c=new Array(6),f=1/0,d=-f,_=f,v=d,p=0,m=t.length;pd&&(d=I),M<_&&(_=M),T>v&&(v=T)}}return new g(f,_,d-f,v-_)}}});L.inject({statics:new function(){function t(t,e,i){var n=r.getNamed(i),s=new L(n&&0==n.insert&&w.NO_INSERT);return s._add(t),s._closed=e,s.set(n,{insert:!0})}function e(e,i,r){for(var s=new Array(4),a=0;a<4;a++){var o=n[a];s[a]=new T(o._point.multiply(i).add(e),o._handleIn.multiply(i),o._handleOut.multiply(i))}return t(s,!0,r)}var i=.5522847498307936,n=[new T([-1,0],[0,i],[0,-i]),new T([0,-1],[-i,0],[i,0]),new T([1,0],[0,-i],[0,i]),new T([0,1],[i,0],[-i,0])];return{Line:function(){return t([new T(c.readNamed(arguments,"from")),new T(c.readNamed(arguments,"to"))],!1,arguments)},Circle:function(){var t=c.readNamed(arguments,"center"),i=r.readNamed(arguments,"radius");return e(t,new d(i),arguments)},Rectangle:function(){var e,n=g.readNamed(arguments,"rectangle"),r=d.readNamed(arguments,"radius",0,{readNull:!0}),s=n.getBottomLeft(!0),a=n.getTopLeft(!0),o=n.getTopRight(!0),h=n.getBottomRight(!0);if(!r||r.isZero())e=[new T(s),new T(a),new T(o),new T(h)];else{var u=(r=d.min(r,n.getSize(!0).divide(2))).width,l=r.height,c=u*i,f=l*i;e=[new T(s.add(u,0),null,[-c,0]),new T(s.subtract(0,l),[0,f]),new T(a.add(0,l),null,[0,-f]),new T(a.add(u,0),[-c,0],null),new T(o.subtract(u,0),null,[c,0]),new T(o.add(0,l),[0,-f],null),new T(h.subtract(0,l),null,[0,f]),new T(h.subtract(u,0),[c,0])]}return t(e,!0,arguments)},RoundRectangle:"#Rectangle",Ellipse:function(){var t=C._readEllipse(arguments);return e(t.center,t.radius,arguments)},Oval:"#Ellipse",Arc:function(){var t=c.readNamed(arguments,"from"),e=c.readNamed(arguments,"through"),i=c.readNamed(arguments,"to"),n=r.getNamed(arguments),s=new L(n&&0==n.insert&&w.NO_INSERT);return s.moveTo(t),s.arcTo(e,i),s.set(n)},RegularPolygon:function(){for(var e=c.readNamed(arguments,"center"),i=r.readNamed(arguments,"sides"),n=r.readNamed(arguments,"radius"),s=360/i,a=i%3==0,o=new c(0,a?-n:n),h=a?-1:.5,u=new Array(i),l=0;l=0;a--){var o=n[a];n!==i||o instanceof L||(n=r.slice(n)),Array.isArray(o)?n[a]=new L({segments:o,insert:!1}):o instanceof N&&(n.splice.apply(n,[a,1].concat(o.removeChildren())),o.remove())}return t.base.call(this,e,n)},reduce:function t(e){for(var i=this._children,n=i.length-1;n>=0;n--)(r=i[n].reduce(e)).isEmpty()&&r.remove();if(!i.length){var r=new L(w.NO_INSERT);return r.copyAttributes(this),r.insertAbove(this),this.remove(),r}return t.base.call(this)},isClosed:function(){for(var t=this._children,e=0,i=t.length;e=0;d--){var _=h[d].split();_&&(s(_)&&_.getFirstSegment().setHandleIn(0,0),a.getLastSegment().setHandleOut(0,0))}return s(a),i(f,!1,e,n)}function a(t,e){for(var i=t;i;){if(i===e)return;i=i._previous}for(;t._next&&t._next!==e;)t=t._next;if(!t._next){for(;e._previous;)e=e._previous;t._next=e,e._previous=t}}function o(t){for(var e=t.length-1;e>=0;e--)t[e].clearHandles()}function h(t,e,i){var n=t&&t.length;if(n){var s=r.each(t,function(t,e){this[t._id]={container:null,winding:t.isClockwise()?1:-1,index:e}},{}),a=t.slice().sort(function(t,e){return v(e.getArea())-v(t.getArea())}),o=a[0];null==i&&(i=o.isClockwise());for(var h=0;h=0;d--){var _=a[d];if(_.contains(c)){var g=s[_._id];f=g.winding,l.winding+=f,l.container=g.exclude?g.container:_;break}}if(e(l.winding)===e(f))l.exclude=!0,t[l.index]=null;else{var p=l.container;u.setClockwise(p?!p.isClockwise():i)}}}return t}function l(t,e,i){function n(t){return t._path._id+"."+t._segment1._index}for(var r,s,h,u=e&&[],l=!1,c=i||[],f=i&&{},d=(i&&i.length)-1;d>=0;d--)(y=i[d])._path&&(f[n(y)]=!0);for(d=t.length-1;d>=0;d--){var _,g=t[d],v=g._time,p=v,m=e&&!e(g),y=g._curve;if(y&&(y!==s?(l=!y.hasHandles()||f&&f[n(y)],r=[],h=null,s=y):h>=1e-8&&(v/=h)),m)r&&r.push(g);else{if(e&&u.unshift(g),h=p,v<1e-8)_=y._segment1;else if(v>1-1e-8)_=y._segment2;else{var w=y.divideAtTime(v,!0);l&&c.push(y,w),_=w._segment1;for(var x=r.length-1;x>=0;x--){var b=r[x];b._time=(b._time-v)/(1-v)}}g._setSegment(_);var C=_._intersection,S=g._intersection;if(C){a(C,S);for(var P=C;P;)a(P._intersection,C),P=P._next}else _._intersection=S}}return i||o(c),u||t}function c(t,e,i,n,r){function s(s){var a=s[l+0],h=s[l+6];if(!(p<_(a,h)||p>g(a,h))){var f=s[u+0],v=s[u+2],x=s[u+4],b=s[u+6];if(a!==h){var I=p===a?0:p===h?1:y>g(f,v,x,b)||w<_(f,v,x,b)?1:k.solveCubic(s,l,p,T,0,1)>0?T[0]:1,z=0===I?f:1===I?b:k.getPoint(s,I)[i?"y":"x"],O=a>h?1:-1,A=o[l]>o[l+6]?1:-1,L=o[u+6];return p!==a?(zw?S+=O:P=!0,z>d-m&&zw&&(S+=O):f!=L&&(Lw?(S+=O,P=!0):L>y&&zy&&zy||by)&&(P=!0)}}function a(t){var e=t[l+0],n=t[l+2],r=t[l+4],a=t[l+6];if(p<=g(e,n,r,a)&&p>=_(e,n,r,a))for(var o,h=t[u+0],c=t[u+2],f=t[u+4],d=t[u+6],v=y>g(h,c,f,d)||w<_(h,c,f,d)?[t]:k.getMonoCurves(t,i),m=0,x=v.length;ml.quality&&(l=I);break}d-=m}for(_=s.length-1;_>=0;_--)s[_].segment._winding=l}function d(t,e){function i(t){var i;return!(!t||t._visited||e&&(!e[(i=t._winding||{}).winding]||e.unite&&2===i.winding&&i.windingL&&i.windingR))}function n(t){if(t)for(var e=0,i=s.length;e=0;c--){var f=u[c],_=f._path,g=f._segment,v=g.getPrevious(),p=g.getNext();t(v,_)&&t(p,_)&&(g.remove(),v._handleOut._set(0,0),p._handleIn._set(0,0),v===g||v.getCurve().hasLength()||(p._handleIn.set(v._handleIn),v.remove()))}s&&(l(a,n&&function(t){var e=t.getCurve(),i=t.getSegment(),n=t._intersection,r=n._curve,s=n._segment;if(e&&r&&e._path&&r._path)return!0;i&&(i._intersection=null),s&&(s._intersection=null)},h),h&&o(h),i=d(r.each(i,function(t){this.push.apply(this,t._segments)},[])));var m,y=i.length;return y>1&&e?(i!==e&&this.setChildren(i),m=this):1!==y||e||(i[0]!==this&&this.setSegments(i[0].removeSegments()),m=this),m||((m=new N(w.NO_INSERT)).addChildren(i),(m=m.reduce()).copyAttributes(this),this.replaceWith(m)),m},reorient:function(t,i){var n=this._children;return n&&n.length?this.setChildren(h(this.removeChildren(),function(e){return!!(t?e:1&e)},i)):i!==e&&this.setClockwise(i),this},getInteriorPoint:function(){var t=this.getBounds().getCenter(!0);if(!this.contains(t)){for(var e=this.getCurves(),i=t.y,n=[],r=[],s=0,a=e.length;s=_(h,u,l,c)&&i<=g(h,u,l,c))for(var f=k.getMonoCurves(o),d=0,v=f.length;d=m&&i<=y||i>=y&&i<=m)){var w=i===m?p[0]:i===y?p[6]:1===k.solveCubic(p,1,i,r,0,1)?k.getPoint(p,r[0]).x:(p[0]+p[6])/2;n.push(w)}}}n.length>1&&(n.sort(function(t,e){return t-e}),t.x=(n[0]+n[1])/2)}return t}}});var B=r.extend({_class:"PathFlattener",initialize:function(t,e,i,n,r){function s(t,e){var i=k.getValues(t,e,r);h.push(i),a(i,t._index,0,1)}function a(t,i,r,s){if(!(s-r>c)||n&&k.isStraight(t)||k.isFlatEnough(t,e||.25)){var o=t[6]-t[0],h=t[7]-t[1],f=Math.sqrt(o*o+h*h);f>0&&(l+=f,u.push({offset:l,curve:t,index:i,time:s}))}else{var d=k.subdivide(t,.5),_=(r+s)/2;a(d[0],i,r,_),a(d[1],i,_,s)}}for(var o,h=[],u=[],l=0,c=1/(i||32),f=t._segments,d=f[0],_=1,g=f.length;_=t){this.index=e;var a=i[e-1],o=a&&a.index===s.index?a.time:0,h=a?a.offset:0;return{index:s.index,time:o+(s.time-o)*(t-h)/(s.offset-h)}}}return{index:i[n-1].index,time:1}},drawPart:function(t,e,i){for(var n=this._get(e),r=this._get(i),s=n.index,a=r.index;s<=a;s++){var o=k.getPart(this.curves[s],s===n.index?n.time:0,s===r.index?r.time:1);s===n.index&&t.moveTo(o[0],o[1]),t.bezierCurveTo.apply(t,o.slice(2))}}},r.each(k._evaluateMethods,function(t){this[t+"At"]=function(e){var i=this._get(e);return k[t](this.curves[i.index],i.time)}},{})),D=r.extend({initialize:function(t){for(var e,i=this.points=[],n=t._segments,r=t._closed,s=0,a=n.length;s0&&(n=[new T(e[0])],i>1&&(this.fitCubic(n,t,0,i-1,e[1].subtract(e[0]),e[i-2].subtract(e[i-1])),this.closed&&(n.shift(),n.pop()))),n},fitCubic:function(t,e,i,n,r,s){var a=this.points;if(n-i!=1){for(var o,h=this.chordLengthParameterize(i,n),u=Math.max(e,e*e),l=!0,c=0;c<=4;c++){var f=this.generateBezier(i,n,h,r,s),d=this.findMaxError(i,n,f,h);if(d.error=u)break;l=this.reparameterize(i,n,h,f),u=d.error}var _=a[o-1].subtract(a[o+1]);this.fitCubic(t,e,i,o,r,_),this.fitCubic(t,e,o,n,_.negate(),s)}else{var g=a[i],v=a[n],p=g.getDistance(v)/3;this.addCurve(t,[g,g.add(r.normalize(p)),v.add(s.normalize(p)),v])}},addCurve:function(t,e){t[t.length-1].setHandleOut(e[1].subtract(e[0])),t.push(new T(e[3],e[2].subtract(e[3])))},generateBezier:function(t,e,i,n,r){for(var s=Math.abs,a=this.points,o=a[t],h=a[e],u=[[0,0],[0,0]],l=[0,0],c=0,f=e-t+1;c1e-12){var I=u[0][0]*l[1]-u[1][0]*l[0];C=(l[0]*u[1][1]-l[1]*u[0][1])/P,S=I/P}else{var M=u[0][0]+u[0][1],T=u[1][0]+u[1][1];C=S=s(M)>1e-12?l[0]/M:s(T)>1e-12?l[1]/T:0}var z,k,O=h.getDistance(o),A=1e-12*O;if(CO*O&&(C=S=O/3,z=k=null)}return[o,o.add(z||n.normalize(C)),h.add(k||r.normalize(S)),h]},reparameterize:function(t,e,i,n){for(r=t;r<=e;r++)i[r-t]=this.findRoot(n,this.points[r],i[r-t]);for(var r=1,s=i.length;r=s&&(s=h,r=a)}return{error:s,index:r}}}),j=w.extend({_class:"TextItem",_applyMatrix:!1,_canApplyMatrix:!1,_serializeFields:{content:null},_boundsOptions:{stroke:!1,handle:!1},initialize:function(t){this._content="",this._lines=[];var i=t&&r.isPlainObject(t)&&t.x===e&&t.y===e;this._initialize(i&&t,!i&&c.read(arguments))},_equals:function(t){return this._content===t._content},copyContent:function(t){this.setContent(t._content)},getContent:function(){return this._content},setContent:function(t){this._content=""+t,this._lines=this._content.split(/\r\n|\n|\r/gm),this._changed(265)},isEmpty:function(){return!this._content},getCharacterStyle:"#getStyle",setCharacterStyle:"#setStyle",getParagraphStyle:"#getStyle",setParagraphStyle:"#setStyle"}),E=j.extend({_class:"PointText",initialize:function(){j.apply(this,arguments)},getPoint:function(){var t=this._matrix.getTranslation();return new f(t.x,t.y,this,"setPoint")},setPoint:function(){var t=c.read(arguments);this.translate(t.subtract(this._matrix.getTranslation()))},_draw:function(t,e,i){if(this._content){this._setStyles(t,e,i);var n=this._lines,r=this._style,s=r.hasFill(),a=r.hasStroke(),o=r.getLeading(),h=t.shadowColor;t.font=r.getFontStyle(),t.textAlign=r.getJustification();for(var u=0,l=n.length;u1&&(h-=1),a[o]=6*h<1?s+6*(r-s)*h:2*h<1?r:3*h<2?s+(r-s)*(2/3-h)*6:s}return a},"rgb-gray":function(t,e,i){return[.2989*t+.587*e+.114*i]},"gray-rgb":function(t){return[t,t,t]},"gray-hsb":function(t){return[0,0,t]},"gray-hsl":function(t){return[0,0,t]},"gradient-rgb":function(){return[]},"rgb-gradient":function(){return[]}};return r.each(n,function(t,e){s[e]=[],r.each(t,function(t,i){var a=r.capitalize(t),o=/^(hue|saturation)$/.test(t),h=s[e][i]="gradient"===t?function(t){var e=this._components[0];return t=R.read(Array.isArray(t)?t:arguments,0,{readNull:!0}),e!==t&&(e&&e._removeOwner(this),t&&t._addOwner(this)),t}:"gradient"===e?function(){return c.read(arguments,0,{readNull:"highlight"===t,clone:!0})}:function(t){return null==t||isNaN(t)?0:t};this["get"+a]=function(){return this._type===e||o&&/^hs[bl]$/.test(this._type)?this._components[i]:this._convert(e)[i]},this["set"+a]=function(t){this._type===e||o&&/^hs[bl]$/.test(this._type)||(this._components=this._convert(e),this._properties=n[e],this._type=e),this._components[i]=h.call(this,t),this._changed()}},this)},{_class:"Color",_readIndex:!0,initialize:function e(i){var a,o,h,u,l=arguments,c=this.__read,f=0;Array.isArray(i)&&(i=(l=i)[0]);var d=null!=i&&typeof i;if("string"===d&&i in n&&(a=i,i=l[1],Array.isArray(i)?(o=i,h=l[2]):(c&&(f=1),l=r.slice(l,1),d=typeof i)),!o){if(u="number"===d?l:"object"===d&&null!=i.length?i:null){a||(a=u.length>=3?"rgb":"gray");var _=n[a].length;h=u[_],c&&(f+=u===arguments?_+(null!=h?1:0):1),u.length>_&&(u=r.slice(u,0,_))}else if("string"===d)a="rgb",4===(o=t(i)).length&&(h=o[3],o.length--);else if("object"===d)if(i.constructor===e){if(a=i._type,o=i._components.slice(),h=i._alpha,"gradient"===a)for(var g=1,v=o.length;g1?1:t))}var i=this._convert("rgb"),n=t||null==this._alpha?1:this._alpha;return i=[e(i[0]),e(i[1]),e(i[2])],n<1&&i.push(n<0?0:n),t?"#"+((1<<24)+(i[0]<<16)+(i[1]<<8)+i[2]).toString(16).slice(1):(4==i.length?"rgba(":"rgb(")+i.join(",")+")"},toCanvasStyle:function(t,e){if(this._canvasStyle)return this._canvasStyle;if("gradient"!==this._type)return this._canvasStyle=this.toCSS();var i,n=this._components,r=n[0],s=r._stops,a=n[1],o=n[2],h=n[3],u=e&&e.inverted();if(u&&(a=u._transformPoint(a),o=u._transformPoint(o),h&&(h=u._transformPoint(h))),r._radial){var l=o.getDistance(a);if(h){var c=h.subtract(a);c.getLength()>l&&(h=a.add(c.normalize(l-.1)))}var f=h||a;i=t.createRadialGradient(f.x,f.y,0,a.x,a.y,l)}else i=t.createLinearGradient(a.x,a.y,o.x,o.y);for(var d=0,_=s.length;d<_;d++){var g=s[d],v=g._offset;i.addColorStop(null==v?d/(_-1):v,g._color.toCanvasStyle())}return this._canvasStyle=i},transform:function(t){if("gradient"===this._type){for(var e=this._components,i=1,n=e.length;i0&&!(r instanceof N))for(var a=0,o=s.length;a0},hasStroke:function(){var t=this.getStrokeColor();return!!t&&t.alpha>0&&this.getStrokeWidth()>0},hasShadow:function(){var t=this.getShadowColor();return!!t&&t.alpha>0&&(this.getShadowBlur()>0||!this.getShadowOffset().isZero())},getView:function(){return this._project._view},getFontStyle:function(){var t=this.getFontSize();return this.getFontWeight()+" "+t+(/[a-z]/i.test(t+"")?" ":"px ")+this.getFontFamily()},getFont:"#getFontFamily",setFont:"#setFontFamily",getLeading:function t(){var e=t.base.call(this),i=this.getFontSize();return/pt|em|%|px/.test(i)&&(i=this.getView().getPixelSize(i)),null!=e?e:1.2*i}}),H=new function(){function t(t,e,i,n){for(var r=["","webkit","moz","Moz","ms","o"],s=e[0].toUpperCase()+e.substring(1),a=0;a<6;a++){var o=r[a],h=o?o+s:e;if(h in t){if(!i)return t[h];t[h]=n;break}}}return{getStyles:function(t){var e=t&&9!==t.nodeType?t.ownerDocument:t,i=e&&e.defaultView;return i&&i.getComputedStyle(t,"")},getBounds:function(t,e){var i,n=t.ownerDocument,r=n.body,s=n.documentElement;try{i=t.getBoundingClientRect()}catch(t){i={left:0,top:0,width:0,height:0}}var a=i.left-(s.clientLeft||r.clientLeft||0),o=i.top-(s.clientTop||r.clientTop||0);if(!e){var h=n.defaultView;a+=h.pageXOffset||s.scrollLeft||r.scrollLeft,o+=h.pageYOffset||s.scrollTop||r.scrollTop}return new g(a,o,i.width,i.height)},getViewportBounds:function(t){var e=t.ownerDocument,i=e.defaultView,n=e.documentElement;return new g(0,0,i.innerWidth||n.clientWidth,i.innerHeight||n.clientHeight)},getOffset:function(t,e){return H.getBounds(t,e).getPoint()},getSize:function(t){return H.getBounds(t,!0).getSize()},isInvisible:function(t){return H.getSize(t).equals(new d(0,0))},isInView:function(t){return!H.isInvisible(t)&&H.getViewportBounds(t).intersects(H.getBounds(t,!0))},isInserted:function(t){return n.body.contains(t)},getPrefixed:function(e,i){return e&&t(e,i)},setPrefixed:function(e,i,n){if("object"==typeof i)for(var r in i)t(e,r,!0,i[r]);else t(e,i,!0,n)}}},Z={add:function(t,e){if(t)for(var i in e)for(var n=e[i],r=i.split(/[\s,]+/g),s=0,a=r.length;s1?r.hyphenate(i):i.toLowerCase())}function s(t,e,i,n){var o,h=U._focused;if(l[e]=t,t?c[e]=i:delete c[e],e.length>1&&(o=r.camelize(e))in f){f[o]=t;var u=paper&&paper.agent;if("meta"===o&&u&&u.mac)if(t)a={};else{for(var d in a)d in c&&s(!1,d,a[d],n);a=null}}else t&&a&&(a[e]=i);h&&h._handleKeyEvent(t?"keydown":"keyup",n,e,i)}var a,o,h={"\t":"tab"," ":"space","\b":"backspace","":"delete",Spacebar:"space",Del:"delete",Win:"meta",Esc:"escape"},u={tab:"\t",space:" ",enter:"\r"},l={},c={},f=new r({shift:!1,control:!1,alt:!1,meta:!1,capsLock:!1,space:!1}).inject({option:{get:function(){return this.alt}},command:{get:function(){var t=paper&&paper.agent;return t&&t.mac?this.meta:this.control}}});return Z.add(n,{keydown:function(e){var i=t(e),n=paper&&paper.agent;i.length>1||n&&n.chrome&&(e.altKey||n.mac&&e.metaKey||!n.mac&&e.ctrlKey)?s(!0,i,u[i]||(i.length>1?"":i),e):o=i},keypress:function(e){if(o){var i=t(e),n=e.charCode,r=n>=32?String.fromCharCode(n):i.length>1?"":i;i!==o&&(i=r.toLowerCase()),s(!0,i,r,e),o=null}},keyup:function(e){var i=t(e);i in c&&s(!1,i,c[i],e)}}),Z.add(i,{blur:function(t){for(var e in c)s(!1,e,c[e],t)}}),{modifiers:f,isDown:function(t){return!!l[t]}}},X=G.extend({_class:"MouseEvent",initialize:function(t,e,i,n,r){this.type=t,this.event=e,this.point=i,this.target=n,this.delta=r},toString:function(){return"{ type: '"+this.type+"', point: "+this.point+", target: "+this.target+(this.delta?", delta: "+this.delta:"")+", modifiers: "+this.getModifiers()+" }"}}),Y=G.extend({_class:"ToolEvent",_item:null,initialize:function(t,e,i){this.tool=t,this.type=e,this.event=i},_choosePoint:function(t,e){return t||(e?e.clone():null)},getPoint:function(){return this._choosePoint(this._point,this.tool._point)},setPoint:function(t){this._point=t},getLastPoint:function(){return this._choosePoint(this._lastPoint,this.tool._lastPoint)},setLastPoint:function(t){this._lastPoint=t},getDownPoint:function(){return this._choosePoint(this._downPoint,this.tool._downPoint)},setDownPoint:function(t){this._downPoint=t},getMiddlePoint:function(){return!this._middlePoint&&this.tool._lastPoint?this.tool._point.add(this.tool._lastPoint).divide(2):this._middlePoint},setMiddlePoint:function(t){this._middlePoint=t},getDelta:function(){return!this._delta&&this.tool._lastPoint?this.tool._point.subtract(this.tool._lastPoint):this._delta},setDelta:function(t){this._delta=t},getCount:function(){return this.tool[/^mouse(down|up)$/.test(this.type)?"_downCount":"_moveCount"]},setCount:function(t){this.tool[/^mouse(down|up)$/.test(this.type)?"downCount":"count"]=t},getItem:function(){if(!this._item){var t=this.tool._scope.project.hitTest(this.getPoint());if(t){for(var e=t.item,i=e._parent;/^(Group|CompoundPath)$/.test(i._class);)e=i,i=i._parent;this._item=e}}return this._item},setItem:function(t){this._item=t},toString:function(){return"{ type: "+this.type+", point: "+this.getPoint()+", count: "+this.getCount()+", modifiers: "+this.getModifiers()+" }"}}),K=(o.extend({_class:"Tool",_list:"tools",_reference:"tool",_events:["onMouseDown","onMouseUp","onMouseDrag","onMouseMove","onActivate","onDeactivate","onEditOptions","onKeyDown","onKeyUp"],initialize:function(t){o.call(this),this._moveCount=-1,this._downCount=-1,this.set(t)},getMinDistance:function(){return this._minDistance},setMinDistance:function(t){this._minDistance=t,null!=t&&null!=this._maxDistance&&t>this._maxDistance&&(this._maxDistance=t)},getMaxDistance:function(){return this._maxDistance},setMaxDistance:function(t){this._maxDistance=t,null!=this._minDistance&&null!=t&&t255){var u=255-r,l=o-r;d=r+(d-r)*u/l,_=r+(_-r)*u/l,g=r+(g-r)*u/l}}function i(t,e,i){return p(t,e,i)-v(t,e,i)}function n(t,e,i,n){var r,s=[t,e,i],a=p(t,e,i),o=v(t,e,i);r=0===v(o=o===t?0:o===e?1:2,a=a===t?0:a===e?1:2)?1===p(o,a)?2:1:0,s[a]>s[o]?(s[r]=(s[r]-s[o])*n/(s[a]-s[o]),s[a]=n):s[r]=s[a]=0,s[o]=0,d=s[0],_=s[1],g=s[2]}var s,a,o,h,u,l,c,f,d,_,g,v=Math.min,p=Math.max,m=Math.abs,y={multiply:function(){d=u*s/255,_=l*a/255,g=c*o/255},screen:function(){d=u+s-u*s/255,_=l+a-l*a/255,g=c+o-c*o/255},overlay:function(){d=u<128?2*u*s/255:255-2*(255-u)*(255-s)/255,_=l<128?2*l*a/255:255-2*(255-l)*(255-a)/255,g=c<128?2*c*o/255:255-2*(255-c)*(255-o)/255},"soft-light":function(){var t=s*u/255;d=t+u*(255-(255-u)*(255-s)/255-t)/255,_=(t=a*l/255)+l*(255-(255-l)*(255-a)/255-t)/255,g=(t=o*c/255)+c*(255-(255-c)*(255-o)/255-t)/255},"hard-light":function(){d=s<128?2*s*u/255:255-2*(255-s)*(255-u)/255,_=a<128?2*a*l/255:255-2*(255-a)*(255-l)/255,g=o<128?2*o*c/255:255-2*(255-o)*(255-c)/255},"color-dodge":function(){d=0===u?0:255===s?255:v(255,255*u/(255-s)),_=0===l?0:255===a?255:v(255,255*l/(255-a)),g=0===c?0:255===o?255:v(255,255*c/(255-o))},"color-burn":function(){d=255===u?255:0===s?0:p(0,255-255*(255-u)/s),_=255===l?255:0===a?0:p(0,255-255*(255-l)/a),g=255===c?255:0===o?0:p(0,255-255*(255-c)/o)},darken:function(){d=us?u:s,_=l>a?l:a,g=c>o?c:o},difference:function(){(d=u-s)<0&&(d=-d),(_=l-a)<0&&(_=-_),(g=c-o)<0&&(g=-g)},exclusion:function(){d=u+s*(255-u-u)/255,_=l+a*(255-l-l)/255,g=c+o*(255-c-c)/255},hue:function(){n(s,a,o,i(u,l,c)),e(d,_,g,t(u,l,c))},saturation:function(){n(u,l,c,i(s,a,o)),e(d,_,g,t(u,l,c))},luminosity:function(){e(u,l,c,t(s,a,o))},color:function(){e(s,a,o,t(u,l,c))},add:function(){d=v(u+s,255),_=v(l+a,255),g=v(c+o,255)},subtract:function(){d=p(u-s,0),_=p(l-a,0),g=p(c-o,0)},average:function(){d=(u+s)/2,_=(l+a)/2,g=(c+o)/2},negation:function(){d=255-m(255-s-u),_=255-m(255-a-l),g=255-m(255-o-c)}},w=this.nativeModes=r.each(["source-over","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","lighter","darker","copy","xor"],function(t){this[t]=!0},{}),x=Q.getContext(1,1);x&&(r.each(y,function(t,e){var i="darken"===e,n=!1;x.save();try{x.fillStyle=i?"#300":"#a00",x.fillRect(0,0,1,1),x.globalCompositeOperation=e,x.globalCompositeOperation===e&&(x.fillStyle=i?"#a00":"#300",x.fillRect(0,0,1,1),n=x.getImageData(0,0,1,1).data[0]!==i?170:51)}catch(t){}x.restore(),w[e]=n}),Q.release(x)),this.process=function(t,e,i,n,r){var v=e.canvas,p="normal"===t;if(p||w[t])i.save(),i.setTransform(1,0,0,1,0,0),i.globalAlpha=n,p||(i.globalCompositeOperation=t),i.drawImage(v,r.x,r.y),i.restore();else{var m=y[t];if(!m)return;for(var x=i.getImageData(r.x,r.y,v.width,v.height),b=x.data,C=e.getImageData(0,0,v.width,v.height).data,S=0,P=b.length;S=2&&!t.hasHandles())if(h>2){a=t._closed?"polygon":"polyline";for(var l=[],c=0;c, + +License: + LGPL - Lesser General Public License + +Credits: + - Algorithm based on +*/ + +/* + Class: NETXUS.RectanglePacker + A class that finds an 'efficient' position for a rectangle inside another rectangle + without overlapping the space already taken. + + Algorithm based on + + It uses a binary tree to partition the space of the parent rectangle and allocate the + passed rectangles by dividing the partitions into filled and empty. +*/ + + +// Create a NETXUS namespace object if it doesn't exists +if (typeof NETXUS === 'undefined') + var NETXUS = function() {}; + + +/* + Constructor: NETXUS.RectanglePacker + Initializes the object with the given maximum dimensions + + Parameters: + + width - The containing rectangle maximum width as integer + height - The containing rectangle maximum height as integer + +*/ +NETXUS.RectanglePacker = function ( width, height ) { + + this.root = {}; + + // initialize + this.reset( width, height ); +} + + +/* + Resets the object to its initial state by initializing the internal variables + + Parameters: + + width - The containing rectangle maximum width as integer + height - The containing rectangle maximum height as integer +*/ +NETXUS.RectanglePacker.prototype.reset = function ( width, height ) { + this.root.x = 0; + this.root.y = 0; + this.root.w = width; + this.root.h = height; + delete this.root.lft; + delete this.root.rgt; + + this.usedWidth = 0; + this.usedHeight = 0; +} + + +/* + Returns the actual used dimensions of the containing rectangle. + + Returns: + + A object composed of the properties: 'w' for width and 'h' for height. +*/ +NETXUS.RectanglePacker.prototype.getDimensions = function () { + return { w: this.usedWidth, h: this.usedHeight }; +} + + +/* + Finds a suitable place for the given rectangle + + Parameters: + + w - The rectangle width as integer. + h - The rectangle height as integer. + + Returns: + + If there is room for the rectangle then returns the coordinates as an object + composed of 'x' and 'y' properties. + If it doesn't fit returns null +*/ +NETXUS.RectanglePacker.prototype.findCoords = function ( w, h ) { + + // private function to traverse the node tree by recursion + function recursiveFindCoords ( node, w, h ) { + + // private function to clone a node coords and size + function cloneNode ( node ) { + return { + x: node.x, + y: node.y, + w: node.w, + h: node.h + }; + } + + // if we are not at a leaf then go deeper + if ( node.lft ) { + // check first the left branch if not found then go by the right + var coords = recursiveFindCoords( node.lft, w, h ); + return coords ? coords : recursiveFindCoords( node.rgt, w, h ); + } + else + { + // if already used or it's too big then return + if ( node.used || w > node.w || h > node.h ) + return null; + + // if it fits perfectly then use this gap + if ( w == node.w && h == node.h ) { + node.used = true; + return { x: node.x, y: node.y }; + } + + // initialize the left and right leafs by clonning the current one + node.lft = cloneNode( node ); + node.rgt = cloneNode( node ); + + // checks if we partition in vertical or horizontal + if ( node.w - w > node.h - h ) { + node.lft.w = w; + node.rgt.x = node.x + w; + node.rgt.w = node.w - w; + } else { + node.lft.h = h; + node.rgt.y = node.y + h; + node.rgt.h = node.h - h; + } + + return recursiveFindCoords( node.lft, w, h ); + } + } + + // perform the search + var coords = recursiveFindCoords( this.root, w, h ); + // if fitted then recalculate the used dimensions + if (coords) { + if ( this.usedWidth < coords.x + w ) + this.usedWidth = coords.x + w; + if ( this.usedHeight < coords.y + h ) + this.usedHeight = coords.y + h; + } + return coords; +} + +function UnionFind(count) { + this.roots = new Array(count); + this.ranks = new Array(count); + + for(var i=0; i>>4)+"."+(e[9]&15);k.P=A(e,12,4);k.a=A(e,16,4);k.p=A(e,20,4);k.v=a(e,24); +for(var z=0;z<5;z++)k.v+="."+a(e,26+2*z);k.platform=A(e,40,4);k.d=L(e,44);k.k=A(e,48,4);k.l=L(e,52); +k.Q=[L(e,56),L(e,60)];k.U=L(e,64);k.A=d(e,68);k.h=A(e,80,4);return k}function F(e,n){var A=I,L={},k=A(e,n); +n+=4;for(var z=0;z>>1)}}function u(e,n,A,L){var k=I(n,A); +A+=4;e.r=t(n,A,k-1);A+=k;var z=I(n,A);A+=4;var r=I(n,A);A+=4;e.e=i(n,A,r);A+=r;var s=a(n,A);A+=2;var x=n[A]; +A++;e.z=t(n,A,x)}function H(e,n,A,L){var k=A-8;e.L=n[A];A++;e.u=n[A];A++;A+=2;var z=I(n,A);A+=4;var r=I(n,A); +A+=4;var s=I(n,A);A+=4;var x=I(n,A);A+=4;var j=I(n,A);A+=4;if(z!=0){e.S=[];A=k+z;for(var b=0;bH?l:(116*m-16)/u,c=q>H?q:(116*w-16)/u,p=J>H?J:(116*K-16)/u,d=p*96.72,e=c*100,n=M*81.427,A=d/100,k=e/100,D=n/100,z=v.O,r=[z[0]*A+z[1]*k+z[2]*D,z[3]*A+z[4]*k+z[5]*D,z[6]*A+z[7]*k+z[8]*D]; +for(var s=0;s<3;s++)r[s]=Math.max(0,Math.min(255,v.m(r[s])*255));return{g:r[0],q:r[1],N:r[2]}}};v.R=function(){var F=[],o=[]; +for(var D=0;D<2e3;D++){var u=D/1e3;F[D]=v.G(u);o[D]=u>.008856?Math.pow(u,1/3):(903.3*u+16)*(1/116)}return[F,o]}(); +function C(F,o){var D=o*o*o,u=D*3,H=1/(o-1),w=[];for(var q=0;q1?J.o:null; +for(var d=0;d>2]|=t[r]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(a[e>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=64?(this.block=a[16],this.start=e-64,this.hash(),this.hashed=!0):this.start=e}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},t.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,h=this.lastByteIndex;t[16]=this.block,t[h>>2]|=o[3&h],this.block=t[16],h>=56&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}},t.prototype.hash=function(){var t,h,s=this.h0,i=this.h1,e=this.h2,r=this.h3,o=this.h4,n=this.blocks;for(t=16;t<80;++t)h=n[t-3]^n[t-8]^n[t-14]^n[t-16],n[t]=h<<1|h>>>31;for(t=0;t<20;t+=5)s=(h=(i=(h=(e=(h=(r=(h=(o=(h=s<<5|s>>>27)+(i&e|~i&r)+o+1518500249+n[t]<<0)<<5|o>>>27)+(s&(i=i<<30|i>>>2)|~s&e)+r+1518500249+n[t+1]<<0)<<5|r>>>27)+(o&(s=s<<30|s>>>2)|~o&i)+e+1518500249+n[t+2]<<0)<<5|e>>>27)+(r&(o=o<<30|o>>>2)|~r&s)+i+1518500249+n[t+3]<<0)<<5|i>>>27)+(e&(r=r<<30|r>>>2)|~e&o)+s+1518500249+n[t+4]<<0,e=e<<30|e>>>2;for(;t<40;t+=5)s=(h=(i=(h=(e=(h=(r=(h=(o=(h=s<<5|s>>>27)+(i^e^r)+o+1859775393+n[t]<<0)<<5|o>>>27)+(s^(i=i<<30|i>>>2)^e)+r+1859775393+n[t+1]<<0)<<5|r>>>27)+(o^(s=s<<30|s>>>2)^i)+e+1859775393+n[t+2]<<0)<<5|e>>>27)+(r^(o=o<<30|o>>>2)^s)+i+1859775393+n[t+3]<<0)<<5|i>>>27)+(e^(r=r<<30|r>>>2)^o)+s+1859775393+n[t+4]<<0,e=e<<30|e>>>2;for(;t<60;t+=5)s=(h=(i=(h=(e=(h=(r=(h=(o=(h=s<<5|s>>>27)+(i&e|i&r|e&r)+o-1894007588+n[t]<<0)<<5|o>>>27)+(s&(i=i<<30|i>>>2)|s&e|i&e)+r-1894007588+n[t+1]<<0)<<5|r>>>27)+(o&(s=s<<30|s>>>2)|o&i|s&i)+e-1894007588+n[t+2]<<0)<<5|e>>>27)+(r&(o=o<<30|o>>>2)|r&s|o&s)+i-1894007588+n[t+3]<<0)<<5|i>>>27)+(e&(r=r<<30|r>>>2)|e&o|r&o)+s-1894007588+n[t+4]<<0,e=e<<30|e>>>2;for(;t<80;t+=5)s=(h=(i=(h=(e=(h=(r=(h=(o=(h=s<<5|s>>>27)+(i^e^r)+o-899497514+n[t]<<0)<<5|o>>>27)+(s^(i=i<<30|i>>>2)^e)+r-899497514+n[t+1]<<0)<<5|r>>>27)+(o^(s=s<<30|s>>>2)^i)+e-899497514+n[t+2]<<0)<<5|e>>>27)+(r^(o=o<<30|o>>>2)^s)+i-899497514+n[t+3]<<0)<<5|i>>>27)+(e^(r=r<<30|r>>>2)^o)+s-899497514+n[t+4]<<0,e=e<<30|e>>>2;this.h0=this.h0+s<<0,this.h1=this.h1+i<<0,this.h2=this.h2+e<<0,this.h3=this.h3+r<<0,this.h4=this.h4+o<<0},t.prototype.hex=function(){this.finalize();var t=this.h0,h=this.h1,s=this.h2,i=this.h3,e=this.h4;return r[t>>28&15]+r[t>>24&15]+r[t>>20&15]+r[t>>16&15]+r[t>>12&15]+r[t>>8&15]+r[t>>4&15]+r[15&t]+r[h>>28&15]+r[h>>24&15]+r[h>>20&15]+r[h>>16&15]+r[h>>12&15]+r[h>>8&15]+r[h>>4&15]+r[15&h]+r[s>>28&15]+r[s>>24&15]+r[s>>20&15]+r[s>>16&15]+r[s>>12&15]+r[s>>8&15]+r[s>>4&15]+r[15&s]+r[i>>28&15]+r[i>>24&15]+r[i>>20&15]+r[i>>16&15]+r[i>>12&15]+r[i>>8&15]+r[i>>4&15]+r[15&i]+r[e>>28&15]+r[e>>24&15]+r[e>>20&15]+r[e>>16&15]+r[e>>12&15]+r[e>>8&15]+r[e>>4&15]+r[15&e]},t.prototype.toString=t.prototype.hex,t.prototype.digest=function(){this.finalize();var t=this.h0,h=this.h1,s=this.h2,i=this.h3,e=this.h4;return[t>>24&255,t>>16&255,t>>8&255,255&t,h>>24&255,h>>16&255,h>>8&255,255&h,s>>24&255,s>>16&255,s>>8&255,255&s,i>>24&255,i>>16&255,i>>8&255,255&i,e>>24&255,e>>16&255,e>>8&255,255&e]},t.prototype.array=t.prototype.digest,t.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(20),h=new DataView(t);return h.setUint32(0,this.h0),h.setUint32(4,this.h1),h.setUint32(8,this.h2),h.setUint32(12,this.h3),h.setUint32(16,this.h4),t};var y=c();i?module.exports=y:(h.sha1=y,e&&define(function(){return y}))}();var EXRLoader={parse:function(e){var r={FloatType:1,UnsignedByteType:2,HalfFloatType:3,RGBEFormat:4};this.type=r.FloatType;var a=65536,n=a>>3,t=14,i=65537,o=1<>>20&2047;0===r&&(M.setFloat64(0,e*Math.pow(2,64)),r=(M.getUint32(0)>>>20&2047)-64);var a=r-1022;return[function(e,r){for(var a=Math.min(3,Math.ceil(Math.abs(r)/1023)),n=e,t=0;t>a&(1<n)return!1;I(6,u,h,e,l);var w=O.l;if(u=O.c,h=O.lc,f[t]=w,w==v){if(l.value-a.value>n)throw"Something wrong with hufUnpackEncTable";I(8,u,h,e,l);var p=O.l+c;if(u=O.c,h=O.lc,t+p>o+1)throw"Something wrong with hufUnpackEncTable";for(;p--;)f[t++]=0;t--}else if(w>=s){if(t+(p=w-s+2)>o+1)throw"Something wrong with hufUnpackEncTable";for(;p--;)f[t++]=0;t--}}!function(e){for(var r=0;r<=58;++r)E[r]=0;for(r=0;r0;--r){var n=a+E[r]>>1;E[r]=a,a=n}for(r=0;r0&&(e[r]=t|E[t]++<<6)}}(f)}function x(e){return 63&e}function P(e){return e>>6}var z={c:0,lc:0};function N(e,r,a,n){e=e<<8|te(a,n),r+=8,z.c=e,z.lc=r}var T={c:0,lc:0};function k(e,r,a,n,t,i,o,f,l,u){if(e==r){n<8&&(N(a,n,t,o),a=z.c,n=z.lc);var s=a>>(n-=8);s=new Uint8Array([s])[0];if(l.value+s>u)return!1;for(var v=f[l.value-1];s-- >0;)f[l.value++]=v}else{if(!(l.value32767?r-65536:r}var F={a:0,b:0};function B(e,r){var a=D(e),n=D(r),t=a+(1&n)+(n>>1),i=t,o=t-n;F.a=i,F.b=o}function L(e,r){var a=_(e),n=_(r),t=a-(n>>1)&u,i=n+t-l&u;F.a=i,F.b=t}function X(e,r,a,n,t,i,o){for(var f,l=o<16384,u=a>t?t:a,s=1;s<=u;)s<<=1;for(f=s>>=1,s>>=1;s>=1;){for(var v,c,h,w,p=0,y=p+i*(t-f),d=i*s,g=i*f,A=n*s,S=n*f;p<=y;p+=g){for(var U=p,b=p+n*(a-f);U<=b;U+=S){var m=U+A,M=(C=U+d)+A;l?(B(e[U+r],e[C+r]),v=F.a,h=F.b,B(e[m+r],e[M+r]),c=F.a,w=F.b,B(v,c),e[U+r]=F.a,e[m+r]=F.b,B(h,w),e[C+r]=F.a,e[M+r]=F.b):(L(e[U+r],e[C+r]),v=F.a,h=F.b,L(e[m+r],e[M+r]),c=F.a,w=F.b,L(v,c),e[U+r]=F.a,e[m+r]=F.b,L(h,w),e[C+r]=F.a,e[M+r]=F.b)}if(a&s){var C=U+d;l?B(e[U+r],e[C+r]):L(e[U+r],e[C+r]),v=F.a,e[C+r]=F.b,e[U+r]=v}}if(t&s)for(U=p,b=p+n*(a-f);U<=b;U+=S){m=U+A;l?B(e[U+r],e[m+r]):L(e[U+r],e[m+r]),v=F.a,e[m+r]=F.b,e[U+r]=v}f=s,s>>=1}return p}function V(e,r,a,n,l,u){var s=a.value,v=ne(r,a),c=ne(r,a);a.value+=4;var h=ne(r,a);if(a.value+=4,v<0||v>=i||c<0||c>=i)throw"Something wrong with HUF_ENCSIZE";var w=new Array(i),p=new Array(o);if(function(e){for(var r=0;r8*(n-(a.value-s)))throw"Something wrong with hufUncompress";!function(e,r,a,n){for(;r<=a;r++){var i=P(e[r]),o=x(e[r]);if(i>>o)throw"Invalid table entry";if(o>t){if((s=n[i>>o-t]).len)throw"Invalid table entry";if(s.lit++,s.p){var f=s.p;s.p=new Array(s.lit);for(var l=0;l0;l--){var s;if((s=n[(i<=t;)if((A=r[c>>h-t&f]).len)h-=A.len,k(A.lit,l,c,h,a,0,i,s,v,w),c=T.c,h=T.lc;else{if(!A.p)throw"hufDecode issues";var y;for(y=0;y=d&&P(e[A.p[y]])==(c>>h-d&(1<>=g,h-=g;h>0;){var A;if(!(A=r[c<i||(r[t++]=e[a++],t>i));)r[t++]=e[n++]}function W(e){for(var r=e.byteLength,a=new Array,n=0,t=new DataView(e);r>0;){var i=t.getInt8(n++);if(i<0){r-=(f=-i)+1;for(var o=0;o>8==255?t+=255&n:(a[t]=n,t++),e.value++}function Y(e,r){r[0]=le(e[0]),r[1]=le(e[1]),r[2]=le(e[5]),r[3]=le(e[6]),r[4]=le(e[14]),r[5]=le(e[15]),r[6]=le(e[27]),r[7]=le(e[28]),r[8]=le(e[2]),r[9]=le(e[4]),r[10]=le(e[7]),r[11]=le(e[13]),r[12]=le(e[16]),r[13]=le(e[26]),r[14]=le(e[29]),r[15]=le(e[42]),r[16]=le(e[3]),r[17]=le(e[8]),r[18]=le(e[12]),r[19]=le(e[17]),r[20]=le(e[25]),r[21]=le(e[30]),r[22]=le(e[41]),r[23]=le(e[43]),r[24]=le(e[9]),r[25]=le(e[11]),r[26]=le(e[18]),r[27]=le(e[24]),r[28]=le(e[31]),r[29]=le(e[40]),r[30]=le(e[44]),r[31]=le(e[53]),r[32]=le(e[10]),r[33]=le(e[19]),r[34]=le(e[23]),r[35]=le(e[32]),r[36]=le(e[39]),r[37]=le(e[45]),r[38]=le(e[52]),r[39]=le(e[54]),r[40]=le(e[20]),r[41]=le(e[22]),r[42]=le(e[33]),r[43]=le(e[38]),r[44]=le(e[46]),r[45]=le(e[51]),r[46]=le(e[55]),r[47]=le(e[60]),r[48]=le(e[21]),r[49]=le(e[34]),r[50]=le(e[37]),r[51]=le(e[47]),r[52]=le(e[50]),r[53]=le(e[56]),r[54]=le(e[59]),r[55]=le(e[61]),r[56]=le(e[35]),r[57]=le(e[36]),r[58]=le(e[48]),r[59]=le(e[49]),r[60]=le(e[57]),r[61]=le(e[58]),r[62]=le(e[62]),r[63]=le(e[63])}function j(e){for(var r=.5*Math.cos(.7853975),a=.5*Math.cos(.196349375),n=.5*Math.cos(.39269875),t=.5*Math.cos(3*3.14159/16),i=.5*Math.cos(.981746875),o=.5*Math.cos(3*3.14159/8),f=.5*Math.cos(1.374445625),l=new Array(4),u=new Array(4),s=new Array(4),v=new Array(4),c=0;c<8;++c){var h=8*c;l[0]=n*e[h+2],l[1]=o*e[h+2],l[2]=n*e[h+6],l[3]=o*e[h+6],u[0]=a*e[h+1]+t*e[h+3]+i*e[h+5]+f*e[h+7],u[1]=t*e[h+1]-f*e[h+3]-a*e[h+5]-i*e[h+7],u[2]=i*e[h+1]-a*e[h+3]+f*e[h+5]+t*e[h+7],u[3]=f*e[h+1]-i*e[h+3]+t*e[h+5]-a*e[h+7],s[0]=r*(e[h+0]+e[h+4]),s[3]=r*(e[h+0]-e[h+4]),s[1]=l[0]+l[3],s[2]=l[1]-l[2],v[0]=s[0]+s[1],v[1]=s[3]+s[2],v[2]=s[3]-s[2],v[3]=s[0]-s[1],e[h+0]=v[0]+u[0],e[h+1]=v[1]+u[1],e[h+2]=v[2]+u[2],e[h+3]=v[3]+u[3],e[h+4]=v[3]-u[3],e[h+5]=v[2]-u[2],e[h+6]=v[1]-u[1],e[h+7]=v[0]-u[0]}for(var w=0;w<8;++w)l[0]=n*e[16+w],l[1]=o*e[16+w],l[2]=n*e[48+w],l[3]=o*e[48+w],u[0]=a*e[8+w]+t*e[24+w]+i*e[40+w]+f*e[56+w],u[1]=t*e[8+w]-f*e[24+w]-a*e[40+w]-i*e[56+w],u[2]=i*e[8+w]-a*e[24+w]+f*e[40+w]+t*e[56+w],u[3]=f*e[8+w]-i*e[24+w]+t*e[40+w]-a*e[56+w],s[0]=r*(e[w]+e[32+w]),s[3]=r*(e[w]-e[32+w]),s[1]=l[0]+l[3],s[2]=l[1]-l[2],v[0]=s[0]+s[1],v[1]=s[3]+s[2],v[2]=s[3]-s[2],v[3]=s[0]-s[1],e[0+w]=v[0]+u[0],e[8+w]=v[1]+u[1],e[16+w]=v[2]+u[2],e[24+w]=v[3]+u[3],e[32+w]=v[3]-u[3],e[40+w]=v[2]-u[2],e[48+w]=v[1]-u[1],e[56+w]=v[0]-u[0]}function q(e){for(var r=0;r<64;++r){var a=e[0][r],n=e[1][r],t=e[2][r];e[0][r]=a+1.5747*t,e[1][r]=a-.1873*n-.4682*t,e[2][r]=a+1.8556*n}}function J(e,r,a){for(var n=0;n<64;++n)r[a+n]=ue(K(e[n]))}function K(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(m,Math.abs(e)-1)}function Q(e){var r=e.array.slice(e.offset.value,e.offset.value+e.size),a=new Uint8Array(pako.inflate(r).buffer),n=new Uint8Array(a.length);return Z(a),H(a,n),new DataView(n.buffer)}function $(e){var r=e.viewer,a={value:e.offset.value},n=new Uint8Array(e.width*e.lines*(we.channels.length*e.type*y)),t={version:oe(r,a),unknownUncompressedSize:oe(r,a),unknownCompressedSize:oe(r,a),acCompressedSize:oe(r,a),dcCompressedSize:oe(r,a),rleCompressedSize:oe(r,a),rleUncompressedSize:oe(r,a),rleRawSize:oe(r,a),totalAcUncompressedCount:oe(r,a),totalDcUncompressedCount:oe(r,a),acCompression:oe(r,a)};if(t.version<2)throw"EXRLoader.parse: "+we.compression+" version "+t.version+" is unsupported";for(var i=new Array,o=se(r,a)-y;o>0;){var f=ee(r.buffer,a),l=ie(r,a),u=l>>2&3,s=new Int8Array([(l>>4)-1])[0],v=ie(r,a);i.push({name:f,index:s,type:v,compression:u}),o-=f.length+3}for(var c=we.channels,h=new Array(e.channels),w=0;w=0&&(m.idx[C.index]=M),p.offset=M)}if(t.acCompressedSize>0)switch(t.acCompression){case g:var O=new Uint16Array(t.totalAcUncompressedCount);V(e.array,r,a,t.acCompressedSize,O,t.totalAcUncompressedCount);break;case A:var I=e.array.slice(a.value,a.value+t.totalAcUncompressedCount);O=new Uint16Array(pako.inflate(I).buffer);a.value+=t.totalAcUncompressedCount}if(t.dcCompressedSize>0){var E={array:e.array,offset:a,size:t.dcCompressedSize},R=new Uint16Array(Q(E).buffer);a.value+=t.dcCompressedSize}if(t.rleRawSize>0){I=e.array.slice(a.value,a.value+t.rleCompressedSize);var x=W(pako.inflate(I).buffer);a.value+=t.rleCompressedSize}var P=0,z=new Array(h.length);for(w=0;w>10,a=1023&e;return(e>>15?-1:1)*(r?31===r?a?NaN:1/0:Math.pow(2,r-15)*(1+a/1024):a/1024*6103515625e-14)}function ue(e){M.setFloat32(0,e);var r=M.getInt32(0),a=r>>16&32768,n=r>>12&2047,t=r>>23&255;return t<103?a:t>142?(a|=31744,a|=(255==t?0:1)&&8388607&r):t<113?a|=((n|=2048)>>114-t)+(n>>113-t&1):(a|=t-112<<10|n>>1,a+=1&n)}function se(e,r){var a=e.getUint16(r.value,!0);return r.value+=y,a}function ve(e,r,a,n,t){return"string"===n||"stringvector"===n||"iccProfile"===n?function(e,r,a){var n=(new TextDecoder).decode(new Uint8Array(e).slice(r.value,r.value+a));return r.value=r.value+a,n}(r,a,t):"chlist"===n?function(e,r,a,n){for(var t=a.value,i=[];a.value=n)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(v<=c)for(s=0;s>3]&1<<(7&t))&&(r[n++]=t);for(var i=n-1;nRe?Re-ze:Se,ke.offset=pe,ke.size=xe,Ne=Ae(ke),pe.value+=xe;for(var Fe=0;Fe=Re)break;for(var Le=0;Le(We=qe>Je?qe:Je)?Ke:We)<1e-32)Ge[Oe]=Ge[Oe+1]=Ge[Oe+2]=Ge[Oe+3]=0;else{var Qe=C(We);We=256*Qe[0]/We,Ge[Oe]=qe*We,Ge[Oe+1]=Je*We,Ge[Oe+2]=Ke*We,Ge[Oe+3]=Qe[1]+128}}Pe=Ge}var $e=this.type===r.UnsignedByteType?r.RGBEFormat:r.RGBAFormat;return{header:we,width:Ee,height:Re,data:Pe,format:$e,type:this.type}}}; \ No newline at end of file diff --git a/www.photopea.com/code/pp.js b/www.photopea.com/code/pp.js new file mode 100644 index 0000000..0c0bcdd --- /dev/null +++ b/www.photopea.com/code/pp.js @@ -0,0 +1,11315 @@ +(function(){function iq(){this.X2={};this.Li={}}iq.AY=[];iq.i6=function(L){var C=iq.AY;if(C.length!=0){var U=new q(B.E.mp); +for(var H=0;H0};iq.prototype.addEventListener=function(L,C){this.k(L,C,null)}; +iq.prototype.k=function(L,C,U){if(this.X2[L]==null){this.X2[L]=[];this.Li[L]=[]}this.X2[L].push(C);this.Li[L].push(U); +if(L==B.E.mp){var E=iq.AY;if(E.indexOf(this)==-1)E.push(this)}};iq.prototype.removeEventListener=function(L,C){var U=this.X2[L]; +if(U==null)return;var E=U.indexOf(C);if(E<0)return;var Y=this.Li[L];U.splice(E,1);Y.splice(E,1);if(L==B.E.mp&&U.length==0){var z=iq.AY; +z.splice(z.indexOf(this),1)}};iq.prototype.B=function(L){L.currentTarget=this;if(L.target==null)L.target=this; +var C=this.X2[L.type];if(C==null)return;var U=this.Li[L.type];for(var H=0;H=0; +if(L==null)return"";var U=[];for(var H=0;H>>H&1)==1)break; +H++}if(C==0||U[H][1]==""){if((C&15)!=0&&e3.u5(L,[33,126])>.7)H=0;else if(C==0)H=0;else{H=0}}return U[H][1]}; +e3.Xz=120;e3.PN=20;e3.cols=16;e3.G1=function(L){var C=L.name.postScriptName;if(C==null)return null;return C.replace(/ /g,"-")}; +e3.cT=function(L){var C=L.name,U=C.typoFamilyName?C.typoFamilyName:C.fontFamily,E=C.typoSubfamilyName?C.typoSubfamilyName:C.fontSubfamily,Y=e3.a1z,z=U.toLowerCase(); +for(var H=0;H128)Y=this.Ng(C,Y);if(this.lP[L]==null){this.lP[L]=1; +var P=Date.now()-this.gb>2e3?2e3:0;this.gb=Date.now();alert(L+" \u27A1 "+Y,P)}return this.y1(Y,C)}this.ga[L]="a"; +var b=new q(B.E.l,!0);b.data={e:B.U.sh,wm:{url:"rsrc/fonts/"+U}};this.B(b)};e3.prototype.Ng=function(L,C,U){var E=this.G9[C]; +if(E&&Typr.U.codeToGlyph(E,L)!=0)return C;var Y=this.Fj(),z=e3.a3_(L),r=z[0];if(Y[C]&&(Y[C][3]&r)==0){if(U)for(var H=0; +H2e3?2e3:0; +this.RU=Date.now();alert(gS.get([22,6,0])+" "+L.name.fullName+" "+gS.get([23,0])+".",U)}var E=e3.G1(L),Y=this.Fj(),z=Y[E],r=e3.ak2(L); +if(z==null){var p=document.createElement("canvas"),T=p.getContext("2d");p.width=e3.Xz;p.height=e3.PN; +var k=e3.PN*1.2/L.head.unitsPerEm;T.translate(4,e3.PN*.9);T.scale(k,-k);T.fillStyle="#000000";var P=Typr.U.shape(L,e3.ajf(L,r[3]),!0); +Typr.U.pathToContext(Typr.U.shapeToPath(L,P),T);T.fill();r.a06=p.toDataURL();this.AK(r)}delete this.ga[E]; +this.G9[E]=L};e3.anb=function(){var L=e3.sk,C=[];for(var H=0;Hp?1:0}for(var H=0;HC[2])return 1;return 0};e3.aes=function(L,C){if(L[5]=="fs/"+L[2]+".otf")L[5]=""; +else if(L[5]=="gf/"+L[2]+".otf")L[5]="a";if(L[2]==(L[0]+"-"+L[1]).replace(/\s/g,"")){L[2]=""}else if(L[2]==L[0].replace(/\s/g,"")){L[2]="a"}if(C){if(L[0]==C[0])L[0]=""; +if(L[1]==C[1])L[1]="";if(L[3]==C[3])L[3]="";if(L[4]==C[4])L[4]=""}return L.join(",")};e3.a2$=function(L,C){L=L.split(","); +if(L[0]=="")L[0]=C[0];if(L[1]=="")L[1]=C[1];if(L[3]=="")L[3]=C[3];else L[3]=parseInt(L[3]);if(L[4]=="")L[4]=C[4]; +else L[4]=parseInt(L[4]);if(L[2]=="")L[2]=(L[0]+"-"+L[1]).replace(/\s/g,"");else if(L[2]=="a")L[2]=L[0].replace(/\s/g,""); +if(L[5]=="")L[5]="fs/"+L[2]+".otf";else if(L[5]=="a")L[5]="gf/"+L[2]+".otf";return L};e3.abm={ArialMT:"LiberationSans","Arial-BoldMT":"LiberationSans-Bold","Arial-ItalicMT":"LiberationSans-Italic","Arial-BoldItalicMT":"LiberationSans-BoldItalic",TimesNewRomanPSMT:"LiberationSerif","TimesNewRomanPS-BoldMT":"LiberationSerif-Bold","TimesNewRomanPS-ItalicMT":"LiberationSerif-Italic","TimesNewRomanPS-BoldItalicMT":"LiberationSerif-BoldItalic",CourierNewPSMT:"LiberationMono","CourierNewPS-BoldMT":"LiberationMono-Bold","CourierNewPS-ItalicMT":"LiberationMono-Italic","CourierNewPS-BoldItalicMT":"LiberationMono-BoldItalic",Courier:"CourierPrime",TrebuchetMS:"SourceSansPro-Regular","TrebuchetMS-Bold":"SourceSansPro-Semibold","TrebuchetMS-Italic":"SourceSansPro-It","TrebuchetMS-BoldItalic":"SourceSansPro-SemiboldIt","Times-Roman":"LiberationSerif",Impact:"Anton-Regular",Calibri:"SourceSansPro-Regular","Calibri-Italic":"SourceSansPro-It","Calibri-Bold":"SourceSansPro-Bold",CalibriBold:"SourceSansPro-Bold","Times-Roman":"LiberationSerif","Times-Italic":"LiberationSerif-Italic","Times-Bold":"LiberationSerif-Bold","Helvetica-Bold":"LiberationSans-Bold","HelveticaNeue-Thin":"Roboto-Thin","HelveticaNeue-Light":"Roboto-Light",HelveticaNeue:"Roboto-Regular","HelveticaNeue-Roman":"Roboto-Regular","HelveticaNeue-Medium":"Roboto-Medium","HelveticaNeue-Bold":"Roboto-Bold","HelveticaNeue-BoldItalic":"Roboto-BoldItalic","HelveticaNeue-Black":"Roboto-Black","HelveticaNeue-Heavy":"Roboto-Black","SFProText-Light":"Roboto-Light","SFProText-Regular":"Roboto-Regular","SFProText-Roman":"Roboto-Regular","SFProText-Medium":"Roboto-Medium","SFProText-Semibold":"Roboto-Medium","SFProText-Bold":"Roboto-Bold","SFProText-BoldItalic":"SFProText-BoldItalic","SFProText-Black":"Roboto-Black","SFProText-Heavy":"Roboto-Black","SFProDisplay-Light":"Roboto-Light","SFProDisplay-Regular":"Roboto-Regular","SFProDisplay-Roman":"Roboto-Regular","SFProDisplay-Medium":"Roboto-Medium","SFProDisplay-Semibold":"Roboto-Medium","SFProDisplay-Bold":"Roboto-Bold","SFProDisplay-BoldItalic":"SFProDisplay-BoldItalic","SFProDisplay-Black":"Roboto-Black","SFProDisplay-Heavy":"Roboto-Black","SFUIText-Light":"Roboto-Light","SFUIText-Regular":"Roboto-Regular","SFUIText-Roman":"Roboto-Regular","SFUIText-Medium":"Roboto-Medium","SFUIText-Semibold":"Roboto-Medium","SFUIText-Bold":"Roboto-Bold","SFUIText-BoldItalic":"SFUIText-BoldItalic","SFUIText-Black":"Roboto-Black","SFUIText-Heavy":"Roboto-Black",Verdana:"DejaVuSans","Verdana-Bold":"DejaVuSans-Bold","Verdana-Italic":"DejaVuSans-Oblique","Verdana-BoldItalic":"DejaVuSans-BoldOblique","MyriadPro-Regular":"PTSans-Regular","MyriadPro-Bold":"PTSans-Bold","MyriadPro-LightIt":"PTSans-Italic","MyriadPro-Semibold":"PTSans-Bold","MyriadPro-BlackCond":"PTSans-NarrowBold",Cambria:"Oranienbaum-Regular",Georgia:"CharisSIL","Georgia-Bold":"CharisSIL-Bold","Georgia-Italic":"CharisSIL-Italic","Georgia-BoldItalic":"CharisSIL-BoldItalic","AGaramondPro-Regular":"EBGaramond08-Regular","AGaramondPro-Bold":"EBGaramond08-Bold","AGaramondPro-Italic":"EBGaramond08-Italic",Garamond:"EBGaramond08-Regular",FontAwesome:"FontAwesome5FreeSolid","ProximaNova-Regular":"Metropolis-Regular","ProximaNova-Semibold":"Metropolis-SemiBold","ProximaNova-Light":"Metropolis-Light",BellMT:"GalatiaSIL",PalatinoLinotype:"TeXGyrePagella-Regular","PalatinoLinotype-Bold":"TeXGyrePagella-Bold","PalatinoLinotype-Italic":"TeXGyrePagella-Italic","PalatinoLinotype-BoldItalic":"TeXGyrePagella-BoldItalic","":""}; +e3.prototype.Fj=function(){if(FNTS.map==null){var L=FNTS.list,C=[];for(var H=0;HC()/20};cN.PW=function(){return cN.anU()!=null}; +cN.lE=function(){return cN.TQ};cN.Rn=function(L){window.addEventListener("message",cN.a7O,!1);setInterval(cN.$o,5e3); +if(cN.PW()){cN.sO=L;cN.al()}else setTimeout(L,1)};cN.$o=function(){if(cN.PW()&&cN.eu){cN.Eo(cN._W()); +cN.eu=!1}};cN.hD=function(L){cN.sO=L;var C="https://www.photopea.com/papi/login.php?redirect="+encodeURIComponent(window.location.href); +cN.ib=window.open(C,"_blank")};cN.acZ=function(){localStorage.removeItem(cN.ZE+"_uid");localStorage.removeItem(cN.ZE+"_provider"); +localStorage.removeItem(cN.ZE+"_token");cN.TQ=null};cN.a7O=function(L){if(L.data instanceof ArrayBuffer||L.data instanceof Object)return; +if(L.data.charAt(0)!="{")return;var C=JSON.parse(L.data);if(C.prms==null)return;var U=C.prms.split(","); +if(U[0]=="papi_logged_in"){localStorage[cN.ZE+"_uid"]=U[1];cN.cx(U[2]);localStorage[cN.ZE+"_provider"]=U[3]; +cN.ib.close();cN.al()}if(U[0]=="payment_complete"){cN.P7.close();cN.al()}};cN.anU=function(){var L=localStorage[cN.ZE+"_token"]; +if(L!=null&&Date.now()*.001+10z?1:-1;if(p)return-1;if(T)return 1;return Y>z?1:-1},C=LNG.langs.slice(0);C.sort(L); +return C};gS.agi=function(L){gS.OL=L};gS.z1=function(L){for(var H=0;H")==-1)gS.dR[JSON.stringify(L[H])]=L[H+1]}; +gS.Z_=function(L){var C=-1,U=LNG.langs;for(var H=0;H&\x7F"); +if(B.ac[P]!=!0){p=1}var b=C[E](L("u}-"));b[T](L("zx"),k);b[T](L("$(0&\""),L("(}{.%ZXVY5){p=4}U[r](b)}if(eK.cL)p=5; +if(eK._p)p=6;return p};eK.a5G=function(L){var C=B.d8("y),+1ZRU:.787=mlITWRZVgphaifg}u~!C{+,P5)2328eDPnDJ\\NhYdgbjf2q}"),U={method:"HEAD",mode:"no-cors"},E=new Request(C,U); +fetch(E).then(function(Y){return Y}).then(function(Y){L(!1)}).catch(function(Y){eK.cL=!0;console.clear(); +L(!0)})};eK.a5x=function(){var L=B._A("UU[YW#ECC8"),C=B._A("VQ](RUK>@B8p71*03m}x'"),U=B._A("WQRMKT"),E=this.a2M[L][C](); +if(E[U]<4){eK._p=!0;this.ajc(!0)}};eK.Ta=function(){var L=B.ac._cwY,C=B.ac[B.N9("$y+n&-(5>@")],U="FQi[VE];;J6@?18',!'*3$|*niu~hgcWhlOUU`LOIT53A-11/)~$'>-cvys~_]k[RQiYHEJMWH@N--E$++|!|~t*hht,{HaWP_NrcLBNWIDN>049?5(+3qq}3$pp{ZjkoMi6UEJCLAQ/.+47-09>Tspy|ru~(xAaVl2Tcm]|LMZ\\",E=String.fromCharCode(32); +L(B.Yo(U)+E+E+eK.Uw());if(!cN.ez())C(eK.Ta,Math.round(Math.PI*1e4))};eK.a2d=function(L,C,U,E,Y){B.CF(U); +var z=B.N9,r=z("r$'\x7F+$f.283"),p=z("$y+[145/+AC7"),T=z("rx{_3%1:u5BF:F@P"),k=z("#y'&~#("),P=z("$(0&\""),b=z("$&z"),Q=z("r'0( "),K=z("%y/.`/1:.:C"),h=z("u}-"),x=B.d8("zz*{+&"),O=B.ac[z("u#z/*%1:")],y=z("t&|{1%h2.94@I"),v=z("$w)#-4"),i=B.d8("z#+ 05e,0300*300){var A=O[z("xy+_)%0+7@BtN,DG^]Z)\\#VMxAwG;:26``/#,!RMszDrpl:a3d**UNk.W)%|Lssdi)bhslwdgVR@[pU9B?88[MJ{y!=oxunibfXk~]]OsUBNBFGD2770\"2 +C!#^LPUsq[$]cnuhHBR0>03/=i()r|zv\\t`li[ewuibc^_X5")),V=0,a="lor<%03.62D4=f?LFrX`aY{]okcwoxz7;54;&14/73E5>gAIVVUMhy{\\dt.kw~:qwC*%/759105DEmrtu~pu+rs\"7!.'lt%>{(/J\"(S:5?GEIA@ETU}#%&/{Z,^(p{~y\"}0 )R+82^DLMEgI[WOc[df#'! 'q| z#~1!*S-5BBA9TegHP`yWcj&]c/upz#!%|{!01Y^`ai\\av^_m#lyrX`p*gsz6ms?&!+315-,1@AinpqygFwJs\\gjemi{kt>v$}J0891S5GC;OGPRnrlkr]hkfnj|lu?x!..-%@QS4Z^XW^ITWRZVhXa+dlyyxp,=? (8Q/;B]5;fMHRZX\\TSXgh16:FBTDMvPXeed\\w)+ks$=z'.I!'R94>FDH@?DST|\"&). %:\"#1F0=6{$4M+7>Y17bIDNVTXPOTcd-269>+i;m7 +.)1-?/8a:GAmS[\\TvXjf^rjsu260/6!,/*2.@09b% *204,+0?@hmrorkp&mn|2{)\"go 9v#*E|#N50:B@D<;@OPx}# #vU'Y#kvyt|x+z$M&3-Y?GH@bDVRJ^V_a}\"{z\"lwzu}y,{%N(0==<4O`bCK[tR^e!X^*pku}{ wv{+,TY^[_W\\qYZh}gtmS[k%bnu1hn:!{&.,0(',;6JBKMimgfmXcfaiewgp:s{))( ;LN/7G`>JQlDJu\\Waigkcbgvw@EGNJCH]EFTiS`Y?GWpNZa|TZ&lgqyw{srw'(PUW^ZN-0aZjmFXP\"Yj+**5k7h7o{\"+|\"113Yy_JUXS[WiYb}}!'&+K3}),'/+=-6_8E?]}cNY\\W_[m]f0huo..17uz[C=+?OC=,HNVw|~ ( gaPlrz@\\`ZY`TN=Y_g).01:%E+u!$~'#5%.W159?GA2NT\\rt ,'328768:AqVFNSUV_Xb0D?IQOSKJyRabWogfv8190nIKLKBE][,]T^?GWpNZa|TZ&lgqyw{srw'(PUWXaSX`7=@2GW^TQV{^ilgok}mv@&.} &8OSVkS>ILGOK]MV em]_ew/3;t|*z~,(n75C;6D'MBHnr(or]hkfnj|lu?y&{ -)y/?F<9>Ofj es)Xcfaiewgp:r yF,45-O1C?7KCLNjnhgnb\\Kgmu7<>?G3S9$/2-51C3RMW_]aYX(`ope}ut%F?G>|U]ZYPifi:kblMUe~\\ho+bh4zu (&*\"!&56^cefnafnEKN@Uelb_d*lwzu}y,{%N4<,.4F]adyaLWZU]Yk[d.s{kms&=AI#+8)-:6|ECQIDR5[PV|!6}!kvyt|x+z$M(4*.;7(=MTJGL]tx.s\"7fqtows&u~H!.(T:BC;]?QMEYQZ\\x|vu|pjYu{$EJLSOAaG2=@;C?QAJsMQU[c]Njpx/19Ep% *204,+Z3BC8PHGWxqypO**-,#<95? (8Q/;B]5;fMHRZX\\TSXgh16:<@49Aw}!r(8?527\\?JMHPL^NW!fn^`fx047L{'*%-);+4]7;?EMG8TZbxz&2-98>=<>@Gw\\LTY]_d^g6JEOWUYQP Xgh]uml|>7?6tOORQH]ca2cZdEM]vT`g#Z`,rmw }\"yx}-.V[_afY^f=CF8M]dZW\\\"dormuq$s|F,4$&,>UY\\qALOJRN`PY#\\`djrl]y (>@KWR^]cbacel=\"qy~#&+$-[ojt|z~vuE}-.#;32Bc\\d[:ttwvm#)'W) *jr#CRS{!%(-~$,bhk]r#* |\"G*583;7I9BkQYIKQcz~\"7fqtows&u~H\"&*082#?EMcep|w$#)(')+2bG7?DIFIIR!50:B@D<;jCRSH`XWg)\"*!_::=<3HNL|NEO08Ha?KRmEKv]XbjhldchwxAFKHKDIQ(.1#8HOEBGlOZ]X`\\n^g1v~npv)@DG\\,7:5=9K;DmGKOU]WHdjr)+6B=IHNMLNPW(l\\dinkonwFZU_geia`0hwxm&}|-NGOF%__baXmsqBsjtU]m'dpw3jp<#}(0.2*).=>fkpmqinvMSVH]mtjgl2t #}&\"4$-V;"));R[p](B.d8("t!x.1"),B.d8("!)D.\",P:2PSKSO^"));var l=[.4,.4,.2],w=Math.random(); +while(l[V]rzwc$!$V>CP/l{m|ww(.#'7SZYD7IIILLTPw]a!e\\phmurryz~.HON3*>6;CODBULryxdbff]qinv7>=!|!2.%916>^edSHFYPv~'$#bbijn}8EBE"),M=Z.split(","); +for(var H=0;H9EN~Y,JpMSgcao'/gvx\"u\"+p&.'5@Y3A8MHCOX\"SSbTc^*nrjv37L}}-~.)TA?9G;`TLNM\\_^~f\\mmoqyn`t+*AV((7)83^7CIPEjn$il-megfuxw8|!x%A>fgyJWNX=LONT}ux]eUW]o-i3lz$s!|}**'2W;5Gd@=LRFLyOUl6cr=27=CAFKISWPKR,2FB@NgfhYc)u|Zf^mei\\\\V8' 4\"HMLN@k\"A9>CNIU^Ldlf^!2Fxm}%z#~@DKg(>2]AEPcgmd\\]cV|2rjlkz}|=&z' FJ_ESUYn"),e=O[y](v); +e[K]=a;A[r](e)}U[r](R);return}if(Y==1&&V==1){console.log(2);var N=O[y](B.d8("u}."));N[p](P,B.N9("~u)!&.P(8@CABrmnQ\\")); +var J=O[y](B.d8("u}."));N[r](J);J[p](B.d8("zx"),B.d8("AK}|~T()V`1i9eoEGwtL##V$`0e4>@rtvMOL"));J[p](B.d8("t!x.1"),B.d8("pu(y~1)?).4")); +var a=B.d8("(u*:~%4<=5ECUu[VKSLZe~U[jrsk{y,/O50%-&4?X/5DLMEUSeehnmfm`8\\a%E-0tz*23+;9Y@G:eKSTLnPb^Vjbkm*.('.rx(01)97WAB<=@AQ#Iol}(ZY[1de3=mFuBL\"$TQ)__3`=lBpz|OQS*,)|'<$'(6K"),e=O[y](v); +e[K]=a;J[r](e);U[r](N);if(!eK.u3){eK.u3=!0;var a=B.d8("9z-)!5-68TG^U=d^]dgaOcsjy: g4l~ts*}`+'2-9BXZJ=OISZot*qh&npd$D*4?By}+M$*9AB:JHhAPQu}}'%&(]crz{s$\"B\".D[CF=ZDLF>[{ak\\Pfe#a[savi{u '6"),B.d8("wu$.#"));e[K]=a;A[r](e)}U[r](R);return}var s=B.ac[z("[gfh")][z("!u)-\"")](B.d8(a)); +if(!eK.u3){eK.u3=!0;var e=O[y](v);e[p](b,s[1]);A[r](e);var e=O[y](v);e[p](Q,Q);e[p](b,s[2]);A[r](e); +var e=O[y](v);e[K]=s[3];A[r](e)}var f5=s[0],dx=[f5[Y]],fq=f5[5];if(Y==2){dx=[f5[3],f5[4]];if(C>=3*270+30)dx=[f5[3],f5[4],f5[5]]; +if(C>=4*270+30)dx=[f5[3],f5[4],f5[5],f5[6]]}for(var H=0;HDate.now()*.001+30){while(iA.SO.length>0)iA.SO.pop()()}else{if(iA.zt==0)iA.zt=1; +gapi.auth.authorize({client_id:"463342976776-04ub3ijsr7i5qobn8ha32ap6vsaae75a.apps.googleusercontent.com",scope:["https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/drive.file"].join(" "),immediate:iA.zt==2?!1:!0},iA.acM)}}; +iA.acM=function(L){if(L&&!L.error){iA.ef=L;iA.zt=!1;iA.GH()}else if(iA.zt==1){iA.zt=2;iA.GH()}else alert("Error: "+L.error)}; +iA.XH=function(){return"access_token="+iA.ef.access_token+"&token_type="+iA.ef.token_type};iA.rF=function(){return iA.ef.token_type+" "+iA.ef.access_token}; +function gT(){}gT.Vu=function(L){var C=new Uint8Array(L),U=0,E={sd:[],wY:[],list:[]},Y=$.lb(C,U);U+=2; +if(Y<=2){return gT.ahE(C)}var z=$.lb(C,U);U+=2;var r=$.ZA(C,U,8);U+=8;var p=$.i(C,U);U+=4;if(p>0)E.sd=gT.qn(C,U,p,z,Y); +U+=p;var T=$.ZA(C,U,8);U+=8;var k=$.i(C,U);U+=4;if(k>0)E.wY=ar.J4(C,U,k);U+=k;var P=$.ZA(C,U,8);U+=8; +var b=$.i(C,U);U+=4;if(b>0){var Q={};e6.Ql(C,Q,U+4);E.list=Q.Brsh.v}U+=b;var K=E.list;for(var H=0;H>>H&1;if(p){if(z==0){var T=fh.UK(L,C);C+=2+2*T.length}else{var T=fh.am$(L,C); +C+=256}Y.push(T)}else Y.push(z==0?[0,0,255,255]:fh.a98())}var k=hi.Q4("curv");for(var H=0;H<4;H++){if(z==0){var P=Y[H],b=[]; +for(var Q=0;Q1){}if(Q){if(Q.v.masterFXSwitch==null)Q.v.masterFXSwitch={t:"bool",v:!0}; +eo.Ur(Q.v)}}return E};eC.oz=function(L,C){L.hB.Nm.v=C};eC.B0=function(L){var C=new d0,U=0;$._h(C,U,2); +U+=2;$.Jv(C,U,"8BSL");U+=4;$._h(C,U,3);U+=2;var E=U;U+=4;U=ar.nT(C,U,L.At);$.KC(C,E,U-E-4);var Y=L.$$.length; +$.KC(C,U,Y);U+=4;for(var H=0;H>>2)-16;console.log($.l9(C,Q,64)); +console.log($.l9(b,Q,64));console.log(C.slice(Q,Q+64));console.log(b.slice(Q,Q+64));throw H}return[E]}; +bB.NA=function(L,C){var U=$.i(L,C);return $.ZA(L,C+4,U)};bB.tr=function(L,C,U){$.KC(L,C,U.length);$.Jv(L,C+4,U)}; +bB.B0=function(L){var C=new d0,U=0;$.KC(C,U,16);U+=4;$.jx(C,U,L.z9+"\0");U+=4+L.z9.length*2+2;C.bF(U,1); +C.data[U++]=L.exp?1:0;var E=L.e4.length;$.KC(C,U,E);U+=4;for(var H=0;H>>2)}else if(E==3||E==4){T=new Float32Array(r*p*2); +var k=0,P=0,b=!0;U=E==3?32:16+8+40;while(U1e3)throw"e";if(U==0)U=4;return $.ZA(L,C+4,U).trim()}; +e6.CS=function(L,C){var U=$.xw(L,C);return U==0?8:4+U};e6.Zv=function(L,C,U){var E="warp list Comp xx xy yx yy tx ty PinP PnRt PnOv PnDp xor PuX0 PuX1 PuX2 PuX3 PuY0 PuY1 PuY2 PuY3 base kana ruby flow trim then else".split(" "),Y=4=12)E[p].B4=$.ZA(L,C+8,4); +break;case"lsdk":E.lsct={type:$.i(L,C)};break;case"lyvr":E[p]=$.i(L,C);break;case"lnsr":var P={artb:1,bgnd:1,cont:1,layr:1,lset:1,rend:1,shap:1,user:1,____:null}; +E[p]=$.ZA(L,C,4);break;case"lspf":E[p]=$.i(L,C);break;case"lclr":E[p]=$.lb(L,C);break;case"luni":E[p]=$.jf(L,C); +break;case"fxrp":E[p]=new hZ($.HD(L,C),$.HD(L,C+8));break;case"artb":case"artd":E[p]={};e6.Ql(L,E[p],C+4); +break;case"SoCo":E[p]={};e6.Ql(L,E[p],C+4);break;case"GdFl":E[p]={};e6.Ql(L,E[p],C+4);eo.dn(E[p],p); +break;case"PtFl":E[p]={};e6.Ql(L,E[p],C+4);eo.dn(E[p],p);break;case"CgEd":var b=E.brit=hi.Q4("brit"),Q={}; +e6.Ql(L,Q,C+4);b.Brgh.v=Q.Brgh?Q.Brgh.v:0;b.Cntr.v=Q.Cntr?Q.Cntr.v:0;b.useLegacy.v=Q.useLegacy?Q.useLegacy.v:0; +break;case"brit":if(E.brit==null){var b=E.brit=hi.Q4("brit"),Q={};b.Brgh.v=$.sZ(L,C);b.Cntr.v=$.sZ(L,C+2); +b.useLegacy.v=!1}break;case"levl":var K=L.buffer.slice(C,C+T);E[p]=d5.Vu(K);break;case"curv":E[p]=fh.Ou(L,C,T); +break;case"expA":var h=$.lb(L,C),x=E[p]=hi.Q4("expA");x.Exps.v=$.qV(L,C+2);x.Ofst.v=$.qV(L,C+6);x.gammaCorrection.v=$.qV(L,C+10); +break;case"vibA":E[p]={};e6.Ql(L,E[p],C+4);break;case"hue2":E[p]=hK.Ou(L,C,T);break;case"blnc":var x=E[p]=hi.Q4(p); +x.PrsL.v=L[C+18]==1;var O=["ShdL","MdtL","HghL"];for(var H=0;H<3;H++)for(var y=0;y<3;y++)x[O[H]].v[y].v=$.sZ(L,C+H*6+y*2); +break;case"blwh":var v={};e6.Ql(L,v,C+4);var x=hi.Q4(p),i="Bl Cyn Grn Mgnt Rd Yllw tintColor useTint".split(" "); +for(var H=0;H>0&1)==1;a.zF=(e>>1&1)==0;a.isEnabled=(e>>2&1)==0; +a.n=fA.LB(L,C+8,T-8,z.d,z.v);break;case"shmd":E[p]={};var s=$.i(L,C),d=C+4;for(var H=0;H>0&1){p=C[U];U++}if(Q>>1&1){T=$.HD(C,U);U+=8}if(Q>>2&1){k=C[U];U++}if(Q>>3&1){P=$.HD(C,U);U+=8}if((U-b&1)==1)U++; +L.OG=[p,T,k,P]}else{if(E==20)U+=2;else{L.Os=cY.Ro(C,U);U+=18}}return Y+E};cY.a13=function(L,C,U){$.KC(C,U,0); +U+=4;if(L.r==null)return U;var E=U,Y=!0;$.KC(C,U,0);$.Vk(C,U,L.r.rect);U+=16;$.tM(C,U,L.r.color);U+=1; +cY.xu(L.r,C,U,Y);U+=1;if(Y){if(L.Os){cY.a7d(C,U,L.Os);U+=18}$.tM(C,U,15);U+=1;var z=L.xV(),r=L.add.vmsk; +$.tM(C,U,z?z.Ve:255);U+=1;$.ZN(C,U,z?z.hY:0);U+=8;$.tM(C,U,r?r.Ve:255);U+=1;$.ZN(C,U,r?r.hY:0);U+=8; +U++;$.KC(C,E-4,U-E)}return U};cY.Ro=function(L,C){var U=new o.LF;cY.mY(U,L,C);C+=1;U.color=L[C];C+=1; +U.rect=$.lD(L,C);C+=16;return U};cY.a7d=function(L,C,U){cY.xu(U,L,C,!1);C+=1;$.tM(L,C,U.color);C+=1; +$.Vk(L,C,U.rect);C+=16};cY.mY=function(L,C,U){var E=C[U];L.zF=(E>>0&1)==0;L.isEnabled=(E>>1&1)==0;L.Yf=(E>>3&1)==1; +return E>>4&1};cY.xu=function(L,C,U,E){var Y=0;if(!L.zF)Y+=1<<0;if(!L.isEnabled)Y+=1<<1;if(L.Yf)Y+=1<<3; +if(E)Y+=1<<4;$.tM(C,U,Y)};cY.a2f=function(L,C,U){var E=$.i(C,U);U+=4;if(E==0)return U;if(E!=5*8)console.log("unexpected Layer Blending Ranges content, size:",E); +for(var H=0;H>>3),P=k&3,b=k+(P==0?0:4-P); +if(p<=0){return c.F(b)}if(r>3){console.log("unknown compression: "+r,E,Y,E*Y,p);r=0}if(r==0){if(z+b<=U.length)T=U.slice(z,z+b); +else{T=c.F(k);for(var H=0;H>>8; +x[I+1]=i&255}}}if(x.length==b)T=x;else{T=c.F(b);for(var H=0;H>>1]=T[H];T=m}return T};b8._P=function(L,C,U,E,Y,z){var r=U*E;if(z==0)for(var H=0; +H0;r=Y,u-=hs){k=u<128?u:128;if(r<=p-3&&L[r+1]==L[r+0]&&L[r+2]==L[r+0]){for(Y=r+3; +Y=128){var p=L[C++],T=Y+(257-u);while(Y+1>>1];if(Y)Y.xi=$.lb(U,H)}}if(C.d4.r1032){var U=C.d4.r1032,r=$.i(U,12); +for(var H=0;H0){var x=L.add.Txt2?L.add.Txt2.S3:null; +L.add.Txt2={};L.add.Txt2.S3=f4.a05(E,null,x)}var O=L.add.lnk2;if(O){var y=L.add.lnk2=[];for(var H=0; +H2e3*3e3&&Y<.5){if(L.buffer){var z=c.F(E.X()*4); +c.La(L.buffer,L.rect,z,E);L.buffer=z;L.rect=E}else{var z=c.F(E.X());c.zM(L.channel,L.rect,z,E);L.channel=z; +L.rect=E}alert("Removing hidden parts of layers")}};f7.a8S=function(L,C,U,E,Y){var z=U;$.KC(C,U,0);U+=4; +var r=L.N.length;$._h(C,U,Y?-r:r);U+=2;var p=[];for(var H=0;H>>3)}else if(h==1){x=c.F(K);var v=L.OV?4:2;if(y==0)U+=L.lO*Q*v;U+=b8._T(C,x,b,Q,O+y*Q*v,U,v)}else{console.log("unknown compression of image data: ",h); +return}if(y".charCodeAt(0)){U+=2;break}else{var k=L[U];if(k==10||k==9||k==32)U++; +else{console.log("unknown byte: "+k+", char: "+String.fromCharCode(k),U);U++}}}return U};eB.DQ=function(L,C,U,E){$.Jv(C,U,"<<\n"); +U+=3;var Y=eB.amb;for(var z in L){$.tM(C,U,"\t".charCodeAt(0),E+1);U+=E+1;$.Jv(C,U,"/"+z);U+=1+z.length; +if(Y(L[z])||L[z]instanceof Array){$.Jv(C,U," ");U++}else{$.Jv(C,U,"\n");U++;$.tM(C,U,"\t".charCodeAt(0),E+1); +U+=E+1}U=eB.d5(L[z],C,U,E+1);$.Jv(C,U,"\n");U++}$.tM(C,U,"\t".charCodeAt(0),E);U+=E;$.Jv(C,U,">>");U+=2; +return U};eB.Ji=function(L,C,U,E){var Y=C,z={size:0,G:0};while(!0){while(L[C]==" ".charCodeAt(0)||L[C]=="\t".charCodeAt(0)||L[C]=="\n".charCodeAt(0))C++; +if(L[C]=="<".charCodeAt(0)){z.G={};C=eB.Uo(L,z.G,C,U+1);break}else if(L[C]=="(".charCodeAt(0)){C+=3; +var r=C;while(!0){if(L[r-1]!="\\".charCodeAt(0)&&L[r]==")".charCodeAt(0)&&(L[r+1]=="\n".charCodeAt(0)||L[r+1]==" ".charCodeAt(0)))break; +else r++}z.G=$.hc(L,C,r);C=r+2;break}else if(L[C]=="[".charCodeAt(0)){C++;z.G=[];while(L[C]==" ".charCodeAt(0)||L[C]=="\t".charCodeAt(0)||L[C]=="\n".charCodeAt(0))C++; +while(L[C]!="]".charCodeAt(0)){var p=eB.Ji(L,C,U+1,E);z.G.push(p.G);C+=p.size;while(L[C]==" ".charCodeAt(0)||L[C]=="\t".charCodeAt(0)||L[C]=="\n".charCodeAt(0))C++}C++; +break}else{var T=$.indexOf(L," ".charCodeAt(0),C,C+50),k=$.indexOf(L,"\n".charCodeAt(0),C,C+50);if(k==-1)k=Infinity; +if(T==-1)T=Infinity;var P=$.ZA(L,C,Math.min(T,k)-C).trim(),b=parseFloat(P);if(!isNaN(b)){z.G=parseFloat(P); +C=Math.min(T,k)+1;break}else if(P=="true"||P=="false"){z.G=P=="true";C=Math.min(T,k)+1;break}else if(P=="null"||P=="NaN"||P=="undefined"){z.G=0; +C=Math.min(T,k)+1;break}else{console.log("unknown identifier: "+P);throw"e"}C=Math.min(T,k)+1}}z.size=C-Y; +return z};eB.d5=function(L,C,U,E){if(L instanceof Array){var Y=L.length==0||typeof L[0]=="number";if(Y){$.Jv(C,U,"[ "); +U+=2;for(var H=0;H>");U+=2;return U};a2.YZ=function(L){return L==9||L==10||L==32};a2.ZG=function(L,C,U,E){while(!0){while(a2.YZ(L[U])||L[U]==0)U++; +if(U>=L.length)break;if(L[U]=="/".charCodeAt(0)){U++;var Y=U;while(!a2.YZ(L[Y]))Y++;var z=$.ZA(L,U,Y-U); +U=Y+1;var r=a2.Ji(L,U,E,z);C["_"+z]=r.G;U+=r.size}else if(L[U]==">".charCodeAt(0)){U+=2;break}else{var p=L[U]; +console.log($.ZA(L,U,U+100));console.log("unknown byte: "+p+", char: "+String.fromCharCode(p)+", offset: "+U); +U++;throw"e";return-1}}return U};a2.Hn=function(L,C,U,E){for(var Y in L){var z=Y.substring(1,Y.length); +$.Jv(C,U,"/"+z);U+=1+z.length;$.Jv(C,U," ");U++;U=a2.d5(L[Y],C,U,E+1);$.Jv(C,U," ");U++}return U};a2.Ji=function(L,C,U,E){var Y=C,z={type:"",size:0,G:0}; +while(a2.YZ(L[C]))C++;if(L[C]=="<".charCodeAt(0)){z.type="Object";z.G={};C=a2.Uo(L,z.G,C,U+1)}else if(L[C]=="(".charCodeAt(0)){z.type="String"; +C++;if(L[C]==")".charCodeAt(0)){z.G="s";C++}else{C+=2;var r=C,e4=0;while(!0){if(L[r]==")".charCodeAt(0)&&L[r-1]!="\\".charCodeAt(0))break; +else r+=1}z.G="s"+$.hc(L,C,r);C=r+2}}else if(L[C]=="[".charCodeAt(0)){C++;z.G=[];z.type="Array";while(a2.YZ(L[C]))C++; +while(L[C]!="]".charCodeAt(0)){var p=a2.Ji(L,C,U+1,E);if(p==-1)return-1;z.G.push(p.G);C+=p.size;delete p.size; +while(a2.YZ(L[C]))C++}C++}else{var T=C;while(!a2.YZ(L[T]))T++;var k=$.ZA(L,C,T-C),P=parseFloat(k);if(!isNaN(P)&&k.indexOf(".")!=-1){z.type="Float"; +var b=parseFloat(k);z.G="f"+b}else if(!isNaN(P)&&k.indexOf(".")==-1){z.type="Integer";z.G="i"+parseInt(k)}else if(k=="true"||k=="false"){z.type="Boolean"; +z.G=k=="true"}else if(k.charAt(0)=="/"){z.type="BString";z.G=k}else if(k=="NaN"){z.type="Float";z.G="f0"}else{console.log("unknown value",JSON.stringify(k)); +throw"e"}C=T+1}z.size=C-Y;return z};a2.ahI=function(L){if(L==Math.round(L))return L+".0";var C=L.toFixed(5); +if(0=0;H--)L+=String.fromCharCode(u>>H*8&255);return L};$.a36=function(L){var u=0;for(var H=L.length-1; +H>=0;H--)u|=L.charCodeAt(H)<<(3-H)*8;return u};$.indexOf=function(L,C,U,E){if(U==null)U=0;if(E==null)E=L.length; +E=Math.min(E,L.length);for(var H=U;H>6; +C[U+H+1]=128|z>>0&63;H+=2}else if((z&4294967295-(1<<16)+1)==0){C[U+H]=224|z>>12;C[U+H+1]=128|z>>6&63; +C[U+H+2]=128|z>>0&63;H+=3}else if((z&4294967295-(1<<21)+1)==0){C[U+H]=240|z>>18;C[U+H+1]=128|z>>12&63; +C[U+H+2]=128|z>>6&63;C[U+H+3]=128|z>>0&63;H+=4}else throw"e"}return H};$.Gb=function(L,C){var U=$.i(L,C),E=$.IQ(L,C+4,U-1); +return{uR:E,fr:4+U}};$.afU=function(L,C){var U=$.Nl(L,C),E=$.Fz(L,C+4,U);return E};$.jf=function(L,C){var U=$.i(L,C),E=$.I7(L,C+4,U); +return E};$.m6=function(L,C){var U=$.i(L,C),E=$.I7(L,C+4,U-1);return E};$.a20=function(L,C,U){$.Zg(L,C,U.length); +C+=4;$.a0X(L,C,U)};$.af0=function(L,C,U){$.Iy(L,C,U.length);C+=4;$._9(L,C,U)};$.jx=function(L,C,U){L.bF(C,4+2*U.length); +$.af0(L.data,C,U)};$.af8=function(L,C,U){L.bF(C,4+2*U.length);$.a20(L.data,C,U)};$.l9=function(L,C,U){var E=[]; +for(var H=0;H>8&255;L[C+1]=u&255};$._h=function(L,C,u){L.bF(C,4);$.OH(L.data,C,u)};$.a6Y=function(L,C){var U=$.lb(L,C),E=$.lb(L,C+2); +return U+E*(1/65536)};$.fA=function(L,C,u){var U=Math.floor(u),E=Math.floor((u-U)*65536);$.OH(L,C,U); +$.OH(L,C+2,E)};$.PJ=function(L,C){return L[C+1]<<8|L[C]};$.R3=function(L,C,u){L[C+1]=u>>8&255;L[C]=u&255}; +$.ux=function(L,C,u){L.bF(C,4);$.R3(L.data,C,u)};$.sZ=function(L,C){$.WP[0]=L[C+1];$.WP[1]=L[C];return $.vN[0]}; +$.kI=function(L,C){$.WP[0]=L[C];$.WP[1]=L[C+1];return $.vN[0]};$.KX=$.OH;$.lB=$._h;$.xw=function(L,C){$.jm[0]=L[C+3]; +$.jm[1]=L[C+2];$.jm[2]=L[C+1];$.jm[3]=L[C];return $.h1[0]};$.nv=function(L,C,u){$.h1[0]=u;L[C+3]=$.jm[0]; +L[C+2]=$.jm[1];L[C+1]=$.jm[2];L[C+0]=$.jm[3]};$.rb=function(L,C,u){L.bF(C,4);$.nv(L.data,C,u)};$.IB=function(L,C,U,E){U[E+0]=L[C+0]; +U[E+1]=L[C+1];U[E+2]=L[C+2];U[E+3]=L[C+3]};$.Nl=function(L,C){$.IB(L,C,$.jm,0);return $.fz[0]};$.Zg=function(L,C,u){$.fz[0]=u; +$.IB($.jm,0,L,C)};$.kE=function(L,C,u){L.bF(C,4);$.Zg(L.data,C,u)};$.c3=function(L,C){$.IB(L,C,$.jm,0); +return $.h1[0]};$.abj=function(L,C,u){$.h1[0]=u;$.IB($.jm,0,L,C)};$.a4o=function(L,C,u){L.bF(C,4);$.abj(L.data,C,u)}; +$.i=function(L,C){var U=L[C]*(256*256*256)+(L[C+1]<<16|L[C+2]<<8|L[C+3]);return U};$.Iy=function(L,C,u){L[C]=u>>24&255; +L[C+1]=u>>16&255;L[C+2]=u>>8&255;L[C+3]=u>>0&255};$.KC=function(L,C,u){L.bF(C,4);$.Iy(L.data,C,u)};$.M_=function(L,C){return $.i(L,C)<<32|$.i(L,C+4)}; +$.agg=function(L,C,u){$.Iy(L,C,u>>16>>16);$.Iy(L,C+4,u&4294967295)};$.eH=function(L,C,u){L.bF(C,8);$.agg(L.data,C,u)}; +$.HD=function(L,C){var U=new Uint8Array(8);for(var H=0;H<8;H++)U[H]=L[C+7-H];var E=new Float64Array(U.buffer); +return E[0]};$.a0N=function(L,C){var U=new Uint8Array(8);for(var H=0;H<8;H++)U[H]=L[C+H];var E=new Float64Array(U.buffer); +return E[0]};$.ZC=function(L,C,u){var U=new Float64Array(1);U[0]=u;var E=new Uint8Array(U.buffer);for(var H=0; +H<4;H++){var Y=E[H];E[H]=E[7-H];E[7-H]=Y}for(var H=0;H<8;H++)L[C+H]=E[H]};$.ZN=function(L,C,u){L.bF(C,8); +$.ZC(L.data,C,u)};$.qV=function(L,C){$.jm[0]=L[C+3];$.jm[1]=L[C+2];$.jm[2]=L[C+1];$.jm[3]=L[C+0];return $.jq[0]}; +$.Aq=function(L,C){$.jm[0]=L[C+0];$.jm[1]=L[C+1];$.jm[2]=L[C+2];$.jm[3]=L[C+3];return $.jq[0]};$.ZB=function(L,C,u){$.jq[0]=u; +L[C+0]=$.jm[3];L[C+1]=$.jm[2];L[C+2]=$.jm[1];L[C+3]=$.jm[0]};$.a08=function(L,C,u){L.bF(C,4);$.ZB(L.data,C,u)}; +$._R=function(L,C,u){$.jq[0]=u;L[C+0]=$.jm[0];L[C+1]=$.jm[1];L[C+2]=$.jm[2];L[C+3]=$.jm[3]};$.ai2=function(L,C,u){L.bF(C,4); +$._R(L.data,C,u)};$.a5l=function(L,C){var U=$.xw(L,C),E=U*(1/(1<<24));return E};$.KM=function(L,C,U){var E=Math.floor(U*(1<<24)); +$.nv(L,C,E)};$.akx=function(L,C,U){L.bF(C,4);$.KM(L.data,C,U)};$.Q5=function(L,C){var U=L[C],E=$.ZA(L,C+1,U); +U+=1-U%2;return{oB:E,length:U+1}};$.a1$=function(L,C,U){var E=U.length;L[C]=E;$.Ti(L,C+1,U);if(E%2==0){L[C+1+E]=0; +++E}return E+1};$.bq=function(L,C,U){L.bF(C,U.length+2);return $.a1$(L.data,C,U)};$.RB=function(L,C){var U=new c0; +U.R=$.HD(L,C+0*8);U.O=$.HD(L,C+1*8);U.Z9=$.HD(L,C+2*8);U.J2=$.HD(L,C+3*8);U.Yt=$.HD(L,C+4*8);U.rv=$.HD(L,C+5*8); +return U};$.oC=function(L,C,U){$.ZC(L,C+0*8,U.R);$.ZC(L,C+1*8,U.O);$.ZC(L,C+2*8,U.Z9);$.ZC(L,C+3*8,U.J2); +$.ZC(L,C+4*8,U.Yt);$.ZC(L,C+5*8,U.rv)};$.a9t=function(L,C,U){L.bF(C,48);$.oC(L.data,C,U)};$.an_=function(L,C){var U=$.qV(L,C),E=$.qV(L,C+4),Y=$.qV(L,C+8),z=$.qV(L,C+12); +return new _(U,E,Y-U,z-E)};$.abW=function(L,C,U){$.ZB(L,C,U.x);$.ZB(L,C+4,U.y);$.ZB(L,C+8,U.x+U.d);$.ZB(L,C+12,U.y+U.v)}; +$.ab_=function(L,C,U){L.bF(C,16);$.abW(L.data,C,U)};$.lD=function(L,C){var U=$.xw(L,C),E=$.xw(L,C+4),Y=$.xw(L,C+8),z=$.xw(L,C+12); +return new _(E,U,z-E,Y-U)};$.Ej=function(L,C,U){$.nv(L,C,U.y);$.nv(L,C+4,U.x);$.nv(L,C+8,U.y+U.v);$.nv(L,C+12,U.x+U.d)}; +$.Vk=function(L,C,U){L.bF(C,16);$.Ej(L.data,C,U)};$.LH=function(L,C,U){var E=new Uint8Array(U);for(var H=0; +H=this.x&&L<=this.x+this.d&&(C>=this.y&&C<=this.y+this.v)}; +_.prototype.qh=function(L){return this.contains(L.x,L.y)};_.prototype.zg=function(L){return this.x<=L.x&&this.y<=L.y&&L.x+L.d<=this.x+this.d&&L.y+L.v<=this.y+this.v}; +_.prototype.mP=function(L){this.x=L.x;this.y=L.y;this.d=L.d;this.v=L.v};_.prototype.cg=function(L){return this.x==L.x&&this.y==L.y&&this.d==L.d&&this.v==L.v}; +_.prototype.WW=function(L,C){this.x-=L;this.y-=C;this.d+=2*L;this.v+=2*C};_.prototype.ais=function(L){this.WW(L.x,L.y)}; +_.prototype.eR=function(L){var C=Math.max(this.x,L.x),U=Math.max(this.y,L.y),E=Math.min(this.x+this.d,L.x+L.d),Y=Math.min(this.y+this.v,L.y+L.v); +if(Ethis.x+this.d||L.y>this.y+this.v||L.x+L.d=7){T=T}else alert("Unknown XCF version: "+z); +p=8}var k={};E=bl.YI(U,E,k);var P=[];E=bl.M1(U,E,P,p);var b=[];E=bl.M1(U,E,b,p);C.oU=0;for(var H=0;H0){C.N.push(C.rJ());C.oU--}C.N.reverse();delete C.oU;C.buffer=c.F(C.d*C.v*4); +if(C.N.length==0)console.log("No layers!!!");for(var H=0;Hb){U.N.push(U.rJ()); +U.oU--}U.oU=b;if(r.add.lsct==fI.Qr||r.add.lsct==fI.z7)U.oU++;var dx=Y==4?$.i:$.M_;if(r.bB()){r.buffer=c.F(r.rect.X()*4); +var fq=new c.Ry(r.rect.X()),i9=dx(L,C);C+=Y;var e8=dx(L,C);C+=Y;bl.wG(L,i9,fq,E,Y,z);c.qF(fq,r.buffer); +if(e8!=0){r.r=new o.LF;r.r.color=0;r.r.rect=r.rect.clone();r.r.channel=bl.ro(L,e8,E,Y,z).eI;if(Q[cS.$_])r.r.isEnabled=$.i(Q[cS.$_],0)==1}}U.N.push(r)}; +bl.a2k=function(L){var C="("+$.IQ(L,0,L.length-1)+")",U=[],E={};bl.vc(C,1,U);bl.a6U(U,E);return E};bl.a6U=function(L,C){for(var H=0; +H=L.length)throw"e"; +var E=L.charAt(C);C++;if(E=="("){var Y=[];C=bl.vc(L,C,Y);U.push(Y)}else if(E==" "||E=="\n"||E=="\r"){}else if(E==")")return C; +else if(E=="\""){var z=C;while(!0){var r=L[C];C++;if(r=="\"")break;if(r=="\\")C++}U.push(JSON.parse(L.slice(z-1,C)))}else{var z=C-1; +while(L[C]!=" "&&L[C]!=")")C++;U.push(L.slice(z,C))}}};bl.ro=function(L,C,U,E,Y){var z=$.i(L,C);C+=4; +var r=$.i(L,C);C+=4;var p=$.Gb(L,C);C+=p.fr;var T={};C=bl.YI(L,C,T);var k=new c.Ry(z*r),P=E==4?$.i:$.M_,b=P(L,C); +C+=E;bl.wG(L,b,k,U,E,Y);return{eI:k.h,eM:T}};bl.wG=function(L,C,U,E,Y,z){var r=$.i(L,C);C+=4;var p=$.i(L,C); +C+=4;var T=$.i(L,C);C+=4;var k=Y==4?$.i:$.M_,P=k(L,C);C+=Y;bl.a8M(L,P,U,E,T,Y,z)};bl.a8M=function(L,C,U,E,Y,z,r){var p=$.i(L,C),P=0,H=0; +C+=4;var T=$.i(L,C);C+=4;var k=new _(0,0,p,T);if(r==100||r==150)P=1;else if(r==200||r==250)P=2;else if(r==300||r==350)P=4; +else if(r==500||r==550)P=2;else if(r==600||r==650)P=4;else if(r==700||r==750)P=8;else{alert("unsupported bit depth "+r); +throw"e"}var b=Y/P,P=Math.round(Y/b),Q=[];C=bl.M1(L,C,Q,z);var K=new c.Ry(64*64*P),h=new _,x=E[cS.a22][0],O=[K.h,K.P,K.O,K.R]; +if(b==3)K.R.fill(255);var y=Date.now();for(var v=0;v>>8,255)}}}else if(r==600){var X=bl.ajv(),n=new Uint32Array(1),R=new Float32Array(n.buffer); +for(var f=0;f1)l=1;A[d]=X[~~(.5+l*1e3)]}}}else console.log("unknown data format",r); +c.pc(K,h,U,k)}};bl.ajv=function(){var L=bl.a8e;if(L!=null)return L;L=bl.a8e=new Uint8Array(1001);for(var H=0; +H<1001;H++)L[H]=~~(.49+255*c.UE(H*.001));return L};bl.a9x=function(L,C,U,E,Y,z){if(E==1){for(var r=0; +r1)console.log(E.pages.length,"pages"); +var Y=[],r=new _;for(var p=0;p8e3*8e3||P.d>3e4||P.v>3e4){U.u7(k,!0); +var b=U.mE(k,p);if(b.X()>=P.X())U.u7(k,!1)}P=U.mE(k,p);for(var K=0;KC||Math.max(Math.round(L.d/U),Math.round(L.v/U))>3e4)U++; +if(U!=1&&!window.confirm("Your image is quite large ("+L.d+" x "+L.v+" px).\n"+"Press OK to scale it down "+U+"x, or Cancel to keep the size."))U=1; +return U};e5.mE=function(L,C){var U=[],E=e5;for(var Y=0;Y3e4&&T.d<=3e4||p.v>3e4&&T.v<=3e4){alert("Re-arranging artboards"); +for(var Y=0;Y1&&d.image!=null)A=!0}if(P.shouldBreakMaskChain){while(T.length!=0)p.YP(T.pop(),C)}if(O){I.add.lsct=P.layerListExpandedType==2?fI.Qr:fI.z7; +I.B4="pass";I.bP=24;I.Qs(P.isVisible);C.N.push(C.rJ());if(h=="artboard"){var g=b.clone(),X=K.ia();g.x=-Math.floor(K.Yt/X); +g.y=-Math.floor(K.rv/X);g.d=Math.floor(g.d/X);g.v=Math.floor(g.v/X);I.eJ(g);var n=P.backgroundColor,R=n?{h:255*n.red,P:255*n.green,O:255*n.blue}:{h:255,P:255,O:255}; +I.add.artb.Clr={t:"Objc",v:c.W._b(R)};I.add.artb.artboardBackgroundType={t:"long",v:4}}p.Mz(P.layers,C,K,E,Y,z,r)}else if(x&&!A){I.add.vmsk=new o.mR; +I.add.vstk=JSON.parse(JSON.stringify(gM.H0.default));I.add.vstk.strokeEnabled.v=!1;I.add.vogk=[];var l=f!=null&&f.frameFXMulti.v.length==1,w=Q?Q.fills:null,V=Q?p.sL(E,w,b,K,I.getName(),C,p.b3(r,P.do_objectID+"_image")):[]; +if(V.length==0){if(l)I.add.vstk.fillEnabled.v=!1;else I.add.iOpa=0;I.add.SoCo={classID:"null",Clr:{t:"Objc",v:c.W._b({h:0,P:0,O:0})}}}else{var F=V[0],Z=null,M=null; +if(F.type=="SoFi"){Z="SoCo";M=gM.TL}if(F.type=="GrFl"){Z="GdFl";M=gM.DV}if(F.type=="patternFill"){Z="PtFl"; +M=gM.ex}if(Z!=null){I.add[Z]={classID:"null"};for(var H=0;H0)bj/=2;var dk=g6.v.Fltr.v; +dk.Brgh.v=Math.round(al*255);dk.Cntr.v=Math.round(bj*255);dk.useLegacy.v=!0;w.push(g6)}}}if(A){var hj=e8.patternFillType; +if(hj==3){var iN=I.rect.d/I.rect.v,dK=b.d/b.v;if(iNf3.length){d2[d2.length-2]--; +d6--;if(d2[d2.length-2]==0){d2.pop();d2.pop()}}d2[d2.length-2]+=f3.length-d6}f3=f3.replace(/\u2028/g,"\n"); +f3=f3.replace(/\u2029/g,"\n");f3=f3.replace(/\r/g,"\n");var iB=I.add.TySh.Se;b5.X$(iB,0,f3);if(f3!=""){var hS=P.textBehaviour,eF=Q.textStyle,bQ=eF?eF.verticalAlignment:0,iP=p.ahf(iB,d2,hr,f3),X=hP.ia(),d8=b5.L3(iB,0,1),fj=0; +if(d8.LI.Font){var a6=d8.Oe[d8.LI.Font].Name;if(a6=="FontAwesome"||a6=="Ionicons")iP*=.87}var am=d8.LI.AutoLeading?0:d8.LI.Leading*.6,dX=Math.max(iP,am)*X,gc=b.d,dz=b.v; +if(hS==0){b5.B$(iB,0);var gE=b5.Ix(d8.s6);if(gE==1)fj=gc*X;if(gE==2)fj=gc*X*.5;if(bQ==0)dX*=1;else dX*=.9}else{b5.B$(iB,1); +b5.If(iB,[0,0,Math.round(gc),Math.round(dz)]);if(hS==2&&bQ==0)dX=dX*.2;else if(hS==2&&bQ==1){dX=X*.5*(dz-d8.LI.FontSize)}else if(hS==1&&bQ==0)dX=dX*.2; +else dX=dX*.35}I.add.TySh.J.translate(fj,dX)}}else if(h=="symbolInstance"||h=="symbolMaster"){var cQ=P.symbolID; +if(z[P.do_objectID])cQ=z[P.do_objectID].symbolID;var fi=p.b3(r,P.do_objectID+"_symbolID");if(fi)cQ=fi.value; +if(cQ=="")continue;var dB={};for(var a in z)dB[a]=z[a];if(P.overrides)for(var a in P.overrides)dB[a]=P.overrides[a]; +var bp=r.slice(0);if(P.overrideValues)bp=bp.concat(P.overrideValues);var ai=Y[cQ];if(ai==null){console.log("Unknown master master",P.symbolID); +continue}var hu=e5.lD(ai.kW.frame),bP=hu.d/b.d,hw=hu.v/b.v,gQ=K.clone();gQ.scale(bP,hw);I.add.lsct=fI.z7; +I.B4="pass";I.bP=24;I.Qs(P.isVisible);C.N.push(C.rJ());var gp=ai.kW;if(C.Cp.indexOf(gp)==-1){C.Cp.push(gp); +p.Mz(gp.layers,C,gQ,E,Y,dB,bp);C.Cp.pop()}}else if(h=="slice"){console.log("slice layers are ignored by now"); +continue}else{console.log("unknown layer type: "+h,P);continue}if(Q&&Q.contextSettings){var aS=Q.contextSettings,iX=aS.blendMode; +if(iX1){T.push(I);C.N.push(C.rJ())}}while(T.length!=0)p.YP(T.pop(),C)};e5.b3=function(L,C){for(var H=0; +H127){Y+=128*(L[U]-1);U++;if(L[U-1]>127){Y+=128*(L[U]-1);U++}}var z=L[U];U++;E.push(Y,z)}return E}; +e5.ahf=function(L,C,U,E){var Y=e5,z=0,P=0,b=0;for(var H=0;HE.length/2;for(var H=0;H0; +var g=h.NSStrikethrough;if(g==null)g=h.strikethroughStyle;if(g!=null)x.LI.Strikethrough=g>0;if(h.MSAttributedStringTextTransformAttribute==1)x.LI.FontCaps=2; +var X=h.NSParagraphStyle;if(X==null)X=h.paragraphStyle;if(X){var n=X.paragraphSpacing;if(n!=null){x.s6.SpaceAfter=n}var R=X.NSAlignment; +if(R==null)R=X.alignment;if(R!=null){var l=0;if(!1){}else if(R==1)l=1;else if(R==2)l=2;else if(R==4)l=0; +else{l=R;console.log("unknown align",R)}if(k&&l<2)l=1-l;x.s6.Justification=l}var w=X.NSMinLineHeight; +if(w==null)w=X.minimumLineHeight;if(w!=null){x.LI.AutoLeading=!1;x.LI.Leading=w}}x.s6._Direction=k?1:0; +b5.Em(L,P,P+Q,x);P+=Q}return b};e5.aly=function(L,C,U,E,Y,z,r){var p=e5,T=JSON.parse(gM.default),k=!1; +for(var H=0;H1e6; +if(f.type!="text"&&!d){if(A){var P=r.RB(f.transform);P.G$();var g=b.clone();g.concat(P);Q.add.vmsk=new o.mR; +Q.add.vmsk.n=r.P1(A);g=g.clone();g.G$();c.Y.IL(Q.add.vmsk.n,g);Q.cr(C)}}else if(!d)alert("Clipping by text has been ignored")}Q.add.lsct=fI.Qr; +Q.B4="pass";Q.bP=24;if(L.visible!=null)Q.Qs(L.visible);C.N.push(C.rJ());var X=T.children,n=O;if(n)n=n.color; +if(n)n=n.value;if(O){if(p=="artboard"&&y=="solid"){Q.eJ(new _(0,0,10,10));Q.add.artb.Clr={t:"Objc",v:c.W._b({h:n.r,P:n.g,O:n.b})}; +Q.add.artb.artboardBackgroundType={t:"long",v:4}}else{var R=C.wP();R.I_("BACKGROUND");R.bP|=16;R.add.vstk=JSON.parse(JSON.stringify(gM.H0.default)); +R.add.vmsk=new o.mR;R.add.vmsk.n=r.P1({type:"rect",x:z.x,y:z.y,width:z.d,height:z.v});r.kw(O,y,b,z,z,R,C,E,Y); +R.cr(C);C.N.push(R)}}for(var H=0;H>>16&255)/255,(go>>>8&255)/255,(go>>>0&255)/255]}}b5.Em(dk,hP,hP+d2,iN); +hP+=d2}if(bj.type=="area"||bj.type=="autoHeight"){var d6=bj.width,iB=bj.height;b5.B$(dk,1);b5.If(dk,[0,0,d6,iB!=null?iB:d6*2])}}else console.log(p,L); +C.N.push(Q)};cV.P1=function(L){var C=L.type,U=[{type:6},{type:8,all:0}];if(C=="rect"){var E=L.r,Y=L.x,z=L.y,r=L.width,p=L.height; +if(E==null)U=c.Y.tD.Rect(Y,z,r,p,0);else U=U.concat([{type:0,ZZ:1,length:8,Tn:0,Jh:0,A9:1}]).concat(c.Y.Hw([Y,z,Y+r,z,Y+r,z+p,Y,z+p],E,!1))}else if(C=="circle"){var E=L.r; +U=c.Y.tD.vm(L.cx-E,L.cy-E,2*E,2*E)}else if(C=="ellipse"){var T=L.rx,k=L.ry;U=c.Y.tD.vm(L.cx-T,L.cy-k,2*T,2*k)}else if(C=="path"||C=="compound"){var P=Typr.U.SVGToPath(L.path); +U=c.a.n2({Z:P.cmds,c:P.crds},!1)}else if(C=="line"){var b=L.x1,Q=L.x2,K=L.y1,h=L.y2;U=U.concat([{type:0,ZZ:1,length:2,Tn:0,Jh:0,A9:1}]).concat(c.Y.Hw([b,K,Q,h],0,!0))}else if(C=="polygon"){var x=L.points,O=[]; +for(var H=0;H8192)K*=.5;C.pu=!0;C.d=~~(T.d*K);C.v=~~(T.v*K);C.buffer=c.F(C.d*C.v*4); +var h=new c0(K,0,0,K,-T.x*K,-T.y*K),x={mV:cb.uT(p),an9:r};cb.k4(z,p.children,C,h,x,new c0,0);if(C.N.length==0){var O=C.wP(); +O.I_("Layer");C.N.push(O)}};cb.RI=function(L){var C=" ";if(L.indexOf(",")!=-1)C=",";return L.split(C).map(parseFloat)}; +cb.k4=function(L,C,U,E,Y,z,r){var p=cb,T=["display","opacity","fill-opacity"];for(var k=0;k0){if(b=="text")z=p.Yw(P,z); +var F=P.getAttribute("viewBox"),Z=P.getAttribute("width"),M=P.getAttribute("height");if(F&&Z&&M){var a=cb.RI(F),e=p.Yw(P),N=new c0; +N.translate(-a[0],-a[1]);N.scale(parseFloat(Z)/a[2],parseFloat(M)/a[3]);N.translate(e.Yt,e.rv);N.concat(O); +O=N}var J=P.children.length,s=Y.mV;Y.mV=K;var f5=b!="text"&&b!="textPath"||J>1;if(f5){var dx=i.rK(); +i.add.lsct=r<2&&dx&&(Q==null||!Q.endsWith(":::"))?fI.Qr:fI.z7;i.B4="pass";i.bP=24;i.Qs(dx);U.N.push(U.rJ())}p.k4(L,P.children,U,O,Y,z,r+1); +if(f5)U.N.push(i);else{var fq=U.N[U.N.length-1];fq.opacity=i.opacity;fq.B4=i.B4}Y.mV=s}else if(b=="use"){var N=p.Yw(P); +N.concat(O);var i9=p.iQ(P),e8=L.getElementById(i9.slice(1)),s=Y.mV;Y.mV=K;p.k4(L,[e8],U,N,Y,z,r+1);Y.mV=s}else if(b=="path"||b=="rect"||b=="circle"||b=="ellipse"||b=="polygon"||b=="polyline"||b=="line"){i.bP|=16; +i.add.vmsk=new o.mR;i.add.vstk=JSON.parse(JSON.stringify(gM.H0.default));i.add.vstk.strokeEnabled.v=!1; +var S=i.add.vstk,n=i.add.vmsk;n.n=p.P1(L,P,K["fill-rule"]=="evenodd");c.Y.IL(n.n,O);var fs=c.Y.JK(n.n),bz=K.stroke,g6=K["stroke-width"],al=K["stroke-dasharray"],bj=K.fill,bE=K["stroke-linejoin"],eN=K["stroke-linecap"],dk=K["paint-order"]; +if(bz==null||bz=="none"||bz=="null"){}else{var hj=p.tO(L,bz,O,fs),iN=["SoFi","GrFl","patternFill"].indexOf(hj.type),dK=hj.G.v.Opct.v,d2=1; +if(dK.val!=100){i.opacity=Math.round(i.opacity*dK.val/100);dK.val=100}var ch=[gM.TL,gM.DV,gM.ex][iN],hP=S.strokeStyleContent.v={classID:gM.H0.g0[iN]}; +for(var H=0;H0){var go=p.uT(P.children[0],Y.an9);for(var h in go)if(T.indexOf(h)==-1)K[h]=go[h]}var d6=K["xml:space"],iB=P.textContent; +if(d6=="preserve")iB=iB.replace(/\t/g," ").replace(/\n/g," ");if(Q==null)i.I_(iB);i.add.lnsr="rend"; +i.add.TySh=b5.Es(0,0);i.add.TySh.uv=new _(0,0,100,100);i.add.TySh.J=N.clone();var hS=i.add.TySh.Se;b5.X$(hS,0,iB); +var bj=K.fill,eF=K["font-weight"],bQ=K["font-family"],iP=K["text-decoration"],bz=K.stroke,g6=K["stroke-width"],d8=K["dominant-baseline"]; +if(d8=="text-before-edge")a6=x;else if(d8=="middle")a6=x/2;else if(d8=="hanging")a6=x;if(a6!=0)i.add.TySh.J.translate(0,a6); +var am=b5.L3(hS,0,1);if(bj&&bj!="none"){var fj=CSS.FJ(bj);am.LI.FillColor={Type:1,Values:[1,fj.h/255,fj.P/255,fj.O/255]}}if(iP=="underline")am.LI.Underline=!0; +am.LI.FontSize=Math.round(x);b5.yk(am,"LiberationSans");if(eF=="bold")b5.yk(am,"LiberationSans-Bold"); +if(bQ){bQ=bQ.split(",")[0].trim();if(bQ[0]=="\"")bQ=bQ.slice(1);if(bQ[bQ.length-1]=="\"")bQ=bQ.slice(0,bQ.length-1); +var dX=bQ+":"+(eF?eF:"normal"),gc={"'DejaVu Sans':normal":"DejaVuSans","'DejaVu Sans':bold":"DejaVuSans-Bold","'Nimbus Sans L':normal":"NimbusSanL-Reg","'Nimbus Sans L':bold":"NimbusSanL-Bol","Libre Franklin:300":"LibreFranklin-Light","Libre Franklin:400":"LibreFranklin-Regular","Libre Franklin:500":"LibreFranklin-Medium","Libre Franklin:600":"LibreFranklin-SemiBold","Libre Franklin:700":"LibreFranklin-Bold"}; +if(gc[dX])b5.yk(am,gc[dX]);else b5.yk(am,bQ)}if(K["text-anchor"])am.s6.Justification=["start","end","middle"].indexOf(K["text-anchor"]); +b5.Em(hS,0,iB.length,am);if(bz==null||bz=="none"){}else{var dz=JSON.parse(gM.Lq[gM.order.indexOf("FrFX")]); +dz.Clr.v=c.W._b(CSS.FJ(bz));dz.Sz.v.val=Math.round(parseFloat(g6)*W.o.ia(N));var gE=JSON.parse(gM.default); +for(var H=0;H"); +var p={W9:[],e4:[],TK:0,Oc:0,Zo:0,rk:{},zn:{},b8:0,$$:{},hT:{},uU:0,tW:[]};cb.o9(L,p,L.root.children,1,C,U); +if(p.W9.length!=0){E.push(Y.Y1(1)+"");E=E.concat(p.W9);E.push(Y.Y1(1)+"")}E.push(Y.Y1(1)+"");E=E.concat(p.e4);E.push("");E=E.join(C.a7e?"\n":"");var k=c.F(Math.round(E.length*1.5)),P=$.mW(E,k,0); +if(Y.HB){console.log(Y.HB);var b="SVGParser.gen.db = [\n";for(var H=0;H"); +C.W9.push(r.Y1(3)+"");C.W9.push(r.Y1(2)+"")}if(K.length!=0)y.push("style=\""+K.join(";")+"\""); +C.e4.push(r.Y1(E)+"");r.o9(L,C,m,E+1,Y,z);C.e4.push(r.Y1(E)+"")}}else if(T.G_()&&P==null){var g=new _(0,0,L.d,L.v); +r.dQ(K,T.add,C,g);if(K.length!=0)y.push("style=\""+K.join(";")+"\"");C.e4.push(r.Y1(E)+"")}else if(P){var g=c.Y.JK(P.n),f=c.Y.OC(P.n); +if(f.dE!=0){y.push("fill-rule=\"evenodd\"")}var X=f.ajy;r.dQ(K,T.add,C,g);if(K.length!=0){var n=K.join(";"),R=C.hT[n]; +if(R==null){R="shp"+C.uU;C.uU++;C.hT[n]=R;C.$$[R]=n}v.push(R)}C.e4.push(r.Y1(E)+""); +if(r.HB&&r.HB[r.HB.length-1]){var l=c.a.$x(P.n);l.c=l.c.map(Math.round);var w=r.HB[r.HB.length-1];w.a3+=JSON.stringify(l).length; +w.Pw.push([K[0].split("#").pop(),l])}}else if(Q&&Y.amW){var V=Q.Se,F=new hX(V,z);if(I)y.push("fill=\""+CSS.CZ(I.Clr.v)+"\""); +var Z=bk.nn(F,Q),M=c.a.xK(Z);for(var a in M){if(I==null)y.push("fill=\""+a+"\"");var d=M[a],X=Typr.U.pathToSVG({crds:d.c,cmds:d.Z},2); +C.e4.push(r.Y1(E)+"");if(I==null)y.pop()}}else if(Q&&!Y.a0c){var V=Q.Se,e=Q.J.clone(),bz=0,g6=0; +if(b5.S8(V)==1){var N=b5.L3(V,0,0).s6.Justification,J=0,f5=b5.qi(V)[2];if(N==2)J=f5/2;if(N==1)J=f5;e.translate(J,0)}K.push("transform: "+r.oC(e)); +var dx=b5.xY(V),fq=V.EngineDict.ParagraphRun,i9=fq.RunArray,e8=fq.RunLengthArray;if(K.length!=0)y.push("style=\""+K.join(";")+"\""); +C.e4.push(r.Y1(E)+"");var S=T.add.lmfx;if(S)S=S.frameFXMulti.v[0];if(S)S=S.v;var fs=I?CSS.CZ(I.Clr.v):null; +for(var H=0;H"+r.oB(bE)+"")}bz+=bj}C.e4.push(r.Y1(E)+"")}else if(T.add.SoLd&&Y.Y0){var hP=T.add.SoLd,d2=hP.Idnt.v,hr=0,fv=hP.Crop?hP.Crop.v:null; +if(C.zn[d2]!=null)hr=C.zn[d2];else{C.b8++;hr=C.b8;C.zn[d2]=C.b8;var f3=L.X7(d2,fv),d6="";if(f3==null)return; +var dp=f3.Ne,go=iL.lc(f3.raw.buffer);if(go=="pdf"){var iB=new b7("h");iL.WS("PDF").ER(f3.raw.buffer,iB); +iB.oQ();iB.C8();iB.s();iB.nU();if(hP.Crop&&hP.Crop.v==1){W.yP.h6(iB,iB.root.dm(iB,!0))}var hS=iL.WS("SVG").aR(iB,iB.d,iB.v,null,{tW:z}); +d6="data:image/svg+xml;base64,"+iL.q4(hS)}else if(go=="jpg"||go=="png"||go=="gif"||go=="svg"){var eF={jpg:"image/jpg",png:"image/png",jpg:"image/jpg",svg:"image/svg+xml"}; +d6="data:"+eF[go]+";base64,"+iL.q4(f3.raw.buffer)}else{d6=iL.CG(dp[0].buffer,dp[1].d,dp[1].v)}C.W9.push(r.Y1(2)+"")}var bQ=c.I.Qh(hP); +if(K.length!=0)y.push("style=\""+K.join(";")+"\"");var iP=r.ym(y,v);C.e4.push(r.Y1(E)+"")}else if(!T.rect.ue()&&(Y.Y0||Q)){if(K.length!=0)y.push("style=\""+K.join(";")+"\""); +var iP=r.ym(y,v),d8=T.buffer;if(I)d8=ca.zT(d8,I,T.rect);var a6=T.rect;C.b8++;var d6=iL.CG(d8.buffer,a6.d,a6.v,"png",null,!0); +C.W9.push(r.Y1(2)+""); +C.e4.push(r.Y1(E)+"")}}};cb.ym=function(L,C){if(C.length!=0)L.push("class=\""+C.join(" ")+"\""); +return L.join(" ")};cb.oB=function(L){return String(L).replace(/&/g,"&").replace(//g,">").replace(/\u0022/g,""")}; +cb.oC=function(L){var C=[L.R,L.O,L.Z9,L.J2,L.Yt,L.rv].map(cb.p3);return"matrix("+C.join(",")+")"};cb.dQ=function(L,C,U,E){var Y=cb,z=C.vstk,r=C.vmsk,p=C.lmfx; +if(r&&r.hY!=0){var T=Y.p3(r.hY);if(U.rk[T]==null){U.Oc++;U.rk[T]=U.Oc;U.W9.push(Y.Y1(2)+" ")}L.push("filter: url(#flt"+U.rk[T]+")")}var k=ca.R4(p,C),P=k[0],b=k[1]; +if(z&&!z.fillEnabled.v)L.push("fill: none");else if(P){var Q=CSS.CZ(P.Clr.v);L.push("fill: "+Q)}else if(b){Y.J5(b,U,E); +L.push("fill: url(#grd"+U.TK+")")}if(z==null||!z.strokeEnabled.v)z=ca.HS(p);if(z&&z.strokeEnabled.v){var K=z.strokeStyleContent.v,h=K.classID; +if(h=="solidColorLayer")L.push("stroke: "+CSS.CZ(K.Clr.v));else{Y.J5(K,U,E);L.push("stroke: url(#grd"+U.TK+")")}var x=gM.H0.h9.indexOf(z.strokeStyleLineCapType.v.strokeStyleLineCapType),O=gM.H0.join.indexOf(z.strokeStyleLineJoinType.v.strokeStyleLineJoinType),y=z.strokeStyleOpacity.v.val/100,v=z.strokeStyleLineWidth.v.val,i=gM.H0.jr.indexOf(z.strokeStyleLineAlignment.v.strokeStyleLineAlignment); +if(i==2){v*=2;L.push("paint-order:stroke fill markers")}var D=z.strokeStyleLineDashSet.v,I=[];for(var H=0; +H"); +if(T==1)C.W9.push(b+" cx=\""+E.p3(P[0].x)+"\" cy=\""+E.p3(P[0].y)+"\" r=\""+E.p3(hZ.sl(P[0],P[1]))+"\">"); +var Q=L.Rvrs.v;if(Q){z.reverse();r.reverse()}for(var H=0;H")}C.W9.push(E.Y1(2)+"")}; +cb.tD=function(L,C,U,E,Y){var z=[],r=cb.tD,p=!1,T={aU:L,fg:C,$a:[!0,!0,!0],Gx:!1,_B:U,aep:0};T.G8=Math.round(Math.max(L,C)*(.02+r.AH(T)*.03)); +T.yf=r.a8l(T);T._M=r.a57(T.yf,(r.AH(T)<.5?-1:1)*(.2+r.AH(T)*.3));if(r.AH(T)<.5){var k=T.yf;T.yf=T._M; +T._M=k}T.a53=r.AH(T)<.4&&r.aaQ(T._M,{h:1,P:1,O:1})>.3;T.ai7=r.AH(T)<.5?0:1;z.push(""); +T.jp=E[Math.floor(r.Fk(T)*E.length)];T.Hx=E[Math.floor(r.Fk(T)*E.length)];z.push(""); +var P=[0,0,L,C],b=P;if(Y==null)z.push(""); +else{T.Gx=!0;r.KA(T,P,z,Y)}if(r.AH(T)<.25&&!T.Gx){T.$a[0]=T.$a[2]=!1;r.agN(P,T,z);b=P}else if(r.AH(T)<.25||T.Gx)b=P; +else{var Q=.52+r.AH(T)*.2;if(r.AH(T)<.5)Q=1-Q;var K=P.slice(0),h=P.slice(0);if(r.AH(T)<.5)K[2]=h[0]=Math.round(Q*L); +else K[3]=h[1]=Math.round(Q*C);if(r.AH(T)<.5){var k=K;K=h;h=k}b=K;r.adv(T,h,z,Y)}r.a0Q(T,b,z);z.push(""); +z=z.join("\n");var x=c.F(Math.round(z.length*1.5)),O=$.mW(z,x,0);return[x.buffer.slice(0,O),T.GE]};cb.tD.agN=function(L,C,U){var E=cb.tD,Y=L[2]-L[0],z=L[3]-L[1]; +if(E.AH(C)<.5){U.push("")}else if(E.AH(C)<-.4){E.a1M(C,L,U)}else{var r=E.AH(C)<.5?0:1,p=(r==0?z:Y)/4,T=E.ML(C,r,L,U,p,!0),T=E.ML(C,r+2,L,U,p,!0,T)}}; +cb.tD.a0Q=function(L,C,U){var E=cb.tD,Y="Hello World!-What a beautiful day.-What Is Love?-Baby, don't hurt me.-Is This a Real Life?-Is this a fantasy?-Wake Me Up!-Before you go go.-I Saw The Sign.-And it opened up my mind!".split("-"),z=2*Math.floor(E.AH(L)*Y.length/2),r=C[2]-C[0],p=C[3]-C[1],k=0,b=0; +L.sp=(L.aU+r)*.5*(.04+E.AH(L)*.05);L.sp=Math.min(L.sp,p*.4,r*.12);L.sp=Math.round(L.sp);var T=Math.min(L.sp*Y[z].length*(.35+.3*E.AH(L)),r*.9),P=(C[1]+C[3])/2,Q=c.uW(L.yf)<.85?{h:1,P:1,O:1}:{h:.1,P:.1,O:.1}; +if(E.AH(L)<.25&&L.$a[0]){b=0;k=C[0]+L.G8}else if(E.AH(L)<.33&&L.$a[2]){b=2;k=C[2]-L.G8}else{b=1;k=(C[0]+C[2])/2}var K=Q.h==1?"0,0,0":"255,255,255",h=L.Gx&&E.AH(L)<1; +if(h){var x=C[0],O=r,y=P-L.sp*1.1,v=L.sp*2.2,i=.7;if(b==1&&E.AH(L)<.5){x=y=.2*Math.min(r,p);O=r-2*y; +v=p-y-y}else if(E.AH(L)<.7){x=y=0;O=r;v=p;i=.25}U.push("")}if(E.AH(L)<.4){var D=L.sp*.07; +D*=1.5+E.AH(L)*1;if(b==-1&&r/p<3&&!h){U.push(""); +U.push("")}if(b!=1){U.push(""); +k+=(b==0?1:-1)*L.sp/3}}var I=L.sp*.4;U.push(E.dj(Y[z+1],k,P+I*1.6,I,Q,b,L.Hx));U.push(E.dj(Y[z],k,P+L.sp*.04,L.sp,Q,b,L.jp))}; +cb.tD.adv=function(L,C,U,E){var Y=C[2]-C[0],z=C[3]-C[1],r=Math.max(Y,z),p=Math.min(Y,z),T=cb.tD;if(r/p<5&&!L.Gx&&!1){T.KA(L,C,U,E)}else if(T.AH(L)<0)U.push(""); +else{var k=0;if(C[3]!=L.fg)k=0;if(C[2]!=L.aU)k=3;if(C[0]!=0)k=1;if(C[1]!=0)k=2;var P=k+2&3;if(r/p<3){var b=T.a4X(P),Q=b[Math.round(T.AH(L)*(b.length-1))],K=Q.n8.slice(0,4),h=K.indexOf(1); +Q=JSON.parse(JSON.stringify(Q));var x=-1;if(K!="0000"){var O=new c0;if(Q.n8[5]=="0"){if(h==3&&k==1){x=1; +O.scale(-1,1)}else x=h}else{var y=P;while(y==P)y=Math.floor(T.AH(L)*4)&3;O.rotate((-h+y)*Math.PI/2)}T.J(Q,O)}var v=T.mE(Q),i=Y-2*L.G8,D=z-2*L.G8; +if(x!=-1){if((x&1)==0)D-=L.G8;else i-=L.G8}var I=Math.min(i/v.d,D/v.v),m=new c0;m.translate(-v.x,-v.y); +m.scale(I,I);var f=(Y-v.d*I)/2,A=(z-v.v*I)/2;if(x!=-1){if(x==3)f=0;if(x==0)A=0;if(x==1)f=Y-v.d*I;if(x==2)A=z-v.v*I}m.translate(C[0]+f,C[1]+A); +T.gl(L,Q,m,L._M,U)}else{T.ML(L,k,C,U,1e9)}}};cb.tD.KA=function(L,C,U,E){var Y=C[2]-C[0],z=C[3]-C[1],r=Math.max(Y,z),p=Math.min(Y,z),T=cb.tD,k=T.Fk(L),P,b,Q,K=E[0]instanceof ArrayBuffer; +if(K){P="data:image/jpg;base64,"+g8.qG(E[0]);b=E[1];Q=E[2]}else{var h=Math.floor(k*E.length),x=E[h]; +L.GE=x;P=x.webformatURL;b=x.webformatWidth;Q=x.webformatHeight}var O=C[0],y=C[1],v=Y,i=z;if(Y/z>b/Q){i=v*Q/b; +y=y-(i-z)/2}else{v=i*b/Q;O=O-(v-Y)/2}if(K){U.push("");U.push(""); +U.push("");var D=v/b;U.push("")}else{var I="cp"+Math.random(); +U.push("");U.push(""); +U.push("");U.push("")}}; +cb.tD.dj=function(L,C,U,E,Y,z,r){var p=cb.tD;return""+L+""}; +cb.tD.gl=function(L,C,U,E,Y){var z=cb.tD,r=[];for(var H=0;H"); +for(var H=0;H")}Y.push("")}; +cb.tD.a1M=function(L,C,U){var E=cb.tD,Y=cb.tD.yO,z=[];for(var H=0;H0){y.v+=y.y; +y.y=0}if((C&1)==0){i=x;v=O}else{v=x;i=O}var D=Math.min(Math.min(.5+.5*T.AH(L))*Math.min(O,x),Y)/y.v,I=Math.ceil(v/(1e3*D)),m=new c0,f=new c0; +f.scale(D,D);if(C==0||C==2){f.translate(-(O/2),-(x/2));f.rotate(-C*Math.PI/2);f.translate(O/2+U[0],x/2+U[1])}else{f.rotate(Math.PI/2); +f.scale(1,-1);f.translate(U[0],U[1]);if(C==1){f.scale(-1,1);f.translate(O,0)}}E.push(""); +for(var H=0;H"); +return K};cb.tD.Rect=function(L,C,U,E){return Typr.U.pathToSVG({crds:[L,C,L+U,C,L+U,C+E,L,C+E],cmds:["M","L","L","L","Z"]})}; +cb.tD.a4W=function(L,C,U,E,Y){var z=[L,C,L+U,C,L+U,C+E,L,C+E];L+=Y;C+=Y;U-=2*Y;E-=2*Y;z.push(L,C,L,C+E,L+U,C+E,L+U,C); +return Typr.U.pathToSVG({crds:z,cmds:"M L L L Z M L L L Z".split(" ")})};cb.tD.a57=function(L,C){var U=c.S2(L.h,L.P,L.O); +U.fr=Math.max(.1,Math.min(.9,U.fr+C));return c.u2(U.fg,U.uR,U.fr)};cb.tD.a1m=function(L,C){var U=c.S2(L.h,L.P,L.O); +U.fg+=C;return c.u2(U.fg,U.uR,U.fr)};cb.tD.a0f=function(L){var C=c.S2(L.h,L.P,L.O);C.fr=1-C.fr;return c.u2(C.fg,C.uR,C.fr)}; +cb.tD.aaQ=function(L,C){var U=L.h-C.h,E=L.P-C.P,Y=L.O-C.O;return Math.sqrt(U*U+E*E+Y*Y)};cb.tD.a8l=function(L){var C=cb.tD; +return{h:C.AH(L),P:C.AH(L),O:C.AH(L)}};cb.tD.AX=function(L){return CSS.ws({h:L.h*255,P:L.P*255,O:L.O*255})}; +cb.tD.mE=function(L){var C=L.Pw,U=new _;for(var H=0;H>>8*C&255;return U*(.99999999/255)};cb.tD.Fk=function(L){var C=cb.tD.Gn(L._B); +L._B=cb.tD.Gn(C);return C*(1/4294967295)};cb.tD.Gn=function(L){L=(L^61^L>>>16)>>>0;L=L+(L<<3)>>>0;L=(L^L>>>4)>>>0; +L=L*668265261>>>0;L=(L^L>>>15)>>>0;return L};cb.tD.yO=[{n8:"0001-0-bird",Pw:[["4b3c34",{Z:"M C L C C L Z M C C L C C L Z M C L C L Z M C L C C L Z".split(" "),c:[208,16,253,5,247,86,228,104,218,108,253,60,235,12,211,18,210,18,209,17,208,16,208,16,187,140,238,125,326,133,319,189,318,198,307,210,299,207,297,205,307,208,316,195,317,188,320,126,208,137,174,149,187,140,137,75,156,79,177,94,164,157,173,147,177,101,165,79,142,75,137,75,368,59,165,59,182,233,0,210,0,225,161,250,194,61,364,63,367,61,368,59,368,59,368,59]}],["3c7040",{Z:"M C C C C C L Z M C C C C L Z M C C C C L Z M C C C C L Z M C C C C C L Z M C C C C L Z M C C C C Z".split(" "),c:[345,123,324,113,331,70,284,80,287,79,310,89,314,103,314,104,306,90,284,82,281,81,270,85,268,86,274,117,335,119,345,123,345,123,270,0,283,29,282,58,244,66,258,62,265,40,269,27,265,37,256,56,249,58,242,31,263,18,270,0,270,0,89,100,81,136,47,182,101,196,90,189,92,157,91,145,94,160,93,191,109,195,148,158,96,129,89,100,89,100,230,187,201,240,160,226,133,198,150,191,172,197,187,198,166,193,153,190,134,193,159,162,207,194,230,187,230,187,126,177,131,159,129,150,119,139,122,122,145,112,147,97,166,128,164,155,134,168,139,154,146,142,145,131,143,145,133,159,126,177,126,177,209,86,195,86,166,91,173,109,177,102,181,97,191,96,180,99,174,113,175,113,194,114,200,96,209,86,209,86,278,175,254,167,235,168,231,143,245,143,248,151,256,158,252,147,243,144,240,142,276,147,265,171,278,175]}],["b588c1",{Z:"M C C C C C C C C C C C C L Z".split(" "),c:[189,40,188,42,186,44,184,47,184,52,183,55,181,59,175,70,160,78,147,79,142,79,131,78,127,75,118,74,95,71,93,70,89,70,88,70,69,72,74,66,82,68,93,65,78,64,83,62,95,59,128,50,128,33,155,29,162,16,180,13,189,31,193,31,196,34,198,37,197,37,193,39,189,40,189,40]}]]},{n8:"0001-0-bird2",Pw:[["ff7f2a",{Z:"M L L L Z M L L L Z".split(" "),c:[296,0,296,62,335,62,296,0,357,0,357,62,318,62,357,0]}],["b588c1",{Z:"M C C C C C C C C C C C L Z".split(" "),c:[321,48,344,48,379,67,396,121,408,176,396,230,337,255,303,265,265,268,217,235,191,217,170,188,186,180,195,177,199,187,205,192,203,185,199,178,207,172,217,165,224,178,225,182,227,196,231,203,250,206,273,205,290,196,292,165,289,133,269,118,268,101,267,77,288,49,321,48,321,48]}],["74439e",{Z:"M C C C C C C L Z M C C Z".split(" "),c:[337,187,329,202,317,204,304,204,293,204,284,205,293,224,286,216,278,209,268,214,257,220,262,237,269,243,284,258,310,256,323,243,337,227,339,208,337,187,337,187,340,77,310,78,287,81,315,96,269,83,309,75,340,77]}],["000000",{Z:"M L L L Z M L L L Z".split(" "),c:[326,258,334,315,323,316,326,258,298,262,296,318,286,317,298,262]}],["4b3c34",{Z:"M L C C C C C C C C L Z".split(" "),c:[0,272,0,336,63,296,119,296,175,320,205,330,229,339,278,338,322,337,354,322,405,325,443,329,482,332,501,377,501,366,502,348,474,328,464,320,440,312,384,309,296,309,300,333,186,293,118,264,54,250,0,272,0,272]}],["3c7040",{Z:"M C C C Z M C C C Z M C C C L Z M C C C L Z M C C C L Z M C C C Z".split(" "),c:[58,260,44,247,27,239,20,208,15,188,32,182,43,198,59,227,56,242,58,260,181,323,167,336,150,345,143,375,138,396,155,401,166,385,182,356,179,342,181,323,60,260,79,249,100,243,113,214,122,194,102,186,86,200,62,227,65,242,60,260,60,260,499,378,479,377,462,372,435,388,417,399,425,415,444,411,476,403,484,390,499,378,499,378,501,379,494,397,482,411,488,442,491,463,511,461,514,442,520,410,508,397,501,379,501,379,503,378,513,390,516,402,531,413,546,421,557,412,548,401,534,382,519,379,503,378]}]]},{n8:"0000-1-flower",Pw:[["7a59a2",{Z:"M C C C C C C C Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z".split(" "),c:[468,470,411,473,371,480,351,495,332,509,322,536,325,581,325,601,328,621,325,637,346,634,371,638,397,637,427,636,456,626,465,611,478,596,485,553,489,490,477,489,470,483,468,470,445,563,435,583,425,591,415,590,401,588,401,572,410,549,388,558,375,557,369,546,366,533,374,524,390,517,416,506,441,498,465,495,463,519,455,542,445,563,445,563,489,450,486,392,480,352,465,332,451,313,425,302,380,305,360,305,340,307,324,304,327,324,322,350,323,376,323,406,332,435,347,444,362,457,405,465,468,470,469,458,476,451,489,450,489,450,395,424,376,415,368,405,369,394,371,380,387,380,410,390,402,368,403,355,414,349,427,346,436,355,443,370,454,397,460,422,463,446,439,443,417,435,395,424,395,424,508,470,566,468,606,462,626,447,645,433,656,407,654,362,654,342,652,322,655,306,634,309,609,304,583,305,553,305,524,314,514,329,501,344,493,387,488,449,500,451,507,457,508,470,508,470,534,377,544,357,554,350,564,351,578,353,578,369,568,392,590,384,604,385,609,396,612,409,603,418,588,425,561,435,536,442,512,445,515,421,523,399,534,377,534,377,488,490,492,547,499,587,514,607,528,626,554,636,600,633,619,632,640,630,656,633,652,612,656,587,655,560,655,531,645,502,629,493,614,480,571,473,508,469,507,481,501,488,488,490,488,490,582,513,602,523,610,533,609,543,607,557,591,557,568,548,577,570,576,583,565,589,552,592,542,584,535,568,524,542,517,517,514,493,538,495,560,503,582,513,582,513]}]]},{n8:"0000-1-flower",Pw:[["d13777",{Z:"M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z".split(" "),c:[474,503,457,528,452,530,450,528,450,523,469,498,464,493,388,522,332,552,314,585,297,628,322,660,372,639,361,698,421,709,450,665,467,649,477,596,482,505,474,503,474,503,439,563,431,563,424,556,424,548,424,539,431,532,439,532,447,532,454,539,454,548,454,556,447,563,439,563,462,475,432,467,429,463,430,460,435,458,465,469,468,463,417,399,371,356,335,348,288,345,265,379,300,420,241,428,249,488,301,503,321,513,374,507,462,483,462,475,462,475,394,460,391,452,396,444,404,441,412,438,420,443,423,451,426,459,421,467,413,470,405,473,396,468,394,460,484,455,483,424,486,419,489,420,492,424,492,456,498,457,543,389,570,332,566,294,554,249,515,238,487,284,461,231,406,256,408,310,405,333,427,381,477,458,484,455,484,455,477,385,484,380,494,382,499,389,504,396,502,405,496,410,489,415,479,414,474,407,469,400,471,390,477,385,511,470,539,459,545,461,545,463,542,467,512,477,513,483,592,505,654,513,688,497,728,472,726,432,674,419,717,378,675,334,625,353,602,356,563,393,506,464,511,470,511,470,575,442,581,447,583,456,578,463,573,470,563,472,557,467,550,462,548,452,553,445,558,438,568,437,575,442,505,499,524,523,524,529,521,531,517,529,498,503,492,506,496,588,508,650,533,677,570,707,607,693,603,639,656,667,685,614,651,572,641,551,594,525,509,493,505,499,505,499,551,552,548,560,540,564,532,561,524,559,519,550,522,542,524,534,533,530,541,532,549,535,554,543,551,552]}]]},{n8:"0000-1-flower",Pw:[["ffac42",{Z:"M C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C Z M C C C C Z".split(" "),c:[646,471,646,446,626,426,601,426,599,426,597,426,595,427,596,426,598,424,599,423,616,406,616,378,599,360,581,343,553,343,536,360,534,361,533,363,532,364,532,363,532,361,532,359,532,335,512,315,488,315,463,315,443,335,443,359,443,361,443,363,443,365,442,364,441,363,440,362,422,344,394,344,377,362,359,379,359,407,377,425,378,426,380,427,381,429,379,428,378,428,376,428,351,428,331,448,331,473,331,498,351,518,376,518,378,518,380,517,382,517,381,518,379,519,378,521,361,538,361,566,378,584,396,601,424,601,441,584,443,582,444,581,445,579,445,581,445,583,445,584,445,609,465,629,490,629,514,629,534,609,534,584,534,582,534,580,534,579,535,580,536,581,537,582,555,600,583,600,600,582,618,565,618,537,600,519,599,518,597,516,596,515,598,515,599,516,601,516,626,516,646,496,646,471,489,552,444,552,409,516,409,472,409,428,444,392,489,392,533,392,569,428,569,472,569,516,533,552,489,552]}]]},{n8:"0000-1-flower",Pw:[["d04040",{Z:"M C C L L C C C C L L C C L L C C C C L C C C C L Z M C C C Z M C C C L Z M C C C L Z".split(" "),c:[691,424,690,369,680,330,660,303,634,320,601,361,568,406,568,406,568,327,578,326,585,317,585,306,585,294,576,284,564,284,552,284,542,294,542,306,542,317,550,326,560,327,560,406,559,406,540,359,522,311,501,291,475,319,453,360,433,407,431,406,431,327,441,326,448,317,448,306,448,294,439,284,427,284,415,284,405,294,405,306,405,317,412,326,423,327,423,404,390,363,360,326,341,308,296,401,299,489,360,567,396,613,443,639,500,638,624,636,694,524,692,424,691,424,389,543,370,514,379,498,399,504,439,518,470,564,488,613,455,600,414,580,389,543,481,480,488,445,505,441,515,459,533,497,524,552,501,599,487,567,472,523,481,480,481,480,624,523,610,563,565,595,515,613,528,580,548,538,585,514,614,494,629,503,624,523,624,523]}]]},{n8:"0000-1-flower",Pw:[["ec7272",{Z:"M C C C C Z M C C C C Z M C C C C L Z M C C C C L Z M C C C C Z M C C C C L Z".split(" "),c:[447,475,452,450,452,438,437,423,422,407,407,412,390,383,398,418,421,415,433,434,445,453,446,474,447,475,495,446,520,439,529,433,535,412,542,390,529,380,546,351,520,376,533,394,523,414,513,434,495,445,495,446,545,473,564,490,574,495,595,490,617,485,620,469,653,468,619,459,610,479,587,480,565,482,546,472,545,473,545,473,549,533,543,558,543,569,559,585,574,601,589,596,606,624,597,590,575,592,563,573,551,555,550,534,549,533,549,533,504,562,480,570,470,575,464,596,458,618,470,628,454,657,479,632,466,614,476,594,486,575,504,563,504,562,459,536,440,519,430,513,409,518,387,524,384,539,351,540,385,549,394,529,417,528,439,527,457,536,459,536,459,536]}],["333333",{Z:"M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z".split(" "),c:[534,455,584,415,579,358,577,335,574,315,585,304,585,304,585,304,568,308,561,312,554,316,520,333,500,363,479,392,493,437,486,456,479,476,452,485,452,485,452,485,471,474,475,454,479,434,460,402,482,365,505,328,565,292,597,294,612,295,591,298,587,316,583,333,593,373,584,404,574,440,533,456,534,455,534,455,559,506,619,530,666,497,685,483,701,471,716,475,716,475,716,475,704,463,697,459,690,454,657,434,622,431,587,428,554,462,534,465,513,469,492,451,492,451,492,451,511,461,530,455,549,448,568,416,611,417,654,418,716,452,730,481,737,495,724,478,706,483,689,489,660,516,628,524,592,534,558,506,559,506,559,506,524,552,534,615,586,640,607,649,625,657,629,672,629,672,629,672,634,655,634,647,634,639,636,601,621,569,606,537,560,525,547,509,534,494,539,466,539,466,539,466,539,488,554,501,569,514,607,514,627,552,648,590,650,660,632,687,623,700,631,680,617,667,605,656,566,644,543,621,517,594,524,551,524,552,524,552,467,546,417,585,421,643,424,665,426,686,415,697,415,697,415,697,432,693,439,689,446,684,481,667,501,638,521,609,508,563,515,544,522,524,548,515,548,515,548,515,530,527,526,546,522,566,540,598,518,635,496,672,436,709,404,706,388,705,409,702,413,684,417,667,408,628,417,596,426,561,467,544,467,546,467,546,442,495,383,472,336,504,317,518,301,530,286,526,286,526,286,526,298,539,305,543,312,547,344,568,380,571,415,574,448,539,468,536,488,532,510,551,510,551,510,551,490,540,471,547,452,553,434,585,391,584,348,583,286,550,272,521,265,507,278,524,296,518,313,513,342,485,373,477,409,468,444,495,442,495,442,495,476,449,467,386,415,361,394,352,375,344,371,329,371,329,371,329,366,346,366,354,366,362,364,400,379,433,394,465,440,476,453,492,467,508,462,535,462,535,462,535,461,513,446,500,431,487,394,487,373,449,352,411,350,341,368,314,377,301,369,321,383,334,396,345,434,357,457,380,483,407,477,450,476,449,476,449]}]]},{n8:"0000-0-hearts",Pw:[["d17070",{Z:"M C C C C C C C C C L Z".split(" "),c:[415,584,413,585,411,586,409,587,392,596,389,620,395,633,401,647,414,663,450,668,485,674,487,681,494,690,491,679,487,673,507,643,527,613,524,593,518,579,512,566,493,552,475,558,467,561,451,566,448,586,435,578,423,581,415,584,415,584]}],["6bcc6b",{Z:"M C C C C C C C C C L Z".split(" "),c:[595,451,593,449,590,448,588,448,563,439,537,457,529,475,521,493,516,520,542,560,568,601,563,609,559,623,568,611,571,602,618,595,666,589,684,567,692,550,700,532,697,501,674,488,665,482,645,472,622,486,619,465,606,456,595,451,595,451]}],["5c5cc2",{Z:"M C C C C C C C C C L Z".split(" "),c:[341,362,338,364,335,366,332,368,304,385,301,424,312,446,323,468,345,494,405,501,465,508,468,520,480,534,475,516,468,506,499,455,531,404,524,370,514,348,503,325,470,304,440,315,427,320,401,331,397,364,374,351,355,356,341,362,341,362]}]]},{n8:"0000-0-anchor",Pw:[["2a3b66",{Z:"M C C C C L Z M C C C C C C C C C C C C C C L C C C C C C C C C C C C C L C C C C C C C C C C C C C L Z".split(" "),c:[495,315,490,315,488,318,489,323,491,328,502,326,502,320,502,317,501,316,497,315,496,315,496,315,495,315,495,315,496,303,509,303,521,320,514,327,511,330,513,345,517,348,519,350,531,352,546,354,570,357,572,357,578,354,588,347,592,351,592,369,592,385,588,390,580,385,576,383,570,383,552,384,524,387,519,389,517,397,515,404,517,515,520,554,522,583,525,599,530,606,534,610,555,617,565,617,584,616,607,602,635,572,639,568,641,566,644,563,633,559,616,557,616,557,675,533,675,533,671,605,669,609,667,611,664,591,658,577,657,579,657,580,656,582,628,638,603,660,565,664,545,666,521,672,514,675,512,677,507,682,504,688,501,693,497,698,496,698,494,698,490,693,487,688,484,682,480,677,477,675,471,672,447,666,427,664,391,660,367,640,340,591,335,604,332,621,331,619,329,615,325,544,325,544,384,568,384,568,368,569,357,573,385,602,408,616,426,617,437,617,458,610,461,606,466,599,470,583,472,554,474,515,476,404,475,397,473,389,468,387,440,384,422,383,416,383,412,385,403,390,400,385,400,369,400,351,403,347,414,354,419,357,421,357,446,354,460,352,473,350,475,348,478,345,481,330,478,327,470,320,483,303,496,303,496,303]}]]},{n8:"0000-1-leaf",Pw:[["fbb600",{Z:"M L L L L L L C L L C L C L C C C C C L C C C C C C C C C L C C C C C C C C C C C C C L L L L Z".split(" "),c:[642,726,633,723,632,707,591,631,570,582,526,521,537,547,535,579,517,598,501,619,486,602,414,634,412,606,379,609,346,611,394,557,406,547,401,539,386,532,319,519,337,508,332,493,320,478,326,464,302,450,287,436,303,436,324,441,330,432,346,434,359,434,359,415,377,428,397,431,417,432,442,440,437,418,417,416,406,372,401,370,395,367,389,355,417,363,408,339,406,323,416,312,427,303,417,276,433,295,444,297,452,294,479,321,490,313,496,294,503,322,510,329,517,338,522,353,530,371,530,379,546,402,551,389,555,378,578,333,606,333,628,304,652,280,646,306,644,327,657,329,649,356,658,374,679,384,666,392,656,415,645,432,627,457,653,451,661,457,692,460,698,473,715,481,697,485,678,488,669,509,656,523,655,533,666,539,659,537,659,542,643,531,630,535,613,543,608,539,598,535,594,542,590,553,590,566,594,564,596,569,568,575,551,543,531,519,575,577,597,628,639,708,642,726]}]]},{n8:"0000-1-acorn",Pw:[["a05a2c",{Z:"M C C C C C C C L Z".split(" "),c:[506,453,450,426,413,422,398,444,374,480,374,533,384,573,391,602,407,625,430,645,451,658,487,654,509,647,554,633,587,605,612,565,635,527,591,500,565,482,557,476,515,457,506,453,506,453]}],["502d16",{Z:"M C C C C C C C C C C C Z".split(" "),c:[640,524,639,539,623,540,623,540,627,522,607,504,583,488,547,465,507,445,470,434,439,426,412,417,400,437,400,437,391,424,400,414,434,370,498,356,551,376,555,349,583,317,597,321,612,326,621,346,620,350,619,354,594,352,584,368,580,375,577,382,575,387,619,412,649,460,640,524]}]]},{n8:"0000-0-skull",Pw:[["808080",{Z:"M C L C C L C L C C C C C C C L C L C C C C C C C C L C C L C L C C C C C C C L C L C L C C C C C C Z M C C C C Z M C C C C Z M L L L Z".split(" "),c:[396,410,398,415,398,420,398,424,420,437,433,404,465,382,501,382,538,382,569,404,582,435,602,424,602,419,603,415,604,410,604,410,609,392,622,379,633,382,643,384,648,402,643,420,643,421,642,421,642,422,643,422,643,422,644,422,662,427,675,440,672,450,669,461,652,465,633,460,628,459,624,457,620,455,589,473,588,491,582,507,572,520,607,540,611,538,615,536,620,535,639,530,656,535,659,545,662,556,649,568,630,573,630,574,629,574,629,574,629,574,629,575,629,575,634,594,630,611,619,614,609,617,596,604,591,585,590,580,589,576,589,571,565,557,564,592,536,619,501,619,466,619,438,591,437,557,412,572,411,576,411,580,410,585,410,585,405,604,392,617,381,614,371,611,366,593,371,575,371,574,371,574,372,574,371,573,371,573,370,573,352,568,339,556,342,545,345,534,362,530,381,535,385,536,390,538,394,540,430,519,421,507,415,491,414,475,380,455,376,457,372,459,367,460,367,460,349,465,331,461,328,450,326,440,338,427,357,422,357,422,358,422,358,422,358,421,358,421,358,420,353,402,357,384,368,381,379,379,391,391,396,410,463,439,445,439,431,453,431,470,431,488,445,502,463,502,480,502,494,488,494,470,494,453,480,439,463,439,540,439,522,439,508,453,508,470,508,488,522,502,540,502,557,502,571,488,571,470,571,453,557,439,540,439,483,528,518,528,500,503,483,528]}]]},{n8:"0000-0-ghost",Pw:[["e6e6e6",{Z:"M C C C C C C C C C C L Z M C C C C C C C C Z M C C Z".split(" "),c:[653,486,653,574,689,597,689,638,689,661,640,644,620,656,601,666,609,682,583,692,563,700,538,666,512,666,490,666,451,695,433,686,415,677,416,646,388,644,367,641,313,671,313,648,313,619,346,588,346,486,346,388,415,308,500,308,584,308,653,388,653,486,653,486,449,396,428,396,412,415,412,439,412,462,428,482,449,482,465,482,478,470,484,454,489,470,503,482,519,482,539,482,556,462,556,439,556,415,539,396,519,396,503,396,489,407,484,423,478,407,465,396,449,396,482,505,441,505,465,560,482,560,503,560,524,505,482,505]}],["000000",{Z:"M C C C C Z M C C C C Z".split(" "),c:[526,446,526,455,519,462,510,462,501,462,494,455,494,446,494,437,501,430,510,430,519,430,526,437,526,446,475,446,475,455,468,462,459,462,450,462,442,455,442,446,442,437,450,430,459,430,468,430,475,437,475,446]}]]},{n8:"1001-1-rose",Pw:[["9e1460",{Z:"M C C C C C C C C C Z M C C C C C C C C C Z".split(" "),c:[568,83,558,83,548,88,539,96,538,98,536,99,535,101,522,115,513,134,517,149,522,172,561,200,592,207,604,210,611,215,615,221,622,234,611,258,611,258,613,260,615,264,618,264,627,266,638,241,640,236,660,188,614,83,568,83,526,125,527,97,567,68,593,75,616,81,642,121,649,152,651,165,656,172,662,176,675,183,698,173,698,173,698,173,698,173,698,173,704,176,705,179,705,180,706,189,681,199,678,200,678,200,677,201,677,201,627,220,524,170,526,125]}],["020304",{Z:"M C C C C C Z M C C C C C Z M C C C C C Z M C C C C Z".split(" "),c:[60,151,60,151,37,125,60,98,83,72,95,91,115,66,134,42,117,26,120,30,123,34,146,83,132,114,114,154,60,151,60,151,280,70,280,70,258,97,283,122,308,147,318,127,339,150,361,173,344,190,347,186,350,182,370,132,354,101,333,62,280,70,280,70,61,150,61,150,27,143,30,108,33,73,54,81,55,50,57,19,33,16,38,17,43,19,91,44,98,78,107,121,61,150,61,150,-27,185,184,158,222,43,352,32,444,24,538,97,538,97,538,97,453,45,354,48,241,51,185,170,-27,185]}]]},{n8:"1001-1-curls",Pw:[["53a7ab",{Z:"M C C C C C C C C C C C C C C C C L Z M C C C C C C C C C C C C C C C C L Z M C C C C C C C C C C C C C C C C C C C C C L Z".split(" "),c:[68,114,121,103,159,110,183,135,212,169,211,204,189,237,162,277,124,291,86,276,52,263,38,236,47,202,55,168,79,151,121,156,147,162,165,177,160,205,155,228,135,241,113,237,97,234,92,221,96,205,98,195,105,194,115,200,124,205,133,204,135,197,139,183,122,167,95,171,68,176,54,193,68,220,84,252,131,261,165,238,201,202,199,164,158,136,118,113,52,122,-23,151,2,134,33,122,68,114,68,114,71,83,119,75,163,79,198,107,226,129,247,174,271,207,291,229,316,241,342,232,370,222,394,206,418,209,443,212,461,238,485,258,500,272,522,276,543,271,543,271,524,279,518,281,500,287,483,277,466,256,453,243,441,230,427,223,413,217,392,220,372,229,372,230,371,230,370,230,354,241,337,251,315,250,283,248,253,222,229,172,209,133,178,106,137,94,103,84,52,94,-30,133,-3,108,30,91,71,83,71,83,83,54,122,46,166,49,195,67,219,82,250,122,290,168,308,186,330,194,355,192,393,183,400,145,383,118,372,101,355,91,328,91,313,92,303,98,300,109,298,116,299,125,304,131,315,147,327,152,340,149,349,149,354,132,343,131,330,131,326,129,328,120,332,97,355,100,365,114,381,137,367,165,343,168,321,170,289,150,288,117,290,77,319,58,352,64,388,74,405,104,404,141,403,177,382,202,345,207,312,211,284,191,260,161,245,141,229,122,213,106,196,84,166,73,129,67,80,62,28,79,-26,108,10,79,46,63,83,54,83,54]}],["bbdc54",{Z:"M C C C C C L Z M C C C C C L Z M C C C C L Z M C C C C L Z M C C C C C C C C C L Z M C C C C C C C C C C C C C C C C C C C C C C C C C C C C C L Z".split(" "),c:[321,315,287,324,252,312,211,219,217,284,239,326,279,341,324,352,362,329,398,291,316,305,258,269,217,196,238,284,274,319,321,315,321,315,211,261,223,300,234,345,252,374,220,378,194,367,193,324,194,306,198,288,206,270,197,315,204,340,221,351,206,327,202,297,211,261,211,261,206,246,193,301,170,317,138,297,162,281,184,254,205,222,201,246,191,267,174,283,186,279,197,267,206,246,206,246,378,233,370,286,337,299,294,270,312,277,330,276,347,267,294,278,259,252,234,203,280,259,327,278,378,233,378,233,626,217,604,273,555,313,511,315,484,316,438,289,432,232,450,253,488,296,511,291,532,286,551,277,566,261,527,269,498,263,480,243,478,241,478,237,480,235,486,230,504,220,519,226,537,233,551,242,567,241,591,236,611,228,626,217,626,217,411,192,432,183,439,166,420,136,443,144,460,158,466,182,470,165,456,149,430,133,459,136,485,145,505,165,503,143,463,133,434,128,486,127,526,124,539,118,505,123,470,124,435,122,461,111,483,96,500,76,475,95,450,110,424,118,450,96,465,72,466,48,458,75,440,98,419,112,424,106,428,99,428,91,429,68,413,57,393,51,419,70,426,92,411,110,408,77,385,58,343,52,383,26,422,25,445,62,458,47,465,29,467,8,477,27,479,51,475,76,497,64,515,49,528,29,524,57,515,82,496,103,521,113,549,111,579,99,560,122,535,136,502,137,518,149,521,173,514,205,505,181,492,166,476,158,483,188,470,205,447,216,456,183,451,166,438,157,444,193,426,211,379,207,403,193,416,172,416,140,434,156,428,173,411,192,411,192]}]]},{n8:"0111-0-pines",Pw:[["e9e9e9",{Z:"M C C C C C C C C L L L Z".split(" "),c:[0,946,0,946,54,960,99,944,149,927,182,954,205,956,245,960,298,940,382,974,435,995,478,957,538,956,571,955,597,969,631,968,663,967,701,938,749,944,805,950,851,960,893,946,950,928,1e3,946,1e3,946,1e3,1e3,0,1e3,0,946]}],["437a26",{Z:"M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z".split(" "),c:[119,801,120,801,148,859,148,859,137,853,137,853,155,890,155,891,156,892,138,887,140,888,141,888,171,925,171,925,126,924,125,943,125,943,105,944,106,944,107,944,106,924,106,924,61,925,93,886,77,891,100,854,89,860,89,860,119,801,119,801,286,871,286,871,303,905,303,905,296,902,296,902,307,924,307,924,307,925,297,922,297,922,298,922,316,944,316,944,289,944,289,955,289,955,277,956,278,956,278,956,278,944,278,944,251,944,270,921,260,924,274,902,268,906,268,906,285,871,286,871,526,863,526,863,546,903,546,903,538,899,538,899,550,924,550,925,550,926,539,922,540,922,540,922,561,948,561,948,530,947,529,960,529,960,516,961,517,961,518,961,517,947,517,947,486,948,508,921,497,925,513,899,505,903,505,903,526,863,526,863,731,841,731,841,752,883,752,883,744,879,744,879,757,907,757,908,758,908,745,905,746,905,747,905,769,932,769,932,736,932,735,946,735,946,721,946,721,946,722,947,721,932,721,932,688,932,712,903,700,908,717,880,709,884,709,884,731,841,731,841,889,826,889,826,914,876,914,876,904,871,904,871,920,904,920,905,920,906,906,901,907,902,908,902,934,934,934,934,894,933,894,950,894,950,877,951,878,951,879,951,878,933,878,933,838,934,866,900,852,905,872,872,862,877,862,877,889,826,889,826]}]]},{n8:"0111-0-flowers",Pw:[["8cae40",{Z:"M C L C C C L C C L C C C L C C C L C C L C C L Z M C L C C C L C C L C C C L C C C L C C L C C L Z M C L C C C L C C L C C C L C C C L C C L C C L Z M C L C C C L C C L C C C L C C C L C C L C C L Z".split(" "),c:[182,866,160,879,146,903,135,929,135,844,177,842,228,831,230,796,231,770,207,765,182,779,160,792,146,816,135,843,135,713,135,711,134,710,132,710,130,710,128,711,128,713,128,841,117,815,103,791,82,779,57,764,33,769,34,795,36,830,86,841,128,844,128,930,117,903,103,880,82,867,57,853,33,858,34,884,36,919,86,930,128,932,128,1009,128,1010,130,1012,132,1012,134,1012,135,1010,135,1009,135,931,177,928,228,918,230,882,231,856,207,851,182,866,182,866,447,904,430,898,412,904,394,916,394,861,413,873,431,879,447,873,458,868,458,852,447,848,430,841,412,848,394,859,394,788,394,787,393,786,391,786,389,786,388,787,388,788,388,859,370,847,352,841,336,848,325,852,325,868,336,873,352,879,370,873,388,862,388,915,370,904,352,898,336,904,325,909,325,925,336,929,352,936,370,930,388,918,388,1009,388,1010,389,1011,391,1011,393,1011,394,1010,394,1009,394,918,413,930,431,936,447,929,458,925,458,909,447,904,447,904,662,943,650,954,641,972,634,993,634,914,659,907,680,895,692,873,707,846,686,836,662,859,650,870,641,888,634,909,634,818,634,816,632,815,631,815,629,815,628,816,628,818,628,908,621,887,612,870,600,859,576,836,555,846,570,873,582,895,603,907,628,914,628,992,621,971,612,954,600,943,576,920,555,930,570,957,582,978,603,990,628,998,628,1009,628,1010,629,1011,631,1011,632,1011,634,1010,634,1009,634,998,659,991,680,978,692,957,707,930,686,920,662,943,662,943,892,842,875,857,862,882,850,912,850,822,874,817,896,805,908,778,919,755,896,751,877,769,866,779,857,796,850,815,850,737,850,736,848,735,847,735,845,735,844,736,844,737,844,815,836,795,828,779,817,769,798,751,775,755,785,777,797,804,820,817,844,822,844,912,832,882,818,857,801,842,772,816,737,822,753,854,772,894,806,911,844,918,844,1009,844,1010,845,1011,847,1011,848,1011,850,1010,850,1009,850,918,887,911,922,894,941,854,957,822,922,816,892,842,892,842]}],["d13777",{Z:"M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M C C C C C C C Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C Z M C C C C Z M C C L L C C C C L L C C L L C C C C L C C C C L Z M C C C Z M C C C L Z M C C C L Z".split(" "),c:[125,603,115,617,112,619,110,618,111,615,122,600,119,597,75,614,43,631,32,650,22,675,36,694,65,682,59,716,94,722,111,696,120,687,126,657,129,604,125,603,125,603,104,638,99,638,95,634,95,629,95,624,99,620,104,620,109,620,113,624,113,629,113,634,109,638,104,638,117,587,100,582,98,579,99,578,102,577,119,583,121,580,92,543,65,517,44,513,17,512,4,531,24,555,-10,560,-6,594,24,603,36,609,67,605,118,591,118,587,117,587,78,578,77,573,79,568,84,567,88,565,93,568,95,573,96,577,94,582,89,584,85,585,80,583,78,578,130,575,130,557,131,554,133,555,135,557,135,575,138,576,164,537,180,504,177,482,171,456,148,449,132,476,117,445,85,460,86,491,84,504,97,532,126,577,130,575,130,575,126,535,130,532,136,533,139,537,142,541,141,546,137,549,133,552,127,551,125,547,122,543,122,538,126,535,146,584,162,577,165,578,166,580,164,582,146,588,147,591,193,604,229,609,249,600,271,585,271,562,240,554,265,530,241,505,212,516,199,518,176,539,143,580,146,584,146,584,183,567,187,570,187,576,185,580,182,584,176,585,172,582,168,579,167,573,170,569,173,565,179,565,183,567,142,601,153,615,153,618,152,619,149,618,138,603,135,605,137,652,144,688,159,704,180,721,202,713,199,681,230,698,246,667,227,643,221,631,194,616,145,597,142,601,142,601,169,631,167,636,162,638,158,637,153,635,151,630,152,625,154,621,159,618,163,620,168,621,170,626,169,631,376,691,343,693,320,697,309,706,297,714,291,729,294,756,294,767,295,779,294,788,305,786,320,788,335,788,353,787,369,782,375,773,382,764,386,739,388,703,381,702,377,699,376,691,363,745,357,757,351,761,345,761,337,760,337,751,343,737,330,742,322,742,319,735,317,728,322,723,331,718,346,712,360,708,374,706,373,720,369,733,363,745,363,745,388,680,387,646,383,623,375,612,366,600,351,594,325,596,314,596,302,597,293,595,295,607,292,622,292,637,292,654,298,671,306,676,315,684,340,689,376,692,377,684,381,680,388,680,388,680,334,665,323,659,318,654,319,648,320,639,329,640,343,645,338,632,339,625,345,621,352,620,358,625,362,634,368,649,372,664,373,677,360,676,347,671,334,665,334,665,399,691,433,690,456,686,467,678,479,670,485,655,484,629,484,617,482,606,484,597,472,598,458,595,442,596,425,596,409,601,403,610,395,618,391,643,388,679,395,680,399,684,399,691,399,691,414,638,420,626,426,622,432,622,440,624,440,633,434,646,447,641,455,642,458,648,459,656,454,661,445,665,430,671,416,675,402,677,403,663,408,650,414,638,414,638,388,703,390,736,394,759,403,770,411,782,426,788,452,785,464,785,475,784,485,785,483,774,485,759,485,744,484,726,479,710,470,704,461,697,436,693,400,691,399,698,395,702,388,703,388,703,442,716,453,722,458,728,458,734,456,742,447,742,434,736,439,749,438,757,432,760,425,762,419,757,415,748,409,733,404,719,403,705,416,706,429,710,442,716,442,716,722,716,722,701,710,690,696,690,695,690,694,690,693,690,693,689,694,689,695,688,705,678,705,662,695,651,685,641,668,641,658,651,658,652,657,653,656,654,656,653,656,652,656,651,656,637,645,625,630,625,616,625,605,637,605,651,605,652,605,653,605,654,604,654,604,653,603,652,593,642,576,642,566,652,556,662,556,679,566,689,567,690,568,690,569,691,568,691,567,691,566,691,552,691,540,702,540,717,540,731,552,743,566,743,567,743,568,743,569,742,569,743,568,744,567,744,557,754,557,771,567,781,577,791,594,791,604,781,605,780,605,779,606,778,606,779,606,780,606,781,606,795,617,807,632,807,646,807,657,795,657,781,657,780,657,779,657,778,658,779,658,779,659,780,669,790,686,790,696,780,706,770,706,754,696,743,695,743,694,742,693,741,694,741,695,741,696,741,710,741,722,730,722,716,631,762,605,762,585,742,585,716,585,691,605,670,631,670,657,670,677,691,677,716,677,742,657,762,631,762,958,602,957,570,951,547,940,532,925,541,905,565,887,591,886,591,886,546,892,545,897,540,897,533,897,527,891,521,884,521,877,521,872,527,872,533,872,540,876,545,882,546,882,591,882,591,870,564,860,536,848,525,833,541,820,565,808,592,807,592,807,546,813,545,817,540,817,533,817,527,812,521,805,521,798,521,792,527,792,533,792,540,797,545,802,546,802,590,784,567,766,545,755,534,729,588,731,639,766,684,787,711,814,726,847,725,919,724,960,659,958,602,958,602,783,671,772,653,777,645,789,648,812,656,830,682,840,711,821,704,797,692,783,671,836,634,840,614,850,612,856,622,867,644,861,676,848,703,840,684,831,659,836,634,836,634,919,659,911,682,885,701,856,711,863,692,875,668,896,654,913,642,922,647,919,659,919,659]}]]},{n8:"1101-1-confetti",Pw:[["e789ff",{Z:"M C C C C C Z M C C C C C C C Z M C C C C C C C Z M C C C C C Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),c:[170,439,169,438,59,370,108,300,152,238,298,276,318,337,338,398,265,380,285,358,312,328,185,247,121,307,72,353,171,440,170,439,318,338,336,399,262,408,184,346,138,309,73,237,112,174,167,88,345,115,377,222,393,276,296,260,335,236,375,212,236,111,155,183,73,254,265,380,285,358,312,328,318,338,318,338,377,222,394,276,318,288,243,236,187,197,146,120,201,56,254,-5,365,26,407,68,407,68,414,94,378,71,344,50,258,31,221,89,178,154,297,260,336,235,374,211,377,222,377,222,406,70,452,115,432,189,324,115,214,39,323,-85,322,-85,320,-85,229,38,331,100,439,166,413,95,377,72,343,51,364,28,406,70,346,405,369,418,356,441,333,428,346,405,513,298,536,311,523,334,500,321,513,298,891,91,914,104,901,127,878,114,891,91,24,123,47,136,34,159,11,146,24,123,664,33,687,46,674,69,651,56,664,33,910,482,933,495,920,518,897,505,910,482]}],["666666",{Z:"M C C C C C Z M C C C C C C C Z M C C C C C C C Z M C C C C C Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),c:[919,442,917,443,802,510,764,432,730,364,837,250,901,261,965,272,913,329,903,301,889,262,755,338,777,424,794,490,920,442,919,442,901,261,964,274,936,345,842,386,787,410,690,435,654,370,604,279,716,132,827,153,883,164,821,244,819,197,817,150,659,228,682,335,706,443,913,329,903,301,889,262,901,261,901,261,827,153,884,163,857,238,774,281,711,313,622,313,593,233,564,157,647,71,705,54,705,54,732,60,694,82,658,102,599,170,632,231,669,301,822,244,819,197,816,150,827,153,827,153,706,54,769,34,825,87,706,149,583,213,527,56,526,57,526,59,590,200,696,137,807,70,732,60,694,82,658,102,648,73,706,54,362,328,383,340,371,361,350,349,362,328,52,189,73,201,61,222,40,210,52,189,509,119,530,131,517,152,496,140,509,119,912,16,933,28,921,49,900,37,912,16,629,380,650,392,638,413,617,401,629,380,77,414,98,426,86,447,65,435,77,414,240,76,261,88,249,109,228,97,240,76]}]]},{n8:"1101-1-branch",Pw:[["7f500b",{Z:"M C C C L C C Z M C C C L C C Z M C C C L C C Z M C C C L C C Z M C C C L C C Z M C C C L C C Z".split(" "),c:[144,-14,144,-14,149,-12,150,-12,150,-12,106,22,86,75,63,137,93,193,69,238,64,236,89,174,53,146,80,72,99,19,144,-14,144,-14,280,-18,281,-18,276,-20,276,-20,276,-20,282,23,264,64,244,113,196,129,185,168,189,170,209,120,244,123,269,66,288,25,280,-18,280,-18,429,-5,429,-5,434,-4,434,-4,435,-4,405,28,396,72,386,124,415,164,402,203,398,202,410,150,379,132,391,70,399,26,429,-5,429,-5,514,-7,514,-7,519,-12,519,-12,520,-12,532,50,577,96,630,151,703,150,738,197,733,201,681,144,635,166,571,101,526,54,514,-7,514,-7,666,-67,666,-68,663,-65,662,-64,662,-64,704,-52,734,-18,768,22,763,72,793,99,796,96,760,57,778,26,737,-22,708,-56,666,-67,666,-67,936,-8,936,-8,932,-9,931,-9,931,-9,947,32,938,76,927,127,884,154,881,194,886,195,895,142,930,138,943,76,952,32,936,-8,936,-8]}],["5c7f0b",{Z:"M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z".split(" "),c:[119,6,121,16,113,31,81,33,58,34,27,27,27,27,27,27,53,5,70,-1,93,-9,117,-4,119,6,124,8,132,1,151,12,165,33,179,54,180,87,180,87,180,87,153,75,139,60,122,41,115,14,124,8,78,74,82,83,76,97,48,103,27,108,-2,105,-2,105,-2,105,19,81,33,74,53,64,75,65,78,74,83,75,90,68,108,76,124,93,139,110,144,140,144,140,144,140,117,132,104,121,85,105,76,83,83,75,72,152,75,159,72,172,48,179,30,185,6,185,6,185,6,185,22,163,33,156,49,145,68,145,72,152,76,153,81,146,98,151,112,165,126,178,133,203,133,203,133,203,110,199,97,190,80,178,70,160,76,153,73,206,75,213,71,224,49,228,34,232,12,230,12,230,12,230,28,212,39,206,53,199,70,200,73,206,76,207,81,202,95,207,107,220,118,233,122,255,122,255,122,255,102,250,92,241,78,230,71,213,76,207,70,232,78,236,76,252,66,269,56,286,33,297,33,297,33,297,33,274,39,260,46,241,62,228,70,232,285,3,278,8,274,21,291,39,304,52,325,63,325,63,325,63,323,36,316,24,308,7,291,-2,285,3,281,1,280,-7,263,-10,244,-5,224,1,205,20,205,20,205,20,228,27,244,25,264,22,283,10,281,1,270,65,264,69,259,80,272,99,281,112,299,125,299,125,299,125,300,100,296,88,290,72,277,61,270,65,267,64,267,56,252,51,234,53,216,56,197,71,197,71,197,71,216,80,230,80,249,80,267,72,267,64,231,116,225,119,220,128,230,145,237,157,251,170,251,170,251,170,254,148,251,138,248,123,237,113,231,116,228,114,229,108,217,102,201,103,186,103,168,115,168,115,168,115,184,124,196,126,212,127,228,121,228,114,201,148,196,151,192,160,202,174,209,184,222,194,222,194,222,194,223,175,220,166,216,154,206,145,201,148,198,147,198,141,187,137,174,139,160,141,145,152,145,152,145,152,160,159,171,159,185,160,198,153,198,147,188,165,182,163,173,174,170,190,167,205,173,224,173,224,173,224,186,210,191,198,197,183,195,166,188,165,415,10,417,18,413,31,389,36,371,39,347,37,347,37,347,37,364,16,377,9,393,0,412,2,415,10,418,11,424,4,440,11,453,27,466,43,470,69,470,69,470,69,448,62,436,52,420,38,412,17,418,11,391,69,394,76,392,89,371,96,355,102,333,103,333,103,333,103,346,81,357,74,371,64,388,63,391,69,395,70,399,63,414,68,428,80,441,92,448,116,448,116,448,116,427,113,415,105,400,94,390,77,395,70,395,133,398,139,397,150,379,158,367,164,348,167,348,167,348,167,358,148,366,140,377,130,391,128,395,133,398,134,401,128,414,130,427,140,439,149,447,169,447,169,447,169,429,167,418,162,404,154,394,140,398,134,401,177,404,182,402,192,386,198,374,202,358,203,358,203,358,203,368,187,375,181,386,173,399,172,401,177,404,178,408,173,419,176,429,185,439,194,445,212,445,212,445,212,429,210,420,204,408,196,401,183,404,178,402,198,408,201,409,214,403,229,397,244,381,255,381,255,381,255,378,236,381,224,385,208,396,196,402,198,519,23,531,26,543,42,528,75,518,99,495,125,495,125,495,125,485,87,487,67,490,40,508,19,519,23,523,19,521,7,542,-6,571,-8,600,-10,636,6,636,6,636,6,609,27,586,32,557,39,526,32,523,19,570,100,581,102,594,115,585,147,579,170,562,197,562,197,562,197,548,163,547,145,547,120,560,98,570,100,574,97,570,86,587,72,613,66,639,60,673,71,673,71,673,71,652,93,632,101,607,110,578,107,574,97,649,149,659,150,670,160,666,188,662,208,650,232,650,232,650,232,635,205,633,189,631,168,640,149,649,149,652,146,648,137,662,123,683,116,705,109,734,116,734,116,734,116,718,137,702,145,681,155,657,155,652,146,707,178,715,179,724,189,718,213,714,230,701,250,701,250,701,250,690,225,690,211,689,193,699,177,707,178,710,175,707,167,720,156,739,151,759,147,784,155,784,155,784,155,768,172,753,177,734,185,713,183,710,175,732,194,740,189,757,199,770,218,782,237,783,266,783,266,783,266,758,254,746,240,730,223,724,199,732,194,687,-62,688,-54,699,-45,722,-53,739,-59,759,-73,759,-73,759,-73,733,-82,719,-82,701,-81,685,-71,687,-62,684,-60,676,-62,666,-48,662,-28,659,-9,669,17,669,17,669,17,684,-1,689,-16,696,-35,692,-57,684,-60,737,-23,738,-15,746,-5,768,-9,784,-12,804,-23,804,-23,804,-23,782,-34,769,-36,752,-38,736,-30,737,-23,734,-20,727,-24,716,-13,711,5,705,22,711,46,711,46,711,46,727,33,734,20,742,3,742,-17,734,-20,766,35,766,41,772,50,792,48,806,47,823,40,823,40,823,40,805,28,795,26,780,23,766,28,766,35,763,37,758,33,747,42,741,56,735,70,738,91,738,91,738,91,753,81,760,71,768,57,769,40,763,37,782,76,783,82,789,89,806,86,818,84,832,76,832,76,832,76,816,67,806,66,794,65,782,70,782,76,780,78,775,75,766,84,762,97,758,110,762,128,762,128,762,128,775,118,779,108,786,95,785,80,780,78,792,94,788,100,794,112,807,122,819,131,839,133,839,133,839,133,832,116,823,107,812,95,796,89,792,94,945,11,939,18,938,31,959,45,974,55,997,62,997,62,997,62,989,36,980,25,968,11,950,5,945,11,941,11,938,3,921,3,903,13,885,22,871,45,871,45,871,45,894,47,909,42,929,35,944,19,941,11,944,75,938,80,935,93,952,108,964,119,984,128,984,128,984,128,980,104,974,93,965,78,949,70,944,75,940,75,938,67,923,65,906,71,889,77,873,96,873,96,873,96,894,101,908,99,926,95,942,82,940,75,916,133,911,137,907,147,920,162,930,172,946,182,946,182,946,182,944,160,940,151,933,137,921,129,916,133,913,132,912,125,899,123,884,127,869,130,854,145,854,145,854,145,871,151,883,150,899,148,913,139,913,132,893,171,888,175,887,184,899,196,908,204,923,211,923,211,923,211,920,193,915,184,909,173,897,167,893,171,890,170,889,165,877,163,864,168,851,172,839,187,839,187,839,187,855,190,865,188,879,186,891,176,890,170,884,190,877,190,871,202,871,218,871,234,881,251,881,251,881,251,891,234,893,222,896,206,890,190,884,190]}]]},{n8:"1101-1-sticks",Pw:[["ec7272",{Z:"M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),c:[260,148,297,180,286,192,249,160,260,148,114,31,161,47,155,63,109,47,114,31,931,91,902,52,915,42,945,81,931,91,711,19,746,-15,758,-3,723,31,711,19,812,161,782,122,795,112,825,151,812,161,389,34,424,0,436,12,401,46,389,34,431,209,465,175,477,186,442,221,431,209,282,90,282,41,299,41,299,90,282,90,58,233,29,194,42,184,72,223,58,233,574,58,621,74,615,90,569,74,574,58]}],["0000ff",{Z:"M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),c:[722,208,733,161,717,157,706,205,722,208,843,12,797,28,802,44,849,28,843,12,31,74,60,35,47,25,18,64,31,74,220,21,185,-13,173,-1,208,33,220,21,140,166,170,127,157,117,127,156,140,166,558,148,523,114,511,126,546,160,558,148,562,9,516,25,521,41,568,25,562,9,697,105,726,66,713,56,684,95,697,105,961,180,990,141,977,131,948,170,961,180,399,97,353,113,358,129,405,113,399,97]}]]},{n8:"1101-1-dots",Pw:[["ec7272",{Z:"M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z".split(" "),c:[154,47,144,47,136,39,136,29,136,19,144,11,154,11,164,11,172,19,172,29,172,39,164,47,154,47,272,164,262,164,254,156,254,146,254,136,262,128,272,128,282,128,290,136,290,146,290,156,282,164,272,164,529,48,519,48,511,40,511,30,511,20,519,12,529,12,539,12,547,20,547,30,547,40,539,48,529,48,696,101,686,101,678,93,678,83,678,73,686,65,696,65,706,65,714,73,714,83,714,93,706,101,696,101,929,91,919,91,911,83,911,73,911,63,919,55,929,55,939,55,947,63,947,73,947,83,939,91,929,91]}],["0000ff",{Z:"M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z".split(" "),c:[66,122,56,122,48,114,48,104,48,94,56,86,66,86,76,86,84,94,84,104,84,114,76,122,66,122,309,55,299,55,291,47,291,37,291,27,299,19,309,19,319,19,327,27,327,37,327,47,319,55,309,55,785,180,775,180,767,172,767,162,767,152,775,144,785,144,795,144,803,152,803,162,803,172,795,180,785,180,459,147,449,147,441,139,441,129,441,119,449,111,459,111,469,111,477,119,477,129,477,139,469,147,459,147,811,48,801,48,793,40,793,30,793,20,801,12,811,12,821,12,829,20,829,30,829,40,821,48,811,48]}],["88a500",{Z:["M","C","C","Z"],c:[389,224,389,224,410,230,410,230,410,230,389,224,389,224]}]]},{n8:"1101-1-strips",Pw:[["ffc88c",{Z:"M L L L L Z M L L L L Z M L L L L Z".split(" "),c:[-40,0,44,0,137,99,53,99,-40,0,296,0,380,0,473,99,389,99,296,0,632,0,716,0,809,99,725,99,632,0]}],["88a500",{Z:"M L L L L Z M L L L L Z M L L L L Z".split(" "),c:[128,0,212,0,305,99,221,99,128,0,464,0,548,0,641,99,557,99,464,0,800,0,884,0,977,99,893,99,800,0]}],["88a500",{Z:["M","C","C","Z"],c:[407,217,407,217,428,223,428,223,428,223,407,217,407,217]}]]},{n8:"1101-1-circs",Pw:[["ec7272",{Z:"M C C C C Z M C C C C Z".split(" "),c:[61,209,27,209,0,181,0,147,0,113,27,86,61,86,96,86,123,113,123,147,123,181,96,209,61,209,551,209,517,209,489,181,489,147,489,113,517,86,551,86,585,86,612,113,612,147,612,181,585,209,551,209]}],["217995",{Z:"M C C C C Z M C C C C Z".split(" "),c:[303,209,269,209,241,181,241,147,241,113,269,86,303,86,337,86,364,113,364,147,364,181,337,209,303,209,799,209,765,209,738,181,738,147,738,113,765,86,799,86,834,86,861,113,861,147,861,181,834,209,799,209]}],["88a500",{Z:["M","C","C","Z"],c:[530,273,530,273,551,279,551,279,551,279,530,273,530,273]}]]},{n8:"1101-1-squares",Pw:[["014ea7",{Z:"M L L L L Z M L L L L Z".split(" "),c:[0,120,124,120,124,244,0,244,0,120,497,120,621,120,621,244,497,244,497,120]}],["fc54ff",{Z:"M L L L L Z M L L L L Z".split(" "),c:[249,120,373,120,373,244,249,244,249,120,746,120,870,120,870,244,746,244,746,120]}],["88a500",{Z:["M","C","C","Z"],c:[389,354,389,354,410,360,410,360,410,360,389,354,389,354]}]]},{n8:"1101-0-christmas",Pw:[["014ea7",{Z:"M C C C C Z M C C C C Z M L L L L Z".split(" "),c:[255,480,178,480,116,418,116,341,116,264,178,202,255,202,332,202,394,264,394,341,394,418,332,480,255,480,255,232,236,232,221,217,221,198,221,179,236,164,255,164,274,164,289,179,289,198,289,217,274,232,255,232,251,-152,260,-152,260,248,251,248,251,-152]}],["ff9518",{Z:"M C C C C Z M C C C C Z M L L L L Z".split(" "),c:[746,623,669,623,607,561,607,484,607,407,669,345,746,345,823,345,885,407,885,484,885,561,823,623,746,623,747,376,728,376,713,361,713,342,713,323,728,308,747,308,766,308,781,323,781,342,781,361,766,376,747,376,742,-8,751,-8,751,392,742,392,742,-8]}]]}]; +var en={};en.parse=function(L){var C=new Uint8Array(L),U=null;if(C[0]==80&&C[1]==75){var E=Date.now(),Y=UZIP.parse(C.buffer),U=Y["document.json"]; +U=JSON.parse($.IQ(U,0,U.length));en.AZ(U,Y)}else{var z=cL.parse(L);U=en.Ft(z[2][0][1])}return U};en.AZ=function(L,C){var U=typeof L; +if(U=="string"||U=="number"||U=="boolean")return L;if(L instanceof Array){for(var H=0;H0){var i=Math.min(100,y);v.push(i,0);y-=i}h=new Uint8Array(v)}x=K.NSAttributes instanceof Array?K.NSAttributes:[K.NSAttributes]; +var D={$class:"NSAttributedString",NSString:O,NSAttributes:x};Q.attributedString={_class:"MSAttributedString",archivedAttributedString:D}; +D.NSAttributeInfo={$class:"NSMutableData","NS.data":h};delete Q.storage}return E};en.QC={lb:function(L,C){return L[C+1]<<8|L[C]},i:function(L,C){return L[C+3]<<24|L[C+2]<<16|L[C+1]<<8|L[C]},ZA:function(L,C,U){var E=""; +for(var H=0;H>4,b=k&15,K=null; +T+=1;if([4,5,6,10,12,13].indexOf(P)!=-1&&b==15){var Q=p.xw(L,T);T+=Q.a3;b=Q.G}if(!1){}else if(P==0)K=b==8?!1:b==9?!0:null; +else if(P==1)K=p.xw(L,T-1).G;else if(P==2)K=1<=12&&(r&1)==0){var p=r-13>>1,T=new Uint8Array(p); +cL.hL(L,U,T,0,p);z.push(T);U+=p}else if(r>=13&&(r&1)==1){var p=r-12>>1;z.push(cL.IQ(L,U,p));U+=p}else throw"unknonw type "+r}return z},nd:function(L){if(!(L[18]==1&&L[19]==1&&L[20]==0&&L[21]==64&&L[22]==32&&L[23]==32))throw"unexpected SQL3 header"; +var C={ew:cL.ZA(L,0,15),Bb:cL.lb(L,16),a3T:cL.i(L,24),size:cL.i(L,28),a9X:cL.i(L,32),ad5:cL.i(L,36),ak4:cL.i(L,40),ai_:cL.i(L,44),a6d:cL.i(L,48),akz:cL.i(L,52),adj:cL.i(L,56),a6C:cL.i(L,60),a5u:cL.i(L,64)!=0,a0s:cL.i(L,68),aat:cL.i(L,92),a3R:cL.i(L,96)}; +if(C.Bb==1)C.Bb=65536;if(C.adj!=1)throw"unsupported text encoding "+C.adj;return C},aim:function(L,C){return L[C]<<16|L[C+1]<<8|L[C+2]},a4m:function(L,C){var U=cL.aim(L,C),E=U&8388608; +return E?-(16777215-U+1):U},afs:function(L,C){cL.Qf[0]=L[C];return cL.a9F[0]},xw:function(L,C){var U=cL.Qf; +for(var H=0;H<4;H++)U[H]=L[C+3-H];return cL.a40[0]},sZ:function(L,C){var U=cL.Qf;U[0]=L[C+1];U[1]=L[C]; +return cL.a3Y[0]},lb:function(L,C){return L[C]<<8|L[C+1]},i:function(L,C){return L[C]<<24|L[C+1]<<16|L[C+2]<<8|L[C+3]},a7v:function(L,C){var U=cL.Qf; +for(var H=0;H<8;H++)U[H]=L[C+7-H];return cL.aaS[0]},Lc:function(L,C){var U=C,u=0;while(!0){var E=L[C]; +C++;u=u*128+(E&127);if(E<128)break}return{oe:u,a3:C-U}},ZA:function(L,C,U){var E="";for(var H=0;H2*8192*8192)p++;z.scale(1/p,1/p);this.aod=[L,C,U,E];var p=z.ia();L=Math.round(L*p); +C=Math.round(C*p);U=Math.round(U*p);E=Math.round(E*p);var k=this.Ru,P=this.HV;if(P==null){z.Yt=-L}else{var b=P[2]-P[0]+30,Q=Math.round(U-L)+30; +if(this.eD.x+b+Q>8192){z.Yt=-L;this.eD.x=0;this.eD.y+=this.i0+120;this.i0=0}else{z.Yt+=b;this.eD.x+=b}}z.rv=this.eD.y+(this.a0D?E:-C); +this.i0=Math.max(this.i0,Math.round(E-C));this.HV=[L,C,U,E];k.N.push(k.rJ())};gv.prototype.Kv=function(){var L=this.Ru,C=L.N[L.N.length-1]; +return C};gv.prototype.BJ=function(){var L=JSON.parse(JSON.stringify(gM.H0.default));L.strokeStyleLineAlignment.v.strokeStyleLineAlignment="strokeStyleAlignCenter"; +L.strokeEnabled.v=!1;L.fillEnabled.v=!1;return L};gv.prototype.JE=function(){var L=this.Ru,C=L.wP(); +C.I_("Path "+L.N.length);this.Ru.N.push(C);C.bP|=16;C.add.SoCo={classID:"null",Clr:{t:"Objc",v:c.W._b({h:0,P:0,O:0})}}; +C.add.vmsk=new o.mR;C.add.vstk=this.BJ();return C};gv.prototype.B2=function(L){var C={c:L.crds,Z:L.cmds},U=c.a.n2(C,!1); +c.Y.IL(U,this.BF);return U};gv.a8p=function(L,C){for(var H=0;H=0&&L.N[H].add.lsct!=fI.ya)H--;var E=this.jG;if(E){var Y=new _,z=C;while(z>H){Y=L.N[z].DZ(this.Ru,!1,!0); +z--}U=E.zg(Y)}if(U){this.L1.splice(H,1);L.N.splice(H,1)}else{L.N.push(this.a9C)}this.uN=null}};gv.iH=function(L,C,U){var E,Y; +if(L.length!=null){E="SoFi";var z=JSON.parse(gM.Lq[gM.order.indexOf("SoFi")]);Y={t:"Objc",v:z};Y.v.Clr.v=gv.SI(L)}else{var r=gv.a99(L,C,U); +E="GrFl";Y={t:"Objc",v:r}}return{type:E,G:Y}};gv.a99=function(L,C,U){var E=JSON.parse(gM.Lq[gM.order.indexOf("GrFl")]),Y=E.Grad.v; +Y.Intr.v=0;var z=gv.NZ(L.mat);z.concat(C);var r=new hZ(0,0),p=new hZ(U.d,0),T=L.crds;if(L.typ=="rad"){E.Type.v.GrdT="Rdl"; +var k=.7;r.x=(1-k)*T[0]+k*T[3];r.y=(1-k)*T[1]+k*T[4];p.x=r.x;p.y=r.y;p.x+=Math.max(T[2],T[5])}else{E.Type.v.GrdT="Lnr"; +r.x=T[0];r.y=T[1];p.x=T[2];p.y=T[3];r.x=p.x+.5*(r.x-p.x);r.y=p.y+.5*(r.y-p.y)}r=z.Om(r);p=z.Om(p);c.W.y9(r,p,U,E); +var P=L.grad;c.W.et(P,Y);return E};gv.prototype.PutText=function(L,C,U,E){var Y=C.charCodeAt(0),Q=null; +if(this.JH!=-1&&this.JH!=this.ng)return;if(C.length==0||C.length==1&&(Y==0||Y==8203))return;this.wx(L); +var z=this.Ru,r=L.font,p=gv.NZ(L.ctm);p.concat(this.BF);var T=gv.NZ(r.Tm);T.concat(p);var k=W.o.ia(T),P=new c0(1/k,0,0,-1/k,0,0); +P.concat(T);var b=r.Tfs*k;if(r.Th!=100||r.Trise!=0){console.log(r)}var K=z.N.length-1;while(K>=0&&z.N[K].add.TySh==null)K--; +if(P.O*P.O+P.Z9*P.Z9<.001&&E==null&&K>=0&&z.N[K].add.TySh&&z.N[K].opacity==Math.round(255*L.ca)){var h=z.N[K],x=this.L1[K],O=h.add.TySh.J,y=(O.Yt+x.HW-P.Yt)/b,v=Math.abs(y),i=C.indexOf(" ")==-1,D=O.R==P.R&&O.O==P.O&&O.Z9==P.Z9&&O.J2==P.J2,I=D&&Math.abs(x.km-P.rv)<1e-5&&v<.6,m=P.rv-x.km; +if(I){Q=h;x.HW=P.Yt-O.Yt;if(y>.2&&i&&[".",",","?",":","!"].indexOf(C)==-1)C=" "+C}else if(D&&Math.abs(P.Yt-O.Yt)<1e-5&&0>3]>>7-(H&7)&1)*255; +Y[r]=p;Y[r+1]=p;Y[r+2]=p;Y[r+3]=255}L=Y}return L};gv.prototype.iy=function(L,C,U,E,Y){if(L.length!=C*U*4){var z=iL.lc(L.buffer),r=iL.WS(z); +if(r==null||z=="tga")r=iL.WS("jpg");L=new Uint8Array(r.ER(L,E,Y)[0].data)}return L};gv.prototype.ShowPage=function(){var L=this.Ru; +this.ng++;var C=this.HV;this.hX();var U=L.wP();L.N.push(U);var E=new _(Math.round(this.eD.x),Math.round(this.eD.y),Math.round(C[2]-C[0]),Math.round(C[3]-C[1])); +this.Yj=this.Yj.EU(E);U.eJ(E);U.add.artb.artboardBackgroundType.v=3;U.I_("Page "+this.ng);U.add.lsct=fI.z7; +U.B4="pass";U.bP=24};gv.prototype.Print=function(L){console.log("Print:",L)};gv.prototype.Done=function(){var L=this.Ru; +if(this.ng==1)L.N[L.N.length-1].add.lsct=fI.Qr;L.Re(this.ng);for(var H=0;HQ.length/2){b[k]=Q.split("").reverse().join(""); +var O=z.EngineDict.ParagraphRun.RunArray[k].ParagraphSheet.Properties;O._Direction=1;O.Justification=b5.Ix(O)}}b5.tu(z,b.join("\n"))}}L.pu=!0; +L.d=this.Yj.d;L.v=this.Yj.v;L.buffer=c.F(this.Yj.X()*4)};var fP={};fP.B0=function(L,C,U,E){var Y=!1,z=[L.root],r=L.root.children; +if(L.add.artd){Y=!0;for(var H=0;Hz.length){T.splice(H,1);H--}var K=72/L._Q;for(var H=0; +H>>16&255)/255,(i9>>>8&255)/255,(i9&255)/255]; +var e8=fq[s];c.a.J(e8.c,Y,e8.c);e8=c.a.ai3(e8);U.pth={cmds:e8.Z,crds:e8.c};E.Fill(U)}}else if(Q&&z[3]==!1){var f5=Q.Se,S=Q.J.clone(),fs=new c0(1,0,0,-1,0,0); +fs.concat(S);fs.concat(Y);var bz=b5.xY(f5),dx=new hX(f5,r);for(var H=0;H=0;H--){var Q=gM.order[H];if(Q=="GrFl"||Q=="SoFi")continue; +if(L.add.vmsk&&Q=="FrFX")continue;var K=U[Q],h=H>7||Q=="FrFX";if(h!=p)continue;for(var x=0;xL.length)throw"e";if(z){Y.sub=[];C+=12;var r=Y.g+Y.size; +while(CL.length)throw"e";if(z.Ea=="RIFF"||z.Ea=="LIST"&&(z.g0!="cmpr"&&z.g0!="stlt")){z.sub=[]; +C+=12;var r=z.g+z.size;while(CL.length)throw"e";if(z){Y.sub=[];C+=12;var r=Y.g+Y.size; +while(C=0;H--)e7.og(Q[H],C,U,E)}else if(z=="obj "&&k.G&&k.G.path){b.I_("Object "+U.N.length); +var K=C.Ib[k.G.aao],h=C.nk[k.G.aeA],x=b.getName(),O=K&&K.type!=0,y=O&&K.G!=null?K.G:[0,0,0];b.bP|=16; +b.add.vstk=JSON.parse(JSON.stringify(gM.H0.default));var v=b.add.vstk;v.strokeEnabled.v=!1;b.add.vmsk=new o.mR; +if(h&&h.aeg!=1){v.strokeEnabled.v=!0;v.strokeStyleLineAlignment.v.strokeStyleLineAlignment="strokeStyleAlignCenter"; +v.strokeStyleLineWidth.v.val=h.lineWidth*E.ia();var i=h.color;v.strokeStyleContent.v.Clr.v=c.W._b({h:i[0]*255,P:i[1]*255,O:i[2]*255})}var D=k.G.path; +b.add.vmsk.n=c.a.n2(D,!1);c.Y.IL(b.add.vmsk.n,P);gv.kw(y,b,P,c.Y.JK(b.add.vmsk.n));v.fillEnabled.v=O; +b.Gg();b.cr(U)}else if(z=="obj "&&p){var I=k.G.a52,m=k.G.a9a,d="";b.add.TySh=b5.Es(0,0);var f=P.ia(); +b.add.TySh.J.translate(P.Yt,P.rv);var A=b.add.TySh.Se,g=p.G.aeP;for(var H=0;H=H.data.length)throw"e";var L=0;while(H.data[H.g+L]!=0)L++; +var C=$.ZA(H.data,H.g,L);H.g+=L+1;return C};e7.afQ=function(L){if(L.SX<600)return Math.PI*e7.Jf(L)/1800; +return Math.PI*e7.ts(L)/18e7};e7.ae4=function(L){if(L.SX<1500)return e7.Vx(L);else return e7.HD(L)/254e3}; +e7.Vx=function(L){if(L.SX<600)return e7.Jf(L)/1e3;else return e7.ts(L)/254e3};e7.a3r=function(L){if(L.SX<600)return CRDParser.cX(L); +else return e7.nj(L)};e7.a4F=function(L){if(L.SX<600)return CRDParser.Jf(L);else return e7.ts(L)};e7.sf=function(L,C,U,E){var Y=e7,z=Y.a4z,r=Y.cX,p=Y.nj,T=Y.abN,k=Y.Jf,P=Y.ts,b=Y.HD,Q=Y.Vx,K=Y.ae4,h=Y.afQ,x=Y.a3r,O=Y.a4F; +for(var y=0;y=1300);i.G.a9v=e7.HM(L);i.G.a9W={};var M=p(L);for(var H=0;H1300)L.g+=4;if(v>=1300){if(p(L))L.g+=68;else L.g+=12}else{L.g+=20;if(v>=1e3)L.g+=8;if(p(L))L.g+=8; +L.g+=8}}var i9=p(L);i.G.a6L={};for(var H=0;H=1300)bz+=4;L.g+=bz*fs;var g6=p(L);L.g+=28*g6;if(v>800){var al=p(L); +L.g+=12*al}i.G.c5={};for(var H=0;H=1200)dk*=2; +L.g+=dk;eN.alb=p(L);eN.adY=p(L);if(bj>1){eN.amn=p(L);eN.acJ=p(L);eN.a6p=p(L);eN.aed=p(L);if(v>800)eN.a5z=p(L)}if(bj>2){eN.a3H=p(L); +eN.a8h=p(L);eN.aae=p(L);eN.agB=p(L);eN.a4a=p(L)}i.G.c5[bE]=eN}}else if(i.Ea=="LIST")e7.sf(L,i.sub,U,E+1); +else if(i.Ea=="txsm"){i.G={};if(v<600)throw"e";if(v<700)throw"e";if(v>=1600)throw"e";if(v>=1500)L.g+=37; +else L.g+=36;if(p(L)){if(v<800)L.g+=32}if(v<800)L.g+=4;i.G.ajj=p(L);i.G.aeP=[];L.g+=48;if(v>=800){if(p(L)){L.g+=32; +if(v>=1300)L.g+=8}}if(v>=1500)L.g+=12;var bj=p(L),hj=1,iN=!1;if(!bj){if(v>=800)L.g+=4;if(v>800)L.g+=2; +if(v>=1400)L.g+=2;L.g+=24;if(v<800)L.g+=8;hj=p(L)}for(var R=0;R=1300&&bj)L.g++; +L.g++;var Z=p(L),ch=[];for(H=0;H=800)hr=z(L);var eN={}; +if(d2&1){eN.a4q=r(L);var fv=r(L);if(fv)eN.ada=fv}if(d2&2)L.g+=4;if(d2&4)eN.anD=Q(L);if(d2&8)L.g+=4;if(d2&16)L.g+=4; +if(d2&32)L.g+=4;if(d2&64){eN.alb=p(L);if(v>=1500)L.g+=48}if(d2&128){eN.adY=p(L)}if(hr&8){if(v>=1300){var f3=p(L); +if(L.g+f3*2>=L.data.length){iN=!0;break}L.g+=f3*2}else L.g+=4}if(hr&32){var dp=z(L);if(dp)L.g+=52}if(hP==2)if(v>=1300)L.g+=48; +ch.push(eN)}if(iN){break}var go=p(L);if(L.g+go*4>L.data.length)break;var d6=[];for(H=0;H=1200)iB=T(L)&4294967295;else iB=p(L);d6[H]=iB>>16|iB&1}var hS=go;if(v>=1200)hS=p(L);var eF=e7.NA(L); +i.G.aeP.push({a5O:dK,text:eF,c5:ch})}}else if(i.Ea=="font"){var bQ=r(L),iP=r(L);L.g+=14;var d8=e7.NA(L); +i.G={id:bQ,a0i:iP,name:d8}}else if(["IKEY","ICMT","pfrd","bcfg"].indexOf(i.Ea)!=-1){}else if(i.Ea=="flgs")i.G=p(L); +else if(i.Ea=="bbox"){var a6=Q(L),am=Q(L),fj=Q(L),dX=Q(L);i.G=new _(a6,am,fj-a6,dX-am)}else if(i.Ea=="fild"){var gc=p(L),dz=0,cQ; +if(v>=1300){L.g+=4;dz=r(L);L.g+=2}var gE=r(L);if(gE==0){}else if(gE==1){L.g+=v>=1300?13:2;cQ=e7.FJ(L)}else if(gE==2){L.g+=v>=1300?8:2; +var fi=z(L),dB=0;if(v>=1300){L.g+=17;dB=k(L)}else if(v>=600){L.g+=19;dB=P(L)}else{L.g+=11;dB=k(L)}var bp=h(L),ai=.5+O(L),hu=.5+O(L)-.5; +if(v>=600)L.g+=2;var bP=x(L)&255,hw=z(L)/100;L.g++;var gQ=x(L)&65535;if(v>=1300)L.g+=3;var gp=[];for(var H=0; +H=1300){if(dz==158||v>=1600&&dz==150)L.g+=26;else L.g+=5}var iX=x(L)/100; +if(v>=1300)L.g+=3;gp.push([iX,aS])}cQ={typ:fi==1?"lin":"rad",crds:[ai-Math.cos(bp)/2,hu-Math.sin(bp)/2,ai,hu],grad:gp,mat:[1,0,0,1,0,0]}}else console.log("Unknown fill type",gE); +i.G={id:gc,type:gE,G:cQ}}else if(i.Ea=="outl"){var dW=p(L);if(v>=1300){var i7=0,i5=0;while(i7!=1){L.g+=i5; +i7=p(L);i5=p(L)}}var fM=r(L),ei=r(L),bu=r(L);if(v<1300&&v>=600)L.g+=2;var hG=Q(L),fb=r(L)/100;if(v>=600)L.g+=2; +var iJ=h(L);if(v>=1300)L.g+=46;else if(v>=600)L.g+=52;var cQ=e7.FJ(L,dW==270963208||dW==276198e3,dW); +i.G={id:dW,aeg:fM,a0W:ei,a4J:bu,lineWidth:hG,color:cQ}}else if(i.Ea=="mcfg"){if(1300<=v)L.g+=12;else if(900<=v)L.g+=4; +else if(600<=v&&v<700)L.g+=28;var h0=0,hM=0;if(v<400)throw"e";else{h0=Q(L);hM=Q(L)}i.G={a2b:new hZ(h0,hM)}}else if(i.Ea=="loda"){var F=L.g,e0=x(L),fC=x(L),cw=x(L),aD=x(L),d7=x(L),az=[],gb=[]; +L.g=F+cw;for(var H=0;H=0;H--)gb[H]=x(L);i.G={};for(var H=0; +H=1300)L.g+=8; +var hE=r(L);if(hE==8){var ep,h4,a6,aE,bK,am;if(v>=600)L.g+=6;if(v>=500){ep=b(L);h4=b(L);a6=b(L)/(v<600?1e3:254e3); +aE=b(L);bK=b(L);am=b(L)/(v<600?1e3:254e3)}else throw"e";i.W1=new c0(ep,aE,h4,bK,a6,am)}else console.log(hE)}}else if(!1){console.log(i); +var aF=Math.min(i.size,32);console.log($.l9(data,i.g,aF));console.log($.ali(data,i.g,aF))}}};e7.HM=function(L,C){var U=e7.nj,E={},Y=U(L); +for(var H=0;H=500){r=E(L);if(r==1&&z>=1300)r=25;if(r==25||r==30){var T=0;if(r==30){r=25;T=30}else{T=E(L);L.g+=4}var k=E(L),P=E(L)}else if(r==14)throw"e"; +else{L.g+=6;p=Y(L)}}else throw"e";var b=[];if(r==2||r==9||r==17){var Q=[p>>>0&255,p>>>8&255,p>>>16&255,p>>>24&255]; +if(r==2)for(var H=0;H<4;H++)Q[H]=Math.round(255*Q[H]/100);for(var H=0;H<4;H++)Q[H]/=255;b=UDOC.C.cmykToRgb(Q)}else if(r==1||r==5){b=[p>>>0&255,p>>>8&255,p>>>16&255]; +for(var H=0;H<3;H++)b[H]=b[H]/255}else console.log("Unknown color model "+r,p,p.toString(16));return b}; +var bI=function(){var L,C,U=new ArrayBuffer(4),E=new Uint8Array(U),Y=new Uint32Array(U),z=new Float32Array(U); +function r(Q,K){for(var h=0;h>>0}function T(Q,K,h,x,O){L=Q;C=K;var y=x[0]=="mesg",v=x[2],i={},D=1,I=y?1e9:v.length; +while(D<=I){var m=D;if(y){m=p();if(m==0)break}var f=r(v,m),A=f[2],d=f[1]==1,g=d?p():1,X=new Array(g); +if(A==3){if(!d)throw"e";X=L.slice(C,C+g);C+=g}else for(var H=0;H>>1):R>>>1}else if(A==7)n=p();else if(A==9){if(L[C]==0){n=0; +C++}else{E[0]=L[C];E[1]=L[C+1];E[2]=L[C+2];E[3]=L[C+3];var l=Y[0];Y[0]=l<<23|l>>>9;n=z[0];C+=4}}else if(A==11){var w=k(L,C); +n=w[0];C+=w[1]+1}else throw A}else{var V=h[A>>>1];if(V[0]=="enum"){var F=L[C++];if(F>127)throw"e";n=V[2][F]}else{var Z=T(L,C,h,V,O+1); +n=Z[0];C=Z[1]}}X[H]=n}i[f[3]]=d?X:X[0];D++}return[i,C]}function k(Q,K){var h=K;while(Q[h]!=0)h++;return[$.IQ(Q,K,h-K),h-K]}function P(Q,K){var h=K; +while(Q[h]!=0)h++;for(var H=K;H127)throw"e";return $.ZA(Q,K,h-K)}function b(Q){L=Q;C=1; +var K=[];while(C2)throw"e";var v=p(),i=[]; +for(var H=0;HE?1:-1}; +fG.SW=function(L){for(var H=1;H1.999*Math.PI)b=c.Y.tD.vm(0,0,T,k,0);else b=c.Y.tD.ah$(T/2,k/2,k/2,h,x);if(O!=0&&O!=1){var y=o.mR.Xu(b).slice(3); +y.reverse();for(var H=0;H>>8&255)<<8|r>>>16&255; +new Uint32Array(z.buffer).fill(p)}function E(z,r){z=new Uint8Array(z);var p=8,T,k={};while(p>>24!=0){var m=r.wP();m.I_("Background");r.N.push(m);m.rect=new _(0,0,i,D); +m.buffer=c.F(m.rect.X()*4);U(m.buffer,I)}var f=T.LYL.LAY;for(var H=f.length-1;H>=0;H--)Y(f[H],r,null,k); +r.pu=!0}function Y(z,r,p,T){var k=r.wP();if(z.CLL){k.I_(z.LNM);r.N.push(r.rJ());var P=z.CLL.CEL.ELM; +for(var H=P.length-1;H>=0;H--)Y(P[H][1],r,P[H][0],T);k.add.lsct=fI.Qr;k.B4="pass";k.bP=24}else if(p=="IMG"){k.I_(z.OBN); +var b=z.TSZ,Q=z.WPX,K=z.HPX,h=z.TIL,O=0;k.rect=new _(z.XLC,z.YLC,Q,K);var x=k.rect.clone();x.x=x.y=0; +k.buffer=c.F(Q*K*4);for(var y=0;y>>16&255)/255,(g>>>8&255)/255,(g>>>0&255)/255]};var X=z.RIT-z.LFT,n=z.BOT-z.TOP; +b5.Em(A,0,f.length,d);b5.B$(A,1);b5.If(A,[0,0,X,n])}else console.log("unknown layer type",p);r.N.push(k)}return E}(); +function iL(){}iL.QK={aeX:["PNG","JPG","SVG","GIF","PDF"],amP:"WEBP BMP TIFF ICO DDS TGA PPM RAW EMF DXF".split(" ")}; +iL.lc=function(L){if(!(L instanceof ArrayBuffer)){console.log("Input is not ArrayBuffer")}var C=new Uint8Array(L),U=iL.V0,E,Y=0,z=C.length-1; +if(U(C,[239,187,191]))Y=3;while(Y")!=-1)E="icc";else E="svg"}if(U(C,[60,115,118,103],Y))E="svg"; +if(U(C,[60,33,100,111],Y)||U(C,[60,33,68,79],Y)){if($.r1(C," \t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",r=" "+z+""; +if(L==1)r+=""+""+""; +r+=""+""+""; +var p=new Uint8Array(r.length);$.mW(r,p,0);var T="data:image/svg+xml;base64,"+iL.q4(p.buffer);return{GE:T,_:new _(0,0,128,128),Nb:new hZ(64,64)}}; +iL.q4=function(L){var C=new Uint8Array(L),U="";for(var H=0;H>3)]; +f=f>>7-(H&7)&1;var A=D*P+m<<2;h[A]=h[A+1]=h[A+2]=(1-f)*255;h[A+3]=255}}if(E=="P5")for(var H=0;H>>16);var P=new Uint8Array(T.memory.buffer),b=T.malloc(E);P.set(new Uint8Array(L),b); +var Q=T.malloc(4),K=T.malloc(4),u=T.malloc(4),h=T.stbi_load_from_memory(b,E,Q,K,u,4);T.free(b);T.free(Q,K,u); +T.free(h);var x=P.slice(h,h+r*4);return x};(function(){var L=fZ.get("wasm/jpg").buffer;if(window.WebAssembly==null)window.alert("Your browser is too old. Please, update it."); +WebAssembly.instantiate(L).then(function(C){iL.X_.Pm=C})}());iL.X_.aR=function(L,C,U,E){if(E==null)E=[70]; +var Y=L[0],z=new Uint8Array(Y[0]);if(c.Db(z)){var r=new Uint8Array(z.length),p=new _(0,0,C,U);c.n0(r,4294967295); +c.Q.Kj("norm",z,p,r,p,p,1);z=r}var T=new Uint8Array(iL.AG(z.buffer,C,U,"jpeg",E[0]/100));if(Y[2]!=null){var k=iL.X_.TN(T)[224][0]+2; +k+=9;T[k]=1;$.OH(T,k+1,Y[2]);$.OH(T,k+3,Y[2])}if(Y[3]!=null&&E[1]==!0&&Object.keys(Y[3]).length!=0){var P=0,b=0,Q=0,K=bd.AQ(Y[3]),h=new Uint8Array(UTIF.encode([K])),x="http://ns.adobe.com/xap/1.0/",i=0,m=0,X=20; +P=4+6+h.length;var O=bd.BV(Y[3]),y=$.RK(O);b=4+x.length+1+y.length;var v=bd.agM(Y[3]);for(var H=0;H15e7||T==0||T==2){var k=new PDFJS.JpegImage;k.parse(L);var P=k.getData({width:Y,height:z,forceRGB:!0,isSourcePDF:U}),p=c.F(r*4); +for(var H=0;H1&&D<20)y=c.raw.u6(D,Y,z)}if(E.xmp){O=bd.QL(E.xmp,O)}var I=C[237],m=[],f=[]; +if(I){var A=new Uint8Array(65536),d=0,g=0;for(var H=0;HA.length){var w=new Uint8Array(A.length*2); +w.set(A);A=w}var V=new Uint8Array(L.buffer,g,l);A.set(V,d);d+=l}g=0;L=A;while(g>>1)*Y+iB>>>1),eF=bj[hS],bQ=bj[hS+(r>>>2)]; +bz[b]=bz[b+1]=bz[b+2]=eF;bz[b+3]=255;go[b]=go[b+1]=go[b+2]=bQ;go[b+3]=255}fq.push({bl:new _(0,0,Y,z),data:bz.buffer},{bl:new _(0,0,Y,z),data:go.buffer})}else if(bE=="edof"){var D=bj[8+7]; +console.log(D.toString(16));var g=8+16,iP=$.PJ(bj,g),d8=$.PJ(bj,g+2),r=iP*d8;g+=4;g+=32+16;var a6=c.F(r*4); +for(var H=0;H1){var dX=fq[0].bl; +fq[0].Qz="Main";for(var H=1;H>>3)]>>>7-(i&7)&1,I=D*255; +O[P]=I;O[P+1]=I;O[P+2]=I;O[P+3]=255}}return[{bl:new _(0,0,r,z),data:O.buffer}]}else{var K=new PDFJS.JpxImage; +K.parse(L);var r=K.width,z=K.height,m=K.tiles,f=K.componentsCount,A=new Uint8Array(r*z*4),d=new _(0,0,r,z); +for(var K=0;K>>1,K.y>>>1,K.width-1,K.height-1,L[H][1]]; +for(var x=0;x<5;x++)r(p,T+3*x,h[x]);T+=15;p.bF(T,1);p.data[T]=1-Q.blend<<1|Q.dispose;T++;var O=new Uint8Array(iL.AG(Q.img.buffer,K.width,K.height,"webp",1)),y=c3.Vu(O.buffer).sub,v=$.ZA(O,12,4); +if(v!="VP8L"&&v!="VP8 "&&v!="VP8X")throw"e";var i=v=="VP8 "?0:v=="VP8L"?12:30,D=O.length-i;p.bF(T,D); +for(var x=0;x>>14&(1<<14)-1)+1}else throw"e"; +var K=[U(E,L,{g:0,size:C.length},P,b)];return K}var h=k.g,P=1+($.Nl(C,h+4)&16777215),b=1+($.Nl(C,h+7)&16777215),x=[],O=new _(0,0,P,b),y=c.F(P*b*4); +for(var H=0;H>>1==0)c.Q.Kj("norm",A,I,y,O,I,1);else c.La(A,I,y,O);x.push({Qz:"_a_"+x.length+","+m,bl:O.clone(),data:y.buffer.slice(0)}); +if((d&1)==1){c.n0(A,0);c.La(A,I,y,O)}}return x};iL.cv.a8J=function(L,C,U,E,Y){var z=iL.cv.exp,r=5e6+2*U.size+E*Y*10,p=z.memory,T=p.buffer.byteLength; +if(T>>16)+1)}var k=new Uint8Array(p.buffer),P=z.malloc(U.size);k.set(new Uint8Array(C,U.g,U.size),P); +var b=z.malloc(8),Q=z.WebPDecodeARGB(P,U.size,b,b+4),K=$.Nl(k,b),h=$.Nl(k,b+4),x=K*h*4,O=c.F(x);for(var H=0; +H256){K=null; +break}}}if(K){O=1;while(1<>>16,g=K[H]>>>8&255,X=K[H]&255;f[A]=d;f[A+1]=g;f[A+2]=X}m+=I}D.bF(m,i*k); +if(O==24)for(var n=0;n>>1)]|=V<<4-(l&1)*4}}else if(O==1)for(var n=0; +n>>3)]|=V<<7-(l&7)}}m+=i*k+2; +return D.data.slice(0,m).buffer}function C(p){p=new Uint8Array(p);if($.Nl(p,0)==40)return[U(p.buffer,0)]; +var T=0,k=$.ZA(p,T,2);T+=2;if(k!="BM"){alert("Unsupported BMP format: "+k);return}var P=$.Nl(p,T);T+=4; +T+=4;var b=$.Nl(p,T);T+=4;return[U(p.buffer,T,b)]}function U(p,T,k){p=new Uint8Array(p);var P=$.Nl(p,T),b=z(p,T+4); +if(b.wA!=1)alert("unsupported number of color planes: "+b.wA);if(b.bS!=0&&b.bS!=1&&b.bS!=2&&b.bS!=3){alert("Unsupported BMP compression: "+b.bS); +return}T+=P;var Q=T,K=p;if(k==null)k=T;if(b.bS==1||b.bS==2){var h=Y(p,k,b);b.k7=8;p=h;k=0}var x=4*Math.floor((b.k7*b.aU+31)/32),O=b.aU,y=Math.abs(b.fg),v=new Uint8Array(O*y*4); +v.fill(255);if(b.k7==32)for(var i=0;i>>11)*(255/31); +v[m+1]=(f>>>5&63)*(255/63);v[m+2]=(f&31)*(255/31)}}else if(b.k7==8)for(var i=0;i>1)];A=A>>4-4*(I&1);A=A&15; +v[m]=K[Q+4*A+2];v[m+1]=K[Q+4*A+1];v[m+2]=K[Q+4*A+0]}}else if(b.k7==1)for(var i=0;i>3)];d=d>>7-(I&7);d=d&1;v[m]=K[Q+4*d+2];v[m+1]=K[Q+4*d+1]; +v[m+2]=K[Q+4*d+0]}}else throw"Unknown bit depth "+b.k7;if(b.fg<0){var g=new Uint32Array(v.buffer),X=y>>>1; +for(var i=0;i>>4-((H&1)<<2)&15}function Y(p,T,k){var P=k.aU,b=Math.abs(k.fg),Q=new Uint8Array(P*b),K=0,h=0,H=0; +while(h0){if(k.k7==4)for(H=0;H>>1)],H)}v=Math.ceil(O/2)}else{for(H=0; +H127?255:0;if(k==0)T[H]=T[H+1]=T[H+2]=0}Y.push(T.buffer); +z.push(L[p][1])}var P=Math.round(2+254*E[0]/100),b=UPNG.encode.compress(Y,C,U,P,[!0,!1,!1,8,!1]),Q=b.plte,K=new Uint8Array(4),h=new Uint32Array(K.buffer); +for(var H=0;H256||U>256){alert("Maximum ICO size is 256x256 px. Will be cropped.",4e3); +var Y=Math.min(C,256),z=Math.min(U,256),r=new _(0,0,Y,z),p=c.F(r.X()*4),T=new _(0,0,C,U),k=new Uint8Array(L[0][0]); +c.La(k,T,p,r);L[0][0]=p.buffer;C=Y;U=z}var P=new d0,b=0,Q=E&&E[0]==!0;$.ux(P,b,0);b+=2;$.ux(P,b,Q?2:1); +b+=2;$.ux(P,b,1);b+=2;var K=new Uint8Array(iL.WS("png").aR(L,C,U));P.bF(b,16);P.data[b]=C==256?0:C;b++; +P.data[b]=U==256?0:U;b++;b+=2;$.ux(P,b,Q?Math.round(C/2):1);b+=2;$.ux(P,b,Q?Math.round(U/2):32);b+=2; +$.kE(P,b,K.length);b+=4;$.kE(P,b,6+16);b+=4;P.bF(b,K.length);for(var H=0;HK)K=v;h+=v;x++}}Q=1/256*65535/(.5*K+.5*(2*h/x))}var i=[]; +for(var H=0;H3)P+=4;T.opacity=Math.round(255*U[P]/100);P++;T.Qs(U[P]!=0);P++;T.B4="norm,lddg,norm,dark,diff,norm,hLit,norm,norm,lite,mul ,over,scrn,fsub".split(",")[U[P]]; +P++;P++;if(E>3){var K=$.lb(U,P);P+=2;if(K!=0){var h=JSON.parse($.IQ(U,P,K));P+=K;var x=h.text,O=h.textSettings,y=O.font,v=O.size,i=O.padding,D=parseInt(O.color.slice(1),16); +T.add.lnsr="rend";T.add.TySh=b5.Es(0,0);T.add.TySh.uv=new _(0,0,100,100);T.add.TySh.J=new c0(1,0,0,1,T.rect.x+i,T.rect.y+i); +var I=T.add.TySh.Se;b5.B$(I,1);b5.If(I,[0,0,T.rect.d-i*2,T.rect.v]);b5.X$(I,0,x);var m=b5.L3(I,0,1); +m.LI.FontSize=v;m.LI.FillColor={Type:1,Values:[1,(D>>>16&255)/255,(D>>>8&255)/255,(D>>>0&255)/255]}; +if(O.bold)y+="-Bold";b5.yk(m,y);m.s6.Justification=["left","right","center"].indexOf(O.align);b5.Em(I,0,x.length,m)}}var f=$.i(U,P); +P+=4;if(f!=T.rect.X()*4)throw"e";T.buffer=c.F(f);if(E>3){A=0;d=1;g=2;X=3}for(var H=0;H3){z+=k; +continue}var R=U[P];P++;var l=$.lb(U,P);P+=2;if(n!=0){T.r=new o.LF;T.r.rect=T.rect.clone();T.r.channel=c.F(T.rect.X()); +for(var H=0;H>>2]=U[P+H+1];P+=n}if(R!=0){var w=JSON.parse(gM.default);T.add.lmfx=w; +for(var H=0;H>>4<<1,f=P+b,A=c.F(m*p*f),n,R,l;b8.d_(E,Y,i.size,A,0,A.length); +var d=P-2,g=(1<>>3]>>>7-(F&7)&1;w|=Z<>>P,w=w&(1<>>d!=0){var e=w>>>d,N=(w&g)*X;if(e==1)l=N;else if(e==2)n=N;else if(e==3)R=N}else{var N=K+w*3; +n=E[N+0];R=E[N+1];l=E[N+2]}}else{n=w>>>0&255;R=w>>>8&255;l=w>>>16&255}z[a+0]=n;z[a+1]=R;z[a+2]=l;z[a+3]=255}}}return[{bl:new _(0,0,r,p),data:z.buffer}]}; +iL.OI={};iL.OI.Y9=!1;iL.OI.aR=function(L,C,U,E){var Y=L[0][4],z=new Uint8Array(L[0][0]),r=2,p=Y?!0:!1,T=p?4:3,k=new Uint8Array(C*U*T); +for(var P=0;P>>4,O=$.ZA(C,18,E),y=c.F(b*Q*4),U=18+E+(p*T>>>3),v=new Uint8Array(C.buffer,U); +if(z>3){var i=0,D=C,I=new Uint8Array(b*Q*K>>>3),m=U,f=0,A=C.length,d=K>>>3;while(f>>3;var X=new Uint8Array(4),n=iL.OI.aev; +for(var R=0;R>>3; +if(z==1){var N=0;if(K==8)N=v[e];else throw"e";n(C,18+E+r+(N*T>>>3),T,X);F=X[0];Z=X[1];M=X[2];a=X[3]}else if(z==2){n(v,e,K,X); +F=X[0];Z=X[1];M=X[2];a=X[3]}else if(z==3){if(K==8)F=Z=M=v[e];else throw"e"}var J=V*4;y[J]=F;y[J+1]=Z; +y[J+2]=M;y[J+3]=a}var X={bl:new _(0,0,b,Q),data:y.buffer,Qz:O};if(c.Db(y)){var s=c.F(b*Q);c.wH(y,s,3); +c.n0(y,4278190080,16777215);X.vI=[s]}return[X]};iL.OI.aev=function(L,C,U,E){var Y,z,r,p=255;if(U==24||U==32){r=L[C]; +z=L[C+1];Y=L[C+2];if(U==32)p=L[C+3]}else if(U==16){var T=L[C+1]<<8|L[C+0];Y=T>>>10&31;z=T>>>5&31;r=T>>>0&31; +Y=Math.round(Y*(255/31));z=Math.round(z*(255/31));r=Math.round(r*(255/31))}else throw"e";E[0]=Y;E[1]=z; +E[2]=r;E[3]=p};iL.wz={};iL.wz.ER=function(L){var C=new Uint8Array(L),U=0,E=112,Y=42,z=$.Nl,P;U+=8;var r=C[U]; +U++;if(r!=Y)throw"e";var p=z(C,U);U+=4;var T=$.Fz(C,U,p);U+=p*2;var k=[];while(U0)k.push(U+K);U+=K+b}var h=new DOMParser,x=h.parseFromString(T,"image/svg+xml").firstChild.firstChild,O=[]; +iL.wz.Pc(x,C,k,O);return O};iL.wz.Pc=function(L,C,U,E){var Y=L.firstChild.firstChild;if(Y.tagName=="Image"){var z=Y.getElementsByTagName("ImageDescription")[0],r=z.children[0].children,p=z.children[1].children,T=U.shift(),k=[]; +for(var H=0;H3)k[2]*=k.pop(); +var P=r.length,b=k[0],Q=k[1],K=k[2],h=parseInt(p[0].getAttribute("BytesInc"));for(var x=0;x>>2);else throw h; +if(y!=3)c.Wn(v,O,y);if(P==1){c.Wn(v,O,1);c.Wn(v,O,2)}T+=b*Q*h}E.push({bl:new _(0,0,b,Q),data:O.buffer})}}else{var D=L.children,I=0; +while(I>>2); +for(var H=0;Hb)b=y}var v=c.F(T*4),i=1/b;for(var D=0;D>>7)}else if(f==305){var d=Math.round(Math.sqrt(A)),g=[]; +for(var X=0;X>>3; +fq[S]|=e8>>>16;fq[S+1]|=e8>>>8;fq[S+2]|=e8}var J=K*8/(y*v);if(J==16)for(var H=0;H>>12|(f5&4095)<<12; +V[H]=f5>>>16&255;V[H+1]=f5>>>8&255;V[H+2]=f5&255}if(w)V=iL.Af.a2t(V,y,v);var dx=w?2:1;y*=dx;O.t256=[y]; +O.t257=[v];O.t258=[F];O.t50719=[D[1],D[0]*dx];O.t50720=[D[3],D[2]*dx];O.width=y;O.height=v;O.data=new Uint8Array(V.buffer); +return[O]};iL.Af.a2t=function(L,C,U){L=new Uint16Array(L.buffer);var E=new Uint16Array(C*U*2);for(var Y=0; +Y>>1)+z&1)==0){E[p]=T; +E[p+2*C+1]=L[r+1]}else{E[p]=L[r-1];E[p+2*C+1]=T}}return E};iL.$A={};iL.$A.WH=!0;iL.$A.aR=function(L,C,U,E){var Y=new Uint8Array(L[0][0]),z=C*U,r=[1,3,4][E[0]],p=8+8*E[1],T=E[2]; +if(r==1){var k=new Uint8Array(C*U);c.wH(Y,k,0);Y=k}if(r==3){var k=new Uint8Array(C*U*3);for(var H=0; +H>>8;k[H*2+1-T]=K&255}Y=k}return Y.buffer}; +iL.pW={};iL.pW.ER=function(L,C){function U(T){return~~(.5+c.UE(Math.max(0,Math.min(1,T)))*255)}var E=EXRLoader.parse(L),Y=E.width,z=E.height,r=c.F(Y*z*4); +for(var p=0;p>>31==1){y=y&16777215}if(H>>31==1){v=v&268435455;D=Y(r,p,p+v,I,P)}else{var m=C(r,p+v),f=C(r,p+v+4),A=C(r,p+v+8),d=C(r,p+v+12); +if(d!=0)throw"e";if(mP[0]+P[1])throw"e";var g=P[2]+m-P[0];D=r.slice(g,g+f);var X=iL.lc(D.buffer); +if(X&&["bmp","png","ico"].indexOf(X)!=-1){var n=iL.WS(X);if(!n.Y9){var R=null;try{R=n.ER(D.buffer)}catch(gS){}if(R){R[0].Qz=I[1]; +E.push(R[0])}}}else if(X)console.log(X)}O[i]=D;T+=8}return O}function z(r){E=[];var p=new Uint8Array(r),T=0,k=L(p,T); +T+=2;T+=58;var P=C(p,T);T+=4;T=P;var b=U(p,T,4);T+=4;var Q=L(p,T);T+=2;var K=L(p,T);T+=2;var h=C(p,T); +T+=4;var x=C(p,T);T+=4;var O=C(p,T);T+=4;var y=L(p,T);T+=2;var v=L(p,T);T+=2;T+=y;var i={};for(var H=0; +H>>C)+(L>>>C)&1)*51};c.Xo=function(L){var C=L.toString(16); +while(C.length<6)C="0"+C;return C};c.hA=function(L){return parseInt(L,16)};c.uW=function(L){return.3*L.h+.59*L.P+.11*L.O}; +c._a=function(L){return Math.max(L.h,L.P,L.O)-Math.min(L.h,L.P,L.O)};c.GZ=function(L,C,U){return.3*L+.59*C+.11*U}; +c.aiA=function(L,C,U){return Math.max(L,C,U)-Math.min(L,C,U)};c.JR=function(L,C){var U=C-L,E=Math.abs(U),Y=U-1,z=U+1; +if(Math.abs(Y).5?T/(2-(E+Y)):T/(E+Y);switch(E){case L:z=(C-U)/T+(C1)U-=1;if(U<1/6)return L+(C-L)*6*U;if(U<1/2)return C;if(U<2/3)return L+(C-L)*(2/3-U)*6; +return L};c.t2=function(L,C,U){var E=Math.max(L,C,U),Y=Math.min(L,C,U),z,r,p=E,T=E-Y;r=E==0?0:T/E;if(E==Y)z=0; +else{switch(E){case L:z=(C-U)/T+(C.008856?Math.pow(U,1/3):(903.3*U+16)*(1/116)}return[L,C]}(); +c.E8=function(L,C,U){var E=c.FN[0],Y=c.FN[1];L=E[~~(L*(1e3/255))];C=E[~~(C*(1e3/255))];U=E[~~(U*(1e3/255))]; +var z=c.hS.ahW,r=z[0]*L+z[1]*C+z[2]*U,p=z[4]*L+z[5]*C+z[6]*U,T=z[8]*L+z[9]*C+z[10]*U;r=r*(100/96.72); +p=p*(100/100);T=T*(100/81.427);return c.TP(r,p,T)};c.TP=function(L,C,U){var E=c.FN[1],Y=E[~~(L*1e3)],z=E[~~(C*1e3)],r=E[~~(U*1e3)]; +return{QD:116*z-16,R:500*(Y-z),O:200*(z-r)}};c.BR=function(L,C,U){var E=903.3,Y=.008856,z=(L+16)/116,r=z*z*z,p=z-U/200,T=p*p*p,k=C/500+z,P=k*k*k,b=T>Y?T:(116*p-16)/E,Q=r>Y?r:(116*z-16)/E,K=P>Y?P:(116*k-16)/E,h=K*96.72,x=Q*100,O=b*81.427,y=c.hS.IY(c.hS.Bq,[h/100,x/100,O/100,0]); +for(var H=0;H<4;H++)y[H]=Math.max(0,Math.min(255,c.UE(y[H])*255));return{h:y[0],P:y[1],O:y[2]}};c.WA=function(L,C,U,E,Y){var z=L.QD,r=L.R,p=L.O,T=(zY){if(E>z){if(Y>z){U.h=C; +U.P=c.hJ(E,Y,z,C);U.O=0}else{U.h=C;U.O=c.hJ(E,z,Y,C);U.P=0}}else{U.O=C;U.h=c.hJ(z,E,Y,C);U.P=0}}else{if(Ez){U.P=C; +U.O=c.hJ(Y,z,E,C);U.h=0}else{U.O=C;U.P=c.hJ(z,Y,E,C);U.h=0}}else{U.P=C;U.h=c.hJ(Y,E,z,C);U.O=0}}};c.a2W=function(L){var C=L.h,U=L.P,E=L.O,Y=c.GZ(C,U,E),u=Math.min(C,U,E),z=Math.max(C,U,E); +if(u<0){var r=Y/(Y-u);C=Y+(C-Y)*r;U=Y+(U-Y)*r;E=Y+(E-Y)*r}if(z>1){var r=(1-Y)/(z-Y);C=Y+(C-Y)*r;U=Y+(U-Y)*r; +E=Y+(E-Y)*r}L.h=C;L.P=U;L.O=E};c.Fy=function(L,C,U){var E=L.length,Y=.3,z=.59,r=.11;if(U){Y=U[0];z=U[1]; +r=U[2]}for(var H=0;H>2]=~~(L[H+0]*Y+L[H+1]*z+L[H+2]*r+.5)};c.EI=function(L,C){var U=C.length; +for(var H=0;H>>2];C[H]=E;C[H+1]=E;C[H+2]=E}};c.qF=function(L,C){var U=L.R,E=L.h,Y=L.P,z=L.O,r=Math.min(L.R.length,C.buffer.byteLength>>>2),p=4*Math.floor(r/4),T=new Uint32Array(C.buffer),k=new Uint32Array(U.buffer),P=new Uint32Array(E.buffer),b=new Uint32Array(Y.buffer),Q=new Uint32Array(z.buffer); +for(var H=0;H>2],h=Q[H>>2],x=b[H>>2],O=P[H>>2];T[H]=K<<24|(h&255)<<16|(x&255)<<8|O&255; +T[H+1]=(K&65280)<<16|(h&65280)<<8|x&65280|(O&65280)>>>8;T[H+2]=(K&16711680)<<8|h&16711680|(x&16711680)>>>8|(O&16711680)>>>16; +T[H+3]=K&4278190080|(h&4278190080)>>>8|(x&4278190080)>>>16|(O&4278190080)>>>24}for(var H=p;H>>2),p=4*Math.floor(r/4),T=new Uint32Array(L.buffer),k=new Uint32Array(U.buffer),P=new Uint32Array(E.buffer),b=new Uint32Array(Y.buffer),Q=new Uint32Array(z.buffer); +for(var H=0;H>2]=K&255|(h&255)<<8|(x&255)<<16|O<<24; +b[H>>2]=(K&65280)>>8|h&65280|(x&65280)<<8|(O&65280)<<16;Q[H>>2]=(K&16711680)>>16|(h&16711680)>>8|x&16711680|(O&16711680)<<8; +k[H>>2]=K>>>24|h>>>24<<8|x>>>24<<16|O&4278190080}for(var H=p;H>0&255;Y[H]=y>>8&255; +z[H]=y>>16&255;U[H]=y>>24&255}};c.wH=function(L,C,U){var E=new Uint8Array(L.buffer),Y=Math.min(E.length/4,C.length); +for(var H=0;H>>2];E[(H<<2)+U]=r&255;E[(H<<2)+U+4]=r>>>8&255;E[(H<<2)+U+8]=r>>>16&255;E[(H<<2)+U+12]=r>>>24; +H+=4}while(H>>2,L=new Uint32Array(L.buffer,0,E),C=new Uint32Array(C.buffer,0,E); +C.set(L)};c.cg=function(L,C){var U=L.buffer.byteLength,E=C.buffer.byteLength,Y=new Uint32Array(L.buffer,0,U>>2),z=new Uint32Array(C.buffer,0,E>>2); +if(U!=E)return!1;var r=Y.length;for(var H=0;H=2&&E.v>=2){var Y=c.CE(U,E); +L.push(Y.eB,Y.rect);U=Y.eB;E=Y.rect}};c.Zl=function(L){var C=L.length,U=L[C-2],E=L[C-1];while(E.d>=2&&E.v>=2){var Y=c.SJ(U,E); +L.push(Y.eB,Y.rect);U=Y.eB;E=Y.rect}};c.CE=function(L,C,U){var E=C.d,Y=C.v,z=E>>1,r=Y>>1,p=new _(C.x,C.y,z,r),T=U&&U.length==z*r*4?U:c.F(z*r*4),k=new Uint32Array(L.buffer),P=new Uint32Array(T.buffer); +for(var b=0;b>>24,D=O>>>24,I=y>>>24,m=v>>>24,f=i+D+I+m; +if(f==1020){var A=(x>>>0&255)+(O>>>0&255)+(y>>>0&255)+(v>>>0&255)+2>>>2,d=(x>>>8&255)+(O>>>8&255)+(y>>>8&255)+(v>>>8&255)+2>>>2,g=(x>>>16&255)+(O>>>16&255)+(y>>>16&255)+(v>>>16&255)+2>>>2; +P[K]=255<<24|g<<16|d<<8|A}else if(f==0)P[K]=0;else{var A=(x>>>0&255)*i+(O>>>0&255)*D+(y>>>0&255)*I+(v>>>0&255)*m,d=(x>>>8&255)*i+(O>>>8&255)*D+(y>>>8&255)*I+(v>>>8&255)*m,g=(x>>>16&255)*i+(O>>>16&255)*D+(y>>>16&255)*I+(v>>>16&255)*m,X=1/f; +A=~~(A*X+.5);d=~~(d*X+.5);g=~~(g*X+.5);P[K]=f+2>>>2<<24|g<<16|d<<8|A}}return{rect:p,eB:T}};c.bt=function(L,C,U){var E=C.d,Y=C.v,z=E>>1,r=Y>>1,p=new _(C.x,C.y,z,r),T=U&&U.length==z*r*4?U:c.F(z*r*4),k=new Uint32Array(L.buffer),P=new Uint32Array(T.buffer); +for(var b=0;b>>0&255)+(O>>>0&255)+(y>>>0&255)+(v>>>0&255)>>>2,D=2+(x>>>8&255)+(O>>>8&255)+(y>>>8&255)+(v>>>8&255)>>>2,I=2+(x>>>16&255)+(O>>>16&255)+(y>>>16&255)+(v>>>16&255)>>>2,m=2+(x>>>24&255)+(O>>>24&255)+(y>>>24&255)+(v>>>24&255)>>>2; +P[K]=m<<24|I<<16|D<<8|i}return{rect:p,eB:T}};c.akJ=function(L,C,U){var E=C.d,Y=C.v,z=2*Math.floor(E/3),r=2*Math.floor(Y/3),p=new _(C.x,C.y,z,r),T=U&&U.length==z*r*4?U:c.F(z*r*4),k=new Uint32Array(L.buffer),P=new Uint32Array(T.buffer); +for(var b=0;b>>1)*E+(Q*3>>>1),x=k[h],O=k[h+1],y=k[h+2],v=k[h+E],i=k[h+1+E],D=k[h+2+E],I=k[h+E+E],m=k[h+1+E+E],f=k[h+2+E+E],A=x>>>24<<2,d=(x>>>16&255)*A,g=(x>>>8&255)*A,X=(x&255)*A,n=O>>>24<<1,R=(O>>>16&255)*n,l=(O>>>8&255)*n,w=(O&255)*n,V=y>>>24<<2,F=(y>>>16&255)*V,Z=(y>>>8&255)*V,M=(y&255)*V,a=v>>>24<<1,e=(v>>>16&255)*a,N=(v>>>8&255)*a,J=(v&255)*a,s=i>>>24,f5=(i>>>16&255)*s,dx=(i>>>8&255)*s,fq=(i&255)*s,i9=D>>>24<<1,e8=(D>>>16&255)*i9,S=(D>>>8&255)*i9,fs=(D&255)*i9,bz=I>>>24<<2,g6=(I>>>16&255)*bz,al=(I>>>8&255)*bz,bj=(I&255)*bz,bE=m>>>24<<1,eN=(m>>>16&255)*bE,dk=(m>>>8&255)*bE,hj=(m&255)*bE,iN=f>>>24<<2,dK=(f>>>16&255)*iN,ch=(f>>>8&255)*iN,hP=(f&255)*iN,d2=A+n+a+s,hr=V+n+i9+s,fv=bz+bE+a+s,f3=iN+bE+i9+s,dp=d2==0?0:1/d2,go=hr==0?0:1/hr,d6=fv==0?0:1/fv,iB=f3==0?0:1/f3,hS=0,eF=0,bQ=0,iP=0; +hS=~~(.5+(X+w+J+fq)*dp);eF=~~(.5+(g+l+N+dx)*dp);bQ=~~(.5+(d+R+e+f5)*dp);iP=~~(.5+d2*(1/9));P[K]=iP<<24|bQ<<16|eF<<8|hS; +hS=~~(.5+(M+w+fs+fq)*go);eF=~~(.5+(Z+l+S+dx)*go);bQ=~~(.5+(F+R+e8+f5)*go);iP=~~(.5+hr*(1/9));P[K+1]=iP<<24|bQ<<16|eF<<8|hS; +hS=~~(.5+(bj+hj+J+fq)*d6);eF=~~(.5+(al+dk+N+dx)*d6);bQ=~~(.5+(g6+eN+e+f5)*d6);iP=~~(.5+fv*(1/9));P[K+z]=iP<<24|bQ<<16|eF<<8|hS; +hS=~~(.5+(hP+hj+fs+fq)*iB);eF=~~(.5+(ch+dk+S+dx)*iB);bQ=~~(.5+(dK+eN+e8+f5)*iB);iP=~~(.5+f3*(1/9));P[K+z+1]=iP<<24|bQ<<16|eF<<8|hS}return{rect:p,eB:T}}; +c.acu=function(L,C,U){var E=C.d,Y=C.v,z=2*Math.floor(E/3),r=2*Math.floor(Y/3),p=new _(C.x,C.y,z,r),T=U&&U.length==z*r*4?U:c.F(z*r*4),k=new Uint32Array(L.buffer),P=new Uint32Array(T.buffer); +for(var b=0;b>>1)*E+(Q*3>>>1),x=k[h],O=k[h+1],y=k[h+2],v=k[h+E],i=k[h+1+E],D=k[h+2+E],I=k[h+E+E],m=k[h+1+E+E],f=k[h+2+E+E],A=(x>>>16&255)<<2,d=(x>>>8&255)<<2,g=(x&255)<<2,X=(O>>>16&255)<<1,n=(O>>>8&255)<<1,R=(O&255)<<1,l=(y>>>16&255)<<2,w=(y>>>8&255)<<2,V=(y&255)<<2,F=(v>>>16&255)<<1,Z=(v>>>8&255)<<1,M=(v&255)<<1,a=i>>>16&255,e=i>>>8&255,N=i&255,J=(D>>>16&255)<<1,s=(D>>>8&255)<<1,f5=(D&255)<<1,dx=(I>>>16&255)<<2,fq=(I>>>8&255)<<2,i9=(I&255)<<2,e8=(m>>>16&255)<<1,S=(m>>>8&255)<<1,fs=(m&255)<<1,bz=(f>>>16&255)<<2,g6=(f>>>8&255)<<2,al=(f&255)<<2,bj=0,bE=0,eN=0; +bj=~~(.5+(g+R+M+N)*(1/9));bE=~~(.5+(d+n+Z+e)*(1/9));eN=~~(.5+(A+X+F+a)*(1/9));P[K]=255<<24|eN<<16|bE<<8|bj; +bj=~~(.5+(V+R+f5+N)*(1/9));bE=~~(.5+(w+n+s+e)*(1/9));eN=~~(.5+(l+X+J+a)*(1/9));P[K+1]=255<<24|eN<<16|bE<<8|bj; +bj=~~(.5+(i9+fs+M+N)*(1/9));bE=~~(.5+(fq+S+Z+e)*(1/9));eN=~~(.5+(dx+e8+F+a)*(1/9));P[K+z]=255<<24|eN<<16|bE<<8|bj; +bj=~~(.5+(al+fs+f5+N)*(1/9));bE=~~(.5+(g6+S+s+e)*(1/9));eN=~~(.5+(bz+e8+J+a)*(1/9));P[K+z+1]=255<<24|eN<<16|bE<<8|bj}return{rect:p,eB:T}}; +c.Db=function(L){var C=255,U=L.length;U-=U&31;for(var H=3;H>1,r=Y>>1,p=new _(C.x,C.y,z,r); +if(L==null)return{rect:p};var T=U&&U.length>=z*r?U:c.F(z*r);for(var k=0;k>>2}}return{rect:p,eB:T}};c.$f=function(L,C,U){var E=C.d,Y=C.v,z=2*Math.floor(E/3),r=2*Math.floor(Y/3),p=new _(C.x,C.y,z,r); +if(L==null)return{rect:p};var T=U&&U.length>=z*r?U:c.F(z*r);for(var k=0;k>>1)*E+(P*3>>>1),K=L[Q]<<2,h=L[Q+1]<<1,x=L[Q+2]<<2,O=L[Q+E]<<1,y=L[Q+1+E],v=L[Q+2+E]<<1,i=L[Q+E+E]<<2,D=L[Q+1+E+E]<<1,I=L[Q+2+E+E]<<2; +T[b]=~~(.5+(K+h+O+y)*(1/9));T[b+1]=~~(.5+(x+h+v+y)*(1/9));T[b+z]=~~(.5+(i+D+O+y)*(1/9));T[b+z+1]=~~(.5+(I+D+v+y)*(1/9))}return{rect:p,eB:T}}; +c.zM=function(L,C,U,E,Y){var z=C.eR(E);if(Y)z=z.eR(Y);var r=Math.max(0,z.x-C.x),p=Math.max(0,z.x-E.x),T=Math.max(0,z.y-C.y),k=Math.max(0,z.y-E.y),P=z.d,b=z.v; +for(var H=0;H>>8)>>>8};c.round=function(L,C){if(C==null)C=128;var U=L.length;for(var H=0; +H>>24)*(r>>>24))<<24|c.wU((z>>>16&255)*(r>>>16&255))<<16|c.wU((z>>>8&255)*(r>>>8&255))<<8|c.wU((z&255)*(r&255))}}; +c.sn=function(L,C){var U=L.length;for(var H=0;H>>2,r/255]};c.SV=function(L,C){var U=new Uint32Array(L.buffer),E=U.length; +for(var H=0;H>8&255,p=Y>>16&255,T=Y>>24&255;U[H]=C[z]|C[r]<<8|C[p]<<16|C[T]<<24}}; +c.ah6=function(L,C,U,E,Y,z,r){var p=new Uint32Array(L.buffer),T=new Uint32Array(C.buffer),k=p.length,P=0; +while(256<>>8&255)<>>16&255)<>>8&255)<>>16&255)<i){var D=(v-i)/(255-i);x+=D*(255-x);O+=D*(255-O);y+=D*(255-y)}else if(i==0)x=O=y=0;else{var D=v/i; +x=D*x;O=D*O;y=D*y}}T[H]=x|O<<8|y<<16|b&4278190080}};c.lJ=function(L,C){var U=C.d,E=C.v,top=0,Y=0,z=0,r=0,p=0; +p=0;for(var T=0;T=0;T--){var k=T*U;for(var H=0;H=0;H--){for(var T=top; +T=0;Q--){var K=Q*z;for(var H=0;H=0;H--){for(var Q=0;Q>2); +c.wH(L.buffer,C,3);var U=c.lJ(C,L.rect);if(U.cg(L.rect))return;var E=new c.F(U.X()*4);c.La(L.buffer,L.rect,E,U); +L.buffer=E;L.rect=U};c.extend=function(L,C,U){if(L.rect.zg(C))return;var E=L.rect.EU(C),Y=c.F(E.X()); +if(U!=null)Y.fill(U);c.zM(L.channel,L.rect,Y,E);L.rect=E;L.channel=Y};c.a9_=function(L,C){if(C.ue()||L.rect.zg(C))return; +var U=L.rect.EU(C),E=c.F(U.X()*4);c.La(L.buffer,L.rect,E,U);L.rect=U;L.buffer=E};c.gW=function(L,C,U){if(!U.qh(L))return!1; +var E=Math.floor(L.x)-U.x,Y=Math.floor(L.y)-U.y,H=Y*U.d+E;return C[H]>128};c.adp=function(L,C,U){if(!U.qh(L))return!1; +var E=Math.floor(L.x)-U.x,Y=Math.floor(L.y)-U.y,H=Y*U.d+E;return C[4*H+3]>128};c.PH=function(L){if(c.cI.length.5)return 0;if(v>.25)return 1;if(v>.1)return 2;if(v>.02143)return 3;if(v>.00445)return 4;if(v>65e-5)return 5; +if(v>415e-6)return 6;if(v>55e-6)return 7;return 8}function p(v,i,D,I,m,f){v[i]=D[I]+(m[f]-D[I]>>1);v[i+1]=D[I+1]+(m[f+1]-D[I+1]>>1); +v[i+2]=D[I+2]+(m[f+2]-D[I+2]>>1);v[i+3]=D[I+3]+(m[f+3]-D[I+3]>>1)}function T(v,i,D,I,m,f){v[i]=m[f]+D[I]>>1; +v[i+1]=m[f+1]+D[I+1]>>1;v[i+2]=m[f+2]+D[I+2]>>1;v[i+3]=m[f+3]+D[I+3]>>1}function k(v,i,D,I,m,f,A,d,g){var X=0,n=0,R=0,H,l=m[f],w; +p(d,0,v,i,v,D);for(H=0;H0&&I[f-1]0){k(I,A-4,A,m,X,l,n,R,4)}A+=4}m[i]=m[0];X[i]=X[0];if(m[i-1]0){k(I,A,d,m,X,i,n,R,4)}}z(I)}function b(){var v=Math.random(); +if(v>.659755)return 0;if(v>.1625)return 10;if(v>.06)return 20;if(v>.01)return 30;if(v>.0035)return 40; +if(v>65e-5)return 50;if(v>415e-6)return 60;if(v>55e-6)return 70;return 80}function Q(v,i,D,I,m,f){var A=b()+1,d=I[m]; +for(var H=1;Hm)break;if(I[m-H]D[H]){U(v,R-f,X,0);D[H-1]=g;n=!1;break}U(v,R-f,v,R);D[H-1]=D[H];R+=f}if(n){U(v,R-f,X,0); +D[m-1]=g}A++;I--;i-=f}}function x(v,i,D,I,m){var f=0,A=0,d=i*4;for(var H=0;H>>2),p=new Uint8Array(C.length>>>2); +c.N1.jg(C,z,U,E,c.N1.MZ[2],0,!0);for(var H=0;H>>2]=T;Y[H+0]=C[H+0];Y[H+1]=C[H+1];Y[H+2]=C[H+2];Y[H+3]=C[H+3]}c.N1.Z8(r,p,U,E);for(var H=0;H>>2]-50)*(255/205))}for(var H=0,k=C.length;H>>2),r=new Uint8Array(C.length>>>2),p=new Uint8Array(C.length); +for(var H=0;H>>2]=T;p[H]=C[H];p[H+1]=C[H+1]; +p[H+2]=C[H+2]}c.N1.Z8(r,z,U,E);c.N1.jg(C,Y,U,E,c.N1.MZ[1],0,!0);for(var H=0;H>>2]}for(var H=0,k=C.length; +H>>8&255,O=K>>>16&255,y=K>>>24&255,v=~~(Math.random()*8),i=v%3,D=0,I=0; +if(v<3){I--}else if(v>4){I++}if(i==0){D--}else if(i==2){D++}var m=Q+D,f=H+I;if(m<0)m=0;else if(m>r-1)m=r-1; +if(f<0)f=0;else if(f>p-1)f=p-1;var K=P[f*r+m],A=K&255,d=K>>>8&255,g=K>>>16&255,X=K>>>24&255;T[b]=k(h,A); +T[b+1]=k(x,d);T[b+2]=k(O,g);T[b+3]=k(y,X)}}}function C(z,r){return r}function U(z,r){return z>r?r:z}function E(z,r){return z>8)&255;C[H]=C[y]=v;v=v%8;U[H]=U[y]=Y[v]; +E[H]=E[y]=z[v]}}function k(y){return y*y*y*(y*(y*6-15)+10)}function P(y,v,i){return(1-i)*y+i*v}function b(y,v){return y&v}function Q(y,v){return y%v}function K(y,v,i,D,I){var m=Math.floor(y),f=Math.floor(v),r,A,d,g,X,n; +y=y-m;v=v-f;m=m&255;f=f&255;r=m+C[f];g=U[r]*y+E[r]*v;r=m+C[I(f+1,D)];d=U[r]*y+E[r]*(v-1);r=I(m+1,i)+C[f]; +X=U[r]*(y-1)+E[r]*v;r=I(m+1,i)+C[I(f+1,D)];n=U[r]*(y-1)+E[r]*(v-1);A=k(y);return P(P(g,X,A),P(d,n,A),k(v))}function x(y,r,v){y[r]=v}function O(y,v,i,D,I){var m=Math.min(Math.min(v,256),Math.min(256,i)),f=m==256||m<8,A=8,d=new Uint32Array(A),g=new Uint32Array(A),X=new Float32Array(A),n=new Float32Array(A),R=1,l=1,w=f?b:Q,V=x,F; +for(var H=0;H>>2;Y[p+1]=b+2>>>2;Y[p+2]=Q+2>>>2;Y[p+3]=K+2>>>2}}}return L}(); +c.DA.a7q=function(){var L=[-1e3,34,51,61,71,80,87,95,101,108,113,119,124,129,134,139,143,148,153,157,161,165,168,172,175,180,183,186,190,194,197,200,203,207,210,213,216,218,222,225,228,230,233,236,239,241,244,247,250,252,255]; +function C(U,E,Y,z,r){var p=r[0],T=r[1],k=T<=50?L[T]/255:1+(255-L[101-T])/255,P=r[2],b=U.length,Q=new Float32Array(b),K=0,h,x=1+1/10*p,O=(1-1/x)/2,y=16/256,v=E-1,H,i,D,I,m=0,f=1,A=255; +for(H=0;H=Y||X>=E){return}var D=Q[n],R=k-D,l=Math.random(),w=l/x+O;if(K==0||Math.abs(I-D)>y){h=w<=R?m:A; +K=~~(Math.random()*p)}else if(.1=E)break;d(i,v-D)}K=0}for(H=1;H=Y||i>=E)break;d(D,v-i)}K=0}}else if(P==1){for(H=0; +H=E)break; +d(i,D)}K=0}for(H=1;H=Y||i>=E)break;d(D,i)}K=0}}else{for(H=0;H255?255:b]}return k}function C(){var p=new Uint8Array(256),H,T; +for(H=75,T=15;T<256;H++,T+=24)p[H]=T;for(;H<256;H++)p[H]=255;return p}function U(p,T,k,P){Y(p,T,k,11,P)}function E(p,T,k,P){Y(p,T,k,5,P); +for(var H=0;H>>1)}function z(p,T){var k=p.length,P; +for(var H=0;H255?255:i}z(v,p);for(var H=0;H>2); +for(var H=0;H>1,A=f-1,d=m*m,g=0; +for(var H=0;H=i)l=i-1;if(w<0)w=0;else if(w>=D)w=D-1;X+=y[w*i+l]}}v[g++]=~~(X/d);for(var V=1;V=i)Z=i-1;if(w<0)w=0;else if(w>=D)w=D-1;X+=y[w*i+Z]-y[w*i+F]}v[g++]=~~(X/d)}}L=v}function E(y,v){var i=y.length; +for(var H=0;H3?(p-3)*10:0;var i=~~(T*.73)+50,D=Math.min(i+v,128),I=D-i,m=-255*i; +r=z+4;for(var H=0;H<256;H++){var f=H*65;k[H]=f>=256?255:f;P[H]=Math.max(Math.min(~~(m/I),255),0);m+=255}}function Q(y,v,i,D,I,m,f,A,d,g){var X=I+m-1,n=I>>1,R=X>>1,l=0,w=new Int32Array(I),V=new Int32Array(256),F=new Int32Array(16); +if(!f){R}for(var H=0;H=i)N=i-1;if(J<0)J=0;else if(J>=D)J=D-1; +var s=y[J*i+N];V[s]++;F[s>>>4]++}}var f5=0,dx;for(dx=0;dx<256;dx++){f5+=V[dx];if(f5>=g)break}v[l++]=dx; +for(var fq=1;fq=D)J=D-1;if(i9<0)i9=0;else if(i9>=i)i9=i-1;if(e8<0)e8=0;else if(e8>=i)e8=i-1;var S=y[J*i+i9],fs=y[J*i+e8]; +V[S]--;F[S>>>4]--;V[fs]++;F[fs>>>4]++}f5=0;dx=0;while(f5+F[dx>>>4]>>4];dx+=16}for(;dx<256; +dx++){f5+=V[dx];if(f5>=g)break}v[l++]=dx}}L=v}function K(y){var v=y.length,i=new Uint8Array(v),H=0;for(; +H=i)A=m;for(var d=0;d=D)X=d;var n=y[m+g],R=y[m+X],l=y[f+d],w=y[A+d],V=y[m+d];v[I++]=Math.min(Math.max(V+2*(4*V-(n+R+l+w)),0),255)}}L=v}function O(y,v,i,D,I){b(I); +var m=y.length,f=new Uint8Array(m),A=K(y);U(y,f,v,i,Y);for(var H=0;H0)y[H]=~~((g*d+(255-g)*128)/255);else y[H]=128}L=y;U(y,f,v,i,3); +Q(f,y,v,i,15,2,!0,0,1,16);Q(f,A,v,i,15,2,!1,0,1,15);for(var H=0;H>1}L=A;x(A,f,i,v); +h(f,P);U(f,y,v,i,2);D.set(L)}return O}();c.CN={ak7:function(L,C){var H=L.length;L.push(C);var U=H>>>1; +while(U!=0&&L[H][0]>>1}},amI:function(L){if(L.length==2)return L.pop(); +var top=L[1],H=1;L[1]=L.pop();var C=L.length;while(!0){var U=H<<1,E=U+1,Y=H;if(UU){console.log(H);throw"e"}U=E;C=C>>>1}}}}; +c.Q={};c.Q.EP=new Float64Array(256);c.Q.A6=new Uint8Array(256*256);c.Q.Bu=new Uint8Array(256*256);(function(){for(var H=0; +H<256;H++)c.Q.EP[H]=255/H;for(var H=0;H<256;H++)for(var L=0;L<256;L++)c.Q.A6[H*256+L]=H==0?0:Math.round(L*255/H); +for(var H=0;H<256;H++)for(var L=0;L<256;L++)c.Q.Bu[H*256+L]=Math.round(H*(255-L)/255)}());c.Q.Kj=function(L,C,U,E,Y,z,r,p){if(p==null)p=ca.wq(); +if("idiv,lbrn,div ,lddg,vLit,lLit,hMix,diff".split(",").indexOf(L)==-1){r=r*p.fill;p.fill=1;p.style=!1}var T="norm,dark,mul ,idiv,lbrn,lite,scrn,div ,lddg,over,sLit,hLit,vLit,lLit,pLit,hMix,diff,smud,fsub,fdiv".split(","),k="dkCl,lgCl,hue ,sat ,colr,lum ".split(","),P=c.Q[L+"F"]; +if(p.UZ==null&&L=="norm")c.Q.aez(C,U,E,Y,z,r,P,p.H1?1:0);else if(L=="diss")c.Q.aaX(C,U,E,Y,z,r,P,p.H1?1:0); +else if(T.indexOf(L)!=-1)c.Q.a5v(C,U,E,Y,z,r,P,p);else if(k.indexOf(L)!=-1)c.Q.a7N(C,U,E,Y,z,r,P,p)}; +c.Q.a0T=function(L,C,U){var E=L*U+1-U;return E<.001?0:1-Math.min(1,(1-C)/E)};c.Q.acD=function(L,C,U){return L*U==1?1:Math.min(1,C/(1-L*U))}; +c.Q.WX=function(L){return L<=.25?((16*L-12)*L+4)*L:Math.sqrt(L)};c.Q.normF=function(L,C,U){return L}; +c.Q.darkF=function(L,C,U){return Math.min(L,C)};c.Q["mul F"]=function(L,C,U){return L*C};c.Q.idivF=function(L,C,U){var E=L*U+1-U; +return C==1?1:1-C>=E?0:1-(1-C)/E};c.Q.lbrnF=function(L,C,U){return Math.max(0,L*U+C-U)};c.Q.dkClF=function(L,C,U){var E=c.uW(L)=1-L?1:C/(1-L)};c.Q.lddgF=function(L,C,U){L*=U;return Math.min(1,L+C)}; +c.Q.lgClF=function(L,C,U){var E=c.uW(L)>c.uW(C)?L:C;U.h=E.h;U.P=E.P;U.O=E.O;return U};c.Q.overF=function(L,C,U){return c.Q.hLitF(C,L,U)}; +c.Q.sLitF=function(L,C,U){return L<=.5?C-(1-2*L)*C*(1-C):C+(2*L-1)*(c.Q.WX(C)-C)};c.Q.hLitF=function(L,C,U){return L<=.5?c.Q["mul F"](2*L,C,U):c.Q.scrnF(2*L-1,C,U)}; +c.Q.vLitF=function(L,C,U){return L<=.5?c.Q.a0T(2*L,C,U):c.Q.acD(2*L-1,C,U)};c.Q.lLitF=function(L,C,U){return L<=.5?c.Q.lbrnF(2*L,C,U):c.Q.lddgF(2*L-1,C,U)}; +c.Q.pLitF=function(L,C,U){return L<=.5?c.Q.darkF(2*L,C,U):c.Q.liteF(2*L-1,C,U)};c.Q.hMixF=function(L,C,U){if(U>.99)return L+C<1?0:1; +return Math.min(1,Math.max(0,(C+L*U-U)/(1-U+1e-6)))};c.Q.diffF=function(L,C,U){L*=U;return Math.abs(L-C)}; +c.Q.smudF=function(L,C,U){return L+C-2*L*C};c.Q.fsubF=function(L,C,U){return Math.max(C-L,0)};c.Q.fdivF=function(L,C,U){return Math.min(C/L,1)}; +c.Q["hue F"]=function(L,C,U){c.Qx(L,c._a(C),U);c.B5(U,c.uW(C),U)};c.Q["sat F"]=function(L,C,U){c.Qx(C,c._a(L),U); +c.B5(U,c.uW(C),U)};c.Q.colrF=function(L,C,U){c.B5(L,c.uW(C),U)};c.Q["lum F"]=function(L,C,U){c.B5(C,c.uW(L),U)}; +c.Q.aez=function(L,C,U,E,Y,z,r,p){var T=C.eR(E).eR(Y),k=Math.max(0,T.x-C.x),P=Math.max(0,T.x-E.x),b=Math.max(0,T.y-C.y),Q=Math.max(0,T.y-E.y),K=T.d,h=T.v,x=C.d,O=E.d,y=c.Q.A6,v=c.Q.Bu,i=new Uint32Array(L.buffer),D=new Uint32Array(U.buffer); +for(var H=0;H>>24==0)continue; +if(A>>>24==255&&z==1&&p==0){D[m+f]=i[I+f];continue}var d=D[m+f],g=255*z&255;if(p==0){g=(A>>>24)*z&255; +X=d>>>24}var n=v[X<<8|g],R=g+n,l=A&255,w=A>>>8&255,V=A>>>16&255,F=d&255,Z=d>>>8&255,M=d>>>16&255;D[m+f]=p*(d>>>24)+(1-p)*R<<24|y[R<<8|c.wU(V*g+M*n)]<<16|y[R<<8|c.wU(w*g+Z*n)]<<8|y[R<<8|c.wU(l*g+F*n)]}}}; +c.Q.akg=function(L,C,U,E,Y,z){var r=C.eR(E).eR(Y),p=Math.max(0,r.x-C.x),T=Math.max(0,r.x-E.x),k=Math.max(0,r.y-C.y),P=Math.max(0,r.y-E.y),b=r.d,Q=r.v,K=C.d,h=E.d,x=c.Q.A6,O=c.Q.Bu,y=new Uint32Array(L.buffer),v=new Uint32Array(U.buffer),i=Math.floor(Math.random()*16777215),D=0; +for(var H=0;H>>24==0)continue; +if(A>>24==255&&z==1){v[m+f]=A;continue}var d=v[m+f],g=(A>>>24)*z*(1/255),X=(d>>>24)*(1/255),n=X*(1-g),R=g+n,l=A&255,w=A>>>8&255,V=A>>>16&255,F=d&255,Z=d>>>8&255,M=d>>>16&255; +D>>>=8;if((f&3)==0)D=c.Q.Gn(m+f+i);var a=R==0?0:1/R,e=Math.floor(R*(256*255))+(D&255)>>>8,N=Math.floor((V*g+M*n)*a+.5),J=Math.floor((w*g+Z*n)*a+.5),s=Math.floor((l*g+F*n)*a+.5); +v[m+f]=e<<24|N<<16|J<<8|s}}};c.Q.Bv=function(L,C,U,E,Y,z,r,p){var T=c.GZ(L,C,U),k=c.GZ(E,Y,z),P=Math.min,b=c.Q.afO,Q=b(T,p,0); +Q=P(Q,b(L,p,8));Q=P(Q,b(C,p,16));Q=P(Q,b(U,p,24));var K=b(k,p,4);K=P(K,b(E,p,12));K=P(K,b(Y,p,20));K=P(K,b(z,p,28)); +K=Math.max(K,1-r);var h=Math.min(Q,K);return h<0?0:h>1?1:h};c.Q.afO=function(L,C,H){return Math.min((L-C[H])*C[H+1],(L-C[H+3])*C[H+2])}; +c.Q.a5v=function(L,C,U,E,Y,z,r,p){var T=1/255,k=T*z,P=p.H1?1:0,b=p.fill,Q=p.style,K=C.eR(E).eR(Y),h=Math.max(0,K.x-C.x),x=Math.max(0,K.x-E.x),O=Math.max(0,K.y-C.y),y=Math.max(0,K.y-E.y),v=K.d,i=K.v,D=C.d,I=E.d,m=new Uint32Array(L.buffer),f=new Uint32Array(U.buffer); +for(var H=0;H>>24==0)continue; +var n=f[d],R=(X&255)*T,l=(X>>>8&255)*T,w=(X>>>16&255)*T,V=(n&255)*T,F=(n>>>8&255)*T,Z=(n>>>16&255)*T,M=z; +if(P==0){M=(X>>>24)*k;a=(n>>>24)*T}if(p.UZ)M*=c.Q.Bv(R,l,w,V,F,Z,a,p.UZ);var e=a*(1-M),N=M+e,J=N==0?0:255/N,s=Q?1:M,f5=((1-a)*M*R+(1-s)*a*V+s*a*r(R,V,(1+M-s)*b))*J,dx=((1-a)*M*l+(1-s)*a*F+s*a*r(l,F,(1+M-s)*b))*J,fq=((1-a)*M*w+(1-s)*a*Z+s*a*r(w,Z,(1+M-s)*b))*J; +N=M*b+a*(1-M*b);var i9=~~(N*255+.5);f[d]=P*(n>>>24)+(1-P)*i9<<24|fq<<16|dx<<8|f5}}};c.Q.a7N=function(L,C,U,E,Y,z,r,p){var T=1/255,k=T*z,P=p.H1?1:0,b=C.eR(E).eR(Y),Q=Math.max(0,b.x-C.x),K=Math.max(0,b.x-E.x),h=Math.max(0,b.y-C.y),x=Math.max(0,b.y-E.y),O=b.d,y=b.v,v=new Uint32Array(L.buffer),i=new Uint32Array(U.buffer),D={h:0,P:0,O:0},I={h:0,P:0,O:0},m={h:0,P:0,O:0}; +for(var H=0;H>>8&255)*T,l=(g>>>16&255)*T,w=(X&255)*T,V=(X>>>8&255)*T,F=(X>>>16&255)*T,Z=z,M=1; +if(P==0){Z=(g>>>24)*k;M=(X>>>24)*T}if(p.UZ)Z*=c.Q.Bv(n,R,l,w,V,F,M,p.UZ);var a=M*(1-Z),e=Z+a,N=255/e; +D.h=n;D.P=R;D.O=l;I.h=w;I.P=V;I.O=F;r(D,I,m);var J=(((1-M)*n+M*m.h)*Z+w*a)*N,s=(((1-M)*R+M*m.P)*Z+V*a)*N,f5=(((1-M)*l+M*m.O)*Z+F*a)*N,dx=P*(X>>>24)+(1-P)*Math.round(e*255); +i[A]=dx<<24|f5<<16|s<<8|J}}};c.Q.b6=function(L){L=L^61^L>>>16;L=L+(L<<3);L=L^L>>>4;L=L*668265261;L=L^L>>15; +return(L&16777215)*(1/16777215)};c.Q.Gn=function(L){L=L^61^L>>>16;L=L+(L<<3);L=L^L>>>4;L=L*668265261; +L=L^L>>>15;return L};c.Q.il=function(L){this._B=L};c.Q.il.prototype.get=function(){var L=this._B=c.Q.Gn(this._B); +return(L&16777215)*(1/16777215)};c.Q.aaX=function(L,C,U,E,Y,z,r,p){var T=1/255,k=T*z,P=Math.round(z*(256*256*256/255)),b=C.eR(E).eR(Y),Q=Math.max(0,b.x-C.x),K=Math.max(0,b.x-E.x),h=Math.max(0,b.y-C.y),x=Math.max(0,b.y-E.y),O=b.d,y=b.v,v=new Uint32Array(L.buffer),i=new Uint32Array(U.buffer); +for(var H=0;H>>24); +if((c.Q.Gn(D)&16777215)>=d*P)continue;i[I]=f&16777215|p*(A>>>24)+(1-p)*255<<24}}};c.Q.a1W=function(L,C,U){for(var H=0; +H>>2];if(E==0)continue;var Y=E*(1/255),z=1/Y,r=C[H],p=C[H+1],T=C[H+2],k=L[H],P=L[H+1],b=L[H+2]; +C[H]=Math.min(255,Math.max(0,Math.round((r-(1-Y)*k)*z)));C[H+1]=Math.min(255,Math.max(0,Math.round((p-(1-Y)*P)*z))); +C[H+2]=Math.min(255,Math.max(0,Math.round((T-(1-Y)*b)*z)));C[H+3]=255}};c.Q.f3=function(L,C,U,E,Y,z,r,p,T,k,P){if(k==null)k=!1; +if(P==null)P=[1,1,1];var b=255<<24|P[2]*16711680|P[1]*65280|P[0]*255,Q=~b;if(Y&&!C.cg(z)){var K=c.F(C.X()*4); +K.fill(r);c.zM(Y,z,K,C);Y=K;z=C}if(k){if(Y==null)c.Q.adT(L,C,U,E,Y,p,T,b,Q);else c.Q.a7g(L,C,U,E,Y,p,T)}else{if(Y==null)c.Q.aks(L,C,U,E,Y,p,T,b,Q); +else c.Q.ag_(L,C,U,E,Y,p,T)}};c.Q.aks=function(L,C,U,E,Y,z,r,p,T){var k=1/255,P=C.eR(E).eR(z),b=Math.max(0,P.x-C.x),Q=Math.max(0,P.x-E.x),K=Math.max(0,P.y-C.y),h=Math.max(0,P.y-E.y),x=P.d,O=P.v,y=new Uint32Array(L.buffer),v=new Uint32Array(U.buffer),i=c.Q.A6,D=r*255&255; +for(var H=0;H>>24,X=d>>>24,n=c.wU(D*g+(255-D)*X),R=c.wU(g*D),l=c.wU(X*(255-D)),w=A&255,V=A>>>8&255,F=A>>>16&255,Z=d&255,M=d>>>8&255,a=d>>>16&255,e=R*w+Z*l,N=R*V+M*l,J=R*F+a*l; +e=i[n<<8|c.wU(e)];N=i[n<<8|c.wU(N)];J=i[n<<8|c.wU(J)];var s=n<<24|J<<16|N<<8|e;v[m]=T&d|p&s}}};c.Q.adT=function(L,C,U,E,Y,z,r,p,T){var k=1/255,P=C.eR(E).eR(z),b=Math.max(0,P.x-C.x),Q=Math.max(0,P.x-E.x),K=Math.max(0,P.y-C.y),h=Math.max(0,P.y-E.y),x=P.d,O=P.v,y=new Uint32Array(L.buffer),v=new Uint32Array(U.buffer),i=c.Q.A6,D=r*16777215&16777215; +for(var H=0;H>>24,d=f>>>24,g=c.wU(I*A+(255-I)*d),X=c.wU(A*I),n=c.wU(d*(255-I)),R=m&255,l=m>>>8&255,w=m>>>16&255,V=f&255,F=f>>>8&255,Z=f>>>16&255,M=y[g<<8|c.wU(X*R+V*n)],a=y[g<<8|c.wU(X*l+F*n)],e=y[g<<8|c.wU(X*w+Z*n)]; +O[i]=g<<24|e<<16|a<<8|M}}};c.Q.a7g=function(L,C,U,E,Y,z,r){var p=1/255,T=C.eR(E).eR(z),k=Math.max(0,T.x-C.x),P=Math.max(0,T.x-E.x),b=Math.max(0,T.y-C.y),Q=Math.max(0,T.y-E.y),K=T.d,h=T.v,x=new Uint32Array(L.buffer),O=new Uint32Array(U.buffer),y=c.Q.A6,v=Math.round(r*257); +for(var H=0;H>>24,g=A>>>24,X=d*m*(1/255),n=g*(255-m)*(1/255),R=f&255,l=f>>>8&255,w=f>>>16&255,V=A&255,F=A>>>8&255,Z=A>>>16&255,M=c.Q.Gn(D+I+y),a=Math.floor((X+n)*256+.5)+(M>>>0&255)>>>8,e=a==0?0:256/(X+n),N=R*X+V*n,J=l*X+F*n,s=w*X+Z*n,f5=Math.floor(N*e+.5)+(M>>>8&255)>>>8,dx=Math.floor(J*e+.5)+(M>>>16&255)>>>8,fq=Math.floor(s*e+.5)+(M>>>21&248)>>>8; +O[D+I]=a<<24|fq<<16|dx<<8|f5}}};c.Q.a7h=function(L){return Math.floor(L+Math.random())};c.Q.oW=function(L,C,U,E,Y,z,r){var p=1/255,T=C.eR(E).eR(z),k=Math.max(0,T.x-C.x),P=Math.max(0,T.x-E.x),b=Math.max(0,T.y-C.y),Q=Math.max(0,T.y-E.y),K=T.d,h=T.v; +for(var H=0;H1+p){R=c.lr.CJ(Q,n,N,J);Z=Math.sqrt(R);a--;e++}else{R=w=F=1e9;for(var H=0;H=g)continue;var i9=c.lr.CJ(Q,fq,N,J);if(i9>1);c.qM.cc(C,r,U,E,z[1]-1>>1);c.qM.cc(C,r,U,E,z[2]-1>>1)};c.qM.ad_=function(L,C,U,E,Y){var z=c.qM.r2(Y,2),r=c.qM.Cr(U*E); +c.hL(L,C);c.qM.cc(C,r,U,E,z[0]-1>>1);c.qM.cc(C,r,U,E,z[1]-1>>1)};c.qM.agW=function(L,C,U,E){var Y=c.qM.r2(E,3),z=c.qM.Cr(C*U*4); +c.qM.e1(L,z,C,U,Y[0]-1>>1);c.qM.e1(L,z,C,U,Y[1]-1>>1);c.qM.e1(L,z,C,U,Y[2]-1>>1)};c.qM.a6Q=function(L,C,U,E,Y,z){if(z==null)z=3; +var r=c.qM.r2(Y,z),p=c.qM.pR(U*E);c.hL(L,C);for(var H=0;H>>24;n+=(F&255)*Z;R+=(F>>>8&255)*Z;l+=(F>>>16&255)*Z;w+=Z}}if(w!=0){var M=1/w; +n=~~(n*M+.5);R=~~(R*M+.5);l=~~(l*M+.5);w=~~(w*K*K+.5);Y[m]=w<<24|l<<16|R<<8|n}}};c.DL.kD=new Float64Array(5*20); +c.DL.a6z=new Uint32Array(5*5*20);c.DL.gW=function(L,C,U,E,Y,z,r){var p=c.DL.kD,T=c.DL.a6z,k=0,P=0;for(var H=0; +H.05;H++){c.DL.FK(T,0,y);c.DL.jb(T,4,O);c.DL.eS(L,T);k=T[8];P=T[9];c.DL.jb(T,0,y); +c.DL.FK(T,4,O);c.DL.eS(L,T);b=T[8];Q=T[9];K=1/(k*Q-P*b);h=(v-C)*K;x=(i-U)*K;O+=-Q*h+b*x;y+=+P*h-k*x; +c.DL.a7(L,O,y,T);v=T[8];i=T[9];D=(v-C)*(v-C)+(i-U)*(i-U)}if(z&&(O<0||O>1||y<0||y>1||D>.25))return p; +r[p]=O;r[p+1]=y;r[p+2]=v;r[p+3]=i;r[p+4]=k*Q-P*b;return p+5};c.DL.apply=function(L,C,U){var E=U.x,Y=U.y,z=1/U.d,r=1/U.v,p=c.DL.J7; +for(var T=0;TP)continue;if(C[b+b+18]==0){if(y=r.length){console.log("Buffer not long enough"); +throw"e"}if(z==c.DL.V.WX||M<2)return T;var a=c.DL.V.I5(L,!0),e=c.a.mE(a[0]),N=c.a.mE(a[1]),J=c.DL.V.I5(L,!1),s=c.a.mE(J[0]),f5=c.a.mE(J[1]); +if(e.d+e.v+N.d+N.vz||L*U<0&&rz||L*E<0&&rz||L*Y<0&&rz?1:0}; +c.Iu.a9J=function(L,C,U,E){var Y=new Float32Array(E),z=0;new Uint32Array(E).fill(0);for(var r=0;rz)z=b}var K=C*U,h=z==0?0:1/z; +for(var H=0;H0&&p>0)Y[z+0]=-L-1;if(r>0)Y[z+1]=-L;if(r>0&&p0)Y[z+6]=L-1;if(p>0)Y[z+7]=-1;H++;z+=8}return E}; +c.N1={};c.N1.hx=function(L){var C=L.slice(0),U=0;for(var H=0;H>>1,P=new Uint32Array(L.buffer),C=new Uint8ClampedArray(C.buffer); +for(var H=0;HU-1)i=U-1;if(D<0)D=0;else if(D>E-1)D=E-1;if(p&&P[D*U+i]>>>24==0){D=H; +i=b}var I=P[D*U+i];Q+=(I&255)*v;K+=(I>>>8&255)*v;h+=(I>>>16&255)*v;x+=(I>>>24&255)*v}if(r){if(Q<0)Q=-Q; +if(K<0)K=-K;if(h<0)h=-h;if(x<0)x=-x}if(p){Q=Math.max(0,Math.min(255,Q));K=Math.max(0,Math.min(255,K)); +h=Math.max(0,Math.min(255,h));x=Math.max(0,Math.min(255,x))}var m=H*U+b<<2;C[m]=~~(.5+Q);C[m+1]=~~(.5+K); +C[m+2]=~~(.5+h);C[m+3]=255-z&C[m+3]|z&~~(.5+x)}};c.N1.St=function(L,C,U,E){var Y=L.length,z=new Uint8Array(Y); +c.N1.jg(L,C,U,E,c.N1.MZ[4],0,!0);c.N1.jg(L,z,U,E,c.N1.MZ[5],0,!0);for(var H=0;H>>1,v=new Array(O),i=new Array(O); +for(var H=0;HT-P-O-1){m.fill(0);var A=Math.max(f-P,0),d=Math.min(T,f+P+1),g=d-A; +for(var X=0;X=0)E(m,r,n*T+A,n*T+d,-1);var l=X*T+f<<2;K=m[300];if(K!=0)for(var H=0;H<3;H++)p[l+H]=D(x[H],r[l+H],K,Q)}}else{for(var H=0; +H=0)U(i,r,n*T+A,n*T+d,-1,y);if(R>>4]+=k}return L}();c.nW.AP=function(){function L(b,Q,K,h,x,O,y){if(x==0){Q.set(b); +return}if(x<=80)C(b,Q,K,h,x,O,y);else z(b,Q,K,h,x,O,y)}function C(b,Q,K,h,x,O,y){var v=0,i=new Int32Array(512),D=1+2*Math.round(Math.sqrt(x)),I=D>>>1,m=new Array(D); +for(var H=0;HK-x-D-1){i.fill(0); +v=0;var g=Math.max(d-x,0),X=Math.min(K,d+x+1),n=X-g;for(var R=0;R=0){v-=n;E(i,b,l*K+g,l*K+X,-1)}if(w=0){v-=n;U(m,b,l*K+g,l*K+X,-1,I)}if(w>>4]+=h}function z(b,Q,K,h,x,O,y){var v=0,i=new Int32Array(512),D=new Int32Array(1*K),I=new Int32Array(512*K),m=Math.min(x,K),f=Math.min(x,h),A=O[0]; +for(var d=0;d=0)r(I,D,b,K,d-x-1,-1); +i.fill(0);v=0;for(var g=0;g=0&&D[X]!=0){v-=D[X]; +T(i,I,X)}if(n0)H--; +H=(H<<4)+15;while(L[H]==0&&H>0)H--;return H},function(L,C,U,E,Y){var H=15;while(L[256|H]+C[256|H]==0&&H>0)H--; +H=(H<<4)+15;while(L[H]+C[H]==0&&H>0)H--;return H}];c.nW.ow=[function(L,C,U,E){var H=0;while(L[256|H]==0&&H<15)H++; +H=H<<4;while(L[H]==0&&H<255)H++;return H},function(L,C,U,E,Y){var H=0;while(L[256|H]+C[256|H]==0&&H<15)H++; +H=H<<4;while(L[H]+C[H]==0&&H<255)H++;return H}];c.nW._0=.5;c.nW.Rb=[function(L,C,U,E){var Y=~~(.5+c.nW._0*U),z=0,H=256; +while(z+L[H]<=Y)z+=L[H++];H=H-256<<4;while(z<=Y)z+=L[H++];return H-1},function(L,C,U,E,Y){var z=~~(.5+c.nW._0*E),r=0,H=256; +while(r+L[H]+C[H]<=z){r+=L[H]+C[H];H++}H=H-256<<4;while(r<=z){r+=L[H]+C[H];H++}return H-1}];c.nW.Vs=[function(L,C,U,E){var Y=E[0],z=0,r=0,H=Math.max(0,C-Y),p=Math.min(256,C+Y+1); +while(H1e-9)P=!1}var h=c.I.FS(L),x=c.I.DY(L)&&h,O=x?1:0; +if(r||P&&b==U+E&&h){c.I.agE(k,C,U,E,Y,z,p,h,T);return}var y=z.d,v=z.v,i=new Float64Array(2);Y=new Uint32Array(Y.buffer); +C=new Uint32Array(C.buffer);for(var D=0;DU+1||V<-1||V>E+1; +if(p){w=Math.max(.001,Math.min(U-1,w));V=Math.max(.001,Math.min(E-1,V))}else if(F)continue;var Z=Q;if(!h){var M=0,a=0; +d=L;f=R+1/U;A=l;g=1/(d[6]*f+d[7]*A+1);M=(d[0]*f+d[1]*A+d[2])*g-X;a=(d[3]*f+d[4]*A+d[5])*g-n;var e=M*M+a*a; +f=R;A=l+1/E;g=1/(d[6]*f+d[7]*A+1);M=(d[0]*f+d[1]*A+d[2])*g-X;a=(d[3]*f+d[4]*A+d[5])*g-n;var N=M*M+a*a; +Z=1/Math.sqrt(Math.max(e,N))}if(Z<1.1){c.I.kA(w,V,C,U,E,Y,m,O);continue}var J=Math.round(Z*2.3);if(!p&&(w<.6||w>U-.6||V<.6||V>E-.6)){J=Math.max(J,5)}if(p&&F)J=1; +var s=1/J,e8=z.x+I,S=z.y+D;d=k;for(var H=0;H=1||V<0||V>=1)continue;w=Math.floor(w*U);V=Math.floor(V*E); +var bz=V*U+w,g6=C[bz],al=g6>>>24;f5+=(g6&255)*al;dx+=(g6>>>8&255)*al;fq+=(g6>>>16&255)*al;i9+=al}if(i9!=0){var bj=1/i9; +f5=~~(f5*bj+.5);dx=~~(dx*bj+.5);fq=~~(fq*bj+.5);i9=~~(i9*s*s+.5);Y[m]=i9<<24|fq<<16|dx<<8|f5}}};c.I.agE=function(L,C,U,E,Y,z,r,p,T){if(p&&!r&&z.X()>4e6&&T){c.I.afH(L,C,U,E,Y,z,r,p,T); +return}var k=z.x+z.d,P=z.y+z.v,b=0,Q=new Uint32Array(Y.buffer),K=new Uint32Array(C.buffer),h=L[0]*U,x=L[1]*U,O=L[2]*U,y=L[3]*E,v=L[4]*E,i=L[5]*E,D=L[6],I=L[7]; +if(p&&!r)for(var m=z.y+.5;m>>2<<2)-1e-9,d=-.1+(D>>>1<<1)-1e-9,g=~~U,X=b==0?0:1/b,n=h==0?0:1/h; +for(var R=0;R0){V=Math.max(V,-l*X); +F=Math.min(F,(U-l)*X)}else{F=Math.min(F,-l*X);V=Math.max(V,(U-l)*X)}if(h==0){}else if(n>0){V=Math.max(V,-w*n); +F=Math.min(F,(E-w)*n)}else{F=Math.min(F,-w*n);V=Math.max(V,(E-w)*n)}if(F<0)F=0;if(V>F)V=F;V=Math.ceil(V); +F=~~F;I=~~(R*i);for(var Z=0;Z=0&&P=0&&P+1=0&&b=0&&b+1E-1?E-1:P,I=P<-1?0:P>E-2?E-1:P+1,m=b<0?0:b>Y-1?Y-1:b,f=b<-1?0:b>Y-2?Y-1:b+1; +Q=U[m*E+D];K=U[m*E+I];h=U[f*E+D];x=U[f*E+I]}else{var D=(P+50*E)%E,I=(P+50*E)%E,m=(b+50*Y)%Y,f=(b+50*Y)%Y; +Q=U[m*E+D];K=U[m*E+I];h=U[f*E+D];x=U[f*E+I]}var A=L-P,d=C-b,g=(1-d)*(1-A)*(Q>>>24),X=(1-d)*A*(K>>>24),n=d*(1-A)*(h>>>24),R=d*A*(x>>>24),l=g+X+n+R,w=g*(Q&255)+X*(K&255)+n*(h&255)+R*(x&255),V=g*(Q>>>8&255)+X*(K>>>8&255)+n*(h>>>8&255)+R*(x>>>8&255),F=g*(Q>>>16&255)+X*(K>>>16&255)+n*(h>>>16&255)+R*(x>>>16&255); +if(l==0)z[r]=0;else{var Z=1/l;w=~~(w*Z+.5);V=~~(V*Z+.5);F=~~(F*Z+.5);l=~~(l+.5);z[r]=l<<24|F<<16|V<<8|w}}; +c.I.Pi=function(L,C,U,E,Y,z){var r=L-.499999,p=C-.499999,T=~~r,k=~~p,P=r-T,b=p-k,Q=(1-b)*(1-P),K=(1-b)*P,h=b*(1-P),x=b*P,O=k*E+T<<2,y=(k+1)*E+T<<2,v=Q*U[O]+K*U[O+4]+h*U[y]+x*U[y+4],i=Q*U[O+1]+K*U[O+5]+h*U[y+1]+x*U[y+5],D=Q*U[O+2]+K*U[O+6]+h*U[y+2]+x*U[y+6],I=Q*U[O+3]+K*U[O+7]+h*U[y+3]+x*U[y+7]; +z[0]=v;z[1]=i;z[2]=D;z[3]=I};c.I.uw=function(L,C,U,E,Y){L-=.499999;C-=.499999;var z=Math.floor(L),r=Math.floor(C),p=L-z,T=C-r,k=(1-T)*(1-p),P=(1-T)*p,b=T*(1-p),Q=T*p,K=(z+50*E)%E,h=(z+1+50*E)%E,x=(r+50*Y)%Y,O=(r+1+50*Y)%Y,y=U[x*E+K],v=U[x*E+h],i=U[O*E+K],D=U[O*E+h]; +if(y==null||D==null)throw"e";return k*y+P*v+b*i+Q*D};c.I.bN=function(L,C,U,E,Y,z,r,p,T,k,P,b){var Q=new Uint32Array(L.buffer),K=new Uint32Array(E.buffer),h=(1+2*k)/Y,x=[],O=[]; +for(var y=0;yC-1?C-1:I)),A=~~(.5+(m<0?0:m>U-1?U-1:m)); +K[i*Y+y]=Q[A*C+f]}}};c.I.H9=function(L,C,U,E,Y,z,r,p,T,k,P,b){var Q=new Uint32Array(L.buffer),K=new Uint32Array(E.buffer),h=1/b,x=[],O=U*4,y=1/O; +for(var v=0;vC?C:U},a6c:function(L,C,U,E,Y,z,r,p){var T=U[0],k=U[1],P=U[2],b=U[3],Q=E.d,K=E.v,h=new Float64Array(Q*4+8),x=new Float64Array(Q*4+8); +for(var O=0,H=0;O>1,f=P.oo.v-U.v>>1,A=P.oo.d,d=-.6*I,g=(-.6+.4)*I,X=(-.6+2*.4)*I,n=(-.6+3*.4)*I; +for(var R=0,H=0;R=1){e=(a<=0?0:K)<<2;C[H]=y[e];C[H+1]=y[e+1];C[H+2]=y[e+2];C[H+3]=y[e+3];continue}e=Math.max(0,Math.min(K-1,Math.round((a+d)*K)))<<2; +V+=y[e];F+=y[e+1];Z+=y[e+2];w+=y[e+3];e=Math.max(0,Math.min(K-1,Math.round((a+g)*K)))<<2;V+=y[e];F+=y[e+1]; +Z+=y[e+2];w+=y[e+3];e=Math.max(0,Math.min(K-1,Math.round((a+X)*K)))<<2;V+=y[e];F+=y[e+1];Z+=y[e+2];w+=y[e+3]; +e=Math.max(0,Math.min(K-1,Math.round((a+n)*K)))<<2;V+=y[e];F+=y[e+1];Z+=y[e+2];w+=y[e+3];C[H]=V>>>2; +C[H+1]=F>>>2;C[H+2]=Z>>>2;C[H+3]=w>>>2}}};c.W.Sa=function(L,C,U){var E=[];for(var H=0;H>16&255,P:C>>8&255,O:C&255};else if(L[H].v.Type.v.Clry=="BckC")Y={h:U>>16&255,P:U>>8&255,O:U&255}; +else Y=c.W.Lt(L[H].v.Clr.v);E.push(Y)}return E};c.W.Lt=function(L){var C,U=L.classID;if(U=="RGBC"){if(L.Rd)C={h:L.Rd.v,P:L.Grn.v,O:L.Bl.v}; +else C={h:L.redFloat.v*255,P:L.greenFloat.v*255,O:L.blueFloat.v*255}}else if(U=="HSBC"){C=c.D5(L.H.v.val/360,L.Strt.v/100,L.Brgh.v/100); +C.h*=255;C.P*=255;C.O*=255}else if(U=="CMYC"){var E=100-L.Cyn.v,Y=100-L.Mgnt.v,z=100-L.Ylw.v,r=100-L.Blck.v,p=255*E*r*1e-4,T=255*(.2*E+.8*Y)*r*1e-4,k=255*(.2*Y+.8*z)*r*1e-4; +C={h:p,P:T,O:k}}else if(U=="Grsc")C={h:255-L.Gry.v,P:255-L.Gry.v,O:255-L.Gry.v};else if(U=="LbCl"){C=c.BR(L.Lmnc.v,L.A.v,L.B.v)}else console.log(L); +if(isNaN(C.h))C.h=C.P=C.O=0;return C};c.W._b=function(L){return{classID:"RGBC",Rd:{t:"doub",v:L.h},Grn:{t:"doub",v:L.P},Bl:{t:"doub",v:L.O}}}; +c.W.a1Q=function(L,C,U,E){var Y=[],z=1/(U-0);for(var H=0;HA)hP[H]=255-(255-S)*f3}}if(O)console.log("init",Date.now()-x);x=Date.now();if(Y*y>0){d2.set(ch); +c.qM.IH(d2,ch,new _(0,0,U,E),y)}if(p*v>0){d2.set(hP);c.qM.IH(d2,hP,new _(0,0,U,E),v)}if(O)console.log("blur",Date.now()-x); +x=Date.now();var go=c.F(256),d6=c.F(256);for(var H=0;H<256;H++){var iB=H*(1/255),hS=0;hS=(1-Math.pow(1-iB,d))*255; +go[H]=Math.max(0,Math.min(255,~~(hS+.5)));hS=Math.pow(iB,g)*255;d6[H]=Math.max(0,Math.min(255,~~(hS+.5)))}var eF=new Uint8ClampedArray(C.buffer),bQ=new Float32Array(32768); +for(var H=0;H<32768;H++){dK=Math.sqrt(H)*(1/128);if(iN>1)dK=(1-dK)*(iN-1)+1;else dK=dK*(iN-1)+1;bQ[H]=dK}for(K=0; +K400)h++;var x=L,O=C,y=T,v=Math.floor(O.d/h),i=Math.floor(O.v/h); +L=c.F(v*i*4);c.scale.su(x,O.d,O.v,L,v,i,1/h);T=c.F(v*i);c.scale.fw(y,O.d,O.v,T,v,i,1/h);c.round(T,1); +var D=c.lJ(T,new _(0,0,v,i));if(D.ue())return 1;var I=Math.round((D.d+D.v)/2/15),m=Date.now(),f=c.F(v*i*4); +c.aej(L,f);var A=Int16Array,d=new A(v*i*24),g=new A(64),X=new A(64),n=new A(64),R=new A(64);for(var V=3; +V0){var V=Math.floor(H*bj),F=H-V*2*v; +al.push({x:F-v,y:V-i,G:N[H],Wl:-1})}}al.sort(function(d8,a6){return a6.G-d8.G});var bE=new Int32Array(v*i),eN=[]; +for(var H=0;H>2]=d6+1}if(z)console.log(Date.now()-m,"copied back"); +m=Date.now();c.l2.p8(dK,ch,r,null,1e3);if(z)console.log(Date.now()-m,"poisson smooth");m=Date.now(); +c.La(dK,r,E,Y);return 0};c.Qp.b2=function(L,C,U,E,Y,z){return c.Qp.pG(L+Y.x,C+Y.y,U,E)&&z[(C+Y.y)*U+(L+Y.x)]==-1?0:1e9}; +c.Qp.any=function(L,C,U,E,top,Y,z,r){var p=Date.now(),T=[-1,0,0,-1,1,0,0,1],k=1e99,P=[],b=[],Q=2*(r*2*3+r*2),K=null,h=0,x=0,O=0,y=1e99; +while(!0&&Date.now()1){if(L[H]==L[Z]){var M=0; +M+=c.Qp.PE(d+X.x,g+X.y,d+I.x,g+I.y,U,E,C,Y);M+=c.Qp.PE(V+X.x,F+X.y,V+I.x,F+I.y,U,E,C,Y);P[m]=H;P[m+1]=Z; +b[m]=M;b[m+1]=M;m+=2}else{var a=top[L[Z]],e=f,N=0,J=0,s=0;f++;N+=c.Qp.PE(d+X.x,g+X.y,d+I.x,g+I.y,U,E,C,Y); +N+=c.Qp.PE(V+X.x,F+X.y,V+I.x,F+I.y,U,E,C,Y);J+=c.Qp.PE(d+a.x,g+a.y,d+I.x,g+I.y,U,E,C,Y);J+=c.Qp.PE(V+a.x,F+a.y,V+I.x,F+I.y,U,E,C,Y); +s+=c.Qp.PE(d+a.x,g+a.y,d+X.x,g+X.y,U,E,C,Y);s+=c.Qp.PE(V+a.x,F+a.y,V+X.x,F+X.y,U,E,C,Y);P[m]=H;P[m+1]=e; +b[m]=N;b[m+1]=N;m+=2;P[m]=Z;P[m+1]=e;b[m]=J;b[m+1]=J;m+=2;P[m]=e;P[m+1]=r+1;b[m]=s;b[m+1]=0;m+=2}}}P[m]=r; +P[m+1]=H;b[m]=n;b[m+1]=0;m+=2;P[m]=H;P[m+1]=r+1;b[m]=R;b[m+1]=0;m+=2;A+=Math.min(n,R)}if(A>i)continue; +var f5=c._i.wi(f,m,r,r+1,P,b,i);if(f5.bR=k){break}k=i; +L=v;if((O&3)==0){if(i*1.03>=y)break;y=i}if((O&3)==0){var fq=0*top.length;for(var H=0;Hfq; +H++){if(L.indexOf(H)!=-1)continue;top.splice(H,1);for(var Z=0;ZH)L[Z]--;H--}}}return L}; +c.Qp.amd=function(L,C,U,E,Y,z){for(var H=0;H>1)};c.Qp.anZ=function(L,C,U,E,Y,z){var top=[]; +for(var H=0;H<60;H++){var r=c.Qp.SG(top,25,U,E,Y,L,C);if(r==null)break;else top.push(r)}if(top.length==0)return null; +var p=[];for(var H=0;H100){var r;r=c.Qp.SG(top,0,U,E,Y,L,C,T,k); +if(r==null)return null;top.push(r);b=0}}p.push(P)}return{top:top,I6:p}};c.Qp.PE=function(L,C,U,E,Y,z,r,p){if(L==U&&C==E)return 0; +if(L<0||C<0||L>=Y||C>=z||U<0||E<0||U>=Y||E>=z||p[C*Y+L]!=-1||p[E*Y+U]!=-1)return 1e7;var T=C*Y+L<<2,k=E*Y+U<<2,P=r[T]-r[k],b=r[T+1]-r[k+1],Q=r[T+2]-r[k+2]; +return 1+(P*P+b*b+Q*Q)};c.Qp.pG=function(L,C,U,E){return L>=0&&L=0&&C=E)return Y+1}return Y};c.Qp.y4=function(L,C,U,E,Y){var z=16,Q=0;if(C-L<=z){U.push(99,L,C); +return}c.Qp.mE(L,C,E,Y);var r=-1,p=-1;for(var H=4;H<24;H++){var T=Y[2*H+1]-Y[2*H];if(T>p){p=T;r=H}}var k=L+C>>1,P=c.Qp.a0q(k,L,C,E,r),b=-1; +for(var H=L;H<=C;H++)if(E[24*H+r]==P){if(b==-1)b=H;Q=H}if(L+8C-Q)k=b;else if(Q+1T)E[(z<<1)+1]=r}}}; +c.Qp.C2=function(L,C,U){var E=0,H=0;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E; +H++;E=U[L+H];U[L+H]=U[C+H];U[C+H]=E;H++};c.Qp.by=function(L,C,U,E){var Y=U+E>>>1,z=L[24*Y+C];while(U<=E){while(L[24*U+C]z)E--;if(U<=E){if(L[24*U+C]!=L[24*E+C])c.Qp.C2(U*24,E*24,L);U++;E--}}return U};c.Qp.a0q=function(L,C,U,E,Y){var z=0; +while(C!=U){z=c.Qp.by(E,Y,C,U);if(L>1; +H>0;H>>=1,Y--){for(z=0;z>Y&1)!=0;if(r){L+=U+"["+z+"] = "+C+"["+(-H+z)+"] - "+C+"["+z+"]; "}else{L+=U+"["+z+"] = "+C+"["+(H+z)+"] + "+C+"["+z+"]; "}}E=C; +C=U;U=E;L+="\n"}console.log(L)};c.Qp.anA=function(u,L,C){var U=L,E=C,Y=U,z=0,H,p,T;while(u>>z!=2)z++; +var r=z;for(H=u>>1;H>0;H>>=1,z--){for(p=0;p>z&1)!=0;if(T)E[p]=U[-H+p]-U[p];else E[p]=U[H+p]+U[p]}Y=U; +U=E;E=Y}if((r&1)==1)for(H=0;HU)U=z;if(rY)Y=r}return[C,E,U,Y]};c.a5J=function(L,C,U,E,Y){function z(S,fs,bz,g6){return Math.sqrt((S-bz)*(S-bz)+(fs-g6)*(fs-g6))}function r(S,fs){return S>=0&&S=0&&fs=C)return C-1;return S}function T(S){if(S<0)return 0;if(S>=U)return U-1;return S}function k(H,S){var fs=S[3]*(1/255),bz=E[H]+S[0]*fs; +if(bz>255)bz=255;E[H]=bz;bz=E[H+1]+S[1]*fs;if(bz>255)bz=255;E[H+1]=bz;bz=E[H+2]+S[2]*fs;if(bz>255)bz=255; +E[H+2]=bz}function P(S,fs,bz){if(!e(S,fs))return;if(bz[3]<0)bz[3]=0;k((fs*C+S)*4,bz)}function b(S){var fs=S.slice(0,3); +fs[3]=0;return fs}var Q=C/800;function K(S){return Math.round(S*Q)}function h(){for(var H=0;H<=300;H++){J[H]=x(H)}}function x(U){var S=.8,fs=.2,bz=S*fs,g6=U/60%2-1,al=bz*(1-g6*g6),bj=fs-bz,bE; +if(U<60){bE=[bz+bj,al,0]}else if(U<120){bE=[al,bz,0]}else if(U<180){bE=[0,bz,al]}else if(U<240){bE=[0,al,bz]}else if(U<300){bE=[al,0,bz]}else{bE=[bz,0,al]}return[(bE[0]+bj)*255,(bE[1]+bj)*255,(bE[2]+bj)*255]}function O(U){return J[~~U]}function y(S){return 1-v(S)}function v(S){return S-~~S}function i(S,fs,bz,g6){M(S,fs,bz,0,fs+1,1,g6)}function D(S,fs,bz,g6,al,bj){M(S,fs,bz,0,g6,1,al,bj)}function I(S){for(var H=0; +Hfs||iB<=fs-al)break;var hS=(iB-fs+al)/al;dK[3]=ch-g6*(bj==1?hS:Math.pow(hS,bj));k((d6*C+hr)*4,dK)}dp=T(iN+f3); +for(var d6=dp;d6>go;d6--){var iB=z(hr,d6,hj,iN);if(iB>fs||iB<=fs-al)break;var hS=(iB-fs+al)/al;dK[3]=ch-g6*(bj==1?hS:Math.pow(hS,bj)); +k((d6*C+hr)*4,dK)}}if(bE>0){M(S,fs+bE,dK,dK[3],bE,1,0,0,!0)}if(eN>0){M(S,fs-al,N(bz),-bz[3],eN,1,0,0,!0)}}function A(S,fs,bz,g6,al,bj){M(S,fs,bz,bz[3],fs+1,1,g6,al,bj)}function d(S,fs,bz,g6,al){if(al==null)al=!1; +var bj=S.x,bE=S.y;g6*=f5;if(!al){fs=a(fs);bz=a(bz)}var eN=p(bj-fs),dk=p(bj+fs);for(var hj=eN;hjfs||hr<=fs-bz)break;var fv=(fs-hr)/bz,f3=O(300*fv); +f3[3]=g6;k((d2*C+hj)*4,f3)}ch=T(bE+dK);for(var d2=ch;d2>hP;d2--){var hr=z(hj,d2,bj,bE);if(hr>fs||hr<=fs-bz)break; +var fv=(fs-hr)/bz,f3=O(300*fv);f3[3]=g6;k((d2*C+hj)*4,f3)}}}function g(s,S){var fs=s.UO,bz=s.D1,g6=S.slice(0),al=S[3]*f5,bj=Math.abs(bz.y-fs.y)>Math.abs(bz.x-fs.x); +if(bj){var bE=fs.x;fs.x=fs.y;fs.y=bE;bE=bz.x;bz.x=bz.y;bz.y=bE}if(fs.x>bz.x){var bE=fs;fs=bz;bz=bE}var eN=bz.x-fs.x,dk=bz.y-fs.y,hj=eN==0?1:dk/eN,iN=Math.round(fs.x),dK=fs.y+hj*(iN-fs.x),ch=y(fs.x+.5),hP=iN,d2=~~dK; +if(bj){g6[3]=al*y(dK)*ch;P(d2,hP,g6);g6[3]=al*v(dK)*ch;P(d2+1,hP,g6)}else{g6[3]=al*y(dK)*ch;P(hP,d2,g6); +g6[3]=al*v(dK)*ch;P(hP,d2+1,g6)}var hr=dK-hj;iN=Math.round(bz.x);dK=bz.y+hj*(iN-bz.x);ch=v(bz.x+.5); +var fv=iN,f3=~~dK;if(bj){g6[3]=al*y(dK)*ch;P(f3,fv,g6);g6[3]=al*v(dK)*ch;P(f3+1,fv,g6)}else{g6[3]=al*y(dK)*ch; +P(fv,f3,g6);g6[3]=al*v(dK)*ch;P(fv,f3+1,g6)}if(bj){for(var dp=hP+1;dp<=fv-1;dp++){g6[3]=al*y(hr);P(~~hr,dp,g6); +g6[3]=al*v(hr);P(~~hr+1,dp,g6);hr+=hj}}else{for(var dp=hP+1;dp<=fv-1;dp++){g6[3]=al*y(hr);P(dp,~~hr,g6); +g6[3]=al*v(hr);P(dp,~~hr+1,g6);hr+=hj}}}function X(S,fs,bz,g6){for(var H=0;H<4;H++){var al=S.nE(fs+1.3*H,bz); +g(al,g6,1)}}function hZ(S,fs){this.x=Math.round(S);this.y=Math.round(fs)}var n=Math.PI/180;hZ.prototype.nE=function(S,fs){S=S*n; +var bz=this.x+fs*Math.cos(S),g6=this.y+fs*Math.sin(S);return new R(this.x,this.y,bz,g6)};hZ.prototype.a5f=function(S,fs){S=S*n; +var bz=this.Ze+fs*Math.cos(S),g6=this.afE+fs*Math.sin(S);return new hZ(bz,g6)};function R(S,fs,bz,g6){this.UO=new hZ(S,fs); +this.D1=new hZ(bz,g6)}R.prototype.pE=function(S){var fs=S*this.UO.x+(1-S)*this.D1.x,bz=S*this.UO.y+(1-S)*this.D1.y; +return new hZ(fs,bz)};var l=m,w=A,V=i,F=D,Z=d,M=f,a=K,e=r,N=b,J=[];h();for(var H=0;Hz){Y=H;z=Math.abs(L[H][E])}c.W1.ajk(L,E,Y);for(var H=E+1;H=0;H--){if(L[H][H]==0)return 1;var T=L[H][U]/L[H][H];C[H]=T;for(var p=H-1;p>=0;p--){L[p][U]-=L[p][H]*T; +L[p][H]=0}}return 0};c.W1.ajk=function(L,C,U){var E=L[C];L[C]=L[U];L[U]=E};c.W1.a0P=function(L){var C=L.length,U=c.W1._K(C,C); +for(var H=0;H255?255:C};c.hS.transform=function(L,C,U){var E=c.hS.oE,Y=L.h.length;for(var H=0;H>1]=Q;T[p+1]=r[P];r[P]=p+1;p+=4;T[p]=P;k[p+2>>1]=K;T[p+1]=r[b];r[b]=p+1;p+=4}return{sa:T,aad:k,afB:r}}; +c._i.wi=function(L,C,U,E,Y,z,r){var p=1,T=c._i.AC(L,C,U,E,Y,z),k=T.sa,P=T.aad,b=T.afB,Q=new Uint32Array(L),K=new c._i.B1(L),x=1,D=0; +K.push(U);K.push(E);var h=new c._i.B1(L),O=new Uint8Array(L),y=new Uint32Array(L);O[U]=1;O[E]=2;var v=new Uint32Array(L),i=new Uint32Array(L); +i[U]=i[E]=0;v[U]=v[E]=1;while(!0){var I=-1,n=0,V=1e30;while(!K.CQ()&&I==-1){var m=K.top(),f=O[m],A=b[m]-1; +while(A!=-1){var d=k[A],g=O[d],X=A^f-1<<2;if(P[X+2>>1]!=0){if(g==0){c._i.ry(m,A,d,O,y,i,v);K.push(d)}else if(g==f&&v[d]<=v[m]&&i[d]>i[m])c._i.ry(m,A,d,O,y,i,v); +else if(g!=f){I=X}}A=k[A+1]-1}if(I!=-1)break;K.pop()}if(I==-1){break}x++;var R=I;while(R!=-1){Q[n]=R; +n++;R=y[k[R^4]]-1}var l=n>>1;for(var H=0;H>1]);D+=V;if(D>=r)return{J_:null,bR:D};for(var H=0; +H>1]-=V;P[Z+2>>1]+=V;if(P[F+2>>1]==0&&O[m]==O[d]){if(O[m]==1){y[d]=0; +h.push(d)}if(O[m]==2){y[m]=0;h.push(m)}}}while(!h.CQ()){var m=h.pop(),f=O[m],A=b[m]-1,M=f==1?4:0,a=0,e=0,N=1e9; +while(A!=-1){var d=k[A],J=A^4,X=A^M;if(O[d]==f&&P[X+2>>1]>0&&c._i.a7Q(d,U,E,y,k,x,v,i)+1>1]>0){K.push(d)}if(y[d]==A+1){y[d]=0;h.push(d)}}A=k[A+1]-1}O[m]=0;K.remove(m)}}var s=[]; +for(var H=0;H>1)}if(O[d]==1&&O[m]!=1){s.push(C+H>>1)}}return{J_:s,bR:D}}; +c._i.ry=function(L,C,U,E,Y,z,r){E[U]=E[L];Y[U]=C+1;z[U]=z[L]+1;r[U]=r[L]};c._i.a7Q=function(L,C,U,E,Y,z,r,p){var T=L,k=E[L]-1,P=0; +while(k!=-1&&r[L]!=z){L=Y[k^4];k=E[L]-1;P++}if(k==-1&&L!=C&&L!=U)return 1e9;var b=p[L]+P;P=0;k=E[T]-1; +while(T!=L){p[T]=b-P;P++;r[T]=z;T=Y[k^4];k=E[T]-1}return b};c._i.ahw=function(L,C,U,E,Y,z){var r=c._i.AC(L,C,U,E,Y,z),p=r.sa,T=r.aad,k=r.afB,P=0,b=0,Q=new Uint32Array(L*2),K=new c._i.Th(L),h=0; +while(!0){K.reset();K.push(U);for(var H=0;H>1]>0&&h!=U){Q[h<<1]=x+1;Q[(h<<1)+1]=O;K.push(h)}O=p[O+1]-1}if(Q[E<<1]!=0){break}}if(Q[E<<1]==0){break}var y=1e30; +h=E;while(!0){var v=Q[h<<1]-1;if(v==-1)break;var i=Q[(h<<1)+1];y=Math.min(y,T[i+2>>1]);h=v}h=E;while(!0){var v=Q[h<<1]-1; +if(v==-1)break;var i=Q[(h<<1)+1],D=i^4;T[i+2>>1]-=y;T[D+2>>1]+=y;h=v}P+=y}var I=[];for(var H=0;H>1)}if((Q[h<<1]!=0||h==U)&&Q[v<<1]==0&&v!=U){I.push(C+H>>1)}}return{J_:I,bR:P}}; +c._i.Th=function(L){L|=L>>1;L|=L>>2;L|=L>>4;L|=L>>8;L|=L>>16;this.hG=new Uint32Array(L+1);this.ax=L; +this.ZL=0;this.T5=0};c._i.Th.prototype={push:function(L){var C=this.T5;this.hG[C]=L;this.T5=C+1&this.ax},pop:function(){var L=this.ZL,C=this.hG[L]; +this.ZL=L+1&this.ax;return C},CQ:function(){return this.ZL==this.T5},reset:function(){this.ZL=0;this.T5=0}}; +c._i.B1=function(L){L|=L>>1;L|=L>>2;L|=L>>4;L|=L>>8;L|=L>>16;this.hG=new Uint32Array(L+1);this.if=new Uint32Array(L+1); +this.ax=L;this.ZL=0;this.T5=0};c._i.B1.prototype={top:function(){return this.hG[this.ZL]},aha:function(){return this.hG[this.T5]},push:function(L){if(this.if[L]!=0)return; +this.if[L]=this.T5+1;var C=this.T5;this.hG[C]=L;this.T5=C+1&this.ax},pop:function(){var L=this.ZL,C=this.hG[L]; +this.if[C]=0;this.ZL=L+1&this.ax;return C},CQ:function(){return this.ZL==this.T5},remove:function(L){var C=this.if[L]-1; +if(C==-1)return;this.if[L]=0;if(C==this.ZL){this.pop();return}var U=this.pop();this.hG[C]=U;this.if[U]=C+1},Od:function(H){return H+this.ax+1&this.ax}}; +c._i.mj=function(L,C,U){var E=c._i.by(L,C,U);if(C>>1]; +while(C<=U){while(L[C]E)U--;if(C<=U){c._i.C2(L,C,U);C++;U--}}return C};c._i.C2=function(L,C,U){var E=L[C]; +L[C]=L[U];L[U]=E};c.zf={};c.zf.a75=function(L){for(var H=0;H.01){c.zf.M9(L,H); +continue}var b=c.zf.le(T);c.I.apply(C,b);c.zf.EL(T,[Math.min(b[0],b[2]),Math.min(b[1],b[3]),Math.max(b[0],b[2]),Math.max(b[1],b[3])]); +if(P==2){var Q=c.zf.GF(T),K=new c0(C[0],C[1],C[3],C[4],0,0);K.pL();if(K.R==0){Q.push(Q.shift());K.rotate(Math.PI/2); +K.pL()}if(K.R<0){var h=Q[0];Q[0]=Q[1];Q[1]=h;h=Q[2];Q[2]=Q[3];Q[3]=h}if(K.J2<0){var h=Q[0];Q[0]=Q[3]; +Q[3]=h;h=Q[1];Q[1]=Q[2];Q[2]=h}if(E)for(var x=0;x<4;x++)Q[x]=Q[x]*r;c.zf.ao(T,Q)}if(P==4){T.keyOriginLineWeight.v*=r; +var O=c.zf.BX(T);c.I.apply(C,O);c.zf.am3(T,O)}}};c.zf.H7=function(L,C){var U=C.n;for(var H=0;H=0}; +c.a.xK=function(L){var C={},U=null,E=0,Y={M:2,L:2,Q:4,C:6};for(var H=0;H5||N.type==0||N.type==3)continue;var J=N.OT.cg(N.D)||N.SC.cg(N.SC);if(!J){var n=N.OT.x*(N.D.y-N.SC.y)+N.D.x*(N.SC.y-N.OT.y)+N.SC.x*(N.OT.y-N.D.y); +if(Math.abs(n)<1e-6)J=!0}if(J)N.type--}return w};c.a.$x=function(){function L(E,Y,z,r){if(!r&&E.SC.cg(E.D)&&Y.OT.cg(Y.D)){z.c.push(Y.D.x,Y.D.y); +z.Z.push("L")}else{z.c.push(E.SC.x,E.SC.y,Y.OT.x,Y.OT.y,Y.D.x,Y.D.y);z.Z.push("C")}}function C(E,Y,H,z,r,p){var T=Y[H]; +E.c.push(T.D.x,T.D.y);E.Z.push("M");for(var k=H;k5)continue;var r=E[H].length;if(r==0)continue; +if(H==E.length-1)break;var p=E[H].type==3;C(z,E,H+1,r,p,Y);if(!p)z.Z.push("Z");H+=r}return z}return U}(); +c.a.aec=function(L){var C=L.c,U=[],E,Y=0;for(var H=0;H>>1}}return YQ){Q=x;b=H}}if(Q=0},C=function(E,Y,z,r,p,T,k,P){var b=k-z,Q=P-r,K=p-z,h=T-r,x=E-z,O=Y-r,y=b*b+Q*Q,v=b*K+Q*h,i=b*x+Q*O,D=K*K+h*h,I=K*x+h*O,m=1/(y*D-v*v),f=(D*i-v*I)*m,A=(y*I-v*i)*m; +return f>=0&&A>=0&&f+A<1},U=function(E){var u=E.length>>>1,H=0;if(u<3)return[];var Y=[],z=[];for(var H=0; +H3){var p=z[(H+0)%r],T=z[(H+1)%r],k=z[(H+2)%r],P=E[2*p],b=E[2*p+1],Q=E[2*T],K=E[2*T+1],h=E[2*k],x=E[2*k+1],O=!1; +if(L(P,b,Q,K,h,x)){O=!0;for(var y=0;y3*r)break}Y.push(z[0],z[1],z[2]); +return Y};return U}();c.a.a6r=function(L,C){var U={},E={Z:[],c:[]};for(var H=0;HU){var z=U; +U=C;C=z}if(Y[C+","+U])return;Y[C+","+U]=!0;E.Z.push("M","L");E.c.push(L[C],L[C+1],L[U],L[U+1])};c.a.Eb=function(L,C){var U=[],E=L.length; +for(var H=0;H=0;H--){var r=Math.pow(10,H);if(5*r*L<=z){E=5*r; +Y=10;break}if(2*r*L<=z){E=2*r;Y=4;break}if(1*r*L<=z){E=1*r;Y=10;break}}if(E==0){E=1;Y=10}var p=Math.ceil(E*L),T=c.F(p*c.Mb.j9*4); +c.n0(T,4278190080|U);for(var H=0;H1||E==1&&p>20)for(var H=1;H>16&255;L[C+1]=U>>8&255;L[C+2]=U&255}; +c.Mb.a0I=function(L,C,U,E,Y){var z=L.e4.d,r=L.e4.v,p=c.Mb.j9,T=C&255,k=C>>8&255,P=C>>16&255,m,f,A,d; +C=Math.round(T*.6)<<16|Math.round(k*.6)<<8|Math.round(P*.6);c.Mb.abD(Math.round(T*.8)<<16|Math.round(k*.8)<<8|Math.round(P*.8),U); +var b=this.af5(L.S,C,U),Q=L.sQ(0,0),K=L.sQ(z,r),h=Math.floor(Q.x/b.step)*b.step,x=Math.ceil(K.x/b.step)*b.step,O=Math.floor(Q.y/b.step)*b.step,y=Math.ceil(K.y/b.step)*b.step,v=L.Q6(h,O),i=L.Q6(x,O),D=b.step*L.S,I=Math.ceil(D); +m=L.lQ.data;f=new _(0,0,z,p);A=new _(0,0,I,p);d=new _(0,Math.round(p*.08),c.Mb.xp,c.Mb.xp);for(var H=0; +H<(x-h)/b.step;H++){A.x=Math.round(v.x+H*D);c.La(b.GE,A,m,f,A);var g=(h+H*b.step).toString(10);for(var X=0; +X>>24;h+=m;x+=m*(I>>>16&255);O+=m*(I>>>8&255); +y+=m*(I&255)}if(h!=0){var f=1/h;E[Q*Y+K]=h/(v*i)<<24|x*f<<16|O*f<<8|y*f}else E[Q*Y+K]=0}};c.t={};c.t.a82=function(L,C,U){var E=128,H=0,Y=U.d,z=U.v; +for(var r=0;r=E&&(p==0||L[H-1]>>2]}}}; +c.t.an5=function(L,C,U,E,Y,z){var r=U.d,p=U.v,T=0,k=0,P=r,b=p;if(E){T=E.x-U.x;k=E.y-U.y;P=T+E.d;b=k+E.v}var Q=new Uint8Array(C.buffer),K=new Uint32Array(C.buffer); +for(var h=k;h>>1<<24|255;else K[H]=255<<24|(O<<16|O<<8|O)}}; +c.KK={};c.KK.dJ=function(L,C,U){var E,Y;if(U=="front"){E=L.rect.clone();Y=c.KK.akG}if(U=="union"){E=L.rect.EU(C.rect); +Y=c.KK.EU}if(U=="difference"){E=C.rect.clone();Y=c.KK.abg}if(U=="intersection"){E=L.rect.eR(C.rect); +Y=c.KK.eR}if(U=="xor"){E=L.rect.EU(C.rect);Y=c.KK.ahD}if(E.ue())return null;var z=c.F(E.X());c.zM(C.channel,C.rect,z,E); +var r=c.F(E.X());c.zM(L.channel,L.rect,r,E);Y(r,z,z);var p=c.lJ(z,E);if(p.ue())return null;if(!p.cg(E)){var T=c.F(p.X()); +c.zM(z,E,T,p);z=T;E=p}return{channel:z,rect:E}};c.KK.akG=function(L,C,U){for(var H=0;HY+E)break}}; +c.W2.prototype.acg=function(L,C,U,E){var Y=Date.now(),z=1.96,p=0;if(U==null)U=5e-5;if(E==null)E=1e9; +var r=1-z,u=this.rows,T=this.qS,k=this.v9,P=this.yu,b=this._4;while(!0){var Q=0;for(var H=0;HY+E)break}};c.Nn={};c.Nn.kH=function(L,C,U){return{t:"Objc",v:{classID:"CrPt",Hrzn:{t:"doub",v:L},Vrtc:{t:"doub",v:C},Cnty:{t:"bool",v:U}}}}; +c.Nn.J=function(L,C){for(var H=0;H=C[C.length-1])return U[C.length-1];var H=1;while(C[H]=C[C.length-1])return U[C.length-1]; +var H=1;while(C[H]100)Y[1]=.4*Y[1];if(Y[2]>150)Y[1]=.7*Y[2]}return Y};c.Nn.Gj=function(L,C){var U=new Uint8Array(L.length); +for(var H=0;Hx){var y=O;O=x;x=y}C[H]=Q+c.style.a0O(x,O,K)}};c.style.a0O=function(L,C,U){return(.5-U)*L};c.style.EF=function(L,C,U,E){if(E==null){E=!0; +for(var H=0;H=0;r--)c.style.Cv(C,L,U,H+r<<1,1)}for(var z=E-2; +z>=0;z--){var H=z*U;for(var r=0;r<=U-1;r++)c.style.fc(C,L,U,H+r<<1,1);for(var r=1;r<=U-1;r++)c.style.Cv(C,L,U,H+r<<1,-1); +for(var r=U-2;r>=0;r--)c.style.Cv(C,L,U,H+r<<1,1)}};c.style.Cv=function(L,C,U,E,Y){var z=(E>>>1)+Y<<1,r=L[E],p=L[E+1],T=L[z]+Y,k=L[z+1],P=T*T+k*k,b=r*r+p*p; +if(k!=16383&&(r==16383||Math.sqrt(P)+(.5-C[(E>>>1)+k*U+T]*(1/255))>>1)+p*U+r]*(1/255)))){L[E]=T; +L[E+1]=k}};c.style.fc=function(L,C,U,E,Y){var z=(E>>>1)+Y*U<<1,r=L[E],p=L[E+1],T=L[z],k=L[z+1]+Y,P=T*T+k*k,b=r*r+p*p; +if(T!=16383&&(r==16383||Math.sqrt(P)+(.5-C[(E>>>1)+k*U+T]*(1/255))>>1)+p*U+r]*(1/255)))){L[E]=T; +L[E+1]=k}};c.style.agT=function(L,C,U,E){var Y=U*E;for(var H=0;H=0;r--)c.style.Xg(C,L,U,H+r<<1,1)}for(var z=E-2;z>=0;z--){var H=z*U;for(var r=0;r<=U-1; +r++)c.style.s1(C,L,U,H+r<<1,1);for(var r=1;r<=U-1;r++)c.style.Xg(C,L,U,H+r<<1,-1);for(var r=U-2;r>=0; +r--)c.style.Xg(C,L,U,H+r<<1,1)}};c.style.Xg=function(L,C,U,E,Y){var z=(E>>>1)+Y<<1,r=L[E],p=L[E+1],T=L[z]+Y,k=L[z+1],P=T*T+k*k,b=r*r+p*p; +if(k!=16383&&(r==16383||P>>1)+Y*U<<1,r=L[E],p=L[E+1],T=L[z],k=L[z+1]+Y,P=T*T+k*k,b=r*r+p*p; +if(T!=16383&&(r==16383||P=0;p--)C[p+z-U]=Math.min(C[p+z-U],C[p+z-U+1]);for(var T=E-2;T>=0;T--){var H=T*U+U-1;C[H]=Math.min(C[H],Math.min(C[H+U]+1,C[H+U-1]+Math.SQRT2)); +for(var p=U-2;p>=1;p--){var k=C[--H],P=Math.min(C[H+1]+1,Math.min(C[H+U-1]+Math.SQRT2,Math.min(C[H+U]+1,C[H+U+1]+Math.SQRT2))); +if(P=0;T--){if(L[T*U+r]>Y)p=0;else p++;z[T]=p}p=U+E;for(var T=0; +TY)p=0;else p++;C[T*U+r]=p0)L[H]=Math.max(0,Math.min(255,E+C*2*(c.style.b6(H)-128)))}else for(var H=0; +H0)L[H]=Math.max(0,Math.min(255,E+Math.min(E*3,C*2*(c.style.b6(H)-128))))}}; +c.style.b6=function(L){L=L^61^L>>16;L=L+(L<<3);L=L^L>>4;L=L*668265261;L=L^L>>15;return L&255};c.AF={}; +c.AF.lu=function(L,C,U){var E=L.canvas,Y=B.M(),z=Math.floor;if(E.width!=z(C*Y)||E.height!=z(U*Y))B.wS(E,C,U,L)}; +c.AF.ZY=function(L,C,U,E,Y,z){c.AF.lu(L,C,U);if(z==null)z=!1;var r=Y.channel,p=Y.rect,T=!Y.isEnabled; +C=Math.floor(C*B.M());U=Math.floor(U*B.M());if(C*U==0)return;var k=L.createImageData(C,U),P=k.data,b=1/C,Q=1/U; +for(var H=0;H=p.x+p.d||y=p.y+p.v)v=Y.color;else v=r[(y-p.y)*p.d+(O-p.x)];v=255*(255-Y.Ve)+v*Y.Ve>>>8; +if(z)v=170+Math.round(.4*(v-170));P[x]=v;P[x+1]=v;P[x+2]=v;P[x+3]=255}L.putImageData(k,0,0);if(T)c.AF.iB(L,C,U)}; +c.AF.afg=function(L,C,U,E){L.fillStyle="#eeeeee";L.fillRect(.6*C,.6*U,C,U);L.lineWidth=1.5;var Y=.65*C,z=.95*C,r=.65*U,p=.95*U,T=.75*C,k=.85*C,P=.75*U,b=.85*U; +L.beginPath();L.moveTo(Y,r);L.lineTo(z,r);L.lineTo(z,p);L.lineTo(Y,p);L.lineTo(Y,r);L.moveTo(T,P);L.lineTo(k,P); +L.lineTo(k,b);L.lineTo(T,b);L.lineTo(T,P);L.closePath();L.stroke()};c.AF.t7=[];c.AF.aaG=function(L,C,U){var E,Y,z,r=B.M(); +C=Math.floor(r*C);U=Math.floor(r*U);E=Math.ceil(Math.max(C,U)*.35);Y=C-E;z=U-E;var p=c.AF.t7[E];if(p==null){var T=B.w("canvas"),k=T.getContext("2d"); +T.width=T.height=E;k.fillStyle="#eeeeee";k.fillRect(0,0,E,E);k.lineWidth=1;k.strokeRect(2.5,2.5,E-5,E-5); +var P=k.createImageData(3,3);c.n0(P.data,4278190080);P.data[4*4]=P.data[4*4+1]=P.data[4*4+2]=238;k.putImageData(P,1,1); +k.putImageData(P,E-4,1);k.putImageData(P,1,E-4);k.putImageData(P,E-4,E-4);p=c.AF.t7[E]=k.getImageData(0,0,E,E)}L.putImageData(p,Y,z)}; +c.AF.adO=function(L,C,U,E,Y){c.AF.lu(L,C,U);C=Math.floor(C*B.M());U=Math.floor(U*B.M());var z=C/E.d; +if(C*U==0)return;L.fillStyle="#999999";L.setTransform(1,0,0,1,0,0);L.clearRect(0,0,C,U);var r=c.AF.Nu; +if(r==null){r=c.AF.Nu=JSON.parse(JSON.stringify(gM.H0.default));r.strokeEnabled.v=!0}r.strokeStyleLineWidth.v.val=1*B.M()/z; +L.fillStyle="#ffffff";L.scale(z,z);c.Y.VR(Y.n,L,0,0);c.Y.VR(Y.n,L,0,0,r)};c.AF.MC=null;c.AF.MK=function(L,C,U,E,Y,z,r,p){c.AF.lu(L,C,U); +C=Math.floor(C*B.M());U=Math.floor(U*B.M());if(C*U==0)return;var T=Math.max(C,U),k=c.AF.MC;if(k==null||k.width=x||m=y){P[D]=f; +P[D+1]=f;P[D+2]=f;P[D+3]=255}else{var A=(m-z.y)*z.d+(I-z.x)<<2,d=Y[A+3]*K;P[D]=Y[A+0]*d+f*(1-d);P[D+1]=Y[A+1]*d+f*(1-d); +P[D+2]=Y[A+2]*d+f*(1-d);P[D+3]=255}}if(p!=null)for(var H=0;H5||z.type==0||z.type==3)continue;if(C!=null&&C.indexOf(Y)==-1)continue; +if(U!=null&&U.indexOf(H)==-1)continue;E.push(z.OT.x);E.push(z.OT.y);E.push(z.D.x);E.push(z.D.y);E.push(z.SC.x); +E.push(z.SC.y)}return E};c.Y.FZ=function(L,C,U,E){var Y=0,z=-1;for(var H=0;H5||r.type==0||r.type==3)continue;if(U!=null&&U.indexOf(z)==-1)continue; +if(E!=null&&E.indexOf(H)==-1)continue;r.OT.U6(L[Y],L[Y+1]);r.D.U6(L[Y+2],L[Y+3]);r.SC.U6(L[Y+4],L[Y+5]); +Y+=6}};c.Y.IL=function(L,C,U,E){var Y=c.Y.GY(L,U,E);c.a.J(Y,C,Y);c.Y.FZ(Y,L,U,E)};c.Y.anl=function(L,C,U,E){var Y=c.Y.GY(L,U,E); +c.I.apply(C,Y);c.Y.FZ(Y,L,U,E)};c.Y.akj=function(L,C,U,E){if(U==null&&E==null){var Y=c.Y.abc(L,40);for(var H=0; +H5){U.push(JSON.parse(JSON.stringify(E)));continue}var Y=c.Y.a6o(L,H+1,E.length); +Y=c.a.ub(Y,C);var z=c.Y.amo(Y);H+=E.length;E=JSON.parse(JSON.stringify(E));E.length=z.length;U.push(E); +for(var r=0;r5)continue;var C=L[H].length;if(!(C==4||C==6||C==8)){H+=C; +continue}for(var U=0;U5)continue; +if((z.type==0||z.type==3)&&z.ZZ!=-1)E++;if(C!=null&&C.indexOf(E)==-1)continue;if(H==L.length-1)break; +var r=z.type==3,p=z.length,T=z.ZZ,k=c.Y.amG(L,H+1,p,r);if(U==null)U=k;else if(Y){if(C!=null||T==0||T==-1||T==2)U=U.EU(k); +else if(T==1)U=U;else if(T==3){U=k;Y=!1}}else{if(C!=null||T==0||T==-1||T==1)U=U.EU(k);else if(T==2)U=U; +else if(T==3)U=U.eR(k)}H+=p}if(U==null||U.d<0||U.v<0)U=new _(0,0,0,0);return U};c.Y.acU=new Float64Array(4); +c.Y.amG=function(L,H,C,U){var E=c.Y.acU;E[0]=1e30;E[1]=1e30;E[2]=-1e30;E[3]=-1e30;var Y=L[H+C-1];if(!U)c.Y.Hs(Y.D.x,Y.D.y,Y.SC.x,Y.SC.y,L[H].OT.x,L[H].OT.y,L[H].D.x,L[H].D.y,E); +for(var z=H;zb)b=m;if(fQ)Q=f}if(kT[2])T[2]=b; +if(Q>T[3])T[3]=Q};c.Y.VZ=function(L,C){var U=L.length-3,E=C%U,Y=Math.floor(E);if(C<0||Y>=U)return null; +var z=L[3+Y],r=L[3+(Y+1)%U],p=z.D,T=z.SC,k=r.OT,P=r.D,b=E-Y,Q=1-b,K=Q*Q*Q*p.x+3*Q*Q*b*T.x+3*Q*b*b*k.x+b*b*b*P.x,h=Q*Q*Q*p.y+3*Q*Q*b*T.y+3*Q*b*b*k.y+b*b*b*P.y; +return new hZ(K,h)};c.Y.OC=function(L){var C=2,U=c.Y.ov(L),E=!1;for(var H=2;H1)L=c.Y.Tx(L);var z=c.a.$x(L);return{ajy:Typr.U.pathToSVG({crds:z.c,cmds:z.Z},C),dE:E?1:0}}; +c.Y.Tx=function(L){c.Y.yg();var C,U=c.Y.V$(L),E=[];for(var H=0;H=0;H--){var p=r[H][0],T=p.hitTest(z,Y);if(T!=null)return{Oi:H,$Y:U?T.location.index:null}}return{Oi:-1}}; +c.Y.lk=function(L,C){var U=[[],[],[]];for(var H=0;H5||E.type==0||E.type==3)continue; +if(C.qh(E.D))U[0].push(H);if(C.qh(E.OT))U[1].push(H);if(C.qh(E.SC))U[2].push(H)}return U};c.Y.afR=function(L,C,U){var E=U.slice(0),Y=[null,null],z=-1,p=null; +for(var H=2;H=C)return E; +E++}return E};c.Y.Hb=function(L,C){var U=-1,E=0;for(var H=0;H180?360-h:h; +if(x5)continue; +var z=L[H].length,r;if(H==L.length-1)break;var p=L[H].type==3;if(H==2){if(!c.Y.M8(L))r="subtract";else r="unite"}else{if(L[H].ZZ==0)r="exclude"; +if(L[H].ZZ==1)r="unite";if(L[H].ZZ==2)r="subtract";if(L[H].ZZ==3)r="intersect"}if(L[H].ZZ!=-1){U=new paper.CompoundPath; +C.push([U,r]);U.fillRule="evenodd";U.fillColor=E}var T=[];for(var k=0;kc.Y.uM){c.Y.uM=Y}var z=U.d,r=U.v;if(E==null&&c.Y.e$(L)){var p=!0; +for(var H=2;H0)r=!0}if(!z&&p<20)L=c.Y.Tx(L)}for(var H=0; +H5)continue;var k=L[H].length;if(k==0)continue;if(H==L.length-1)break;var P=L[H].type==3,T=L[H].ZZ; +if(T!=-1&&Y==null){var b=["xor","source-over","destination-out","source-in"][T];C.globalCompositeOperation=b}if(L[H].ZZ!=-1){C.beginPath(); +if(Y){var Q=Y.strokeStyleLineWidth.v.val,K=Y.strokeStyleLineAlignment.v.strokeStyleLineAlignment,h=Y.strokeStyleLineCapType.v.strokeStyleLineCapType,x=Y.strokeStyleLineJoinType.v.strokeStyleLineJoinType,O=Y.strokeStyleMiterLimit.v,y=[],v=Y.strokeStyleLineDashSet.v; +for(var i=0;i1||Math.abs(z[H*4]-z[H*4+r])>1)U=!0}return!U}else return L.warpValue.v==0&&L.warpPerspective.v==0&&L.warpPerspectiveOther.v==0}; +c.h2.F=function(L){var C={classID:"warp",warpStyle:{t:"enum",v:{warpStyle:"warpNone"}},warpValue:{t:"doub",v:0},warpPerspective:{t:"doub",v:0},warpPerspectiveOther:{t:"doub",v:0},warpRotate:{t:"enum",v:{Ornt:"Hrzn"}}}; +if(L){C.bounds={t:"Objc",v:{classID:"Rctn",Top:{t:"UntF",v:{type:"#Pxl",val:L.y}},Left:{t:"UntF",v:{type:"#Pxl",val:L.x}},Btom:{t:"UntF",v:{type:"#Pxl",val:L.y+L.v}},Rght:{t:"UntF",v:{type:"#Pxl",val:L.x+L.d}}}}; +C.uOrder={t:"long",v:4};C.vOrder={t:"long",v:4}}return C};c.h2.akF=function(L,C,U,E){for(var H=0;H0)P=P-V*P*E; +else b=b+V*b*E}else if(H==1||H==2)P=P-V*P*E;else if(r==1||r==2)b=b+V*b*E}if(U=="warpTwist"){if((H==1||H==2)&&(r==1||r==2)){var F=E*Math.PI/2,D=1+Math.abs(E)*2,Z=P*Math.cos(F)-b*Math.sin(F),M=P*Math.sin(F)+b*Math.cos(F); +P=Z*D;b=M*D}}if(U=="warpShellLower"||U=="warpShellUpper"){if(U=="warpShellUpper"){H=3-H;b=-b}if(H>2||H==2&&(r==0||r==3)){if(E>0){var a=f+H/3*2*K; +P=Math.sin(m)*a;b=-i*Q-K+Math.cos(m)*a;if(r==1||r==2){P=r==1?-n*a:n*a;b=-i*Q-K+X*a}}else{if((r==1||r==2)&&H==3){P=r==1?-n*f:n*f; +b=i*Q-X*f+K}else if(H==2){b=K-K*(2/3)*Math.cos(m);P=P+K*(2/3)*Math.sin(m)}}}if(U=="warpShellUpper"){H=3-H; +b=-b}}P+=Q;b+=K}T=P,k=b;L[p]=T+C.x;L[p+1]=k+C.y}}};c.h2.a27=function(L,C,U){var E=[];for(var Y=0;Y<4; +Y++)E.push(1-U+Y/3*2*U);var z=[];for(var Y=0;Y<4;Y++)z.push(1-C+Y/3*2*C);var r=[0,0,0,0],p=[0,0,0,0]; +for(var H=0;H<4;H++)for(var Y=0;Y<4;Y++){var T=2*(4*H+Y),k=L[T],P=L[T+1];r[Y]+=k/4;p[Y]+=P/4}for(var H=0; +H<4;H++)for(var Y=0;Y<4;Y++){var b=E[Y],T=2*(4*H+Y),k=L[T],P=L[T+1],Q=r[Y],K=p[Y];L[T]=Q+b*(k-Q);L[T+1]=K+b*(P-K)}var h=L.slice(0); +for(var H=0;H<4;H++)for(var Y=1;Y<3;Y++){var T=2*(4*H+Y),k=L[T],P=L[T+1],x=T+(Y==1?-2:2),O=L[x],y=L[x+1]; +L[T]=k-O;L[T+1]=P-y}var v=L[0],i=L[1],D=L[8],I=L[9],m=L[16],f=L[17],A=L[24],d=L[25],g=L[6],X=L[7],n=L[14],R=L[15],l=L[22],w=L[23],V=L[30],F=L[31],Z=g-v,M=X-i,a=n-D,e=R-I,N=l-m,J=w-f,s=V-A,f5=F-d; +for(var H=0;H<4;H++){var dx=2*H*4,fq=0,i9=0,e8=H==1?.33:.66,S=1-e8;if(H==0){fq=Z;i9=M}if(H==1){fq=S*Z+e8*-s; +i9=S*M+e8*-f5}if(H==2){fq=S*Z+e8*-s;i9=S*M+e8*-f5}if(H==3){fq=-s;i9=-f5}L[dx]=L[dx]+fq/2;L[dx+1]=L[dx+1]+i9/2; +L[dx+6]=L[dx+6]-fq/2;L[dx+7]=L[dx+7]-i9/2}for(var H=0;H<4;H++)for(var Y=1;Y<3;Y++){var T=2*(4*H+Y),k=L[T],P=L[T+1],x=T+(Y==1?-2:2),O=L[x],y=L[x+1],b=2*H/3; +L[T]=O+b*k;L[T+1]=y+b*P}for(var H=1;H<3;H++)for(var Y=1;Y<3;Y++){var T=2*(4*H+Y),k=L[T],P=L[T+1],fs=H==1?-8:-16,bz=H==1?16:8,g6=L[T+fs],al=L[T+fs+1],bj=L[T+bz],bE=L[T+bz+1],b=H/3; +k=(1-b)*g6+b*bj;P=(1-b)*al+b*bE;L[T]=k;L[T+1]=P}c.a.YK(h,L,L,C)};c.h2.a0k=function(L,C){return(4-L)*(1/3)}; +c.h2.a0A=function(L,C){return(1-L)*(3-L)/(3*C)};c.hk={};c.hk.amx=function(L,C,U,E,Y,z,r,p,T,k){for(var P=0; +P>>1; +L[C]=L[C+3]=L[U]=L[U+3]=r;L[C+1]=P;L[C+4]=p;L[U+1]=T;L[U+4]=P;L[C+2]=L[C+5]=L[U+2]=L[U+5]=k};c.hk.a5T=function(L,C,U,E,Y,z){var r=z*3; +for(var H=0;H>2;if(v==h)return p*3+z+r-T>>2;if(v==x)return z*3+p+r-Y>>2;return k*3+E+r-P>>2}; +c.hk.C3=function(L,C,U,E,Y){if(LC&&C>U)return~~(.5+E+(Y-E)*(C-L)/(U-L));else return(E+Y>>1)+(C+C-L-U>>2)}; +c.hk.mB=function(L,C,H,U){var E=C[H-U-1],Y=C[H-U+1],z=C[H],r=C[H+U-1],p=C[H+U+1],T=L[H-U-1],k=L[H-U+1],P=L[H],b=L[H+U-1],Q=L[H+U+1],K=Math.abs(k-b)+Math.abs(L[H-U-U+2]-P)+Math.abs(P-L[H+U+U-2])+Math.abs(Y-z)+Math.abs(z-r),h=Math.abs(T-Q)+Math.abs(L[H-U-U-2]-P)+Math.abs(P-L[H+U+U+2])+Math.abs(E-z)+Math.abs(z-p); +if(K>1<<1; +r+=P[1]>>1<<1}if(L.t50720){var b=L.t50720;p=z+b[0];T=r+b[1]}var Q=p-z,K=T-r,h=new Float32Array(Q*K*3); +if(L.t277[0]==1){var x=L.t33421;if(x==null){c.hk.amx(Y,C,U,h,z,r,Q,K)}else if(x.length!=2||x[0]!=2||x[1]!=2){console.log("Unknown CFA pattern size",x); +c.hk.fw(Y,C,U,h,z,r,Q,K,x[0],L.t33422)}else{var O=L.t33422.join(","),y=0;if(O=="0,1,1,2")y=0;else if(O=="1,0,2,1")y=1; +else if(O=="2,1,1,0")y=2;else if(O=="1,2,0,1")y=3;else throw"Unknown CFA pattern "+O;if((Q&1)!=0||(K&1)!=0)throw"e"; +c.hk.adL(Y,C,U,h,z,r,Q,K,y)}}else{for(var v=0;v=.92){var D=Math.min(y,i);if(D==y){v=Math.max(v,b[0]*y); +i=Math.max(i,b[1]*y)}else{y=Math.max(y,b[4]*i);v=Math.max(v,b[5]*i)}}var I=T[0]*y+T[1]*v+T[2]*i,m=T[4]*y+T[5]*v+T[6]*i,f=T[8]*y+T[9]*v+T[10]*i; +if(I<0)I=0;else if(I>1)I=1;if(m<0)m=0;else if(m>1)m=1;if(f<0)f=0;else if(f>1)f=1;I=Q[~~(I*999)];m=Q[~~(m*999)]; +f=Q[~~(f*999)];C[x]=~~(.5+I*255);C[x+1]=~~(.5+m*255);C[x+2]=~~(.5+f*255)}};c.raw.sp={ahn:function(L,C){var U=.5-.5*Math.cos(L*3.2),E=0; +if(C>0){var Y=L*.2;E=Y*L+(1-Y)*U}else{var z=Math.pow(L,.33);E=(1-z)*z+z*(L+(L-U)*.63)}var r=Math.abs(C); +return r*E+(1-r)*L},a2G:function(L,C){var U=0;if(C>0){var E=L*1.47,Y=Math.pow(L,2.4);U=Math.min(1,Y*L+(1-Y)*E)}else{var E=L*.68,Y=Math.pow(L,3); +U=Y*L*.5+(1-Y)*E}var z=Math.abs(C);return z*U+(1-z)*L},a68:function(L,C){var U=0;if(C>0){var E=Math.pow(L,.3),Y=L; +U=(1-L)*E+L*Y}else{var E=Math.pow(L,2.5),z=L,Y=L;U=Math.min(1,(1-z)*E+z*Y)}var r=Math.abs(C);return r*U+(1-r)*L}}; +c.raw.ajR=function(L){var C=L.width,U=L.height,E=C*U*L.t277,Y=new Uint16Array(E),z=null,r=0;c.raw.a2n(L,Y); +c.raw.H2(1,L,Y,C,U);if(L.t50712){z=L.t50712;r=z.length-1;if(z[r]>65535)throw"too big values"}var p=c.raw.Lm(L),T=c.raw.So(L); +if(z==null)for(var H=0;Hr)k=r; +k=z[k];Y[H]=Math.max(0,k-p)}return Y};c.raw.Lm=function(L){var C=L.t50714,U=C?C[0]:0,E=L.t50715,Y=L.t50716; +if(E)U+=E[0][0]/E[0][1];if(Y)U+=Y[0][0]/Y[0][1];return Math.round(U)};c.raw.So=function(L){var C=null,U=0; +if(L.t50712){C=L.t50712;U=C.length-1}var E=L.t50717?L.t50717[0]:(1<>>3,P=E[k]<<24|E[k+1]<<16|E[k+2]<<8|E[k+3];if((T&7)==0){r=P>>>18; +p=P>>>4&16383}else{r=P>>>14&16383;p=P&16383}}else if(Y==12){z=H+(H>>>1);r=E[z]<<4|E[z+1]>>4;p=(E[z+1]&15)<<8|E[z+2]}else if(Y==10){var T=H*10,k=T>>>3; +if((T&7)==0){r=(E[k]<<2|E[k+1]>>6)&1023;p=(E[k+1]<<4|E[k+2]>>4)&1023}else{r=(E[k]<<6|E[k+1]>>2)&1023; +p=(E[k+1]<<8|E[k+2]>>0)&1023}}else if(Y==8){z=H;r=E[z];p=E[z+1]}C[H]=r;C[H+1]=p}};c.raw.H2=function(L,C,U,E,Y){var z=C["t"+[51008,51009,51022][L-1]],P=0; +if(z==null)return;var r=E*Y,p=$.i,T=$.HD,k=new Uint8Array(z),ds=$.i(k,P);P+=4;for(var b=0;b>1}else if(Q==5&&L==1){var O=P,eN=p(k,O);O+=4; +var dk=p(k,O);O+=4;var hj=p(k,O);O+=4;for(var H=0;H>1}}else if(Q==7&&L==1){var O=P,ch=$.lD(k,O);O+=16;var hP=p(k,O);O+=4;var d2=p(k,O); +O+=4;var hr=p(k,O),fv=p(k,O+4);O+=8;var f3=p(k,O);O+=4;var dp=new Uint16Array(f3);for(var H=0;H1e-7); +return U};c.raw.yv=function(L,C){var U=eu.zZ(C),E=c.raw.ame,Y=L.t50778?L.t50778[0]:0,z=L.t50779?L.t50779[0]:0,r=E(L.t50721,L.t50722,Y,z,U.Vl),p=E(L.t50723,L.t50724,Y,z,U.Vl); +r=r||[1,0,0,0,1,0,0,0,1];p=p||[1,0,0,0,1,0,0,0,1];var T=L.t50727?[L.t50727[0],0,0,0,L.t50727[1],0,0,0,L.t50727[2]]:[1,0,0,0,1,0,0,0,1]; +return c.hS.multiply(c.hS.in(T),c.hS.multiply(c.hS.in(p),c.hS.in(r)))};c.raw.ame=function(L,C,U,E,Y){if(!L&&!C){return null}else if(L&&!C){return L}else if(YE){return C}else{var z=(1/Y-1/E)/(1/U-1/E),r=1-z,p=[]; +for(var H=0;H<9;H++)p[H]=L[H]*z+C[H]*r;return p}};var eu={};eu.a3p={x:.34567,y:.3585};eu.Hc=[{h:0,S0:.18006,oe:.26352,am:-.24341},{h:10,S0:.18066,oe:.26589,am:-.25479},{h:20,S0:.18133,oe:.26846,am:-.26876},{h:30,S0:.18208,oe:.27119,am:-.28539},{h:40,S0:.18293,oe:.27407,am:-.3047},{h:50,S0:.18388,oe:.27709,am:-.32675},{h:60,S0:.18494,oe:.28021,am:-.35156},{h:70,S0:.18611,oe:.28342,am:-.37915},{h:80,S0:.1874,oe:.28668,am:-.40955},{h:90,S0:.1888,oe:.28997,am:-.44278},{h:100,S0:.19032,oe:.29326,am:-.47888},{h:125,S0:.19462,oe:.30141,am:-.58204},{h:150,S0:.19962,oe:.30921,am:-.70471},{h:175,S0:.20525,oe:.31647,am:-.84901},{h:200,S0:.21142,oe:.32312,am:-1.0182},{h:225,S0:.21807,oe:.32909,am:-1.2168},{h:250,S0:.22511,oe:.33439,am:-1.4512},{h:275,S0:.23247,oe:.33904,am:-1.7298},{h:300,S0:.2401,oe:.34308,am:-2.0637},{h:325,S0:.24792,oe:.34655,am:-2.4681},{h:350,S0:.25591,oe:.34951,am:-2.9641},{h:375,S0:.264,oe:.352,am:-3.5814},{h:400,S0:.27218,oe:.35407,am:-4.3633},{h:425,S0:.28039,oe:.35577,am:-5.3762},{h:450,S0:.28863,oe:.35714,am:-6.7262},{h:475,S0:.29685,oe:.35823,am:-8.5955},{h:500,S0:.30505,oe:.35907,am:-11.324},{h:525,S0:.3132,oe:.35968,am:-15.628},{h:550,S0:.32129,oe:.36011,am:-23.325},{h:575,S0:.32931,oe:.36038,am:-40.77},{h:600,S0:.33724,oe:.36051,am:-116.45}]; +eu.zZ=function(L){var C=eu.Hc,U=2*L.x/(1.5-L.x+6*L.y),E=3*L.y/(1.5-L.x+6*L.y),Y=0,z=0,r=0;for(;r<31; +r++){Y=E-C[r].oe-C[r].am*(U-C[r].S0);if(r>0&&Y<0){break}z=Y}while(r>=C.length)r--;Y/=Math.sqrt(1+C[r].am*C[r].am); +z/=Math.sqrt(1+C[r-1].am*C[r-1].am);var p=z/(z-Y),T=1e6/((C[r].h-C[r-1].h)*p+C[r-1].h),k=U-((C[r].S0-C[r-1].S0)*p+C[r-1].S0),P=E-((C[r].oe-C[r-1].oe)*p+C[r-1].oe),b=Math.sqrt(1+C[r].am*C[r].am),Q=1/b,K=C[r].am/b,h=Math.sqrt(1+C[r-1].am*C[r-1].am),x=1/h,O=C[r-1].am/h,y=(Q-x)*p+x,v=(K-O)*p+O,i=Math.sqrt(y*y+v*v); +y/=i;v/=i;var D=(k*y+P*v)*-3e3;return{Vl:T,XB:D}};eu.a2F=function(L,C){var U=eu.Hc,E=1e6/L,Y=1;for(; +Y<31;Y++){if(E>>2;K[H+1]=x;if(x>4095)throw"e"}for(var H=0; +H<16385;H++)h[H]=H;for(var H=0;H<5;H++)for(var O=K[H]+1;O<=K[H+1];O++)h[O]=h[O-1]+(1<>>2); +c.raw.a1N(f,A,I>>>2,m);var d=new Uint8Array(D+I);d.set(new Uint8Array(A.buffer),D);var g=[];UTIF._readIFD(b,d,D,g,0,!1); +var X=g.pop(),n=X.t29458;L.t50728=[n[1]/n[0],1,n[1]/n[3]];L.t50730=[.5];var R=X.t29891;L.t50829=[R[1],R[0],R[3],R[2]]}else if(z.makerNote&&z.makerNote.t8208){var i=z.makerNote,l=i.t8208,w=l.length,V=0,F=new Uint8Array(256); +for(var H=249;H<256;H++)F[H]=H;for(var H=0;H<249;H++)F[H*H*H%249]=H;for(var H=0;H>>2;L.t50714=[P,P,P,P];L.t50717=[T[3]>>>2]}}else if(L.t271[0].startsWith("Canon")){var C=L.data,Z=C.slice(0),M=L.t50752,a=[],N=0; +if(M==null||M[0]==0&&M[1]==0)a.push(L.width);else{for(var H=0;H>1)*dx*2; +for(var H=0;H>>1,fq=L.height-d2>>>1;L.t50829=[fq,N,fq+d2,N+hP]}if(i.t12){var go=c.raw.yV(i.t12); +dp=[1/go[0],1,1/go[1]]}else if(i.t151){var d6=c.raw.a1Y(i,151),iB=d6[0],hs=d6[1],hS=d6[2];if(iB=="0100"&&hs>=80)throw"e"; +else if(iB=="0102"){var eF=[];for(var H=0;H<4;H++)eF.push(eN(hS,6+H*2));dp=[eF[1]/eF[0],1,eF[1]/eF[3]]}else if(iB=="0103"&&hs>=26){var eF=[]; +for(var H=0;H<4;H++)eF.push(eN(hS,16+H*2));dp=[eF[1]/eF[0],1,eF[3]/eF[2]]}else if(iB=="0204"&&hs>=564||iB=="0205"&&hs>=284){var D=iB=="0204"?6:14,eF=[]; +for(var H=0;H<4;H++)eF.push(eN(hS,D+H*2));dp=[eF[1]/eF[0],1,eF[1]/eF[3]]}else throw"e"}else console.log("no white balance info"); +if(r=="NIKON D1")dp=[1,1,1];if(dp)L.t50728=dp;var bQ=i.t150?i.t150:i.t140;if(bQ){var d8=bQ[iP++],a6=bQ[iP++],dX; +if(d8==73||a6==88)iP+=2110;iP+=8;var am=1<1)dX=Math.floor(am/(fj-1)); +if(d8==68&&a6==32&&dX>0){for(H=0;H>>0)*3125+1>>>0;Y[3]=Y[3]<<1|(Y[0]^Y[2])>>>31;for(var r=4;r<127; +r++)Y[r]=(Y[r-4]^Y[r-2])<<1|(Y[r-3]^Y[r-1])>>>31;for(var r=0;r<127;r++)Y[r]=$.i(z,r*4);for(;U>0;U--){Y[r&127]=Y[r+1&127]^Y[r+1+64&127]; +var k=Y[r&127],P=L[p];P^=k;C[T]=P;p++;T++;r++}};c.raw.amY=function(L,C){var U=$.ZA(C,0,4),E=c.raw.alG; +for(var H=0;H>>(H<<3)&255;var p=C[Y&255],T=U[r&255];return[p,T,96]};c.raw.a1Y=function(L,C){var U=L["t"+C],hs=U.length,E=c.raw.amY(C,U),Y=$.ZA(U,0,4),z,r=E[4]; +if(r==null)z=U.slice(4);else{z=new Uint8Array(hs-r);var p=c.raw.ao6(L),T=p[0],k=p[1],P=p[2];for(var H=0; +H1)e4++;for(var e8=0;e8=250?bQ:dx)<<2;eF[iP]=C[a6];eF[iP+1]=C[a6+1]; +eF[iP+2]=C[a6+2]}c.Wn(iB,eF,3);if(P)console.log(Date.now()-k);k=Date.now();return eF};c.MO.bR=function(L,C,U,E,Y,z,r,p,T){var k=L>>>16,P=L&65535,b=k-(U>>>16),Q=P-(U&65535),K=k-(Y>>>16),h=P-(Y&65535),x=Math.sqrt(b*b+Q*Q)*r,O=Math.sqrt(K*K+h*h)*p; +if(x+O>=T)return 1e9;var y=c.MO.aag(C,E,z);return y+x+O};c.MO.aag=function(L,C,U){var E=L>>>16,Y=L>>>8&255,z=L&255,r=C>>>16,p=C>>>8&255,T=C&255,k=U>>>16,P=U>>>8&255,b=U&255,Q=c.MO.alpha(L,C,U),K=E-(Q*r+(1-Q)*k),h=Y-(Q*p+(1-Q)*P),x=z-(Q*T+(1-Q)*b); +return Math.sqrt(K*K+h*h+x*x)};c.MO.alpha=function(L,C,U){var E=L>>>16,Y=L>>>8&255,z=L&255,r=C>>>16,p=C>>>8&255,T=C&255,k=U>>>16,P=U>>>8&255,b=U&255,Q=r-k,K=p-P,h=T-b,x=E-k,O=Y-P,y=z-b,v=Q*Q+K*K+h*h,i=v==0?.5:(x*Q+O*K+y*h)/v; +return Math.max(0,Math.min(1,i))};c.MO.amR=function(L){};c.MO.yd=function(L,C,U,E,Y){var z=[],r=C-1,p=U-1; +for(var T=1;T>>2;console.log(b,h);Q=c.F(b.X()); +c.wH(P.eB,Q,0);c.Wn(C,k,0);P=c.CE(k,U);P=c.CE(P.eB,P.rect);K=c.F(b.X());c.wH(P.eB,K,0);var x=c.Sq.a5p(Q,K,b,h,Y),O=x[0],y=x[1],v=new _(0,0,b.d*2,b.v*2); +O=T(O,b,v,!0);O=T(O,v,U,!0);y=T(y,b,v,!0);y=T(y,v,U,!0);var i=c.F(p);for(var H=0;H>>2,r>>>2);h=E>>>2;Q=c.Sq.anX(L,z,r);K=c.Sq.a18(C,z,r);if(P)console.log(Date.now()-k); +k=Date.now();var x=c.Sq.adx(Q,K,b,h,Y),O=x[0],y=x[1],v=x[2],i=x[3];if(P)console.log(Date.now()-k);k=Date.now(); +var D=c.F(p);for(var I=0;I>>2)*(z>>>2)+(m>>>2),A=H<<2,d=O[f]*C[A]+y[f]*C[A+1]+v[f]*C[A+2]+i[f]*255; +D[H]=Math.max(0,Math.min(255,~~(.5+d)))}if(P)console.log(Date.now()-k);k=Date.now();return D};c.Sq.anX=function(L,C,U){var E=C>>>2,Y=U>>>2,z=c.F(C*U); +for(var r=0;r>>2,Y=U>>>2,z=c.F(C*U*4); +for(var r=0;rC-p-1||P>U-p-1){var H=P*C+b,Q=H<<2,K=0;if(PC-p-1)K=8;T[K]+=L[Q];T[K+1]+=L[Q+1];T[K+2]+=L[Q+2];T[K+3]++;Y[H]=255}}for(var H=0;H<12;H+=4)for(var h=0; +h<3;h++)k[H+h]=T[H+h]/T[H+3];var x=new Float32Array(E);for(var H=0;H>>1,r=U>>>1,g=1/Math.sqrt(d*d+r*r); +for(var P=0;P=0;r--)c.uD.Gk(Y*z-Y+r,1,L,C,U,E);for(var p=z-2;p>=0;p--){c.uD.Gk(p*Y+Y-1,Y,L,C,U,E);for(var r=Y-2; +r>=0;r--){var H=p*Y+r;c.uD.Gk(H,1,L,C,U,E);c.uD.Gk(H,Y,L,C,U,E)}}};c.uD.Gk=function(H,L,C,U,E,Y){var z=H+L,r=C[H],p=U[z],T=E[z]; +if(p0){var b=T;T=k;k=b}var Q=z[k+"-"+T],K=z[T+"-"+p],h=z[p+"-"+k],x=[k,Q,r,null],O=[T,K,r,x],y=[p,h,r,O]; +x[3]=y;if(Q)Q[1]=x;if(K)K[1]=O;if(h)h[1]=y;z[k+"-"+p]=y;z[p+"-"+T]=O;z[T+"-"+k]=x;U[p]=O;Y[H]=O;U[T]=x; +Y[H+1]=x;U[k]=y;Y[H+2]=y;E[r]=O}return{QP:U,tB:E,wI:Y}};c.Cw.ag8=function(L){var C=[],U=L.tB;for(var H=0; +Hh[2]&&h[3]==0&&c.Cw.KI(L,K,P,Q)<0&&c.Cw.KI(L,Q,b,K)<0; +if(y){U[0]=Q;E[0]=K;U[3]=z;z[3]=r;r[3]=U;E[3]=p;p[3]=Y;Y[3]=E;Y[2]=k;r[2]=T;C.tB[k]=p;C.tB[T]=z;C.QP[b]=r; +C.QP[P]=Y}return y};c.Cw.qt=function(L,C,U){var E=L[C*2]-L[U*2],Y=L[C*2+1]-L[U*2+1];return Math.sqrt(E*E+Y*Y)}; +c.Cw.ab3=function(L,C,U){var E=U[1],Y=U[3],z=Y[3],r,p,T=U[2],k,P=U[0],b=z[0],Q=Y[0],K;if(E){r=E[3];p=r[3]; +k=E[2];K=r[0]}var h=L.length>>>1;L[2*h]=(L[2*b]+L[2*P])*.5;L[2*h+1]=(L[2*b+1]+L[2*P+1])*.5;if(!0){var x=T,O=U,y=C.tB.length,v=[h,null,x,O],i=[Q,v,y,z]; +v[1]=i;var D=[h,null,y,i];Y[3]=v;z[3]=D;z[2]=y;C.tB[x]=Y;C.tB[y]=D;C.QP[P]=Y;C.QP[Q]=z;C.wI.push(v,i,D)}if(E){var I=k,m=E,f=y+1; +D[1]=m,m[1]=D;var A=[h,null,I,m],d=[K,A,f,p];A[1]=d;var g=[h,O,f,d];O[1]=g;r[3]=A;p[3]=g;p[2]=f;C.tB[I]=r; +C.tB[f]=p;C.QP[b]=r;C.QP[K]=p;C.wI.push(A,d,g)}C.QP[h]=O};c.Cw.MJ=function(L,C){var U=0;while(!0){var E=U; +for(var H=0;Hr){z=T;r=k}}if(r>U){c.Cw.ab3(L,C,z); +Y++}}return Y!=0};c.Cw.ahe=function(L,C){var U=[],Q=0;for(var H=0;H>>1,h=C.QP[K],E=h,x=!0; +do{if(E[1]==null){x=!1;break}E=E[1][3]}while(E!=h);if(x){var O=.02;L[H]+=O*U[H];L[H+1]+=O*U[H+1];Q+=O*(U[H]*U[H]+U[H+1]*U[H+1])}}return Q}; +c.Cw.a0t=function(L,C,U){var E=c.a.mE(L),Y=c.Cw.__(L,C);c.Cw.MJ(L,Y);for(var z=0;z<300;z++){var r=!1,p=!1; +r=c.Cw.ahT(L,Y,U,5);if(r)p=c.Cw.MJ(L,Y);var T=c.Cw.ahe(L,Y);if(!r&&!p&&T<1e-4){break}}return c.Cw.ag8(Y)}; +c.De={};c.De.$l=function(L){var C=L.zr,U=L.vR,E=L.gn,Y=L.hu,z=L.$g,r=L.QM,p=L.Ni,T=c.W1.P9,v,i,D=0;function k(u){var g6=new Array(u); +for(var H=0;H>>1,b=k(C.f4*2),Q=k(C.f4),K=k(C.f4),h=Date.now(); +for(var H=0;Hf)continue;var g=U[m*2],X=U[m*2+1],n=U[f*2],R=U[f*2+1],l=Y[m*2],w=Y[m*2+1],V=Y[f*2],F=Y[f*2+1],Z=Y[A*2],M=Y[A*2+1],a=Y[d*2],e=Y[d*2+1],N=[l,w,V,F,Z,M]; +if(I[1])N.push(a,e);var J=T(C.a3s[D],N),f5=J[0],dx=J[1],fq=1/Math.sqrt(f5*f5+dx*dx);f5*=fq;dx*=fq;var i9=n-g,S=R-X; +Q[D]=f5*i9+dx*S;K[D]=-dx*i9+f5*S;D++}var fs=new Array(P),bz=new Array(P);for(var H=0;H>>1,T=0,h=0,dx=1e3; +for(var H=0;Hi)continue; +var m=C[v*2],f=C[v*2+1],A=C[i*2],d=C[i*2+1],g=C[D*2],X=C[D*2+1],n=C[I*2],R=C[I*2+1],l=[[m,f,1,0],[f,-m,0,1],[A,d,1,0],[d,-A,0,1],[g,X,1,0],[X,-g,0,1]]; +if(y[1])l.push([n,R,1,0],[R,-n,0,1]);var w=c.W1.t$(l),V=Y(linear.invert(Y(w,l)),w);V.pop();V.pop();P.push(V); +var F=A-m,Z=d-f,M=K[y[1]?1:0];M=c.W1.AE(M,Y([[F,Z],[Z,-F]],V));var a=[v*2,v*2+1,i*2,i*2+1,D*2,D*2+1,I*2,I*2+1],e=y[1]?8:6,N=[]; +for(var J=0;J>>1,r=new Array(z); +if(U.length==0){r.fill(0);return r}var p=new Array(z),T=new Array(z);for(var H=0;H=0&&N>=0&&e+N<=1){var J=1-e-N,s=v*J+i*e+D*N,f5=I*J+m*e+f*N; +c.I.Pi(s,f5,z,p,T,b);c.De.aiC(b,r,F*p+Z<<2)}}};c.De.aiC=function(L,C,U){var E=C[U],Y=C[U+1],z=C[U+2],r=C[U+3],p=1-L[3]*(1/255); +C[U]=~~(.5+L[0]+E*p);C[U+1]=~~(.5+L[1]+Y*p);C[U+2]=~~(.5+L[2]+z*p);C[U+3]=~~(.5+L[3]+r*p)};c.De.x$=function(){var L=function(U,E,Y,z){var r=z[0],p=z[1],T=z[2],k=U[r+0],P=U[r+1],b=U[p+0],Q=U[p+1],K=U[T+0],h=U[T+1],x=b-k,O=Q-P,y=K-k,v=h-P,i=E-k,D=Y-P,I=x*v-y*O,m=1/(I+1e-9),f=(i*v-y*D)*m,A=(x*D-i*O)*m; +if(f>=0&&A>=0&&f+A<=1){z[3]=1-f-A;z[4]=f;z[5]=A;return 1}return 0},C=function(U,E,Y,z){var r=[0,0,0,0,0,0]; +for(var H=0;H=0;b--){var O=b*C;for(var P=0;P=2){var H=O+Q,A=D[I+Q-1]+v(I+Q-1,H-1),d=D[I+Q-2]+v(I+Q-1,H-2)+v(I+Q-2,H-1); +if(D[I+Q]==A){i[H-C]=1;Q-=1}else{i[H-C]=0;i[H-C-1]=2;Q-=2}}var H=O;if(Q==0){i[H-C]=1}else{if(D[I+1]==m){i[H+1-C]=1; +i[H-C]=1}else{i[H+1-C]=0;i[H-C]=2}}O+=p;I+=p}c.bu.acA(b,C,i,z,K,h,!0,Y)}if(E){console.log(Date.now()-Y,"Matching"); +Y=Date.now()}var g=z;return[UZIP.adler(L,0,L.length),L,C,U,r,k,T,K,h,i,g]};c.bu.UT=function(L,C,U,E){var Y=L.slice(0),z=Y.shift(),r=Y.shift(),p=Y.shift(),T=Y.shift(),k=Y.shift(),P=Y.shift(),b=Y.shift(),Q=Y.shift(),K=Y.shift().slice(0),h=Y.shift(),x=Y.shift(),O=Date.now(),y=Math.abs(p-C),v=Math.floor(y/k),i=new Uint32Array(k),I=0,m=1e9,A=0,d=0,g=0; +for(var D=0;D=65280){x[H+a]--;f++;M(Z*C+f,Z*p+a)}}}}if(E){console.log(Date.now()-O,"Shifting image pixels"); +O=Date.now()}};c.bu.acA=function(L,C,U,E,Y,z){var r=0,H=L*C;while(rE*E||m<0||f<0||m>=v||f>=v)continue; +var A=y[f*v+m];h+=I*A;x+=D*A}K.f2=Math.atan2(x,h)}}function T(P,b,Q,K,h){var x=~~(P+.5),O=~~(b+.5);return U(Q,K,x-Y,x+Y,O-Y,O+Y)}function k(P,b,Q,K,h){L=K; +C=h;if(r.length==0){var x=new c.Q.il(16200817),i=8,D=0;function O(fs){var g=fs[0]-fs[2],X=fs[1]-fs[3]; +return g*g+X*X}function y(){var fs=0,bz=0;while(fs===0)fs=x.get();while(bz===0)bz=x.get();return Math.sqrt(-2*Math.log(fs))*Math.cos(2*Math.PI*bz)}var v=y,I=[]; +while(D!=z){var m=Math.max(-E,Math.min(E,v()*i)),f=Math.max(-E,Math.min(E,v()*i)),A=Math.max(-E,Math.min(E,v()*i)),d=Math.max(-E,Math.min(E,v()*i)),g=m-A,X=f-d,n=Math.sqrt(g*g+X*X); +if(n<3||n>12)continue;r.push(m,f,A,d);D++}}var R=20;for(var l=0;l>>3); +w.V5=J;for(var H=0;H>>3]|=(e8>>1,i=v>>>1,D=Math.round(y/3); +if(D!=y/3)throw"e";var I=1/(y*y),m=1.2*(y/9);for(var A=v+1;A=a||x[H+f]>=a)continue;if(x[H-Z-f]>=a||x[H-Z]>=a||x[H-Z+f]>=a)continue;if(x[H+Z-f]>=a||x[H+Z]>=a||x[H+Z+f]>=a)continue; +k.push({x:~~(d*b.NB+.5),y:~~(A*b.NB+.5),aeL:d,aj_:A,ej:P,G:a,ah_:O[H],uR:m})}}if(r!=null){k.sort(function(i9,e8){return e8.G-i9.G}); +k=k.slice(0,r)}return k;var e=[];for(var H=0;HJ.G&&(f5.ej==J.ej+1||f5.ej==J.ej-1)){var dx=J.x-f5.x,fq=J.y-f5.y;if(dx*dx+fq*fq<5){N=!1; +break}}}if(N)e.push(J)}console.log(k.length,e.length);return e}return{ago:Y}}();c.e7={};c.e7.aaN=function(L){var C=L.length,U=c.e7.Ez(L,!1),Y=0,z=1; +throw"e";var E=[];for(var H=0;H>>1);if(P.length<10)return null;var b=c.e7.alM(z[H],z[p],P,2);k.push([H,p,P,b])}k.sort(function(d,g){return g[2].length-d[2].length}); +if(E)console.log("Matches found",Date.now()-Y);Y=Date.now();var Q=[],K=new UnionFind(U);for(var H=0; +H>>1][1]}var A=c.I.G$(y[C]); +for(var H=0;Hr||l==r&&w>>1;x=O-1}else{x=O=E>>>1}for(var H=0;H>>1;else C[H]=(H&3)==3?h[E-1]:h[E-1]-h[0]}}else console.log(U)};c.my={}; +c.my.a6V=function(L,C,U,E,Y){var z=c.my.Ad(L.buffer,C,U)._V,r=Date.now(),p=new Uint32Array(z.length); +for(var H=0;H>2]=v.ind}return{gn:P,_V:T[1]}};c.my.Ad=function(L,C,U){var E=[],Y={},z=C-1,r=U-1,p=0,T=new Uint32Array(L),k=[-C-1,-C,-C+1,-1,1,C-1,C,C+1,C+C,2,-C-C,-2,C+C-1,C+C+1,C+2,-C+2,-C-C+1,-C-C-1,-C-2,C-2,C+C+2,-C-C+2-C-C-2,C+C-2]; +for(var P=1;P>1,I=H+((i&1)==0?1:C),m=K.find(H),f=K.find(I),A=Math.min(h[m]+y/Math.sqrt(x[m]),h[f]+y/Math.sqrt(x[f])); +if(m!=f&&D<=A){K.link(H,I);O--;var d=K.find(H);x[d]=x[m]+x[f];h[d]=D}}var g=[],X={},n=new Uint16Array(Y); +for(var H=0;H>2};c.my.QZ=function(){function L(y,v,i,D,I,m){var f=[],A=m,d=m,g=m>>>2;for(var X=0; +X>>1;if(X>65535)throw X;var n=[];for(var H=0; +H<1e3+i;H++)n.push([]);var R=[0,1,0,-1,-1,0,1,0],V=Math.min(A,5),F=new Uint32Array(X*6);for(var Z=0; +Z>>w)}var s=Math.min(i,M*I);if(Z+V>=A)s=i;while(Y!=0){r(n);var f5=n[E].pop(),dx=n[E].pop(),fq=dx>>>16,i9=dx&65535,H=fq*v+i9; +if(d[H]==65535){var e8=f5*6,S=H<<2;d[H]=f5;F[e8]+=y[S];F[e8+1]+=y[S+1];F[e8+2]+=y[S+2];F[e8+3]+=i9;F[e8+4]+=fq; +F[e8+5]++;var fs=fq>>>w;if(fq!=s-1&&d[H+v]==65535)z(n,fq+1<<16|i9,f5,T(y,v,m,i9,fq+1,F,e8)+fs);if(fq!=0&&d[H-v]==65535)z(n,fq-1<<16|i9,f5,T(y,v,m,i9,fq-1,F,e8)+fs); +if(i9!=0&&d[H-1]==65535)z(n,fq<<16|i9-1,f5,T(y,v,m,i9-1,fq,F,e8)+fs);if(i9!=v-1&&d[H+1]==65535)z(n,fq<<16|i9+1,f5,T(y,v,m,i9+1,fq,F,e8)+fs)}}if(s!=fq){var bz=(Z+V)*f; +F.fill(0,bz*6,(bz+f)*6);for(var fq=(Z+V-2)*I;fq=bz){d[H]=65535}}}}return{gn:d,bj:X,nu:F}}c.my.nx=function(y,v,i,D,I){var m=y.bj,f=v*i,A=y.nu,d=y.gn,g=K(D,d,m,f),X=new UnionFind(m),F=0; +for(var n=1;n>>7);I[d]=f=I[d]|g}}return f!=3};function T(y,v,i,D,I,m,f){var A=(I*v+D)*4,d=m[f+5],g=1/d,X=y[A]*d-m[f],n=y[A+1]*d-m[f+1],R=y[A+2]*d-m[f+2],l=D*d-m[f+3],w=I*d-m[f+4],V=Math.sqrt(X*X+n*n+R*R),F=Math.sqrt(l*l+w*w); +return~~((V+i*F)*g+.5)}function k(y,v,i,D){var I=1/y[i+5],m=1/y[D+5],f=y[i]*I-y[D]*m,A=y[i+1]*I-y[D+1]*m,d=y[i+2]*I-y[D+2]*m,g=y[i+3]*I-y[D+3]*m,X=y[i+4]*I-y[D+4]*m,n=Math.sqrt(f*f+A*A+d*d),R=Math.sqrt(g*g+X*X); +return~~(n+v*R+.5)}function P(y,v,i){var D=c.bt(y,new _(0,0,v,i)),I=D.rect.d,m=D.rect.v,f=p(D.eB,I,m),A=f.gn,d=Date.now(),g=new Uint16Array(v*i); +g.fill(65535);for(var X=0;X>>4,R=y[d+1]>>>4,l=y[d+2]>>>4; +m[g*4400+(n<<8|R<<4|l)]++;m[g*4400+4096]++;m[g*4400+4100+(n<<4|R)]++;m[g*4400+4360+n]++;if(A!=0&&(X=D[H-1])!=g&&b(C[g],X)==-1){C[g].push(X,0); +C[X].push(g,0)}if(f!=0&&(X=D[H-v])!=g&&b(C[g],X)==-1){C[g].push(X,0);C[X].push(g,0)}}for(var H=0;H>>7)}return I}c.my.abR=function(y,v,i,D,I,m,f){var A=v*i,d=f[0],C=f[1],g=new UnionFind(D),X=K(I,y,D,A),n=-1,R=!0,l=0; +for(var H=0;Hi){i=m; +v=I}}return y[v]}function x(C,y,v,i){var D=C[v],I=C[i];Q(D,b(D,i));Q(I,b(I,v));for(var H=0;H0)return 1; +else if(A<0)return 0}return 0}function b(f,h){var x=new L,O=f,y=h,A=0,d=1,g;x.color=Y[h*z+f];x.sign=T(f,h,Y,z)==x.color?"+":"-"; +while(1){x.tp.push(O,y);if(O>x.UG)x.UG=O;if(Ox.FC)x.FC=y;if(y>1),y+(d-A-1>>1),Y,z)==x.color,n=T(O+(A-d-1>>1),y+(d+A-1>>1),Y,z)==x.color; +if(n&&!X){if(p.vf=="right"||p.vf=="black"&&x.sign=="+"||p.vf=="white"&&x.sign=="-"||p.vf=="majority"&&P(O,y,x.color)||p.vf=="minority"&&!P(O,y,x.color)){g=A; +A=-d;d=g}else{g=A;A=d;d=-g}}else if(n){g=A;A=-d;d=g}else if(!X){g=A;A=d;d=-g}}return x}var Q=0,K=[]; +while(!0){var Q=k(Q);if(Q==-1)break;var h=Math.floor(Q/z),x=b(Q-h*z,h);for(var H=0;Hp.anL)K.push(x)}for(var H=0;H=0;I--){var m=K[I]; +if(D.utm.UG||D.gum.FC)continue;if(!ie.a9l(m.tp,D.tp[0]+.5,D.tp[1]+.5))continue; +D.parent=I;break}}return K}function E(Y,z){function r(A,d,g,X,n){this.x=A;this.y=d;this.Qg=g;this.Yb=X; +this.ar=n}function p(A,u){return(u+A)%u}function T(A,d,g,X){return A*X-g*d}function k(A,d,g,X){return A*g+d*X}function P(A,d,g){if(A<=g)return A<=d&&d=0&&s<=1)return s;else if(f5>=0&&f5<=1)return f5; +else return-1}function y(f){var H,A,d;f.UA=f.tp[0];f.ab5=f.tp[1];f.ZJ=[];var g=f.ZJ;g.push(new r(0,0,0,0,0)); +for(H=0;H=0;H--){if(A[H<<1]!=A[S<<1]&&A[(H<<1)+1]!=A[(S<<1)+1])S=H+1;X[H]=S}for(H=u-1; +H>=0;H--){var fs=p(H+1,u)<<1;n[0]=n[1]=n[2]=n[3]=0;d=(3+3*(A[fs]-A[H<<1])+(A[fs+1]-A[(H<<1)+1]))/2;n[d]++; +R=0;l=0;w=0;V=0;S=X[H];f5=H;while(1){J=0;d=(3+3*Math.sign(A[S*2]-A[f5*2])+Math.sign(A[S*2+1]-A[f5*2+1]))/2; +n[d]++;if(n[0]&&n[1]&&n[2]&&n[3]){g[H]=f5;J=1;break}e=A[S*2]-A[H*2];N=A[S*2+1]-A[H*2+1];if(T(R,l,e,N)<0||T(w,V,e,N)>0){break}if(Math.abs(e)<=1&&Math.abs(N)<=1){}else{F=e+(N>=0&&(N>0||e<0)?1:-1); +Z=N+(e<=0&&(e<0||N<0)?1:-1);if(T(R,l,F,Z)>=0){R=F;l=Z}F=e+(N<=0&&(N<0||e<0)?1:-1);Z=N+(e>=0&&(e>0||N<0)?1:-1); +if(T(w,V,F,Z)<=0){w=F;V=Z}}f5=S;S=X[f5];if(!P(S,H,f5)){break}}if(J==0){M=Math.sign(A[S*2]-A[f5*2]);a=Math.sign(A[S*2+1]-A[f5*2+1]); +e=A[f5*2]-A[H*2];N=A[f5*2+1]-A[H*2+1];dx=T(R,l,e,N);fq=T(R,l,M,a);i9=T(w,V,e,N);e8=T(w,V,M,a);s=1e7; +if(fq<0){s=Math.floor(dx/-fq)}if(e8>0){s=Math.min(s,Math.floor(-i9/e8))}g[H]=p(f5+s,u)}}s=g[u-1];f.dg[u-1]=s; +for(H=u-2;H>=0;H--){if(P(H+1,g[H],s)){s=g[H]}f.dg[H]=s}for(H=u-1;P(p(H+1,u),s,f.dg[H]);H--){f.dg[H]=s}}function i(f){function A(f,H,d){var u=f.a3,e=f.tp,N=f.ZJ,J,s,f5,dx,fq,X,i9,e8,a,S,fs,bz,g6,al,bj=0; +if(d>=u){d-=u;bj=1}if(bj==0){J=N[d+1].x-N[H].x;s=N[d+1].y-N[H].y;dx=N[d+1].Yb-N[H].Yb;f5=N[d+1].Qg-N[H].Qg; +fq=N[d+1].ar-N[H].ar;X=d+1-H}else{J=N[d+1].x-N[H].x+N[u].x;s=N[d+1].y-N[H].y+N[u].y;dx=N[d+1].Yb-N[H].Yb+N[u].Yb; +f5=N[d+1].Qg-N[H].Qg+N[u].Qg;fq=N[d+1].ar-N[H].ar+N[u].ar;X=d+1-H+u}fs=(e[H<<1]+e[d<<1])/2-e[0];bz=(e[(H<<1)+1]+e[(d<<1)+1])/2-e[1]; +al=e[d<<1]-e[H<<1];g6=-(e[(d<<1)+1]-e[(H<<1)+1]);i9=(dx-2*J*fs)/X+fs*fs;e8=(f5-J*bz-s*fs)/X+fs*bz;a=(fq-2*s*bz)/X+bz*bz; +S=g6*g6*i9+2*g6*al*e8+al*al*a;return Math.sqrt(S)}var H,d,g,X,u=f.a3,n=new Array(u+1),R=new Array(u+1),l=new Array(u),w=new Array(u+1),V=new Array(u+1),F=new Array(u+1),Z,M,a; +for(H=0;H0;d--){F[d]=H; +H=w[H]}F[0]=0;n[0]=0;for(d=1;d<=g;d++){for(H=F[d];H<=V[d];H++){M=-1;for(X=V[d-1];X>=w[H];X--){Z=A(f,X,H)+n[X]; +if(M<0||Z0;d--){H=R[H];f.a8X[d]=H}}function D(f){function A(f,H,Z,l,w,bE){var u=f.a3,eN=f.ZJ,dk=0,a; +while(Z>=u){Z-=u;dk+=1}while(H>=u){H-=u;dk-=1}while(Z<0){Z+=u;dk-=1}while(H<0){H+=u;dk+=1}var hj=eN[Z+1].x-eN[H].x+dk*eN[u].x,iN=eN[Z+1].y-eN[H].y+dk*eN[u].y,dK=eN[Z+1].Yb-eN[H].Yb+dk*eN[u].Yb,ch=eN[Z+1].Qg-eN[H].Qg+dk*eN[u].Qg,hP=eN[Z+1].ar-eN[H].ar+dk*eN[u].ar,M=Z+1-H+dk*u; +l[bE]=hj/M;l[bE+1]=iN/M;var d2=(dK-hj*hj/M)/M,hr=(ch-hj*iN/M)/M,fv=(hP-iN*iN/M)/M,f3=(d2+fv+Math.sqrt((d2-fv)*(d2-fv)+4*hr*hr))/2; +d2-=f3;fv-=f3;if(Math.abs(d2)>=Math.abs(fv)){a=Math.sqrt(d2*d2+hr*hr);if(a!=0){w[bE]=-hr/a;w[bE+1]=d2/a}}else{a=Math.sqrt(fv*fv+hr*hr); +if(a!=0){w[bE]=-fv/a;w[bE+1]=hr/a}}if(a==0){w[bE]=w[bE+1]=0}}var d=f.PR,g=f.a8X,u=f.a3,X=f.tp,n=f.UA,R=f.ab5,l=new Array(d*2),w=new Array(d*2),V=new Array(d),F=new Array(3),H,Z,M,a,s,f5,dx,fq,i9,e8,S; +f.IR=new C(d);for(H=0;HJ[4]){F[0]=-J[1];F[1]=J[0]}else if(J[4]){F[0]=-J[4];F[1]=J[3]}else{F[0]=1; +F[1]=0}var e=F[0]*F[0]+F[1]*F[1],N=1/e;F[2]=-F[1]*bz-F[0]*fs;for(a=0;a<3;a++){J[a*3+0]+=F[a]*F[0]*N; +J[a*3+1]+=F[a]*F[1]*N;J[a*3+2]+=F[a]*F[2]*N}}s=Math.abs(g6-fs);f5=Math.abs(al-bz);if(s<=.5&&f5<=.5){f.IR.Ij[H<<1]=g6+n; +f.IR.Ij[(H<<1)+1]=al+R;continue}dx=b(J,fs,bz);i9=fs;e8=bz;if(J[0]!=0){for(S=0;S<2;S++){al=bz-.5+S;g6=-(J[1]*al+J[2])/J[0]; +s=Math.abs(g6-fs);fq=b(J,g6,al);if(s<=.5&&fq1?1-1/n:0;l=l*(1/.75)}else{l=4/3}d.gq[g]=l; +var dx=3*g<<1;if(l>=z.adf){d.o3[g]=0;d.Z9[dx+0]=d.Z9[dx+1]=0;d.Z9[dx+2]=N;d.Z9[dx+3]=J;d.Z9[dx+4]=s; +d.Z9[dx+5]=f5}else{if(l<.55){l=.55}else if(l>1){l=1}var fq=.5+.5*l;d.o3[g]=1;d.Z9[dx]=Q(fq,Z,N);d.Z9[dx+1]=Q(fq,M,J); +d.Z9[dx+2]=Q(fq,a,N);d.Z9[dx+3]=Q(fq,e,J);d.Z9[dx+4]=s;d.Z9[dx+5]=f5}d.alpha[g]=l;d.ki[g]=.5}d.adq=1}function m(f){function A(){this.Mq=0; +this.qu=0;this.i5=0;this.a$=0;this.g2=0;this.am=0;this.uR=0;this.alpha=0}function d(f,H,Z,go,d6,i9,e8){var X=f.IR.tR,iB=f.IR.Z9,hS=f.IR.Ij; +if(H==Z)return 1;var eF=H,N=p(H+1,X),bQ=p(eF+1,X),ch=hS[H<<1],hP=hS[(H<<1)+1],iP=hS[N<<1],d8=hS[(N<<1)+1],a6=i9[bQ]; +if(a6==0)return 1;var am=h(ch-iP,hP-d8);for(eF=bQ;eF!=Z;eF=bQ){var bQ=p(eF+1,X),fj=p(eF+2,X),dX=hS[bQ<<1],gc=hS[(bQ<<1)+1],dz=hS[fj<<1],gE=hS[(fj<<1)+1]; +if(i9[bQ]!=a6)return 1;if(Math.sign(T(iP-ch,d8-hP,dz-dX,gE-gc))!=a6)return 1;if(k(iP-ch,d8-hP,dz-dX,gE-gc)=Z){J+=e8[X]}var dW=ai-bE,i7=hu-eN,i5=bP-bE,fM=hw-eN,ei=gQ-bE,bu=gp-eN,hG=T(dW,i7,i5,fM),fb=T(dW,i7,ei,bu),iJ=T(i5,fM,ei,bu),h0=hG+iJ-fb; +if(fb==hG)return 1;var fq=iJ/(iJ-h0),dx=fb/(fb-hG),hM=fb*fq/2;if(hM==0)return 1;var e0=J/hM,s=2-Math.sqrt(4-e0/.3); +go.qu=Q(fq*s,bE,ai);go.i5=Q(fq*s,eN,hu);go.a$=Q(dx*s,gQ,bP);go.g2=Q(dx*s,gp,hw);go.alpha=s;go.am=fq; +go.uR=dx;ai=go.qu;hu=go.i5;bP=go.a$;hw=go.g2;go.Mq=0;for(eF=p(H+1,X);eF!=Z;eF=bQ){bQ=p(eF+1,X);var fC=hS[eF<<1],cw=hS[(eF<<1)+1],dX=hS[bQ<<1],gc=hS[(bQ<<1)+1]; +fq=O(ai-bE,hu-eN,bP-ai,hw-hu,gQ-bP,gp-hw,dX-fC,gc-cw);if(fq<-.5)return 1;var aD=x(fq,bE,ai,bP,gQ),d7=x(fq,eN,hu,hw,gp),am=h(dX-fC,gc-cw); +if(am==0)return 1;var az=T(dX-fC,gc-cw,aD-fC,d7-cw)/am;if(Math.abs(az)>d6)return 1;if(k(dX-fC,gc-cw,aD-fC,d7-cw)<0||k(fC-dX,cw-gc,aD-dX,d7-gc)<0){return 1}go.Mq+=az*az}for(eF=H; +eF!=Z;eF=bQ){bQ=p(eF+1,X);var cQ=eF*3+2<<1,fi=bQ*3+2<<1,gb=iB[cQ],hl=iB[cQ+1],aZ=iB[fi],dq=iB[fi+1]; +fq=O(ai-bE,hu-eN,bP-ai,hw-hu,gQ-bP,gp-hw,aZ-gb,dq-hl);if(fq<-.5)return 1;var aD=x(fq,bE,ai,bP,gQ),d7=x(fq,eN,hu,hw,gp),am=h(aZ-gb,dq-hl); +if(am==0)return 1;var az=T(aZ-gb,dq-hl,aD-gb,d7-hl)/am,fo=T(aZ-gb,dq-hl,hS[bQ<<1]-gb,hS[(bQ<<1)+1]-hl)/am; +fo*=.75*f.IR.alpha[bQ];if(fo<0){az=-az;fo=-fo}if(az=0;H--){M=d(f,H,p(Z,X),a,z.akm,i9,e8); +if(M){break}if(w[Z]>w[H]+1||w[Z]==w[H]+1&&l[Z]>l[H]+a.Mq){R[Z]=H;l[Z]=l[H]+a.Mq;w[Z]=w[H]+1;V[Z]=a;a=new A}}}F=w[X]; +f5=new C(F);dx=new Array(F);fq=new Array(F);Z=X;for(H=F-1;H>=0;H--){var fv=p(Z,X),f3=H*3+0<<1,dp=fv*3+0<<1; +if(R[Z]==Z-1){f5.o3[H]=g.o3[fv];f5.Z9[f3]=g.Z9[dp];f5.Z9[f3+1]=g.Z9[dp+1];f5.Z9[f3+2]=g.Z9[dp+2];f5.Z9[f3+3]=g.Z9[dp+3]; +f5.Z9[f3+4]=g.Z9[dp+4];f5.Z9[f3+5]=g.Z9[dp+5];f5.Ij[H<<1]=g.Ij[fv<<1];f5.Ij[(H<<1)+1]=g.Ij[(fv<<1)+1]; +f5.alpha[H]=g.alpha[fv];f5.gq[H]=g.gq[fv];f5.ki[H]=g.ki[fv];dx[H]=fq[H]=1}else{f5.o3[H]="CURVE";f5.Z9[f3]=V[Z].qu; +f5.Z9[f3+1]=V[Z].i5;f5.Z9[f3+2]=V[Z].a$;f5.Z9[f3+3]=V[Z].g2;f5.Z9[f3+4]=g.Z9[dp+4];f5.Z9[f3+5]=g.Z9[dp+5]; +f5.Ij[H<<1]=Q(V[Z].uR,g.Z9[dp+4],n[fv<<1]);f5.Ij[(H<<1)+1]=Q(V[Z].uR,g.Z9[dp+5],n[(fv<<1)+1]);f5.alpha[H]=V[Z].alpha; +f5.gq[H]=V[Z].alpha;dx[H]=V[Z].uR;fq[H]=V[Z].am}Z=R[Z]}for(H=0;H"; +for(var H=0;H>>24&255)==0)continue;T+=">0&255,Q=k>>8&255,K=k>>16&255,k="rgb("+b+","+Q+","+K+")";T+="\" fill=\""+k+"\" fill-rule=\"evenodd\"/>"}T+=""; +return T};ie.a9l=function(L,C,U){var u=L.length>>1,E,Y=L[2*u-3]-U,z=L[2*u-2]-C,r=L[2*u-1]-U,p=r>Y,T=0; +for(var H=0;HY}for(var H=0;H0&&r>0)continue;if(E<0&&z<0)continue;if(Y==r&&Math.min(E,z)<=0)return!0; +if(Y==r)continue;var k=E+(z-E)*-Y/(r-Y);if(k==0)return!0;if(k>0)T++;if(Y==0&&p&&r>Y)T--;if(Y==0&&!p&&rY}return(T&1)==1};ie.fill=function(L,C,U,E){var Y=C[L],z=[L],r=0;while(rC.getParameter(C.MAX_TEXTURE_SIZE)){t.i8=!1;alert("Disabling WebGL")}}; +t.NF=function(L,C){return new Float32Array([(L.x-C.x)/C.d,(L.y-C.y)/C.v,L.d/C.d,L.v/C.v])};t.zz=function(){return this.UF}; +t.RV=function(L,C){var U=t.vU;U.bindFramebuffer(U.FRAMEBUFFER,t.p5);U.framebufferTexture2D(U.FRAMEBUFFER,U.COLOR_ATTACHMENT0,U.TEXTURE_2D,L.W5,0); +U.viewport(0,0,L.d,L.v);if(C){U.enable(U.SCISSOR_TEST);U.scissor(C.x,C.y,C.d,C.v)}else U.disable(U.SCISSOR_TEST)}; +t.N6=function(L,C,U){if(U)throw"error";var E=t.vU;E.disable(E.SCISSOR_TEST);E.bindFramebuffer(E.FRAMEBUFFER,null); +E.viewport(0,0,L,C);if(U){E.enable(E.SCISSOR_TEST);E.scissor(U.x,U.y,Math.round(U.d),Math.round(U.v))}else E.disable(E.SCISSOR_TEST)}; +t.clear=function(){var L=t.vU;L.clearColor(0,0,0,0);L.clear(L.COLOR_BUFFER_BIT)};t.oL=function(L,C){if(C==null)C=0; +var U=(C>>>0&255)==0,E=(C>>>8&255)==0,Y=(C>>>16&255)==0,z=(C>>>24&255)==0,r=(L>>>0&255)*(1/255),p=(L>>>8&255)*(1/255),T=(L>>>16&255)*(1/255),k=(L>>>24&255)*(1/255),P=t.vU; +P.colorMask(U,E,Y,z);P.clearColor(r,p,T,k);P.clear(P.COLOR_BUFFER_BIT);P.colorMask(!0,!0,!0,!0)};t.pc=function(L,C,U,E,Y){var z=C.eR(E); +if(Y)z=z.eR(Y);if(z.ue())return;var r=t.vU;t.RV(L);r.bindTexture(r.TEXTURE_2D,U.W5);r.copyTexSubImage2D(r.TEXTURE_2D,0,z.x-E.x,z.y-E.y,z.x-C.x,z.y-C.y,z.d,z.v)}; +t.kb=function(H,L,C){var U=t.RX[H];if(U==null||U.d!=L||U.v!=C){if(U)U.delete();U=new t.Ry(L,C)}t.RX[H]=U; +return U};t.RX=[];t.JF=function(){this.Tz=null;this.Uf=null};t.JF.Po=null;t.JF.prototype.U9=function(L){if(this.Uf)return; +this.Uf={};var C=t.vU,U=this.Tz,E=this.Uf;for(var H=0;H>>1); +C.activeTexture(C["TEXTURE"+(H>>>1)]);C.bindTexture(C.TEXTURE_2D,L[H+1])}C.activeTexture(C.TEXTURE0)}; +t.JF.prototype.Rn=function(L,C){var U=t.vU,E=U.createShader(U.FRAGMENT_SHADER);U.shaderSource(E,L);U.compileShader(E); +if(!U.getShaderParameter(E,U.COMPILE_STATUS))console.log(U.getShaderInfoLog(E));var Y=U.createShader(U.VERTEX_SHADER); +U.shaderSource(Y,C);U.compileShader(Y);if(!U.getShaderParameter(Y,U.COMPILE_STATUS))console.log(U.getShaderInfoLog(Y)); +var z=U.createProgram();U.attachShader(z,Y);U.attachShader(z,E);U.linkProgram(z);if(!U.getProgramParameter(z,U.LINK_STATUS))console.log("Could not initialise shaders"); +this.Tz=z};t.JF.prototype.jd=function(){if(t.JF.Po!=this){t.vU.useProgram(this.Tz);t.JF.Po=this}};t.ba=function(L,C){t.Ua++; +t.YX+=L*C;if(t.JA)console.log("GL.Channels instances: "+t.Ua+", memory: "+t.YX);var U=t.vU;this.d=L; +this.v=C;this.W5=U.createTexture();this.zQ=null;this.mA(this.W5,L,C)};t.ba.prototype.mA=function(L,C,U){var E=t.vU; +E.bindTexture(E.TEXTURE_2D,L);E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MIN_FILTER,E.NEAREST);E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MAG_FILTER,E.NEAREST); +E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE);E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE); +E.texImage2D(E.TEXTURE_2D,0,E.ALPHA,C,U,0,E.ALPHA,E.UNSIGNED_BYTE,null)};t.ba.prototype.set=function(L){var C=t.vU; +C.bindTexture(C.TEXTURE_2D,this.W5);C.pixelStorei(C.UNPACK_ALIGNMENT,1);C.texImage2D(C.TEXTURE_2D,0,C.ALPHA,this.d,this.v,0,C.ALPHA,C.UNSIGNED_BYTE,L); +C.pixelStorei(C.UNPACK_ALIGNMENT,4)};t.ba.prototype.delete=function(){var L=t.vU;if(this.W5){L.deleteTexture(this.W5); +t.Ua--;t.YX-=this.d*this.v}if(t.JA)if(t.JA)console.log("GL.Channels instances: "+t.Ua+", memory: "+t.YX*4)}; +t.Ua=0;t.Ry=function(L,C,U){if(U==null)U=!1;t.Ua++;t.YX+=L*C*4;if(t.JA)console.log("GL.Channels instances: "+t.Ua+", memory: "+t.YX); +var E=t.vU;this.abh=U;this.d=L;this.v=C;this.W5=E.createTexture();this.zQ=null;this.mA(this.W5,L,C)}; +t.Ry.prototype.set=function(L,C){var U=t.vU;U.disable(U.SCISSOR_TEST);U.bindTexture(U.TEXTURE_2D,this.W5); +if(L==null||L instanceof Uint8Array){var E=this.d*this.v;if(C==null||C.X()*10>E)U.texImage2D(U.TEXTURE_2D,0,U.RGBA,this.d,this.v,0,U.RGBA,U.UNSIGNED_BYTE,L); +else{var Y=c.F(C.X()*4);c.La(L,new _(0,0,this.d,this.v),Y,C);U.texSubImage2D(U.TEXTURE_2D,0,C.x,C.y,C.d,C.v,U.RGBA,U.UNSIGNED_BYTE,Y)}}else U.texImage2D(U.TEXTURE_2D,0,U.RGBA,U.RGBA,U.UNSIGNED_BYTE,L)}; +t.Ry.prototype.get=function(L){var C=t.vU;t.RV(this);C.readPixels(0,0,this.d,this.v,C.RGBA,C.UNSIGNED_BYTE,L)}; +t.Ry.prototype.Go=function(L){if(L.ue())return;var C=t.vU;if(this.zQ==null){this.zQ=C.createTexture(); +this.mA(this.zQ,this.d,this.v);t.Ua++;t.YX+=this.d*this.v*4}C.bindFramebuffer(C.FRAMEBUFFER,t.p5);C.bindTexture(C.TEXTURE_2D,this.zQ); +if(L){var U=Math.max(L.x,0),E=Math.max(L.y,0);C.copyTexSubImage2D(C.TEXTURE_2D,0,U,E,U,E,L.d,L.v)}else C.copyTexImage2D(C.TEXTURE_2D,0,C.RGBA,0,0,this.d,this.v,0)}; +t.Ry.prototype.mA=function(L,C,U){var E=t.vU;E.bindTexture(E.TEXTURE_2D,L);E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MIN_FILTER,this.abh?E.LINEAR:E.NEAREST); +E.texParameteri(E.TEXTURE_2D,E.TEXTURE_MAG_FILTER,E.NEAREST);E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE); +E.texParameteri(E.TEXTURE_2D,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE);E.texImage2D(E.TEXTURE_2D,0,E.RGBA,C,U,0,E.RGBA,E.UNSIGNED_BYTE,null)}; +t.Ry.prototype.delete=function(){var L=t.vU;if(this.W5){L.deleteTexture(this.W5);t.Ua--;t.YX-=this.d*this.v*4}if(this.zQ){L.deleteTexture(this.zQ); +t.Ua--;t.YX-=this.d*this.v*4}if(t.JA)if(t.JA)console.log("GL.Channels instances: "+t.Ua+", memory: "+t.YX)}; +t.Ry.prototype.clone=function(){var L=t.vU,C=new t.Ry(this.d,this.v);t.RV(this);L.bindTexture(L.TEXTURE_2D,C.W5); +L.copyTexImage2D(L.TEXTURE_2D,0,L.RGBA,0,0,this.d,this.v,0);return C};t.w_={a30:" vec3 ocbrn(vec3 a, vec3 b, float f) { vec3 d = (a*vec3(f)+ONE3-vec3(f)); return mix(ONE3 - min(ONE3,(ONE3-b)/d), ZERO3, vec3(vec3(greaterThan(vec3(0.001),d))) ); } ",ahJ:" vec3 ocddg(vec3 a, vec3 b, float f) { return mix( min(ONE3, b/(ONE3 - a*f)) , ONE3 , vec3(equal(a*f,ONE3 )) ); } ",Fh:"const vec3 ZERO3 = vec3(0.0,0.0,0.0) ;\t\t\tconst vec3 QUAR3 = vec3(0.25,0.25,0.25) ;\t\t\tconst vec3 HALF3 = vec3(0.5,0.5,0.5) ;\t\t\tconst vec3 ONE3 = vec3(1.0,1.0,1.0) ;",JR:" float hueDiff(float shue, float hue) { \t\t\t\tfloat df = hue-shue, adf=abs(df), df0 = df-1.0, df1 = df+1.0; \t\t\t\tif(abs(df0) < adf) df = df0; \t\t\t\telse if(abs(df1) < adf) df = df1; \t\t\t\treturn df; \t\t\t}",u9:" float hueCF(float hueS, float hue0) { \t\t\t\tfloat df = hueDiff(hue0, hueS)*6.0; \t\t\t\treturn max(0.0, min(1.0, (df<0.0) ? 1.0+df : 1.0-df )); } ",_a:"float sat(vec3 c) { return max(c.x,max(c.y,c.z)) - min(c.x,min(c.y,c.z)); }",uW:"float lum(vec3 c) { return dot(c, vec3(0.3,0.59,0.11)); } ",WX:"vec3 D (vec3 x) { return mix( sqrt(x), ((16.0*x-12.0)*x+4.0)*x , vec3(lessThanEqual(x,QUAR3)) ); }",ahm:"float midSat (vec3 v, float s) { return ((v.y-v.z)*s)/(v.x-v.z); }",Qx:"vec3 setSat (vec3 c, float s) \t\t\t{\t\t\t\tvec3 o;\t\t\t\tif(c.r==c.g && c.g==c.b) o = ZERO3;\t\t\t\telse if(c.r>c.g) {\t\t\t\t\tif(c.r>c.b) {\t\t\t\t\t\tif(c.g>c.b)\to = vec3(s, midSat(c.rgb,s), 0.0); \t\t\t\t\t\telse\to = vec3(s, 0.0, midSat(c.rbg,s)); \t\t\t\t\t}\t\t\t\t\telse\t\to = vec3(midSat(c.brg,s), 0.0, s); \t\t\t\t} else {\t\t\t\t\tif(c.rc.b)\to = vec3(0.0, s, midSat(c.gbr,s)); \t\t\t\t\t\telse\t o = vec3(0.0, midSat(c.bgr,s), s); \t\t\t\t\t}\t\t\t\t\telse\t\t o = vec3(midSat(c.grb,s), s, 0.0);\t\t\t\t}\t\t\t\treturn o;\t\t\t}",a4R:"vec3 clipCol(vec3 c) \t\t\t{ \t\t\t\tvec3 o = c; float l = lum(c); \t\t\t\tfloat n = min(c.r,min(c.g,c.b)); \t\t\t\tfloat x = max(c.r,max(c.g,c.b)); \t\t\t\tif(n<0.0) o = l + (o-l)*(l/(l-n));\t\t\t\tif(x>1.0) o = l + (o-l)*(1.0-l)/(x-l);\t\t\t\treturn o;\t\t\t}",B5:"vec3 setLum (vec3 c, float l) { return clipCol(c+l-lum(c)); } ",uu:"bool in01(vec2 c) { return (0.0<=c.x) && (c.x<=1.0) && (0.0<=c.y) && (c.y<=1.0); }",hash:"float hash(vec2 v) { return fract(sin(dot(v ,vec2(12.9898,78.233))) * 43758.5453); }",S2:"vec3 rgbToHsl (vec3 rgb) {\t\t\t\tfloat r = rgb.r, g = rgb.g, b = rgb.b; \t\t\t\tfloat mx = max(r, max(g, b)), mn = min(r, min(g, b)); \t\t\t\tfloat h, s, l = (mx + mn) * 0.5;\t\t\t\t\t\t\t\tif(mx == mn) h = s = 0.0; \t\t\t\telse{ \t\t\t\t\tfloat d = mx - mn; \t\t\t\t\ts = l > 0.5 ? d / (2.0 - mx - mn) : d / (mx + mn); \t\t\t\t\t\t\t\t\t\tif(mx==r) h = (g - b) / d + (g < b ? 6.0 : 0.0); \t\t\t\t\telse if(mx==g) h = (b - r) / d + 2.0; \t\t\t\t\telse if(mx==b) h = (r - g) / d + 4.0; \t\t\t\t\t\t\t\t\t\th /= 6.0; \t\t\t\t} \t\t\t\treturn vec3(h,s,l); }",u2:"vec3 hslToRgb (float h, float s, float l){\t\t\t\tfloat r, g, b;\t\t\t\t\t\t\t\tif(s == 0.0) r = g = b = l; \t\t\t\telse{ \t\t\t\t\tfloat q = l < 0.5 ? l * (1.0 + s) : l + s - l * s; \t\t\t\t\tfloat p = 2.0 * l - q; \t\t\t\t\tr = hue2rgb(p, q, h + 1.0/3.0); \t\t\t\t\tg = hue2rgb(p, q, h); \t\t\t\t\tb = hue2rgb(p, q, h - 1.0/3.0); \t\t\t\t} \t\t\t\treturn vec3(r,g,b); } ",Ll:"float hue2rgb(float p, float q, float t){ \t\t\t\tif(t < 0.0) t += 1.0;\t\t\t\tif(t > 1.0) t -= 1.0;\t\t\t\tif(t < 1.0/6.0) return p + (q - p) * 6.0 * t; \t\t\t\tif(t < 1.0/2.0) return q; \t\t\t\tif(t < 2.0/3.0) return p + (q - p) * (2.0/3.0 - t) * 6.0; \t\t\t\treturn p;\t}",t2:"vec3 rgbToHsv(vec3 rgb){\t\t\t\t\tfloat r = rgb.r, g = rgb.g, b = rgb.b; \t\t\t\tfloat mx = max(r, max(g, b)), mn = min(r, min(g, b)); \t\t\t\tfloat h, s, v = mx; \t\t\t\t\t\t\t\tfloat d = mx - mn; \t\t\t\ts = mx == 0.0 ? 0.0 : d / mx; \t\t\t\t\t\t\t\tif(mx == mn) h = 0.0; \t\t\t\telse if(mx==r) h = (g - b) / d + (g < b ? 6.0 : 0.0); \t\t\t\telse if(mx==g) h = (b - r) / d + 2.0; \t\t\t\telse if(mx==b) h = (r - g) / d + 4.0; \t\t\t\t\t\t\t\th /= 6.0; \t\t\t\treturn vec3(h,s,v); }",D5:"vec3 hsvToRgb(float h, float s, float v) { \t\t\t\tfloat r, g, b, f, p, q, t, i; \t\t\t\ti = floor(h * 6.0); \t\t\t\tf = h * 6.0 - i; \t\t\t\tp = v * (1.0 - s); \t\t\t\tq = v * (1.0 - f * s); \t\t\t\tt = v * (1.0 - (1.0 - f) * s); \t\t\t\t\t\t\t\tif (i==0.0) { r = v, g = t, b = p; }\t\t\t\telse if(i==1.0) { r = q, g = v, b = p; }\t\t\t\telse if(i==2.0) { r = p, g = v, b = t; }\t\t\t\telse if(i==3.0) { r = p, g = q, b = v; }\t\t\t\telse if(i==4.0) { r = t, g = p, b = v; }\t\t\t\telse if(i==5.0) { r = v, g = p, b = q; }\t\t\t\t\t\t\t\treturn vec3(r,g,b); }",E8:"\t\tfloat srgbUngamma(float x) {\t\t\treturn (x<0.04045) ? (x / 12.92) : pow( ( x + 0.055 ) / 1.055, 2.4);\t\t}\t\tfloat xyzScale(float x) {\t\t\treturn (x>0.008856) ? pow(x,1.0/3.0) : (903.3*x+16.0)*(1.0/116.0); \t\t}\t\tvec3 rgbToLab(vec3 rgb) {\t\t\tbool ok = true;\t\t\trgb.r = srgbUngamma(rgb.r); \t\t\trgb.g = srgbUngamma(rgb.g); \t\t\trgb.b = srgbUngamma(rgb.b); \t\t\tok = ok && 0.0318<=rgb.r && rgb.r<=0.0319; \t\t\tok = ok && 0.127 <=rgb.g && rgb.g<=0.128 ; \t\t\tok = ok && 0.3047<=rgb.b && rgb.b<=0.305; \t\t\t\t\t\tmat3 srgb2xyz = mat3(0.4360747164307918, 0.222504478679176, 0.013932173981751634, 0.3850649153329662, 0.7168786002139355, 0.09710452396580642, 0.14308038098632878, 0.06061692340677909, 0.7141732835334675); \t\t\t\t\t\tvec3 xyz = srgb2xyz*rgb; \t\t\tok = ok && 0.106<=xyz[0] && xyz[0]<=0.107; \t\t\t\t\t\txyz=xyz*vec3(100.0/96.72, 100.0/100.0, 100.0/81.427); \t\t\txyz.x = xyzScale(xyz.x); \t\t\txyz.y = xyzScale(xyz.y); \t\t\txyz.z = xyzScale(xyz.z); \t\t\t\t\t\treturn vec3(116.0*xyz.y-16.0, 500.0*(xyz.x-xyz.y), 200.0*(xyz.y-xyz.z)); \t\t} \t\tfloat labSimilar(vec3 lab, vec3 mnm, vec3 mxm, float lim) {\t\t\tfloat L=lab.x, a=lab.y, b=lab.z; \t\t\tfloat dl = ((L1.0?1.0:mi);\t\t}"}; +t.Pn={Ja:{},Ai:"\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\tsCoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"}; +t.Pn.BW=function(L,C){var U=eh.MY,E=[U.tV,U.NL,U.XN,U.PA,U.bG,U.qv,U.Yr,U.B8].indexOf(L.type),Y=t.Pn.Ja[L.type]; +if(Y==null)Y=t.Pn.Ja[L.type]=new t.Ja[E];Y.jd();Y.Rt(C,L);t.vU.drawArrays(t.vU.TRIANGLES,0,6)};t.Ja=[]; +t.Ja[0]=function(){t.JF.call(this);this.kJ={};var L="\t\t\tprecision mediump float;\t\t\t"+t.w_.uW+"\t\t\t"+t.w_.Fh+"\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D map;\t\t\tuniform float toGray;\t\t\tuniform float presLum;\t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tfloat olum = lum(src.rgb); \t\t\t\tsrc.rgb = toGray * vec3(olum) + (1.0-toGray)*src.rgb; \t\t\t\tfloat r = texture2D(map, vec2(src.r, 0)).r;\t\t\t\tfloat g = texture2D(map, vec2(src.g, 0)).g;\t\t\t\tfloat b = texture2D(map, vec2(src.b, 0)).b;\t\t\t\tvec3 col = vec3(r,g,b); \t\t\t\tif(presLum==1.0) { \t\t\t\t\tfloat nlum = lum(col); \t\t\t\t\tif(olum>nlum) col += (olum-nlum)/(1.0-nlum)*(ONE3-col); \t\t\t\t\telse if(nlum==0.0) col = ZERO3; \t\t\t\t\telse col = (olum/nlum) * col; \t\t\t\t}\t\t\t\tgl_FragColor = vec4(col,src.w);\t\t\t\t\t\t\t}"; +this.Rn(L,t.Pn.Ai)};t.Ja[0].prototype=new t.JF;t.Ja[0].prototype.Rt=function(L,C){var U={h:C.pm,P:C.l3,O:C.g_,R:c.F(C.pm.length)},E=U.h.length; +if(this.kJ["m"+E]==null){this.kJ["m"+E]={acv:new t.Ry(E,1),eB:c.F(E*4)}}var Y=this.kJ["m"+E];c.qF(U,Y.eB,0); +var z=Y.acv;z.set(Y.eB);this.U9(["source","map","toGray","presLum"]);var r=t.vU,p=this.Uf;r.uniform1f(p.toGray,C.Qd?1:0); +r.uniform1f(p.presLum,C.bY?1:0);this.jU([p.source,L,p.map,z.W5])};t.Ja[1]=function(){t.JF.call(this); +this.a8B=new t.Ry(256,1);this.abi=c.F(256*4);var L="\t\t\t\tprecision mediump float;\t\t\t\t"+t.w_.Ll+"\t\t\t\t"+t.w_.S2+"\t\t\t\t"+t.w_.u2+"\t\t\t\t\t\t\t\tuniform sampler2D source;\t\t\t\tuniform sampler2D map;\t\t\t\tuniform float cfa; \t\t\t\tuniform float cfb; \t\t\t\tuniform int colorize; \t\t\t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\t\t\tvoid main(void) { \t\t\t\t\tvec4 src = texture2D(source, sCoord);\t\t\t\t\tvec3 rgb = src.rgb;\t\t\t\t\tfloat mn=min(rgb.r,min(rgb.g,rgb.b)), mx = max(rgb.r,max(rgb.g,rgb.b));\t\t\t\t\t\t\t\t\t\tvec3 hsl = rgbToHsl(rgb); \t\t\t\t\tfloat h = hsl.r, s = hsl.g, l = hsl.b; \t\t\t\t\t\t\t\t\t\tvec4 mapv = texture2D(map, vec2(h, 0));\t\t\t\t\tfloat nh = mapv.r; \t\t\t\t\tfloat sc = mapv.g*2.0-1.0; \t\t\t\t\tfloat lc = mapv.b*2.0-1.0; \t\t\t\t\t\t\t\t\t\tfloat cf = -lc, tv=mn;\t\t\t\t\tif(0.00.0) sc = pow(tan((3.14159265359/2.0)*sc),1.3);\t\t\t\t\t\tns = min(s * (1.0 + sc), 1.0); \t\t\t\t\t} \t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(hslToRgb(nh,ns,l),src.w); \t\t\t\t\t\t\t\t\t}"; +this.Rn(L,t.Pn.Ai)};t.Ja[1].prototype=new t.JF;t.Ja[1].prototype.Rt=function(L,C){c.qF({h:C.a97,P:C.nb,O:C.aaa,R:c.F(256)},this.abi); +this.a8B.set(this.abi);this.U9(["source","map","cfa","cfb","colorize"]);var U=t.vU,E=this.Uf;U.uniform1f(E.cfa,C.a4n); +U.uniform1f(E.cfb,C.wo);U.uniform1i(E.colorize,C.a1c);this.jU([E.source,L,E.map,this.a8B.W5])};t.Ja[2]=function(){t.JF.call(this); +var L="\t\t\tprecision mediump float;\t\t\t"+t.w_.Ll+"\t\t\t"+t.w_.t2+"\t\t\t"+t.w_.D5+"\t\t\t"+t.w_.S2+"\t\t\t"+t.w_.u2+"\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform float vib; \t\t\tuniform float sat; \t\t\tconst float PI = 3.141592653; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec3 hsl = rgbToHsv(src.rgb); \t\t\t\tfloat h=hsl.r, s=hsl.g, l=hsl.b; \t\t\t\t\t\t\t\tfloat sk0 = 0.0, sk1 = 45.0/360.0; \t\t\t\tfloat skin = (h2OI;5g7:@5nVPLIGeVMX`|njge-'&-$V&)/$BbHB4D%GNx`KSI=_f_menp%E+%vwKB4&'XQY``edhootpjxp&%*'vhxY{#>5HINMDXX]YnVW",Jl:0,m8:1,VN:2,TZ:3}; +t.filter.BW=function(L,C){var U=t.filter,E=[U.Jl,U.m8,U.VN,U.TZ].indexOf(L.type),Y=t.filter.MV[L.type]; +if(Y==null)Y=t.filter.MV[L.type]=new t.MV[E];Y.jd();Y.Rt(C,L);t.vU.drawArrays(t.vU.TRIANGLES,0,6)};t.MV=[0,0,0,0,0,0,0]; +t.MV[3]=function(){t.JF.call(this);var L="1%* !*709;O@;=ETOUgQZ`Uk5rnllx~|2)y)/.*:\\qPGFOOCH!^ZXXdjh}wij<-y+~T2.,,8>{wuu\"(&;5'(ZJ<@=JtRNLLX^\\qbYo2!tvv'@N,(&&286K<3IkZNPP`z(fThremi%~pqC4+]-06+d/?BBXEM2TTdugYZ.|v,\" qrF5)X,#=OAWACCSlkYoY[[k&!6pfx||{0!w2D-$>P<\\J`HhWioTKewc$s(o0|14JNDEJX>:,-_OE7G@qi[MN!pdo&|vhi<, ,>42$%WG=/H*8FySLTp\\g{&))4:;7CC;$0CSRPXZ_cg]Wd]quw~$}'-/50=wm $$#7-~8y(6L\\RRiYLP^}gZfo.z/Dr{\"v-;1#)d/3AH?cORDJ$UUygY_~>45:6,*{|O?6;6f5>D9O]T[$yz ~ubjb?66;Iw$*B$-3(>LIob).\"|^$(>C72s(+,\"rzrOFFKK+3+e77[PuiRDJehh0gY_'!gvx\"y\",~W&28P2;A6LZV}p7<0+k26LQE@!6KCBGC9'06+AO6NuTiKSK&WW{o6*rdj&)(P(y GA(79B:BL?wIImiU]Bddt&wij>5s,B3H2$*T[\\a]`c]DSU^V^h[4rde9(nz$Q, 6599/^sZIHQQEJsja4cfla+ykl>7u.D5GK.?3Vk:CI>TbIM)PTh obft4my#A.BW&/5*@N3K?wmnvpMYb!h$,-7>2nz$B~EMNTWS0>CC /#KO,8A_G?=]kcM\\Pyi[\\/'9384Iw!'{2@49>iW6:t@DRYPj-p{~^bpwn6os;D|!/6-PJgP[:>y|rsx+~ %2#ae1ko}%{?H $KNc2;A6LZAX!ww||chm7ry0En&L(-(H]'>S04}M?H'VV\\b0i\\hq=#"; +this.Rn(B.d8(L),B.d8(t.filter.Ai))};t.MV[3].prototype=new t.JF;t.MV[3].prototype.Rt=function(L,C){this.U9("source iwh tdep rrad spec nois poly0 poly1".split(" ")); +var U=t.vU,E=this.Uf;U.uniform2fv(E.iwh,C.WY);U.uniform1f(E.tdep,C.a0E);U.uniform1f(E.rrad,C.agw);U.uniform2fv(E.spec,C.a0x); +U.uniform3fv(E.nois,C.afZ);U.uniformMatrix4fv(E.poly0,!1,C.a89);U.uniformMatrix4fv(E.poly1,!1,C.agt); +this.jU([E.source,L]);var Y=U.LINEAR;U.activeTexture(U.TEXTURE0);U.texParameteri(U.TEXTURE_2D,U.TEXTURE_MIN_FILTER,Y); +U.texParameteri(U.TEXTURE_2D,U.TEXTURE_MAG_FILTER,Y);U.activeTexture(U.TEXTURE0)};t.MV[0]=function(){t.JF.call(this); +var L="1%* !*709;O@;=ETOUgQZ`Uk5|uqoo{\" 5,|,21-=_tSJIRRFK$kd`^^jpn$}opB3 1%ZB;755AGEZTFGyiYT.unjhhtzx.w!'{2@7/3;5mUO=Q[NVRmgYZ,|sFux~sM5~(.#9G23E'?;AOZm_QR$th$}|$mv|q(62M?_E=1GFJJ@o%kZYbbV[%{o-{mn@9AHHMLCVW\\X\\?PDgo\\#jT]cXn|x5&F,$w.-11'VkRA@II=BkbVsbTU' z//43*=>C?C&7+NVCiQ;DJ?Uc`zl-rj^tswwm=R9('00$)RI=ZI;^DWXd\\S;Sn_ epe!~n)$9!zlm@0\"6V<.286-;;O=bTFGyqyTk(#`x31(8r*DA~7ROF.E_\\:Rlgj g]Seiih|drz1xs>$AV>?D>:75SD;FNj\\XUSztszdmsh~-({6V5g7:@5\\`QEzbc"; +this.Rn(B.d8(L),B.d8(t.filter.Ai))};t.MV[0].prototype=new t.JF;t.MV[0].prototype.Rt=function(L,C){this.U9(["source","iwh","ld","shine"]); +var U=t.vU,E=this.Uf;U.uniform2fv(E.iwh,C.WY);U.uniform3fv(E.ld,C.aek);U.uniform1f(E.shine,C.ac8);this.jU([E.source,L,E.tang,C.YY])}; +t.MV[1]=function(){t.JF.call(this);var L="1%* !*709;O@;=ETOUgQZ`Uk5|uqoo{\" 5,|,21-=_tSJIRRFK$kd`^^jpn$}opB3 1%ZB;755AGEZDMSH^lYfY4{tpnnz!~4}'-\"8F,?9FJEAya[I]gZb^ysef8) R\"%+ YA+4:/ES?;PHjLU[Pfths*!jsyn%3'3E?>E/8>3IWM?X:HVl-ribj'r}2PpV@IORXp\\w-tn`a3$u|]0P6*I.3`H2;A6LZQqt$]V^z'**/+@(\"stF7}M@`F-LlRLXf^DWQ^b]Yv$|hdyq4r\")@,L:MQ>^a_:IPgSsbtxe&)$9!vl~##\"6,0,7OP\\\\acjhmi~fglfb_]{lcnv3%!}{C=& qrF5{++AaG?3IHLLBq'm\\[ddX]'}tGvy t?D>:75SD;FNj\\XUSztszdmsh~-x+S-&'0'S?89B9u]GPVKaofmx9~338F.(yzN=494IiOG;QPTTJy/udcll`e/&|O~\"(|DYA;-._P:GYy_tsxuvfZpossi9N5%t%!H?6h8;A6]eSWmZLM~w#$.(/0:14I1+|}O@(FfL6CpXBNTlQYbp]4*8 lB;G/{@CD>=D>01bSGYy_V)X[aV0wams,mv|q(6,YOPUcKAmfgjmns\"i_z}~xw~xjk=.~x7W=RQVSTD8NMQQGv,rbRb^&|p,4\"&<)z{MFQR\\V]^h_bw_LLpP^f|e_*e-C:;@<65<-'bU93lTUZB`!fWQ+rfx'<\"rl5w)|R:$-3(>LGRrXSDKLP_uc|2ypup&4I/*?-!76::0_t[JIRRFKtk_z0wnu,A~E-yy>,Z\\+=QK1D:9Fx`afN*|Yf4{|\"ltjT$u~]--39IiOFKFefrrwyah|2yz"; +this.Rn(B.d8(L),B.d8(t.filter.Ai))};t.MV[2].prototype=new t.JF;t.MV[2].prototype.Rt=function(L,C){this.U9(["source","tang","iwh","sigma","expo"]); +var U=t.vU,E=this.Uf;U.uniform2fv(E.iwh,C.WY);U.uniform1f(E.sigma,C.a4D);U.uniform1f(E.expo,C.a6l);this.jU([E.source,L,E.tang,C.YY]); +var Y=U.LINEAR;U.activeTexture(U.TEXTURE0);U.texParameteri(U.TEXTURE_2D,U.TEXTURE_MIN_FILTER,Y);U.texParameteri(U.TEXTURE_2D,U.TEXTURE_MAG_FILTER,Y); +U.activeTexture(U.TEXTURE0)};t.Q={};t.Q.$c={};t.Q.BP=null;t.Q.bs=null;t.Q.Me=null;t.Q.eY=function(L,C,U,E,Y,z,r,p){if(p==null)p=ca.wq(); +if("idiv,lbrn,div ,lddg,vLit,lLit,hMix,diff".split(",").indexOf(L)==-1){r=r*p.fill;p.fill=1;p.style=!1}var T=L+(p.UZ?"1":""); +if(t.Q.$c[T]==null)t.Q.$c[T]=new t.Q.mc(L,p.UZ!=null);var k=t.Q.$c[T],P=U.eR(Y).eR(z);P.offset(-Y.x,-Y.y); +if(P.ue())return;var b=t.vU;t.RV(E,P);E.Go(P);k.jd();k.Rt(C.W5,E.zQ,t.NF(U,Y),r,p.fill,p.style?1:0,p.H1?1:0,p.UZ?new Float32Array(p.UZ):null); +b.drawArrays(b.TRIANGLES,0,6)};t.Q.e_=function(L,C,U,E,Y,z,r,p,T,k,P){if(t.Q.BP==null)t.Q.BP=new t.Q.vP(!0,!0); +if(t.Q.bs==null)t.Q.bs=new t.Q.vP(!0,!1);if(t.Q.Me==null)t.Q.Me=new t.Q.vP(!1,!0);var b=k?1:0,Q=L?Y?t.Q.BP:t.Q.bs:t.Q.Me,K=new Float32Array(P?[P[0],P[1],P[2],1]:[1,1,1,1]),h=C?C.eR(E).eR(p):E.eR(p); +if(h.ue())return;h.offset(-E.x,-E.y);var x=t.vU;t.RV(U,h);U.Go(h);Q.jd();if(L==null)Q.Rt(null,U.zQ,Y.W5,t.NF(E,E),t.NF(z,E),r/255,T,b,K); +else if(Y)Q.Rt(L.W5,U.zQ,Y.W5,t.NF(C,E),t.NF(z,E),r/255,T,b,K);else Q.Rt(L.W5,U.zQ,null,t.NF(C,E),null,r/255,T,b,K); +x.drawArrays(x.TRIANGLES,0,6)};t.Q.amO=function(L,C,U){if(t.Q.a8i==null)t.Q.a8i=new t.Q.xZ;var E=t.Q.a8i,Y=new _(0,0,L.d,L.v),z=t.vU; +t.RV(C);C.Go(Y);E.jd();E.Rt(Y,L.W5,C.zQ,U.W5);z.drawArrays(z.TRIANGLES,0,6)};t.Q.sp={norm:"return a;",diss:"return a;",dark:"return min(a,b);","mul ":"return a*b;",idiv:" vec3 d = (a*vec3(f)+ONE3-vec3(f)); return mix(mix(ONE3-((ONE3-b)/max(d,vec3(1e-6))), ZERO3, vec3(greaterThanEqual(ONE3-b,d)) ), ONE3 , vec3(equal(b,ONE3) )); ",lbrn:"return max(ZERO3, a*f+b-f);",dkCl:"return ( lum(a)lum(b) ? a : b );",over:"return mix( a+(2.0*b -1.0)-a*(2.0*b-1.0) , 2.0*b*a , step(-HALF3,-b) );",sLit:"return mix( b+(2.0*a -1.0)*(D(b)-b) , b-(1.0-2.0*a)*b*(1.0-b) , step(-HALF3,-a) );",hLit:"return mix( b+(2.0*a -1.0)-b*(2.0*a-1.0) , 2.0*a*b , step(-HALF3,-a) );",vLit:" return mix( ocddg(2.0*a-1.0,b,f) , ocbrn(2.0*a,b,f) , vec3(greaterThanEqual(HALF3,a))); ",lLit:"return mix( min(ONE3, (2.0*a-1.0)*f+b) , max(ZERO3, 2.0*a*f+b-f) , step(-HALF3,-a));",pLit:"return mix( max(2.0*a-1.0,b) , min(2.0*a, b) , step(-HALF3,-a) );",hMix:"if(f>0.99) return vec3(greaterThanEqual(a+b,ONE3)); return min( ONE3, max(ZERO3, (b+a*f-f)/(1.0-f+1e-6) )) ; ",diff:"return abs(a*f-b);",smud:"return a+b-2.0*a*b;",fsub:"return max(b-a, ZERO3);",fdiv:"return min(b/a, ONE3);","hue ":"return setLum( setSat(a, sat(b)) , lum(b) ); ","sat ":"return setLum( setSat(b, sat(a)) , lum(b) ); ",colr:"return setLum( a, lum(b) ); ","lum ":"return setLum( b, lum(a) ); "}; +t.Q.mc=function(L,C){t.JF.call(this);var U="\t\t\tprecision mediump float;\t\t\t"+t.w_.Fh+"\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform float alpha;\t\t\tuniform float fill;\t\t\tuniform float style;\t\t\tuniform float keepBGA;\t\t\t"+(C?"uniform vec4 blIf[10];":"")+"\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\t\t\t\t\t\t\t"+t.w_._a+"\t\t\t"+t.w_.uW+"\t\t\t"+t.w_.WX+"\t\t\t"+t.w_.a30+"\t\t\t"+t.w_.ahJ+"\t\t\t"+t.w_.ahm+"\t\t\t"+t.w_.Qx+"\t\t\t"+t.w_.a4R+"\t\t\t"+t.w_.B5+"\t\t\t"+t.w_.hash+"\t\t\t"+(C?t.w_.Bv:"")+"\t\t\t\t\t\tvec3 BB(vec3 a, vec3 b, float f) { "+t.Q.sp[L]+" } \t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 tgt = texture2D(target, tCoord);\t\t\t\tvec4 src = texture2D(source, sCoord);",E="\t\t\tattribute vec2 verPos;\t\t\tuniform vec4 srct;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (verPos-srct.xy)/srct.zw;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +if(L=="diss")U+="\t\t\t\t\tgl_FragColor = (hash(tCoord) >= (keepBGA + (1.0-keepBGA)*src.w)*alpha ? tgt : vec4(src.xyz, keepBGA*tgt.w + (1.0-keepBGA))); }"; +else U+=" \t\t\t\t\tfloat as = (keepBGA + (1.0-keepBGA)*src.w) * alpha, at = keepBGA + (1.0-keepBGA)*tgt.w; \t\t\t\t\t"+(C?" as*=blendIf(src,tgt,blIf); ":"")+"\t\t\t\t\tfloat ats = at * (1.0-as), ao = as + ats, iao = (ao==0.0) ? 0.0 : (1.0/ao); \t\t\t\t\tfloat ccf = (style==1.0) ? 1.0 : as; \t\t\t\t\tvec3 ncl = ( (1.0-at)*as*src.xyz + (1.0-ccf)*at*tgt.xyz + ccf*at*BB(src.xyz, tgt.xyz, (1.0+as-ccf)*fill) ) * iao;\t\t\t\t\tgl_FragColor = vec4(ncl, keepBGA*tgt.w + (1.0-keepBGA)*(as*fill + at*(1.0-as*fill)));\t\t\t\t\t\t\t}"; +this.Rn(U,E)};t.Q.mc.prototype=new t.JF;t.Q.mc.prototype.Rt=function(L,C,U,E,Y,z,r,p){this.U9("srct alpha source target fill style keepBGA blIf".split(" ")); +var T=t.vU,k=this.Uf;T.uniform4fv(k.srct,U);T.uniform1f(k.alpha,E);T.uniform1f(k.fill,Y);T.uniform1f(k.style,z); +T.uniform1f(k.keepBGA,r);if(p)T.uniform4fv(k.blIf,p);this.jU([k.source,L,k.target,C])};t.Q.vP=function(L,C){t.JF.call(this); +this.afJ=L;this.EA=C;var U="\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform sampler2D weight;\t\t\tuniform vec4 cswitch;\t\t\tuniform float wcolor;\t\t\tuniform float awg; /* additional weight */\t\t\tuniform float dissv;\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 wCoord;\t\t\t\t\t\t"+t.w_.uu+"\t\t\t"+t.w_.hash+"\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 tgt = texture2D(target, tCoord);\t\t\t\tvec4 src = "+(L?"texture2D(source, sCoord)":"vec4(0.0)")+"; \t\t\t\tfloat wg = awg "+(C?"* (in01(wCoord) ? texture2D(weight, wCoord).w : wcolor)":"")+";\t\t\t\t"+(L?"":"wg = 1.0-wg;")+"\t\t\t\tfloat hwg = hash(tCoord)>=wg ? 0.0 : 1.0; wg = dissv*hwg + (1.0-dissv)*wg; \t\t\t\tfloat as = wg*src.w, at = (1.0-wg)*tgt.w, ao = as+at;\t\t\t\t\t\t\t\tvec4 nc = vec4( (as*src.xyz + at*tgt.xyz)/ao, ao ); \t\t\t\tgl_FragColor = "+(C?"nc":"cswitch*nc + (1.0- cswitch)*tgt")+"; \t\t\t}",E="\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 wCoord;\t\t\t\t\t\tuniform vec4 srct;\t\t\tuniform vec4 wrct;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (verPos-srct.xy)/srct.zw;\t\t\t\twCoord = (verPos-wrct.xy)/wrct.zw;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +this.Rn(U,E)};t.Q.vP.prototype=new t.JF;t.Q.vP.prototype.Rt=function(L,C,U,E,Y,z,r,p,T){if(this.EA)this.U9("srct wrct wcolor awg dissv source target weight cswitch".split(" ")); +else this.U9("srct awg dissv source target cswitch".split(" "));var k=t.vU,P=this.Uf;k.uniform4fv(P.srct,E); +if(this.EA){k.uniform4fv(P.wrct,Y);k.uniform1f(P.wcolor,z)}else{k.uniform4fv(P.cswitch,T)}k.uniform1f(P.awg,r); +k.uniform1f(P.dissv,p);var b=[P.source,L,P.target,C];if(this.EA)b.push(P.weight,U);this.jU(b)};t.Q.xZ=function(){t.JF.call(this); +var L="\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D prev;\t\t\tuniform sampler2D next;\t\t\tuniform sampler2D alpha;\t\t\t\t\t\tvarying vec2 coord;\t\t\t\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec3 or = texture2D(prev , coord).rgb;\t\t\t\tvec3 ir = texture2D(next , coord).rgb; \t\t\t\tfloat al = texture2D(alpha, coord).w; \t\t\t\tgl_FragColor = vec4( (ir-(1.0-al)*or)*(1.0/al) ,1.0 ); \t\t\t}",C="\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 coord;\t\t\t\t\t\tuniform vec4 rct;\t\t\tvoid main(void) {\t\t\t\tcoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +this.Rn(L,C)};t.Q.xZ.prototype=new t.JF;t.Q.xZ.prototype.Rt=function(L,C,U,E){this.U9(["rct","prev","next","alpha"]); +var Y=t.vU,z=this.Uf;Y.uniform4fv(z.rct,[0,0,1,1]);this.jU([z.prev,C,z.next,U,z.alpha,E])};var W={}; +W.DJ=function(L,C,U){this.name=L;this.id=C;this.kn=null;if(U!=null)this.yH=U};W.DJ.prototype.GV=function(L,C,U,E,Y){}; +W.DJ.prototype.enable=function(L,C,U,E,Y,z){var r=new q(B.E.l,!0);r.data={e:B.U.lx,aZ:"default"};C.B(r)}; +W.DJ.prototype.disable=function(L,C,U,E,Y){};W.DJ.prototype.VF=function(L,C,U,E,Y){return!1};W.DJ.prototype.zI=function(L,C,U,E,Y){}; +W.DJ.prototype.vF=function(L,C,U,E,Y){};W.DJ.prototype.Yh=function(L,C,U,E,Y){};W.DJ.prototype.bM=function(L,C,U,E,Y){}; +W.DJ.prototype.Rg=function(L,C,U,E,Y){};W.DJ.prototype.fj=function(L,C,U,E){};W.DJ.prototype.xv=function(L,C,U,E){}; +W.DJ.prototype.Zm=function(L,C){};W.DJ.prototype.Ic=function(L,C){};W.DJ.prototype.oO=function(L,C,U,E,Y){}; +W.DJ.prototype.hU=function(L,C){};W.DJ.prototype.Gs=function(L,C){return!1};W.DJ.prototype.gQ=function(L,C){return!1}; +W.DJ.prototype.sH=function(){return!1};W.DJ.prototype.XZ=function(L,C){return!0};W.DJ.prototype.n4=function(){return null}; +W.DJ.prototype.Pj=function(L,C,U){};W.DJ.prototype.li=function(){return!1};W.DJ.prototype.eK=function(L,C,U,E){}; +W.DJ.prototype.track=function(L){var C=new q(B.E._w,!0);C.data=L;L.VL=!0;this.kn.B(C)};W.DJ.$y=function(L,C,U,E,Y){W.DJ.XU(L,C,[gS.get([12,41]).charAt(0)+": "+c.Mb.S9(U.d,E._Q,Y,E.d,!0),gS.get([12,42]).charAt(0)+": "+c.Mb.S9(U.v,E._Q,Y,E.v,!0)],E)}; +W.DJ.XU=function(L,C,U,E){var Y=14,z=130,r=U.length*17+8,p=new _(L,C-r,z,r),T=W.DJ.aQ;if(T==null)T=W.DJ.aQ=document.createElement("canvas"); +T.width=z;T.height=r;var k=T.getContext("2d");k.fillStyle="rgba(0,0,1,1)";k.fillRect(0,0,z,r);k.font=Y+"px monospace"; +k.fillStyle="rgba(255,255,255,1)";for(var H=0;HMath.abs(r); +if(k&&E[2]){var P=Math.round(2*z/Y);p+=P;U.x-=z-.5*P*Y}if(!k&&!E[2]&&T!=-1){var P=Math.round(.25*r); +T+=P;U.y-=r-4*P}p=Math.max(1,p);T=E[1]==-1?-1:Math.max(0,Math.min(100,T));var b=E[3];b.Brsh.v.Dmtr.v.val=p; +if(T!=-1)b.Brsh.v.Hrdn.v.val=T;this.KF=[p,T,k,b,U];var Q=iR.zl(b,C.lN.sd,Y),K=Q[1];K.x=Math.round(this.UD.x-K.d/2); +K.y=Math.round(this.UD.y-K.v/2);L.K.QX=[Q];var h=L.z.sQ(this.UD.x,this.UD.y);L.K.Q0={PL:[],ru:[h.x-p/2,h.y,h.x+p/2,h.y]}; +if(T!=-1)L.K.Q0.ru.push(h.x+50/Y,h.y-T/2,h.x+50/Y,h.y+T/2);L.eP=!0};W.dl.prototype.Rg=function(L,C,U,E,Y){if(this.id==W.lh)return; +if(this.UD){this.UD=null;this.cb(JSON.parse(JSON.stringify(this.KF[3])));L.K.QX=[];L.K.Q0=null;L.eP=!0; +return}var z=new q(B.E.l,!0);z.data={e:B.U.ik,m:this.id,a0R:"showBrushOpts",H3:new hZ(Y._5+4,Y.x0)}; +C.B(z)};W.dl.prototype.cb=function(L){var C=new q(B.E.l,!0);C.data={e:B.U.MP,wm:c_.qy,dp:L};this.caller.B(C)}; +W.dl.vG=function(L,C,U,E){if(L==null)L="FrgC";if(C==null)C="norm";if(U==null)U=1;var Y={classID:"Fl",Usng:{t:"enum",v:{FlCn:L}},Opct:{t:"UntF",v:{type:"#Prc",val:Math.round(U*100)}},Md:{t:"enum",v:{BlnM:gz.Wx(C)}}}; +if(L=="Clr")Y.Clr={t:"Objc",v:E};if(L=="contentAware")Y.contentAwareColorAdaptationFill={t:"bool",v:!0}; +return{xo:"fill",V5:Y}};W.dl.prototype.GV=function(L,C,U,E,Y){this.kn=C;var z=U.te.length;if(z==0&&!U.qk())return; +var r=z!=0?-1-U.te[0]:U.C[0],p=U.N[r];if(L.e=="fromAction"){var T=L.jX,k=T.V5;if(T.xo=="fill"){var P=(k.Opct?k.Opct.v.val:100)/100,b=k.Md?gz.Sh(k.Md.v.BlnM):"norm",Q=k.Usng.v.FlCn,K; +if(Q=="contentAware"){if(U.t==null){alert("Select an area to heal first.");return}if(!U.qk())return; +this.LX(U);this.yt(U,0);var h=U.t,x=c.F(h.rect.X()*4);c.Wn(h.channel,x,3);this.oA(U,"sheal",x,h.rect,h.rect); +this.s(U,h.rect);this.finish(U,h.rect)}else{if(Q=="FrgC")K=Y.yx;else if(Q=="BckC")K=Y.ho;else if(Q=="Blck")K=0; +else if(Q=="Wht")K=16777215;else if(Q=="Gry")K=8421504;else if(Q=="Clr"){var O=c.W.Lt(k.Clr.v);K=O.h<<16|O.P<<8|O.O}var y=K>>16&255,v=K>>8&255,i=K>>0&255; +this.Mp(U,p,U.t,y,v,i,Math.round(255*P),b,[2,3])}}else if(T.xo=="delete"){var D=r<0?1:p.yQ,h=U.t,d;if(h==null)return; +var I=r<0?U.vI[-r-1]:D<=0?null:D==1?p.xV():p.iC(U).r,m=D<=0?p.rect:I.rect,f=D<=0?h.rect.eR(m):h.rect.clone(); +if(f.ue())return;var A=f.X();if(D<=0){d=c.F(A*4);c.La(p.buffer,p.rect,d,f)}else{d=c.F(A);I.extend(f); +c.zM(I.channel,I.rect,d,f)}if(0<=r&&p.J6(U,h)){if(D<=0){c.n0(d,0);c.La(p.kK.Ke,p.kK.uL,d,f)}else{c.set(d,255); +c.zM(p.kK.Ke,p.kK.uL,d,f)}}else{if(D<=0){var g=c.F(d.length>>2);c.wH(d,g,3);c.Q.oW(c.Zx(h.rect.X()),h.rect,g,f,h.channel,f,1); +c.Wn(g,d,3)}else{var X=c.F(h.rect.X()),y=Y.ho>>16&255,v=Y.ho>>8&255,i=Y.ho>>0&255;c.set(X,Math.round(c.GZ(y,v,i))); +c.Q.oW(X,h.rect,d,f,h.channel,f,1)}}this.V3(U,!0,[2,2],r,D,f,d)}}if(L.e=="stroke"){var n=L.alJ,h=U.t; +if(h==null){h={rect:p.rect.clone(),channel:c.F(p.rect.X())};c.wH(p.buffer,h.channel,3)}var R=ca.AA(n),l=W.kd.Z2(h,Math.ceil(R[0]),Math.ceil(R[1])),K=c.W.Lt(n.Clr.v),y=Math.round(K.h),v=Math.round(K.P),i=Math.round(K.O); +this.Mp(U,p,l,y,v,i,Math.round(255*n.Opct.v.val/100),gz.Sh(n.Md.v.BlnM),[14,9])}if(L.e=="fillBMP"){this.Hv(U,p,U.t,L.CK,L.g_,L.z9)}if(L.e=="draw"){var w=L.rC,V=w.rect; +this.LX(U);var F=U.N[U.C[0]];if(L.a2q&&F&&F.yQ<=0&&U.te.length==0){V=hO.T0.hs(w,U);F.buffer=w.buffer.slice(0); +F.rect=V.clone()}else{var Z=this.cY.bmode;this.cY.bmode="norm";this.oA(U,"draw",w.buffer,V,V.eR(new _(0,0,U.d,U.v))); +this.cY.bmode=Z}this.s(U,V);U.hK=!0;this.finish(U,V,L.z9,L.a2q)}};W.dl.prototype.Mp=function(L,C,U,E,Y,z,r,p,T){var k=U==null?new _(0,0,L.d,L.v):U.rect,P=r<<24|z<<16|Y<<8|E<<0,b=c.F(k.X()*4); +c.n0(b,P);this.Hv(L,C,U,b,p,T)};W.dl.prototype.Hv=function(L,C,U,E,Y,z){var r=L.te.length!=0?-1-L.te[0]:L.C[0],p=r<0?1:C.yQ,T=r<0?L.vI[-1-r]:p<=0?null:p==1?C.xV():C.iC(L).r,k=p<=0?C.rect:T.rect,P=U==null?new _(0,0,L.d,L.v):U.rect,b=U==null?c.PH(L.d*L.v):U.channel,Q=P.X(),K,h=null; +if(p<=0){K=c.F(Q*4);c.La(C.buffer,C.rect,K,P)}else{K=c.F(Q);T.extend(P);c.zM(T.channel,T.rect,K,P)}if(U!=null)c.sn(b,E); +if(p>0){h=c.F(Q);c.Fy(E,h)}if(0<=r&&U&&C.J6(L,U)){var x=C.kK.zK,O=C.kK.zK.slice(0);if(p<=0)c.hL(E,O); +else c.hL(h,O);var y=new hp([2,3],this);y.data={e:"drawtemp",$:L.C[0],yj:p,a0a:x,agZ:O};L.Sv(y);this.Zm(y.data,L)}else{if(p<=0){var v; +if(C.zm(0)){v=c.F(P.X());c.wH(K,v,3)}c.Q.Kj(Y,E,P,K,P,P,1);if(C.zm(0))c.Wn(v,K,3)}else c.Q.oW(h,P,K,P,b,P,1); +this.V3(L,!0,z,r,p,P,K)}};W.dl.prototype.Gs=function(L){if(G.EC.indexOf(L)!=-1)return!0;return!1};W.dl.prototype.fj=function(L,C,U,E){var Y=this.cY.brush,z=E.q(G.Lv),r=z!=this.qp,p=W.dl.bz(Y,E); +if(p!=null)this.cb(p);if(!E.q(G.DM)&&E.y0()!=-1){var T=B.Qi(Math.round(this.cY.opacity*100),E.y0())/100; +this.cZ({opacity:T},C)}if(this.id==W.dk&&r&&L!=null){var k=this.cY.qsmode;if(k==2)k=L.t==null?0:1;else k=2; +this.cZ({qsmode:k},C)}this.qp=z;if(r){if(L)this.Bi=L.z.S;this.cl(U,E)}};W.dl.bz=function(L,C){var U=L.Brsh.v.Dmtr.v.val,E=L.Brsh.v.Hrdn!=null?L.Brsh.v.Hrdn.v.val:-1,Y=U,z=E,r=C.q(G.PS); +if(C.q(G.Ui)){if(r)E=25*Math.floor((E-1)/25);else{if(U<=10)U--;else if(U<=50)U=5*Math.floor((U-1)/5); +else if(U<=100)U=10*Math.floor((U-1)/10);else if(U<=200)U=25*Math.floor((U-1)/25);else if(U<=400)U=50*Math.floor((U-1)/50); +else U=100*Math.floor((U-1)/100)}}if(C.q(G.Vt)){if(r)E=25*Math.ceil((E+1)/25);else{if(U<10)U++;else if(U<50)U=5*Math.ceil((U+1)/5); +else if(U<100)U=10*Math.ceil((U+1)/10);else if(U<200)U=25*Math.ceil((U+1)/25);else if(U<400)U=50*Math.ceil((U+1)/50); +else U=100*Math.ceil((U+1)/100)}}U=Math.max(1,U);E=Math.max(0,Math.min(100,E));if(z==-1)E=-1;if(U!=Y||E!=z){var p=JSON.parse(JSON.stringify(L)); +p.Brsh.v.Dmtr.v.val=U;if(z!=-1)p.Brsh.v.Hrdn.v.val=E;return p}return null};W.dl.prototype.cl=function(L,C,U,E){if(L.lN.list.length==0)return; +var Y=this.id,z;if((Y==W.ZP||Y==W.uE||Y==W.Sw||Y==W.Ts)&&(C!=null&&C.q(G.Lv)||this.cY.alt[0]))z="crosshair"; +else{var r=this.Bi,p=this.cY.brush;if((Y==W.ZP||Y==W.uE)&&U&&this.KT&&this.KT.length==this.hb.X()*4){var T=U.z.sQ(E.x,E.y),k=this.sC(T),P=this.KT,b=this.hb,Q=new _(b.x+k.x,b.y+k.y,b.d,b.v),K=iR.zl(p,L.lN.sd,r),h=K[0],x=K[1],O=Math.ceil(x.d/r),y=new _(Math.round(T.x-O/2),Math.round(T.y-O/2),O,O),v=c.F(y.X()*4),i,D; +c.La(P,Q,v,y);if(r==1){i=v;D=y}else{var I=new c0(r,0,0,r,0,0),m=W.o.dy([v,y],I,!0);D=x.clone();D.x=m.rect.x; +D.y=m.rect.y;if(D.cg(m.rect))i=m.buffer;else{i=c.F(D.X()*4);c.La(m.buffer,m.rect,i,D)}}var f=this.cY.opacity/255; +for(var H=0;H>>1,P=new _(Math.round(p.x)-k,Math.round(p.y)-k,T,T),b=c.F(P.X()*4); +c.n0(16777215);for(var H=0;H0){k=c.F(z.X()*4);W.dl.M0(r,z,0,k,z)}var P=new hp(U,this);P.data=[{$:E,yj:Y,_:z,JL:k}];if(p)P.data.jC=[L.t,null]; +if(T)P.data.jC=[this.e5,L.t];L.Sv(P);if(C)this.Zm(P.data,L);else if(p)L.t=null;hO.PU.Xm(L,P.data)};W.dl.prototype.Ic=function(L,C){this.mG(L,C,!1)}; +W.dl.prototype.Zm=function(L,C){this.mG(L,C,!0)};W.dl.prototype.mG=function(L,C,U){if(L.e=="drawtemp"){var E=U?L.agZ:L.a0a,Y=C.N[L.$]; +Y.kK.zK=E;Y.TA(C,0,0,C.t);Y.s();C.hK=!0}else{hO.PU.O8(C,L);if(L.jC){C.t=L.jC[U?1:0];C.U8=!0}}C.s()}; +W.dl.prototype.Ld=function(L){this.oA(L,this.tH,this.G2.fS(),this.G2.dm(),this.G2.Fr());this.s(L)};W.dl.prototype.oA=function(L,C,U,E,Y){var z=this.cY,r=L.N[L.C[0]],p=L.te.length!=0?L.vI[L.te[0]]:r.yQ<=0?null:r.yQ==1?r.xV():r.iC(L).r,T=c.F(Y.X()*4),k,P=r.zm(0); +if(p==null){if(this.id==W.Pu&&C=="heal")c.La(r.buffer,r.rect,T,Y);else c.La(this.QO,this.dc,T,Y);if(P){k=c.F(Y.X()); +c.wH(T,k,3)}}else{W.dl.M0(this.QO,this.dc,p.color,T,Y)}if(L.t&&C!="qselect"){var b=Y.eR(L.t.rect),Q=c.F(b.X()*4); +if(C=="copy"){var K=c.F(b.X());c.zM(L.t.channel,L.t.rect,K,b);c.La(T,Y,Q,b);c.Q.f3(U,E,Q,b,K,b,0,b,1,!1)}else{c.La(U,E,Q,b); +c.Ow(L.t.channel,L.t.rect,Q,b)}U=Q;E=b}function h(y,dk){var iN=Math.max(dk.x,Math.min(dk.x+dk.d-1,y.x)),dK=Math.max(dk.y,Math.min(dk.y+dk.v-1,y.y)); +return new hZ(iN,dK)}if(C=="idraw"||C=="ierase"){if(this.XW==null)this.XW=c.F(this.dc.X());var x=this.cY.samp,O=this.OY.ho,y=h(this.a2,Y),v=x==0?y:this.kF,i=v.x,D=v.y,I=W.Xf.IG(this.QO,this.dc,[v,new hZ(i-2,D),new hZ(i+2,D),new hZ(i,D-2),new hZ(i,D+2)]); +if(x==2)I=[[O>>>16&255,O>>>8&255,O>>>0&255,255]];var m=W.Xf.NU(T,Y,y,I,this.cY.wconf),f=c.F(Y.X());c.zM(this.XW,this.dc,f,Y); +c.KK.EU(m,f,f);c.zM(f,Y,this.XW,this.dc);c.Ow(f,Y,U,E);C=C.slice(1)}if(C=="erase"&&(hO.PU.BK(L)!=16777215||p))C="draw"; +if(C=="draw")c.Q.Kj(z.bmode,U,E,T,Y,Y,z.opacity);else if(C=="erase"){var A=c.F(Y.X()*4);c.La(U,E,A,Y); +if(p==null){var d=c.F(Y.X());c.wH(A,d,3);c.yG(d,z.opacity);c.G$(d);c.Ow(d,Y,T,Y)}else{c.n0(A,0,4278190080); +c.Q.Kj("norm",A,Y,T,Y,Y,z.opacity)}}else if(C=="clone"||C=="heal"){var g=this.NV(),X=this.hb.clone(); +X.offset(g.x,g.y);var n=Y.clone();n.WW(1,1);var R=c.F(n.X()*4),l=c.F(n.X());c.La(U,E,R,n);c.wH(R,l,3); +c.n0(R,0);if(p==null){c.La(this.KT,X,R,n);var w=c.F(n.X());c.wH(R,w,3);c.Iz(w,l)}else W.dl.M0(this.KT,X,p.color,R,n); +if(C=="clone"){c.Wn(l,R,3);c.Q.Kj(z.bmode,R,n,T,Y,Y,z.opacity)}if(C=="heal"){var V=l.slice(0);c.round(V,20); +var F=c.F(n.X()*4);if(p==null)c.La(this.QO,this.dc,F,n);else W.dl.M0(this.QO,this.dc,p.color,F,n);c.Q.f3(R,n,F,n,V,n,0,n,1,!1); +c.l2.p8(F,V,n);c.Q.f3(F,n,T,Y,l,n,0,Y,1,!1)}}else if(C=="dodge"||C=="burn"){var R=c.F(Y.X()*4),a=1,e=0,N=0,J=0; +c.La(U,E,R,Y);var Z=Y.X()*4,M=W.dl.bU;if(this.qp){if(C=="dodge")C="burn";else C="dodge"}var s=z.rng; +if(C=="dodge"){e=[1-a/2,1,1+a][s];N=[1,1/(1+a),1][s];J=[a/2,0,0][s]}if(C=="burn"){e=[1/(1-a/2),1,1-a/2][s]; +N=[1,1+a,1][s];J=[-(a/2)/(1-a/2),0,0][s]}for(var H=0;H>>1)*g6]=l[(al>>>1)*g6+g6-1]=0;W.jw.xr(eN,!0);L.t={rect:bz,channel:eN.t.slice(0)};L.U8=!0}if(p==null){if(P)c.Wn(k,T,3); +c.La(T,Y,r.buffer,r.rect)}else W.dl.nO(T,Y,p)};W.dl.NV=function(){return null};W.dl.bU=function(L,C,U,E,Y){var z=L*(1/255),r=E+C*Math.pow(z,U),p=Math.round(r*Y+z*(255-Y)); +return Math.max(0,Math.min(255,p))};W.dl.M0=function(L,C,U,E,Y){var z=c.F(Y.X());z.fill(U);c.zM(L,C,z,Y); +E.fill(255);c.EI(z,E)};W.dl.nO=function(L,C,U){var E=c.F(C.X());c.Fy(L,E);c.zM(E,C,U.channel,U.rect)}; +W.kd=function(L,C,U){W.DJ.call(this,L,C,U);this.cY={Ks:"front",hY:0,ra:{am:0,x:3,y:2},dH:[16,!0,!0]}; +this.AS=new hZ(-1,-1);this.vv=new hZ(-1,-1);this.XK="default";this.kn=null;this.akl=!0;this.xy=!1;this.iR=!1; +this.qp=!1;this.oK=0;this.RZ=0;this.NP=!1;this.XX=null;this.YW=null;this.c4=!1};W.kd.prototype=new W.DJ; +W.kd.prototype.an$=function(){var L=this.cY,C=[{front:0,union:1,difference:2,intersection:3}[L.Ks],L.hY]; +if(this.id==W.eG)C.push(L.dH);return C};W.kd.prototype.abE=function(L,C,U){var E=this.cY;E.Ks=["front","union","difference","intersection"][L[0]]; +E.hY=L[1];E.dH=L[2];var Y=new q(B.E.l,!0);Y.data={e:B.U.ik,m:this.id,XO:E};U.B(Y)};W.kd.Ss={key:""}; +W.kd._y=function(L,C){var U={xo:L,V5:{classID:"setd",null:{t:"obj ",v:[{t:"prop",v:{classID:"Chnl",keyID:"fsel"}}]}}}; +if(C)U.V5.T=C;return U};W.kd.ee=function(L,C){return W.kd._y("set",{t:"Objc",v:{classID:L,Top:{t:"UntF",v:{type:"#Pxl",val:C.y}},Left:{t:"UntF",v:{type:"#Pxl",val:C.x}},Btom:{t:"UntF",v:{type:"#Pxl",val:C.y+C.v}},Rght:{t:"UntF",v:{type:"#Pxl",val:C.x+C.d}}}})}; +W.kd.K4=function(L,C){var U=[],E=[],z="set";for(var H=0;H>>1)),Z=d.y-X.y,M=Z+d.v-1,a=Math.max(Z,Math.min(M,Z+M>>>1)),e=Math.max(w,0),N=Math.min(V,R),J=Math.max(Z,0),s=Math.min(M,l); +n.fill(128);if(0<=Z)for(var f5=e;f5>>2);c.wH(iB,hS,3);r={channel:hS,rect:d6.clone()}}else{if(go.r==null)go.cr(U);var eF=bj==1?go.xV():go.r; +r=W.kd.zy(eF,T)}this.track(W.kd.Qj(f,["Trsp","Msk"][bj],go.getName()))}else if(z=="frompath"){var bQ=U.zG(),iP=bQ[1],bQ=bQ[0]; +if(dp==null)if(bQ.length==0||iP.length==0)return;var d8=bQ[iP[0]];if(dp!=null)for(var H=0;H1||this.RZ>1?C:null; +var E=this.AS,Y=this.vv;if(U){E.x=Math.max(0,Math.min(L.d,E.x));E.y=Math.max(0,Math.min(L.v,E.y));Y.x=Math.max(0,Math.min(L.d,Y.x)); +Y.y=Math.max(0,Math.min(L.v,Y.y))}var z=W.gl.V8(E,Y,C,!0,this.cY.ra),r=z[0].x,p=z[0].y;return new _(r,p,z[1].x-r,z[1].y-p)}; +W.kd.prototype.zI=function(L,C,U,E,Y){if(this._D())return;this.kn=C;this.xy=!1;this.iR=E.q(G.PS);this.qp=E.q(G.Lv); +this.oK=this.iR?0:1;this.RZ=this.qp?0:1;this.AS=L.z.sQ(Y.x,Y.y);this.AS=W.P4.wD(L,this.AS,U);if(this.wl(L,this.AS,E)){this.NP=!0; +this.XX=L.t.rect.clone();return}this.g3(L,U,E,Y);L.z.d0=new _};W.kd.prototype.wl=function(L,C,U){var E=U.q(G.PS),Y=U.q(G.Lv); +if(L.t&&!E&&!Y&&this.cY.Ks=="front")return c.gW(C,L.t.channel,L.t.rect);return!1};W.kd.prototype.Yh=function(L,C,U,E,Y){this.kn=C; +if(this.c4)return;var z=L.z.sQ(Y.x,Y.y);if(hZ.sl(this.AS,z)*L.z.S>5)this.xy=!0;if(E.q(G.en)){if(this.YW==null)this.YW=new hZ(z.x-this.AS.x,z.y-this.AS.y); +this.AS.x=z.x-this.YW.x;this.AS.y=z.y-this.YW.y}else this.YW=null;this.vv=z;if(!this.NP)this.vv=W.P4.wD(L,this.vv,U); +if(this.wl(L,this.vv,E))this.Kg(C,"move");else this.Kg(C,this.XK);if(this.NP){var r=this.XX.clone(); +r.x+=this.vv.x-this.AS.x;r.y+=this.vv.y-this.AS.y;var p=W.P4.HG(L,r,U);L.t.rect.x=Math.round(this.vv.x-this.AS.x+this.XX.x+p[0]); +L.t.rect.y=Math.round(this.vv.y-this.AS.y+this.XX.y+p[1]);L.U8=!0;W.P4.E9(L,r,p);return}this.Rl(L,U,E,Y); +if(L.z.d0)L.z.d0=this.dm(L,E)};W.kd.prototype._D=function(){return!1};W.kd.prototype.bM=function(L,C,U,E,Y){L.z.d0=null; +this.vv=L.z.sQ(Y.x,Y.y);this.vv=W.P4.wD(L,this.vv,U);if(this.NP){this.NP=!1;if(this.vv.cg(this.AS)&&this.j8()=="front"){this.eo(C,B.E._w,W.kd.xe()); +return}this.Zs(L,this.XX,L.t.rect.clone());if(L!=null&&L.K.h4){L.K.h4=null;L.eP=!0}return}this.Zr(L,U,E,Y); +W.kd.Lg(C,U)};W.kd.prototype.Zs=function(L,C,U){var E=L.bQ();if(E!=null&&E.m==this&&E.data.e=="movesel"){}else{E=new hp([7,7],this); +E.data={e:"movesel",TU:C};L.Sv(E)}E.data.P0=U;this.Zm(E.data,L)};W.kd.prototype.vF=function(L,C,U,E,Y){this.c4=!0}; +W.kd.prototype.Rg=function(L,C,U,E,Y){var z=new q(B.E.l,!0);z.data={e:B.U.ik,m:this.id,q0:Y,Ru:L,us:U}; +C.B(z);this.c4=!1};W.kd.prototype.fj=function(L,C,U,E){var Y=E.q(G.PS),z=E.q(G.Lv);if(this.xy){if(this.oK==0&&!Y)this.oK++; +if(this.oK==1&&Y)this.oK++;if(this.RZ==0&&!z)this.RZ++;if(this.RZ==1&&z)this.RZ++}if(L!=null&&L.t!=null){var r=E.wu(); +if(r.x!=0||r.y!=0){var p=L.t.rect.clone();p.x+=r.x;p.y+=r.y;this.Zs(L,L.t.rect.clone(),p)}}var T=W.kd.LV(this.cY.Ks,Y,z),k=new q(B.E.l,!0); +k.data={e:B.U.ik,m:this.id,Ks:T};C.B(k)};W.kd.prototype.finish=function(L,C,U,E){var Y=L.t,z=this.getSelection(L,C,U,E); +if(z==null)z=W.kd.xe();else{var r=this.cY.hY,p=this.j8();if(r!=0)z.V5.Fthr={t:"UntF",v:{type:"#Pxl",val:r}}; +if(p!="front"&&p!="xor")z.xo={union:"addTo",difference:"subtractFrom",intersection:"interfaceWhite"}[p]}this.eo(this.kn,B.E._w,z); +this.AS.U6(-1,-1);this.vv.U6(-1,-1)};W.kd.prototype.j8=function(){return W.kd.LV(this.cY.Ks,this.iR,this.qp)}; +W.kd.LV=function(L,C,U){if(C)L="union";if(U)L="difference";if(C&&U)L="intersection";return L};W.kd.prototype.getSelection=function(L,C,U,E){return null}; +W.kd.prototype.g3=function(L,C,U,E){};W.kd.prototype.Rl=function(L,C,U,E){};W.kd.prototype.Zr=function(L,C,U,E){}; +W.kd.prototype.Ic=function(L,C){var U=L.e;if(U=="changesel")C.t=L.e5;if(U=="movesel")C.t.rect=L.TU;if(L.$k){if(L.adg){C.te=[C.vI.length]; +C.vI.push(L.adg)}else{C.vI.pop();C.te=[]}}if(L.i1){C.j5=JSON.parse(L.i1[0]);C.cE=JSON.parse(L.i1[1])}C.U8=!0}; +W.kd.prototype.Zm=function(L,C){var U=L.e;if(U=="changesel")C.t=L.bx;if(U=="movesel")C.t.rect=L.P0;if(L.$k){if(L.amE){C.te=[C.vI.length]; +C.vI.push(L.amE)}else{C.vI.pop();C.te=[]}}if(L.i1){C.j5=JSON.parse(L.ail[0]);C.cE=JSON.parse(L.ail[1])}C.U8=!0}; +W.kd.prototype.oO=function(L){this.cY=L};W.kd.prototype.P3=function(L){var C=c.a.wh(L.c);if(C.ue())return null; +var U=B.w("canvas","");U.width=C.d;U.height=C.v;var E=U.getContext("2d");E.beginPath();E.translate(-C.x,-C.y); +Typr.U.pathToContext({cmds:L.Z,crds:L.c},E);E.closePath();E.fill();var Y=c.F(C.X()),z=E.getImageData(0,0,U.width,U.height); +c.wH(z.data,Y,3);return{rect:C,channel:Y}};W.kd.fs=function(L,C,U,E,Y){if(U)C=Math.round(C*.7);var z=Math.ceil(2.6*C),r=L.rect.clone(); +r.WW(z,z);if(E&&!Y)r=r.eR(E);var p=c.F(r.X()),T=c.F(p.length);c.zM(L.channel,L.rect,T,r);c.qM.Oq(T,p,r,C); +if(U){var k=p.length;for(var H=0;H1e-9||!b||z||p)Q=this.bL(L,C,!0,P,1,E);var h=new hp(this.name,this),x=new _(0,0,L.d,L.v); +h.data={TU:x,P0:Y,LO:Q,v8:P,G3:L.z.g.clone(),fM:W.yP.qz(L,Y,x,!1)};L.Sv(h);this.Zm(h.data,L);this.track(W.yP.oR([E.x,E.y,E.d,E.v]))}; +W.yP.prototype.aiV=function(L,C){var U=c.I.O4(C),E=c.I.tC(U),Y=c.I.bm(U),z=Y.Yt,r=Y.rv,p=Math.atan2(Y.O,Y.R); +Y.rotate(p);var T=new _(z,r,Y.R,Y.J2);if(!E){function k(i,H,D){var I=i[H]-i[D],m=i[H+1]-i[D+1];return Math.sqrt(I*I+m*m)}var P=k(C,0,2),b=k(C,4,6),Q=Math.max(P,b),K=k(C,2,4),h=k(C,6,0),x=Math.max(K,h),O=W.yP.ajE(C,L.d/2,L.v/2),y,v; +if(isNaN(O)||O==Infinity||O==-Infinity||Math.min(O,1/O)<.1)O=(P+b)/(K+h);if(Q/x>O){y=Q*1;v=y/O}else{v=x*1; +y=v*O}T.d=y;T.v=v}T.x=Math.round(T.x);T.y=Math.round(T.y);T.d=Math.round(T.d);T.v=Math.round(T.v);return T}; +W.yP.ajE=function(L,C,U){var E=L[0]-C,Y=L[1]-U,z=L[2]-C,r=L[3]-U,p=L[6]-C,T=L[7]-U,k=L[4]-C,P=L[5]-U,b=((Y-P)*p-(E-k)*T+E*P-Y*k)/((r-P)*p-(z-k)*T+z*P-r*k),Q=((Y-P)*z-(E-k)*r+E*P-Y*k)/((T-P)*z-(p-k)*r+p*P-T*k),K=-((Q*T-Y)*(b*r-Y)+(Q*p-E)*(b*z-E))/((Q-1)*(b-1)); +function h(O){return O*O}var x=Math.sqrt((h(b-1)+h(b*r-Y)/K+h(b*z-E)/K)/(h(Q-1)+h(Q*T-Y)/K+h(Q*p-E)/K)); +if(b==1&&Q==1)x=Math.sqrt((h(r-Y)+h(z-E))/(h(T-Y)+h(p-E)));return x};W.yP.prototype.disable=function(L,C,U,E){if(L==null)return; +if(this.E$)this.E$.clear(L);this.E$=null;this.eo(C,B.E.l,{e:B.U.ik,m:this.id,Gw:!1})};W.yP.prototype.eo=function(L,C,U,E){var Y=new q(C,!0); +Y.data=U;if(E)Y.m=E;L.B(Y)};W.WB=function(){W.yP.call(this,[10,2],W.Q_,"tools/rcrop")};W.WB.prototype=new W.yP; +W.jl=function(){W.yP.call(this,[10,39],W.C_,"tools/pcrop")};W.jl.prototype=new W.yP;W.UI=function(){W.dl.call(this,[10,21],W.JG,"tools/dodge"); +this.tH="dodge"};W.UI.prototype=new W.dl;W.UI.prototype.zI=function(L,C,U,E,Y){this.fu(L,U,E,Y,this.cY.expo/Math.PI); +if(this.G2==null)return;this.Ld(L)};W.UI.prototype.Yh=function(L,C,U,E,Y){this.rr(L,C,U);if(this.UD)this.GS(L,U,Y); +if(this.G2==null)return;if(!Y.X4)return;this.CC(L,U,E,Y);this.Ld(L)};W.gT=function(){W.dl.call(this,[10,3],W.$B,"tools/eraser"); +this.tH="erase"};W.gT.prototype=new W.dl;W.gT.prototype.zI=function(L,C,U,E,Y){this.fu(L,U,E,Y,this.cY.flow); +if(this.G2==null)return;this.Ld(L)};W.gT.prototype.Yh=function(L,C,U,E,Y){this.rr(L,C,U);if(this.UD)this.GS(L,U,Y); +if(this.G2==null)return;if(!Y.X4)return;var z=this.CC(L,U,E,Y);this.Ld(L)};W.Cb=function(){W.dl.call(this,[10,45],W.a0_,"tools/beraser"); +this.tH="ierase"};W.Cb.prototype=new W.dl;W.Cb.prototype.zI=function(L,C,U,E,Y){if(this.V4(E,C,Y))return; +this.fu(L,U,E,Y,this.cY.flow);if(this.G2==null)return;this.Ld(L)};W.Cb.prototype.Yh=function(L,C,U,E,Y){this.rr(L,C,U); +if(this.UD)this.GS(L,U,Y);if(this.G2==null)return;if(!Y.X4)return;this.CC(L,U,E,Y);this.Ld(L)};W.OE=function(){W.kd.call(this,[10,15],W.Y7,"tools/rselect"); +this.XK="crosshair"};W.OE.prototype=new W.kd;W.OE.prototype.Rl=function(L,C,U,E){if(!E.X4||!this.xy)return; +var Y=this.dm(L,U,!0);L.K.yw=c.a.kG(Y);L.eP=!0;W.DJ.$y(E.x+10,E.y-10,Y,L,C)};W.OE.prototype.Zr=function(L,C,U,E){L.K.yw=null; +L.K.jB=[];L.eP=!0;this.finish(L,C,U,E)};W.OE.prototype.getSelection=function(L,C,U,E){if(this.AS.cg(this.vv)||!this.xy)return null; +var Y=this.dm(L,U,!0);if(Y.ue())return null;return W.kd.ee("Rctn",Y)};W.In=function(){W.kd.call(this,[10,4],W.ae6,"tools/eselect"); +this.XK="crosshair"};W.In.prototype=new W.kd;W.In.prototype.Rl=function(L,C,U,E){if(!E.X4||!this.xy)return; +var Y=this.dm(L,U);L.K.yw=W.In.Lz(Y);L.eP=!0;W.DJ.$y(E.x+10,E.y-10,Y,L,C)};W.In.prototype.Zr=function(L,C,U,E){L.K.yw=null; +L.K.jB=[];L.eP=!0;this.finish(L,C,U,E)};W.In.prototype.getSelection=function(L,C,U,E){if(this.AS.cg(this.vv)||!this.xy)return null; +var Y=this.dm(L,U);if(!Y.nN(new _(0,0,L.d,L.v)))return null;return W.kd.ee("Elps",Y)};W.In.Lz=function(L){var C=L.x,U=L.y,E=L.x+L.d,Y=L.y+L.v,z=(C+E)/2,r=(U+Y)/2,p=(C-E)/2,T=(U-Y)/2,k=.5522848,P={c:[z,r-T],Z:["M","C","C","C","C"]}; +P.c.push(z+k*p,r-T,z+p,r-k*T,z+p,r);P.c.push(z+p,r+k*T,z+k*p,r+T,z,r+T);P.c.push(z-k*p,r+T,z-p,r+k*T,z-p,r); +P.c.push(z-p,r-k*T,z-k*p,r-T,z,r-T);return P};W.Ra=function(){W.DJ.call(this,[10,5],W.y8,"tools/eyedropper"); +this.j0=!1;this.qL=1};W.Ra.prototype=new W.DJ;W.Ra.prototype.gQ=function(L){return L.X4};W.Ra.prototype.GV=function(L,C,U,E,Y){if(L.e=="pickhere")this.V7(U,C,Y,E,L.alS)}; +W.Ra.prototype.zI=function(L,C,U,E,Y){this.j0=!0;this.V7(L,C,U,E,Y)};W.Ra.prototype.Yh=function(L,C,U,E,Y){if(this.j0)this.V7(L,C,U,E,Y)}; +W.Ra.prototype.bM=function(L,C,U,E,Y){this.j0=!1};W.Ra.prototype.V7=function(L,C,U,E,Y){var z=W.Ra.Vy(L,Y,this.qL),r=new q(B.E.l); +r.data={e:B.U.MP,wm:c_.GM,ev:0,G:z};C.B(r)};W.Ra.Vy=function(L,C,U){var E=L.z.sQ(C.x,C.y),Y=Math.floor(E.x),z=Math.floor(E.y),r=(U-1)/2,p=Math.max(0,Y-r),T=Math.max(0,z-r),k=Math.min(L.d,Y+r+1),P=Math.min(L.v,z+r+1),b=(k-p)*(P-T),Q=L.E0(),K=0,h=0,x=0; +for(var Y=p;Y2){var K;if(L.t)K=L.t.rect;else K=new _(0,0,L.d,L.v);var h=c.F(K.X()*4),x=this.cY,O=x.mV;if(O!="Lnr"){P*=2; +T=this.K5}c.W.Rv(x.W,h,K,[Q*1/P,b*1/P,-b*1/P,Q*1/P],T.x,T.y,x.ks,gM.W.types.indexOf(O),U.yx,U.ho,null,x.a4Y); +var y=Math.round(x.u8*256),v=h.length;if(y!=256)for(var H=0;H>>8;var i=new q(B.E.A); +i.m=W.$B;i.data={e:"fillBMP",CK:h,g_:x.ah7,z9:this.name};C.B(i)}L.K.yw=null;L.K.yI=[];L.eP=!0;this.A1=!1}; +W.Fe.hZ=function(L,C){if(L.cg(C))return L;var U=C.x-L.x,E=C.y-L.y,Y=Math.abs(U),z=Math.abs(E);if(Y>z)z=Y/2>z?0:Y; +if(z>Y)Y=z/2>Y?0:z;Y=U>0?Y:-Y;z=E>0?z:-z;var r=Math.sqrt(U*U+E*E)/Math.sqrt(Y*Y+z*z);return new hZ(L.x+Y*r,L.y+z*r)}; +W.Fe.BU=function(L,C,U,E,Y,z,r){if(r==null)r=B.w("canvas","");var p=r.getContext("2d");r.width=C;r.height=U; +var T=new _(0,0,C,U),k=c.F(C*U*4);c.Wg(k,C,U,4);var P=Math.sin(E),b=Math.cos(E),Q=c.F(C*U*4);c.W.Rv(L,Q,T,[b*1/C,P*1/C,-P*1/U,b*1/U],C/2,U/2,!1,0,Y,z); +c.Q.Kj("norm",Q,T,k,T,T,1);var K=p.getImageData(0,0,C,U);c.hL(k,K.data);p.putImageData(K,0,0);return r.toDataURL()}; +W.Fe.amD=function(L,C,U){var E=JSON.parse(JSON.stringify(L));for(var H=0;H>16&255,P:r>>8&255,O:r&255})}}return E}; +W.gP=function(){W.DJ.call(this,[10,7],W.m$,"tools/hand");this.bg=new hZ(0,0);this.Md=null};W.gP.prototype=new W.DJ; +W.gP.prototype.GV=function(L,C,U,E,Y){var z=L.e;if(z=="setcls"){U.z.NT=L.NT;U.eP=!0;U.dD=!0}if(z=="scroll"&&!E.q(G.Lv)){if(E.q(G.DM))W.gP.iq(U,U.z.g.x-L.Vm.y,U.z.g.y-L.Vm.x); +else W.gP.iq(U,U.z.g.x-L.Vm.x,U.z.g.y-L.Vm.y)}};W.gP.prototype.enable=function(L,C,U,E){this.Md=null; +var Y=new q(B.E.l,!0);Y.data={e:B.U.lx,aZ:"grab"};C.B(Y)};W.gP.prototype.zI=function(L,C,U,E,Y){this.Md=L.z.g.clone(); +this.bg.U6(Y.x,Y.y)};W.gP.prototype.Yh=function(L,C,U,E,Y){if(!Y.X4)return;if(this.Md==null)this.zI(L,C,U,E,Y); +W.gP.iq(L,this.Md.x+(Y.x-this.bg.x),this.Md.y+(Y.y-this.bg.y))};W.gP.prototype.bM=function(L,C,U,E,Y){this.Md=null}; +W.gP.iq=function(L,C,U){var E=L.z.S;if(L.d*E=0;H--){var U=L.N[H];if(U.add.TySh&&U.rect.qh(C)&&L.k9(H)){var E=U.zm(2)||U.zm(31); +return E?-2:H}}return-1};W.it.prototype.zI=function(L,C,U,E,Y){this._u=L;this.us=U;this.caller=C;var z=L.z.sQ(Y.x,Y.y),r=this.DO==null; +if(r){var p=W.it.gV(L,z);if(p==-2){alert(gS.get([6,57,0]));return}if(p>=0){if(!bk.br(L.N[p].add.TySh,U.tW)){alert("Fonts not loaded yet"); +return}this.eg(L,C,U,[p])}else{this.Dn=!0;this.IW=Y;return}}var T=r?-1:b5.S8(this.DO.add.TySh.Se),k=this.G4?this.G4:this.E$; +if(k&&k.zI(L,U,E,z)&&c.h2.D3(this.DO.add.TySh.DN)||!r&&c.a.dV(z,this.DO.rect)>20/L.z.S&&(T==0||T==1)){this.WI=!0; +this.Wu=z;this.ae5=this.DO.add.TySh.J.clone();if(this.oT==-1&&this.xD==-1)this.oT=this.xD=this.bA(z)}else{if(this.cD==null){alert("Fonts not loaded yet"); +return}this.rj=!0;this.oT=this.xD=this.bA(z);var P=Date.now();if(P-this.a4l>300)this.Wy=0;this.Wy++; +this.a4l=P;if(this.Wy==2)this.anT();if(this.Wy==3)this.aa1();if(this.Wy>1){this.rj=!1}}this.n$();this._O(L)}; +W.it.prototype.eg=function(L,C,U,E){var Y=L.N[E[0]];this.DO=Y;this.eo(C,B.E.l,{e:B.U.ik,m:this.id,bi:"showactive"}); +this.ti=E;L.C=E.slice(0);L.LM();L.fP=!0;this.jM=this.I8(L,E);this.Wd(Y.add.TySh);this.RS(L,U)};W.it.prototype.Wd=function(L){if(b5.S8(L.Se)!=1)return; +var C=b5.qi(L.Se);C=new _(0,0,C[2]-C[0],C[3]-C[1]);var U=[C.x,C.y,C.x+C.d,C.y,C.x+C.d,C.y+C.v,C.x,C.y+C.v]; +c.a.J(U,L.J,U);this.E$=new hV(U,!1,!1,!1,!0)};W.it.prototype.anT=function(){var L=b5.xY(this.DO.add.TySh.Se); +this.oT=this.Y6(L,this.oT);this.xD=this.Lk(L,this.oT)};W.it.prototype.Y6=function(L,C){var U=" \t\n,.?!_-+=@#$%^&*'\"(){}[]\\/<>:;|",E=[]; +for(var H=0;H=0;H--)if(E.indexOf(L.charAt(H))!=-1==Y)return H+1; +return 0};W.it.prototype.Lk=function(L,C){var U=" \t\n,.?!_-+=@#$%^&*'\"(){}[]\\/<>:;|",E=[];for(var H=0; +H20/L.z.S)p="move";else if(W.it.gV(L,z)>=0)p="text"; +if(p!=this.l4){this.l4=p;this.cl(C)}}var b=this.IW;if(this.Dn&&Math.min(Y.x-b.x,Y.y-b.y)>4/L.z.S){this.Dn=!1; +this.kk(L,C,U,E,Y);r=this.DO;this.WI=!0;this.E$=new hV(null,!1,!1,!1,!0);var Q=L.z.sQ(this.IW.x,this.IW.y); +Q.x=Math.round(Q.x);Q.y=Math.round(Q.y);this.E$.zI(L,U,E,Q)}if(this.WI){var K=r.add.TySh;if(this.G4){this.G4.Yh(L,U,E,z); +var h=c.I.bm(c.I.O4(this.G4.Bj(),this.ab1));K.J=h;this.RS(L,U);b5.Dv(K)}else if(this.E$){this.E$.Yh(L,U,E,z); +var x=K.J.clone(),O=Math.atan2(x.O,x.R);x.rotate(O);var h=c.I.bm(c.I.O4(this.E$.Bj())),y=Math.atan2(h.O,h.R); +h.rotate(y);if(!isNaN(h.R)&&h.R*h.J2-h.O*h.Z9!=0){var v=new _(0,0,h.R/x.R,h.J2/x.J2),i=Math.round(v.d),D=Math.round(v.v),I=K.Se.Curve; +if(I){var m=b5.qi(K.Se),f=new c0(i/m[2],0,0,D/m[3],0,0);c.a.J(I.Points,f,I.Points);b5.Dv(K)}b5.If(K.Se,[0,0,i,D]); +K.J=c.I.bm(c.I.O4(this.E$.Bj(),v));this.RS(L,U);b5.Dv(K)}}else{var A=z.x-this.Wu.x,d=z.y-this.Wu.y;K.J=this.ae5.clone(); +var g=new hZ(K.J.Yt+A,K.J.rv+d);g=W.P4.wD(L,g,U);K.J.Yt=g.x;K.J.rv=g.y;this.RS(L,U)}}if(this.rj)this.xD=this.bA(z); +if(this.WI||this.rj)this._O(L)};W.it.prototype.kk=function(L,C,U,E,Y){var z=L.zG(),r=z[0],p=z[1],T=L.wP(); +T.add.lnsr="rend";var k=L.N.slice(0);T.I_("Text layer "+k.length);this.DO=T;var P=L.C.length==0?L.N.length-1:L.C[L.C.length-1],b=P+1; +if(k[P].add.lsct==fI.Qr)b--;this.jM={Jm:k.slice(0),e5:L.C.slice(0)};k.splice(b,0,T);L.C=[b];this.oT=this.xD=0; +L.o2(k);this.jM.f5=k.slice(0);this.jM.bx=L.C.slice(0);this.eo(C,B.E.l,{e:B.U.ik,m:this.id,bi:"showactive"}); +var Q=L.z.sQ(Y.x,Y.y);T.add.TySh=b5.Es(Q.x,Q.y,U.Az);var K=T.add.TySh,h=K.Se;b5.Nc(K,this.Ed);if(Y.X4)b5.B$(h,1); +else{b5.B$(h,0);var x=r[p.pop()],O=x?x.add.vmsk:null;if(O){O=O.clone();var y=O.n,i,D;for(var H=0;H0&&E.charAt(this.oT-1)!=Y.charAt(this.oT-1))this.oT--}var p=E.substring(0,this.oT),T=E.substring(this.xD,E.length),k=Y.substring(this.oT,Y.length-T.length); +b5.PB(U.Se,this.oT,this.xD);b5.X$(U.Se,this.oT,k);var P=this.xq(this.us,U),Q=-1,K=Array.from(k);for(var H=0; +H128&&P.LI.Font!=null){var h=P.Oe[P.LI.Font].Name,x=this.us.tW.Ng(Q,h,P.Oe); +if(h!=x){b5.yk(P,x);b=!0}}if(this.EZ!=null&&k==this.EZ){var O=JSON.parse(this.a7s);P.LI=O.LI;P.Oe=O.Oe; +b=!0}b5.Em(U.Se,this.oT,this.oT+k.length-1,P);this.oT=this.xD=p.length+k.length;var y=this._u,v=this.RS(y,this.us,!0); +if(v)this._O(y,!0);if(b)this.n$()};W.it.prototype.a74=function(L){if(this.DO==null||this.Xt)return;if(this.DO==null)return; +var C=G,U=0,E=0,y=!1;if(C.IX(L.code,C.$G))U=1;if(C.IX(L.code,C.vl))U=-1;if(C.IX(L.code,C.Bz))E=-1;if(C.IX(L.code,C.oY))E=1; +var Y=L.ctrlKey||L.metaKey,z=C.IX(L.code,G.afX),r=C.IX(L.code,G.agj);if(C.IX(L.code,G.CT)&&Y){this.cB(this._u,this.caller); +return}if(C.IX(L.code,G.LU)){L.preventDefault();var p=this.hV,T=p.value,k=p.selectionStart,P=p.selectionEnd; +p.value=T.substring(0,k)+"\t"+T.substring(P);p.selectionStart=p.selectionEnd=k+1;this.Io(null);return}if((C.IX(L.code,C.Hd)||C.IX(L.code,C.Ze))&&Y){var b=this.oT,Q=this.xD; +if(b>Q){var K=b;b=Q;Q=K}var h=this.DO.add.TySh,x=b5.xY(h.Se);if(b!=Q){this.EZ=x.slice(b,Q);this.a7s=JSON.stringify(this.us.Az)}}var O=b5.xY(this.DO.add.TySh.Se); +if(U!=0||E!=0||z||r){L.preventDefault();var v=this.oT;if(U!=0){if(Y&&U==-1)v=this.Y6(O,this.oT-1);else if(Y&&U==1)v=this.Lk(O,this.oT); +else{var p=this.hV,T=p.value;v=this.oT+U;if(v!=0&&T.codePointAt(v-1)>65535)v+=U}}else if(E!=0){var i=this.cD.$U(this.oT); +if(E==-1&&i.O7==0)v=0;else if(E==1&&i.O7==this.cD.a04()-1)v=99999999999;else v=this.cD.G0(new hZ(i._.x+i._.d/2,0),i.O7+E)}else if(z){var D=this.oT-1; +while(D>0&&O.charCodeAt(D)!=10)D--;v=D==0?0:D+1}else if(r){var D=this.oT;while(D1&&U.q(G.Lv)){Y.c.pop();Y.c.pop();Y.c.push(this.vv.x,this.vv.y); +L.K.yw=Y;L.eP=!0}return}Y.Z.push("L");Y.c.push(this.vv.x,this.vv.y);this.IP=this.vv;if(this.xy){L.K.yw=Y; +L.eP=!0}};W.la.prototype.sH=function(){return this.kR!=null};W.la.prototype._D=function(){return this.kR!=null}; +W.la.prototype.fj=function(L,C,U,E){W.kd.prototype.fj.call(this,L,C,U,E);if(this.kR&&this.RZ>1&&this.Wu&&!this.Wu.X4&&!E.q(G.Lv))this.Cd(L,U,E)}; +W.la.prototype.Zr=function(L,C,U,E){this.Wu=E;var Y=this.kR;if(Y==null)return;if(this.RZ>1&&U.q(G.Lv)){Y.Z.push("L"); +Y.c.push(this.vv.x,this.vv.y);return}this.Cd(L,C,U)};W.la.prototype.Cd=function(L,C,U){this.finish(L,C,U,this.Wu); +this.kR=null;L.K.yw=null;L.eP=!0};W.la.prototype.getSelection=function(L,C,U,E){if(this.AS.cg(this.vv)||!this.xy)return null; +return W.kd.K4(this.kR.c)};W.P4=function(){W.DJ.call(this,[10,11],W.Ml,"tools/move");this.Wv=new hZ(0,0); +this.Na=new hZ(0,0);this.CR=null;this.nr=null;this.ie=new hZ(0,0);this.Lf=null;this.OY=null;this.kn=null; +this.lZ=0;this.O9=null;this.g$=[];this.YC=null;this.A1=!1;this.e=0;this.aT=null;this.jy=null;this.Ei=null; +this.w3=!1;this.cY={Hp:!1,nf:!1,Q0:!1};this.aet=!1;this.ac0=!1;this.E$=null;this.rB=null;this.a2y=null; +var L=[];for(var H=0;HQ?[23,3]:[23,4];if(Q==0)P=[11,15,0]}else if(z=="gidsFromLayer"){var K=[[],[]];for(var H=0; +H")m++;var f=U.root.cW(m),A=f; +while(f.parent!=null){f=f.parent;if(y.indexOf(f.index)!=-1)A=f}var d=D.indexOf(A.index);if(d==-1){d=D.length; +D.push(A.index)}i[H]=d}var g=[],X=[],n=[];for(var H=0;HY.y)z.push(T,Y.y,T,E.y); +if(pY.x)z.push(Y.x,k,E.x,k);if(r128}if(!T&&(!this.w3&&this.cY.Hp||this.w3&&this.cY.Hp&&(U.q(G.PS)||L.C.length<2))){var O=this.aht(L,p,U); +if(!O){L.C=[];L.cE=null;L.hK=L.EN=!0;this.e=3;this.aT=new _;this.A1=!0;return}}if(U.q(G.Lv)&&!T){var Q=new q(B.E.A); +Q.m=W.aV;Q.data={e:o.ok,aik:!0};C.B(Q)}}if(L.te.length!=0){this.e=4;this.YC=L.vI[L.te[0]].rect.clone(); +this.A1=!0;return}this.O9=L.p9(z==null,z,null,!0);for(var H=0;H>2);c.wH(v.kK.zK,f,3)}else f=L.t.channel.slice(0); +var A={rect:v.kK.dE.clone(),channel:f};this.Ei=new hp(i?[12,53]:[12,54],this);this.Ei.data={e:1,$:L.C[0],kK:v.kK,vj:I,Sk:m,e5:L.t,bx:A,J2:new hZ(0,0)}; +L.Sv(this.Ei);L.t=A;L.U8=!0}}this.A1=!0;this.YC=W.o.dm(L)};W.P4.prototype.aht=function(L,C,U){var E=L.root.gW(new hZ(Math.floor(C.x),Math.floor(C.y))); +if(E){if(E.$.add.vmsk)L.eP=!0;var Y=L.N.indexOf(E.$);if(U.q(G.PS)){var z=L.C.indexOf(Y);if(z==-1)L.C.push(Y); +else if(L.C.length>1)L.C.splice(z,1)}else if(L.C.indexOf(Y)==-1){this.WD(L,Y)}}return E!=null};W.P4.prototype.WD=function(L,C){L.N[C].yQ=0; +L.C=[C];L.cE=null;L.LM();L.fP=!0;L.hK=!0};W.P4.prototype.Yh=function(L,C,U,E,Y){this.CR=Y;var z=L.z.sQ(Y.x,Y.y),Q,K; +if(this.nr&&this.e<2)z=this.nr.Q8(z,E);if(!this.A1){if(U.Fg&&U.qA.Pr){var r=this.W4(L,z),p="default"; +if(r)p=["col-resize","row-resize"][r[0]];else if(this.E$){var T=this.E$.J8(z,L.z.S);if(T)p=T}this.cl(p,C)}this.fG(L,z); +return}var k=this.Na,P=Math.round(z.x-k.x)-this.ie.x,b=Math.round(z.y-k.y)-this.ie.y;if(this.YC){if(this.e==2){z=W.P4.wD(L,z,U,[!1,L.t?L.t.rect:this.YC,!0])}else{K=this.YC.clone(); +K.offset(this.ie.x+P,this.ie.y+b);Q=W.P4.HG(L,K,U);P+=Math.round(Q[0]);b+=Math.round(Q[1])}}this.ie.x+=P; +this.ie.y+=b;this.Ih(L,P,b,z,null,E.q(G.PS));this.fG(L,z);if(Q)W.P4.E9(L,K,Q)};W.P4.prototype.W4=function(L,C){C=[C.x,C.y]; +for(var H=0;H<2;H++)for(var U=0;U0){var v=k.add.GdFl;if(v==null)v=k.add.PtFl;if(k.G_()&&!k.$T()&&k.add.vmsk!=null&&c.Y.M8(k.add.vmsk.n)&&k.add.vmsk.Ve==255&&(v==null||v.Algn&&v.Algn.v)){k.rect.offset(p,T)}else k.cr(L); +var i=L.root.kT(k.DZ(L),L,C[H]);z=z.EU(i);i.offset(-p,-T);z=z.EU(i);if(k.add.SoCo||k.add.GdFl||k.add.PtFl||eh.get(k.add)!=null)z=z.EU(r); +k.yC()}}L.s(z)};W.P4.a7l=function(L,C){var U=[];for(var H=0;H>>z),C.x+C.d],[C.y,C.y+(C.v>>>z),C.y+C.v]],U,E); +return r};W.P4.kV=function(L,C,U,E){if(E==null)E=[!0,null,!0];var Y=[0,0,1e9,1e9];if(!U.Y2)return Y; +var z=JSON.parse(JSON.stringify(C));for(var r=0;r<2;r++){var p=1e9,T=C[r],k=0;for(var P=0;P>>1; +if(Math.abs(Q.x-C)>>1; +if(Math.abs(Q.y-C)>>1),Q.y+(x>>>1),Q.x+K,Q.y+x]; +for(var H=0;H<6;H+=2)if(Math.abs(A[H+E]-C)>>1,x>>>1,K,x]; +for(var H=0;H<6;H+=2)if(Math.abs(A[H+E]-C)L.d||C.y<0||C.y>L.v)return null; +var r=new _(0,0,L.d,L.v);if(Y==null&&r.cg(E.rect))z=E.buffer;else{z=c.F(r.X()*4);if(Y==null)c.La(E.buffer,E.rect,z,r); +else W.dl.M0(Y.channel,Y.rect,Y.color,z,r)}var p=W.Xf.NU(z,r,C,null,U),T=c.lJ(p,r),k=c.F(T.X());c.zM(p,r,k,T); +return{rect:T,channel:k}};W.Xf.IG=function(L,C,U){var E=C.d,Y=C.v,r=0,p=0,T=0,k=0;L=new Uint32Array(L.buffer); +var z=[],P=U.length;for(var H=0;H>8&255,x>>16&255,x>>>24])}return z}; +W.Xf.NU=function(L,C,U,E,Y){L=new Uint32Array(L.buffer);var z=C.d,r=C.v,p=z*r;if(E==null)E=W.Xf.IG(L,C,[U]); +var T=Math.round(U.x-.5-C.x),k=Math.round(U.y-.5-C.y),P=k*z+T,b=Date.now(),Q=c.F(z*r),K=Y[0],h=1/K,x=Y[1]&&K>0?255:0; +if(Y[2]){var O=c.F(Q.length),y=new Uint32Array(p),v=1;y[0]=T<<16|k;O[P]=1;while(v>0){var i=y[v-1];v--; +var D=i>>>16,I=i&65535,H=I*z+D,m=W.Xf.ct(L[H],E);if(m>K){var f=x*(1-Math.max(0,Math.min(1,(m-K)*h))); +Q[H]=~~f}else{Q[H]=255;if(I!=r-1&&O[H+z]==0){y[v++]=D<<16|I+1;O[H+z]=1}if(I!=0&&O[H-z]==0){y[v++]=D<<16|I-1; +O[H-z]=1}if(D!=z-1&&O[H+1]==0){y[v++]=D+1<<16|I;O[H+1]=1}if(D!=0&&O[H-1]==0){y[v++]=D-1<<16|I;O[H-1]=1}}}}else{for(var H=0; +H0&&(Q[H-1]==255||I>0&&Q[H-z-1]==255||I0&&Q[H-z+1]==255||I0&&Q[H-z]==255||I>>8&255,Y=L>>>16&255,z=L>>>24&255;if(C[3]==0)return z<5?0:255; +var r=Math.max(Math.abs(U-C[0]),Math.max(Math.abs(E-C[1]),Math.abs(Y-C[2])));return z==0?255:r};W.Pe=function(L,C){if(C)W.dl.call(this); +else if(L)W.dl.call(this,[10,49],W.Pu,"tools/camove");else W.dl.call(this,[10,26],W.lh,"tools/patch"); +this.IP=null;this.kR=null;this.g=null;this.v3=null;this.Vw=new hZ;this.lC=null;this.Wh=null};W.Pe.prototype=new W.dl; +W.Pe.prototype.zI=function(L,C,U,E,Y){var z=L.z.sQ(Y.x,Y.y);if(L.t&&c.gW(z,L.t.channel,L.t.rect)){var r=new _(0,0,L.d,L.v),p=r.eR(L.t.rect); +if(!L.qk()||p.ue())return;if(!0){var T=c.F(p.X());c.zM(L.t.channel,L.t.rect,T,p);L.t={channel:T,rect:p}}this.LX(L); +this.yt(L);this.v3=z;this.Vw=new hZ(z.x-L.t.rect.x,z.y-L.t.rect.y);this.Wh=c.F(L.t.rect.X()*4);this.Wh.fill(255); +if(this.cY.patch==1){var k=L.N[L.C[0]];k.ME(L,L.t,!0);if(k.kK==null)this.v3=null}this.lC=L.t.rect.clone()}else{this.kR={c:[z.x,z.y],Z:["M"]}; +this.IP=z}};W.Pe.prototype.Yh=function(L,C,U,E,Y){var z=L.z.sQ(Y.x,Y.y);if(this.v3){if(this.cY.patch==1){if(L.te.length==0){var r=L.N[L.C[0]].kK,p=z.x-this.Vw.x,T=z.y-this.Vw.y; +W.P4.zi(L,L.C[0],Math.round(p-r.dE.x),Math.round(T-r.dE.y))}}else this.p$(L,z,"clone")}if(this.IP){this.kR.Z.push("L"); +this.kR.c.push(z.x,z.y);this.IP=z;L.K.yw=this.kR;L.eP=!0}};W.Pe.prototype.bM=function(L,C,U,E,Y){var z=L.z.sQ(Y.x,Y.y); +if(this.v3){var r=L.t.rect.clone();if(this.id==W.Pu){var p=L.N[L.C[0]];p.pK(L,p.kK);L.t.rect=this.lC.clone(); +var T=c.F(L.t.rect.X()*4);c.Wn(L.t.channel,T,3);this.oA(L,"sheal",T,L.t.rect,L.t.rect);L.t.rect=r;r=r.EU(this.lC)}this.p$(L,z,"heal"); +this.finish(L,r,null,null,!0);L.s(r);this.v3=null}if(this.IP){var k=W.kd.LV(this.cY.setop,E.q(G.PS),E.q(G.Lv)),P=new q(B.E._w,!0); +if(this.kR.c.length<=4)P.data=W.kd.xe();else P.data=W.kd.K4(this.kR.c,k);C.B(P);this.IP=null;L.K.yw=null; +L.eP=!0}};W.Pe.prototype.NV=function(){return this.g};W.Pe.prototype.oO=function(L,C,U,E,Y){W.dl.prototype.oO.call(this,L,C,U,E,Y); +this.cl(Y,E)};W.Pe.prototype.cl=function(L,C){var U="auto;";if(C!=null&&C.q(G.PS)&&!C.q(G.Lv)||this.cY.setop=="union")U="copy"; +var E=new q(B.E.l,!0);E.data={e:B.U.lx,aZ:U};if(this.caller)this.caller.B(E)};W.Pe.prototype.p$=function(L,C,U){var E=new hZ(Math.round(this.v3.x-C.x),Math.round(this.v3.y-C.y)); +if(this.cY.patch==1)E.U6(-E.x,-E.y);this.g=E;this.oA(L,U,this.Wh,L.t.rect,L.t.rect);this.s(L,L.t.rect)}; +W.yB=function(){W.Pe.call(this,!0);this.cY.patch=1};W.yB.prototype=new W.Pe(!0,!0);W.O$=function(){W.dl.call(this,[10,13],W.a4B,"tools/pbucket")}; +W.O$.prototype=new W.dl;W.O$.prototype.enable=function(L,C,U,E){var Y=new q(B.E.l,!0);Y.data={e:B.U.lx,aZ:"default"}; +C.B(Y)};W.O$.prototype.hU=function(L,C){};W.O$.prototype.bM=function(L,C,U,E,Y){if(!L.qk())return;var z=L.z.sQ(Y.x,Y.y),r=W.Xf.bk(L,z,this.cY.wconf); +if(r==null)return;var p=c.F(r.rect.X()*4);c.n0(p,(U.yx&255)<<16|(U.yx>>8&255)<<8|(U.yx>>16&255)<<0); +c.Wn(r.channel,p,3);this.LX(L);this.oA(L,"draw",p,r.rect,r.rect);this.s(L,r.rect);this.finish(L,r.rect)}; +W.Oj=function(){W.kd.call(this,[10,14],W.an2,"tools/plasso");this.XK="crosshair";this.nQ=[];this.gj=null; +this.kR=null;this.a9M=0};W.Oj.prototype=new W.kd;W.Oj.prototype.disable=function(L,C,U,E){this.c$(L)}; +W.Oj.prototype.g3=function(L,C,U,E){this.nQ=[G.yo,G.JY]};W.Oj.prototype.Gs=function(L){return this.nQ.indexOf(L)!=-1}; +W.Oj.prototype.gQ=function(L){return this.kR!=null};W.Oj.prototype._D=function(){return this.kR!=null}; +W.Oj.prototype.sH=function(){return this.kR!=null};W.Oj.prototype.Rl=function(L,C,U,E){if(this.kR==null)return; +var Y=this.kR,z=Y.c,r=z.length-2,p=this.vv;if(this.RZ>1&&U.q(G.Lv)&&E.X4){z.push(0,0);Y.Z.push("L"); +r+=2}else if(U.q(G.PS))p=W.Fe.hZ(new hZ(z[r-2],z[r-1]),p);z[r]=p.x;z[r+1]=p.y;L.K.yw=Y;L.eP=!0};W.Oj.prototype.Zr=function(L,C,U,E){var Y=Date.now(); +if(this.kR==null)this.kR={c:[this.vv.x,this.vv.y,this.vv.x,this.vv.y],Z:["M","L"]};else{this.Rl(L,C,U,E); +if(Y-this.a9M<250||hZ.sl(this.vv,new hZ(this.kR.c[0],this.kR.c[1]))<5*B.M()/L.z.S){this.gj=this.kR;this.finish(L,C,U,E); +this.c$(L);return}this.kR.Z.push("L");this.kR.c.push(this.vv.x,this.vv.y)}this.a9M=Y;L.K.yw=this.kR}; +W.Oj.prototype.c$=function(L){this.kR=null;this.nQ=[];if(L!=null){L.K.yw=null;L.eP=!0}};W.Oj.prototype.fj=function(L,C,U,E){W.kd.prototype.fj.call(this,L,C,U,E); +if(E.q(G.ox)&&this.kR==null&&this.gj&&L.t!=null){var Y=new q(B.E.A);Y.m=W.n3;Y.data={e:"h_stepbck"}; +C.B(Y);this.g3(L,U,E,null);this.kR=this.gj;return}if(this.kR==null)return;if(E.q(G.yo)||E.q(G.JY)){this.kR.c.pop(); +this.kR.c.pop();this.kR.Z.pop();this.Rl(L,U,E)}if(E.q(G.CT)){if(this.kR.c.length>4){this.gj=this.kR; +this.finish(L,U,E)}this.kR=null}if(E.q(G.ox)){this.kR=null}L.K.yw=this.kR;L.eP=!0};W.Oj.prototype.getSelection=function(L,C,U,E){return W.kd.K4(this.kR.c)}; +W._H=function(){W.kd.call(this,[10,10],W.ah3,"tools/mlasso");this.XK="crosshair";this.nQ=[];this.n=[]; +this.zX=[];this.D4=[];this.Hj=null;this.Qv=null;this.Mt=null;this.lZ=0;this.PX=0};W._H.prototype=new W.kd; +W._H.prototype.disable=function(L,C,U,E){this.clear(L)};W._H.prototype.gQ=function(L){return this.n.length!=0}; +W._H.prototype.sH=function(){return this.n.length!=0};W._H.prototype.Gs=function(L){return this.nQ.indexOf(L)!=-1}; +W._H.prototype.g3=function(L,C,U,E){this.nQ=[G.yo,G.JY];var Y=this.XJ(this.AS,L);if(this.n.length!=0&&(hZ.sl(Y,this.n[0])<4*B.M()/L.z.S||Date.now()-this.lZ<300)){this.qC(L,this.n[0]); +this.finish(L,C,U);this.clear(L);return}this.lZ=Date.now();if(this.n.length!=0)Y=this.T8(Y,L);else{var z=L.d,r=L.v,p=c.F(z*r),T=L.E0(),k=z*r*4; +for(var H=0;H>>2]=~~(.5+c.GZ(T[H],T[H+1],T[H+2])*(T[H+3]*(1/255)));this.Hj=c.Iu.a6Z(p,z,r); +this.Mt=new Uint16Array(p.length)}this.qC(L,Y);this.PX=U.q(G.Lv)?1:0;this.P_(L)};W._H.prototype.qC=function(L,C){var U=this.n; +this.zX[U.length]=this.D4.length;if(U.length!=0){c.Iu.fo(this.Qv,C.y*L.d+C.x);var E=this.I2(L,C);E.reverse(); +var Y=W._H.Ud(L,E);this.D4=this.D4.concat(Y)}U.push(C);this.iX(L)};W._H.prototype.iX=function(L){var C=this.n[this.n.length-1],U=C.y*L.d+C.x; +this.Qv=c.Iu.alB(this.Hj.NM,this.Hj.fr,U);this.Mt.fill(0)};W._H.prototype.XJ=function(L,C){return new hZ(Math.floor(Math.max(0,Math.min(C.d-1,L.x))),Math.floor(Math.max(0,Math.min(C.v-1,L.y))))}; +W._H.prototype.clear=function(L){this.D4=[];this.n=[];this.zX=[];this.Hj=null;this.Qv=null;this.Mt=null; +if(L!=null){L.K.yw=null;L.K.yI=[];L.eP=!0}this.nQ=[]};W._H.prototype.Rl=function(L,C,U,E){var Y=this.n,z=Y.length; +if(z==0)return;var r=this.T8(this.XJ(this.vv,L),L),p=this.I2(L,r);for(var H=0;H30&&hZ.sl(k,Y[z-1])>20){this.qC(L,k);return}this.Mt[T]++}if(this.PX==1&&E.X4)this.qC(L,r); +this.P_(L)};W._H.prototype.P_=function(L){var C=this.n;if(C.length!=0){var U=this.T8(this.XJ(this.vv,L),L),E=this.I2(L,U); +E.reverse();var Y=W._H.Ud(L,E),z=this.D4.concat(Y),r=L.K.yw={c:z,Z:["M"]};for(var H=2;H5e3){console.log(z); +throw"e"}}return z};W._H.Ud=function(L,C){var U=[],E=L.d;for(var H=0;H=U||P<0||P>=E)continue; +c.Iu.fo(this.Qv,P*U+k);if(this.Qv.bR[P*U+k]U||C*Y*1/2>E)Y*=1/2;if(L*Y*2/3>U||C*Y*2/3>E)Y*=1/2;else if(L*Y>U||C*Y>E)Y*=2/3; +return Y};W.mZ.Ye=function(L,C){var U=W.mZ.wd(L);if(C&&U==0)return L;if(!C&&U==W.mZ.js.length-1)return L; +return W.mZ.js[C?U-1:U+1]};W.mZ.wd=function(L){var C=0;while(W.mZ.js[C]>L)C++;return C};W.mZ.i2=function(L,C,U,E){var Y=L._u; +if(E==0||E==null){E=W.mZ.Ye(L.S,U);if(E==L.S)return}var z=L.sQ(C.x,C.y);if(Y.d*E<=L.e4.d&&Y.v*E<=L.e4.v){L.g.U6(0,0); +L.S=E}else{var r=L.WF(),p=L.S/E;r.translate(-z.x,-z.y);r.scale(p,p);r.translate(z.x,z.y);L.O0(r)}};W.mZ.prototype.GV=function(L,C,U,E,Y){if(L.e=="pzoom"){if(typeof L.G=="string")return; +L={e:"zoom",S:L.G/100}}var z=0,r=!1,p=null;if(L.e=="adapt"){var T=0;if(L.G=="pixel")T=1;if(L.G=="fitscr"){var T=0,k=U.z.e4.d,P=U.z.e4.v; +T=Math.min((k-14)/U.d,(P-14)/U.v)}p=new hZ(Math.round(U.z.e4.d/2),Math.round(U.z.e4.v/2));z=T;W.mZ.i2(U.z,p,r,z); +U.dD=!0}if(L.e.startsWith("multi")){function b(d){var g=d[0].x-d[1].x,X=d[0].y-d[1].y;return Math.sqrt(g*g+X*X)}function Q(d){return new hZ((d[0].x+d[1].x)/2,(d[0].y+d[1].y)/2)}var K=L.uy,h=Q(K); +if(L.e=="multidown"){this.e6=[K,U.z.S,U.z.sQ(h.x,h.y)]}else{z=this.e6[1]*b(K)/b(this.e6[0]);if(z>=1)z=Math.min(32,Math.round(z)); +else{var x=0,O=1e9,y=W.mZ.js;for(var H=0;Hm){r=!1; +this.sG=Math.min(this.sG-m,m-1)}else return;W.mZ.i2(U.z,p,r,z);U.dD=!0}if(L.e=="zoom"){p=L.CR?L.CR:new hZ(Math.round(U.z.e4.d/2),Math.round(U.z.e4.v/2)); +if(L.S!=null)z=L.S;else r=L.AI;W.mZ.i2(U.z,p,r,z);U.dD=!0}if(L.e=="mskView"){var f=U.N[U.C[0]],A=f.yQ==3?f.iC(U).r:f.xV(); +if(L.G==0){U.z.NT=[1,1,1];A.mM=!1}if(L.G==1){U.z.NT=[1,1,1];A.mM=!0}if(L.G==2){U.z.NT=[0,0,0];A.mM=!0}for(var H=0; +H>>16&255,P:L>>>8&255,O:L>>>0&255}); +this.kn.B(C)}};W.CI.prototype.GV=function(L,C,U,E,Y){this.kn=C;if(L.e=="newfill"){if(L.fD==0){var z=new q(B.E.l,!0); +z.data={e:B.U.Q1,k5:"colorpicker",Cc:Y.yx,SL:this.alw.bind(this)};C.B(z)}}else if(L.e=="pathedit"){var r=L.ev,p="",T=U.Jd.slice(0),k=U.j5.slice(0),P=U.Jd.slice(0),b=U.j5.slice(0); +if(r=="rnm"){var Q=-1-L.Oi,K=T[Q],h=b7.YE(L.name,K.add);if(Q!=0)P[Q]=h;else{b=[P.length];P.push(h);P[0]=b7.YE("Work Path")}p="Rename"}else if(r=="new"){P.push(b7.YE("Path "+T.length)); +b=[P.length-1];p="New"}else if(r=="del"){if(b.length==0)return;b.sort(function(d,F){return d-F});if(b[0]==0){P[0]=b7.YE(T[0].name); +b=b.slice(1)}var x=0;while(b.length!=0){P.splice(b[0]-x,1);b=b.slice(1);x++}p="Delete"}else if(r=="fromsel"){var O=P[0]=b7.YE("Work Path"); +b=[0];if(U.t==null)return;var y=U.t.channel.slice(0);for(var H=0;H128?2:1;var v=U.t.rect.clone(); +v.WW(1,1);var i=c.F(v.X());c.zM(y,U.t.rect,i,v);var D=ie.lg(i,v.d,v.v,Math.round(v.X()*5e-4)),I=ie.zG(D),m=new c0(1,0,0,1,-1+U.t.rect.x,-1+U.t.rect.y); +for(var H=0;H0){var z=["SoCo","GdFl","PtFl"][Y-1];for(var H=0;H<3;H++)delete L.add[["SoCo","GdFl","PtFl"][H]]; +L.add[z]=C.o$}};W.gl=function(L,C,U,E){W.CI.call(this,L,C,U);this.cY={tmode:1,shape:fA.Q4(),pshape:0,binop:0,crad:0,irad:40,length:4,sides:5,width:5,tolr:5,tsiz:300,cstr:{am:0}}; +this.adC=E;this.mz=null;this.TC=null;this.aC=null};W.gl.prototype=new W.CI;W.gl.prototype.gQ=function(L){return L.X4&&this.id!=W.tT}; +W.gl.prototype.enable=function(L,C,U,E,Y){this.OY=U;var z=new q(B.E.l,!0);z.data={e:B.U.lx,aZ:"crosshair"}; +C.B(z)};W.gl.prototype.V1=function(L,C,U,E){};W.gl.prototype.zI=function(L,C,U,E,Y){var z=this.cY.tmode; +if(z!=2)this.vL(C,U);if(z==2&&!L.qk())return;var r=L.z.sQ(Y.x,Y.y);r=W.P4.wD(L,r,U);this.aC=[r.x,r.y]; +this.mz=r;this.TC=new hZ(0,0)};W.gl.prototype.QV=function(L,C,U){var E=[this.mz.clone(),C.clone()];if(this.adC)E=W.gl.V8(E[0],E[1],U,!0,this.cY.cstr); +if(L)L.z.d0=new _(E[0].x,E[0].y,E[1].x-E[0].x,E[1].y-E[0].y);return this.V1(E[0],E[1],U.q(G.PS),this.aC)}; +W.gl.prototype.tA=function(L,C,U){var E=L.z.sQ(C.x,C.y),Y=this.cY.cstr;if(Y.am==2){var z=new _(E.x-Y.x,E.y-Y.y,Y.x,Y.y),r=W.P4.HG(L,z,U); +E.x+=r[0];E.y+=r[1];W.P4.E9(L,z,r)}else E=W.P4.wD(L,E,U);return E};W.gl.prototype.Yh=function(L,C,U,E,Y){if(this.mz==null)return; +var z=this.aC,r=z.length,p=Y?this.tA(L,Y,U):new hZ(z[r-2],z[r-1]);if(E.q(G.en))this.mz=p.AE(this.TC); +else this.TC=p.AE(this.mz);z.push(p.x,p.y);if(this.cY.shape==null)this.cY.shape=U.bc[0];var T=this.QV(L,p,E)[0],k=c.a.$x(T); +L.K.yw=k;if(this.id!=W.tT&&this.id!=W.EX&&this.id!=W.Hl)W.DJ.$y(Y.x+10,Y.y-10,L.z.d0,L,U);L.eP=!0};W.gl.prototype.aa3=function(L,C,U,E){var Y=L[4].clone(); +if(E){Y.x-=C/2;Y.y-=U/2}var z=this.V1(Y,new hZ(Y.x+C,Y.y+U),!1,this.aC);this.CY(L[0],L[1],L[2],z)};W.gl.prototype.CY=function(L,C,U,E){var Y=new q(B.E._w,!0); +Y.data=W.gl.gJ(E[1],U);C.B(Y);if(E[1].v.classID=="customShape"&&E[1].v.Nm.v.startsWith("--")){var z=L.zG(),r=z[0],p=z[1],T=r[p.pop()],k=T.add.vmsk,P=T.add.vogk,b=k.clone(); +b.n=E[0];this.Xq(L,T.Oi,b,P)}};W.gl.prototype.bM=function(L,C,U,E,Y){if(this.mz==null)return;var z=this.tA(L,Y,U),r=this.cY.binop,p=this.cY.tmode,T=this.aC,k=T.length; +if(this.id==W.tT&&k<=4){}else if(k<=4){z.x=Math.round(z.x);z.y=Math.round(z.y);var P=new q(B.E.l);P.data={e:B.U.Q1,k5:"createshape",aaj:this.aa3.bind(this),a54:this.name,a5_:[L,C,U,E,z]}; +C.B(P)}else if(k!=2){var b=this.QV(L,z,E),Q=b[0];if(p==0&&Q.length>2){Q[2].ZZ=[1,2,3,0][r];var K=L.zG(!0),h=K[0],x=K[1],O=h[x.pop()],y=O.add.vmsk,v=O.add.vogk,i=y.clone(),D=y.clone(),I=JSON.stringify(v); +D.n=D.n.concat(Q.slice(2));D.C=[c.Y.ov(D.n)-1];var m=c.zf.e8(b[1]);v.push(m?m:c.zf.Zx());this.Xq(L,O.Oi,D,v); +this.qX(L,this.name,O.Oi,i,D,null,I,JSON.stringify(v))}else if(p==1){this.CY(L,C,U,b)}else if(p==2){var D=new o.mR; +D.n=D.n.concat(Q.slice(2));var f=D.xV(),A=c.F(f.rect.X()*4);c.n0(A,(U.yx&255)<<16|(U.yx>>8&255)<<8|(U.yx>>16&255)<<0); +c.Wn(f.channel,A,3);var d=new q(B.E.A,!0);d.m=W.Sw;d.data={e:"draw",rC:{buffer:A,rect:f.rect.clone()},z9:this.name}; +C.B(d)}}this.mz=null;L.K.yw=null;L.K.h4=null;L.K.jB=[];L.z.d0=null;L.eP=!0};W.gl.prototype.oO=function(L,C,U,E,Y){for(var U in L)this.cY[U]=L[U]}; +W.gl.V8=function(L,C,U,E,Y){var z=L.x,r=L.y,p=C.x,T=C.y;if(Y&&Y.am==2){if(E){p=Math.round(p);T=Math.round(T)}z=p-Y.x; +r=T-Y.y}else{var k=0;if(Y&&Y.am==1)k=Y.y/Y.x;else if(U&&U.q(G.PS))k=1;if(k!=0){if(E){if(zz?z+Q:z-Q;T=T>r?r+Q*k:r-Q*k}if(U&&U.q(G.Lv)){z-=p-z;r-=T-r}}var L=new hZ(z,r),C=new hZ(p,T); +if(E)W.gl.amM(L,C);return[L,C]};W.gl.amM=function(L,C){if(L.x>C.x){var U=L.x;L.x=C.x;C.x=U}if(L.y>C.y){var U=L.y; +L.y=C.y;C.y=U}L.x=Math.floor(L.x);L.y=Math.floor(L.y);C.x=Math.ceil(C.x);C.y=Math.ceil(C.y)};W.gl.a1v=function(){return{classID:"Mk",null:{t:"obj ",v:[{t:"Clss",v:{classID:"contentLayer"}}]},Usng:{t:"Objc",v:{classID:"contentLayer",Type:{t:"Objc",v:{}}}}}}; +W.gl.vG=function(L,C){var U=W.gl.a1v();if(C==null)C=JSON.parse(JSON.stringify(gM.bK[L]));hO.T0.L_(C,U.Usng.v.Type.v,L); +return{xo:"make",V5:U}};W.gl.gJ=function(L,C){var U=C.S1,E=JSON.parse(JSON.stringify(C.Xs));if(U.L$==0)E.fillEnabled.v=!1; +var Y=W.gl.vG(Math.max(0,U.L$-1),U.o$);Y.V5.Usng.v.Shp=L;Y.V5.Usng.v.strokeStyle={t:"Objc",v:E};return Y}; +W.BZ=function(){W.CI.call(this,[10,29],W.sY,"tools/pen");this.je=null;this.RQ=null;this.tP=1;this.ag0=0; +this.G5=null;this.hi=!1};W.BZ.prototype=new W.CI;W.BZ.prototype.gQ=function(L){return this.je!=null}; +W.BZ.prototype.zI=function(L,C,U,E,Y){this.vL(C,U);var z=L.z.sQ(Y.x,Y.y),K,h;z.x=Math.round(z.x);z.y=Math.round(z.y); +var r=W.P4.wD(L,z,U),p=L.zG(this.tP==0),T=p[0],k=p[1],P=T[k.pop()],b=P?P.add.vmsk:null,Q=4*B.M()/L.z.S; +if(b)K=c.Y.gW(b.n,z,!0,Q);if(this.tP==1&&(b==null||(b.f8.length==0||b.f8[0]!=b.n.length-1)&&K.Oi==-1)){var x=new q(B.E._w,!0),O=c.zf.C7("customShape",[0,0,1,1],null,null,null,"--"); +x.data=W.gl.gJ(O,U);C.B(x);p=L.zG(!0);T=p[0];k=p[1];P=T[k.pop()];b=P.add.vmsk;b.n=b.n.slice(0,2)}var y=P.add.vogk; +this.je=b.clone();this.RQ=JSON.stringify(y);var v=b.n,i=c.Y.ov(v);h=c.Y.lk(b.n,new _(z.x-Q,z.y-Q,Q*2,Q*2)); +K=c.Y.gW(b.n,z,!0,Q);if(K.Oi!=-1&&h[0].length==0){var D=c.Y.Jt(v,K.Oi);while(v[D].length<=K.$Y){K.$Y-=v[D].length; +D+=v[D].length+1}v[D].length++;v.splice(D+2+K.$Y,0,{type:4,OT:r.clone(),D:r.clone(),SC:r.clone()});b.f8=[D+2+K.$Y]}else if(h[0].length==1&&E.q(G.Lv)){var I=h[0],m=b.n.length-1,f=b.n[I]; +f.SC=f.D.clone();if(I!=m)f.OT=f.D.clone()}else{var A=0;if(b.f8.length!=1){b.C=[i];v.push({type:3,length:1,ZZ:[1,2,3,0][this.ag0],A9:0,Tn:0,Jh:0}); +A=v.length;y.push(c.zf.Zx())}else{var d=b.f8[0],g=c.Y.Ku(v,d),D=c.Y.Jt(v,g);if(d==D+v[D].length&&hZ.sl(z,v[D+1].D)0}else{var O=this.YC.clone(),y=O.x,v=O.y;O.offset(z.x-this.EB.x,z.y-this.EB.y); +O.x=Math.round(O.x);O.y=Math.round(O.y);var i=W.P4.HG(L,O,U),D=new c0(1,0,0,1,O.x-y+i[0],O.y-v+i[1]); +c.Y.IL(p.n,D,p.C);c.zf.J(T,c.I.BL(D),p.C);W.P4.E9(L,O,i)}this.Xq(L,r.Oi,p,T)}else{var I=this.EB;L.K.yw=c.a.kG(new _(I.x,I.y,z.x-I.x,z.y-I.y)); +L.eP=!0}};W.xl.prototype.bM=function(L,C,U,E,Y){if(this.EB==null)return;var z=L.z.sQ(Y.x,Y.y),r=this.kR,p=r?r.add.vmsk:null; +if(this.yN){var T=JSON.stringify(r.add.vogk);if(!this.EB.cg(z))this.qX(L,"Move Paths",r.Oi,this.je,p,null,this.RQ,T); +if(L!=null&&L.K.h4){L.K.h4=null;L.eP=!0}}else{if(p){var k=this.EB,P=new _(k.x,k.y,z.x-k.x,z.y-k.y),b=c.Y.a2x(p.n,P); +if(E.q(G.PS)){for(var H=0;Hk+P)z[K]+=b}this.Rh(E,Y);E.f8=[]}this.Xq(this.hN,this.kR.Oi,E,Y); +if(L=="cancel")this.c$()};W.dr.prototype.disable=function(L,C,U,E){this.RD(L)};W.dr.prototype.zI=function(L,C,U,E,Y){this.RD(L); +var z=L.z.sQ(Y.x,Y.y),b,Q,K;this.BE=z.clone();var r=L.zG(),p=r[0],T=r[1];if(T.length==0)return;var k=4*B.M()/L.z.S,P=new _(z.x-k,z.y-k,k*2,k*2); +for(var h=0;h>>1);L.K.lG.push(g.x,g.y); +L.eP=!0}}}};W.dr.prototype.RD=function(L){if(L&&L.K.lG.length!=0){L.K.lG=[];L.K.jZ=[];L.eP=!0}};W.dr.prototype.bM=function(L,C,U,E,Y){var z=L.z.sQ(Y.x,Y.y),r=this.kR,p=r?r.add.vmsk:null,T=r?r.add.vogk:null; +if(this.aa!=-1){if(Date.now()-this.lZ<300){var k=p.n[this.aa],P=this.YS,b=null;if(P==0){var Q=k.OT.cg(k.D),K=k.SC.cg(k.D); +if(!Q&&!K){b="Anchor Type";if(k.type==1||k.type==4)k.type++;else{k.type--;k.SC=k.D.add(k.D.AE(k.OT))}}else{b="Add Handles"; +if(Q&&K){k.OT.x-=30;k.SC.x+=30}else if(Q)k.OT=k.D.add(k.D.AE(k.SC));else if(K)k.SC=k.D.add(k.D.AE(k.OT))}}else{b="Remove Handle"; +if(P==1)k.OT.mP(k.D);else k.SC.mP(k.D)}this.Rh(p,T);this.Xq(L,r.Oi,p,T);this.qX(L,b,r.Oi,this.je,p,null,this.RQ,JSON.stringify(T))}else if(!this.BE.cg(z)){this.qX(L,"Drag Anchors",r.Oi,this.je,p,null,this.RQ,JSON.stringify(T))}this.lZ=Date.now()}else if(this.EB!=null){var h=this.EB,x=new _(h.x,h.y,z.x-h.x,z.y-h.y); +if(x.d<0)x.x+=x.d;if(x.v<0)x.y+=x.v;x.d=Math.abs(x.d);x.v=Math.abs(x.v);var O=c.Y.lk(p.n,x);p.f8=O[0].concat(E.q(G.PS)?p.f8:[]); +L.K.yw=null}this.c$();L.eP=!0};W.dr.prototype.c$=function(){this.kR=null;this.je=null;this.EB=null;this.aa=this.YS=-1; +this.nr=null};W.dr.prototype.Rh=function(L,C){for(var H=0;H=x){K.C.splice(H,1); +H--}K.f8=[];this.Xq(L,p.Oi,K,k);this.qX(L,"Delete Anchors",p.Oi,Q,K.clone(),!0,P,JSON.stringify(k))}}; +W.dr.prototype.qX=function(L,C,U,E,Y,z,r,p){var T=L.bQ();if(z&&T!=null&&T.m==this&&T.data.acl&&T.data.nY==U&&JSON.stringify(T.data.vh.f8)==JSON.stringify(E.f8)){T.data.rT=Y; +T.data.O6=p}else{var T=new hp(C,this);T.data={nY:U,vh:E,rT:Y,acl:z,a8u:r,O6:p};L.Sv(T)}};W.Rect=function(){W.gl.call(this,[10,32],W.Hg,"tools/rect",!0)}; +W.Rect.prototype=new W.gl;W.Rect.prototype.V1=function(L,C,U){var E=this.cY.crad,Y=C.x-L.x,z=C.y-L.y; +return[c.Y.tD.Rect(L.x,L.y,Y,z,E),c.zf.C7("Rctn",[L.x,L.y,C.x,C.y],[E,E,E,E])]};W.vm=function(){W.gl.call(this,[10,33],W.Ik,"tools/ellipse",!0)}; +W.vm.prototype=new W.gl;W.vm.prototype.V1=function(L,C,U){var E=C.x-L.x,Y=C.y-L.y;return[c.Y.tD.vm(L.x,L.y,E,Y),c.zf.C7("Elps",[L.x,L.y,C.x,C.y])]}; +W.WQ=function(){W.gl.call(this,[10,34],W.EX,"tools/pshape",!1)};W.WQ.prototype=new W.gl;W.WQ.prototype.V1=function(L,C,U){var E=this.cY.pshape,Y=this.cY.crad,z=this.cY.irad/100,r=this.cY.sides,p=this.cY.width,T=this.cY.tsiz,k=this.cY.length,O; +C=C.clone();if(U){if(Math.abs(C.x-L.x)2)E.push(-1-L.j5[H]); +var Y=[],z=L.z.NT;if(z[0]+z[1]+z[2]==3)if(U!=null||E.length==0||L.cE!=null&&L.cE.length!=0)Y=L.p9(C,U,null,!0); +Y=Y.concat(E);for(var H=0;H=0&&!r.rect.ue()){this.Yy=1;this.e5=L.t; +this.vj=r.kK;this.Sk=!1;if(!r.J6(L,L.t)){this.Sk=!0;r.ME(L,L.t,!1)}this.pf={JL:r.kK.zK,_:r.kK.dE}}else{this.Yy=0; +this.r3=W.o.AD(L,this.N,null,U);for(var H=0;H=0)E=L.t.rect.clone();else for(var H=0;H=0){r=L.N[z];p=r.Vc(L,U,E)}else if(z>-1e3){r=L.Jd[-1-z]; +p=[2]}else{Y.push([null,null,null,null,null,null,null,L.vI[-1e3-z].clone()]);continue}var T=[];if(p.indexOf(0)!=-1){var k={Tu:[r.buffer.slice(0),r.rect.clone()]}; +T.push(k);if(r.s7()){var P=r.iC(L);k.aab=P.buffer.slice(0);k.a1H=P.rect.clone()}}else T.push(null);if(p.indexOf(1)!=-1)T.push(r.xV().clone()); +else T.push(null);if(p.indexOf(2)!=-1)T.push({Uj:r.add.vmsk.clone(),H0:r.add.vstk?JSON.parse(JSON.stringify(r.add.vstk)):null,o$:r.add.vstk?W.CI.lF(L,z):null,zf:r.add.vogk?JSON.parse(JSON.stringify(r.add.vogk)):null}); +else T.push(null);if(r.add.TySh&&T[0]){b5.Zp(r.add.TySh);T.push(r.add.TySh.J.clone())}else T.push(null); +if(r.add.SoLd&&T[0])T.push(JSON.parse(JSON.stringify(r.add.SoLd)));else T.push(null);if(p.indexOf(3)!=-1)T.push(r.iC(L).r.clone()); +else T.push(null);if(r.add.lmfx)T.push(JSON.stringify(r.add.lmfx));else T.push(null);Y.push(T)}return Y}; +W.o.rq=function(L,C,U){for(var H=0;H1; +if(A)f=!1;var d=f?m.C:null,g=A?m.f8:null;if(I){var X=c.h2.b4(r);c.I.apply(b,X);c.Y.akj(m.n,X,d,g)}else c.Y.anl(m.n,b,d,g); +if(x.add.vstk&&p){x.add.vstk.strokeStyleLineWidth.v.val=O[2].H0.strokeStyleLineWidth.v.val*K;var n=O[2].o$; +if(n.L$==3){n=JSON.parse(JSON.stringify(n));var R=n.o$.phase.v;n.o$.Scl.v.val=Math.round(n.o$.Scl.v.val*K); +R.Hrzn.v=Math.round(R.Hrzn.v*K);R.Vrtc.v=Math.round(R.Vrtc.v*K);W.CI.kq(x,n)}}if(x.add.vogk){x.add.vogk=JSON.parse(JSON.stringify(O[2].zf)); +if(I||A)c.zf.a75(x.add.vogk);else c.zf.J(x.add.vogk,b,U.length>1?[]:m.C,p)}m.hY*=K;x.add.vmsk=m;if(x.add.vogk)c.zf.H7(x.add.vogk,x.add.vmsk)}if(O[3]){var l=O[3].clone(); +l.concat(Q);x.add.TySh.J=l;b5.Dv(x.add.TySh);var w=new hX(x.add.TySh.Se,C.tW),V=bk.wV(w,x.add.TySh); +x.rect=V._;x.buffer=V.eB}if(O[4]){var F=x.add.SoLd,Z=W.o.pp(O[4].nonAffineTransform);c.I.apply(b,Z); +var M=c.a.wh(Z);if(hV.xU(Z)){if(r){var a=c.a.mE(c.h2.b4(O[4].warp.v)),e=c.I.O4(Z,a),N=c.a.mE(c.h2.b4(r)); +Z=[N.x,N.y,N.x+N.d,N.y,N.x+N.d,N.y+N.v,N.x,N.y+N.v];c.I.apply(e,Z);F.warp.v=r}var J=c.I.O4(Z),s=Z;if(!c.I.tC(J)){J[6]=J[7]=0; +s=[0,0,1,0,1,1,0,1];c.I.apply(J,s)}F.Trnf=W.o.M4(s);F.nonAffineTransform=W.o.M4(Z);x.RM(L,Y==0)}}if(O[5])W.o.Zi(L,O[5],x.iC(L).r,Y,b,r); +if(O[7])W.o.Zi(L,O[7],x,Y,b,r);if(0<=h){if(Y!=0)x.Jx();x.cr(L);x.s()}}L.s()};W.o.dy=function(L,C,U,E,Y,z){if(U==null)U=!1; +return W.o.WC(L,U?0:1,c.I.BL(C),null,E,Y,z,U)};W.o.WC=function(L,C,U,E,Y,z,r,p){if(p==null)p=!1;if(p&&r)throw"e"; +var T={},Q=0,K=.3;if(E&&!c.h2.D3(E)){var k=c.h2.b4(E);c.I.apply(U,k);T.rect=c.a.wh(k);T.buffer=c.F(T.rect.X()*4); +c.DL.drawImage(k,L[0],L[1].d,L[1].v,T.buffer,T.rect,C==0);return T}c.cf(L);var P=L[0],b=L[1],h=b.X()*W.o.ia(c.I.bm(U)); +if(p&&h>4e6)K=h>8e6?2.2:1.2;while(Q+316&&c.I.tC(U)&&W.o.ia(c.I.bm(U))1e5||T.rect.v>1e5||T.rect.X()>3e4*3e4)return null; +var I=T.rect.X()*4;if(Y&&Y.byteLength>=I&&I>=Y.byteLength>>2){T.buffer=new Uint8Array(Y)}else{T.buffer=c.F(I)}c.I.drawImage(i,P,b.d,b.v,T.buffer,T.rect,C==0,z,p); +if(C==2&&T.buffer){var m=T.rect.d,f=T.rect.v,A;A=[0,-1,0,-1,16,-1,0,-1,0];A=c.N1.hx(A);var d=T.buffer.slice(0); +c.N1.jg(d,T.buffer,m,f,A,255,!1,!0)}if(T.buffer)return T};W.o.Zi=function(L,C,U,E,Y,z){if(C.color==255)c.G$(C.channel); +var r=C.rect,p=c.F(r.X()*4);c.Wn(C.channel,p,3);var T=W.o.WC([p,r],E,Y,z);if(T){U.rect=T.rect;U.channel=c.F(T.rect.X()); +c.wH(T.buffer,U.channel,3);U.st=!0}if(C.color==255){c.G$(C.channel);if(T)c.G$(U.channel)}};W.o.pp=function(L){var C=[],U=L.v.length; +for(var H=0;H>>1)+E.C[Y]);L.K.lG=L.K.lG.concat(E.QM);if(this.Jr[3])c.a.concat(L.K.yw,c.a.a6r(E.$g,E.gn))}L.eP=!0}; +W.tj.DK=function(L,C,U){var E=L.buffer,Y=L.rect,z=L.a51,r=hi.Q4("rigidTransform");if(z)for(var H=0;H<4; +H++){r["PuX"+H].v=z[H*2];r["PuY"+H].v=z[H*2+1]}var p=r.puppetShapeList.v,T=c.De.adS(E,Y.d,Y.v,C[1],C[2]),k=[]; +for(var P=0;P>>1)+v.C[i]); +for(var i=0;i=T[2]||T[1]>=T[3]){L.splice(H,1); +H--;continue}W.l1.FL(L,H,T)}};W.l1.rj=function(L,C){var U=L.Oy;for(var H=0;H1e6,r=new q(B.E.l,!0);r.data={e:B.U.rA,eL:z};if(Y)U.B(r);setTimeout(function(){var p=W.jw.ri(L); +for(var T in p)C[T]=p[T];var r=new q(B.E.l,!0);r.data={e:B.U.cG,eL:z};if(Y)U.B(r)},30)}};W.jw.vp=function(L){var C=L.C[0],U=L.N[C],E=U.rect,Y=E.d,z=E.v,r=Y*z,p=U.buffer; +return[C,E.x,E.y,Y,z,p[0],p[1],p[2],p[3]].join(",")};W.jw.ri=function(L){var C=L.C[0],U=L.N[C],E=U.rect,Y=E.d,z=E.v,r=Y*z,p=U.buffer,T=Date.now(),k=c.F(r); +k.fill(128);var P=c.my.QZ(p,Y,z);console.log(Date.now()-T);var b={key:W.jw.vp(L),CV:p,rect:E.clone(),aU:Y,fg:z,oD:12,a9O:!1,lm:k,fb:P,t:c.F(r),_V:null,fF:null,nD:null}; +W.jw.xr(b);return b};W.jw.xr=function(L,C){var U=L.aU,E=L.fg,Y=0,z=0,r=Date.now(),p=L._V!=null&&c.my.a9Y(L.fb.gn,L._V.gn,L._V.bj,L.lm); +Y=Date.now()-r;r=Date.now();if(!p&&!L.a9O){L._V=c.my.nx(L.fb,U,E,L.lm,L.oD);if(!c.my.a9Y(L.fb.gn,L._V.gn,L._V.bj,L.lm)){L.a9O=!0; +console.log("conflict")}L.fF=c.my.a1k(L.CV,U,E,L._V.gn,L._V.bj);L.nD=[L.fF[0].slice(0),[]];z=Date.now()-r; +r=Date.now()}var r=Date.now();if(C){L.nD[0].set(L.fF[0]);var T=L.fF[1],k=L.nD[1];for(var P=0;P=1)i9=(Q.x-s)/dx;if(Math.abs(fq)>=1)e8=(Q.y-f5)/fq;if(Y)i9=e8=(i9+e8)/2;var S=new c0; +S.translate(-s,-f5);S.scale(i9,e8);S.translate(s,f5);d=g.slice(0);c.a.J(d,S,d)}else{if(this.Z0()){Q.x=Math.round(Q.x); +Q.y=Math.round(Q.y)}var fs=[0,1,2,5,8,7,6,3],bz=fs[(fs.indexOf(k)+4)%8],g6=[];for(var H=0;H<3;H++)for(var n=0; +n<3;n++)g6.push(new hZ(n/2,H/2));var i=this.jo,al=this.yA(Q,g),bj=this.yA(T,g),bE=z&&(this.ij==4||this.ij==9)?this.yA(i,g):g6[bz],eN=new c0,dk=new c0,i9=(al.x-bE.x)/(bj.x-bE.x); +if(i9==0)i9=1e-4;var e8=(al.y-bE.y)/(bj.y-bE.y);if(e8==0)e8=1e-4;if(this.a1R){i9=Math.max(i9,0);e8=Math.max(e8,0)}if(k==0||k==2||k==6||k==8){if(Y||this.a5X)eN.scale(i9,i9); +else eN.scale(i9,e8)}if(k==1||k==3||k==5||k==7){var hj=this.a5X;if(k==1||k==7)eN.scale(hj?e8:1,e8);else eN.scale(i9,hj?i9:1); +if(this.abY&&r){if(k==1||k==7)dk.Z9=(al.x-bE.x)/(al.y-bE.y);else dk.O=(al.y-bE.y)/(al.x-bE.x)}}var S=new c0; +S.translate(-bE.x,-bE.y);S.concat(eN);S.concat(dk);S.translate(bE.x,bE.y);d=[0,0,1,0,1,1,0,1];c.a.J(d,S,d); +var M=c.I.O4(g);c.I.apply(M,d)}if(hV.xU(d))this.Pw=d}this.pA(L,C);if(K)W.P4.E9(L,h,K)};hV.qm=function(L,C,U,E,Y,z){var r=U-L,p=E-C,T=Y-L,k=z-C,P=r*r+p*p,b=T*r+k*p,Q=b/P,K=L+Q*r,h=C+Q*p,x=Y-K,O=z-h; +return[K,h,Math.sqrt(x*x+O*O)]};hV.prototype.Z0=function(){var L=this.Pw;return Math.abs(L[1]-L[3])<1e-6&&Math.abs(L[2]-L[4])<1e-6||Math.abs(L[0]-L[2])<1e-6&&Math.abs(L[3]-L[5])<1e-6}; +hV.xU=function(L){return c.a.jL(L)||c.a.jL([L[6],L[7],L[4],L[5],L[2],L[3],L[0],L[1]])};hV.prototype.bM=function(L,C,U,E){this.o0=-1; +this.aN=null;L.K.h4=null;L.K.jB=[];L.eP=!0};hV.prototype.fj=function(L,C,U){var E=U.wu();if(E.x||E.y){var Y=new c0(1,0,0,1,E.x,E.y); +c.a.J(this.Pw,Y,this.Pw);this.pA(L,C);return!0}return!1};hV.prototype.p7=function(L){if(L==null)L=this.Pw; +var C=L[6]-L[0],U=L[7]-L[1],E=L[4]-L[2],Y=L[5]-L[3],z=[L[0],L[1],L[2],L[3],L[0]+C/2,L[1]+U/2,L[2]+E/2,L[3]+Y/2,L[6],L[7],L[4],L[5]],r=[]; +for(var H=0;H<3;H++){var p=H*4,T=z[p+0],k=z[p+1],P=z[p+2],b=z[p+3];r.push(new hZ(T,k));r.push(new hZ(T+(P-T)/2,k+(b-k)/2)); +r.push(new hZ(P,b))}return r};hV.prototype.pA=function(L,C,U){if(U==null)U=!1;var E=this.p7(),Y=E[0],z=E[2],r=E[6],p=E[8]; +L.K.yw={Z:[],c:[]};L.K.yw.Z.push("M","L","L","L","Z");L.K.yw.c.push(Y.x,Y.y,z.x,z.y,p.x,p.y,r.x,r.y); +if(this.aaH){var T=z.AE(Y),k=r.AE(Y),P=p.AE(z),b=p.AE(r);for(var H=0;H<3;H++){L.K.yw.Z.push("M","L","M","L"); +var Q=(H+1)*.25;L.K.yw.c.push(Y.x+T.x*Q,Y.y+T.y*Q,r.x+b.x*Q,r.y+b.y*Q);L.K.yw.c.push(Y.x+k.x*Q,Y.y+k.y*Q,z.x+P.x*Q,z.y+P.y*Q)}}L.z.d0=new _(0,0,hZ.sl(E[0],E[2]),hZ.sl(E[0],E[6])); +if(this.o0!=-1&&this.o0<9&&this.aN){var K=L.z.Q6(this.aN.x,this.aN.y);W.DJ.$y(K.x+10,K.y-10,L.z.d0,L,C)}if(!U){L.K.yI=[]; +for(var H=0;HL.index;H--)this.xS(U);if(L.index>U.xC)for(var H=U.xC; +H1)U.C.splice(a,1);U.C.sort(function(T,hD){return T-hD});h.V5.selectionModifier={t:"enum",v:{selectionModifierType:"addToSelection"}}; +M=r}else if(E.q(G.PS)&&!E.q(G.Lv)&&L.w6>0){z=L.w6==1?o.xd:L.w6==2?o.qN:o.Ue;escape=!0}else if((E.q(G.PS)||L.a5c==1)&&U.C.length>0){var e=Math.min(r,U.C[0]),N=Math.max(r,U.C[U.C.length-1]); +U.C=[];for(var H=e;H<=N;H++)if(U.N[H].add.lsct!=fI.ya)U.C.push(H);h.V5.selectionModifier={t:"enum",v:{selectionModifierType:"addToSelectionContinuous"}}; +M=r}else{M=r;var V=U.N[r];if(V&&V.Jc()&&L.a19)V.add.lsct=fI.Qr;else if(U.C.length==1&&U.C[0]==r&&L.w6==V.yQ){return}U.C=[r]; +U.LM()}if(M!=null&&M")ai++;this.track({xo:"delete",V5:{classID:"Dlt",null:hy.K1("Lyr",!0)}}); +var T=new hp([6,31],this);T.data={e:o._f,Jm:U.N.slice(0),f5:bp,Dc:U.C.slice(0),Jw:[ai]};U.Sv(T);this.Zm(T.data,U)}if(z==o.Sg){var w=L.adk?L.adk:U.C,hu=0,gQ=!1; +if(w.length==0)return;if(w.length==1&&U.N[w[0]].xi==0){alert(gS.get([15,7,5]));return}var bP=[];for(var H=0; +H0){if(fb.add.lnk2==null)fb.add.lnk2=[]; +for(var H=0;H7;for(var dq=0;dq=0;H--)if(d8[H]>=bp.length)d8.splice(H,1);var T=new hp([6,40],this);T.data={e:o._f,Jm:U.N.slice(0),f5:bp,Dc:U.C.slice(0),Jw:d8}; +U.Sv(T);this.Zm(T.data,U)}if(z==o.qJ){var aF=U.C.length;if(aF<2){alert("Select two or more layers."); +return}if(!U.yq())return;var i9=U.N[U.C[0]].clone(),bp=[];for(var H=0;H2e6){alert("Blended areas are too large."); +return}for(var H=1;H1&&as!=-1){console.log("separating an open path into a new layer");V=V.clone();ex=V.add.vmsk; +gi=ex.n;var P=gi[as].length,fp=V.clone();fp.add.lyid=U.vd();ex.n=gi.slice(0,2).concat(gi.slice(as,as+P+1)); +ex.C=[];V.cr(U);V.s();var ci=fp.add.vmsk.n;fp.add.vmsk.n=ci.slice(0,as).concat(ci.slice(as+P+1,ci.length)); +fp.add.vmsk.C=[];fp.cr(U);bp[H]=V;bp.splice(H+1,0,fp);for(var dq=0;dqH)bQ[dq]++; +var fU=bQ.indexOf(H);if(fU!=-1){bQ.splice(fU+1,0,H+1)}}}}if(bp.length!=U.N.length){var T=new hp("Splitting open paths",this); +T.data={e:o._f,Jm:U.N.slice(0),f5:bp,Dc:U.C.slice(0),Jw:bQ};U.Sv(T);this.Zm(T.data,U)}}if(z==o.w$){this.GV({e:o.vw},C,U,E,Y); +var iP=U.C.slice(0),gh=U.N.slice(0),fC=U.p9();if(fC.length==0)return;U.Vo(fC,!1,L.Dl);var T=new hp([6,36,0],this); +T.data={e:o._f,Jm:gh,f5:U.N.slice(),Dc:iP,Jw:U.C.slice(0)};U.Sv(T);this.Zm(T.data,U)}if(z==o.ah){var eN=p.add.SoLd; +if(eN==null)return;var a6=eN.Idnt.v,iT=U.tE(a6);iT.E0(!1);var ee=iT.Ne[0],aN=iT.Ne[1];if(c.Db(ee)){alert("The smart object contains transparency."); +return}var at=iL.WS("jpg").aR([[ee.buffer]],aN.d,aN.v,[90]);this.GV({e:o.TO,_u:U,data:new Uint8Array(at),id:a6,Dl:"jpg"},C,U,E,Y); +console.log(U.add);return}if(z==o.TO){var hM=L._u.tE(L.id),i5=hM.clone();i5.raw=L.data;if(L.Dl){i5.YO=" "; +i5.L$=" ";i5.GQ=i5.GQ+"."+L.Dl}else{i5.YO="8BIM";i5.L$="8BPB";i5.GQ=i5.GQ+".psd"}i5.E0(!1);hM.E0(!1); +var T=new hp([6,36,1],this);T.data={e:o.TO,id:L.id,bT:hM,wp:i5};L._u.Sv(T);this.Zm(T.data,L._u)}if(z==o.bH){var T=new hp([6,36,4],this); +T.data={e:z,$:r,LE:p.add.SoLd.Impr.v.classID,oq:L.oq};U.Sv(T);this.Zm(T.data,U)}if(z==o.px){var bV,ij; +if(L.K6){bV=L._u;ij=L.K6}else{L._u.oQ();L._u.C8();L._u.s();L._u.nU();L._u.E0();bV=iL.WS("PSD").aR(L._u,0,0,[!0,!0]); +ij=L._u.name}if(!(bV instanceof ArrayBuffer))throw"e";bV=new Uint8Array(bV);var a=L.Z7!=null?L.Z7:U.C[U.C.length-1]+1,eT=U.$F(bV,ij,0,0,!0),bp=U.N.slice(0); +bp.splice(a,0,eT);var T=new hp([6,36,2],this);T.data={e:o._f,Jm:U.N.slice(),f5:bp,Dc:U.C.slice(0),Jw:[bp.indexOf(eT)]}; +U.Sv(T);this.Zm(T.data,U)}if(z==o.VE&&L.ev=="merge"){var cE=[],cv=U.root.children,ff=0;for(var H=0;H=2)cE=fn;if(cE.length<2){alert("At least two animation folders needed (whose layers start with \"_a_\").",3500); +return}var a0=[];for(var H=0;H1){var hC=parseInt(dE.pop());if(!isNaN(hC)&&hC!=0)aR=hC}d6[0].push(V);d6[1].push(aR);d6[2]+=aR}}hl.sort(function(T,hD){return hD[2]-T[2]}); +var aK=hl[0],bg=aK[2];for(var gf=1;gf>>1;if(fy<17){var i=cf.length-1;if(H==0)cf[1]+=fy; +else if(H==cf.length-1)cf[i-1]+=fy;else{cf[H-1]+=df;cf[H+1]+=fy-df}cf.splice(H,1);H--}}var iU=[],gF=new _(0,0,U.d,U.v); +for(var H=0;H.5}else if(L.target!=null){d1=L.target; +c4=!0;U.fP=!0}else{var c6=L.ev;c4=c6>1;if(c6==0){d1=U.N.length-1}if(c6==1){d1=aG[aG.length-1]+1;var P=U.a1(d1); +if(P.indexOf(c7)==-1)d1+=P.length-1}if(c6==2){d1=aG[0]-1;var P=U.a1(d1);if(P.indexOf(c7)==-1)d1-=P.length-1}if(c6==3){d1=0}if(d1<0||d1>U.N.length-1)return; +U.fP=!0}if(aG.indexOf(d1)!=-1&&!eM)return;var cF=U.N[d1],bp=[];if(eM)bp=U.N.slice(0);else for(var H=0; +H.8)is-=U.a1(d1).length-1; +var eD=[],f2=eM?U.LR(fT?null:c7):null;for(var H=0;H0){var am=T.data.V5={classID:"setd",null:hy.K1("contentLayer",!0),T:{t:"Objc",v:{}}},dn=["SoCo","GdFl","PtFl"][f9.L$-1]; +hO.T0.L_(f9.o$,am.T.v,f9.L$-1);this.track({xo:"set",V5:am})}}if(L.JM&&f9.L$==3)U._q(ca.fi(f9.o$.Ptrn.v,Y.mt)); +if(!L.JM){var h6=f9.strokeStyleContent.v;if(h6.classID==gM.H0.g0[2])U._q(ca.fi(h6.Ptrn.v,Y.mt))}this.Zm(T.data,U)}}; +hO.T0.L_=function(L,C,U){var E=[gM.TL,gM.DV,gM.ex][U];if(C.classID==null)C.classID=["solidColorLayer","gradientLayer","patternLayer"][U]; +for(var H=0;H=0?C.N[y]:C.Jd[-1-y];p.add.vogk=JSON.parse(O[H+1]);c.zf.H7(p.add.vogk,p.add.vmsk); +if(y>=0)p.cr(C)}C.s()}if(U==o.j_){E.add.artb=JSON.parse(L.aaF);C.s()}if(U==o.bd){C.t=L.e5;C.vI=L.p2.slice(0); +C.te=L.Ag.slice(0);C.eP=C.dD=!0}if(U==o.Sg){var v=L.aee;for(var H=0;H=0?C.N[y]:C.Jd[-1-y];p.add.vogk=JSON.parse(O[H+1]);c.zf.H7(p.add.vogk,p.add.vmsk); +if(y>=0)p.cr(C)}C.s()}if(U==o.j_){E.add.artb=JSON.parse(L.mH);C.s()}if(U==o.bd){C.t=L.bx;C.vI=L.Lp.slice(0); +C.te=L.o8.slice(0);C.eP=C.dD=!0}if(U==o.Sg){var v=L.ahF;for(var H=0;H>h;if((x&1)==1)x--; +else x++;K.capturedInfo.v=(x<255)k=255-Math.round((r-255)*255/(r-Y))}return[Math.max(Y,0),Math.min(r,255),T,k,100]};hO.PU.prototype.GV=function(L,C,U,E,Y){var z=L.e; +if(z=="auto"){var r=L.y2,p=hO.PU.getData(U);for(var H=0;H>>2,r=c.aP(U),p=.001*Y; +if(E==0||E==2)z=[[0,255,0,255,100],hO.PU.vO(r[1],p,Y,E==2),hO.PU.vO(r[2],p,Y,E==2),hO.PU.vO(r[3],p,Y,E==2)]; +if(E==1)z=[hO.PU.vO(r[0],p*.33,Y,!1),[0,255,0,255,100],[0,255,0,255,100],[0,255,0,255,100]];var T=hi.Q4("levl"); +for(var H=0;H<4;H++)d5.Sm(T,H,z[H]);return T};hO.PU.prototype.uJ=function(L,C,U,E){if(this.Jz==null){if(L.o3=="aply")U.N[U.C[0]].extend(new _(0,0,U.d,U.v)); +this.Jz=hO.PU.getData(U,null,L.o3=="fade"?U.bQ().data:null);if(L.o3=="aply")this.Jz[0].GE=U.E0()}if(L.e=="edit"){this.Po=[L.o3,L.oe]; +var Y=this.Jz[0],z=hO.PU.a8v(L.o3,L.oe,Y.JL),r=eh.dq(L.o3,z);if(L.o3=="fade"||L.o3=="aply")r=L.oe;if(r!=null){for(var H=0; +H>>16,P:L>>>8&255,O:L&255}}; +hO.W7.prototype.aeG=function(L,C,U,E){if(this.Jz==null){var Y=hi.Op(L.o3,L.oe);this.Jz=hO.PU.getData(U,Y.x!=0||Y.y!=0)}if(L.e=="edit"){var z=JSON.stringify(L.oe); +if((L.oe==null||z!=this.EQ)&&L.WH!=!0)for(var H=0;H1)T=1+Math.tan(Math.PI/2*z/101);var k=(1-T)/2,P=c.hS.dF(p,p,p),b=[T,0,0,k,0,T,0,k,0,0,T,k,0,0,0,1],Q=c.hS.multiply(P,b),K=new c.Ry(256); +for(var H=0;H<256;H++)K.h[H]=H;c.hS.transform(K,K,Q);E={type:U.tV,pm:K.h,l3:K.h,g_:K.h,Qd:!1,bY:!1}}else{var h=1024,x=-30+60*(z+100)/200,O=[]; +for(var H=0;H<4;H++)O.push(c.Nn.kH(H/3*255,H/3*255,!0));O[1].v.Hrzn.v=64;O[1].v.Vrtc.v=64-x;O[2].v.Hrzn.v=128+64; +O[2].v.Vrtc.v=128+64+x;O.sort(function(aF,aN){return aF.v.Hrzn.v-aN.v.Hrzn.v});var y=c.Nn.Sx(O,h);function v(aF,h){var O=[],u=3; +for(var H=0;Hm&&f>1)f--;D[H]=f*I}i=D}var A=new Uint8Array(h);for(var H=0; +H0){C=Math.max(g6/Math.E,C); +C=C*Math.exp(g6/1.75+bz/Math.PI);C=(1-bj)*C+bj*1}else{C=C*Math.exp(-g6*1.75+bz/Math.PI);C=C+-bj*1.14}C=Math.pow(C,1/al); +C=Math.max(0,Math.min(1,C));A[H]=Math.round(C*255)}E={type:U.tV,pm:A,l3:A,g_:A,Qd:!1,bY:!1}}if(L=="vibA"){E={type:U.XN,wm:[C.vibrance?C.vibrance.v:0,C.Strt?C.Strt.v:0]}}if(L=="hue2"){var bE=[],eN=[],hj=[],iN=C.Clrz?C.Clrz.v:!1; +for(var H=0;H<256;H++){bE[H]=H/255;eN[H]=0;hj[H]=0}var dK=hK.El(C,0),ch=eh.rc(dK[1]/100);if(iN){var hP=dK[0]/360; +for(var H=0;H<256;H++){bE[H]=hP;eN[H]=ch}}else{for(var H=0;H<256;H++){var d2=bE[H],hr=eN[H];bE[H]+=dK[0]/360; +for(var f=0;f<6;f++){var fv=hK.El(C,f+1),f3=fv.K3,dp=fv.tZ,bj=0;for(var go=1;go<4;go++)if(dp[go]1)dX--;if(dX<0)dX++;gc=eh.a9S(gc);gc=(1+gc)*.5; +dz=(1+dz)*.5;a6[H]=Math.round(255*dX);am[H]=Math.round(255*gc);fj[H]=Math.round(255*dz)}var gE=dK[2]/100,cQ=gE<0?-gE:gE,fi=gE<0?0:1; +E={type:U.NL,a97:a6,nb:am,aaa:fj,a4n:cQ*fi,wo:1-cQ,a7w:dK[2]/100,a1c:iN?1:0}}if(L=="nvrt"){var A=new Uint8Array(256); +for(var H=0;H<256;H++)A[H]=255-H;E={type:U.tV,pm:A,l3:A,g_:A,Qd:!1,bY:!1}}if(L=="post"){var dB=C.Lvls.v,A=new Uint8Array(256),bj=dB/255.001,bp=255/(dB-1); +for(var H=0;H<256;H++)A[H]=Math.floor(H*bj)*bp;E={type:U.tV,pm:A,l3:A,g_:A,Qd:!1,bY:!1}}if(L=="grdm"){var ai=C.Grad.v,hu=C.Rvrs,bP=c.W.Sa(ai.Clrs.v,0,0),h=1024,hw=c.W.Vi(ai,bP,h,hu?hu.v:!1),gQ=c.F(h),gp=c.F(h),aS=c.F(h); +c.wH(hw,gQ,0);c.wH(hw,gp,1);c.wH(hw,aS,2);E={type:U.tV,pm:gQ,l3:gp,g_:aS,Qd:!0,bY:!1}}if(L=="selc"){var iX=new Float32Array(9*3*2),dW=C.Rm,i7=C.Mthd?C.Mthd.v.CrcM=="Absl":!1; +for(var f=0;f<9;f++){var i5=f*6,fM=iQ.El(C,f),ei=fM[0]/100,bu=fM[1]/100,hG=fM[2]/100,fb=fM[3]/100;if(i7){iX[i5]=iX[i5+1]=iX[i5+2]=1; +iX[i5+3]=ei*(1+fb)+fb;iX[i5+4]=bu*(1+fb)+fb;iX[i5+5]=hG*(1+fb)+fb}else{iX[i5+0]=(1+ei)*(1+fb);iX[i5+1]=(1+bu)*(1+fb); +iX[i5+2]=(1+hG)*(1+fb)}}E={type:U.qv,J7:iX}}if(L=="blwh"){var iJ="Rd Yllw Grn Cyn Bl Mgnt".split(" "),E=[],cw=0,aD=0; +for(var H=0;H<6;H++)E.push(C[iJ[H]].v);E.push(C.useTint.v,C.tintColor.v);var h0=[];for(var H=0;H<6;H++)h0.push((E[H]-50)/50); +var hM=c.W.Lt(E[7]);hM.h/=255;hM.P/=255;hM.O/=255;var e0=c.t2(hM.h,hM.P,hM.O),dz=c.uW(c.u2(e0.fg,1,.5)),fC=e0.uR*e0.oe; +if(dz==.5)cw=aD=.5;else{cw=fC*(.5-dz)/(.5/dz-1);aD=1-fC*(.5-dz)-1/(2*(1-dz));aD/=1-1/(2*(1-dz))}E={type:U.Yr,aa4:h0,XB:E[6]?1:0,agb:e0.fg,uW:dz,alo:fC,UA:cw,am7:aD}}if(L=="blnc"){console.log(C); +var g=[],d7=["ShdL","MdtL","HghL"];for(var H=0;H<3;H++){if(C[d7[H]]==null){g[H]=[0,0,0];continue}var dB=C[d7[H]].v,az=dB[0].v/100,gb=dB[1].v/100,hl=dB[2].v/100,aZ=C.PrsL==null||C.PrsL.v?(Math.min(az,gb,hl)+Math.max(az,gb,hl))/2:0; +g[H]=[az-aZ,gb-aZ,hl-aZ]}var e=[c.F(256),c.F(256),c.F(256)];for(var f=0;f<3;f++)for(var H=0;H<256;H++){var m=H*(1/255),dq=0,x=0,fo=0; +x=g[2][f];fo=Math.abs(x);if(x<0)dq=Math.pow(m,Math.SQRT2);else dq=1.63*(Math.pow(m+.04,.5)-.2);m=fo*dq+(1-fo)*m; +x=g[1][f];fo=Math.abs(x);if(x<0)dq=Math.pow(m,2);else dq=Math.min(2.35*(Math.pow(m+.09,.5)-.3),Math.pow(m,1/2)); +m=fo*dq+(1-fo)*m;x=g[0][f];fo=Math.abs(x);if(x<0)dq=m<.4?0:Math.pow((m-.4)/.6,Math.SQRT2);else dq=Math.pow(m,Math.SQRT2/2); +m=fo*dq+(1-fo)*m;m=Math.max(0,Math.min(1,m));e[f][H]=Math.round(m*255)}E={type:U.tV,pm:e[0],l3:e[1],g_:e[2],Qd:!1,bY:!1}}if(L=="phfl"){var gF=c.W.Lt(C.Clr.v),hk=[gF.h/255,gF.P/255,gF.O/255],iU=C.Dnst.v/100,e=[c.F(256),c.F(256),c.F(256)]; +for(var f=0;f<3;f++)for(var H=0;H<256;H++){var m=H*(1/255),iD=m*hk[f];iD=Math.max(0,Math.min(1,iD)); +m=iU*iD+(1-iU)*m;e[f][H]=Math.round(m*255)}E={type:U.tV,pm:e[0],l3:e[1],g_:e[2],Qd:!1,bY:C.PrsL.v}}if(L=="thrs"){var A=c.F(256); +for(var H=C.Lvl.v;H<256;H++)A[H]=255;E={type:U.tV,pm:A,l3:A,g_:A,Qd:!0,bY:!1}}if(L=="mixr"){var fJ=eh.zu(C),Q=[]; +for(var H=0;H300*300&&L.type!=Y.tV&&L.type!=Y.B8){E=E.clone();E.x=E.y=0;var r=t.kb(0,E.d,E.v);r.set(C); +t.RV(r,E);r.Go(E);eh.BW(L,r.zQ,E);r.get(U);return}if(L.type==Y.B8){var p=L.a4Q,T=L.NM;ICC.U.applyLUT(p,T,C,U)}if(L.type==Y.PA)c.hS.ld(C,U,L.W1); +if(L.type==Y.Yr){var k=L.alo,P=L.uW,b=L.UA,Q=L.am7,K=C.length;for(var H=0;H>>8&255)*(1/255),x=(s>>>16&255)*(1/255),f5=s>>>24,dx=Math.min(E,h,x),fq=Math.max(E,h,x),i9=0,e8=0,S=0; +if(fq!=dx){var fs=fq-dx;switch(fq){case E:i9=(h-x)/fs+(h.5?fs/(2-(fq+dx)):fs/(fq+dx)}var hj=al; +if(L.a1c==0){al=J[Math.floor((1+al)*127.5)];hj=Math.min(e8*(1+al),1)}i9=g6;e8=hj;if(e8==0)E=h=x=S;else{var iN=S<.5?S*(1+e8):S+e8-S*e8,dK=2*S-iN; +E=c.Ll(dK,iN,i9+1/3);h=c.Ll(dK,iN,i9);x=c.Ll(dK,iN,i9-1/3)}N[H]=f5<<24|x*255<<16|h*255<<8|E*255}}if(L.type==Y.bG){c.hL(C,U); +var e=new Uint32Array(C.buffer),N=new Uint32Array(U.buffer),K=e.length,ch=L.oD,hP=1/ch,d2={QD:L.Uh[0],R:L.Uh[1],O:L.Uh[2]},hr={QD:L.fX[0],R:L.fX[1],O:L.fX[2]}; +for(var H=0;H>>8&255,dp=s>>>16&255,E=fv*(1/255),h=f3*(1/255),x=dp*(1/255),f5=s>>>24,go=c.E8(fv,f3,dp),d6=c.WA(go,d2,hr,ch,hP); +if(d6==0)continue;var O=c.S2(E,h,x),g6=2+O.fg+d6*L.shift[0];O.fg=g6-~~g6;O.uR=Math.max(0,Math.min(1,O.uR+d6*L.shift[1])); +O.fr=Math.max(0,Math.min(1,O.fr+d6*L.shift[2]));var I=c.u2(O.fg,O.uR,O.fr);E=I.h;h=I.P;x=I.O;N[H]=f5<<24|x*255<<16|h*255<<8|E*255}}if(L.type==Y.XN){var e=new Uint32Array(C.buffer),N=new Uint32Array(U.buffer),K=e.length,iB=L.wm[0]/100,hS=L.wm[1]/100; +for(var H=0;H>>8&255)*(1/255),x=(s>>>16&255)*(1/255),f5=s>>>24,O=c.t2(E,h,x),i9=O.fg,e8=O.uR,S=O.oe,eF=0,bQ=45/360,iP=i916777215?$.aap(C):L.Fltr.v.classID};hi.v0=[{o$:"GEfc"},{o$:"LnCr"},{o$:"LqFy",rY:!0},{iF:"3D",yn:["lightFilterGradient"]},{iF:[24,2],yn:"Avrg,Blr ,BlrM,boxblur,GsnB,Bokh,MtnB,RdlB,surfaceBlur".split(",")},{iF:[24,4],yn:"Dspl,Pnch,Plr ,Rple,Shr ,Sphr,Twrl,Wave".split(",")},{iF:[24,6],yn:["AdNs","Dspc","DstS","Mdn "]},{iF:[24,8],yn:"ClrH,Crst,Frgm,Mztn,Msc ,Pntl".split(",")},{iF:[24,10],yn:["Clds","DfrC","LnsF"]},{iF:[24,12],yn:["Shrp","ShrE","ShrM","smartSharpen","UnsM"]},{iF:[24,14],yn:"Dfs ,Embs,FndE,oilPaint,Slrz,TrcC,Wnd ".split(",")},{iF:[24,16],yn:"HghP,Mxm ,Mnm ,Ofst,Rept,Ctoa".split(",")},{iF:"Fourier",yn:["dDFT","iDFT"]}]; +hi.IZ={LqFy:"LqFy",Avrg:"Avrg","Blr ":"blurEvent",BlrM:"blurMethod",boxblur:"boxblur",GsnB:"gaussianBlur",MtnB:"motionBlur",RdlB:"radialBlur",surfaceBlur:"surfaceBlur",lightFilterGradient:"lightFilterGradient",adaptCorrect:"adaptCorrect",Pnch:"pinch","Plr ":"polar",Rple:"ripple","Shr ":"shear",Sphr:"spherize",Twrl:"twirl",Wave:"wave",AdNs:"addNoise",DstS:"dustAndScratches","Mdn ":"median",ClrH:"colorHalftone",Crst:"",Frgm:"",Mztn:"mezzotint","Msc ":"mosaic",Pntl:"",Clds:"clouds",DfrC:"differenceClouds",LnsF:"LnsF",Shrp:"sharpen",ShrM:"sharpenMore",smartSharpen:"smartSharpen",UnsM:"unsharpMask",FndE:"findEdges",oilPaint:"oilPaint",HghP:"highPass","Mxm ":"maximum","Mnm ":"minimum",Ofst:"offset"}; +hi.S6={AddNoise:"AdNs",Average:"Avrg",Blur:"Blr ",BlurMore:"BlrM",Clouds:"Clds",DifferenceClouds:"DfrC",DustAndScratches:"DstS",GaussianBlur:"GsnB",HighPass:"HghP",Maximum:"Mxm ",Minimum:"Mnm ",MotionBlur:"MtnB",Offset:"Ofst",Pinch:"Pnch",PolarCoordinates:"Plr ",Ripple:"Rple",Sharpen:"Shrp",SharpenMore:"ShrM",Twirl:"Twrl",UnsharpMask:"UnsM"}; +hi.Wk={rigidTransform:W.s2};hi.names={lightFilterGradient:"Normal Map",rigidTransform:[10,46],LnCr:[24,1,1,0],LqFy:[24,1,0,0],GEfc:[24,0],Avrg:[24,3,0],"Blr ":[24,3,1],BlrM:[24,3,2],boxblur:[24,3,3],GsnB:[24,3,4],Bokh:[24,3,5],MtnB:[24,3,6],RdlB:[24,3,7],surfaceBlur:[24,3,10],Dspl:[24,5,0],Pnch:[24,5,1],"Plr ":[24,5,2],Rple:[24,5,3],"Shr ":[24,5,4],Sphr:[24,5,5],Twrl:[24,1,0,1,3],Wave:[24,5,6],AdNs:[24,7,0],Dspc:[24,7,1],DstS:[24,7,2],"Mdn ":[24,7,3],ClrH:[24,9,0],Crst:[24,9,1],Frgm:[24,9,3],Mztn:[24,9,4],"Msc ":[24,9,5],Pntl:[24,9,6],Clds:[24,11,0],DfrC:[24,11,1],LnsF:[24,11,2],Shrp:[24,13,0],ShrE:[24,13,1],ShrM:[24,13,2],smartSharpen:[24,13,3],UnsM:[24,13,4],"Dfs ":[24,15,0],Embs:[24,15,1],FndE:[24,15,3],oilPaint:[24,15,4],Slrz:"Solarize",TrcC:"Trace Contour","Wnd ":"Wind",HghP:[24,17,1],"Mxm ":[24,17,2],"Mnm ":[24,17,3],Ofst:[24,17,4],Rept:[24,17,5],Ctoa:"Color to Alpha",dDFT:"Fourier Transform",iDFT:"Inverse Fourier Transform",adaptCorrect:["VAR0/VAR1",[19,6,0],[19,6,2]]}; +hi.Q4=function(L){var C=null;if(L=="GEfc")C={__name:"Filter Gallery",classID:"GEfc",GEfs:{t:"VlLs",v:[{t:"Objc",v:eb.Q4("GlwE")}]}}; +if(L=="LqFy"){var U={aU:5,fg:5,map:new Float32Array(5*5*2)},E=new Uint8Array(gy.cd(U)),Y=[];for(var H=0; +HC.x)C.x=z.x; +if(z.y>C.y)C.y=z.y}return C};hi.Op=function(L,C){var U=0,E=0;if(["GsnB","boxblur","smartSharpen","UnsM","HghP"].indexOf(L)!=-1){var Y=C.Rds.v.val; +U=E=Y*2.57}if(L=="MtnB")U=E=C.Dstn.v.val;if("Ofst,Rept,LqFy,Dspl,Pnch,Rple,Shr ,Sphr,Twrl,Wave,RdlB,Clds,DfrC,Plr ,LnCr,Wnd ,lightFilterGradient,rigidTransform,Frgm".split(",").indexOf(L)!=-1){U=E=1e4}if(L=="GEfc")return eb.Op(C); +return new hZ(Math.ceil(U),Math.ceil(E))};hi.G7=function(){return{t:"Objc",v:{classID:"filterFXStyle",enab:{t:"bool",v:!0},validAtPosition:{t:"bool",v:!0},filterMaskEnable:{t:"bool",v:!0},filterMaskLinked:{t:"bool",v:!0},filterMaskExtendWithWhite:{t:"bool",v:!0},filterFXList:{t:"VlLs",v:[]}}}}; +hi.hr=function(L,C){var U={h:C.yx>>16,P:C.yx>>8&255,O:C.yx&255},E={h:C.ho>>16,P:C.ho>>8&255,O:C.ho&255},Y=hi.names[L]; +if(Y==null)Y=eh.names[L];var z=L;for(var r in eh.vD)if(eh.vD[r]==L)z=r;var p={t:"Objc",v:{classID:"filterFX",Nm:{t:"TEXT",v:gS.get(Y)},blendOptions:{t:"Objc",v:{classID:"blendOptions",Opct:{t:"UntF",v:{type:"#Prc",val:100}},Md:{t:"enum",v:{BlnM:"Nrml"}}}},enab:{t:"bool",v:!0},hasoptions:{t:"bool",v:!0},FrgC:{t:"Objc",v:c.W._b(U)},BckC:{t:"Objc",v:c.W._b(E)},filterID:{t:"long",v:z.length==4?$.a36(z):777}}},T=hi.Q4(L); +if(T)p.v.Fltr={t:"Objc",v:T};return p};hi.Xp=function(L,C,U,E,Y,z,r,p){var T=U*E*4;c.nW.aku(L,C,U,E,Y,z,r)}; +hi.mK=function(L,C,U,E){c.ED(U);if(L<1){var Y=Math.round(L*5),z=[1,2,1,2,[40,26,13,6,4,2][Y],2,1,2,1]; +z=c.N1.hx(z);var r=U.slice(0);c.N1.jg(r,U,E.d,E.v,z,255)}else C(U,E,L);c.mu(U)};hi.ah0=function(L,C,U,E){for(var H=0; +H>>1,z=16384,r=128,T=100;while(r>>1,z=16384,r=128;while(r=a&&bK=a)J[hd]=0}function i9(b2,hd){var hF=N[b2],bK=N[hd]; +if(hF>a&&bK<=a)J[hd]=0;if(hF<=a&&bK>a)J[b2]=0}if(e)for(var R=1;Rch)dK[H]=255-dK[H];if(dK[H+1]>ch)dK[H+1]=255-dK[H+1];if(dK[H+2]>ch)dK[H+2]=255-dK[H+2]}}if(L=="Wnd "){var b=C.rect,Q=b.d,K=b.v,hP=["Wnd","Blst","Stgr"],d2=U.WndM.v.WndM; +c.DA.k5(C.buffer,Q,K,z.buffer,[hP.indexOf(d2),U.Drct.v.Drct!="Left"])}if(L=="Bokh"){var b=C.rect,Q=b.d,K=b.v,h=Q*K,x=h*4,hr=C.buffer.slice(0),fv=U.BkDi.v.BtDi,f3=U.BkDc,dp=U.BkDp.v/255; +if(fv=="BeIn")dp=0;var go=57*(.3+.7*((Q+K)/2)/1750)*(U.BkIb.v/100)*(1+.2*Math.pow(dp,.1)),u=parseInt(U.BkIs.v.BtIs.slice(3)),d6=-U.BkIr.v*Math.PI/180,iB=[]; +for(var H=0;H<8;H++){var hS=d6+H*(Math.PI*2/u),eF=d6+(H+1)*(Math.PI*2/u),bQ=Math.cos(hS),iP=Math.sin(hS),d8=Math.cos(eF),a6=Math.sin(eF),am=[0,0,0]; +c.W1.wi([[bQ,iP,1,0],[d8,a6,1,0],[1,1,1,1]],am);if(am[2]>0){am[0]*=-1;am[1]*=-1;am[2]*=-1}iB.push(am[0],am[1],am[2],0)}if(fv=="BeIn"){c.n0(hr,0,16777215); +dp=1}else if(fv=="BeIt"&&f3.v.BtDc=="BeCt"){}else{var fj;if(fv=="BeIt"&&f3.v.BtDc=="BeCm")fj=r[1];else if(fv=="BeIa")fj=r[2][f3.v]; +if(fj==null){c.n0(hr,0,16777215)}else{var dX;if(fj.rect.cg(b))dX=fj.channel;else dX=fj.X8(b);c.Wn(dX,hr,3)}}if(t.i8){var gc=hr,dz=Q,gE=K,cQ=1,fi=(U.BkSb.v==0||U.BkSt.v==255)&&fv=="BeIn"; +if(!fi){var dB=0;for(var H=0;H2e3){alert("too large radius");return}}while(fi&&3*(go/cQ)*(go/cQ)*Q*K>500*2e3*2e3){var ai=c.bt(hr,new _(0,0,dz,gE)); +hr=ai.eB;dz=ai.rect.d;gE=ai.rect.v;cQ*=2}var d=Date.now(),hu=t.kb(0,dz,gE);hu.set(hr);var bP=t.kb(1,Q,K); +t.RV(bP);t.filter.BW({type:t.filter.TZ,WY:new Float32Array([1/dz,1/gE]),a0E:dp,agw:go/cQ,a0x:new Float32Array([U.BkSb.v/100,U.BkSt.v/255]),afZ:new Float32Array([U.BkNa.v/100,U.BkNt.v.BtNt=="BeNu"?0:1,U.BkNm.v?1:0]),a89:new Float32Array(iB.slice(0,16)),agt:new Float32Array(iB.slice(16))},hu.W5); +bP.get(z.buffer);var hw=z.buffer;for(var H=0;H>>2,h0=bu.indexArray.v.length>>>2,hM=new Float32Array(gQ(bu.originalVertexArray.v)); +for(var H=0;H>>1;fM+=~~(h0/3)}c.De.wV(hu,z.buffer,C.rect,aS,iX,i7,dW); +c.mu(z.buffer)}if(L=="lightFilterGradient"){function hl(ex){var hF=1/Math.sqrt(ex[0]*ex[0]+ex[1]*ex[1]+ex[2]*ex[2]); +ex[0]*=hF;ex[1]*=hF;ex[2]*=hF}var Q=C.rect.d,K=C.rect.v,h=Q*K,d=Date.now(),aZ=c.F(h),bK=.3,aF=.7;c.Fy(z.buffer,aZ); +var dq=c.F(h);c.qM.Oq(aZ,dq,z.rect,16);var fo=c.F(h);c.qM.Oq(aZ,fo,z.rect,8);var gF=aZ,A=new Float32Array(h),hk=U.Dtl.v,iU=hk[2].v,iD=hk[1].v,fJ=hk[0].v,gh=U.Scl.v*40*U.textureScale.v/(iU+iD+fJ); +iU*=gh;iD*=gh;fJ*=gh;for(var H=0;H>1;u|=u>>2;u|=u>>4;u|=u>>8;u|=u>>16;return u+1}var Q=C.rect.d,K=C.rect.v,at=ee(Math.max(Q,K)),bV=at>>>1,ij=new _(0,0,at,at),eT=new _(0,0,Q,K); +eT.y=at-K>>>1;var cE=Q>>>1,cv=new _(0,eT.y,cE,K),eP=new c.Ry(Q*K);c.df(C.buffer,eP);var h5=new Float64Array(at*at),fn=new Float64Array(at*at),dX=c.F(at*at); +FFT.init(at);var a0=[eP.h,eP.P,eP.O];for(var H=0;H<3;H++){var bA=a0[H];dX.fill(0);if(L=="dDFT"){c.zM(bA,eT,dX,ij); +hi.ah0(dX,at,h5,fn);c.zM(dX,ij,bA,eT,cv);cv.x+=cE;ij.x-=bV-cE;c.zM(dX,ij,bA,eT,cv);cv.x-=cE;ij.x+=bV-cE}else{c.zM(bA,eT,dX,ij,cv); +cv.x+=bV;eT.x+=bV-cE;c.zM(bA,eT,dX,ij,cv);cv.x-=bV;eT.x-=bV-cE;hi.afV(dX,at,h5,fn);c.zM(dX,ij,bA,eT)}}c.qF(eP,z.buffer)}if(L=="Avrg"){var aR=0,dE=0,hC=0,aK=0,bg=1; +for(var H=0;H0)hU=Math.max(0,hU-ce);else hU=Math.min(0,hU+ce);z.buffer[H]=Math.max(0,Math.min(255,cf+hU))}}if(L=="HghP")for(var H=0; +HgY?0:255}}}c.qF(eP,z.buffer)}if(L=="Msc "){var aO=U.ClSz.v.val,Q=C.rect.d,K=C.rect.v,io=Math.ceil(Q/aO),i3=Math.ceil(K/aO),c9=c.F(io*i3*4); +c.scale.su(C.buffer,Q,K,c9,io,i3,1/aO);c.scale.su(c9,io,i3,z.buffer,Q,K,aO)}if(L=="Clds"||L=="DfrC"){var Q=z.rect.d,K=z.rect.v,h=Q*K,dD=c.F(h); +if(L=="Clds")c.n0(z.buffer,4278190080);var iS=c.F(256*4);for(var H=0;H<256;H++){var e8=H<<2,e_=H/255,cw=1-e_; +iS[e8]=Math.round(e_*E.h+cw*Y.h);iS[e8+1]=Math.round(e_*E.P+cw*Y.P);iS[e8+2]=Math.round(e_*E.O+cw*Y.O)}c.DA.a9w(C.buffer,Q,K,dD); +var dn=z.buffer;for(var H=0;H1,Q=C.rect.d,K=C.rect.v,gq=c.N1.MZ[fx],ay=C.buffer.slice(0); +if(!hB)c.ED(ay);c.N1.jg(ay,z.buffer,Q,K,gq,255,!1,hB);if(!hB)c.mu(z.buffer)}if(L=="MtnB"){var fw=-U.Angl.v*Math.PI/180,aW=U.Dstn.v.val/2,d=Date.now(),Q=C.rect.d,K=C.rect.v,b=C.rect.clone(); +b.x=b.y=0;if(t.i8){var d=Date.now(),iw=z.buffer;iw.set(C.buffer);c.ED(iw);var c7=t.kb(0,Q,K);c7.set(iw); +var N=c.F(4);N[0]=Math.round(128+127*Math.cos(fw));N[1]=Math.round(128+127*Math.sin(fw));new Uint32Array(iw.buffer).fill(new Uint32Array(N.buffer)[0]); +var d1=t.kb(1,Q,K);d1.set(iw);t.RV(c7,b);c7.Go(b);t.filter.BW({type:t.filter.VN,YY:d1.W5,WY:new Float32Array([1/Q,1/K]),a4D:aW/2,a6l:1},c7.zQ); +c7.get(iw);c.mu(iw)}else{var gt=new c0;gt.rotate(fw);var bE=W.o.dy([C.buffer,C.rect],gt,!1,null,!0); +hi.mK(aW,c.qM.Cn,bE.buffer,bE.rect);gt.G$();bE=W.o.dy([bE.buffer,bE.rect],gt,!1,z.buffer.buffer,!0,z.rect)}console.log(Date.now()-d)}if(L=="RdlB"){var Q=C.rect.d,K=C.rect.v,bz=U.Amnt.v,c4=U.BlrM.v.BlrM=="Zm",f_=U.Cntr.v,fT=f_.Hrzn.v,eM=f_.Vrtc.v,g6=Math.max(fT,1-fT)*Q,al=Math.max(eM,1-eM)*K,fR=Math.sqrt(g6*g6+al*al),aG=2*Math.PI*fR*1.5,c6=Math.round(aG),cF=Math.round(fR),cv=new _(0,0,c6,cF),is=c.F(c6*cF*4),eD=c4?4:1,f2=c4?.6:8*((Q+K)/2)/1400,ii=.1,cQ=1,hW=1; +c.I.bN(C.buffer,Q,K,is,c6,cF,fT,eM,eD,ii,cQ,hW);var gH=c4?c.F(c6*cF*4):null;if(c4){c.I.t$(is,gH,c6,cF); +var g2=gH;gH=is;is=g2;cv.d=cF;cv.v=c6}hi.mK(f2*bz,c.qM.Cn,is,cv);if(c4){c.I.t$(is,gH,cF,c6);var g2=gH; +gH=is;is=g2;cv.d=c6;cv.v=cF}c.I.H9(is,c6,cF,z.buffer,Q,K,fT,eM,eD,ii,cQ,hW)}if(L=="Plr "){var Q=C.rect.d,K=C.rect.v; +if(U.Cnvr.v.Cnvr=="RctP")c.I.H9(C.buffer,Q,K,z.buffer,Q,K,.5,.5,1,0,2,Q/K);else c.I.bN(C.buffer,Q,K,z.buffer,Q,K,.5,.5,1,0,2,Q/K)}if(L=="FndE"){var Q=C.rect.d,K=C.rect.v; +c.N1.St(C.buffer,z.buffer,Q,K)}if(L=="oilPaint"){var S=U.LghD.v*Math.PI/180,ba=[Math.cos(S),Math.sin(S),.001],Z=[U.stylization.v,U.cleanliness.v,U.brushScale.v,U.microBrush.v,U.lightingOn.v,U.specularity.v,ba],b=C.rect.clone(); +b.x=b.y=0;c.pB.filter(C.buffer,b,z.buffer,Z)}if(L=="Ofst"){var Q=C.rect.d,K=C.rect.v,iC=new Uint32Array(C.buffer.buffer),f0=new Uint32Array(z.buffer.buffer),fX=U.Hrzn.v,he=U.Vrtc.v,bZ=U.Fl.v.FlMd; +c.n0(f0,0);if(bZ=="Bckg"||bZ=="Rpt"){var cv=C.rect.clone();cv.offset(fX,he);c.La(iC,cv,f0,z.rect)}if(bZ=="Rpt"){var bQ,iP,d8,a6,cB; +fX=Math.max(-Q,Math.min(Q,fX));he=Math.max(-K,Math.min(K,he));bQ=fX>0?fX:0;d8=fX>0?Q:Q+fX;iP=he>0?0:he+K; +a6=he>0?he:K;cB=he>0?0:Q*(K-1);for(var R=iP;R0?0:Q+fX; +d8=fX>0?fX:Q;iP=he>0?he:0;a6=he>0?K:K+he;cB=fX>0?0:Q-1;for(var R=iP;R=0&&he>=0){bQ=0;d8=fX;iP=0;a6=he;cB=0}if(fX>=0&&he<0){bQ=0;d8=fX;iP=K+he;a6=K;cB=Q*(K-1)}if(fX<0&&he>=0){bQ=Q+fX; +d8=Q;iP=0;a6=he;cB=Q-1}if(fX<0&&he<0){bQ=Q+fX;d8=Q;iP=K+he;a6=K;cB=Q*K-1}for(var R=iP;R0?bi/d4:d4/bi,hW=fT+bR*fk*g6,aP=eM+bR*fk*al,H=R*gj.aU+n<<1; +gj.map[H]=hW-n;gj.map[H+1]=aP-R}}}else if(L=="Dspl"&&cr.length!=0){de=U.UndA.v.UndA=="WrpA"?2:1;var ae=U.DspF.v.pth,ge; +for(var H=0;H>>1,w=l==0?2:1;eb.aY(v.map,n,T,k,w);eb.a4(n,v.map,T,k,w); +if(l!=0){var V=eb.$p.indexOf(U.SDir.v.StrD),F=[1,1,1,0][V],Z=[-1,0,1,1][V],M=2*l+1,a=1/M;for(var d=0; +d1)eb.mK(bz,g6,al,p,e8-1);if(L=="PlsW"){var dK=new Uint8Array(bz.buffer);for(var H=0;H>>1,go=k>>>1; +for(var H=0;H>>1,iJ,[],0);c.N1.St(cw,z.buffer,T,k);c.hL(z.buffer,cw); +c.G$(cw);c.n0(cw,4278190080,16777215);hi.Xp(cw,z.buffer,T,k,U.EdgW.v>>>1,c.nW.s_,[],0);var aD=U.EdgB.v/10; +for(var H=0;H>>2]=~~(.5+(gF[H]+gF[H+1]+gF[H+2])*(1/3));var hk=fo.slice(0);c.qM.m9(hk,fo,p,az); +var iU=Math.PI/gb,iD=new Float64Array(T),e=new Float64Array(T),fJ=new Float64Array(2*T);for(var g=0; +g>>1))*iU;iD[g]=hu*hu;e[g]=Math.cos(hu);var F=g<<1;fJ[F]=Math.sin(F*(1/4.5));fJ[F+1]=Math.sin((F+1)*(1/4.5))}for(var d=0; +d>>1))*iU,N=Math.cos(ai),hE=ai*ai;for(var g=0;g46)c.round(fo); +eb.YM(fo,z.buffer,E,Y)}for(var H=0;H=U?U-1:K,x=(T*U+h)*2,O=z[H];b+=O*L[x];Q+=O*L[x+1]}C[P]=b; +C[P+1]=Q}};eb.a4=function(L,C,U,E,Y){var z=eb.ZU(Y),r=6,p=13;for(var T=0;T=E?E-1:K,x=(h*U+k)*2,O=z[H];b+=O*L[x];Q+=O*L[x+1]}C[P]=b; +C[P+1]=Q}};function gz(){}gz.RY=[2,5,5,7,4,4];gz.w0="norm,diss,dark,mul ,idiv,lbrn,dkCl,lite,scrn,div ,lddg,lgCl,over,sLit,hLit,vLit,lLit,pLit,hMix,diff,smud,fsub,fdiv,hue ,sat ,colr,lum ".split(","); +gz.lV="Nrml Dslv Drkn Mltp CBrn linearBurn darkerColor Lghn Scrn CDdg linearDodge lighterColor Ovrl SftL HrdL vividLight linearLight pinLight hardMix Dfrn Xclu blendSubtraction blendDivide H Strt Clr Lmns".split(" "); +gz.w4=[[15,10,0],[15,10,1],[15,10,2],[15,10,3],[15,10,4],[15,10,5],[15,10,6],[15,10,7],[15,10,8],[15,10,9],[15,10,10],[15,10,11],[15,10,12],[15,10,13],[15,10,14],[15,10,15],[15,10,16],[15,10,17],[15,10,18],[15,10,19],[15,10,20],[15,10,21],[15,10,22],[15,10,23],[15,10,24],[15,10,25],[15,10,26]]; +gz.Ul=["normal",null,"darken","multiply","color-burn",null,null,"lighten","screen","color-dodge",null,null,"overlay","soft-light","hard-light",null,null,null,null,"difference","exclusion",null,null,"hue","saturation","color","luminosity"]; +gz.Sh=function(L){if(L=="passThrough")return"pass";return gz.w0[gz.lV.indexOf(L)]};gz.Wx=function(L){if(L=="pass")return"passThrough"; +return gz.lV[gz.w0.indexOf(L)]};gz.getName=function(L){return gz.w4[gz.w0.indexOf(L)]};function o(){this.rect=null; +this.B4="norm";this.opacity=255;this.l$=!1;this.bP=0;this.xi=0;this.E7=[];for(var H=0;H<10;H++)this.E7.push(0,0,255,255); +this.name=null;this.add={};this.buffer=null;this.Pl=null;this.OG=null;this.r=null;this.Os=null;this.ad0=30; +this.mN=o.qB();this.a2J=o.qB();this.a0F=o.qB();this.ajL=o.qB();this.yQ=0;this.hI=!1;this.kK=null;this.V=new o.R2}o.qB=function(){var L=B.w("canvas"); +L.width=L.height=30;return L.getContext("2d")};o.R2=function(){this.cm=!0;this.Of=!0;this.Rr=c.F(0); +this.ad8=c.F(0);this.nZ=null;this.c5={};this.a0y=null;this.S7=null;this.VW=null;this.eh=null;this.VX=null; +this.yi=null;this.Mi=null;this.z8=null;this.Yq=null;this.p0=null;this.x5=null;this.jD=null;this.Wt=!1}; +o.R2.prototype.n1=function(){this.cm=!1;this.Of=!1;this.nZ=null;this.Wt=t.i8};o.R2.prototype.a6D=function(){ca.Hu(this.c5); +this.Rr=c.F(0);this.ad8=c.F(0);if(this.eh)this.eh.delete();if(this.VX)this.VX.delete();this.eh=null; +this.VX=null;var L=[this.yi,this.Mi,this.z8,this.Yq,this.p0,this.x5];for(var H=0;H<6;H++)if(L[H]!=null&&L[H]instanceof t.Ry)L[H].delete(); +this.yi=null;this.Mi=null;this.z8=null;this.Yq=null;this.p0=null;this.x5=null};o.prototype.s=function(L){if(L==null)L=this.rect.clone(); +if(this.V.nZ==null)this.V.nZ=L;else this.V.nZ=this.V.nZ.EU(L)};o.prototype.Jc=function(){return this.add.lsct==fI.Qr||this.add.lsct==fI.z7}; +o.prototype.G_=function(){var L=this.add;return L.SoCo!=null||L.GdFl!=null||L.PtFl!=null};o.prototype.yC=function(){var L=this.add.lmfx; +if(L==null)return;var C=["GrFl","patternFill"];for(var H=0;H>2);c.wH(z.zK,p,3);if(!c.cg(C.channel,p))return!1; +var T=c.F(r.d*r.v*4);c.La(z.Ke,z.uL,T,r);c.Q.Kj("norm",z.zK,z.dE,T,r,r,1);return c.cg(T,this.buffer)}if(z.yQ==1||z.yQ==3){var k=z.yQ==1?this.xV():this.iC(L).r; +if(!r.cg(k.rect))return!1;var P=c.F(r.X());P.fill(k.color);c.zM(z.Ke,z.uL,P,r);c.Q.oW(z.zK,z.dE,P,r,C.channel,r,1); +return c.cg(P,k.channel)}};o.prototype.TA=function(L,C,U,E){var Y=this.kK;Y.dE.offset(C,U);var z=Y.uL.EU(Y.dE); +if(Y.yQ<=0){var r=c.F(z.X()*4);c.La(Y.Ke,Y.uL,r,z);c.Q.Kj("norm",Y.zK,Y.dE,r,z,z,1);this.buffer=r;this.rect=z; +this.s()}else{var p=this.yQ==1?this.xV():this.iC(L).r,T=c.F(z.X());T.fill(p.color);c.zM(Y.Ke,Y.uL,T,z); +c.Q.oW(Y.zK,Y.dE,T,z,E.channel,z,1);p.channel=T;p.rect=z.clone();if(this.yQ==1){p.st=!0;this.cr(L)}if(this.yQ==3)this.s()}}; +o.prototype.mn=function(){var L=[-1,0,1,2];if(this.r)L.push(-2);if(this.Os)L.push(-3);return L};o.prototype.getName=function(){return this.add.luni?this.add.luni:this.name}; +o.prototype.I_=function(u){this.add.luni=this.name=u};o.prototype.n7=function(L){var C=this.add.lnsr,U=this.add.TySh; +if(C=="rend"&&U)this.I_(b5.xY(U.Se).replace(/(?:\r\n|\r|\n)/g," ").slice(0,32))};o.prototype.rK=function(){return(this.bP&1<<1)==0}; +o.prototype.bB=function(){return(this.bP&1<<4)==0};o.prototype.QI=function(){return(this.bP&1<<5)!=0}; +o.prototype.abt=function(){var L=this;if(L.add.lnsr!="bgnd"){L.add.lnsr="bgnd";L.I_("Background");L.add.lspf=1<<2}}; +o.prototype.aam=function(){var L=this;if(L.add.lnsr=="bgnd"){delete L.add.lnsr;L.I_("Layer 0");L.add.lspf=0}}; +o.prototype.zm=function(L){var C=this.add.lspf;return C==null?!1:(C>>L&1)!=0};o.prototype.Qs=function(L){if(L&&!this.rK())this.bP-=2; +if(!L&&this.rK())this.bP+=2};o.prototype.ls=function(){var L=this.add.lmfx;if(L==null)return!1;for(var C in L){if(C=="masterFXSwitch")continue; +if(C=="Scl")continue;if(C=="classID")continue;if(L[C].v.length>0)return!0}return!1};o.prototype.s7=function(){return this.add.SoLd!=null&&this.add.SoLd.filterFX!=null}; +o.prototype.dX=function(){var L=this.add.lmfx;if(L==null)return!1;if(!L.masterFXSwitch.v)return!1;for(var C in L){if(C=="masterFXSwitch")continue; +if(C=="Scl")continue;if(C=="classID")continue;var U=L[C].v;for(var H=0;H1){var T=c.Y.GY(r.n,null,r.f8); +p=c.a.mE(T)}else p=c.Y.JK(r.n,r.C.length!=0?r.C:null)}else p=c.Y.JK(r.n);Y=Y.EU(p)}if(z.indexOf(3)!=-1)Y=Y.EU(this.iC(L).r.dm()); +if(z.length==0&&this.G_())Y=new _(0,0,L.d,L.v);return Y};o.prototype.wZ=function(){var L=this.add.artb,C=L.artboardBackgroundType.v,U=0; +if(C==1)U=4294967295;else if(C==2)U=4278190080;else if(C==3)U=0;else if(C==4){U=L.Clr.v;U=255<<24|U.Bl.v<<16|U.Grn.v<<8|U.Rd.v}else throw C; +return U};o.prototype.kg=function(){var L=this.add.artb.artboardRect.v,C=L.Btom.v,U=L.Left.v,E=L.Rght.v,top=L.Top.v; +return new _(U,top,E-U,C-top)};o.prototype.eJ=function(L){var C=o.l8(L);if(this.add.artb==null)this.add.artb={classID:"artboard",artboardRect:{t:"Objc",v:null},artboardBackgroundType:{t:"long",v:1}}; +this.add.artb.artboardRect.v=C};o.l8=function(L){var C={classID:"classFloatRect",Top:{t:"doub",v:0},Left:{t:"doub",v:0},Btom:{t:"doub",v:0},Rght:{t:"doub",v:0}}; +C.Btom.v=L.y+L.v;C.Left.v=L.x;C.Rght.v=L.x+L.d;C.Top.v=L.y;return C};o.prototype.Vc=function(L,C,U){var E=[],Y=this,z=this.hI; +if(!C&&Y.hI&&U){E.push(2)}else if(Y.yQ<=0||C){if(Y.bB())if(!this.rect.ue())E.push(0);if(Y.xV()&&!Y.xV().rect.ue())if(Y.xV().zF||C)E.push(1); +if(Y.add.vmsk)if(Y.add.vmsk.zF||C)E.push(2);if(Y.s7()&&Y.iC(L).r&&!Y.iC(L).r.rect.ue())E.push(3)}else if(Y.yQ==1){E.push(1); +if(Y.xV().zF&&!Y.xV().rect.ue()){if(Y.bB())if(!this.rect.ue())E.push(0);if(Y.add.vmsk)if(Y.add.vmsk.zF)E.push(2)}}else if(Y.yQ==3&&!Y.iC(L).r.rect.ue())E.push(3); +if(Y.add.artb&&E.indexOf(0)==-1)E.push(0);E.sort();return E};o.prototype.xV=function(){var L=this;return L.Os?L.Os:L.add.vmsk&&L.add.vmsk.isEnabled?null:L.r}; +o.prototype.iC=function(L){var C=this.add.SoLd.placed.v,U=L.add.FEid;if(U==null)return null;for(var H=0; +H3e4*3e4)C=new _(0,0,100,100); +if(L&&L[U].v[U]!="strokeStyleAlignInside"){var Y=1;if(L[E].v[E]=="strokeStyleMiterJoin"){var z=c.Y.alF(this.n),r=z/2,p=Math.sin(r),T=Math.cos(r); +T/=p;p=1;var Y=Math.sqrt(T*T+p*p);if(isNaN(Y)||Y<1)Y=1}Y*=L[U].v[U]=="strokeStyleAlignOutside"?1:.5; +var k=Math.ceil(L.strokeStyleLineWidth.v.val*Y);k=Math.min(k,600);C.WW(k,k)}C=c.a.TT(C);var P=new o.LF; +P.color=c.Y.M8(this.n)?0:255;P.zF=this.zF;P.isEnabled=this.isEnabled;P.Yf=!0;P.rect=C;P.Ve=this.Ve;P.hY=this.hY; +P.channel=c.F(P.rect.X());if(!C.ue())c.Y.af6(this.n,P.channel,P.rect,L);if(L==null){this.Os=P;this.st=!1}return P}; +o.mR.prototype.clone=function(){var L=new o.mR;L.zF=this.zF;L.isEnabled=this.isEnabled;L.Ve=this.Ve; +L.hY=this.hY;L.n=o.mR.Xu(this.n);L.Pw=this.Pw.slice(0);L.ks=this.ks;L.C=this.C.slice(0);L.f8=this.f8.slice(0); +return L};o.mR.prototype.concat=function(L){var C=L.n.slice(2);if(C.length==0)return;C[0].ZZ=3;this.n=this.n.concat(C)}; +o.mR.Xu=function(L){var C=[];for(var H=0;H5||U.type==0||U.type==3)C.push(JSON.parse(JSON.stringify(U))); +else C.push({type:U.type,OT:U.OT.clone(),D:U.D.clone(),SC:U.SC.clone()})}return C};o.mR.abu=function(L,C,U){if(L.length!=C.length)return!1; +for(var H=2;HC.oe.length)C.oe=L.slice(0); +if(this.depth!=0)L.pop()};g_.prototype.alk=function(){var L=0;if(this.$.Jc()){for(var H=0;H=0;H--){var u=this.children[H],E=u.gW(L,C);if(E&&C==null)return E}return null}else if(U.add.TySh&&U.rect.qh(L)||c.adp(L,U.buffer,U.rect)){if(C==null)return this; +else C.push(this.index)}return null};g_.prototype.a7U=function(L){var C=this.$;if(!C.rK()||C.zm(2)||C.zm(31))return null; +var U=C.add.vmsk;if(U&&U.isEnabled){var E=c.Y.gW(U.n,L).Oi;if(E!=-1)return{abp:this,a6I:E}}if(C.Jc()){for(var H=this.children.length-1; +H>=0;H--){var u=this.children[H],Y=u.a7U(L);if(Y)return Y}return null}return null};g_.prototype.Bx=function(L,C){L.push(this.index); +if(this.$.Jc()){L.push(this.vB);if(C)if(this.$.yQ==1&&this.$.xV().zF==!1)return;for(var H=0;HC.v){Y=U;z=Math.floor(U*(C.v/C.d))}else{Y=Math.floor(U*(C.d/C.v));z=U}if(E.G_()&&E.add.vmsk==null||E.add.TySh)Y=z=Math.max(z,16); +var r=z,p=E.G_()&&E.add.vmsk;if(p){var T=E.rect.clone(),b,Q;if(T.ue())T=new _(0,0,20,20);var k=T.d,P=T.v; +if(k>P){b=U;Q=Math.floor(U*(P/k))}else{b=Math.floor(U*(k/P));Q=U}if(b*Q==0)b=Q=16;c.AF.MK(E.mN,b,Q,T,E.buffer,E.rect,!1); +c.AF.aaG(E.mN,b,Q);r=Q}else if(E.add.TySh){c.AF.a58(E.mN,r,r,E.add.TySh)}else if(E.add.SoCo){r=Math.max(16,Math.min(Y,z)); +c.AF.aju(E.mN,r,r,E.add.SoCo)}else if(E.add.GdFl){c.AF.a8E(E.mN,r,r,E.add.GdFl)}else if(E.add.PtFl){c.AF.a9q(E.mN,r,r,E.add.PtFl,L)}else if(eh.get(E.add)!=null){c.AF.amJ(E.mN,r,r,E.add)}else if(E.add.SoLd){c.AF.MK(E.mN,Y,z,C,E.buffer,E.rect,!1); +c.AF.afg(E.mN,Y,z,E.add.SoLd)}else if(E.Jc()){r=16}else{if(E.bB())c.AF.MK(E.mN,Y,z,C,E.buffer,E.rect,!1); +else{c.AF.afz(E.mN,r,r)}}var K=E.xV();if(K)c.AF.ZY(E.a2J,Y,z,C,K);if(E.s7()&&E.iC(L)&&E.iC(L).r){var h=E.iC(L).r; +c.AF.ZY(E.ajL,Y,z,C,h)}if(!p&&E.add.vmsk){c.AF.ZY(E.a0F,Y,z,C,E.add.vmsk.xV(),!0)}if(E.add.vmsk||K)r=Math.max(r,z); +E.ad0=Math.max(r,16);if(E.Jc()&&E.add.lsct==fI.Qr)for(var H=0;H0||r.fill!=1||z.dX())){this.fY(L,C,U,E); +return}var T=z.Jc()&&z.B4=="pass"&&(Y.length>0||r.fill!=1||z.dX()),k=z.rect,P=z.buffer;if(z.Jc()){k=this.dm(E,!1); +var Q=c.F(k.X()*4);b=c.F(k.X());this.fY(Q,k,U,E);c.wH(Q,b,3)}else if(p){k=C.clone();b=c.F(k.X());b.fill(255)}else{k=z.rect; +b=c.F(k.X());c.wH(P,b,3)}if(z.$T()){var K=z.r.X8(k);c.Iz(K,b)}if(z.dX())h=ca.eN(z.add.lmfx,z.add.fxrp,b,k,E); +if(z.dX())ca.gD(z.add.lmfx,h,k,L,C,U);if(z.Jc()){P=c.F(k.X()*4);if(z.B4=="pass")c.La(L,C,P,k);if(T){var Q=c.F(k.X()*4); +this.fY(Q,k,U,E);var x=c.F(k.X());c.wH(Q,x,3);c.Ow(x,k,P,k)}this.fY(P,k,U,E)}if(p){P=L.slice(0);c.n0(P,4278190080,16777215); +var O=eh.get(z.add),y=eh.dq(O,z.add[O]);eh.QE(y,P,P,k)}var v=P.slice(0);c.n0(v,4278190080,16777215); +for(var H=0;HI.oZ.d)I=D[H]; +var m=c.F(I.oZ.d*I.oZ.v*4);c.La(L,C,m,I.oZ)}ca.nS(z.add.lmfx,h,k,L,C,U,i,m,I?I.oZ:null)}c.Q.f3(i,k,L,C,b,k,0,U,1,z.B4=="diss")}; +g_.prototype.fY=function(L,C,U,E){var Y=this.children;for(var H=0;Hz||!r&&z.indexOf(this.index)==-1)){return}var p=this.$,T=ca.WJ(p),k=g_.Uf,P=p.G_()?p.xV():p.r; +if(!p.rK())return;if(p.$T()&&P.rect.ue()){return}if(p.add.vstk==null&&this.dm(E,!1).ue()&&p.add.artb==null){return}var b=this.dm(E,!0).eR(U); +if(!C.cg(U)&&!U.nN(b)&&p.add.artb==null)return;if(p.Jc()&&p.add.artb){var Q=p.kg();U=U.eR(Q);var K=p.wZ(); +if(K!=0){if(t.i8){t.RV(L,U);t.oL(K);t.oL(K)}else c.anK(L,C,U,K)}}var h=g_.NH(p,Y,T);if(!h){this.PM(L,C,U,E,Y,z); +return}p.V.yi=k.g8(p.V.yi,b.d,b.v);k.zM(L,C,p.V.yi,b,U);this.PM(p.V.yi,b,U,E,Y,z);k.f3(p.V.yi,b,L,C,null,null,0,U,p.opacity/255,p.B4=="diss",T.QN)}; +g_.NH=function(L,C,U){if(U.QN[0]*U.QN[1]*U.QN[2]==0)return!0;return L.opacity!=255&&(C.length!=0||L.Jc()||L.dX())}; +g_.aja={V:{}};g_.prototype.PM=function(L,C,U,E,Y,z){var r=this.$,p=ca.WJ(r),T=eh.get(r.add)!=null,k=g_.Uf,P=g_.NH(r,Y,p),b=P?1:r.opacity/255,Q=r.G_()?r.xV():r.r,K=r.Jc()&&r.B4=="pass"&&!(Y.length>0||p.fill!=1||r.dX()),h=!r.Jc()&&!T&&!r.dX()&&Y.length==0,x=T&&!r.dX()&&Y.length==0,I=null,m=null,f=null,X; +if(K||h||x){var O=L,y=C;if(r.$T()){y=this.dm(E,!1);O=r.V.Yq=k.g8(r.V.Yq,y.d,y.v);k.zM(L,C,r.V.Yq,y)}if(K)this.LG(O,y,U,E,z); +if(h)k.Kj(r.B4,r.Te(E),r.rect,O,y,U,b,p);if(x){var v=r.$T()&&Q.Lt()==0?Q.dm().clone():y.clone(),i=r.V; +if(v.cg(new _(0,0,E.d,E.v)))i=g_.aja;i.z8=this.D2(O,y,i.z8,v,r.add);p.H1=!0;k.Kj(r.B4,i.z8,v,O,y,U,b,p)}if(r.$T())k.f3(O,y,L,C,r.Rw(),Q.dm(),Q.Lt(),U,1,r.B4=="diss"); +r.V.n1();return}var D=r.Jc()&&r.B4=="pass"&&(Y.length>0||p.fill!=1||r.dX()),v=r.rect;if(r.Jc()){v=this.dm(E,!1); +f=r.V.z8=k.g8(r.V.z8,v.d,v.v);k.n0(f,0);this.LG(f,v,v,E,z);m=k.g8(r.V.Mi,v.d,v.v);k.zM(f,v,m,v)}else if(T){v=r.$T()&&Q.Lt()==0?Q.dm().clone():C.clone(); +m=k.g8(r.V.Mi,v.d,v.v);k.n0(m,4294967295)}else{v=r.rect;I=r.Te(E);m=k.g8(r.V.Mi,v.d,v.v);k.zM(I,v,m,v)}r.V.Mi=m; +if(r.$T())k.aiS(r.Rw(),Q.dm(),Q.Lt(),m,v);if(r.dX())if(r.V.nZ||r.V.Of||r.V.Wt!=t.i8||r.V.cm||r.Jc()){var A=c.F(v.d*v.v); +if(ca.bJ(r.add.lmfx)){if(t.i8){if(!r.Jc()&&r.xV()==null&&r.rect.cg(v))c.wH(r.buffer,A,3);else{var d=c.F(v.d*v.v*4); +m.get(d);c.wH(d,A,3)}}else c.wH(m,A,3)}if(r.V.Of||r.V.Wt!=t.i8||!c.cg(A,r.V.Rr)){var g=null;if(r.G_()&&r.add.vmsk&&r.add.vmsk.isEnabled&&r.add.vmsk.xV().color==0)g=r.add.vmsk.xV().rect; +ca.ad3(r.V.c5,A,v,r.add.lmfx,r.add.fxrp,E,g);r.V.Rr=A}}if(r.dX())ca.gD(r.add.lmfx,r.V.c5,v,L,C,U);if(r.Jc()){I=k.g8(r.V.Yq,v.d,v.v); +k.n0(I,0);if(r.B4=="pass")k.zM(L,C,I,v);if(D)k.xc(f,v,I,v);this.LG(I,v,U,E,z);r.V.Yq=I}if(T){I=r.V.Yq=this.D2(L,C,r.V.Yq,v,r.add)}if(r.Jc()||T)X=I; +else{X=k.g8(r.V.Yq,v.d,v.v);k.zM(I,v,X,v,U);r.V.Yq=X}k.n0(X,4278190080,16777215);for(var H=0;Hl.oZ.d)l=R[H]; +r.V.x5=k.g8(r.V.x5,l.oZ.d,l.oZ.v);k.zM(L,C,r.V.x5,l.oZ,U);r.V.jD=k.g8(r.V.jD,l.oZ.d,l.oZ.v)}ca.nS(r.add.lmfx,r.V.c5,v,L,C,U,n,r.V.x5,r.V.jD,l?l.oZ:null)}if(!t.i8){var w=c.F(v.X()); +c.wH(m,w,3);m=w}k.f3(n,v,L,C,m,v,0,U,1,r.B4=="diss");r.V.n1()};g_.prototype.D2=function(L,C,U,E,Y){var z=eh.get(Y),r; +if(z)r=eh.dq(z,Y[z]);var p=g_.Uf;U=p.g8(U,E.d,E.v);if(!(t.i8&&C.cg(E)))p.zM(L,C,U,E);if(r){if(t.i8){var T=E.clone(); +T.x=T.y=0;if(C.cg(E)){t.RV(U,T);eh.BW(r,L.W5,T)}else{t.RV(U,E);U.Go(E);eh.BW(r,U.zQ,T)}}else eh.QE(r,U,U,E)}return U}; +g_.prototype.LG=function(L,C,U,E,Y){var z=this.children;for(var H=0;H1.0001; +if(b){Q.d=Math.round(Q.d/K);Q.v=Math.round(Q.v/K);Q.x=Math.round((this.d-Q.d)/2);Q.y=Math.round((this.v-Q.v)/2)}else if(Y&&iL.lc(L.buffer)=="pdf"&&this._Q!=144){var K=144/this._Q; +Q.d=Math.round(Q.d/K);Q.v=Math.round(Q.v/K);b=!0}P.buffer=c.F(P.rect.X()*4);if(!b)c.hL(T.Ne[0],P.buffer)}P.add.SoLd={classID:"null",Idnt:{t:"TEXT",v:z},Impr:{t:"Objc",v:{__name:"None",classID:"none"}},placed:{t:"TEXT",v:k},PgNm:{t:"long",v:1},totalPages:{t:"long",v:1},frameStep:{t:"Objc",v:{classID:"null",numerator:{t:"long",v:0},denominator:{t:"long",v:600}}},duration:{t:"Objc",v:{classID:"null",numerator:{t:"long",v:0},denominator:{t:"long",v:600}}},frameCount:{t:"long",v:1},Annt:{t:"long",v:16},Type:{t:"long",v:2},Trnf:null,nonAffineTransform:null,warp:{t:"Objc",v:c.h2.F(P.rect)},Sz:{t:"Objc",v:{classID:"Pnt",Wdth:{t:"doub",v:P.rect.d},Hght:{t:"doub",v:P.rect.v}}},Rslt:{t:"UntF",v:{type:"#Rsl",val:72}}}; +var h=c.a.kG(P.rect).c;P.add.SoLd.Trnf=W.o.M4(h);P.add.SoLd.nonAffineTransform=W.o.M4(h);if(b)P.RM(this,!1); +return P};b7.prototype.E0=function(L){if(L!=null){this.s();this.nU(L);var C=this.buffer;if(t.i8)this.kl.get(C); +else C=C.slice(0);this.s();this.nU();return C}if(this.nZ){this.nU();this.nZ=null}if(t.i8&&this.lq){this.kl.get(this.buffer); +this.lq=null;this.dD=!0}return this.buffer};b7.prototype.uI=function(){for(var H=0;H");C.add.lsct=fI.ya;C.bP=24; +return C};b7.prototype.lH=function(){return this.xC!=this.pI};b7.prototype.Sv=function(L){while(this.history.length>this.xC+1)this.history.pop(); +if(this.pI>this.xC)this.pI=-1;if(L.m.id!=W.tl){this.k$=!0;if(this.Tv.lastAppliedComp){delete this.Tv.lastAppliedComp; +this.dD=!0}}this.history.push(L);this.xC++;this.dD=!0;var C=cN.ez()?60:30,U=0;for(var H=this.history.length-1; +H>=0;H--){var E=this.history[H];if(E.d2)continue;U++;if(U==C){this.xC-=H;this.history=this.history.slice(H); +break}}};b7.prototype.bQ=function(){if(this.xC!=this.history.length-1)return null;return this.history[this.history.length-1]}; +b7.prototype.p9=function(L,C,U,E){if(L==null)L=!1;var Y=C!=null?[C]:this.C.slice(0);if(E){var z=[];for(var H=0; +H2){var Y=E.Jd[0];Y.Oi=-1; +C.push(Y);if(E.j5.indexOf(0)!=-1)U.push(C.length-1)}var r=E.cE==null;if(r)E.cE=[];for(var H=E.C.length-1; +H>=0;H--){var p=E.N[E.C[H]],T=p.add.TySh;if(p.add.vmsk!=null&&(p.hI||p.G_())){var Y=b7.YE("\""+p.getName()+"\" Shape Path",p.add); +Y.Oi=E.C[H];C.push(Y);if(r)E.cE.push(z);if(E.cE.indexOf(z)!=-1)U.push(C.length-1);z++}if(L!=!0&&T&&T.add&&c.h2.D3(T.DN)){var Y=b7.YE("\""+p.getName().slice(0,10)+"..\" Text Path",T.add); +Y.Oi=1e6+E.C[H];C.push(Y);U.push(C.length-1);z++}}if(U.length==0&&L){E.Jd[0].Oi=-1;E.j5=[0];U.push(C.length); +C.push(E.Jd[0])}return[C,U]};b7.prototype.a1=function(H,L){var C=[],u=this.root.cW(H);if(u)u.Bx(C,L); +return C};b7.prototype.C8=function(){this.root.BU(this,new _(0,0,this.d,this.v),32)};b7.prototype.o2=function(L){for(var H=0; +H1e3){var C=this.root.children; +for(var H=0;H>>8&255)<<8|P>>>16;T.rect=new _(0,0,U,E);T.buffer=c.F(U*E*4); +c.n0(T.buffer,{Wht:4294967295,BckC:255<<24|P}[k])}p.buffer=c.F(U*E*4);return p};function ad(L){this._u=L; +this.S=0;this.Uu=1;this.g=new hZ(0,0);this.II=new hZ(0,0);this.NN=0;this.NT=[1,1,1];this.e4=new _(0,0,1,1); +this.aal=new _(0,0,L.d,L.v);this.d0=null;this.Gr=null;this.YB=new Uint32Array(0);this.lQ=null;this.GU=null; +this.Ir=c.F(0);this.uF=null;this.Bh=null}ad.prototype.WF=function(L){var C=new c0,U=this.e4,E=this._u,Y=L?this.Uu:this.S,z=L?this.II:this.g,r=Math.round((U.d-E.d*Y)/2+z.x),p=Math.round((U.v-E.v*Y)/2+z.y); +C.translate(-r,-p);C.scale(1/Y,1/Y);var T=E.d/2,k=E.v/2;C.translate(-T,-k);C.rotate(this.NN);C.translate(T,k); +return C};ad.prototype.O0=function(L){var C=this.e4,U=this._u,E=Math.atan2(-L.O,L.R),Y=U.d/2,z=U.v/2; +L.translate(-Y,-z);L.rotate(-E);L.translate(Y,z);var r=1/L.ia();L.scale(r,r);var p=-L.Yt,T=-L.rv,k=Math.round(p-(C.d-U.d*r)/2),P=Math.round(T-(C.v-U.v*r)/2); +if(Math.abs(r-Math.round(r))<1e-6)r=Math.round(r);this.NN=E;this.S=r;this.g=new hZ(k,P)};ad.prototype.sQ=function(L,C){var U=this.WF(); +return U.Om(new hZ(L,C))};ad.prototype.Q6=function(L,C){var U=this.WF();U.G$();return U.Om(new hZ(L,C))}; +function gM(){}gM.order="ebbl FrFX IrSh IrGl ChFX SoFi GrFl patternFill OrGl DrSh".split(" ");gM.cp="ebblMulti frameFXMulti innerShadowMulti IrGlMulti ChFXMulti solidFillMulti gradientFillMulti patternFillMulti OrGlMulti dropShadowMulti".split(" "); +gM.names=[[14,4],[14,9],[14,1],[14,3],[14,8],[14,5],[14,6],[14,7],[14,2],[14,0]];gM.EE=["DrSh","IrSh","SoFi","GrFl","FrFX"]; +gM.TL=["Clr"];gM.DV="Grad Rvrs Type Algn Angl Dthr Scl Ofst".split(" ");gM.ex=["Ptrn","Scl","Algn","phase"]; +gM.SH={J0:"{\"t\":\"Objc\",\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}}}",Sn:"{\"t\":\"Objc\",\"v\":{\"classID\":\"Grdn\",\"Nm\":{\"v\":\"Two Color\",\"t\":\"TEXT\"},\"GrdF\":{\"v\":{\"GrdF\":\"CstS\"},\"t\":\"enum\"},\"Intr\":{\"v\":4096,\"t\":\"doub\"},\"Clrs\":{\"v\":[{\"v\":{\"classID\":\"Clrt\",\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"Type\":{\"v\":{\"Clry\":\"UsrS\"},\"t\":\"enum\"},\"Lctn\":{\"v\":0,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"Clrt\",\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":255,\"t\":\"doub\"},\"Bl\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"},\"Type\":{\"v\":{\"Clry\":\"UsrS\"},\"t\":\"enum\"},\"Lctn\":{\"v\":4096,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"},\"Trns\":{\"v\":[{\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Lctn\":{\"v\":0,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Lctn\":{\"v\":4096,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}}}",no:"{\"t\":\"Objc\",\"v\":{\"classID\":\"Grdn\",\"Nm\":{\"v\":\"Foreground to Background\",\"t\":\"TEXT\"},\"GrdF\":{\"t\":\"enum\",\"v\":{\"GrdF\":\"CstS\"}},\"Intr\":{\"t\":\"doub\",\"v\":4096},\"Clrs\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"Clrt\",\"Type\":{\"t\":\"enum\",\"v\":{\"Clry\":\"FrgC\"}},\"Lctn\":{\"t\":\"long\",\"v\":0},\"Mdpn\":{\"t\":\"long\",\"v\":50}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"Clrt\",\"Type\":{\"t\":\"enum\",\"v\":{\"Clry\":\"BckC\"}},\"Lctn\":{\"t\":\"long\",\"v\":4096},\"Mdpn\":{\"t\":\"long\",\"v\":50}}}]},\"Trns\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"Lctn\":{\"t\":\"long\",\"v\":0},\"Mdpn\":{\"t\":\"long\",\"v\":50}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"Lctn\":{\"t\":\"long\",\"v\":4096},\"Mdpn\":{\"t\":\"long\",\"v\":50}}}]}}}",HI:"{\"t\":\"Objc\",\"v\":{\"classID\":\"Ptrn\",\"Nm\":{\"v\":\"orangeslices\",\"t\":\"TEXT\"},\"Idnt\":{\"v\":\"c7acb22a-47a6-11de-919a-bf574370eaaf\",\"t\":\"TEXT\"}}}"}; +gM.SH.J0="\"Clr\": "+gM.SH.J0;gM.SH.W="\"Grad\":"+gM.SH.Sn+",\"Rvrs\":{\"v\":false,\"t\":\"bool\"},\"Type\":{\"v\":{\"GrdT\":\"Lnr\"},\"t\":\"enum\"},\"Algn\":{\"v\":true,\"t\":\"bool\"},\"Angl\":{\"v\":{\"type\":\"#Ang\",\"val\":90},\"t\":\"UntF\"},\"Scl\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Ofst\":{\"v\":{\"classID\":\"Pnt\",\"Hrzn\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"Vrtc\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"}},\"t\":\"Objc\"},\"Dthr\":{\"v\":false,\"t\":\"bool\"}"; +gM.SH.HI="\"Ptrn\":"+gM.SH.HI+",\"Scl\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Algn\":{\"v\":true,\"t\":\"bool\"},\"phase\":{\"v\":{\"classID\":\"Pnt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"}"; +gM.default="{ \"classID\": \"null\", \"Scl\": {\"t\": \"UntF\", \"v\": { \"type\": \"#Prc\",\"val\": 100} }, \"masterFXSwitch\": {\"t\": \"bool\",\"v\": true} }"; +gM.Lq=["{\"classID\":\"ebbl\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"hglM\":{\"t\":\"enum\",\"v\":{\"BlnM\":\"Scrn\"}},\"hglC\":{\"t\":\"Objc\",\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"t\":\"doub\",\"v\":255},\"Grn\":{\"t\":\"doub\",\"v\":255},\"Bl\":{\"t\":\"doub\",\"v\":255}}},\"hglO\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":75}},\"sdwM\":{\"t\":\"enum\",\"v\":{\"BlnM\":\"Mltp\"}},\"sdwC\":{\"t\":\"Objc\",\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"t\":\"doub\",\"v\":0},\"Grn\":{\"t\":\"doub\",\"v\":0},\"Bl\":{\"t\":\"doub\",\"v\":0}}},\"sdwO\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":75}},\"bvlT\":{\"t\":\"enum\",\"v\":{\"bvlT\":\"SfBL\"}},\"bvlS\":{\"t\":\"enum\",\"v\":{\"BESl\":\"InrB\"}},\"uglg\":{\"t\":\"bool\",\"v\":true},\"lagl\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Ang\",\"val\":120}},\"Lald\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Ang\",\"val\":30}},\"srgR\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"blur\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Pxl\",\"val\":5}},\"bvlD\":{\"t\":\"enum\",\"v\":{\"BESs\":\"In\"}},\"TrnS\":{\"t\":\"Objc\",\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"Linear\"},\"Crv\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":0},\"Vrtc\":{\"t\":\"doub\",\"v\":0}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":255},\"Vrtc\":{\"t\":\"doub\",\"v\":255}}}]}}},\"antialiasGloss\":{\"t\":\"bool\",\"v\":false},\"Sftn\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Pxl\",\"val\":0}},\"useShape\":{\"t\":\"bool\",\"v\":false},\"MpgS\":{\"t\":\"Objc\",\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"Linear\"},\"Crv\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":0},\"Vrtc\":{\"t\":\"doub\",\"v\":0}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":255},\"Vrtc\":{\"t\":\"doub\",\"v\":255}}}]}}},\"AntA\":{\"t\":\"bool\",\"v\":false},\"Inpr\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":28}},\"useTexture\":{\"t\":\"bool\",\"v\":false},\"InvT\":{\"t\":\"bool\",\"v\":false},\"Algn\":{\"t\":\"bool\",\"v\":true},\"Scl\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"textureDepth\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"Ptrn\":{\"t\":\"Objc\",\"v\":{\"classID\":\"Ptrn\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"orangeslices\"},\"Idnt\":{\"t\":\"TEXT\",\"v\":\"c7acb22a-47a6-11de-919a-bf574370eaaf\"}}},\"phase\":{\"t\":\"Objc\",\"v\":{\"classID\":\"Pnt\",\"Hrzn\":{\"t\":\"doub\",\"v\":0},\"Vrtc\":{\"t\":\"doub\",\"v\":0}}}}","{\"classID\":\"FrFX\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Styl\":{\"v\":{\"FStl\":\"OutF\"},\"t\":\"enum\"},\"PntT\":{\"v\":{\"FrFl\":\"SClr\"},\"t\":\"enum\"},\"Sz\":{\"v\":{\"type\":\"#Pxl\",\"val\":3},\"t\":\"UntF\"},"+gM.SH.J0+","+gM.SH.W+","+gM.SH.HI+"}","{\"classID\":\"IrSh\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Mltp\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 75},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"uglg\":{\"v\":true,\"t\":\"bool\"},\"lagl\":{\"v\":{\"type\":\"#Ang\",\"val\":120},\"t\":\"UntF\"},\"Dstn\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Linear\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"}}","{\"classID\":\"IrGl\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Scrn\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 75},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":255,\"t\":\"doub\"},\"Bl\":{\"v\":189.99710083007812,\"t\":\"doub\"}},\"t\":\"Objc\"},\"GlwT\":{\"v\":{\"BETE\":\"SfBL\"},\"t\":\"enum\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"ShdN\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"glwS\":{\"v\":{\"IGSr\":\"SrcE\"},\"t\":\"enum\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Linear\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"},\"Inpr\":{\"v\":{\"type\":\"#Prc\",\"val\":50},\"t\":\"UntF\"}}","{\"classID\":\"ChFX\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Mltp\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 50},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"Invr\":{\"v\":true,\"t\":\"bool\"},\"lagl\":{\"v\":{\"type\":\"#Ang\",\"val\":19},\"t\":\"UntF\"},\"Dstn\":{\"v\":{\"type\":\"#Pxl\",\"val\":11},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":14},\"t\":\"UntF\"},\"MpgS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Gaussian\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":32,\"t\":\"doub\"},\"Vrtc\":{\"v\":7,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":64,\"t\":\"doub\"},\"Vrtc\":{\"v\":38,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":96,\"t\":\"doub\"},\"Vrtc\":{\"v\":101,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":128,\"t\":\"doub\"},\"Vrtc\":{\"v\":166,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":159,\"t\":\"doub\"},\"Vrtc\":{\"v\":209,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":191,\"t\":\"doub\"},\"Vrtc\":{\"v\":235,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":223,\"t\":\"doub\"},\"Vrtc\":{\"v\":248,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"}}","{\"classID\":\"SoFi\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},"+gM.SH.J0+"}","{\"classID\":\"GrFl\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},"+gM.SH.W+"}","{\"classID\":\"patternFill\",\"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},"+gM.SH.HI+"}","{\"classID\":\"OrGl\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Scrn\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 75},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":255,\"t\":\"doub\"},\"Bl\":{\"v\":189.99710083007812,\"t\":\"doub\"}},\"t\":\"Objc\"},\"GlwT\":{\"v\":{\"BETE\":\"SfBL\"},\"t\":\"enum\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"ShdN\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Linear\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"},\"Inpr\":{\"v\":{\"type\":\"#Prc\",\"val\":50},\"t\":\"UntF\"}}","{\"classID\":\"DrSh\", \"enab\":{\"v\":true,\"t\":\"bool\"}, \"Md\":{\"v\":{\"BlnM\":\"Mltp\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 57},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"uglg\":{\"v\":true,\"t\":\"bool\"},\"lagl\":{\"v\":{\"type\":\"#Ang\",\"val\":120},\"t\":\"UntF\"},\"Dstn\":{\"v\":{\"type\":\"#Pxl\",\"val\":27},\"t\":\"UntF\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":13},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Line\xE1rn\xED\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"},\"layerConceals\":{\"v\":true,\"t\":\"bool\"}}"]; +gM.W={types:"Lnr Rdl Angl Rflc Dmnd shapeburst".split(" "),names:[[19,0,0],[19,0,1],[19,0,2],[19,0,3],[19,0,4],[19,0,5]]}; +gM.stroke={types:["InsF","CtrF","OutF"],names:[[19,5,2],[19,5,1],[19,5,0]],Ug:["SClr","GrFl","Ptrn"],agr:[[13,0],[12,37],[12,62]]}; +gM.gK={types:["SfBL","PrBL"],names:[[19,1,0],[19,1,1]],KQ:["SrcC","SrcE"],ahy:[[19,5,1],[12,69]]};gM.y6={types:["OtrB","InrB","Embs","PlEb","strokeEmboss"],style:[[19,2,0],[19,2,1],[19,2,2],[19,2,3],[19,2,4]],VT:["SfBL","PrBL","Slmt"],aoc:[[19,3,0],[19,3,1],[19,3,2]],dir:[[19,4,0],[19,4,1]]}; +gM.H0={h9:["strokeStyleButtCap","strokeStyleRoundCap","strokeStyleSquareCap"],jr:["strokeStyleAlignInside","strokeStyleAlignCenter","strokeStyleAlignOutside"],join:["strokeStyleMiterJoin","strokeStyleRoundJoin","strokeStyleBevelJoin"],g0:["solidColorLayer","gradientLayer","patternLayer"],default:{classID:"strokeStyle",strokeStyleVersion:{t:"long",v:2},strokeEnabled:{t:"bool",v:!1},fillEnabled:{t:"bool",v:!0},strokeStyleLineWidth:{t:"UntF",v:{type:"#Pnt",val:4.38}},strokeStyleLineDashOffset:{t:"UntF",v:{type:"#Pnt",val:0}},strokeStyleMiterLimit:{t:"doub",v:100},strokeStyleLineCapType:{t:"enum",v:{strokeStyleLineCapType:"strokeStyleButtCap"}},strokeStyleLineJoinType:{t:"enum",v:{strokeStyleLineJoinType:"strokeStyleMiterJoin"}},strokeStyleLineAlignment:{t:"enum",v:{strokeStyleLineAlignment:"strokeStyleAlignCenter"}},strokeStyleScaleLock:{t:"bool",v:!1},strokeStyleStrokeAdjust:{t:"bool",v:!1},strokeStyleLineDashSet:{t:"VlLs",v:[]},strokeStyleBlendMode:{t:"enum",v:{BlnM:"Nrml"}},strokeStyleOpacity:{t:"UntF",v:{type:"#Prc",val:100}},strokeStyleContent:{t:"Objc",v:JSON.parse("{\"classID\":\"solidColorLayer\","+gM.SH.J0+"}")},strokeStyleResolution:{t:"doub",v:72}}}; +gM.bK=[{classID:"null",Clr:JSON.parse(gM.Lq[5]).Clr},{classID:"null",Grad:JSON.parse(gM.Lq[6]).Grad,Dthr:{t:"bool",v:!1},Rvrs:{t:"bool",v:!1},Angl:{t:"UntF",v:{type:"#Ang",val:60}},Type:{t:"enum",v:{GrdT:"Lnr"}},Algn:{t:"bool",v:!0},Scl:{t:"UntF",v:{type:"#Prc",val:100}},Ofst:{t:"Objc",v:{classID:"Pnt",Hrzn:{t:"UntF",v:{type:"#Prc",val:0}},Vrtc:{t:"UntF",v:{type:"#Prc",val:0}}}}},{classID:"null",Ptrn:JSON.parse(gM.Lq[7]).Ptrn,Algn:{v:!0,t:"bool"},Scl:{v:{type:"#Prc",val:100},t:"UntF"},phase:{v:{classID:"Pnt",Hrzn:{v:0,t:"doub"},Vrtc:{v:0,t:"doub"}},t:"Objc"}}]; +var ca={};ca.afn=function(L,C,U){if(L.ue())return;var E=c.Y.adG(L.n);E.x=Math.floor(E.x*C);E.d=Math.ceil(E.d*C); +E.y=Math.floor(E.y*U);E.v=Math.ceil(E.v*U);L.rect=E;L.channel=c.F(E.X());c.Vb.width=E.d;c.Vb.height=E.v; +var Y=c.e4;Y.fillStyle="#ffffff";c.Y.a3J(Y,L.n,C,U,-E.x,-E.y);Y.fill();var z=Y.getImageData(0,0,E.d,E.v).data; +c.wH(z,L.channel,3)};ca.R4=function(L,C){function U(L,Q){if(L==null)return null;var K=L[Q].v,h;if(K.length!=0){h=K[0].v; +if(!h.enab.v)h=null}return h}var E=C.SoCo,Y=C.GdFl,z=U(L,"solidFillMulti"),r=U(L,"gradientFillMulti"); +if(z==null&&r==null)return[E,Y];var p=ca.a8a;if(E&&z&&r==null){var T=JSON.parse(JSON.stringify(E));T.Clr.v=p(z.Clr.v,E.Clr.v,z); +return[T,null]}if(Y&&z&&r==null){var k=JSON.parse(JSON.stringify(Y)),P=k.Grad.v.Clrs.v;for(var H=0;H0&&Q.blur.v.val>0)r=Math.max(r,Math.ceil(Q.Ckmt.v.val*Q.blur.v.val/100)); +if(T=="OrGl"&&Q.enab.v&&Q.Ckmt.v.val>0&&Q.blur.v.val>0&&Q.GlwT.v.BETE=="SfBL")r=Math.max(r,Math.ceil(Q.Ckmt.v.val*Q.blur.v.val/100)); +if(T=="OrGl"&&Q.enab.v&&Q.blur.v.val>0&&Q.GlwT.v.BETE=="PrBL")r=Math.max(r,Q.blur.v.val);if(T=="FrFX"&&Q.enab.v&&Q.Sz.v.val>0){if(Q.Styl.v.FStl=="OutF")r=Math.max(r,Q.Sz.v.val); +if(Q.Styl.v.FStl=="CtrF")r=Math.max(r,Math.ceil(Q.Sz.v.val/2));p=Math.max(p,ca.AA(Q)[1])}}}var K=new ca.wN(U,E,r,ca.bJ(L)),h=-E.x,x=-E.y,O={type:{},all:[]}; +for(var y=0;y=0;v--){var i=L[k].v[v].v;if(!i.enab.v)continue;var D=i.blur?i.blur.v.val:0,I=i.Ckmt?i.Ckmt.v.val/100:0,m=D*I; +if(T=="DrSh"){var f=K.Wa(m,D-m,!0),A=f.eI,d=f._;d.offset(h,x);ca.kv(A,i,!1);ca.lv(d,i,Y,0);var g=c.F(d.X()*4); +ca.Bm(g,i.Clr.v);c.Wn(A,g,3);var X={eB:g,T2:d,g_:gz.Sh(i.Md.v.BlnM),Ks:i.Opct.v.val/100,a4Z:i.layerConceals.v}; +O.type[T].push(X);O.all.push(X)}if(T=="IrSh"){var f=K.Wa(m,D-m,!1);ca.lv(f._,i,Y,0);var d=K.rect().clone(),A=c.F(d.X()); +A.fill(255);c.zM(f.eI,f._,A,d);ca.kv(A,i,!0);var g=c.F(d.X()*4);ca.Bm(g,i.Clr.v);c.Wn(A,g,3);d.offset(h,x); +var X={eB:g,T2:d,g_:gz.Sh(i.Md.v.BlnM),Ks:i.Opct.v.val/100};O.type[T].push(X);O.all.push(X)}if(T=="GrFl"){var g=c.F(K.rect().X()*4); +ca.WN(i,g,K.rect(),Y,null,z);var d=K.rect().clone();d.offset(h,x);var X={eB:g,T2:d,g_:gz.Sh(i.Md.v.BlnM),Ks:i.Opct.v.val/100}; +O.type[T].push(X);O.all.push(X)}if(T=="SoFi"){var g=c.F(K.eI().length*4);ca.Bm(g,i.Clr.v);var d=K.rect().clone(); +d.offset(h,x);var X={eB:g,T2:d,g_:gz.Sh(i.Md.v.BlnM),Ks:i.Opct.v.val/100};O.type[T].push(X);O.all.push(X)}if(T=="ebbl"){var n=!1; +if(n)console.log(i);var R=Date.now(),l=i.bvlS.v.BESl;if(l=="strokeEmboss"){var w=L.frameFXMulti.v;if(w.length==0)continue; +w=w[0].v;if(!w.enab.v)continue;var V=w.Styl.v.FStl;if(V=="OutF")l="OtrB";if(V=="CtrF")l="Embs";if(V=="InsF")l="InrB"}var D=i.blur.v.val; +if(D==0)D=.7;if(l=="Embs"||l=="PlEb")D/=2;var F=["OtrB","InrB","Embs","PlEb","strokeEmboss"],Z=["SfBL","PrBL","Slmt"],M=["In","Out"],a=i.bvlT.v.bvlT!="SfBL"?D:D*.45,e=Math.round(D),N=K.rect().clone(),J=N.clone(); +J.WW(e,e);var s=J.d,f5=J.v,dx=s*f5,fq=c.F(dx);c.zM(K.eI(),N,fq,J);var i9=new Float64Array(dx),S=new Float64Array(dx); +c.style.i3(fq,i9,s,f5);c.G$(fq);c.style.i3(fq,S,s,f5);if(n)console.log("distTransform computed",Date.now()-R); +for(var H=0;Ha)S[H]=a}if(n)console.log("summing + cropping",Date.now()-R); +if(i.bvlT.v.bvlT=="SfBL"){var bz=Math.pow(D*.21,1.22);if(!0)bz=Math.max(bz,2);var g6=c.qM.r2(bz,2);c.qM.Ov(S,i9,J,g6[0]>>>1); +c.qM.Ov(i9,S,J,g6[1]>>>1)}if(n)console.log("blurring",Date.now()-R);var al=S,bj=al.slice(0);if(i.useShape.v){var bE=Math.min(100,i.Inpr.v.val+1)/100; +if(l!="OtrB"&&l!="InrB")bE=1;var eN=c.Nn.Sx(i.MpgS.v.Crv.v,2e3),dk=Math.round(2e3/bE);eN=c.Nn.am0(eN,dk,l=="InrB"); +var hj=.5/a;for(var H=0;H0)hS[H]=dB;if(bp>0)eF[H]=bp}if(n)console.log("raycasting",Date.now()-R); +if(i.Sftn.v.val!=0){c.qM.U_(hS,i9,J,i.Sftn.v.val*.43);var ai=i9,i9=hS,hS=ai;if(bQ){c.qM.U_(eF,i9,J,i.Sftn.v.val*.43); +var ai=i9,i9=eF,eF=ai}else c.hL(hS,eF)}if(n)console.log("softening",Date.now()-R);var eN=c.Nn.Sx(i.TrnS.v.Crv.v,1024); +for(var H=0;H0){var f=K.Wa(gh,0,!0);hE=f.eI;if(hE.length0){var f=K.Wa(fJ,0,!1);aM=c.F(d.X());aM.fill(255);c.zM(f.eI,f._,aM,d)}d.offset(h,x); +var g=c.F(d.X()*4),ep=i.PntT.v.FrFl;if(ep=="SClr")ca.Bm(g,i.Clr.v);if(ep=="GrFl")ca.WN(i,g,d,Y,K.a2U(fJ,gh)); +if(ep=="Ptrn")ca.k3(i,g,d,Y,C);var X={eB:g,T2:d,g_:gz.Sh(i.Md.v.BlnM),Ks:i.Opct.v.val/100,$N:hE,N$:aM}; +O.type[T].push(X);O.all.push(X)}}}return O};ca.ds=function(L){var C=1/Math.sqrt(L.x*L.x+L.y*L.y+L.jF*L.jF); +L.x*=C;L.y*=C;L.jF*=C};ca.$z=function(L,C){return{x:L.y*C.jF-L.jF*C.y,y:L.jF*C.x-L.x*C.jF,jF:L.x*C.y-L.y*C.x}}; +ca.amf=function(L,C){return L.x*C.x+L.y*C.y+L.jF*C.jF};ca.Dx=function(L,C){var U=C.Nose.v.val/100;if(U>0)for(var H=0; +HY){var z=c.Nn._$(C.TrnS.v.Crv.v,256,!0);c.SV(L,z)}if(U!=null&&C.Nose.v.val>0)c.style.NK(L,C.Nose.v.val/100,U)}; +ca.Bm=function(L,C,U){if(U==null)U=255;var E=c.W.Lt(C),Y=U<<24|E.O<<16|E.P<<8|E.h,z=new Uint32Array(L.buffer); +z.fill(Y)};ca.lv=function(L,C,U,E){var Y=C.uglg&&C.uglg.v?U.b_():C.lagl.v.val;Y=Y*Math.PI/180+E;var z=Math.cos(Y)*C.Dstn.v.val,r=Math.sin(Y)*C.Dstn.v.val; +L.x-=Math.round(z);L.y+=Math.round(r)};ca.HS=function(L){if(L==null)return null;var C=L.frameFXMulti.v; +if(C.length==0)return null;C=C[0].v;var U=JSON.parse(JSON.stringify(gM.H0.default));ca.tF(C,U);return U}; +ca.tF=function(L,C){var U=gM.stroke.Ug.indexOf(L.PntT.v.FrFl),E=[gM.TL,gM.DV,gM.ex][U],Y=C.strokeStyleContent.v={classID:gM.H0.g0[U]}; +for(var H=0;H=6)this.DH(this.KN(Y))};iR.prototype._C=function(L){if(L==null)L=1;L=Math.max(.05,Math.min(5,L)); +if(isNaN(L)){alert("Pressure is not a number");throw"e"}return L};iR.prototype.DH=function(L){this.bl=L; +this.WR=this.WR.EU(L)};iR.prototype.finish=function(){var L=this.pd,C=L.length,U;if(C==4)U=this.Sl(L[C-2],L[C-1],this.TX[(C>>1)-1],!0); +if(C>4)U=this.KN(C+2);if(U)this.DH(U)};iR.prototype.KN=function(L){var C=this.pd,U=this.TX,E=C[L-6],Y=C[L-5],z=C[L-4],r=C[L-3],p=U[(L>>1)-3],T=U[(L>>1)-2],k=new hZ(0,0),P=new hZ(0,0); +if(8<=L)k=iR.XY(C[L-8],C[L-7],E,Y,z,r);if(L<=C.length)P=iR.XY(C[L-2],C[L-1],z,r,E,Y);var b=E+k.x,Q=Y+k.y,K=z+P.x,h=r+P.y,x=new _; +for(var H=0;H<10;H++){var O=(H+1)*.1,y=1-O,v=y*y*y*E+3*O*y*y*b+3*O*O*y*K+O*O*O*z,i=y*y*y*Y+3*O*y*y*Q+3*O*O*y*h+O*O*O*r,D=this.Sl(v,i,p+O*(T-p)); +x=x.EU(D)}return x};iR.XY=function(L,C,U,E,Y,z){var r=L-U,p=C-E,T=Y-U,k=z-E,P=Math.sqrt(r*r+p*p),b=Math.sqrt(T*T+k*k),Q=Math.acos((r*T+p*k)/(P*b))/Math.PI,K=.35,h=.1; +Q=h+Q*(K-h);var x=Y-L,O=z-C,y=Math.sqrt(x*x+O*O),v=Q*b/y;return new hZ(x*v,O*v)};iR.prototype.Sl=function(L,C,U,E){var Y=new _,z=this.F$.akp; +if(z==null)z=0;if(z==0||E){Y=this.nc(L,C,U);return Y}var r=this.vv,p=L-r.x,T=C-r.y,k=Math.sqrt(p*p+T*T); +p/=k;T/=k;if(k>z){var P=r.x+p*(k-z),b=r.y+T*(k-z);Y=this.nc(P,b,U);this.vv.U6(P,b)}return Y};iR.prototype.nc=function(L,C,U){var E=new _,Y=new hZ(L,C),z=this.O.Brsh.v.Dmtr.v.val,r=this.F$.mf,p=Y.AE(this.a2); +p.normalize(1);var T=hZ.sl(this.a2,Y),k=-this.aj4,P=this.a2.clone(),b=this.F$.Lj;while(!0){var Q=this.FP+(U-this.FP)*(Math.max(0,k)/T),K=this.I0()*(b[1]?Q:1),h=this.ahO()*(K+this.af4)/2; +if(r==iR.gh)h=1;if(k+h0?1:-1;var y=P.clone();y.y+=p.y>0?1:-1;if(hZ.sl(O,x)1)p.uR=1-(p.uR-1);p.oe=p.oe+r;if(p.oe<0)p.oe=-p.oe; +if(p.oe>1)p.oe=1-(p.oe-1);C=c.D5(p.fg,p.uR,p.oe)}return C};iR.prototype.ds=function(L){return Math.max(0,Math.min(1,L))}; +iR.prototype.AH=function(){this._B++;return iR.hash(this._B)};iR.aO=function(L){return{h:(L>>16&255)/255,P:(L>>8&255)/255,O:(L>>0&255)/255}}; +iR.hash=function(L){L=L^61^L>>16;L=L+(L<<3);L=L^L>>4;L=L*668265261;L=L^L>>15;return(L&16777215)/16777215}; +iR.gR=[];iR.ahb=function(L,u){var C=L.ia(),U=u.ia();if(C2500){z=p; +break}}var T=Math.round(this.O.Brsh.v.Dmtr.v.val);if(z){z.rect.x=Math.round(z.TU.x-z.PR.Yt+L.Yt);z.rect.y=Math.round(z.TU.y-z.PR.rv+L.rv); +if(Y){z.rect.x=Math.round(C.x-z.rect.d/2);z.rect.y=Math.round(C.y-z.rect.v/2)}z.nC=Date.now()}else{var k; +if(Y&&T<=3){k={buffer:c.F(T*T*4),rect:new _(Math.round(C.x-T/2),Math.round(C.y-T/2),T,T)};c.n0(k.buffer,4278190080)}else if(L.R==1&&L.O==0&&L.Z9==0&&L.J2==1){k={buffer:this.gX.p_,rect:this.gX.V_.clone()}; +k.rect.x=Math.round(L.Yt);k.rect.y=Math.round(L.rv)}else k=W.o.dy([this.gX.p_,this.gX.V_],L);if(Y){for(var H=0; +H127?255:0}if(k==null)k={buffer:c.F(0),rect:new _};var P=L.Yt-Math.floor(L.Yt),b=L.rv-Math.floor(L.rv); +z={p_:k.buffer,lm:c.F(k.rect.X()),rect:k.rect,TU:k.rect.clone(),PR:L,v3:iR.qZ(L.Yt,L.rv),nC:Date.now()}; +c.wH(z.p_,z.lm,3);E.push(z);U.X+=k.rect.X();if(E.length>2e3||U.X>100*100*400){console.log("pruning",U.X,E.length); +E.sort(function(K,h){return h.nC-K.nC});while(E.length>1e3||U.X>100*100*200){var Q=E.pop();U.X-=Q.rect.X()}}}U.GX=E; +U.nC=Date.now();iR.gR.push(U);iR.gR.sort(function(K,h){return h.nC-K.nC});while(iR.gR.length>3)iR.gR.pop(); +return z};iR.qZ=function(L,C){return new hZ(L-Math.floor(L),C-Math.floor(C))};iR.agc=function(L,C){var U=C.x,E=C.y,Y=Math.abs(U-L.x),z=Math.abs(E-L.y); +if(Math.abs(U-1-L.x)>>1)+1); +for(var H=0;Hr*2){var F=new _(Y.x,Y.y,Math.floor(Y.d/2),Math.floor(Y.v/2)),Z=W.o.dy([E,Y],new c0(F.d/Y.d,0,0,F.v/Y.v,0,0)); +z*=F.d/Y.d;Y=Z.rect;E=Z.buffer}return{a9N:z,V_:Y,p_:E}};iR.iU=[];iR.IG=function(L){if(iR.iU[L])return iR.iU[L]; +var C=Math.pow(L,.55),U=new Float64Array(8e3),E=0,Y=8e3;for(var H=0;H<8e3;H++){var z=iR.aiu(H*(1.55/4e3),C); +if(z>=1)E=H;else if(z<=0&&Y==8e3)Y=H;U[H]=z}var r=[U,E,Y];iR.iU[L]=r;return r};iR.aiu=function(L,C){var U=Lb||m>Q)&&i[f+2]){f+=2;D=i[f];I=i[f+1].d;m=i[f+1].v}if(I*m!=0){var A=c.F(I*m*4); +c.Wn(D,A,3);var d=new ImageData(new Uint8ClampedArray(A.buffer),I,m);p.putImageData(d,Math.round((b-I)/2),Math.round((Q-m)/2))}}else{}return r.toDataURL()}; +iR.zl=function(L,C,U,E){if(U==0)U=1;var Y=L.Brsh.v,z=Y.Dmtr.v.val,r=Y.Dmtr.v.val=Math.min(E!=null?Math.round(E*2.6):3e3,z*U),p=Y.Hrdn?Y.Hrdn.v.val/100:1,T=E!=null?E:Math.round(r*(1+.55*(1-p)))+4,b; +T=Math.max(15,Math.min(T,3e3));var k=new _(0,0,T,T),P=new iR(L,C,null,{u8:1},16711712,0,k);Y.Dmtr.v.val=z; +P.moveTo(k.d/2,k.v/2);var Q=P.fS(),K=P.dm();if(k.cg(K))b=Q;else{b=c.F(k.X()*4);c.La(Q,K,b,k)}return[b,k,r]}; +iR.J$=function(L,C,U,E){var Y=iR.zl(L,C,U),z=Y[0].slice(0),r=Y[1],p=Y[2],T=r.X(),k=c.F(T);c.wH(z,k,3); +var P=c.F(T);c.t.a82(k,P,r);if(p<3||c.eQ(P,0)||E&&p>12){var b=r.d,Q=b>>>1,K=P,h=255;for(var H=0;H<4; +H++){K[b*(Q-6+H)+Q]=h;K[b*Q+Q-6+H]=h;K[b*Q+Q+6-H]=h;K[b*(Q+6-H)+Q]=h}}var x=[1,2,1,2,8,2,1,2,1];x=c.N1.hx(x); +c.N1.C$(P,k,r.d,r.v,x);c.n0(z,4294967295);c.Wn(k,z,3);for(var H=0;H80?255:0;if(k==3)for(var H=0;H128?K:-1);if(k[h]==null){k[h]=1;if(C.y1(E[b].Name,K)==null)T=!1}}P+=z[H]}return T}; +bk.al3=function(L,C,U){var E=new c0;for(var H=0;H>>3,Y=L.TextOnPathTRange,z=L.Reversed,P=0,b=0; +if(z){var r=C.slice(0);for(var H=0;H>>3)+O)}P=v; +b=i}}var D=k.length,I=k[D-1],m=hX.pq(Y[0],T),f=hX.pq(Y[1]%E,T),A=k[m%D],d=k[f%D];if(A>=d)d+=I;return[p,T,k,I,A,d]}; +hX.pq=function(L,C){var H=0;while(C[H]65535)z--;return z}for(var O=0;OD+Q/2||A==1&&L.x65535?2:1; +return m}}}}}};hX.prototype.$U=function(L){var C={_:new _,O7:0},U=0;for(var E=0;Ez)z=r}if(z>1424)Y=hX.acO(E,C);return Y};hX.qj=function(L,C,U,E,Y,z,r){this.HR=[]; +this.D4=[];this.v3=new hZ(0,0);this.zY=null;this.HR=null;this.dY=b5.aeq(L,E);var p=this.dY,b=0,h="",i=0,D=1,e=0; +if(E!=0){var T=p.SpaceBefore;if(T!=null)z[0]+=T}var k=L.EngineDict.ParagraphRun.RunLengthArray,P=k[E]; +for(var H=0;H0&&V[F-1].Zy==x)F--; +U[b+d+x].Hr=A.length+(X?F:V.length-F-1)}for(var x=0;x>>1;for(var H=0;H=fq)i9=H;else if(i9!=-1&&f2&&(Z==6||!f5))this.ad4(i9,bz,M,al,Q,bj);else{var eN=bj;for(var H=i9; +H=L;H--)if(U[H].sq||U[H].EM)z-=U[H]._.d;else break;if(E==1)for(var H=L; +H=L;H--)if(U[H].sq||U[H].EM){if(U[H].sq){T--}}else break; +if(Y==1)for(var H=L;H>>2);z[O>>>2]=K==0?k:P;U.fribidi_get_bidi_types(x,h,y);U.fribidi_get_bracket_types(x,h,y,v); +U.fribidi_get_par_embedding_levels_ex(y,v,h,O,i);var D=Y.slice(i,i+h);U.free(x);return D};hX.ZT=2;var b=new q(B.E.l,!0); +b.data={e:B.U.MP,AW:"add",wm:c_.AO,mv:null};e3.OM.B(b)})}Typr.U.initHB("code/external/hb.wasm",L);return!1}; +function b5(){}b5.FA=function(L){return JSON.parse(JSON.stringify(L))};b5.qQ=function(L,C){for(var U in C)L[U]=C[U]}; +b5.Es=function(L,C,U){var E=b5.a6O();if(U)b5.Em(E,0,0,U);var Y={J:new c0(1,0,0,1,Math.round(L),Math.round(C)),Se:E}; +Y.Au=b5.vE();Y.DN=c.h2.F();Y.uv=new _;return Y};b5.tY=function(L){var C=["CharacterDirection",0];for(var H=0; +H=0?2:L.EngineDict.Rendered.Shapes.Children[0].ShapeType}; +b5.B$=function(L,C){var U=L.EngineDict.Rendered.Shapes.Children[0];U.ShapeType=C;var E=U.Cookie.Photoshop; +E.ShapeType=C;E.Base.ShapeType=C;if(C==0){delete E.BoxBounds;E.PointBase=[0,0]}if(C==1){delete E.PointBase; +E.BoxBounds=[0,0,1,1]}};b5.qi=function(L){return L.EngineDict.Rendered.Shapes.Children[0].Cookie.Photoshop.BoxBounds}; +b5.If=function(L,C){L.EngineDict.Rendered.Shapes.Children[0].Cookie.Photoshop.BoxBounds=C};b5.abv=function(L,C){return b5.aiU(L,b5.kx(L,C))}; +b5.kx=function(L,C){var U=L.EngineDict.StyleRun.RunLengthArray;return b5.RE(U,C).zq};b5.aiU=function(L,C){var U=L.ResourceDict.StyleSheetSet[0].StyleSheetData,E={}; +for(var Y in U)E[Y]=U[Y];var z=L.EngineDict.StyleRun.RunArray[C].StyleSheet.StyleSheetData;b5.qQ(E,z); +return E};b5.aeq=function(L,C){var U=L.ResourceDict.ParagraphSheetSet[0].Properties,E={};for(var Y in U)E[Y]=U[Y]; +var z=L.EngineDict.ParagraphRun.RunArray[C].ParagraphSheet.Properties;b5.qQ(E,z);var r=["StartIndent","EndIndent","FirstLineIndent"]; +for(var H=0;H<3;H++)if(E[r[H]]==null)E[r[H]]=0;return E};b5.X$=function(L,C,U){if(U=="")return;var E=b5.xY(L); +b5.tu(L,E.substring(0,C)+U+E.substring(C,E.length));var Y=L.EngineDict.StyleRun,z=Y.RunLengthArray,r=b5.RE(z,C-1); +z[r.zq]+=U.length;var p=L.EngineDict.ParagraphRun,z=p.RunLengthArray,T=b5.RE(z,C),k=U.split("\n");if(k.length==1){z[T.zq]+=U.length; +return}z.splice(T.zq+1,0,z[T.zq]-(C-T.wJ));p.RunArray.splice(T.zq+1,0,b5.FA(p.RunArray[T.zq]));z[T.zq]-=z[T.zq+1]; +z[T.zq]+=k[0].length+1;for(var H=1;H"},{_0:"i40",_1:"s\u201E",_2:"s\u201C",_3:"s\u201A",_4:"s\u2018"},{_0:"i41",_1:"s\xAB",_2:"s\xBB",_3:"s<",_4:"s>"},{_0:"i42",_1:"s\u201E",_2:"s\u201C",_3:"s\u201A",_4:"s\u2018"},{_0:"i43",_1:"s\u201C",_2:"s\u201D",_3:"s\u2018",_4:"s\u2019"},{_0:"i44",_1:"s\xAB",_2:"s\xBB",_3:"s\u2039",_4:"s\u203A"},{_0:"i45",_1:"s\u201C",_2:"s\u201D",_3:"s\u2018",_4:"s\u2019"}],_15:{_0:"sWinSoft"},_16:!1}; +var bD={};bD.a3K=function(L){return bD.SF(L,bD.kP)};bD.amB=function(L){return bD.tQ(L,bD.kP)};bD.SF=function(L,C){var U; +if(typeof L=="string")return L;if(L instanceof Array){U=[];for(var H=0;H0)p.push("border-radius: "+Math.round(P)+"px")}else if(r){var b=r.Se;if(b5.S8(b)==1){var k=b5.qi(b); +p.push("width: "+Math.round(k[2])+"px");p.push("height: "+Math.round(k[3])+"px")}CSS.ek(p,b5.L3(b,0,0),r.J,!1,!1,T[0])}var Q=[],K=z?z.dropShadowMulti.v:0; +for(var H=0;H>16&255,P:L>>8&255,O:L&255}};CSS.CZ=function(L,C){return CSS.ws(c.W.Lt(L),C)}; +CSS.ws=function(L,C){if(C==null)C=1;var U=Math.round(L.h),E=Math.round(L.P),Y=Math.round(L.O),z=U<<16|E<<8|Y; +return C==1?"#"+c.Xo(z):"rgba("+U+","+E+","+Y+","+C+")"};CSS.J5=function(L){var C=L.Grad.v;if(C.Clrs==null)return""; +var U=C.Clrs.v.slice(0),E=C.Trns.v.slice(0),Y=L.Ofst.v,z=L.Type.v.GrdT=="Rdl"?1:0,r=(z==1?"radial":"linear")+"-gradient",p=z==0?Math.round(-L.Angl.v.val+90)+"deg":"circle at center",T=L.Rvrs.v; +if(T){U.reverse();E.reverse()}for(var H=0;H")return L>C; +else if(U=="==")return L==C;else if(U=="<=")return L<=C;else if(U==">=")return L>=C;else if(U=="!=")return L!=C; +else if(U=="!==")return L!==C;else if(U=="<<")return L<>")return L>>C;else console.log(U)}; +aA.kM=function(L,C){if(C=="-")return-L;else if(C=="!")return!L;else if(C=="~")return~L;else if(C=="+")return L; +else console.log(obj)};aA.qq=function(L,C,U){var E=L.type;if(E=="Identifier")return aA.a8Y(L.name,C,U); +else return aA.eval(L,C,U)};aA.a8Y=function(L,C,U){if(L=="undefined")return undefined;else if(U.hasOwnProperty(L))return U[L]; +else if(L=="app")return{NT:"Application"};else if(L=="$")return{NT:"$"};else if(aA.tI.aix.indexOf(L)!=-1)return aA.tI.eM({NT:"Application"},L,C,U); +else if(window[L]&&!aA.LD[L])return window[L];else{U[L]=null;return null}};aA.tI={};aA.tI.ajr=function(L,C,U,E){var Y; +if(L=="SolidColor")Y={NT:L,G:[1,0,0,0]};if(L=="Window")Y={NT:L,G:new g3(C[0],C[1],C[2])};if(L=="ExportOptionsSaveForWeb")Y={NT:L,G:{Dl:"png",ae:100}}; +if(L=="JPEGSaveOptions")Y={NT:L,G:{Dl:"jpg",ae:100}};if(L=="File")Y={NT:L,G:C[0]};if(L=="ActionReference")Y={NT:L,G:[]}; +if(L=="ActionDescriptor")Y={NT:L,G:{}};if(L=="UnitValue")Y={NT:L,G:C.length==0?0:parseFloat(C[0])};return Y}; +aA.tI.aix="activeDocument documents fonts preferences displayDialogs foregroundColor backgroundColor".split(" "); +aA.tI.aof=["charIDToTypeID","stringIDToTypeID","executeAction","executeActionGet","doAction"];aA.tI.eM=function(L,C,U,E){var Y=U.U4,z=U.aD(); +if(!1){}else if(C=="typename"){if(L.NT=="Layer")return L.G.Jc()?"LayerSet":"ArtLayer";else return L.NT}else if(["Document","Layer"].indexOf(L.NT)!=-1&&["layers","artLayers","layerSets"].indexOf(C)!=-1){var r=z.root,p={NT:"Layers",Y1:C,G:[]}; +if(L.NT=="Layer")r=z.root.cW(z.N.indexOf(L.G));if(r.children==null)return null;for(var H=0;H>>16&255)/255,(P>>>8&255)/255,(P>>>0&255)/255]}}else if(C=="UI")return{NT:"UI"}; +else console.log(L,C)}else if(L.NT=="Document"){var z=L.G;if(!1){}else if(C=="activeLayer"){var T=z.N[z.C[0]]; +return{NT:"Layer",G:T}}else if(C=="resolution")return z._Q;else if(C=="width")return z.d;else if(C=="height")return z.v; +else if(C=="name")return z.name;else if(C=="saved")return!z.lH();else if(C=="selection")return{NT:"Selection"}; +else if(C=="activeHistoryState")return{NT:"HistoryState",Oi:z.xC};else if(C=="source")return z._L;else if(C=="historyStates"){var b=[]; +for(var H=0;H>>16&255)/255;L.G[2]=(n>>>8&255)/255;L.G[3]=(n>>>0&255)/255}else console.log(L,C)}else if(L.NT=="ExportOptionsSaveForWeb"){if(C=="format")L.G.Dl=U; +else if(C=="PNG8"){}else if(C=="quality")L.G.ae=U;else throw"e"}else if(L.NT=="JPEGSaveOptions"){if(C=="quality")L.G.ae=Math.round(100*U/12)}else console.log(L,C,U); +if(z.data!=null)E.B(z)};aA.tI.bU=function(L,C,U,E,Y){var z=L.NT,r=null,p=new q(B.E.A,!0),T=new q(B.E._w,!0),k=new q(B.E.l,!0),P=E.aD(),b=E.vX; +if(!1){}else if(z=="Application"){if(!1){}else if(C=="charIDToTypeID"){var Q=U[0].trim(),K={Lvls:"levels",slct:"select",Dlt:"delete"}; +return K[Q]?K[Q]:Q}else if(C=="stringIDToTypeID"){var h=U[0].trim(),K={red:"Rd",blue:"Bl",color:"Clr",RGBColor:"RGBC",type:"Type",using:"Usng"},x=K[h]; +return x==null?h:x}else if(C=="executeAction"){console.log(U);var O;if(U[1]){O=U[1].G;O.classID=U[0]}var y={setd:"set"},v=y[U[0]]; +if(v==null)v=U[0];T.data={xo:v,V5:O}}else if(C=="executeActionGet"){return{NT:"ActionDescriptor",G:{classID:"null",null:{t:"obj ",v:U[0].G}}}}else if(C=="doAction"){k.data={e:B.U.jS,F$:[U[0],U[1]]}}else if(C=="open"){k.data={e:B.U.sh,wm:{url:U[0]}}; +if(U[2]&&b.length!=0)k.data.wm.Tm=b.indexOf(P)}else if(C=="echoToOE"){k.data={e:B.U.b$,wm:U[0]}}else console.log(C)}else if(z=="Document"){var P=L.G; +if(!1){}else if(C=="crop"){T.data=W.yP.oR(U[0])}else if(C=="trim"){var i=[];for(var H=0;H<4;H++)i.push(U[H+1]!=null?U[H+1]:!0); +T.data=W.yP.Fv(U[0]!=null?U[0]:0,i)}else if(C=="suspendHistory"){var D=acorn.parse(U[1]);aA.eval(D,E,Y)}else if(C=="save"){k.data={e:B.U.Bk}}else if(C=="saveToOE"){k.data={e:B.U.Bk,ai$:U}}else if(C=="rotateCanvas"){T.data=W.o.Lh(!0,U[0])}else if(C=="resizeImage"||C=="resizeCanvas"){var I=U[0],m=U[1]; +if(typeof I!="number"){I=P.d*parseFloat(I.slice(0,I.length-1))/100;m=P.v*parseFloat(m.slice(0,m.length-1))/100}if(C=="resizeCanvas")T.data=W.yP.eW(Math.round(I),Math.round(m),U[2]); +else T.data=W.yP.Zn(Math.round(I),Math.round(m),null,1)}else if(C=="paste"){k.data={e:B.U.SR,th:U.length!=0&&U[0]}}else if(C=="close"){k.data={e:B.U.Ma,$M:P}}else if(C=="exportDocument"||C=="saveAs"){var f=Y.__fs,A=U[0].G.replace(":","").replace("~/",""),d=C=="exportDocument"?U[2].G:U[1].G,g=iL.UJ(P,d.Dl,null,null,[d.ae],E.U4); +f[A]=new Uint8Array(g)}else console.log(L,C,U)}else if(z=="Layer"){var X=L.G,n=P.N.indexOf(X);if(!1){}else if(C=="copy"){aA.tI.PD(P,E,0); +k.data={e:B.U.NC,hQ:U[0],nY:n};E.B(k);delete k.data;aA.tI.PD(P,E,1)}else if(C=="clear"){aA.tI.PD(P,E,0); +T.data={xo:"delete"};E.B(T);delete T.data;aA.tI.PD(P,E,1)}else if(C=="duplicate"){if(U.length==0){p.data={e:o.ok,$:n}; +p.m=W.aV;E.B(p);p.data=null;r={NT:"Layer",G:P.N[P.C[0]]}}else if(U[0].NT=="Document"){p.data={e:o.JU,N:P.LR(n),R7:P,eb:U[0].G}; +p.m=W.aV}}else if(C=="merge"||C=="remove"){p.data={e:C=="merge"?o.Zt:o.eZ,$:n};p.m=W.aV;if(C!="remove")r={NT:"Layer",G:P.N[P.C[0]]}}else if(C=="move"){p.data={e:o.Br,source:n,target:P.N.indexOf(U[0].G),KO:U[1]!=3?.6:.3}; +p.m=W.aV}else if(C=="rasterize"){T.data={xo:"rasterizeLayer",V5:{classID:"rasterizeLayer",null:hy.K1("Lyr",!0)}}}else if(C=="rotate"){p.data={e:"rot",z9:[2,5],G:-U[0]*Math.PI/180,jP:U[1],$:n}; +p.m=W.YH}else if(C=="resize"){p.data={e:"scl",z9:[2,4],G:new hZ(U[0]/100,U[1]/100),jP:U[2],$:n};p.m=W.YH}else if(C=="translate"){var R=aA.tI.ZM(U); +p.data={e:"trsl",$:n,afS:R[0],adc:R[1]};p.m=W.Ml}else if(C=="link"){p.data={e:o.Sg,adk:[n,P.N.indexOf(U[0].G)]}; +p.m=W.aV}else if(C=="invert"){p.m=W.E_;p.data={e:"start",Pn:"nvrt"}}else if(C.startsWith("apply")&&hi.S6[C.slice(5)]){var R=aA.tI.ZM(U),l=hi.S6[C.slice(5)]; +T.data={xo:hi.IZ[l]};var O=hi.Q4(l);if(O){hi.vJ["g"+l](O,R);T.data.V5=O}}else console.log(L,C,U)}else if(z=="Documents"){if(C=="getByName"){for(var H=0; +H","","",""],U=bd.Wz; +for(var E in U){var Y=L[E],z=U[E][2],r="Seq",p="";if(Y==null||z==null)continue;if(z=="dc:title"||z=="dc:description"){r="Alt"; +p=" xml:lang=\"x-default\""}if(z=="dc:subject")r="Bag";C.push("\t<"+z+">");var T=z=="dc:subject"?Y.split(";").join(",").split(","):[Y]; +for(var H=0;H"+T[H].trim()+"");C.push("\t")}C.push("","","",""); +return C.join("\n")};bd.m2=function(L){var C=[];for(var H=0;H/g,">")}; +B.ju=function(L,C){L.uc(gS.get([12,41]).charAt(0)+":");C.uc(gS.get([12,42]).charAt(0)+":")};B.w=function(L,C){var U=document.createElement(L); +if(C!=null)U.setAttribute("class",C);return U};B.CF=function(L){while(L.firstChild)L.removeChild(L.firstChild)}; +B.QS=function(L,C){var U=L.getAttribute("class");if(U==null)U="";U=U.split(" ");if(U.indexOf(C)==-1)U.push(C); +L.setAttribute("class",U.join(" "))};B.gy=function(L,C){var U=L.getAttribute("class");if(U==null)return; +U=U.split(" ");if(U.indexOf(C)!=-1)U.splice(U.indexOf(C),1);L.setAttribute("class",U.join(" "))};B.DW=function(L){while(!0){if(L==document)return!0; +if(L==null)return!1;L=L.parentNode}};B.E4=function(L){L.appendChild(B.w("br"))};B.kL=function(L){L.appendChild(B.w("hr"))}; +B.ac=document;B.vC=function(L){var C=0;for(var H=0;H1e3){U=C==0?100:C*10}else{if(L%10!=0)L*=10; +U=(L+C)%100}B.Xr=Date.now();return U};B.Vv=function(L,C){if(window.PointerEvent){L.addEventListener("pointerdown",C,!1); +return}L.addEventListener("mousedown",C,!1);L.addEventListener("touchstart",C,!1)};B.z2=function(L,C){if(window.PointerEvent){L.addEventListener("pointermove",C,!1); +return}L.addEventListener("mousemove",C,!1);L.addEventListener("touchmove",C,!1)};B.Yp=function(L,C){if(window.PointerEvent){L.addEventListener("pointerup",C,!1); +return}L.addEventListener("mouseup",C,!1);L.addEventListener("touchend",C,!1)};B.air=function(L,C){if(window.PointerEvent){L.removeEventListener("pointerdown",C,!1); +return}L.removeEventListener("mousedown",C,!1);L.removeEventListener("touchstart",C,!1)};B.dZ=function(L,C){if(window.PointerEvent){L.removeEventListener("pointermove",C,!1); +return}L.removeEventListener("mousemove",C,!1);L.removeEventListener("touchmove",C,!1)};B.EW=function(L,C){if(window.PointerEvent){L.removeEventListener("pointerup",C,!1); +return}L.removeEventListener("mouseup",C,!1);L.removeEventListener("touchend",C,!1)};B.zC=function(L){L.addEventListener("touchstart",B.tG,!1); +L.addEventListener("touchmove",B.tG,!1);L.addEventListener("touchend",B.tG,!1);L.addEventListener("gesturestart",B.tG,!1); +L.addEventListener("gesturechange",B.tG,!1);L.addEventListener("gestureend",B.tG,!1)};B.wS=function(L,C,U,E){var Y=B.M(); +L.width=Math.floor(C*Y);L.height=Math.floor(U*Y);L.style.width=L.width/Y+"px";L.style.height=L.height/Y+"px"; +if(E)E.setTransform(Y,0,0,Y,0,0)};B.IO=function(L,C,U){L.setAttribute("style","width:"+C/B.M()+"px; height:"+U/B.M()+"px")}; +B.K7=function(L,C){if(C==null)C=L.currentTarget;var U=C.getBoundingClientRect();if(L.touches)L=L.touches.item(0); +return{x:L.clientX-U.left,y:L.clientY-U.top}};B.M=function(L){return window.devicePixelRatio||1};B.tG=function(L){L.preventDefault()}; +B.ZS=function(L){L.stopPropagation();L.preventDefault()};B.lp=function(L,C,U){U=U?U:"";if(PIMG["__"+L]==null)U+=" gsicon"; +return"\""+(C?C:"")+"\""};B.hW=function(L,C,U,E){var Y=L.dataTransfer.getData("text/uri-list"); +if(Y!=null&&Y.startsWith("http")){var z=new q(B.E.l,!0);z.data={e:B.U.sh,wm:{url:Y,Z3:!0,Tm:U,Ae:E}}; +C.B(z)}if(L.dataTransfer.files.length==0)return;if(window.showOpenFilePicker){var r=[],p=L.dataTransfer.items.length,T=L.dataTransfer.files; +for(var k of L.dataTransfer.items)k.getAsFileSystemHandle().then(function(P){r.push(P);if(r.length==p){var z=new q(B.E.l,!0); +z.data={e:B.U.Ia,data:T,Tm:U,Ae:E,a5y:r};C.B(z)}})}else{var z=new q(B.E.l,!0);z.data={e:B.U.Ia,data:L.dataTransfer.files,Tm:U,Ae:E}; +C.B(z)}};var q=function(L,C){if(!C)C=!1;this.type=L;this.target=null;this.currentTarget=null;this.bubbles=C; +this.m=null;this.Fw=!1};B.E={A:"0",l:"1",_w:"1.5",L:"2",Id:"3",M5:"4",mp:"5"};B.U={bW:"10",Ww:"11",Tq:"12",Hm:"13",lx:"14",ZD:"14.1",sh:"15",KJ:"16",TV:"17",kc:"18",Bk:"19",iA:"19.5",x1:"20",kh:"21",NC:"22",SR:"23",Cz:"24",Q1:"25",A_:"26",Nd:"27",DG:"28",Xy:"29",Ia:"30",ID:"31",Rj:"32",ca:"33",ik:"34",MP:"35",lf:"35.5",lR:"37",gr:"38",rA:"39",cG:"40",JT:"41",b$:"41.5",Tl:"42",_g:"43",xh:"43.5",Ma:"44",Qc:"45",PY:"46",Fl:"47",VC:"48",jS:"49",Rz:"50"}; +if(B.vC(27))B.ac=window;else B.ac=B.ahQ;B.ac._cwY=B.ac[B.ne("clh]]c[",3)];var c5={};c5.ES=function(H){var L=c5.cK[H],C=document.documentElement.style,E=20; +C.setProperty("--bg-color","#"+c.Xo(L["--bg-color"]));C.setProperty("--bg-panel","#"+c.Xo(L["--bg-panel"])); +C.setProperty("--bg-canvas","#"+c.Xo(L["--bg-canvas"]));C.setProperty("--bg-input","#"+c.Xo(L["--bg-input"])); +C.setProperty("--bg-bbtn","#"+c.Xo(L["--bg-bbtn"]));C.setProperty("--bg-bbtnOver","#"+c.Xo(L["--bg-bbtnOver"])); +C.setProperty("--brdr","#"+c.Xo(L["--brdr"]));C.setProperty("--text-color","#"+c.Xo(L["--text-color"])); +C.setProperty("--brdrLgt","rgba(255,255,255,"+L["--brdrLgt"]+")");C.setProperty("--brdrDrk","rgba( 0, 0, 0,"+L["--brdrDrk"]+")"); +C.setProperty("--alphaDark",""+L["--alphaDark"]);C.setProperty("--gs-invert",""+L["--gs-invert"]);var U=L["--sh-clr"]; +C.setProperty("--sh-clr","rgba("+(U>>16)+","+(U>>8&255)+","+(U&255)+", 0.45)");C.setProperty("--sh-dy",""+L["--sh-dy"]+"px"); +if(1=0)L=Math.max(this.du,L);if(this.de==0)L=Math.round(L);var E=this.$W;this.aE.value=(this.de!=0?L.toFixed(this.de):L)+(this.acm&&E?(E.toLowerCase()==E.toUpperCase()?"":" ")+E:""); +var Y=400*Math.pow((L-this.du)/(this.E6-this.du),1/2.7);this.$0.value=this.L8?Y:L;if(C)this.bV()};hm.prototype.u=function(){var L=parseFloat(this.aE.value); +if(isNaN(L))L=0;return L};hm.prototype.X6=function(){return this.$W};hm.prototype.We=function(L){var C=0; +if(L.currentTarget==this.aE){var U=L.target.value,E=0;while(E50&&L>10)L=Math.round(L); +return L};hm.prototype.uq=function(L){var C=0;if(G.IX(L.code,G.Bz))C=1;if(G.IX(L.code,G.oY))C=-1;if(C!=0)this.jk(C,L.shiftKey)}; +hm.prototype.da=function(L){this.jk(L.deltaY>0?-1:1,L.shiftKey)};hm.prototype.jk=function(L,C){var U=this.u(),E=this.de,Y=L*(E==null||E==0||U>5?1:.1); +if(C)Y*=10;var z=U+Y;if(!this.L8&&this.E6!=this.du)z=Math.min(this.E6,z);this.T(z);this.bV()};hm.prototype.am5=function(L){var C=Date.now()-this.vk; +this.vk=Date.now();if(C>300)return;var U=(this.E6+this.du)/2;if(this.du<0&&this.E6>0)U=0;else if(this.du<1&&this.E6>1&&this.E6<10)U=1; +this.T(U);this.bV()};hm.prototype.a7m=function(L){B.z2(document,this.a5E);B.Yp(document,this.ahj);this.QQ=B.K7(L,document.body).x; +this.pe=this.u()};hm.prototype.aey=function(L){B.ZS(L);var C=this.du==this.E6,U=B.K7(L,document.body).x,E=(U-this.QQ)*(C?1:1/120*(this.E6-this.du)),Y=this.pe+E; +if(C)Y=Math.round(Y);if(!C){if(!0){Y=Math.max(this.du,Y);if(Y==this.du){this.QQ=U;this.pe=this.du}}if(!this.L8){Y=Math.min(this.E6,Y); +if(Y==this.E6){this.QQ=U;this.pe=this.E6}}Y=this._S(Y)}this.Jb=!0;this.T(Y);this.bV()};hm.prototype.adR=function(L){if(!this.Jb)this.aE.focus(); +this.Jb=!1;B.dZ(document,this.a5E);B.EW(document,this.ahj)};hm.prototype.Su=function(){this.aE.select(); +this.aE.focus()};function fN(L,C){gG.call(this);this.g$=[];this.Gi=-1;this.a09=L;this.FO=C;this.fL=0; +this.x3=null;this.pJ=new hZ(0,0);if(C!=null){this.Bp=new aq([{name:[6,37]},{name:[5,4]}]);this.Bp.parent=this; +this.Bp.k("select",this._X,this)}this.j=B.w("div","imageset scrollable");this.j.addEventListener("contextmenu",B.tG,!1)}fN.prototype=new gG; +fN.prototype.f=function(){if(this.Bp)this.Bp.f()};fN.prototype._X=function(L){var H=this.Bp.bw()[0],C=new q(B.E.l,!0),U={e:B.U.MP,wm:this.FO,gn:[this.Gi]}; +if(H==0){var E=this.x3[1][this.Gi];U.AW="rnm";C.data={e:B.U.Q1,k5:"namewindow",LE:E,ea:{b:B.E.l,H:U}}}else{C.data=U; +U.AW="del"}this.B(C)};fN.prototype.adl=function(){return this.fL};fN.prototype.sN=function(L){this.fL=L; +if(this.x3)this.L9()};fN.prototype.OF=function(L,C,U,E){this.x3=[L,C,U,E];this.L9()};fN.prototype.L9=function(){var L=this.x3,C=L[0],U=L[1],E=L[2],Y=L[3]; +this.g$=[];this.j.innerHTML="";var z=this.T9.bind(this),r=this.fL;if(r==0)B.QS(this.j,"imageset");else B.gy(this.j,"imageset"); +for(var H=0;H0)){z=r;Y=H}}if(Y==-1)return; +this.aaw=Y;this.q_=L.altKey||C[(Y>>>1)*2]!=C[(Y>>>1)*2+1];B.z2(window,this.y3);B.Yp(window,this.Cj)}; +dP.prototype.Rl=function(L){var C=this.q$,U=this.aaw,E=(U>>>1)*2,Y=E+1,z=B.K7(L,this.UF),r=Math.round(Math.max(0,Math.min(255,z.x-8))); +C[U]=r;if(this.q_&&C[E]>=C[Y])this.q_=!1;if(!this.q_)C[E]=C[Y]=r;this.L9();this.B(new q(B.E.L,!1))}; +dP.prototype.Zr=function(L){B.dZ(window,this.y3);B.EW(window,this.Cj)};dP.prototype.L9=function(){var L=this.UF; +B.wS(L,255+16,16);var C=L.getContext("2d"),U=L.width,E=L.height,Y=Math.round(255*B.M()),z=Math.round(8*B.M()); +C.translate(z,0);var r=C.createLinearGradient(0,0,Y,0);r.addColorStop(0,"black");r.addColorStop(1,"#"+["ffffff","ff0000","00ff00","0000ff"][this.ZV]); +C.fillStyle=r;C.fillRect(0,0,Y,z);var p=this.a7X,T=gS.get(this.a32)+":";p[0].textContent=T;for(var H=0; +H<4;H++){var k=this.q$[H];p[1+H].textContent=k;var P=Math.round(k*B.M());C.beginPath();C.moveTo(P,z); +C.lineTo(P,z+z);C.lineTo(P+((H&1)==0?-1:1)*z,z+z);C.closePath();C.fillStyle="#cccccc";C.fill();C.strokeStyle="black"; +C.stroke()}};function em(L){gG.call(this);this.f2=0;this.alt=0;var C="ai"+B.E3();this.j=B.w("span","fitem angleinput"); +if(L){this.I6=B.w("label","flabel");this.N8=L;this.j.appendChild(this.I6);this.I6.setAttribute("for",C)}this.OQ=20; +this.k2=B.w("canvas","gsicon");this.zS=this.k2.getContext("2d");B.wS(this.k2,this.OQ*2+1,this.OQ*2+1,this.zS); +this.j.appendChild(this.k2);B.Vv(this.k2,this.Ko.bind(this));this.yc=this.cz.bind(this);this.xf=this.KR.bind(this); +this.aE=B.w("input","");this.aE.setAttribute("type","text");this.j.appendChild(this.aE);this.aE.setAttribute("id",C); +this.aE.addEventListener("change",this.We.bind(this),!1);this.Ev=B.w("span","");this.Ev.innerHTML="\xB0"; +this.j.appendChild(this.Ev);this.T(this.f2,this.alt)}em.prototype=new gG;em.prototype.f=function(){this.I6.textContent=gS.get(this.N8)+":"}; +em.prototype.uc=function(L){this.I6.textContent=L};em.prototype.u=function(){return{f2:this.f2,alt:this.alt}}; +em.prototype.T=function(L,C,U){if(L!=null)this.f2=L;if(C!=null)this.alt=C;this.aE.value=this.f2;L=Math.PI*this.f2/180; +C=.9*this.OQ*(90-this.alt)/90;var E=this.OQ+.5,Y=this.zS;Y.clearRect(0,0,100,100);Y.strokeStyle="#000000"; +Y.beginPath();Y.arc(E,E,.9*this.OQ,0,2*Math.PI);Y.moveTo(E,E);Y.lineTo(E+Math.cos(L)*this.OQ*.9,E-Math.sin(L)*this.OQ*.9); +Y.stroke();Y.strokeStyle="#ff0000";Y.beginPath();Y.moveTo(E+Math.cos(L)*C-3,E-Math.sin(L)*C);Y.lineTo(E+Math.cos(L)*C+3,E-Math.sin(L)*C); +Y.moveTo(E+Math.cos(L)*C,E-Math.sin(L)*C-3);Y.lineTo(E+Math.cos(L)*C,E-Math.sin(L)*C+3);Y.stroke();if(U)this.We()}; +em.prototype.We=function(L){var C=parseInt(this.aE.value);C=C%360;this.T(C);this.B(new q(B.E.L,!1))}; +em.prototype.Ko=function(L){B.z2(window,this.yc);B.Yp(window,this.xf);this.cz(L)};em.prototype.cz=function(L){var C=B.K7(L,this.k2),U=C.x-this.OQ,E=C.y-this.OQ,Y=180*Math.atan2(-E,U)/Math.PI,z=90-90*Math.min(1,Math.sqrt(U*U+E*E)/(.9*this.OQ)); +this.T(Math.round(Y),Math.round(z));this.B(new q(B.E.L,!1))};em.prototype.KR=function(L){this.B(new q(B.E.L,!1)); +B.dZ(window,this.yc);B.EW(window,this.xf)};function cP(L,C){gG.call(this);this.q$=0;this.y7=C;this.j=B.w("span","fitem angleinput"); +if(L){this.I6=B.w("label","flabel");this.N8=L;this.j.appendChild(this.I6)}this.k2=B.w("canvas","gsicon"); +this.zS=this.k2.getContext("2d");B.wS(this.k2,C,C);this.j.appendChild(this.k2);B.Vv(this.k2,this.Ko.bind(this)); +this.yc=this.cz.bind(this);this.xf=this.KR.bind(this);this.T(0)}cP.prototype=new gG;cP.prototype.f=function(){if(this.N8)this.I6.textContent=gS.get(this.N8)+":"}; +cP.prototype.uc=function(L){this.I6.textContent=L};cP.prototype.u=function(){return this.q$};cP.prototype.T=function(L){this.q$=L; +var C=this.k2.width,U=Math.floor(L/3),E=L-3*U,Y=(E+.5)*C/3,z=(U+.5)*C/3,r=this.zS,p=[.5,Math.round(C/3)+.5,Math.round(2*C/3)+.5,C-.5]; +r.clearRect(0,0,C,C);var T=this.y7<30;r.setLineDash([]);r.strokeStyle=T?"rgba(0,0,0,0.5)":"#000000"; +r.beginPath();for(var H=0;H<4;H++){var k=p[H];r.moveTo(k,0);r.lineTo(k,C);r.moveTo(0,k);r.lineTo(C,k)}r.stroke(); +if(L==9)return;if(!T){r.setLineDash([1,2]);var P=C*.53,b=Math.max(0,Math.min(C-P,Y-P/2)),Q=Math.max(0,Math.min(C-P,z-P/2)); +r.strokeRect(Math.round(b)+.5,Math.round(Q)+.5,Math.round(P),Math.round(P))}r.fillStyle="#000000";r.beginPath(); +r.arc(Y,z,C/8,0,Math.PI*2);r.fill()};cP.prototype.Ko=function(L){B.z2(window,this.yc);B.Yp(window,this.xf); +this.cz(L)};cP.prototype.cz=function(L){var C=B.K7(L,this.k2),U=Math.max(0,Math.min(2,Math.floor(C.x/(this.y7/3)))),E=Math.max(0,Math.min(2,Math.floor(C.y/(this.y7/3)))); +this.T(E*3+U)};cP.prototype.KR=function(L){this.B(new q(B.E.L,!1));B.dZ(window,this.yc);B.EW(window,this.xf)}; +function br(L,C,U,E){gG.call(this);this.j=B.w("button","fitem"+(C?" spread":"")+(E?" bbtn":""));this.N8=L; +this.$b=U;this.f();this.j.addEventListener("click",this.T9.bind(this),!1)}br.prototype=new gG;br.prototype.f=function(){var L=this.j,C=this.N8,U=this.$b,E=gS.get(C); +if(E.startsWith(">16&255,P:L>>8&255,O:L&255};this.z4()};di.prototype.T=function(L){this.cC=c.W.Lt(L); +this.z4()};di.prototype.z4=function(){var L=this.cC,C=L.h,U=L.P,E=L.O;if(this.Xx)C=U=E=Math.round(c.GZ(C,U,E)); +var Y=C<<16|U<<8|E;this.j.setAttribute("style","background-color:#"+c.Xo(Y))};function gx(L){dS.call(this,L,!1,"brushbutton nopadding",16.6,10,c_.Sw,!0); +this.vg=new cG([12,14,0],1,1e3," px",0,!0);this.vg.k(B.E.L,this.LW,this);this.Ot.appendChild(this.vg.j); +this.Z4=new cG([12,17],0,100,"%");this.Z4.k(B.E.L,this.LW,this);this.Ot.appendChild(this.Z4.j)}gx.prototype=new dS; +gx.prototype.ke=function(){var L=["pencil","trees"];for(var H=0;H0&&E.o$==null)E.o$=JSON.parse(JSON.stringify(gM.bK[U-1]));if(this.Y$)this.T(this.Lf,E,this.Y$)}if(C==this.gm)this.DI.Gm(C.u()); +this.B(new q(B.E.L,!1))};gl.prototype.AJ=function(L){var C=this.k2.getBoundingClientRect(),U=new q(B.E.l,!0); +U.data={e:B.U.Ww,f0:this.oM,x:C.left,y:C.top+C.height+4};this.B(U);this.gm.T(this.DI.A2())};gl.prototype.T=function(L,C,U){this.Y$=U; +this.Lf=L;var E=[[13,1,0],[13,0],[12,37],[12,62]],Y=this.ajH,z=this.a8d,r=!1,P;for(var H=0;H<4;H++){var p={L$:H,o$:U[H]},T=gl.Ig(p); +if(z[H]==T)continue;r=!0;var k=gl.k1(null,p,this.OY,this.Lf,22,22,!1);Y[H]=""; +z[H]=T}if(r)this.QG.SU(Y,E);this.QG.T(C.L$);var T=gl.Ig(C);if(T!=this.a1S)gl.k1(this.zS,C,this.OY,this.Lf,30,23,!0); +this.a1S=T;var b=C.L$;if(b==0){P=this.adr}if(b==1){this.DI.T(C.o$.Clr.v);P=this.R1}if(b==2){this.UX.update(L,C.o$); +P=this.HT}if(b==3){this.wM.update(L,C.o$);P=this.NO}if(P!=this.Iq){if(this.Iq!=null){this.oM.j.removeChild(this.Iq)}this.oM.j.appendChild(P); +this.Iq=P}};gl.prototype.u=function(){var L={L$:this.QG.u()};if(L.L$==1){L.o$=JSON.parse(JSON.stringify(gM.bK[0])); +L.o$.Clr.v=this.DI.u()}if(L.L$==2){L.o$=this.UX.u()}if(L.L$==3){L.o$=this.wM.u()}return L};gl.Ig=function(L){var C=L.L$,U=L.o$,E="empty"; +if(C==1){E=c.W.Lt(U.Clr.v);E=E.h+","+E.P+","+E.O}if(C==2)E=JSON.stringify(U.Grad.v);if(C==3)E=U.Ptrn.v.Idnt.v; +return E};gl.k1=function(L,C,U,E,Y,z,r){if(L==null)L=gl.zS;var p=Math.floor(Y*B.M()),T=Math.floor(z*B.M()),k=L.canvas,P; +k.width=p;k.height=T;B.IO(k,p,T);var b=C.L$;if(b==0){L.fillStyle="#ffffff";L.fillRect(0,0,p,T);L.strokeStyle="#ff0000"; +L.lineWidth=2;L.moveTo(0,0);L.lineTo(p,T);L.moveTo(0,T);L.lineTo(p,0);L.stroke()}if(b==1){var Q=C.o$.Clr.v; +Q=c.W.Lt(Q);L.fillStyle="#"+c.Xo(Q.h<<16|Q.P<<8|Q.O);L.fillRect(0,0,p,T)}if(b==2){W.Fe.BU(C.o$.Grad.v,p,T,0,U.yx,U.ho,k)}if(b==3){var K=C.o$.Ptrn.v,h; +if(E!=null)h=ca.fi(K,E.add.Patt);if(h==null)h=ca.fi(K,U.mt);bH.BU(h,p,T,k)}if(r){L.beginPath();L.strokeStyle="#000000"; +L.fillStyle="#ffffff";L.lineWidth=2;var x=p*.7,O=Math.floor(T*.7),y=7*B.M();L.moveTo(x,O);L.lineTo(x+y,O); +L.lineTo(x+y/2,O+y/2);L.closePath();L.stroke();L.fill()}if(L==gl.zS)return k.toDataURL()};gl.zS=B.w("canvas").getContext("2d"); +function bH(L){dS.call(this,L,!1,"patternbutton",18,10,c_.GA);this.Vf=null}bH.prototype=new dS;bH.prototype.ag=function(L){var C=this.eO[this.lU.u()]; +this.TG={classID:"Ptrn",Nm:{t:"TEXT",v:C.name},Idnt:{t:"TEXT",v:C.id}};this.B(new q(B.E.L));this.kU()}; +bH.qW=!1;bH.prototype.Vd=function(){if(!this.ma)return;var L=this.eO;if(L==null||!bH.qW){var C=new q(B.E.l,!0); +C.data={e:B.U.sh,wm:{url:"rsrc/basic/basic.pat"}};this.B(C);bH.qW=!0;return}var U=Math.floor(34*B.M()),E=Math.floor(34*B.M()),Y=[],z=[]; +for(var H=0;H255||E<0||E>255)b=!1; +if(b&&z.indexOf(this.RW)==-1)z.push(this.RW);if(!b&&z.indexOf(this.RW)!=-1&&z.length>2&&(!r||!T))z.splice(z.indexOf(this.RW),1); +if(z[0].v.Hrzn.v==z[1].v.Hrzn.v)if(z[0].v.Hrzn.v==0)z[1].v.Hrzn.v=1;else z[0].v.Hrzn.v--;z.sort(function(y,v){return y.v.Hrzn.v-v.v.Hrzn.v})}else{U=Math.round(U); +E=Math.round(E);U=Math.max(0,Math.min(255,U));E=Math.max(0,Math.min(255,E));var Q=this.a2.x,K=U,h=this.a2.y,x=E; +if(U.002){this.ade(U.data,256,256,C.fg); +this.akv=C.fg}this.zS.putImageData(U,0,0);this.zS.strokeStyle="#000000";this.zS.beginPath();this.zS.arc(this.rg.x+1,this.rg.y+1,5,0,2*Math.PI); +this.zS.stroke();this.zS.strokeStyle="#ffffff";this.zS.beginPath();this.zS.arc(this.rg.x,this.rg.y,5,0,2*Math.PI); +this.zS.stroke();var U=this.a4C;this.$Z.putImageData(U,0,0);this.$Z.strokeStyle="#ffffff";this.$Z.beginPath(); +this.$Z.moveTo(0,this.gz.y);this.$Z.lineTo(20,this.gz.y);this.$Z.lineWidth=2;this.$Z.stroke()};dm.prototype.ade=function(L,C,U,E){var Y=1/C,z=1/U; +for(var r=0;r0)this.j.removeChild(this.Pz.pop().j); +this.Mc=L;for(var H=0;H>>1;Y.width=Y.height=E;var p=[]; +for(var H=0;H"); +else p.push("")}dr.call(this,L,p,U)}bO.prototype=new dr; +bO.co=B.w("canvas");function bS(L,C,U,E){gG.call(this);if(!C)return;if(U==null)U=!1;this.Gi=0;this.a56=U; +this.N8=L;this.FX=null;this.a47=E;var Y="dd"+B.E3();this.j=B.w("span","fitem ddmenu");if(L&&!U){this.I6=B.w("label","flabel"); +this.j.appendChild(this.I6);this.I6.setAttribute("for",Y)}this.pP=B.w("select","bbtn");this.pP.setAttribute("id",Y); +this.j.appendChild(this.pP);this.pP.addEventListener("change",this.We.bind(this),!1);this.Pz=[];this.Mc=null; +this.SU(C,E);this.f()}bS.prototype=new gG;bS.prototype.uc=function(L){this.N8=L;this.f()};bS.prototype.f=function(){if(this.N8!=null){var L=gS.get(this.N8); +if(this.a56)this.pP.setAttribute("title",L);else this.I6.textContent=L+":"}if(this.Mc)this.SU(this.Mc,this.a47); +this.T(this.Gi)};bS.prototype.u=function(){return this.Gi};bS.prototype.SU=function(L,C){B.CF(this.pP); +var U=[],E=0;if(C){U.push(C[0]);for(var H=1;H"); +this.RC=new br("");this.$d=new br(""); +this.Ex=new br("");this.Im=new br(""); +this.Ah=new br("");this.xO=new br(""); +this.Qm=new br("");var L=[this.Eg,this.RC,this.$d,this.Ex,this.Im,this.Ah,this.xO,this.Qm]; +for(var H=0;H"); +this.nV=new br("");this.r4=new br(""); +this.amH=new br("");this.a7K=new br(""); +this.acw=new br("");this.a60=new br(""); +this.Fn=[this.uS,this.nV,this.r4,this.amH,this.a7K,this.acw,this.a60];for(var H=0;H "); +this.LZ=new cU(U[0],-20,20,"px");this.LZ.k(B.E.L,this.mU,this);this.LZ.parent=this;this.BY=new cU(U[1],-20,20,"px"); +this.BY.k(B.E.L,this.mU,this);this.BY.parent=this;this.tf=new cU(U[2],-20,20,"px");this.tf.k(B.E.L,this.mU,this); +this.tf.parent=this;this.cF=new cU(U[3],-20,20,"px");this.cF.k(B.E.L,this.mU,this);this.cF.parent=this; +this.fT=new cU(U[4],-20,20,"px");this.fT.k(B.E.L,this.mU,this);this.fT.parent=this;this.uY=new dr([12,33],["Abc ...","... \u0623\u064A \u0628\u064A"]); +this.uY.k(B.E.L,this.mU,this);this.uY.parent=this}iM.prototype=new gG;iM.prototype.f=function(){this.Ky.f(); +this.Ho.f();this._o.f();this.Q$.f();this.s3.f();this.HA.f();this.pw.f();this.uY.f()};iM.prototype.T=function(L,C,U){this.Az=JSON.parse(JSON.stringify(L)); +var E=this.Az,Y=E.LI,z=E.s6;this.Eg.T(Y.FauxBold!=null?Y.FauxBold:!1);this.RC.T(Y.FauxItalic!=null?Y.FauxItalic:!1); +this.$d.T(Y.FontCaps==2);this.Ex.T(Y.FontCaps==1);this.Ah.T(Y.FontBaseline==1);this.Im.T(Y.FontBaseline==2); +this.xO.T(Y.Underline);this.Qm.T(Y.Strikethrough);this.Ky.T(Y.Font==null?null:E.Oe[Y.Font].Name,C,U); +var r=Y.FontSize==null?20:Y.FontSize;this.Ho.T(r);var p=Y.Tracking;this.Q$.T(p==null?0:p);this._o.T(Y.Leading!=null?Y.Leading:0); +this.sj.T(Y.AutoLeading);this.HA.T((Y.VerticalScale!=null?Y.VerticalScale:0)*100);this.pw.T((Y.HorizontalScale!=null?Y.HorizontalScale:0)*100); +this.s3.T(Y.BaselineShift!=null?Y.BaselineShift:0);if(Y.FillColor){var T=b5.Lt(Y);this.rh.Gm(Math.round(T.h)<<16|Math.round(T.P)<<8|Math.round(T.O))}else this.rh.Gm(0); +var k=z._Direction!=null?z._Direction:0,P=b5.Ix(z);for(var H=0;H>16&255)/255,(C>>8&255)/255,(C>>0&255)/255]}; +for(var H=0;H<4;H++)U.Values[H]=Math.round(U.Values[H]*1e3)/1e3;this.Az.LI.FillColor=U;this.yy()};function hx(){gG.call(this); +this.j=B.w("span","fontinput");this.G9=null;this.ay=null;this.VV=null;this.aG="";this.g$={};this.JB=[]; +this.agD={};this.oy=!1;this.j2=B.w("button","fitem");this.j2.setAttribute("style","width:9em;");this.j2.textContent="Family Name \u25BC"; +this.j.appendChild(this.j2);B.Vv(this.j2,this.JD.bind(this));this.AM=new gG;this.AM.parent=this;this.AM.j=B.w("div","floatcont"); +this.AM.j.addEventListener("keyup",this.a4O.bind(this),!1);this.kN=new eG(6.8);this.AM.j.appendChild(this.kN.aeJ()); +this.kN.parent=this.AM;this.kN.k(B.E.L,this.RH,this);var L=B.w("div","form");this.AM.j.appendChild(L); +this.WU=new br(B.lp("tools/cshape",null,"autoscale"),!1,"Show Favorites Only");this.WU.k("click",this.a8b,this); +L.appendChild(this.WU.j);this.iZ=new hq([12,86],null,9);this.iZ.k("input",this.Bd,this);L.appendChild(this.iZ.j); +var C=this.abV=new br([[23,6],[22,6,0]],!1,"Load OTF / TTF file from your computer",!0);C.k("click",this.agl,this); +C.j.style.marginLeft="1.5em";L.appendChild(C.j);this.k6=B.w("span","fitem imageset scrollable marged"); +this.k6.style.height="30em";this.AM.j.appendChild(this.k6);this.Ny=B.w("button","fitem");this.Ny.setAttribute("style","width:7em;"); +this.Ny.textContent="SubFamily Name \u25BC";this.j.appendChild(this.Ny);B.Vv(this.Ny,this.JD.bind(this)); +this.a8=new gG;this.a8.parent=this;this.a8.j=B.w("div","floatcont");this.mC=B.w("span","fitem imageset scrollable marged"); +this.a8.j.appendChild(this.mC)}hx.prototype=new gG;hx.prototype.a4O=function(L){var C=0;if(G.IX(L.code,G.Bz))C=-1; +if(G.IX(L.code,G.oY))C=1;if(C!=0){var U=this.JB,E=U.length,Y=this.G9.Fj()[this.VV];if(Y==null&&E==0)return; +var z=U.indexOf(Y[0]);if(z==-1)return;z=(z+C+E)%E;this.Jj(U[z],null)}};hx.prototype.agl=function(){var L=new q(B.E.l,!0); +L.data={e:B.U.KJ,al0:".otf,.ttf,.ttc"};this.B(L)};hx.prototype.f=function(){this.kN.f();this.abV.f(); +this.WU.uc(B.lp("tools/cshape",null,"autoscale"))};hx.prototype.a8b=function(L){this.WU.T(!this.WU.gF()); +this.RH()};hx.prototype.Bd=function(L){this.aG=this.iZ.u().toLowerCase();this.RH()};hx.prototype.JD=function(L){B.ZS(L); +var C=L.currentTarget,U=C.getBoundingClientRect(),E=C==this.j2,Y=E?this.AM:this.a8;if(B.DW(Y.j)){this.Kk(Y); +return}if(!E&&this.G9.Fj()[this.VV]==null)return;var z=new q(B.E.l,!0);z.data={e:B.U.Ww,f0:Y,x:U.left,y:U.top+U.height}; +this.B(z);if(E){this.RH();this.iZ.Su()}};hx.prototype.a9b=function(L){var C=L.currentTarget.firstChild.nextSibling.textContent; +if(L.target.tagName.toLowerCase()=="button"){var U=this.ay.slice(0),E=U.indexOf(C);if(E==-1){U=U.slice(Math.max(0,U.length-29)); +U.push(C)}else U.splice(E,1);var Y=new q(B.E.l,!0);Y.data={e:B.U.MP,wm:c_.HC,oq:U};this.B(Y);this.oy=!0; +this.RH()}else{this.Jj(C,null);this.iZ.Su()}};hx.prototype.amN=function(L){this.Jj(null,L.currentTarget.firstChild.textContent)}; +hx.prototype.Jj=function(L,C){var U=L==null?this.a8:this.AM,E=this.G9;if(L==null)L=E.Fj()[this.VV][0]; +else{var Y=E._z(L),z=E.Fj()[this.VV];C=e3.f$(Y,z?z[1]:"regular")}var r=E.BA(L,C)[2];this.T(r,E);this.B(new q(B.E.L,!1)); +this.Kk(U);this.RH()};hx.prototype.Kk=function(L){var C=new q(B.E.l,!0);C.data={e:B.U.Tq,f0:L};this.B(C)}; +hx.prototype.u=function(){return this.VV};hx.prototype.T=function(L,C,U){var E=this.G9;if(L!=null)this.VV=L; +else L=this.VV;this.G9=C;this.ay=U;if(L!=null){var Y=C.Fj()[L],z,r;if(Y==null){z="- "+L;r="-------"}else{z=Y[0]; +r=Y[1];var p=C._z(z);p.sort(e3.aa2);var T=p.indexOf(r),k=this.amN.bind(this);this.mC.textContent=""; +for(var H=0;H0&&p[0].toLowerCase().indexOf(this.aG)==-1)k=!1; +else if(!this.kN.HL(p))k=!1;else if(this.WU.gF()&&!T)k=!1;var P=this.g$[z];if(P==null){var P=this.XS(p,z,Y,!0); +this.g$[z]=P;this.k6.appendChild(P)}if(k)this.JB.push(z);var b=k?"":"display:none; ",Q="opacity: "+(T?"1":"0.2"); +if(L&&L[0]==z){b+="background-color:rgba(0,0,0,0.13);";U=P}if(this.agD[z]!=b+Q){P.setAttribute("style",b); +P.firstChild.setAttribute("style",Q);this.agD[z]=b+Q}}if(U&&!this.oy)this.k6.scrollTop=U.offsetTop-210; +this.oy=!1};hx.prototype.XS=function(L,C,U,E){var Y=B.w("div","fontitem"),T="";Y.addEventListener("click",U,!1); +if(E)Y.appendChild(B.w("button","star"));var z=B.w("span","label");z.setAttribute("title",C);z.textContent=C; +Y.appendChild(z);var r=B.M(),p=1/r,k=e3.Xz*p,P=e3.PN*p;if(1>>H&1)==1;this.Og[H]=U;C[H].T(U)}};eG.prototype.aeJ=function(){return this.xE}; +eG.prototype.f=function(){this.j.textContent=gS.get([25,1,0])+" \u25BC";this.nB.f();this.a4f.f()};eG.prototype.a9j=function(L){var C=this.j.getBoundingClientRect(),U=new q(B.E.l,!0); +U.data={e:B.U.Ww,f0:this.oM,x:C.left,y:C.top+C.height,ur:!1};this.B(U)};eG.prototype.HL=function(L){if(this.fh[L[4]]==0)return!1; +else for(var C=0;C>>C&1)==0)return!1;return!0};eG.prototype.amQ=function(L){var C=L.target.u(),U=this.nL,E=this.fh; +for(var H=0;H",!1,[12,51]); +this.nP.k("click",this.vb,this);this.abz=new ip("");if(C){this.j.appendChild(this.nP.j);this.j.appendChild(this.abz.j); +this.nP.m0()}else this.j.appendChild(z.j);this.ed=new cU("DPI",0,0,null,3,!1,!0,4);if(L&&E==null){B.E4(this.j); +this.j.appendChild(this.ed.j)}this.ed.k(B.E.L,this.vb,this);this.JV=new dh([12,23,1]);this.JV.k(B.E.L,this.vb,this); +if(U){B.E4(this.j);this.j.appendChild(this.JV.j)}B.E4(this.j)}gC.prototype=new gG;gC.prototype.aho=function(){this.Ct=!1; +if(this.G6.u()==0){this.G6.T(3);this.ot()}};gC.prototype.aah=function(){this.Ct=!0};gC.prototype.ai8=function(L){this.nP.T(L)}; +gC.prototype.f=function(){this.P8.f();this.sA.f();this.ed.f();this.nP.f();this.JV.f()};gC.prototype.afI=function(L){var C=this.Pp.x; +this.Pp.x=this.Pp.y;this.Pp.y=C;this.ot();this.B(new q(B.E.L,!1))};gC.prototype.vb=function(L){if(L.target==this.G6&&!this.Ct&&this.G6.u()==0)this.G6.T(3); +if(L.target==this.G6||L.target==this.JV){this.ot();return}if(L.target==this.nP)L.target.T(!L.target.u()); +var C=this.lS,U=parseFloat(this.P8.u());if(isNaN(U))U=1;var E=parseFloat(this.sA.u());if(isNaN(E))E=1; +var Y=this.G6.u();if(this.Ct){var z=this.W8;if(Y==1){U=this.lS.x*(U/100);E=this.lS.y*(E/100)}var r=[1,1,25.4/z,1/z][Y]; +U/=r;E/=r;if(this.JV.u()){U+=this.lS.x;E+=this.lS.y}if(L.target==this.ed){var p=this.ed.u();if(!0){var T=p/z; +U*=T;E*=T}z=p}if(this.nP.u()){if(L.target==this.P8)E=U*(C.y/C.x);else U=E*(C.x/C.y)}U=Math.max(Math.abs(U),1); +E=Math.max(Math.abs(E),1)}else{var z=this.yY;if(L.target==this.ed)z=this.ed.u();else{if(this.nP.u()){if(L.target==this.P8)E=U*(C.y/C.x); +else U=E*(C.x/C.y)}var r=[1,1,25.4/z,1/z][Y],k=U/(Y==1?100:C.x*r);z=z/k}U=C.x;E=C.y}this.Pp=new hZ(Math.round(U),Math.round(E)); +this.W8=z;this.ot();this.B(new q(B.E.L,!1))};gC.prototype.ad2=function(H){this.G6.T(H);this.ot()};gC.prototype.T=function(L,C,U){if(U!=!0)this.lS=L.clone(); +this.Pp=L.clone();if(C!=null){this.yY=C;this.W8=C}this.ot()};gC.prototype.ot=function(){var L=this.Pp.x,C=this.Pp.y,U=this.W8,E=(L/C).toFixed(3); +while(E.charAt(E.length-1)=="0")E=E.substring(0,E.length-1);if(E.charAt(E.length-1)==".")E=E.substring(0,E.length-1); +var Y=" "+E+" : 1",z=function(P,b){while(b!=0){var Q=b;b=P%b;P=Q}return P},r=z(L,C);if(Math.min(L,C)/r<10)Y=" "+Math.round(L/r)+" : "+Math.round(C/r); +this.abz.T(Y);if(this.JV.u()){L-=this.lS.x;C-=this.lS.y}var p=this.G6.u();if(p==1){if(this.Ct){L=100*L/this.lS.x; +C=100*C/this.lS.y}else{L=C=100*this.yY/this.W8}}else{L=Math.round(L);C=Math.round(C)}var T=[1,1,25.4/U,1/U][p]; +L*=T;C*=T;var k=p==1||p==3?2:0;this.P8.z$(k);this.sA.z$(k);this.P8.T(L);this.sA.T(C);this.ed.T(U)};gC.prototype.u=function(){return this.Pp.clone()}; +gC.prototype.Qy=function(){return this.W8};function gX(){gG.call(this);this.rV=0;this.IF=[0,0,1,1,100,100]; +this.j=B.w("span","fitem");this.Gv=new bS(null,[[12,89,0],[12,89,1],[12,89,2]]);this.j.appendChild(this.Gv.j); +this.Gv.k(B.E.L,this.vb,this);this.P8=new cU("W",0,0,null,0,!1,!0);this.j.appendChild(this.P8.j);this.P8.k(B.E.L,this.vb,this); +this.sA=new cU("H",0,0,null,0,!1,!0);this.j.appendChild(this.sA.j);this.sA.k(B.E.L,this.vb,this);this.T({am:0,x:0,y:0})}gX.prototype=new gG; +gX.prototype.f=function(){B.ju(this.P8,this.sA);this.Gv.f()};gX.prototype.vb=function(L){if(L.target==this.Gv){var C=this.u(),U=this.IF; +U[this.rV*2]=C.x;U[this.rV*2+1]=C.y;this.rV=C.am;this.T({am:C.am,x:U[C.am*2],y:U[C.am*2+1]})}if(this.P8.u()<1)this.P8.T(1); +if(this.sA.u()<1)this.sA.T(1);this.B(new q(B.E.L,!1))};gX.prototype.T=function(L){this.Gv.T(L.am);this.P8.T(L.x); +this.sA.T(L.y);if(L.am==0){this.P8.aA();this.sA.aA()}else{this.P8.rX();this.sA.rX()}};gX.prototype.u=function(){return{am:this.Gv.u(),x:this.P8.u(),y:this.sA.u()}}; +function ip(L,C){gG.call(this);this.N8=L;this.j=B.w("span","labelitem fitem"+(C?" spread":""));this.f()}ip.prototype=new gG; +ip.prototype.T=function(L){this.j.textContent=L};ip.prototype.u=function(){return this.j.textContent}; +ip.prototype.rX=function(){this.j.removeAttribute("disabled")};ip.prototype.aA=function(){this.j.setAttribute("disabled","")}; +ip.prototype.uc=function(L){this.j.textContent=L};ip.prototype.f=function(){this.j.textContent=gS.get(this.N8)}; +ip.prototype.rR=function(){return this.N8};function aV(L){gG.call(this);this.j=B.w("span","");this.a92=L; +this.ll=new dC("Off X",-100,100,L?"%":"px",0,!1);this.Qk=new dC("Off Y",-100,100,L?"%":"px",0,!1);this.ll.k(B.E.L,this.vb,this); +this.Qk.k(B.E.L,this.vb,this);this.j.appendChild(this.ll.j);this.j.appendChild(this.Qk.j)}aV.prototype=new gG; +aV.prototype.f=function(){this.ll.f();this.Qk.f()};aV.prototype.vb=function(L){this.B(new q(B.E.L,!1))}; +aV.prototype.aaR=function(L){this.ll.T(L.x);this.Qk.T(L.y)};aV.prototype.aeS=function(){return new hZ(this.ll.u(),this.Qk.u())}; +aV.prototype.T=function(L,C){var U=L.Hrzn.v,E=L.Vrtc.v;if(this.a92){U=U.val;E=E.val}this.ll.T(U);this.Qk.T(E); +if(C)this.vb()};aV.prototype.u=function(){var L=this.ll.u(),C=this.Qk.u();if(this.a92)return{classID:"Pnt",Hrzn:{t:"UntF",v:{type:"#Prc",val:L}},Vrtc:{t:"UntF",v:{type:"#Prc",val:C}}}; +else return{classID:"Pnt",Hrzn:{v:L,t:"doub"},Vrtc:{v:C,t:"doub"}}};function cU(L,C,U,E,Y,z,r,p,T){hm.call(this,L,C,U,E,Y,!0,z,T); +B.QS(this.j,"rangedropinput");this.j.appendChild(this.I6);this.aE.setAttribute("style","width:"+(p?p:3.3)+"em"); +this.j.appendChild(this.aE);this.ako=B.w("span","rangecont");this.ako.appendChild(this.$0);this.fZ=B.w("button"); +this.fZ.innerHTML="\u25BC";B.Vv(this.fZ,this.a2a.bind(this));if(r!=!0)this.j.appendChild(this.fZ);this.EY=new gG; +this.EY.j=this.ako}cU.prototype=new hm;cU.prototype.a2a=function(L){if(B.DW(this.EY.j))return;L.stopPropagation(); +var C=this.j.getBoundingClientRect();this.$0.setAttribute("style","width:"+C.width+"px;");var U=new q(B.E.l,!0); +U.data={e:B.U.Ww,f0:this.EY,x:C.left,y:C.top+C.height};this.B(U)};function by(){gG.call(this);this.j=B.w("span","fitem strokebutton"); +this.Sj=[[null,null,null,""],[null,0,null,"4 2"],[1,1,null,"0 2"]];this.Nu=JSON.parse(JSON.stringify(gM.H0.default)); +this.TD=B.w("button");this.j.appendChild(this.TD);this.TD.addEventListener("click",this.AJ.bind(this),!1); +var L=B.w("canvas","gsicon");this.zS=L.getContext("2d");this.TD.appendChild(L);var C=B.w("span");C.textContent=" \u25BC"; +this.TD.appendChild(C);this.oM=new gG;this.oM.parent=this;this.oM.j=B.w("div","floatcont form");var U=this.oM.j; +U.setAttribute("style","width: 14em;");this.g$=[new bS([12,40],[[19,5,2],[19,5,1],[19,5,0]]),new dr([19,9,0],["","",""]),new dr([19,9,1],["","",""]),new hq([19,9,2])]; +for(var H=0;H",!1,C[H]); +U.k("click",this.anF,this);this.j.appendChild(U.j);this.VJ.push(U)}this.VJ[0].m0()}du.prototype=new gG; +du.prototype.ac6=function(){return this.$s};du.prototype.u=function(){return this.Dw[this.$s]};du.prototype.T=function(L){this.$s=this.Dw.indexOf(L); +for(var H=0;H";var L=this.aic,C=this.amv;B.IO(this.e.firstChild,L,C)}; +fV.prototype.u=function(){return this.Kl[this.eT]};fV.prototype.T=function(L){this.eT=this.Kl.indexOf(L); +this.kU()};function dF(L,C,U){gG.call(this);if(L==null)L=!1;if(C==null)C=!1;if(U==null)U=!1;this.ahu=C; +this.h2=null;this.zW=new fV([12,22],U);this.zW.parent=this;this.zW.k(B.E.L,this.yy,this);this.Fu=new bS([22,0],[[22,4,0],[22,4,1]]); +this.Fu.k(B.E.L,this.yy,this);var E=L?cU:cG;this.a0=new E([22,1],-100,100,"%");this.R$=new E("Horizontal Distortion:",-100,100,"%"); +this.h7=new E("Vertical Distortion:",-100,100,"%");this.a0.parent=this.R$.parent=this.h7.parent=this; +this.a0.k(B.E.L,this.yy,this);this.R$.k(B.E.L,this.yy,this);this.h7.k(B.E.L,this.yy,this)}dF.prototype=new gG; +dF.prototype.f=function(){this.zW.f();this.Fu.f();this.a0.f();var L=this.ahu?1:100;this.R$.uc(gS.get([22,2]).substring(0,L)+":"); +this.h7.uc(gS.get([22,3]).substring(0,L)+":")};dF.prototype.yy=function(){var L=this.h2,C=this.zW.u(),U=L.warpStyle.v.warpStyle; +if(C=="warpCustom")c.h2.vn(c.h2.b4(L),L);else delete L.customEnvelopeWarp;L.warpStyle.v.warpStyle=this.zW.u(); +L.warpRotate.v.Ornt=["Hrzn","Vrtc"][this.Fu.u()];L.warpValue.v=this.a0.u();L.warpPerspective.v=this.R$.u(); +L.warpPerspectiveOther.v=this.h7.u();if(C=="warpNone"||C=="warpCustom"){L.warpValue.v=0;L.warpPerspective.v=0; +L.warpPerspectiveOther.v=0}else if(U=="warpNone"||U=="warpCustom")L.warpValue.v=50;this.B(new q(B.E.L,!1)); +this.T(L)};dF.prototype.u=function(L){return JSON.parse(JSON.stringify(this.h2))};dF.prototype.T=function(L){this.h2=JSON.parse(JSON.stringify(L)); +this.zW.T(L.warpStyle.v.warpStyle);this.Fu.T(L.warpRotate.v.Ornt=="Hrzn"?0:1);this.a0.T(L.warpValue.v); +this.R$.T(L.warpPerspective.v);this.h7.T(L.warpPerspectiveOther.v);var C=L.warpStyle.v.warpStyle,U=C=="warpNone"||C=="warpCustom",E=[this.Fu,this.a0,this.R$,this.h7]; +for(var H=0;H=1)E={eB:U,rect:C.bl};else E=c.amt(U,C.bl,L);this.jA.push(E)}}; +fe.prototype.pM=function(){clearTimeout(this.aoa)};fe.prototype.P_=function(){if(this.xT==null||!B.DW(this.Vb))return; +var L=this.abA,C=this.Vb.width,U=this.Vb.height,h,x;if(L==null||L.width!=C||L.height!=U){L=this.abA=this.zS.createImageData(C,U); +console.log("creating image data")}var E=this.xT[this.BT],Y=this.jA[this.BT],z=this.z,r=z._u,p=z.e4,T=p.d,k=p.v,P=r.d*z.S,b=r.v*z.S,Q=Math.round((T-P)/2+z.g.x),K=Math.round((k-b)/2+z.g.y); +if(z.S<=1){x=Y.rect.clone();x.x=Q;x.y=K;P=x.d;b=x.v;h=Y.eB}else{var O=1/z.S,y=new _(Math.floor((p.x-Q)*O),Math.floor((p.y-K)*O),Math.ceil(p.d*O)+1,Math.ceil(p.v*O)+1),v=new _(0,0,y.d*z.S,y.v*z.S); +v.x=y.x*z.S+Q;v.y=y.y*z.S+K;if(z.YB==null||z.YB.length!=y.X()*4){z.YB=c.F(y.X()*4)}if(z.Gr==null||z.Gr.length!=v.X()*4){z.Gr=c.F(v.X()*4)}c.n0(z.YB,0); +c.La(Y.eB,Y.rect,z.YB,y);c.scale.su(z.YB,y.d,y.v,z.Gr,v.d,v.v,z.S);h=z.Gr;x=v}var i=new Uint8Array(L.data.buffer); +c.Wg(i,T,k,8,-Q,-K);c.Q.Kj("norm",h,x,i,p,p,1);this.zS.setTransform(1,0,0,1,0,0);this.zS.putImageData(L,0,0); +this.zS.clearRect(Q-1e3,K,1e3,b);this.zS.clearRect(Q+P,K,1e3,b);this.zS.clearRect(Q-1e3,K-1e3,P+2e3,1e3); +this.zS.clearRect(Q-1e3,K+b,P+2e3,1e3);var D=fe.YQ(z.S,"#ffffff");this.zS.putImageData(D,0,z.e4.v-D.height)}; +fe.QJ={};fe.YQ=function(L,C){var U="z"+L+","+C,E=fe.QJ[U];if(E)return E;var Y=Math.round(50*B.M()),z=Math.round(18*B.M()),r=B.w("canvas"),p=r.getContext("2d"); +r.width=Y;r.height=z;p.fillStyle="rgba(1,1,1,1)";p.fillRect(0,0,Y,z);p.font=Math.round(11*B.M())+"px monospace"; +p.fillStyle=C;var T=L*100;if(T<100)T=T.toFixed(2);else T=Math.round(T);T=T+"%";var k=p.measureText(T).width; +p.fillText(T,(Y-k)/2,Math.round(z*.7));E=fe.QJ[U]=p.getImageData(0,0,Y,z);return E};fe.prototype.Pa=function(){var L=this.xT,C=L.length,U=this.BT,E=this.xT[U],Y=(U+1)%C; +this.P_();if(C!=1&&L[Y].bl.cg(E.bl)){var z=E.Qz?parseInt(E.Qz.split(",").pop()):30;if(z==0)z=16;if(Y==0)this.EH++; +if(this.w9==0||this.EH1){this.z.S=1;this.z.g.U6(0,0);this.P_()}if(this.qr&&this.RP==this.Vb&&!this.MW)this.B(new q("mouseup")); +else{if(C=="zoom-in"||C=="zoom-out")this.HZ(this.pJ,C=="zoom-in")}};fe.prototype.g6=function(){return this.z.sQ(this.pJ.x,this.pJ.y)}; +function b3(){gG.call(this);this.D6=null;this.lL=null;this.Ut=null;this.$J=null;this.a9r="";this.iw=[]; +this.wK=0;this.$P=[];this.q2=0;this.OY=null;var L=this.j=B.w("div",""),C=this.aax=B.w("div","form"); +C.setAttribute("style","line-height:0; margin-bottom:0.5em;");L.appendChild(C);var U=this.Lo=B.w("span"); +C.appendChild(U);U.setAttribute("style","font-size:1.2em; font-weight:bold; margin-right:3em;");var E=this.a5H=new dh([25,2,0]); +E.T(!0);C.appendChild(E.j);E.k(B.E.L,this.Tj,this);var Y=this.bI=new dh([25,2,1]);Y.T(!0);C.appendChild(Y.j); +Y.k(B.E.L,this.Tj,this);var z=new ip(" ");C.appendChild(z.j);var r=this.ZF=new hq([25,1,1]);C.appendChild(r.j); +r.k(B.E.L,this.Tj,this);this.kN=new eG(14);this.kN.aiY(3);C.appendChild(this.kN.j);this.kN.parent=this; +this.kN.k(B.E.L,this.ajs,this);var p=this.akN=new br([25,1,2],null,null,!0);C.appendChild(p.j);p.k("click",this.J1,this); +this.ak8=this.alP.bind(this);this.gU=B.w("div","svggallery scrollable");L.appendChild(this.gU);this.gU.addEventListener("scroll",this.adF.bind(this))}b3.prototype=new gG; +b3.prototype.hU=function(L){this.and=L};b3.prototype.f=function(){this.Lo.textContent=gS.get([25,0]); +this.kN.f();this.a5H.f();this.bI.f();this.ZF.f();this.akN.f()};b3.prototype.AU=function(L,C){C-=26;this.D6=new hZ(L,C); +this.aax.setAttribute("style","width:"+L+"px");this.gU.setAttribute("style","width:"+L+"px; height:"+C+"px"); +if(B.DW(this.j))this.Tj()};b3.prototype.T=function(L){this.lL=L;this.Tj()};b3.prototype.adF=function(L){var C=this.gU; +if(C.scrollTop+C.clientHeight+10>=C.scrollHeight){this.Tj(!0)}};b3.prototype.ajs=function(L){this.Ut=null; +this.Tj()};b3.prototype.alP=function(L){if(Date.now()-this.q2<2e3)return;this.q2=Date.now();this.wK=this.$P.indexOf(L.currentTarget); +var C=this.uV(this.lL.x,this.lL.y);if(C[1]){var U=C[1].largeImageURL,E=new XMLHttpRequest;E.responseType="arraybuffer"; +E.open("GET",U,!0);E.onload=this.afN.bind(this);E.send();return}this.FV(C)};b3.prototype.afN=function(L){var C=L.target.response,U=iL.lc(C),E=iL.WS(U),Y=E.ER(C),z=this.uV(this.lL.x,this.lL.y,[C,Y[0].bl.d,Y[0].bl.v]); +this.FV(z)};b3.prototype.FV=function(L){var C=L[0],U=iL.lc(C),E=iL.WS(U),Y=new b7("template.psd");E.ER(C,Y); +var z=new q("tempready",!0);z.data={_u:Y};this.B(z)};b3.prototype.J1=function(L){var C=L.target;this.iw=[]; +this.Tj()};b3.prototype.a5s=function(L){var C=JSON.parse(L.target.response);this.$J=C.hits;this.Tj()}; +b3.prototype.Tj=function(L){if(this.lL==null||this.D6==null||this.and==null)return;if(this.D6.x<=0)return; +var C=this.lL.x,U=this.lL.y;if(Math.min(C,U)<50)return;if(L!=!0){this.$P=[];B.CF(this.gU);this.gU.scrollTop=0}if(this.$P.length>300)return; +var E=Math.min(1,300/Math.max(C,U)),Y=this.D6.clone();Y.x-=20;var z=Math.max(1,Math.floor(Y.x/(C*E))),r=Math.max(1,Math.ceil(Y.y/(U*E))); +E=Y.x/z/C;var p=z*r;if(this.Ut==null){var T=this.and.tW.Fj();this.Ut=[];for(var k in T){var P=T[k],b=P[3]; +if(!this.kN.HL(P))continue;if(P[5]==null||P[5].slice(0,2)=="gf")continue;this.Ut.push(P)}if(this.Ut.length==0)this.Ut.push(T.DejaVuSans)}var Q=this.bI.u(),K=this.ZF.u().trim(); +this.ZF.Q9(Q);if(Q&&(this.$J==null||K!=this.a9r)){var h=new XMLHttpRequest,x="https://pixabay.com/api/?image_type=photo"+(K==""?"":"&q="+encodeURIComponent(K))+"&per_page=200&page=1&key=10554583-a5eacb61c2e61105fdfb6eb88"; +if(K=="")x+="&safesearch=true";if(K=="")x="plugins/gallery.json";h.open("GET",x,!0);h.onload=this.a5s.bind(this); +h.onerror=function(I){console.log(I.target.response)};h.send();this.a9r=K;return}E*=(C*E-5)/(C*E);var O=this.$P.length; +for(var H=0;H