var opentype=(()=>{var Wt=Object.defineProperty;var Co=Object.getOwnPropertyDescriptor;var Lo=Object.getOwnPropertyNames;var Ro=Object.prototype.hasOwnProperty;var jt=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Eo=(e,t)=>{for(var n in t)Wt(e,n,{get:t[n],enumerable:!0})},wo=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Lo(t))!Ro.call(e,o)&&o!==n&&Wt(e,o,{get:()=>t[o],enumerable:!(s=Co(t,o))||s.enumerable});return e};var Do=e=>wo(Wt({},"__esModule",{value:!0}),e);var xc={};Eo(xc,{BoundingBox:()=>je,Font:()=>Fn,Glyph:()=>Be,Path:()=>le,_parse:()=>x,load:()=>gc,loadSync:()=>yc,parse:()=>Un});var Yt=0,Rn=-3;function We(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function Io(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new We,this.dtree=new We}var En=new We,wn=new We,Zt=new Uint8Array(30),$t=new Uint16Array(30),Dn=new Uint8Array(30),In=new Uint16Array(30),Ao=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),On=new We,he=new Uint8Array(288+32);function An(e,t,n,s){var o,r;for(o=0;o>>=1,t}function de(e,t,n){if(!t)return n;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,s+n}function Xt(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++o,n+=t.table[o],s-=t.table[o];while(s>=0);return e.tag=r,e.bitcount-=o,t.trans[n+s]}function Bo(e,t,n){var s,o,r,i,a,c;for(s=de(e,5,257),o=de(e,5,1),r=de(e,4,4),i=0;i<19;++i)he[i]=0;for(i=0;i8;)e.sourceIndex--,e.bitcount-=8;if(t=e.source[e.sourceIndex+1],t=256*t+e.source[e.sourceIndex],n=e.source[e.sourceIndex+3],n=256*n+e.source[e.sourceIndex+2],t!==(~n&65535))return Rn;for(e.sourceIndex+=4,s=t;s;--s)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,Yt}function Mn(e,t){var n=new Io(e,t),s,o,r;do{switch(s=Po(n),o=de(n,2,0),o){case 0:r=Go(n);break;case 1:r=Ln(n,En,wn);break;case 2:Bo(n,n.ltree,n.dtree),r=Ln(n,n.ltree,n.dtree);break;default:r=Rn}if(r!==Yt)throw new Error("Data error")}while(!s);return n.destLenthis.x2&&(this.x2=e)),typeof t=="number"&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))};Le.prototype.addX=function(e){this.addPoint(e,null)};Le.prototype.addY=function(e){this.addPoint(null,e)};Le.prototype.addBezier=function(e,t,n,s,o,r,i,a){let c=[e,t],l=[n,s],u=[o,r],p=[i,a];this.addPoint(e,t),this.addPoint(i,a);for(let f=0;f<=1;f++){let h=6*c[f]-12*l[f]+6*u[f],m=-3*c[f]+9*l[f]-9*u[f]+3*p[f],b=3*l[f]-3*c[f];if(m===0){if(h===0)continue;let L=-b/h;0b.length).map(b=>{let y=parseFloat(b);return(t.decimalPlaces||t.decimalPlaces===0)&&(y=lt(y,t.decimalPlaces)),y})}function u(m){if(!this.commands.length)return m;let b=this.commands[this.commands.length-1];for(let y=0;y-1)a[a.length-1]+=b;else if(r.indexOf(b)>-1)if(!i.type&&!this.commands.length&&(i.type="L"),b==="-")!i.type||y.indexOf("-")>0?c=!0:y.length?a.push("-"):a[a.length-1]=b;else if(!i.type||y.length>0)c=!0;else continue;else if(s.indexOf(b)>-1)i.type?(p.apply(this),i={type:b}):i.type=b;else{if(o.indexOf(b)>-1)throw new Error("Unsupported path command: "+b+". Currently supported commands are "+s.split("").join(", ")+".");` , \r\f\v`.indexOf(b)>-1?a.push(""):b==="."?!i.type||y.indexOf(b)>-1?c=!0:a[a.length-1]+=b:c=!0}if(c)throw new Error("Unexpected character: "+b+" at offset "+m)}p.apply(this),t.optimize&&(this.commands=Pn(this.commands));let f=t.flipY,h=t.flipYBase;if(f===!0&&t.flipYBase===void 0){let m=this.getBoundingBox();h=m.y1+m.y2}for(let m in this.commands){let b=this.commands[m];for(let y in b)["x","x1","x2"].includes(y)?this.commands[m][y]=t.x+b[y]*t.scale:["y","y1","y2"].includes(y)&&(this.commands[m][y]=t.y+(f?h-b[y]:b[y])*t.scale)}return this};j.fromSVG=function(e,t){return new j().fromSVG(e,t)};j.prototype.moveTo=function(e,t){this.commands.push({type:"M",x:e,y:t})};j.prototype.lineTo=function(e,t){this.commands.push({type:"L",x:e,y:t})};j.prototype.curveTo=j.prototype.bezierCurveTo=function(e,t,n,s,o,r){this.commands.push({type:"C",x1:e,y1:t,x2:n,y2:s,x:o,y:r})};j.prototype.quadTo=j.prototype.quadraticCurveTo=function(e,t,n,s){this.commands.push({type:"Q",x1:e,y1:t,x:n,y:s})};j.prototype.close=j.prototype.closePath=function(){this.commands.push({type:"Z"})};j.prototype.extend=function(e){if(e.commands)e=e.commands;else if(e instanceof je){let t=e;this.moveTo(t.x1,t.y1),this.lineTo(t.x2,t.y1),this.lineTo(t.x2,t.y2),this.lineTo(t.x1,t.y2),this.close();return}Array.prototype.push.apply(this.commands,e)};j.prototype.getBoundingBox=function(){let e=new je,t=0,n=0,s=0,o=0;for(let r=0;r=0&&c>0&&(a+=" "),a+=t(l)}return a}let s=this.commands;e.optimize&&(s=JSON.parse(JSON.stringify(this.commands)),s=Pn(s));let o=e.flipY,r=e.flipYBase;if(o===!0&&r===void 0){let a=new j;a.extend(s);let c=a.getBoundingBox();r=c.y1+c.y2}let i="";for(let a=0;a=0&&e<=255,"Byte value should be between 0 and 255."),[e]};U.BYTE=ce(1);v.CHAR=function(e){return[e.charCodeAt(0)]};U.CHAR=ce(1);v.CHARARRAY=function(e){typeof e=="undefined"&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));let t=[];for(let n=0;n>8&255,e&255]};U.USHORT=ce(2);v.SHORT=function(e){return e>=Nn&&(e=-(2*Nn-e)),[e>>8&255,e&255]};U.SHORT=ce(2);v.UINT24=function(e){return[e>>16&255,e>>8&255,e&255]};U.UINT24=ce(3);v.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,e&255]};U.ULONG=ce(4);v.LONG=function(e){return e>=Hn&&(e=-(2*Hn-e)),[e>>24&255,e>>16&255,e>>8&255,e&255]};U.LONG=ce(4);v.FLOAT=function(e){if(e>zo||e>24&255,e>>16&255,e>>8&255,e&255]};U.LONGDATETIME=ce(8);v.TAG=function(e){return S.argument(e.length===4,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]};U.TAG=ce(4);v.Card8=v.BYTE;U.Card8=U.BYTE;v.Card16=v.USHORT;U.Card16=U.USHORT;v.OffSize=v.BYTE;U.OffSize=U.BYTE;v.SID=v.USHORT;U.SID=U.USHORT;v.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?(e=e-108,[(e>>8)+247,e&255]):e>=-1131&&e<=-108?(e=-e-108,[(e>>8)+251,e&255]):e>=-32768&&e<=32767?v.NUMBER16(e):v.NUMBER32(e)};U.NUMBER=function(e){return v.NUMBER(e).length};v.NUMBER16=function(e){return[28,e>>8&255,e&255]};U.NUMBER16=ce(3);v.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,e&255]};U.NUMBER32=ce(5);v.REAL=function(e){let t=e.toString(),n=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(n){let r=parseFloat("1e"+((n[2]?+n[2]:0)+n[1].length));t=(Math.round(e*r)/r).toString()}let s="";for(let r=0,i=t.length;r>8&255,t[t.length]=s&255}return t};U.UTF16=function(e){return e.length*2};var Kt={"x-mac-croatian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u03A9\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uF8FF\xA9\u2044\u20AC\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E","x-mac-gaelic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u1E02\xB1\u2264\u2265\u1E03\u010A\u010B\u1E0A\u1E0B\u1E1E\u1E1F\u0120\u0121\u1E40\xE6\xF8\u1E41\u1E56\u1E57\u027C\u0192\u017F\u1E60\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\u1E61\u1E9B\xFF\u0178\u1E6A\u20AC\u2039\u203A\u0176\u0177\u1E6B\xB7\u1EF2\u1EF3\u204A\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u2663\xD2\xDA\xDB\xD9\u0131\xDD\xFD\u0174\u0175\u1E84\u1E85\u1E80\u1E81\u1E82\u1E83","x-mac-greek":"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\u20AC\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\xB7\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\xAD","x-mac-icelandic":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140A\u140B\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144E\u144F\u1450\u1451\u1455\u1456\u1466\u146D\u146E\u146F\u1470\u1472\u1473\u1483\u148B\u148C\u148D\u148E\u1490\u1491\xB0\u14A1\u14A5\u14A6\u2022\xB6\u14A7\xAE\xA9\u2122\u14A8\u14AA\u14AB\u14BB\u14C2\u14C3\u14C4\u14C5\u14C7\u14C8\u14D0\u14EF\u14F0\u14F1\u14F2\u14F4\u14F5\u1505\u14D5\u14D6\u14D7\u14D8\u14DA\u14DB\u14EA\u1528\u1529\u152A\u152B\u152D\u2026\xA0\u152E\u153E\u1555\u1556\u1557\u2013\u2014\u201C\u201D\u2018\u2019\u1558\u1559\u155A\u155D\u1546\u1547\u1548\u1549\u154B\u154C\u1550\u157F\u1580\u1581\u1582\u1583\u1584\u1585\u158F\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15A0\u15A1\u15A2\u15A3\u15A4\u15A5\u15A6\u157C\u0141\u0142","x-mac-ce":"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7",macintosh:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-romanian":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u0218\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\u0103\u0219\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\u20AC\u2039\u203A\u021A\u021B\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7","x-mac-turkish":"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u03A9\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uF8FF\xD2\xDA\xDB\xD9\uF8A0\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"};Te.MACSTRING=function(e,t,n,s){let o=Kt[s];if(o===void 0)return;let r="";for(let i=0;i=128&&(r=n[r],r===void 0))return;s[o]=r}return s};U.MACSTRING=function(e,t){let n=v.MACSTRING(e,t);return n!==void 0?n.length:0};function Qt(e){return e>=-128&&e<=127}function Wo(e,t,n){let s=0,o=e.length;for(;t>8&255,a+256&255)}return r}v.VARDELTAS=function(e){let t=0,n=[];for(;t=-128&&s<=127?t=jo(e,t,n):t=qo(e,t,n)}return n};v.INDEX=function(e){let t=1,n=[t],s=[];for(let a=0;a>8,t[i+1]=a&255;for(let c=0;c0)return new d(this.data,this.offset+t).parseStruct(e)};d.prototype.parsePointer32=function(e){let t=this.parseOffset32();if(t>0)return new d(this.data,this.offset+t).parseStruct(e)};d.prototype.parseListOfLists=function(e){let t=this.parseOffset16List(),n=t.length,s=this.relativeOffset,o=new Array(n);for(let r=0;r>1,t.skip("uShort",3),e.glyphIndexMap={};let i=new x.Parser(n,s+o+14),a=new x.Parser(n,s+o+16+r*2),c=new x.Parser(n,s+o+16+r*4),l=new x.Parser(n,s+o+16+r*6),u=s+o+16+r*8;for(let p=0;p=0;a-=1){let c=x.getUShort(e,t+4+a*8),l=x.getUShort(e,t+4+a*8+2);if(c===3&&(l===0||l===1||l===10)||c===0&&(l===0||l===1||l===2||l===3||l===4)){if(r=x.getULong(e,t+4+a*8+4),s)break}else c===0&&l===5&&(o=x.getULong(e,t+4+a*8+4),s=new x.Parser(e,t+o),s.parseUShort()!==14&&(o=-1,s=null))}if(r===-1)throw new Error("No valid cmap sub-tables found.");let i=new x.Parser(e,t+r);if(n.format=i.parseUShort(),n.format===12)Jo(n,i);else if(n.format===4)er(n,i,e,t,r);else throw new Error("Only format 4, 12 and 14 cmap tables are supported (found format "+n.format+").");return s&&tr(n,s),n}function sr(e,t,n){e.segments.push({end:t,start:t,delta:-(t-n),offset:0,glyphIndex:n})}function or(e){e.segments.push({end:65535,start:65535,delta:1,offset:0})}function rr(e){let t=!0,n;for(n=e.length-1;n>0;n-=1)if(e.get(n).unicode>65535){console.log("Adding CMAP format 12 (needed!)"),t=!1;break}let s=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:t?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:t?12:12+8}];t||(s=s.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),s=s.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);let o=new g.Table("cmap",s);for(o.segments=[],n=0;n1?x.getULong(e,t):x.getCard16(e,t),a=s>1?4:2,c,l;if(i!==0){let u=x.getByte(e,t+a);c=t+(i+1)*u+a;let p=t+a+1;for(let f=0;f1?x.getULong(e,t):x.getCard16(e,t),r=n>1?4:2,i,a;if(o!==0){let c=x.getByte(e,t+r);i=t+(o+1)*c+r;let l=t+r+1;for(let u=0;u1?x.getULong(n,s):x.getCard16(n,s),a=r>1?4:2,c=0;if(i!==0){let u=x.getByte(n,s+a);c=s+(i+1)*u+a}let l=x.getBytes(n,c+t[e],c+t[e+1]);return o&&(l=o(l)),l}function mr(e){let t="",s=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];for(;;){let o=e.parseByte(),r=o>>4,i=o&15;if(r===15||(t+=s[r],i===15))break;t+=s[i]}return parseFloat(t)}function gr(e,t){let n,s,o,r;if(t===28)return n=e.parseByte(),s=e.parseByte(),n<<8|s;if(t===29)return n=e.parseByte(),s=e.parseByte(),o=e.parseByte(),r=e.parseByte(),n<<24|s<<16|o<<8|r;if(t===30)return mr(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return n=e.parseByte(),(t-247)*256+n+108;if(t>=251&&t<=254)return n=e.parseByte(),-(t-251)*256-n-108;throw new Error("Invalid b0 "+t)}function yr(e){let t={};for(let n=0;n1&&c===23){Ur(i);continue}r.push([c,i]),i=[]}else i.push(gr(o,c,s))}return yr(r)}function Ye(e,t){return t<=390?t=qe[t]:e?t=e[t-391]:t=void 0,t}function an(e,t,n){let s={},o;for(let r=0;r2)throw new Error(`Unsupported CFF table version ${n.formatMajor}.${n.formatMinor}`);return n.size=x.getCard8(e,t+2),n.formatMajor<2?(n.offsetSize=x.getCard8(e,t+3),n.startOffset=t,n.endOffset=t+4):(n.topDictLength=x.getCard16(e,t+3),n.endOffset=t+8),n}var es=[{name:"version",op:0,type:"SID"},{name:"notice",op:1,type:"SID"},{name:"copyright",op:1200,type:"SID"},{name:"fullName",op:2,type:"SID"},{name:"familyName",op:3,type:"SID"},{name:"weight",op:4,type:"SID"},{name:"isFixedPitch",op:1201,type:"number",value:0},{name:"italicAngle",op:1202,type:"number",value:0},{name:"underlinePosition",op:1203,type:"number",value:-100},{name:"underlineThickness",op:1204,type:"number",value:50},{name:"paintType",op:1205,type:"number",value:0},{name:"charstringType",op:1206,type:"number",value:2},{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"uniqueId",op:13,type:"number"},{name:"fontBBox",op:5,type:["number","number","number","number"],value:[0,0,0,0]},{name:"strokeWidth",op:1208,type:"number",value:0},{name:"xuid",op:14,type:[],value:null},{name:"charset",op:15,type:"offset",value:0},{name:"encoding",op:16,type:"offset",value:0},{name:"charStrings",op:17,type:"offset",value:0},{name:"private",op:18,type:["number","offset"],value:[0,0]},{name:"ros",op:1230,type:["SID","SID","number"]},{name:"cidFontVersion",op:1231,type:"number",value:0},{name:"cidFontRevision",op:1232,type:"number",value:0},{name:"cidFontType",op:1233,type:"number",value:0},{name:"cidCount",op:1234,type:"number",value:8720},{name:"uidBase",op:1235,type:"number"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"fontName",op:1238,type:"SID"}],ts=[{name:"fontMatrix",op:1207,type:["real","real","real","real","real","real"],value:[.001,0,0,.001,0,0]},{name:"charStrings",op:17,type:"offset"},{name:"fdArray",op:1236,type:"offset"},{name:"fdSelect",op:1237,type:"offset"},{name:"vstore",op:24,type:"offset"}],ns=[{name:"subrs",op:19,type:"offset",value:0},{name:"defaultWidthX",op:20,type:"number",value:0},{name:"nominalWidthX",op:21,type:"number",value:0}],ss=[{name:"blueValues",op:6,type:"delta"},{name:"otherBlues",op:7,type:"delta"},{name:"familyBlues",op:7,type:"delta"},{name:"familyBlues",op:8,type:"delta"},{name:"familyOtherBlues",op:9,type:"delta"},{name:"blueScale",op:1209,type:"number",value:.039625},{name:"blueShift",op:1210,type:"number",value:7},{name:"blueFuzz",op:1211,type:"number",value:1},{name:"stdHW",op:10,type:"number"},{name:"stdVW",op:11,type:"number"},{name:"stemSnapH",op:1212,type:"number"},{name:"stemSnapV",op:1213,type:"number"},{name:"languageGroup",op:1217,type:"number",value:0},{name:"expansionFactor",op:1218,type:"number",value:.06},{name:"vsindex",op:22,type:"number",value:0},{name:"subrs",op:19,type:"offset"}],br=[{name:"private",op:18,type:["number","offset"],value:[0,0]}];function Sr(e,t,n,s){let o=rn(e,t,e.byteLength,s);return an(o,s>1?ts:es,n)}function ln(e,t,n,s,o){let r=rn(e,t,n,o);return an(r,o>1?ss:ns,s)}function vr(e,t,n){let s=rn(e,t,void 0,n);return an(s,br)}function Tr(e,t,n){let s=[];for(let o=0;ot;)e.pop()}function Zn(e,t,n,s){let o,r,i,a,c=new le,l=[],u=0,p=!1,f=!1,h=0,m=0,b,y,O,k,L=0,D=[],w=e.tables.cff2||e.tables.cff;if(O=w.topDict._defaultWidthX,k=w.topDict._nominalWidthX,e.isCIDFont||s>1){let I=w.topDict._fdSelect?w.topDict._fdSelect[t.index]:0,P=w.topDict._fdArray[I];b=P._subrs,y=P._subrsBias,s>1?(D=w.topDict._vstore.itemVariationStore.itemVariationSubtables,L=P._privateDict.vsindex):(O=P._defaultWidthX,k=P._nominalWidthX)}else b=w.topDict._subrs,y=w.topDict._subrsBias;let H=O;function X(I,P){f&&c.closePath(),c.moveTo(I,P),f=!0}function q(){let I;I=(l.length&1)!==0,I&&!p&&(H=l.shift()+k),u+=l.length>>1,l.length=0,p=!0}function E(I){let P,F,R,C,re,ve,Y,ne,Z,$,_,K,W=0;for(;W1&&!p&&(H=l.shift()+k,p=!0),m+=l.pop(),X(h,m);break;case 5:for(;l.length>0;)h+=l.shift(),m+=l.shift(),c.lineTo(h,m);break;case 6:for(;l.length>0&&(h+=l.shift(),c.lineTo(h,m),l.length!==0);)m+=l.shift(),c.lineTo(h,m);break;case 7:for(;l.length>0&&(m+=l.shift(),c.lineTo(h,m),l.length!==0);)h+=l.shift(),c.lineTo(h,m);break;case 8:for(;l.length>0;)o=h+l.shift(),r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),h=i+l.shift(),m=a+l.shift(),c.curveTo(o,r,i,a,h,m);break;case 10:re=l.pop()+y,ve=b[re],ve&&E(ve);break;case 11:if(s>1){console.error("CFF CharString operator return (11) is not supported in CFF2");break}return;case 12:switch(G=I[W],W+=1,G){case 35:o=h+l.shift(),r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),Y=i+l.shift(),ne=a+l.shift(),Z=Y+l.shift(),$=ne+l.shift(),_=Z+l.shift(),K=$+l.shift(),h=_+l.shift(),m=K+l.shift(),l.shift(),c.curveTo(o,r,i,a,Y,ne),c.curveTo(Z,$,_,K,h,m);break;case 34:o=h+l.shift(),r=m,i=o+l.shift(),a=r+l.shift(),Y=i+l.shift(),ne=a,Z=Y+l.shift(),$=a,_=Z+l.shift(),K=m,h=_+l.shift(),c.curveTo(o,r,i,a,Y,ne),c.curveTo(Z,$,_,K,h,m);break;case 36:o=h+l.shift(),r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),Y=i+l.shift(),ne=a,Z=Y+l.shift(),$=a,_=Z+l.shift(),K=$+l.shift(),h=_+l.shift(),c.curveTo(o,r,i,a,Y,ne),c.curveTo(Z,$,_,K,h,m);break;case 37:o=h+l.shift(),r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),Y=i+l.shift(),ne=a+l.shift(),Z=Y+l.shift(),$=ne+l.shift(),_=Z+l.shift(),K=$+l.shift(),Math.abs(_-h)>Math.abs(K-m)?h=_+l.shift():m=K+l.shift(),c.curveTo(o,r,i,a,Y,ne),c.curveTo(Z,$,_,K,h,m);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+G),l.length=0}break;case 14:if(s>1){console.error("CFF CharString operator endchar (14) is not supported in CFF2");break}l.length>0&&!p&&(H=l.shift()+k,p=!0),f&&(c.closePath(),f=!1);break;case 15:if(s<2){console.error("CFF2 CharString operator vsindex (15) is not supported in CFF");break}L=l.pop();break;case 16:if(s<2){console.error("CFF2 CharString operator blend (16) is not supported in CFF");break}var ze=D[L],we=l.pop(),at=we*ze.regionIndexes.length,De=l.length-at,_e=De-we;for(let ie=0;ie>3;break;case 21:l.length>2&&!p&&(H=l.shift()+k,p=!0),m+=l.pop(),h+=l.pop(),X(h,m);break;case 22:l.length>1&&!p&&(H=l.shift()+k,p=!0),h+=l.pop(),X(h,m);break;case 23:q();break;case 24:for(;l.length>2;)o=h+l.shift(),r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),h=i+l.shift(),m=a+l.shift(),c.curveTo(o,r,i,a,h,m);h+=l.shift(),m+=l.shift(),c.lineTo(h,m);break;case 25:for(;l.length>6;)h+=l.shift(),m+=l.shift(),c.lineTo(h,m);o=h+l.shift(),r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),h=i+l.shift(),m=a+l.shift(),c.curveTo(o,r,i,a,h,m);break;case 26:for(l.length&1&&(h+=l.shift());l.length>0;)o=h,r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),h=i,m=a+l.shift(),c.curveTo(o,r,i,a,h,m);break;case 27:for(l.length&1&&(m+=l.shift());l.length>0;)o=h+l.shift(),r=m,i=o+l.shift(),a=r+l.shift(),h=i+l.shift(),m=a,c.curveTo(o,r,i,a,h,m);break;case 28:P=I[W],F=I[W+1],l.push((P<<24|F<<16)>>16),W+=2;break;case 29:re=l.pop()+e.gsubrsBias,ve=e.gsubrs[re],ve&&E(ve);break;case 30:for(;l.length>0&&(o=h,r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),h=i+l.shift(),m=a+(l.length===1?l.shift():0),c.curveTo(o,r,i,a,h,m),l.length!==0);)o=h+l.shift(),r=m,i=o+l.shift(),a=r+l.shift(),m=a+l.shift(),h=i+(l.length===1?l.shift():0),c.curveTo(o,r,i,a,h,m);break;case 31:for(;l.length>0&&(o=h+l.shift(),r=m,i=o+l.shift(),a=r+l.shift(),m=a+l.shift(),h=i+(l.length===1?l.shift():0),c.curveTo(o,r,i,a,h,m),l.length!==0);)o=h,r=m+l.shift(),i=o+l.shift(),a=r+l.shift(),h=i+l.shift(),m=a+(l.length===1?l.shift():0),c.curveTo(o,r,i,a,h,m);break;default:G<32?console.log("Glyph "+t.index+": unknown operator "+G):G<247?l.push(G-139):G<251?(P=I[W],W+=1,l.push((G-247)*256+P+108)):G<255?(P=I[W],W+=1,l.push(-(G-251)*256-P-108)):(P=I[W],F=I[W+1],R=I[W+2],C=I[W+3],W+=4,l.push((P<<24|F<<16|R<<8|C)/65536))}}}return E(n),p&&(t.advanceWidth=H),c}function $n(e,t,n,s,o){let r=[],i,a=new x.Parser(e,t),c=a.parseCard8();if(c===0)for(let l=0;l=s)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+s+")");r.push(i)}else if(c===3||o>1&&c===4){let l=c===4?a.parseULong():a.parseCard16(),u=c===4?a.parseULong():a.parseCard16();if(u!==0)throw new Error(`CFF Table CID Font FDSelect format ${c} range has bad initial GID ${u}`);let p;for(let f=0;f=s)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+s+")");if(p>n)throw new Error(`CFF Table CID Font FDSelect format ${o} range has bad GID ${p}`);for(;u1?null:me(e,r.endOffset,x.bytesToString),a=r.formatMajor>1?null:me(e,i.endOffset),c=r.formatMajor>1?null:me(e,a.endOffset,x.bytesToString),l=me(e,r.formatMajor>1?t+r.size+r.topDictLength:c.endOffset,void 0,r.formatMajor);n.gsubrs=l.objects,n.gsubrsBias=vt(n.gsubrs);let u;if(r.formatMajor>1){let f=t+r.size,h=x.getBytes(e,f,f+r.topDictLength);u=on(e,0,[h],void 0,r.formatMajor)[0]}else{let f=on(e,t,a.objects,c.objects,r.formatMajor);if(f.length!==1)throw new Error("CFF table has too many fonts in 'FontSet' - count of fonts NameIndex.length = "+f.length);u=f[0]}if(o.topDict=u,u._privateDict&&(n.defaultWidthX=u._privateDict.defaultWidthX,n.nominalWidthX=u._privateDict.nominalWidthX),r.formatMajor<2&&u.ros[0]!==void 0&&u.ros[1]!==void 0&&(n.isCIDFont=!0),r.formatMajor>1){let f=u.fdArray,h=u.fdSelect;if(!f)throw new Error("This is a CFF2 font, but FDArray information is missing");let m=me(e,t+f,null,r.formatMajor),b=Tr(e,t,m.objects);u._fdArray=b,h&&(u._fdSelect=$n(e,t+h,n.numGlyphs,b.length,r.formatMajor))}else if(n.isCIDFont){let f=u.fdArray,h=u.fdSelect;if(f===0||h===0)throw new Error("Font is marked as a CID font, but FDArray and/or FDSelect information is missing");f+=t;let m=me(e,f),b=on(e,t,m.objects,c.objects,r.formatMajor);u._fdArray=b,h+=t,u._fdSelect=$n(e,h,n.numGlyphs,b.length,r.formatMajor)}if(r.formatMajor<2){let f=t+u.private[1],h=ln(e,f,u.private[0],c.objects,r.formatMajor);if(n.defaultWidthX=h.defaultWidthX,n.nominalWidthX=h.nominalWidthX,h.subrs!==0){let m=f+h.subrs,b=me(e,m);n.subrs=b.objects,n.subrsBias=vt(n.subrs)}else n.subrs=[],n.subrsBias=0}let p;if(s.lowMemory?(p=hr(e,t+u.charStrings,r.formatMajor),n.nGlyphs=p.offsets.length-(r.formatMajor>1?1:0)):(p=me(e,t+u.charStrings,null,r.formatMajor),n.nGlyphs=p.objects.length),r.formatMajor>1&&n.tables.maxp&&n.nGlyphs!==n.tables.maxp.numGlyphs&&console.error(`Glyph count in the CFF2 table (${n.nGlyphs}) must correspond to the glyph count in the maxp table (${n.tables.maxp.numGlyphs})`),r.formatMajor<2){let f=kr(e,t+u.charset,n.nGlyphs,c.objects);u.encoding===0?n.cffEncoding=new Xe(qn,f):u.encoding===1?n.cffEncoding=new Xe(Xn,f):n.cffEncoding=Fr(e,t+u.encoding,f),n.encoding=n.encoding||n.cffEncoding}if(n.glyphs=new J.GlyphSet(n),s.lowMemory)n._push=function(f){let h=dr(f,p.offsets,e,t+u.charStrings,void 0,r.formatMajor);n.glyphs.push(f,J.cffGlyphLoader(n,f,Zn,h,r.formatMajor))};else for(let f=0;f=0&&(n=s),s=t.indexOf(e),s>=0?n=s+qe.length:(n=qe.length+t.length,t.push(e)),n}function Cr(){return new g.Record("Header",[{name:"major",type:"Card8",value:1},{name:"minor",type:"Card8",value:0},{name:"hdrSize",type:"Card8",value:4},{name:"major",type:"Card8",value:1}])}function Lr(e){let t=new g.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(let n=0;n1?ts:es,e,t),s}function Qn(e){let t=new g.Record("Top DICT INDEX",[{name:"topDicts",type:"INDEX",value:[]}]);return t.topDicts=[{name:"topDict_0",type:"TABLE",value:e}],t}function Rr(e){let t=new g.Record("String INDEX",[{name:"strings",type:"INDEX",value:[]}]);t.strings=[];for(let n=0;n1?ss:ns,e,t),s}function Mr(e,t){let s=new g.Table("CFF ",[{name:"header",type:"RECORD"},{name:"nameIndex",type:"RECORD"},{name:"topDictIndex",type:"RECORD"},{name:"stringIndex",type:"RECORD"},{name:"globalSubrIndex",type:"RECORD"},{name:"charsets",type:"RECORD"},{name:"charStringsIndex",type:"RECORD"},{name:"privateDict",type:"RECORD"}]),o=1/t.unitsPerEm,r={version:t.version,fullName:t.fullName,familyName:t.familyName,weight:t.weightName,fontBBox:t.fontBBox||[0,0,0,0],fontMatrix:[o,0,0,o,0,0],charset:999,encoding:0,charStrings:999,private:[0,999]},i={},a=[],c;for(let f=1;f=n.begin&&e=1&&(n.ulCodePageRange1=s.parseULong(),n.ulCodePageRange2=s.parseULong()),n.version>=2&&(n.sxHeight=s.parseShort(),n.sCapHeight=s.parseShort(),n.usDefaultChar=s.parseUShort(),n.usBreakChar=s.parseUShort(),n.usMaxContent=s.parseUShort()),n}function oi(e){return new g.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)}var $e={parse:si,make:oi,unicodeRanges:un,getUnicodeRange:ni};function ri(e,t){let n={},s=new x.Parser(e,t);switch(n.version=s.parseVersion(),n.italicAngle=s.parseFixed(),n.underlinePosition=s.parseShort(),n.underlineThickness=s.parseShort(),n.isFixedPitch=s.parseULong(),n.minMemType42=s.parseULong(),n.maxMemType42=s.parseULong(),n.minMemType1=s.parseULong(),n.maxMemType1=s.parseULong(),n.version){case 1:n.names=ke.slice();break;case 2:n.numberOfGlyphs=s.parseUShort(),n.glyphNameIndex=new Array(n.numberOfGlyphs);for(let o=0;o=ke.length){let r=s.parseChar();n.names.push(s.parseString(r))}break;case 2.5:n.numberOfGlyphs=s.parseUShort(),n.offset=new Array(n.numberOfGlyphs);for(let o=0;o[{name:"glyphID_"+i,type:"USHORT",value:r.glyphID},{name:"firstLayerIndex_"+i,type:"USHORT",value:r.firstLayerIndex},{name:"numLayers_"+i,type:"USHORT",value:r.numLayers}]).flat(),...n.map((r,i)=>[{name:"LayerGlyphID_"+i,type:"USHORT",value:r.glyphID},{name:"paletteIndex_"+i,type:"USHORT",value:r.paletteIndex}]).flat()])}var Dt={parse:pi,make:fi};function hi(e,t){let n=new d(e,t),s=n.parseShort(),o=n.parseShort(),r=n.parseShort(),i=n.parseShort(),a=n.parseOffset32(),c=n.parseUShortList(r);n.relativeOffset=a;let l=n.parseULongList(i);return{version:s,numPaletteEntries:o,colorRecords:l,colorRecordIndices:c}}function di({version:e=0,numPaletteEntries:t=0,colorRecords:n=[],colorRecordIndices:s=[0]}){return S.argument(e===0,"Only CPALv0 are supported."),S.argument(n.length,"No colorRecords given."),S.argument(s.length,"No colorRecordIndices given."),s.length>1&&S.argument(t,"Can't infer numPaletteEntries on multiple colorRecordIndices"),new g.Table("CPAL",[{name:"version",type:"USHORT",value:e},{name:"numPaletteEntries",type:"USHORT",value:t||n.length},{name:"numPalettes",type:"USHORT",value:s.length},{name:"numColorRecords",type:"USHORT",value:n.length},{name:"colorRecordsArrayOffset",type:"ULONG",value:12+2*s.length},...s.map((o,r)=>({name:"colorRecordIndices_"+r,type:"USHORT",value:o})),...n.map((o,r)=>({name:"colorRecords_"+r,type:"ULONG",value:o}))])}var It={parse:hi,make:di};function hs(){return typeof window!="undefined"}function Ne(e,t){if(!e)throw t}function At(e,t){let n=e.length;if(n!==t.length)return!1;for(let s=0;s1||r>0?s.parseUShort():void 0;n!==void 0&&S.argument(c>=n.axes.length,"STAT axis count must be greater than or equal to fvar axis count"),u>0&&S.argument(c>=0,"STAT axis count must be greater than 0 if STAT axis value count is greater than 0");let h=[];for(let y=0;ya.value.tag?1:-1}),t.fields=t.fields.concat(s),t.fields=t.fields.concat(o),t}function xs(e,t,n){for(let s=0;s0)return e.glyphs.get(o).getMetrics()}return n}function Ii(e){let t=0;for(let n=0;nie||c===void 0)&&ie>0&&(c=ie),l 123 are reserved for internal usage");if(G.name===".notdef")continue;let Ie=G.getMetrics();t.push(Ie.xMin),n.push(Ie.yMin),s.push(Ie.xMax),o.push(Ie.yMax),i.push(Ie.leftSideBearing),a.push(Ie.rightSideBearing),r.push(G.advanceWidth)}let m={xMin:Math.min.apply(null,t),yMin:Math.min.apply(null,n),xMax:Math.max.apply(null,s),yMax:Math.max.apply(null,o),advanceWidthMax:Math.max.apply(null,r),advanceWidthAvg:Ii(r),minLeftSideBearing:Math.min.apply(null,i),maxLeftSideBearing:Math.max.apply(null,i),minRightSideBearing:Math.min.apply(null,a)};m.ascender=e.ascender,m.descender=e.descender;let b=Tt.make({flags:3,unitsPerEm:e.unitsPerEm,xMin:m.xMin,yMin:m.yMin,xMax:m.xMax,yMax:m.yMax,lowestRecPPEM:3,createdTimestamp:e.createdTimestamp}),y=kt.make({ascender:m.ascender,descender:m.descender,advanceWidthMax:m.advanceWidthMax,minLeftSideBearing:m.minLeftSideBearing,minRightSideBearing:m.minRightSideBearing,xMaxExtent:m.maxLeftSideBearing+(m.xMax-m.xMin),numberOfHMetrics:e.glyphs.length}),O=Ot.make(e.glyphs.length),k=$e.make(Object.assign({xAvgCharWidth:Math.round(m.advanceWidthAvg),usFirstCharIndex:c,usLastCharIndex:l,ulUnicodeRange1:u,ulUnicodeRange2:p,ulUnicodeRange3:f,ulUnicodeRange4:h,sTypoAscender:m.ascender,sTypoDescender:m.descender,sTypoLineGap:0,usWinAscent:m.yMax,usWinDescent:Math.abs(m.yMin),ulCodePageRange1:1,sxHeight:xs(e,"xyvw",{yMax:Math.round(m.ascender/2)}).yMax,sCapHeight:xs(e,"HIKLEFJMNTZBDPRAGOQSUVWXY",m).yMax,usDefaultChar:e.hasChar(" ")?32:0,usBreakChar:e.hasChar(" ")?32:0},e.tables.os2)),L=Ft.make(e.glyphs),D=xt.make(e.glyphs),w=e.getEnglishName("fontFamily"),H=e.getEnglishName("fontSubfamily"),X=w+" "+H,q=e.getEnglishName("postScriptName");q||(q=w.replace(/\s/g,"")+"-"+H);let E={};for(let B in e.names)E[B]=e.names[B];E.unicode=E.unicode||{},E.macintosh=E.macintosh||{},E.windows=E.windows||{};let I=e.names.unicode||{},P=e.names.macintosh||{},F=e.names.windows||{};for(let B in["unicode","macintosh","windows"])E[B]=E[B]||{},E[B].uniqueID||(E.unicode.uniqueID={en:e.getEnglishName("manufacturer")+":"+X}),E[B].postScriptName||(E.unicode.postScriptName={en:q});E.unicode.preferredFamily||(E.unicode.preferredFamily=I.fontFamily||P.fontFamily||F.fontFamily),E.macintosh.preferredFamily||(E.macintosh.preferredFamily=P.fontFamily||I.fontFamily||F.fontFamily),E.windows.preferredFamily||(E.windows.preferredFamily=F.fontFamily||I.fontFamily||P.fontFamily),E.unicode.preferredSubfamily||(E.unicode.preferredSubfamily=I.fontSubfamily||P.fontSubfamily||F.fontSubfamily),E.macintosh.preferredSubfamily||(E.macintosh.preferredSubfamily=P.fontSubfamily||I.fontSubfamily||F.fontSubfamily),E.windows.preferredSubfamily||(E.windows.preferredSubfamily=F.fontSubfamily||I.fontSubfamily||P.fontSubfamily);let R=e.tables.fvar?Mt.make(e.tables.fvar,e.names):void 0,C=e.tables.gasp?Gt.make(e.tables.gasp):void 0,re=[],ve=Lt.make(E,re),Y=re.length>0?Ut.make(re):void 0,ne=Rt.make(e.tables.post),Z=Ze.make(e.glyphs,{version:e.getEnglishName("version"),fullName:X,familyName:w,weightName:H,postScriptName:q,unitsPerEm:e.unitsPerEm,fontBBox:[0,m.yMin,m.ascender,m.advanceWidthMax]}),$=e.metas&&Object.keys(e.metas).length>0?wt.make(e.metas):void 0,_=[b,y,O,k,ve,D,ne,Z,L];Y&&_.push(Y);let K={gsub:Et,cpal:It,colr:Dt,stat:Pt,avar:Bt},W={avar:[e.tables.fvar]};R&&_.push(R);for(let B in K){let G=e.tables[B];G&&_.push(K[B].make.call(e,G,...W[B]||[]))}$&&_.push($),C&&_.push(C);let ze=bs(_),we=ze.encode(),at=pn(we),De=ze.fields,_e=!1;for(let B=0;B>>1,r=e[o].tag;if(r===t)return o;r>>1,r=e[o];if(r===t)return o;r>>1;n=e[r];let i=n.start;if(i===t)return n;i0)return n=e[s-1],t>n.end?0:n}function ks(e,t){this.font=e,this.tableName=t}ks.prototype={searchTag:fn,binSearch:vs,getTable:function(e){let t=this.font.tables[this.tableName];return!t&&e&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){let e=this.getTable();return e?e.scripts.map(function(t){return t.tag}):[]},getDefaultScriptName:function(){let e=this.getTable();if(!e)return;let t=!1;for(let n=0;n=0)return s[o].script;if(t){let r={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return s.splice(-1-o,0,r),r.script}}},getLangSysTable:function(e,t,n){let s=this.getScriptTable(e,n);if(s){if(!t||t==="dflt"||t==="DFLT")return s.defaultLangSys;let o=fn(s.langSysRecords,t);if(o>=0)return s.langSysRecords[o].langSys;if(n){let r={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return s.langSysRecords.splice(-1-o,0,r),r.langSys}}},getFeatureTable:function(e,t,n,s){let o=this.getLangSysTable(e,t,s);if(o){let r,i=o.featureIndexes,a=this.font.tables[this.tableName].features;for(let c=0;c=a[c-1].tag,"Features must be added in alphabetical order."),r={tag:n,feature:{params:0,lookupListIndexes:[]}},a.push(r),i.push(c),r.feature}}},getLookupTables:function(e,t,n,s,o){let r=this.getFeatureTable(e,t,n,o),i=[];if(r){let a,c=r.lookupListIndexes,l=this.font.tables[this.tableName].lookups;for(let u=0;u=0?n:-1}case 2:{let n=Ts(e.ranges,t);return n?n.index+t-n.start:-1}}},expandCoverage:function(e){if(e.format===1)return e.glyphs;{let t=[],n=e.ranges;for(let s=0;s1,'Multiple: "by" must be an array of two or more ids');let o=this.getLookupTables(n,s,e,2,!0)[0],r=hn(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});S.assert(r.coverage.format===1,"Multiple: unable to modify coverage table format "+r.coverage.format);let i=t.sub,a=this.binSearch(r.coverage.glyphs,i);a<0&&(a=-1-a,r.coverage.glyphs.splice(a,0,i),r.sequences.splice(a,0,0)),r.sequences[a]=t.by};ee.prototype.addAlternate=function(e,t,n,s){let o=this.getLookupTables(n,s,e,3,!0)[0],r=hn(o,1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});S.assert(r.coverage.format===1,"Alternate: unable to modify coverage table format "+r.coverage.format);let i=t.sub,a=this.binSearch(r.coverage.glyphs,i);a<0&&(a=-1-a,r.coverage.glyphs.splice(a,0,i),r.alternateSets.splice(a,0,0)),r.alternateSets[a]=t.by};ee.prototype.addLigature=function(e,t,n,s){let o=this.getLookupTables(n,s,e,4,!0)[0],r=o.subtables[0];r||(r={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},o.subtables[0]=r),S.assert(r.coverage.format===1,"Ligature: unable to modify coverage table format "+r.coverage.format);let i=t.sub[0],a=t.sub.slice(1),c={ligGlyph:t.by,components:a},l=this.binSearch(r.coverage.glyphs,i);if(l>=0){let u=r.ligatureSets[l];for(let p=0;p0?(r=e.parseByte(),t&o||(r=-r),r=n+r):(t&o)>0?r=n:r=n+e.parseShort(),r}function Cs(e,t,n){let s=new x.Parser(t,n);e.numberOfContours=s.parseShort(),e._xMin=s.parseShort(),e._yMin=s.parseShort(),e._xMax=s.parseShort(),e._yMax=s.parseShort();let o,r;if(e.numberOfContours>0){let i=e.endPointIndices=[];for(let c=0;c0){let l=s.parseByte();for(let u=0;u0){let c=[],l;if(a>0){for(let f=0;f=0,c.push(l);let u=0;for(let f=0;f0?(o&2)>0?(a.dx=s.parseShort(),a.dy=s.parseShort()):a.matchedPoints=[s.parseUShort(),s.parseUShort()]:(o&2)>0?(a.dx=s.parseChar(),a.dy=s.parseChar()):a.matchedPoints=[s.parseByte(),s.parseByte()],(o&8)>0?a.xScale=a.yScale=s.parseF2Dot14():(o&64)>0?(a.xScale=s.parseF2Dot14(),a.yScale=s.parseF2Dot14()):(o&128)>0&&(a.xScale=s.parseF2Dot14(),a.scale01=s.parseF2Dot14(),a.scale10=s.parseF2Dot14(),a.yScale=s.parseF2Dot14()),e.components.push(a),i=!!(o&32)}if(o&256){e.instructionLength=s.parseUShort(),e.instructions=[];for(let a=0;at.points.length-1||s.matchedPoints[1]>o.points.length-1)throw Error("Matched points out of range in "+t.name);let i=t.points[s.matchedPoints[0]],a=o.points[s.matchedPoints[1]],c={xScale:s.xScale,scale01:s.scale01,scale10:s.scale10,yScale:s.yScale,dx:0,dy:0};a=dn([a],c)[0],c.dx=i.x-a.x,c.dy=i.y-a.y,r=dn(o.points,c)}t.points=t.points.concat(r)}}return Ls(t.points)}function Pi(e,t,n,s){let o=new J.GlyphSet(s);for(let r=0;r2)return;let n=this.font,s=this._prepState;if(!s||s.ppem!==t){let o=this._fpgmState;if(!o){Ce.prototype=Wi,o=this._fpgmState=new Ce("fpgm",n.tables.fpgm),o.funcs=[],o.font=n,exports.DEBUG&&(console.log("---EXEC FPGM---"),o.step=-1);try{Ee(o)}catch(i){console.log("Hinting error in FPGM:"+i),this._errorState=3;return}}Ce.prototype=o,s=this._prepState=new Ce("prep",n.tables.prep),s.ppem=t;let r=n.tables.cvt;if(r){let i=s.cvt=new Array(r.length),a=t/n.unitsPerEm;for(let c=0;c1))try{return qs(e,s)}catch(o){this._errorState<1&&(console.log("Hinting error:"+o),console.log("Note: further hinting errors are silenced")),this._errorState=1;return}};qs=function(e,t){let n=t.ppem/t.font.unitsPerEm,s=n,o=e.components,r,i,a;if(Ce.prototype=t,!o)a=new Ce("glyf",e.instructions),exports.DEBUG&&(console.log("---EXEC GLYPH---"),a.step=-1),xn(e,a,n,s),i=a.gZone;else{let c=t.font;i=[],r=[];for(let l=0;l=176&&r<=183)s+=r-176+1;else if(r>=184&&r<=191)s+=(r-184+1)*2;else if(t&&o===1&&r===27)break;while(o>0);e.ip=s}function Es(e,t){exports.DEBUG&&console.log(t.step,"SVTCA["+e.axis+"]"),t.fv=t.pv=t.dpv=e}function ws(e,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+e.axis+"]"),t.pv=t.dpv=e}function Ds(e,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+e.axis+"]"),t.fv=e}function Is(e,t){let n=t.stack,s=n.pop(),o=n.pop(),r=t.z2[s],i=t.z1[o];exports.DEBUG&&console.log("SPVTL["+e+"]",s,o);let a,c;e?(a=r.y-i.y,c=i.x-r.x):(a=i.x-r.x,c=i.y-r.y),t.pv=t.dpv=nt(a,c)}function As(e,t){let n=t.stack,s=n.pop(),o=n.pop(),r=t.z2[s],i=t.z1[o];exports.DEBUG&&console.log("SFVTL["+e+"]",s,o);let a,c;e?(a=r.y-i.y,c=i.x-r.x):(a=i.x-r.x,c=i.y-r.y),t.fv=nt(a,c)}function ji(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",n,s),e.pv=e.dpv=nt(s,n)}function qi(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",n,s),e.fv=nt(s,n)}function Xi(e){let t=e.stack,n=e.pv;exports.DEBUG&&console.log(e.step,"GPV[]"),t.push(n.x*16384),t.push(n.y*16384)}function Yi(e){let t=e.stack,n=e.fv;exports.DEBUG&&console.log(e.step,"GFV[]"),t.push(n.x*16384),t.push(n.y*16384)}function Zi(e){e.fv=e.pv,exports.DEBUG&&console.log(e.step,"SFVTPV[]")}function $i(e){let t=e.stack,n=t.pop(),s=t.pop(),o=t.pop(),r=t.pop(),i=t.pop(),a=e.z0,c=e.z1,l=a[n],u=a[s],p=c[o],f=c[r],h=e.z2[i];exports.DEBUG&&console.log("ISECT[], ",n,s,o,r,i);let m=l.x,b=l.y,y=u.x,O=u.y,k=p.x,L=p.y,D=f.x,w=f.y,H=(m-y)*(L-w)-(b-O)*(k-D),X=m*O-b*y,q=k*w-L*D;h.x=(X*(k-D)-q*(m-y))/H,h.y=(X*(L-w)-q*(b-O))/H}function Ki(e){e.rp0=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)}function Qi(e){e.rp1=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)}function Ji(e){e.rp2=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)}function ea(e){let t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP0[]",t),e.zp0=t,t){case 0:e.tZone||Vt(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function ta(e){let t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP1[]",t),e.zp1=t,t){case 0:e.tZone||Vt(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function na(e){let t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP2[]",t),e.zp2=t,t){case 0:e.tZone||Vt(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function sa(e){let t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZPS[]",t),e.zp0=e.zp1=e.zp2=t,t){case 0:e.tZone||Vt(e),e.z0=e.z1=e.z2=e.tZone;break;case 1:e.z0=e.z1=e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function oa(e){e.loop=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)}function ra(e){exports.DEBUG&&console.log(e.step,"RTG[]"),e.round=Ys}function ia(e){exports.DEBUG&&console.log(e.step,"RTHG[]"),e.round=Vi}function aa(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SMD[]",t),e.minDis=t/64}function la(e){exports.DEBUG&&console.log(e.step,"ELSE[]"),$s(e,!1)}function ca(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"JMPR[]",t),e.ip+=t-1}function ua(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCVTCI[]",t),e.cvCutIn=t/64}function pa(e){let t=e.stack;exports.DEBUG&&console.log(e.step,"DUP[]"),t.push(t[t.length-1])}function mn(e){exports.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function fa(e){exports.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0}function ha(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"SWAP[]"),t.push(n),t.push(s)}function da(e){let t=e.stack;exports.DEBUG&&console.log(e.step,"DEPTH[]"),t.push(t.length)}function ma(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"LOOPCALL[]",n,s);let o=e.ip,r=e.prog;e.prog=e.funcs[n];for(let i=0;i1?"loop "+(t.loop-a)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",l)}t.loop=1}function Gs(e,t){let n=t.stack,s=e?t.rp1:t.rp2,o=(e?t.z0:t.z1)[s],r=t.fv,i=t.pv,a=n.pop(),c=t.z2[t.contours[a]],l=c;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",a);let u=i.distance(o,o,!1,!0);do l!==o&&r.setRelative(l,l,u,i),l=l.nextPointOnContour;while(l!==c)}function Ns(e,t){let n=t.stack,s=e?t.rp1:t.rp2,o=(e?t.z0:t.z1)[s],r=t.fv,i=t.pv,a=n.pop();exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",a);let c;switch(a){case 0:c=t.tZone;break;case 1:c=t.gZone;break;default:throw new Error("Invalid zone")}let l,u=i.distance(o,o,!1,!0),p=c.length-2;for(let f=0;f1?"loop "+(e.loop-n)+": ":"")+"SHPIX[]",i,o),s.setRelative(a,a,o),s.touch(a)}e.loop=1}function va(e){let t=e.stack,n=e.rp1,s=e.rp2,o=e.loop,r=e.z0[n],i=e.z1[s],a=e.fv,c=e.dpv,l=e.z2;for(;o--;){let u=t.pop(),p=l[u];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-o)+": ":"")+"IP[]",u,n,"<->",s),a.interpolate(p,r,i,c),a.touch(p)}e.loop=1}function Hs(e,t){let n=t.stack,s=n.pop()/64,o=n.pop(),r=t.z1[o],i=t.z0[t.rp0],a=t.fv,c=t.pv;a.setRelative(r,i,s,c),a.touch(r),exports.DEBUG&&console.log(t.step,"MSIRP["+e+"]",s,o),t.rp1=t.rp0,t.rp2=o,e&&(t.rp0=o)}function Ta(e){let t=e.stack,n=e.rp0,s=e.z0[n],o=e.loop,r=e.fv,i=e.pv,a=e.z1;for(;o--;){let c=t.pop(),l=a[c];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-o)+": ":"")+"ALIGNRP[]",c),r.setRelative(l,s,0,i),r.touch(l)}e.loop=1}function ka(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=Hi}function Vs(e,t){let n=t.stack,s=n.pop(),o=n.pop(),r=t.z0[o],i=t.fv,a=t.pv,c=t.cvt[s];exports.DEBUG&&console.log(t.step,"MIAP["+e+"]",s,"(",c,")",o);let l=a.distance(r,et);e&&(Math.abs(l-c)",a),t.stack.push(Math.round(a*64))}function Ea(e){exports.DEBUG&&console.log(e.step,"MPPEM[]"),e.stack.push(e.ppem)}function wa(e){exports.DEBUG&&console.log(e.step,"FLIPON[]"),e.autoFlip=!0}function Da(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"LT[]",n,s),t.push(sn?1:0)}function Ma(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",n,s),t.push(s>=n?1:0)}function Pa(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",n,s),t.push(n===s?1:0)}function Ba(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",n,s),t.push(n!==s?1:0)}function Ga(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",n),t.push(Math.trunc(n)&1?1:0)}function Na(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",n),t.push(Math.trunc(n)&1?0:1)}function Ha(e){let t=e.stack.pop(),n;exports.DEBUG&&console.log(e.step,"IF[]",t),t||($s(e,!0),exports.DEBUG&&console.log(e.step,n===27?"ELSE[]":"EIF[]"))}function Va(e){exports.DEBUG&&console.log(e.step,"EIF[]")}function za(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",n,s),t.push(n&&s?1:0)}function _a(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",n,s),t.push(n||s?1:0)}function Wa(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",n),t.push(n?0:1)}function gn(e,t){let n=t.stack,s=n.pop(),o=t.fv,r=t.pv,i=t.ppem,a=t.deltaBase+(e-1)*16,c=t.deltaShift,l=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",s,n);for(let u=0;u>4)!==i)continue;let m=(f&15)-8;m>=0&&m++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",p,"by",m*c);let b=l[p];o.setRelative(b,b,m*c,r)}}function ja(e){let n=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDB[]",n),e.deltaBase=n}function qa(e){let n=e.stack.pop();exports.DEBUG&&console.log(e.step,"SDS[]",n),e.deltaShift=Math.pow(.5,n)}function Xa(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",n,s),t.push(s+n)}function Ya(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",n,s),t.push(s-n)}function Za(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",n,s),t.push(s*64/n)}function $a(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",n,s),t.push(s*n/64)}function Ka(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",n),t.push(Math.abs(n))}function Qa(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",n),t.push(-n)}function Ja(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",n),t.push(Math.floor(n/64)*64)}function el(e){let t=e.stack,n=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",n),t.push(Math.ceil(n/64)*64)}function Ht(e,t){let n=t.stack,s=n.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),n.push(t.round(s/64)*64)}function tl(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",n,s),e.cvt[s]=n*e.ppem/e.font.unitsPerEm}function yn(e,t){let n=t.stack,s=n.pop(),o=t.ppem,r=t.deltaBase+(e-1)*16,i=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",s,n);for(let a=0;a>4)!==o)continue;let p=(l&15)-8;p>=0&&p++;let f=p*i;exports.DEBUG&&console.log(t.step,"DELTACFIX",c,"by",f),t.cvt[c]+=f}}function nl(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SROUND[]",t),e.round=Zs;let n;switch(t&192){case 0:n=.5;break;case 64:n=1;break;case 128:n=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=n,t&48){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*n;break;case 32:e.srPhase=.5*n;break;case 48:e.srPhase=.75*n;break;default:throw new Error("invalid SROUND value")}t&=15,t===0?e.srThreshold=0:e.srThreshold=(t/8-.5)*n}function sl(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"S45ROUND[]",t),e.round=Zs;let n;switch(t&192){case 0:n=Math.sqrt(2)/2;break;case 64:n=Math.sqrt(2);break;case 128:n=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=n,t&48){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*n;break;case 32:e.srPhase=.5*n;break;case 48:e.srPhase=.75*n;break;default:throw new Error("invalid S45ROUND value")}t&=15,t===0?e.srThreshold=0:e.srThreshold=(t/8-.5)*n}function ol(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=Ni}function rl(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=zi}function il(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=_i}function al(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)}function Ws(e,t){let n=t.stack,s=n.pop(),o=n.pop(),r=t.z2[s],i=t.z1[o];exports.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",s,o);let a,c;e?(a=r.y-i.y,c=i.x-r.x):(a=i.x-r.x,c=i.y-r.y),t.dpv=nt(a,c)}function ll(e){let t=e.stack,n=t.pop(),s=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",n),n&1&&(s=35),n&32&&(s|=4096),t.push(s)}function cl(e){let t=e.stack,n=t.pop(),s=t.pop(),o=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(s),t.push(n),t.push(o)}function ul(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",n,s),t.push(Math.max(s,n))}function pl(e){let t=e.stack,n=t.pop(),s=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",n,s),t.push(Math.min(s,n))}function fl(e){let t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)}function hl(e){let t=e.stack.pop(),n=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,n),t){case 1:e.inhibitGridFit=!!n;return;case 2:e.ignoreCvt=!!n;return;default:throw new Error("invalid INSTCTRL[] selector")}}function Ue(e,t){let n=t.stack,s=t.prog,o=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(let r=0;r=0?1:-1,y=Math.abs(y),e&&(k=r.cvt[a],s&&Math.abs(y-k)":"_")+(s?"R":"_")+(o===0?"Gr":o===1?"Bl":o===2?"Wh":"")+"]",e?a+"("+r.cvt[a]+","+k+")":"",c,"(d =",b,"->",O*y,")"),r.rp1=r.rp0,r.rp2=c,t&&(r.rp0=c)}js=[Es.bind(void 0,xe),Es.bind(void 0,ge),ws.bind(void 0,xe),ws.bind(void 0,ge),Ds.bind(void 0,xe),Ds.bind(void 0,ge),Is.bind(void 0,0),Is.bind(void 0,1),As.bind(void 0,0),As.bind(void 0,1),ji,qi,Xi,Yi,Zi,$i,Ki,Qi,Ji,ea,ta,na,sa,oa,ra,ia,aa,la,ca,ua,void 0,void 0,pa,mn,fa,ha,da,ya,xa,void 0,void 0,void 0,ma,ga,ba,void 0,Ms.bind(void 0,0),Ms.bind(void 0,1),Ps.bind(void 0,xe),Ps.bind(void 0,ge),Bs.bind(void 0,0),Bs.bind(void 0,1),Gs.bind(void 0,0),Gs.bind(void 0,1),Ns.bind(void 0,0),Ns.bind(void 0,1),Sa,va,Hs.bind(void 0,0),Hs.bind(void 0,1),Ta,ka,Vs.bind(void 0,0),Vs.bind(void 0,1),Fa,Ua,Oa,Ca,La,Ra,zs.bind(void 0,0),zs.bind(void 0,1),void 0,_s.bind(void 0,0),_s.bind(void 0,1),Ea,void 0,wa,void 0,void 0,Da,Ia,Aa,Ma,Pa,Ba,Ga,Na,Ha,Va,za,_a,Wa,gn.bind(void 0,1),ja,qa,Xa,Ya,Za,$a,Ka,Qa,Ja,el,Ht.bind(void 0,0),Ht.bind(void 0,1),Ht.bind(void 0,2),Ht.bind(void 0,3),void 0,void 0,void 0,void 0,tl,gn.bind(void 0,2),gn.bind(void 0,3),yn.bind(void 0,1),yn.bind(void 0,2),yn.bind(void 0,3),nl,sl,void 0,void 0,ol,void 0,rl,il,mn,mn,void 0,void 0,void 0,void 0,void 0,al,Ws.bind(void 0,0),Ws.bind(void 0,1),ll,void 0,cl,ul,pl,fl,hl,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Ue.bind(void 0,1),Ue.bind(void 0,2),Ue.bind(void 0,3),Ue.bind(void 0,4),Ue.bind(void 0,5),Ue.bind(void 0,6),Ue.bind(void 0,7),Ue.bind(void 0,8),Oe.bind(void 0,1),Oe.bind(void 0,2),Oe.bind(void 0,3),Oe.bind(void 0,4),Oe.bind(void 0,5),Oe.bind(void 0,6),Oe.bind(void 0,7),Oe.bind(void 0,8),T.bind(void 0,0,0,0,0,0),T.bind(void 0,0,0,0,0,1),T.bind(void 0,0,0,0,0,2),T.bind(void 0,0,0,0,0,3),T.bind(void 0,0,0,0,1,0),T.bind(void 0,0,0,0,1,1),T.bind(void 0,0,0,0,1,2),T.bind(void 0,0,0,0,1,3),T.bind(void 0,0,0,1,0,0),T.bind(void 0,0,0,1,0,1),T.bind(void 0,0,0,1,0,2),T.bind(void 0,0,0,1,0,3),T.bind(void 0,0,0,1,1,0),T.bind(void 0,0,0,1,1,1),T.bind(void 0,0,0,1,1,2),T.bind(void 0,0,0,1,1,3),T.bind(void 0,0,1,0,0,0),T.bind(void 0,0,1,0,0,1),T.bind(void 0,0,1,0,0,2),T.bind(void 0,0,1,0,0,3),T.bind(void 0,0,1,0,1,0),T.bind(void 0,0,1,0,1,1),T.bind(void 0,0,1,0,1,2),T.bind(void 0,0,1,0,1,3),T.bind(void 0,0,1,1,0,0),T.bind(void 0,0,1,1,0,1),T.bind(void 0,0,1,1,0,2),T.bind(void 0,0,1,1,0,3),T.bind(void 0,0,1,1,1,0),T.bind(void 0,0,1,1,1,1),T.bind(void 0,0,1,1,1,2),T.bind(void 0,0,1,1,1,3),T.bind(void 0,1,0,0,0,0),T.bind(void 0,1,0,0,0,1),T.bind(void 0,1,0,0,0,2),T.bind(void 0,1,0,0,0,3),T.bind(void 0,1,0,0,1,0),T.bind(void 0,1,0,0,1,1),T.bind(void 0,1,0,0,1,2),T.bind(void 0,1,0,0,1,3),T.bind(void 0,1,0,1,0,0),T.bind(void 0,1,0,1,0,1),T.bind(void 0,1,0,1,0,2),T.bind(void 0,1,0,1,0,3),T.bind(void 0,1,0,1,1,0),T.bind(void 0,1,0,1,1,1),T.bind(void 0,1,0,1,1,2),T.bind(void 0,1,0,1,1,3),T.bind(void 0,1,1,0,0,0),T.bind(void 0,1,1,0,0,1),T.bind(void 0,1,1,0,0,2),T.bind(void 0,1,1,0,0,3),T.bind(void 0,1,1,0,1,0),T.bind(void 0,1,1,0,1,1),T.bind(void 0,1,1,0,1,2),T.bind(void 0,1,1,0,1,3),T.bind(void 0,1,1,1,0,0),T.bind(void 0,1,1,1,0,1),T.bind(void 0,1,1,1,0,2),T.bind(void 0,1,1,1,0,3),T.bind(void 0,1,1,1,1,0),T.bind(void 0,1,1,1,1,1),T.bind(void 0,1,1,1,1,2),T.bind(void 0,1,1,1,1,3)];var Ks=Xs;function Ve(e){this.char=e,this.state={},this.activeState=null}function bn(e,t,n){this.contextName=n,this.startIndex=e,this.endOffset=t}function dl(e,t,n){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=n}function z(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function zt(e){this.eventId=e,this.subscribers=[]}function ml(e){let t=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];for(let s=0;s=0&&ethis[o[0]].apply(this,o.slice(1).concat(!0))),s=o=>typeof o=="object"&&Object.prototype.hasOwnProperty.call(o,"FAIL");if(n.every(s))return{FAIL:"composeRUD: one or more operations hasn't completed successfully",report:n.filter(s)};this.dispatch("composeRUD",[n.filter(o=>!s(o))])};N.prototype.replaceRange=function(e,t,n,s){t=t!==null?t:this.tokens.length;let o=n.every(r=>r instanceof Ve);if(!isNaN(e)&&this.inboundIndex(e)&&o){let r=this.tokens.splice.apply(this.tokens,[e,t].concat(n));return s||this.dispatch("replaceToken",[e,t,n]),[r,n]}else return{FAIL:"replaceRange: invalid tokens or startIndex."}};N.prototype.replaceToken=function(e,t,n){if(!isNaN(e)&&this.inboundIndex(e)&&t instanceof Ve){let s=this.tokens.splice(e,1,t);return n||this.dispatch("replaceToken",[e,t]),[s[0],t]}else return{FAIL:"replaceToken: invalid token or index."}};N.prototype.removeRange=function(e,t,n){t=isNaN(t)?this.tokens.length:t;let s=this.tokens.splice(e,t);return n||this.dispatch("removeRange",[s,e,t]),s};N.prototype.removeToken=function(e,t){if(!isNaN(e)&&this.inboundIndex(e)){let n=this.tokens.splice(e,1);return t||this.dispatch("removeToken",[n,e]),n}else return{FAIL:"removeToken: invalid token index."}};N.prototype.insertToken=function(e,t,n){return e.every(o=>o instanceof Ve)?(this.tokens.splice.apply(this.tokens,[t,0].concat(e)),n||this.dispatch("insertToken",[e,t]),e):{FAIL:"insertToken: invalid token(s)."}};N.prototype.registerModifier=function(e,t,n){this.events.newToken.subscribe(function(s,o){let r=[s,o],i=t===null||t.apply(this,r)===!0,a=[s,o];if(i){let c=n.apply(this,a);s.setState(e,c)}}),this.registeredModifiers.push(e)};zt.prototype.subscribe=function(e){return typeof e=="function"?this.subscribers.push(e)-1:{FAIL:`invalid '${this.eventId}' event handler`}};zt.prototype.unsubscribe=function(e){this.subscribers.splice(e,1)};z.prototype.setCurrentIndex=function(e){this.index=e,this.current=this.context[e],this.backtrack=this.context.slice(0,e),this.lookahead=this.context.slice(e+1)};z.prototype.get=function(e){switch(!0){case e===0:return this.current;case(e<0&&Math.abs(e)<=this.backtrack.length):return this.backtrack.slice(e)[0];case(e>0&&e<=this.lookahead.length):return this.lookahead[e-1];default:return null}};N.prototype.rangeToText=function(e){if(e instanceof bn)return this.getRangeTokens(e).map(t=>t.char).join("")};N.prototype.getText=function(){return this.tokens.map(e=>e.char).join("")};N.prototype.getContext=function(e){let t=this.registeredContexts[e];return t||null};N.prototype.on=function(e,t){let n=this.events[e];return n?n.subscribe(t):null};N.prototype.dispatch=function(e,t){let n=this.events[e];if(n instanceof zt)for(let s=0;st.char);for(let t=0;t=o.start&&e<=o.end){let r=e-o.start;return o.index+r}}break}default:return-1}return-1}function gl(e,t){return rt(e,t.coverage)===-1?null:e+t.deltaGlyphId}function yl(e,t){let n=rt(e,t.coverage);return n===-1?null:t.substitute[n]}function vn(e,t){let n=[];for(let s=0;ss.features[o]),this.features[e]=t,this.mapTagsToFeatures(t,e),t};te.prototype.getSubstitutionType=function(e,t){let n=e.lookupType.toString(),s=t.substFormat.toString();return n+s};te.prototype.getLookupMethod=function(e,t){switch(this.getSubstitutionType(e,t)){case"11":return s=>gl.apply(this,[s,t]);case"12":return s=>yl.apply(this,[s,t]);case"63":return s=>xl.apply(this,[s,t]);case"41":return s=>bl.apply(this,[s,t]);case"21":return s=>Sl.apply(this,[s,t]);default:throw new Error(`lookupType: ${e.lookupType} - substFormat: ${t.substFormat} is not yet supported`)}};te.prototype.lookupFeature=function(e){let t=e.contextParams,n=t.index,s=this.getFeature({tag:e.tag,script:e.script});if(!s)return new Error(`font '${(this.font.names.unicode||this.font.names.windows||this.font.names.macintosh).fullName.en}' doesn't support feature '${e.tag}' for script '${e.script}'.`);let o=this.getFeatureLookups(s),r=[].concat(t.context);for(let i=0;is.tag===e.tag);return t&&n};te.prototype.getLookupSubtables=function(e){return e.subtables||null};te.prototype.getLookupByIndex=function(e){return this.font.tables.gsub.lookups[e]||null};te.prototype.getFeatureLookups=function(e){return e.lookupListIndexes.map(this.getLookupByIndex.bind(this))};te.prototype.getFeature=function(t){if(!this.font)return{FAIL:"No font was found"};Object.prototype.hasOwnProperty.call(this.features,t.script)||this.getScriptFeatures(t.script);let n=this.features[t.script];return n?n.tags[t.tag]?this.features[t.script].tags[t.tag]:null:{FAIL:`No feature for script ${t.script}`}};var eo=te;function vl(e){let t=e.current,n=e.get(-1);return n===null&&ye(t)||!ye(n)&&ye(t)}function Tl(e){let t=e.get(1);return t===null||!ye(t)}var to={startCheck:vl,endCheck:Tl};function kl(e){let t=e.current,n=e.get(-1);return(ye(t)||pe(t))&&!ye(n)}function Fl(e){let t=e.get(1);switch(!0){case t===null:return!0;case(!ye(t)&&!pe(t)):{let n=Js(t);if(!n)return!0;if(n){let s=!1;if(s=e.lookahead.some(o=>ye(o)||pe(o)),!s)return!0}break}default:return!1}}var no={startCheck:kl,endCheck:Fl};function Ul(e,t,n){t[n].setState(e.tag,e.substitution)}function Ol(e,t,n){t[n].setState(e.tag,e.substitution)}function Cl(e,t,n){for(let s=0;s=0;n--){let s=t[n],o=Sn(s),r=pe(s);if(!o&&!r)return!0;if(o)return!1}return!1}function wl(e){if(Sn(e.current))return!1;for(let t=0;ti.getState("glyphIndex")),0),r=new z(s.map(i=>i.char),0);for(let i=0;is.activeState.value);return new z(n,t||0)}function Il(e){let t="arab",n=this.tokenizer.getRangeTokens(e),s=ro(n);for(let o=0;os.activeState.value);return new z(n,t||0)}function Pl(e){let t="latn",n=this.tokenizer.getRangeTokens(e),s=lo(n);for(let o=0;os.activeState.value);return new z(n,t||0)}function Nl(e){let t="thai",n=this.tokenizer.getRangeTokens(e),s=po(n,0);for(let o=0;os.activeState.value);return new z(n,t||0)}function Hl(e){let t="thai",n=this.tokenizer.getRangeTokens(e),s=ho(n,0);for(let o=0;os.activeState.value);return new z(n,t||0)}function Vl(e){let t="thai",n=this.tokenizer.getRangeTokens(e),s=go(n,0);for(let o=0;o=6155&&t<=6157||t>=65024&&t<=65039||t>=917760&&t<=917999}function zl(e){let t=e.current,n=e.get(1);return n===null&&Tn(t)||Tn(n)}function _l(e){let t=e.get(1);return t===null||!Tn(t)}var xo={startCheck:zl,endCheck:_l};function Wl(e){let t=this.query.font,n=this.tokenizer.getRangeTokens(e);if(n[1].setState("deleted",!0),t.tables.cmap&&t.tables.cmap.varSelectorList){let s=n[0].char.codePointAt(0),o=n[1].char.codePointAt(0),r=t.tables.cmap.varSelectorList[o];if(r!==void 0&&r.nonDefaultUVS){let i=r.nonDefaultUVS.uvsMappings;if(i[s]){let a=i[s].glyphID;t.glyphs.glyphs[a]!==void 0&&n[0].setState("glyphIndex",a)}}}}var bo=Wl;function oe(e){this.baseDir=e||"ltr",this.tokenizer=new Qs,this.featuresTags={}}oe.prototype.setText=function(e){this.text=e};oe.prototype.contextChecks={latinWordCheck:ao,arabicWordCheck:to,arabicSentenceCheck:no,thaiWordCheck:uo,unicodeVariationSequenceCheck:xo};function it(e){let t=this.contextChecks[`${e}Check`];return this.tokenizer.registerContextChecker(e,t.startCheck,t.endCheck)}function jl(){return it.call(this,"latinWord"),it.call(this,"arabicWord"),it.call(this,"arabicSentence"),it.call(this,"thaiWord"),it.call(this,"unicodeVariationSequence"),this.tokenizer.tokenize(this.text)}function ql(){let e=this.tokenizer.getContextRanges("arabicSentence");for(let t=0;tthis.query.supports({script:e,tag:s}));Object.prototype.hasOwnProperty.call(this.featuresTags,e)?this.featuresTags[e]=this.featuresTags[e].concat(n):this.featuresTags[e]=n};oe.prototype.applyFeatures=function(e,t){if(!e)throw new Error("No valid font was provided to apply features");this.query||(this.query=new eo(e));for(let n=0;nt.script==="latn"?{script:"latn",tags:t.tags.filter(n=>e[n])}:t)};A.prototype.stringToGlyphIndexes=function(e,t){let n=new So,s=r=>this.charToGlyphIndex(r.char);n.registerModifier("glyphIndex",null,s);let o=t?this.updateFeatures(t.features):this.defaultRenderOptions.features;return n.applyFeatures(this,o),n.getTextGlyphs(e)};A.prototype.stringToGlyphs=function(e,t){let n=this.stringToGlyphIndexes(e,t),s=n.length,o=new Array(s),r=this.glyphs.get(0);for(let i=0;i0,"No English "+o+" specified.")}s("fontFamily"),s("weightName"),s("manufacturer"),s("copyright"),s("version"),n(this.unitsPerEm>0,"No unitsPerEm specified.")};A.prototype.toTables=function(){return Ss.fontToTable(this)};A.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()};A.prototype.toArrayBuffer=function(){let t=this.toTables().encode(),n=new ArrayBuffer(t.length),s=new Uint8Array(n);for(let o=0;o=1.2&&(o.markGlyphSets=n.parsePointer(oc)),o}var To={parse:rc};var fe=new Array(10);fe[1]=function(){let t=this.offset+this.relativeOffset,n=this.parseUShort();if(n===1)return{posFormat:1,coverage:this.parsePointer(d.coverage),value:this.parseValueRecord()};if(n===2)return{posFormat:2,coverage:this.parsePointer(d.coverage),values:this.parseValueRecordList()};S.assert(!1,"0x"+t.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")};fe[2]=function(){let t=this.offset+this.relativeOffset,n=this.parseUShort();S.assert(n===1||n===2,"0x"+t.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");let s=this.parsePointer(d.coverage),o=this.parseUShort(),r=this.parseUShort();if(n===1)return{posFormat:n,coverage:s,valueFormat1:o,valueFormat2:r,pairSets:this.parseList(d.pointer(d.list(function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(o),value2:this.parseValueRecord(r)}})))};if(n===2){let i=this.parsePointer(d.classDef),a=this.parsePointer(d.classDef),c=this.parseUShort(),l=this.parseUShort();return{posFormat:n,coverage:s,valueFormat1:o,valueFormat2:r,classDef1:i,classDef2:a,class1Count:c,class2Count:l,classRecords:this.parseList(c,d.list(l,function(){return{value1:this.parseValueRecord(o),value2:this.parseValueRecord(r)}}))}}};fe[3]=function(){return{error:"GPOS Lookup 3 not supported"}};fe[4]=function(){return{error:"GPOS Lookup 4 not supported"}};fe[5]=function(){return{error:"GPOS Lookup 5 not supported"}};fe[6]=function(){return{error:"GPOS Lookup 6 not supported"}};fe[7]=function(){return{error:"GPOS Lookup 7 not supported"}};fe[8]=function(){return{error:"GPOS Lookup 8 not supported"}};fe[9]=function(){return{error:"GPOS Lookup 9 not supported"}};function ic(e,t){t=t||0;let n=new d(e,t),s=n.parseVersion(1);return S.argument(s===1||s===1.1,"Unsupported GPOS table version "+s),s===1?{version:s,scripts:n.parseScriptList(),features:n.parseFeatureList(),lookups:n.parseLookupList(fe)}:{version:s,scripts:n.parseScriptList(),features:n.parseFeatureList(),lookups:n.parseLookupList(fe),variations:n.parseFeatureVariationsList()}}var ac=new Array(10);function lc(e){return new g.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new g.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new g.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new g.LookupList(e.lookups,ac)}])}var ko={parse:ic,make:lc};function cc(e){let t={};e.skip("uShort");let n=e.parseUShort();S.argument(n===0,"Unsupported kern sub-table version."),e.skip("uShort",2);let s=e.parseUShort();e.skip("uShort",3);for(let o=0;o1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");let o=e.parseUShort()&255;if(e.skip("uShort"),o===0){let r=e.parseUShort();e.skip("uShort",3);for(let i=0;i{o(e,function(a,c){if(a){if(t)return t(a);i(a)}let l;try{l=Un(c,n)}catch(u){if(t)return t(u,null);i(u)}if(t)return t(null,l);r(l)})})}function yc(e,t){return Un(jt("fs").readFileSync(e),t)}return Do(xc);})(); (function (root, factory) { if (typeof define === 'function' && define.amd)define(factory); else if (typeof module === 'object' && module.exports)module.exports = factory(); else root.opentype = factory(); }(typeof self !== 'undefined' ? self : this, () => ({...opentype,'default':opentype}))); //# sourceMappingURL=opentype.min.js.map