diff --git a/2a3936b6d597c3ad52f0.worker.js b/2a3936b6d597c3ad52f0.worker.js new file mode 100644 index 0000000..8625be3 --- /dev/null +++ b/2a3936b6d597c3ad52f0.worker.js @@ -0,0 +1,11 @@ +(function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s="340c")})({0:function(e,t){},"1fb5":function(e,t,r){"use strict";t.byteLength=p,t.toByteArray=c,t.fromByteArray=g;for(var n=[],a=[],o="undefined"!==typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,u=s.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function p(e){var t=l(e),r=t[0],n=t[1];return 3*(r+n)/4-n}function h(e,t,r){return 3*(t+r)/4-r}function c(e){var t,r,n=l(e),s=n[0],i=n[1],u=new o(h(e,s,i)),p=0,c=i>0?s-4:s;for(r=0;r>16&255,u[p++]=t>>8&255,u[p++]=255&t;return 2===i&&(t=a[e.charCodeAt(r)]<<2|a[e.charCodeAt(r+1)]>>4,u[p++]=255&t),1===i&&(t=a[e.charCodeAt(r)]<<10|a[e.charCodeAt(r+1)]<<4|a[e.charCodeAt(r+2)]>>2,u[p++]=t>>8&255,u[p++]=255&t),u}function f(e){return n[e>>18&63]+n[e>>12&63]+n[e>>6&63]+n[63&e]}function d(e,t,r){for(var n,a=[],o=t;ou?u:i+s));return 1===a?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===a&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),o.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},"340c":function(e,t,r){self.window={};var n=r("a788");self.onmessage=function(e){var t=e.data,r=t.url,a=t.fileName;n.load(r,(function(e,t){e?self.postMessage({url:r,fileName:a,error:e.message}):self.postMessage({url:r,fileName:a,font:t})}))}},9152:function(e,t){t.read=function(e,t,r,n,a){var o,s,i=8*a-n-1,u=(1<>1,p=-7,h=r?a-1:0,c=r?-1:1,f=e[t+h];for(h+=c,o=f&(1<<-p)-1,f>>=-p,p+=i;p>0;o=256*o+e[t+h],h+=c,p-=8);for(s=o&(1<<-p)-1,o>>=-p,p+=n;p>0;s=256*s+e[t+h],h+=c,p-=8);if(0===o)o=1-l;else{if(o===u)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),o-=l}return(f?-1:1)*s*Math.pow(2,o-n)},t.write=function(e,t,r,n,a,o){var s,i,u,l=8*o-a-1,p=(1<>1,c=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,d=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(i=isNaN(t)?1:0,s=p):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+h>=1?c/u:c*Math.pow(2,1-h),t*u>=2&&(s++,u/=2),s+h>=p?(i=0,s=p):s+h>=1?(i=(t*u-1)*Math.pow(2,a),s+=h):(i=t*Math.pow(2,h-1)*Math.pow(2,a),s=0));a>=8;e[r+f]=255&i,f+=d,i/=256,a-=8);for(s=s<0;e[r+f]=255&s,f+=d,s/=256,l-=8);e[r+f-d]|=128*g}},a788:function(e,t,r){"use strict";r.r(t),function(e){r.d(t,"BoundingBox",(function(){return L})),r.d(t,"Font",(function(){return cs})),r.d(t,"Glyph",(function(){return Fe})),r.d(t,"Path",(function(){return C})),r.d(t,"_parse",(function(){return ye})),r.d(t,"load",(function(){return Gs})),r.d(t,"loadSync",(function(){return Fs})),r.d(t,"parse",(function(){return Ns})), +/*! https://mths.be/codepointat v0.2.0 by @mathias */ +String.prototype.codePointAt||function(){var e=function(){try{var e={},t=Object.defineProperty,r=t(e,e,e)&&t}catch(n){}return r}(),t=function(e){if(null==this)throw TypeError();var t=String(this),r=t.length,n=e?Number(e):0;if(n!=n&&(n=0),!(n<0||n>=r)){var a,o=t.charCodeAt(n);return o>=55296&&o<=56319&&r>n+1&&(a=t.charCodeAt(n+1),a>=56320&&a<=57343)?1024*(o-55296)+a-56320+65536:o}};e?e(String.prototype,"codePointAt",{value:t,configurable:!0,writable:!0}):String.prototype.codePointAt=t}();var n=0,a=-3;function o(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function s(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new o,this.dtree=new o}var i=new o,u=new o,l=new Uint8Array(30),p=new Uint16Array(30),h=new Uint8Array(30),c=new Uint16Array(30),f=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new o,g=new Uint8Array(320);function v(e,t,r,n){var a,o;for(a=0;a>>=1,t}function x(e,t,r){if(!t)return r;while(e.bitcount<24)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,n+r}function T(e,t){while(e.bitcount<24)e.tag|=e.source[e.sourceIndex++]<>>=1,++a,r+=t.table[a],n-=t.table[a]}while(n>=0);return e.tag=o,e.bitcount-=a,t.trans[r+n]}function U(e,t,r){var n,a,o,s,i,u;for(n=x(e,5,257),a=x(e,5,1),o=x(e,4,4),s=0;s<19;++s)g[s]=0;for(s=0;s8)e.sourceIndex--,e.bitcount-=8;if(t=e.source[e.sourceIndex+1],t=256*t+e.source[e.sourceIndex],r=e.source[e.sourceIndex+3],r=256*r+e.source[e.sourceIndex+2],t!==(65535&~r))return a;for(e.sourceIndex+=4,o=t;o;--o)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,n}function E(e,t){var r,o,l,p=new s(e,t);do{switch(r=S(p),o=x(p,2,0),o){case 0:l=k(p);break;case 1:l=w(p,i,u);break;case 2:U(p,p.ltree,p.dtree),l=w(p,p.ltree,p.dtree);break;default:l=a}if(l!==n)throw new Error("Data error")}while(!r);return p.destLenthis.x2&&(this.x2=e)),"number"===typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},L.prototype.addX=function(e){this.addPoint(e,null)},L.prototype.addY=function(e){this.addPoint(null,e)},L.prototype.addBezier=function(e,t,r,n,a,o,s,i){var u=[e,t],l=[r,n],p=[a,o],h=[s,i];this.addPoint(e,t),this.addPoint(s,i);for(var c=0;c<=1;c++){var f=6*u[c]-12*l[c]+6*p[c],d=-3*u[c]+9*l[c]-9*p[c]+3*h[c],g=3*l[c]-3*u[c];if(0!==d){var v=Math.pow(f,2)-4*g*d;if(!(v<0)){var y=(-f+Math.sqrt(v))/(2*d);0=0&&n>0&&(r+=" "),r+=t(a)}return r}e=void 0!==e?e:2;for(var n="",a=0;a=0&&e<=255,"Byte value should be between 0 and 255."),[e]},G.BYTE=F(1),N.CHAR=function(e){return[e.charCodeAt(0)]},G.CHAR=F(1),N.CHARARRAY=function(e){for(var t=[],r=0;r>8&255,255&e]},G.USHORT=F(2),N.SHORT=function(e){return e>=B&&(e=-(2*B-e)),[e>>8&255,255&e]},G.SHORT=F(2),N.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},G.UINT24=F(3),N.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},G.ULONG=F(4),N.LONG=function(e){return e>=P&&(e=-(2*P-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},G.LONG=F(4),N.FIXED=N.ULONG,G.FIXED=G.ULONG,N.FWORD=N.SHORT,G.FWORD=G.SHORT,N.UFWORD=N.USHORT,G.UFWORD=G.USHORT,N.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},G.LONGDATETIME=F(8),N.TAG=function(e){return A.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},G.TAG=F(4),N.Card8=N.BYTE,G.Card8=G.BYTE,N.Card16=N.USHORT,G.Card16=G.USHORT,N.OffSize=N.BYTE,G.OffSize=G.BYTE,N.SID=N.USHORT,G.SID=G.USHORT,N.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?(e-=108,[247+(e>>8),255&e]):e>=-1131&&e<=-108?(e=-e-108,[251+(e>>8),255&e]):e>=-32768&&e<=32767?N.NUMBER16(e):N.NUMBER32(e)},G.NUMBER=function(e){return N.NUMBER(e).length},N.NUMBER16=function(e){return[28,e>>8&255,255&e]},G.NUMBER16=F(3),N.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},G.NUMBER32=F(5),N.REAL=function(e){var t=e.toString(),r=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(r){var n=parseFloat("1e"+((r[2]?+r[2]:0)+r[1].length));t=(Math.round(e*n)/n).toString()}for(var a="",o=0,s=t.length;o>8&255,t[t.length]=255&n}return t},G.UTF16=function(e){return 2*e.length};var _={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ­","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};M.MACSTRING=function(e,t,r,n){var a=_[n];if(void 0!==a){for(var o="",s=0;s=-128&&e<=127}function q(e,t,r){var n=0,a=e.length;while(t>8&255,u+256&255)}return o}N.MACSTRING=function(e,t){var r=W(t);if(void 0!==r){for(var n=[],a=0;a=128&&(o=r[o],void 0===o))return;n[a]=o}return n}},G.MACSTRING=function(e,t){var r=N.MACSTRING(e,t);return void 0!==r?r.length:0},N.VARDELTAS=function(e){var t=0,r=[];while(t=-128&&n<=127?X(e,t,r):j(e,t,r)}return r},N.INDEX=function(e){for(var t=1,r=[t],n=[],a=0;a>8,t[h+1]=255&c,t=t.concat(n[p])}return t},G.TABLE=function(e){for(var t=0,r=e.fields.length,n=0;n0){var n=this.offset+r,a=new ge(this.data,n).parseStruct(e);return t&&(a.tableOffset=n),a}},ge.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new ge(this.data,this.offset+t).parseStruct(e)},ge.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),r=t.length,n=this.relativeOffset,a=new Array(r),o=0;o>1,t.skip("uShort",3),e.glyphIndexMap={};for(var s=new ye.Parser(r,n+a+14),i=new ye.Parser(r,n+a+16+2*o),u=new ye.Parser(r,n+a+16+4*o),l=new ye.Parser(r,n+a+16+6*o),p=n+a+16+8*o,h=0;h=0;a-=1){var o=ye.getUShort(e,t+4+8*a),s=ye.getUShort(e,t+4+8*a+2);if(3===o&&(0===s||1===s||10===s)||0===o&&(0===s||1===s||2===s||3===s||4===s)){n=ye.getULong(e,t+4+8*a+4);break}}if(-1===n)throw new Error("No valid cmap sub-tables found.");var i=new ye.Parser(e,t+n);if(r.format=i.parseUShort(),12===r.format)me(r,i);else{if(4!==r.format)throw new Error("Only format 4 and 12 cmap tables are supported (found format "+r.format+").");be(r,i,e,t,n)}return r}function xe(e,t,r){e.segments.push({end:t,start:t,delta:-(t-r),offset:0,glyphIndex:r})}function Te(e){e.segments.push({end:65535,start:65535,delta:1,offset:0})}function Ue(e){var t,r=!0;for(t=e.length-1;t>0;t-=1){var n=e.get(t);if(n.unicode>65535){console.log("Adding CMAP format 12 (needed!)"),r=!1;break}}var a=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:r?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:r?12:20}];r||(a=a.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),a=a.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}]);var o=new ne.Table("cmap",a);for(o.segments=[],t=0;t>4,s=15&a;if(o===r)break;if(t+=n[o],s===r)break;t+=n[s]}return parseFloat(t)}function Je(e,t){var r,n,a,o;if(28===t)return r=e.parseByte(),n=e.parseByte(),r<<8|n;if(29===t)return r=e.parseByte(),n=e.parseByte(),a=e.parseByte(),o=e.parseByte(),r<<24|n<<16|a<<8|o;if(30===t)return Ke(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return r=e.parseByte(),256*(t-247)+r+108;if(t>=251&&t<=254)return r=e.parseByte(),256*-(t-251)-r-108;throw new Error("Invalid b0 "+t)}function $e(e){for(var t={},r=0;r>1,c.length=0,d=!0}function U(r){var l,m,b,w,k,E,O,R,L,C,D,I,A=0;while(A1&&!d&&(S=c.shift()+p,d=!0),y+=c.pop(),x(v,y);break;case 5:while(c.length>0)v+=c.shift(),y+=c.shift(),h.lineTo(v,y);break;case 6:while(c.length>0){if(v+=c.shift(),h.lineTo(v,y),0===c.length)break;y+=c.shift(),h.lineTo(v,y)}break;case 7:while(c.length>0){if(y+=c.shift(),h.lineTo(v,y),0===c.length)break;v+=c.shift(),h.lineTo(v,y)}break;case 8:while(c.length>0)n=v+c.shift(),a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),v=o+c.shift(),y=s+c.shift(),h.curveTo(n,a,o,s,v,y);break;case 10:k=c.pop()+u,E=i[k],E&&U(E);break;case 11:return;case 12:switch(B=r[A],A+=1,B){case 35:n=v+c.shift(),a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),O=o+c.shift(),R=s+c.shift(),L=O+c.shift(),C=R+c.shift(),D=L+c.shift(),I=C+c.shift(),v=D+c.shift(),y=I+c.shift(),c.shift(),h.curveTo(n,a,o,s,O,R),h.curveTo(L,C,D,I,v,y);break;case 34:n=v+c.shift(),a=y,o=n+c.shift(),s=a+c.shift(),O=o+c.shift(),R=s,L=O+c.shift(),C=s,D=L+c.shift(),I=y,v=D+c.shift(),h.curveTo(n,a,o,s,O,R),h.curveTo(L,C,D,I,v,y);break;case 36:n=v+c.shift(),a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),O=o+c.shift(),R=s,L=O+c.shift(),C=s,D=L+c.shift(),I=C+c.shift(),v=D+c.shift(),h.curveTo(n,a,o,s,O,R),h.curveTo(L,C,D,I,v,y);break;case 37:n=v+c.shift(),a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),O=o+c.shift(),R=s+c.shift(),L=O+c.shift(),C=R+c.shift(),D=L+c.shift(),I=C+c.shift(),Math.abs(D-v)>Math.abs(I-y)?v=D+c.shift():y=I+c.shift(),h.curveTo(n,a,o,s,O,R),h.curveTo(L,C,D,I,v,y);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+B),c.length=0}break;case 14:c.length>0&&!d&&(S=c.shift()+p,d=!0),g&&(h.closePath(),g=!1);break;case 18:T();break;case 19:case 20:T(),A+=f+7>>3;break;case 21:c.length>2&&!d&&(S=c.shift()+p,d=!0),y+=c.pop(),v+=c.pop(),x(v,y);break;case 22:c.length>1&&!d&&(S=c.shift()+p,d=!0),v+=c.pop(),x(v,y);break;case 23:T();break;case 24:while(c.length>2)n=v+c.shift(),a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),v=o+c.shift(),y=s+c.shift(),h.curveTo(n,a,o,s,v,y);v+=c.shift(),y+=c.shift(),h.lineTo(v,y);break;case 25:while(c.length>6)v+=c.shift(),y+=c.shift(),h.lineTo(v,y);n=v+c.shift(),a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),v=o+c.shift(),y=s+c.shift(),h.curveTo(n,a,o,s,v,y);break;case 26:c.length%2&&(v+=c.shift());while(c.length>0)n=v,a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),v=o,y=s+c.shift(),h.curveTo(n,a,o,s,v,y);break;case 27:c.length%2&&(y+=c.shift());while(c.length>0)n=v+c.shift(),a=y,o=n+c.shift(),s=a+c.shift(),v=o+c.shift(),y=s,h.curveTo(n,a,o,s,v,y);break;case 28:l=r[A],m=r[A+1],c.push((l<<24|m<<16)>>16),A+=2;break;case 29:k=c.pop()+e.gsubrsBias,E=e.gsubrs[k],E&&U(E);break;case 30:while(c.length>0){if(n=v,a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),v=o+c.shift(),y=s+(1===c.length?c.shift():0),h.curveTo(n,a,o,s,v,y),0===c.length)break;n=v+c.shift(),a=y,o=n+c.shift(),s=a+c.shift(),y=s+c.shift(),v=o+(1===c.length?c.shift():0),h.curveTo(n,a,o,s,v,y)}break;case 31:while(c.length>0){if(n=v+c.shift(),a=y,o=n+c.shift(),s=a+c.shift(),y=s+c.shift(),v=o+(1===c.length?c.shift():0),h.curveTo(n,a,o,s,v,y),0===c.length)break;n=v,a=y+c.shift(),o=n+c.shift(),s=a+c.shift(),v=o+c.shift(),y=s+(1===c.length?c.shift():0),h.curveTo(n,a,o,s,v,y)}break;default:B<32?console.log("Glyph "+t.index+": unknown operator "+B):B<247?c.push(B-139):B<251?(l=r[A],A+=1,c.push(256*(B-247)+l+108)):B<255?(l=r[A],A+=1,c.push(256*-(B-251)-l-108)):(l=r[A],m=r[A+1],b=r[A+2],w=r[A+3],A+=4,c.push((l<<24|m<<16|b<<8|w)/65536))}}}return U(r),t.advanceWidth=S,h}function ct(e,t,r,n){var a,o=[],s=new ye.Parser(e,t),i=s.parseCard8();if(0===i)for(var u=0;u=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+a+" (FD count "+n+")");o.push(a)}else{if(3!==i)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+i);var l,p=s.parseCard16(),h=s.parseCard16();if(0!==h)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+h);for(var c=0;c=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+a+" (FD count "+n+")");if(l>r)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+l);for(;h=0&&(r=n),n=t.indexOf(e),n>=0?r=n+ke.length:(r=ke.length+t.length,t.push(e)),r}function gt(){return new ne.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 vt(e){var t=new ne.Record("Name INDEX",[{name:"names",type:"INDEX",value:[]}]);t.names=[];for(var r=0;r=r.begin&&e=1&&(r.ulCodePageRange1=n.parseULong(),r.ulCodePageRange2=n.parseULong()),r.version>=2&&(r.sxHeight=n.parseShort(),r.sCapHeight=n.parseShort(),r.usDefaultChar=n.parseUShort(),r.usBreakChar=n.parseUShort(),r.usMaxContent=n.parseUShort()),r}function pr(e){return new ne.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 hr={parse:lr,make:pr,unicodeRanges:ir,getUnicodeRange:ur};function cr(e,t){var r={},n=new ye.Parser(e,t);switch(r.version=n.parseVersion(),r.italicAngle=n.parseFixed(),r.underlinePosition=n.parseShort(),r.underlineThickness=n.parseShort(),r.isFixedPitch=n.parseULong(),r.minMemType42=n.parseULong(),r.maxMemType42=n.parseULong(),r.minMemType1=n.parseULong(),r.maxMemType1=n.parseULong(),r.version){case 1:r.names=Re.slice();break;case 2:r.numberOfGlyphs=n.parseUShort(),r.glyphNameIndex=new Array(r.numberOfGlyphs);for(var a=0;a=Re.length){var s=n.parseChar();r.names.push(n.parseString(s))}break;case 2.5:r.numberOfGlyphs=n.parseUShort(),r.offset=new Array(r.numberOfGlyphs);for(var i=0;it.value.tag?1:-1})),t.fields=t.fields.concat(n),t.fields=t.fields.concat(a),t}function Rr(e,t,r){for(var n=0;n0){var o=e.glyphs.get(a);return o.getMetrics()}}return r}function Lr(e){for(var t=0,r=0;rv||void 0===t)&&v>0&&(t=v),l 123 are reserved for internal usage");f|=1<0?Ht.make(I):void 0,P=dr.make(),M=Ot.make(e.glyphs,{version:e.getEnglishName("version"),fullName:R,familyName:E,weightName:O,postScriptName:L,unitsPerEm:e.unitsPerEm,fontBBox:[0,b.yMin,b.ascender,b.advanceWidthMax]}),N=e.metas&&Object.keys(e.metas).length>0?Ur.make(e.metas):void 0,G=[S,x,T,U,A,k,P,M,w];B&&G.push(B),e.tables.gsub&&G.push(Sr.make(e.tables.gsub)),N&&G.push(N);for(var F=Or(G),_=F.encode(),H=kr(_),z=F.fields,W=!1,Y=0;Y>>1,o=e[a].tag;if(o===t)return a;o>>1,o=e[a];if(o===t)return a;o>>1;r=e[o];var s=r.start;if(s===t)return r;s0)return r=e[n-1],t>r.end?0:r}function Pr(e,t){this.font=e,this.tableName=t}function Mr(e){Pr.call(this,e,"gpos")}function Nr(e){Pr.call(this,e,"gsub")}function Gr(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;n0?(o=e.parseByte(),0===(t&a)&&(o=-o),o=r+o):o=(t&a)>0?r:r+e.parseShort(),o}function qr(e,t,r){var n,a,o=new ye.Parser(t,r);if(e.numberOfContours=o.parseShort(),e._xMin=o.parseShort(),e._yMin=o.parseShort(),e._xMax=o.parseShort(),e._yMax=o.parseShort(),e.numberOfContours>0){for(var s=e.endPointIndices=[],i=0;i0)for(var h=o.parseByte(),c=0;c0){var f,d=[];if(l>0){for(var g=0;g=0,d.push(f);for(var v=0,y=0;y0?(2&n)>0?(x.dx=o.parseShort(),x.dy=o.parseShort()):x.matchedPoints=[o.parseUShort(),o.parseUShort()]:(2&n)>0?(x.dx=o.parseChar(),x.dy=o.parseChar()):x.matchedPoints=[o.parseByte(),o.parseByte()],(8&n)>0?x.xScale=x.yScale=o.parseF2Dot14():(64&n)>0?(x.xScale=o.parseF2Dot14(),x.yScale=o.parseF2Dot14()):(128&n)>0&&(x.xScale=o.parseF2Dot14(),x.scale01=o.parseF2Dot14(),x.scale10=o.parseF2Dot14(),x.yScale=o.parseF2Dot14()),e.components.push(x),S=!!(32&n)}if(256&n){e.instructionLength=o.parseUShort(),e.instructions=[];for(var T=0;Tt.points.length-1||n.matchedPoints[1]>a.points.length-1)throw Error("Matched points out of range in "+t.name);var s=t.points[n.matchedPoints[0]],i=a.points[n.matchedPoints[1]],u={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};i=Xr([i],u)[0],u.dx=s.x-i.x,u.dy=s.y-i.y,o=Xr(a.points,u)}t.points=t.points.concat(o)}}return Vr(t.points)}function Qr(e,t,r,n){for(var a=new qe.GlyphSet(n),o=0;o=0)return n[a].script;if(t){var o={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-a,0,o),o.script}}},getLangSysTable:function(e,t,r){var n=this.getScriptTable(e,r);if(n){if(!t||"dflt"===t||"DFLT"===t)return n.defaultLangSys;var a=Ir(n.langSysRecords,t);if(a>=0)return n.langSysRecords[a].langSys;if(r){var o={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-a,0,o),o.langSys}}},getFeatureTable:function(e,t,r,n){var a=this.getLangSysTable(e,t,n);if(a){for(var o,s=a.featureIndexes,i=this.font.tables[this.tableName].features,u=0;u=i[l-1].tag,"Features must be added in alphabetical order."),o={tag:r,feature:{params:0,lookupListIndexes:[]}},i.push(o),s.push(l),o.feature}}},getLookupTables:function(e,t,r,n,a){var o=this.getFeatureTable(e,t,r,a),s=[];if(o){for(var i,u=o.lookupListIndexes,l=this.font.tables[this.tableName].lookups,p=0;p=0?r:-1;case 2:var n=Br(e.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],r=e.ranges,n=0;n=0){for(var p=o.ligatureSets[l],h=0;h=176&&r<=183)a+=r-176+1;else if(r>=184&&r<=191)a+=2*(r-184+1);else if(t&&1===o&&27===r)break}while(o>0);e.ip=a}function Un(e,t){exports.DEBUG&&console.log(t.step,"SVTCA["+e.axis+"]"),t.fv=t.pv=t.dpv=e}function wn(e,t){exports.DEBUG&&console.log(t.step,"SPVTCA["+e.axis+"]"),t.pv=t.dpv=e}function kn(e,t){exports.DEBUG&&console.log(t.step,"SFVTCA["+e.axis+"]"),t.fv=e}function En(e,t){var r,n,a=t.stack,o=a.pop(),s=a.pop(),i=t.z2[o],u=t.z1[s];exports.DEBUG&&console.log("SPVTL["+e+"]",o,s),e?(r=i.y-u.y,n=u.x-i.x):(r=u.x-i.x,n=u.y-i.y),t.pv=t.dpv=vn(r,n)}function On(e,t){var r,n,a=t.stack,o=a.pop(),s=a.pop(),i=t.z2[o],u=t.z1[s];exports.DEBUG&&console.log("SFVTL["+e+"]",o,s),e?(r=i.y-u.y,n=u.x-i.x):(r=u.x-i.x,n=u.y-i.y),t.fv=vn(r,n)}function Rn(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",r,n),e.pv=e.dpv=vn(n,r)}function Ln(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SPVFS[]",r,n),e.fv=vn(n,r)}function Cn(e){var t=e.stack,r=e.pv;exports.DEBUG&&console.log(e.step,"GPV[]"),t.push(16384*r.x),t.push(16384*r.y)}function Dn(e){var t=e.stack,r=e.fv;exports.DEBUG&&console.log(e.step,"GFV[]"),t.push(16384*r.x),t.push(16384*r.y)}function In(e){e.fv=e.pv,exports.DEBUG&&console.log(e.step,"SFVTPV[]")}function An(e){var t=e.stack,r=t.pop(),n=t.pop(),a=t.pop(),o=t.pop(),s=t.pop(),i=e.z0,u=e.z1,l=i[r],p=i[n],h=u[a],c=u[o],f=e.z2[s];exports.DEBUG&&console.log("ISECT[], ",r,n,a,o,s);var d=l.x,g=l.y,v=p.x,y=p.y,m=h.x,b=h.y,S=c.x,x=c.y,T=(d-v)*(b-x)-(g-y)*(m-S),U=d*y-g*v,w=m*x-b*S;f.x=(U*(m-S)-w*(d-v))/T,f.y=(U*(b-x)-w*(g-y))/T}function Bn(e){e.rp0=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP0[]",e.rp0)}function Pn(e){e.rp1=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP1[]",e.rp1)}function Mn(e){e.rp2=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SRP2[]",e.rp2)}function Nn(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP0[]",t),e.zp0=t,t){case 0:e.tZone||xn(e),e.z0=e.tZone;break;case 1:e.z0=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Gn(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP1[]",t),e.zp1=t,t){case 0:e.tZone||xn(e),e.z1=e.tZone;break;case 1:e.z1=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function Fn(e){var t=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SZP2[]",t),e.zp2=t,t){case 0:e.tZone||xn(e),e.z2=e.tZone;break;case 1:e.z2=e.gZone;break;default:throw new Error("Invalid zone pointer")}}function _n(e){var 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||xn(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 Hn(e){e.loop=e.stack.pop(),exports.DEBUG&&console.log(e.step,"SLOOP[]",e.loop)}function zn(e){exports.DEBUG&&console.log(e.step,"RTG[]"),e.round=sn}function Wn(e){exports.DEBUG&&console.log(e.step,"RTHG[]"),e.round=ln}function Yn(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SMD[]",t),e.minDis=t/64}function qn(e){exports.DEBUG&&console.log(e.step,"ELSE[]"),Tn(e,!1)}function Xn(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"JMPR[]",t),e.ip+=t-1}function jn(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCVTCI[]",t),e.cvCutIn=t/64}function Vn(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DUP[]"),t.push(t[t.length-1])}function Zn(e){exports.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function Qn(e){exports.DEBUG&&console.log(e.step,"CLEAR[]"),e.stack.length=0}function Kn(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SWAP[]"),t.push(r),t.push(n)}function Jn(e){var t=e.stack;exports.DEBUG&&console.log(e.step,"DEPTH[]"),t.push(t.length)}function $n(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"LOOPCALL[]",r,n);var a=e.ip,o=e.prog;e.prog=e.funcs[r];for(var s=0;s1?"loop "+(t.loop-i)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",l)}t.loop=1}function ia(e,t){var r=t.stack,n=e?t.rp1:t.rp2,a=(e?t.z0:t.z1)[n],o=t.fv,s=t.pv,i=r.pop(),u=t.z2[t.contours[i]],l=u;exports.DEBUG&&console.log(t.step,"SHC["+e+"]",i);var p=s.distance(a,a,!1,!0);do{l!==a&&o.setRelative(l,l,p,s),l=l.nextPointOnContour}while(l!==u)}function ua(e,t){var r,n,a=t.stack,o=e?t.rp1:t.rp2,s=(e?t.z0:t.z1)[o],i=t.fv,u=t.pv,l=a.pop();switch(exports.DEBUG&&console.log(t.step,"SHZ["+e+"]",l),l){case 0:r=t.tZone;break;case 1:r=t.gZone;break;default:throw new Error("Invalid zone")}for(var p=u.distance(s,s,!1,!0),h=r.length-2,c=0;c1?"loop "+(e.loop-r)+": ":"")+"SHPIX[]",s,a),n.setRelative(i,i,a),n.touch(i)}e.loop=1}function pa(e){var t=e.stack,r=e.rp1,n=e.rp2,a=e.loop,o=e.z0[r],s=e.z1[n],i=e.fv,u=e.dpv,l=e.z2;while(a--){var p=t.pop(),h=l[p];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-a)+": ":"")+"IP[]",p,r,"<->",n),i.interpolate(h,o,s,u),i.touch(h)}e.loop=1}function ha(e,t){var r=t.stack,n=r.pop()/64,a=r.pop(),o=t.z1[a],s=t.z0[t.rp0],i=t.fv,u=t.pv;i.setRelative(o,s,n,u),i.touch(o),exports.DEBUG&&console.log(t.step,"MSIRP["+e+"]",n,a),t.rp1=t.rp0,t.rp2=a,e&&(t.rp0=a)}function ca(e){var t=e.stack,r=e.rp0,n=e.z0[r],a=e.loop,o=e.fv,s=e.pv,i=e.z1;while(a--){var u=t.pop(),l=i[u];exports.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-a)+": ":"")+"ALIGNRP[]",u),o.setRelative(l,n,0,s),o.touch(l)}e.loop=1}function fa(e){exports.DEBUG&&console.log(e.step,"RTDG[]"),e.round=un}function da(e,t){var r=t.stack,n=r.pop(),a=r.pop(),o=t.z0[a],s=t.fv,i=t.pv,u=t.cvt[n];exports.DEBUG&&console.log(t.step,"MIAP["+e+"]",n,"(",u,")",a);var l=i.distance(o,mn);e&&(Math.abs(l-u)",i),t.stack.push(Math.round(64*i))}function Ua(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 ka(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"LT[]",r,n),t.push(nr?1:0)}function Ra(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"GTEQ[]",r,n),t.push(n>=r?1:0)}function La(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"EQ[]",r,n),t.push(r===n?1:0)}function Ca(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"NEQ[]",r,n),t.push(r!==n?1:0)}function Da(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"ODD[]",r),t.push(Math.trunc(r)%2?1:0)}function Ia(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"EVEN[]",r),t.push(Math.trunc(r)%2?0:1)}function Aa(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"IF[]",t),t||(Tn(e,!0),exports.DEBUG&&console.log(e.step,"EIF[]"))}function Ba(e){exports.DEBUG&&console.log(e.step,"EIF[]")}function Pa(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"AND[]",r,n),t.push(r&&n?1:0)}function Ma(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"OR[]",r,n),t.push(r||n?1:0)}function Na(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"NOT[]",r),t.push(r?0:1)}function Ga(e,t){var r=t.stack,n=r.pop(),a=t.fv,o=t.pv,s=t.ppem,i=t.deltaBase+16*(e-1),u=t.deltaShift,l=t.z0;exports.DEBUG&&console.log(t.step,"DELTAP["+e+"]",n,r);for(var p=0;p>4);if(f===s){var d=(15&c)-8;d>=0&&d++,exports.DEBUG&&console.log(t.step,"DELTAPFIX",h,"by",d*u);var g=l[h];a.setRelative(g,g,d*u,o)}}}function Fa(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"SDB[]",r),e.deltaBase=r}function _a(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"SDS[]",r),e.deltaShift=Math.pow(.5,r)}function Ha(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"ADD[]",r,n),t.push(n+r)}function za(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"SUB[]",r,n),t.push(n-r)}function Wa(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"DIV[]",r,n),t.push(64*n/r)}function Ya(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MUL[]",r,n),t.push(n*r/64)}function qa(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"ABS[]",r),t.push(Math.abs(r))}function Xa(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"NEG[]",r),t.push(-r)}function ja(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"FLOOR[]",r),t.push(64*Math.floor(r/64))}function Va(e){var t=e.stack,r=t.pop();exports.DEBUG&&console.log(e.step,"CEILING[]",r),t.push(64*Math.ceil(r/64))}function Za(e,t){var r=t.stack,n=r.pop();exports.DEBUG&&console.log(t.step,"ROUND[]"),r.push(64*t.round(n/64))}function Qa(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"WCVTF[]",r,n),e.cvt[n]=r*e.ppem/e.font.unitsPerEm}function Ka(e,t){var r=t.stack,n=r.pop(),a=t.ppem,o=t.deltaBase+16*(e-1),s=t.deltaShift;exports.DEBUG&&console.log(t.step,"DELTAC["+e+"]",n,r);for(var i=0;i>4);if(p===a){var h=(15&l)-8;h>=0&&h++;var c=h*s;exports.DEBUG&&console.log(t.step,"DELTACFIX",u,"by",c),t.cvt[u]+=c}}}function Ja(e){var t,r=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"SROUND[]",r),e.round=cn,192&r){case 0:t=.5;break;case 64:t=1;break;case 128:t=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=t,48&r){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid SROUND value")}r&=15,e.srThreshold=0===r?0:(r/8-.5)*t}function $a(e){var t,r=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"S45ROUND[]",r),e.round=cn,192&r){case 0:t=Math.sqrt(2)/2;break;case 64:t=Math.sqrt(2);break;case 128:t=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=t,48&r){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*t;break;case 32:e.srPhase=.5*t;break;case 48:e.srPhase=.75*t;break;default:throw new Error("invalid S45ROUND value")}r&=15,e.srThreshold=0===r?0:(r/8-.5)*t}function eo(e){exports.DEBUG&&console.log(e.step,"ROFF[]"),e.round=on}function to(e){exports.DEBUG&&console.log(e.step,"RUTG[]"),e.round=pn}function ro(e){exports.DEBUG&&console.log(e.step,"RDTG[]"),e.round=hn}function no(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANCTRL[]",t)}function ao(e,t){var r,n,a=t.stack,o=a.pop(),s=a.pop(),i=t.z2[o],u=t.z1[s];exports.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",o,s),e?(r=i.y-u.y,n=u.x-i.x):(r=u.x-i.x,n=u.y-i.y),t.dpv=vn(r,n)}function oo(e){var t=e.stack,r=t.pop(),n=0;exports.DEBUG&&console.log(e.step,"GETINFO[]",r),1&r&&(n=35),32&r&&(n|=4096),t.push(n)}function so(e){var t=e.stack,r=t.pop(),n=t.pop(),a=t.pop();exports.DEBUG&&console.log(e.step,"ROLL[]"),t.push(n),t.push(r),t.push(a)}function io(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MAX[]",r,n),t.push(Math.max(n,r))}function uo(e){var t=e.stack,r=t.pop(),n=t.pop();exports.DEBUG&&console.log(e.step,"MIN[]",r,n),t.push(Math.min(n,r))}function lo(e){var t=e.stack.pop();exports.DEBUG&&console.log(e.step,"SCANTYPE[]",t)}function po(e){var t=e.stack.pop(),r=e.stack.pop();switch(exports.DEBUG&&console.log(e.step,"INSTCTRL[]",t,r),t){case 1:return void(e.inhibitGridFit=!!r);case 2:return void(e.ignoreCvt=!!r);default:throw new Error("invalid INSTCTRL[] selector")}}function ho(e,t){var r=t.stack,n=t.prog,a=t.ip;exports.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(var o=0;o=0?1:-1,i=Math.abs(i),e&&(l=o.cvt[h],n&&Math.abs(i-l)":"_")+(n?"R":"_")+(0===a?"Gr":1===a?"Bl":2===a?"Wh":"")+"]",e?h+"("+o.cvt[h]+","+l+")":"",c,"(d =",s,"->",u*i,")"),o.rp1=o.rp0,o.rp2=c,t&&(o.rp0=c)}function go(e){this.char=e,this.state={},this.activeState=null}function vo(e,t,r){this.contextName=r,this.startIndex=e,this.endOffset=t}function yo(e,t,r){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=r}function mo(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 bo(e){this.eventId=e,this.subscribers=[]}function So(e){var t=this,r=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];r.forEach((function(e){Object.defineProperty(t.events,e,{value:new bo(e)})})),e&&r.forEach((function(r){var n=e[r];"function"===typeof n&&t.events[r].subscribe(n)}));var n=["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"];n.forEach((function(e){t.events[e].subscribe(t.updateContextsRanges)}))}function xo(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],So.call(this,e)}function To(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function Uo(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function wo(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function ko(e){return/[A-z]/.test(e)}function Eo(e){return/\s/.test(e)}function Oo(e){this.font=e,this.features={}}function Ro(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function Lo(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var r=t.ranges,n=0;n=a.start&&e<=a.end){var o=e-a.start;return a.index+o}}break;default:return-1}return-1}function Co(e,t){var r=Lo(e,t.coverage);return-1===r?null:e+t.deltaGlyphId}function Do(e,t){var r=Lo(e,t.coverage);return-1===r?null:t.substitute[r]}function Io(e,t){for(var r=[],n=0;n2)){var r=this.font,n=this._prepState;if(!n||n.ppem!==t){var a=this._fpgmState;if(!a){Sn.prototype=bn,a=this._fpgmState=new Sn("fpgm",r.tables.fpgm),a.funcs=[],a.font=r,exports.DEBUG&&(console.log("---EXEC FPGM---"),a.step=-1);try{en(a)}catch(l){return console.log("Hinting error in FPGM:"+l),void(this._errorState=3)}}Sn.prototype=a,n=this._prepState=new Sn("prep",r.tables.prep),n.ppem=t;var o=r.tables.cvt;if(o)for(var s=n.cvt=new Array(o.length),i=t/r.unitsPerEm,u=0;u1))try{return tn(e,n)}catch(l){return this._errorState<1&&(console.log("Hinting error:"+l),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},tn=function(e,t){var r,n,a,o=t.ppem/t.font.unitsPerEm,s=o,i=e.components;if(Sn.prototype=t,i){var u=t.font;n=[],r=[];for(var l=0;l=0&&e0&&e<=this.lookahead.length:return this.lookahead[e-1];default:return null}},xo.prototype.rangeToText=function(e){if(e instanceof vo)return this.getRangeTokens(e).map((function(e){return e.char})).join("")},xo.prototype.getText=function(){return this.tokens.map((function(e){return e.char})).join("")},xo.prototype.getContext=function(e){var t=this.registeredContexts[e];return t||null},xo.prototype.on=function(e,t){var r=this.events[e];return r?r.subscribe(t):null},xo.prototype.dispatch=function(e,t){var r=this,n=this.events[e];n instanceof bo&&n.subscribers.forEach((function(e){e.apply(r,t||[])}))},xo.prototype.registerContextChecker=function(e,t,r){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if("function"!==typeof t)return{FAIL:"missing context start check."};if("function"!==typeof r)return{FAIL:"missing context end check."};var n=new yo(e,t,r);return this.registeredContexts[e]=n,this.contextCheckers.push(n),n},xo.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))},xo.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}},xo.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];r.ranges=[]}},xo.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map((function(e){return e.char})),t=0;t=0;r--){var n=t[r],a=Uo(n),o=wo(n);if(!a&&!o)return!0;if(a)return!1}return!1}function Zo(e){if(Uo(e.current))return!1;for(var t=0;t0)}r("fontFamily"),r("weightName"),r("manufacturer"),r("copyright"),r("version"),t(this.unitsPerEm>0)},cs.prototype.toTables=function(){return Dr.fontToTable(this)},cs.prototype.toBuffer=function(){return console.warn("Font.toBuffer is deprecated. Use Font.toArrayBuffer instead."),this.toArrayBuffer()},cs.prototype.toArrayBuffer=function(){for(var e=this.toTables(),t=e.encode(),r=new ArrayBuffer(t.length),n=new Uint8Array(r),a=0;a1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var n=e.parseUShort(),a=255&n;if(e.skip("uShort"),0===a){var o=e.parseUShort();e.skip("uShort",3);for(var s=0;s + * @license MIT + */ +var n=r("1fb5"),a=r("9152"),o=r("e3db");function s(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"===typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}function i(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function b(e){return+e!=e&&(e=0),l.alloc(+e)}function S(e,t){if(l.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(e).length;default:if(n)return Q(e).length;t=(""+t).toLowerCase(),n=!0}}function x(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";e||(e="utf8");while(1)switch(e){case"hex":return N(this,t,r);case"utf8":case"utf-8":return I(this,t,r);case"ascii":return P(this,t,r);case"latin1":case"binary":return M(this,t,r);case"base64":return D(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function T(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function U(e,t,r,n,a){if(0===e.length)return-1;if("string"===typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=a?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(a)return-1;r=e.length-1}else if(r<0){if(!a)return-1;r=0}if("string"===typeof t&&(t=l.from(t,n)),l.isBuffer(t))return 0===t.length?-1:w(e,t,r,n,a);if("number"===typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):w(e,[t],r,n,a);throw new TypeError("val must be string, number or Buffer")}function w(e,t,r,n,a){var o,s=1,i=e.length,u=t.length;if(void 0!==n&&(n=String(n).toLowerCase(),"ucs2"===n||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,i/=2,u/=2,r/=2}function l(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(a){var p=-1;for(o=r;oi&&(r=i-u),o=r;o>=0;o--){for(var h=!0,c=0;ca&&(n=a)):n=a;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var s=0;s239?4:l>223?3:l>191?2:1;if(a+h<=r)switch(h){case 1:l<128&&(p=l);break;case 2:o=e[a+1],128===(192&o)&&(u=(31&l)<<6|63&o,u>127&&(p=u));break;case 3:o=e[a+1],s=e[a+2],128===(192&o)&&128===(192&s)&&(u=(15&l)<<12|(63&o)<<6|63&s,u>2047&&(u<55296||u>57343)&&(p=u));break;case 4:o=e[a+1],s=e[a+2],i=e[a+3],128===(192&o)&&128===(192&s)&&128===(192&i)&&(u=(15&l)<<18|(63&o)<<12|(63&s)<<6|63&i,u>65535&&u<1114112&&(p=u))}null===p?(p=65533,h=1):p>65535&&(p-=65536,n.push(p>>>10&1023|55296),p=56320|1023&p),n.push(p),a+=h}return B(n)}t.Buffer=l,t.SlowBuffer=b,t.INSPECT_MAX_BYTES=50,l.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:s(),t.kMaxLength=i(),l.poolSize=8192,l._augment=function(e){return e.__proto__=l.prototype,e},l.from=function(e,t,r){return p(null,e,t,r)},l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0})),l.alloc=function(e,t,r){return c(null,e,t,r)},l.allocUnsafe=function(e){return f(null,e)},l.allocUnsafeSlow=function(e){return f(null,e)},l.isBuffer=function(e){return!(null==e||!e._isBuffer)},l.compare=function(e,t){if(!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,a=0,o=Math.min(r,n);a0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),""},l.prototype.compare=function(e,t,r,n,a){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===a&&(a=this.length),t<0||r>e.length||n<0||a>this.length)throw new RangeError("out of range index");if(n>=a&&t>=r)return 0;if(n>=a)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,a>>>=0,this===e)return 0;for(var o=a-n,s=r-t,i=Math.min(o,s),u=this.slice(n,a),p=e.slice(t,r),h=0;ha)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return k(this,e,t,r);case"utf8":case"utf-8":return E(this,e,t,r);case"ascii":return O(this,e,t,r);case"latin1":case"binary":return R(this,e,t,r);case"base64":return L(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function B(e){var t=e.length;if(t<=A)return String.fromCharCode.apply(String,e);var r="",n=0;while(nn)&&(r=n);for(var a="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function _(e,t,r,n,a,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||te.length)throw new RangeError("Index out of range")}function H(e,t,r,n){t<0&&(t=65535+t+1);for(var a=0,o=Math.min(e.length-r,2);a>>8*(n?a:1-a)}function z(e,t,r,n){t<0&&(t=4294967295+t+1);for(var a=0,o=Math.min(e.length-r,4);a>>8*(n?a:3-a)&255}function W(e,t,r,n,a,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Y(e,t,r,n,o){return o||W(e,t,r,4,34028234663852886e22,-34028234663852886e22),a.write(e,t,r,n,23,4),r+4}function q(e,t,r,n,o){return o||W(e,t,r,8,17976931348623157e292,-17976931348623157e292),a.write(e,t,r,n,52,8),r+8}l.prototype.slice=function(e,t){var r,n=this.length;if(e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t0&&(a*=256))n+=this[e+--t]*a;return n},l.prototype.readUInt8=function(e,t){return t||F(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||F(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||F(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||F(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||F(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||F(e,t,this.length);var n=this[e],a=1,o=0;while(++o=a&&(n-=Math.pow(2,8*t)),n},l.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||F(e,t,this.length);var n=t,a=1,o=this[e+--n];while(n>0&&(a*=256))o+=this[e+--n]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return t||F(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||F(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){t||F(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return t||F(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||F(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||F(e,4,this.length),a.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||F(e,4,this.length),a.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||F(e,8,this.length),a.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||F(e,8,this.length),a.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){var a=Math.pow(2,8*r)-1;_(this,e,t,r,a,0)}var o=1,s=0;this[t]=255&e;while(++s=0&&(s*=256))this[t+o]=e/s&255;return t+r},l.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):z(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):z(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);_(this,e,t,r,a-1,-a)}var o=0,s=1,i=0;this[t]=255&e;while(++o>0)-i&255;return t+r},l.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var a=Math.pow(2,8*r-1);_(this,e,t,r,a-1,-a)}var o=r-1,s=1,i=0;this[t+o]=255&e;while(--o>=0&&(s*=256))e<0&&0===i&&0!==this[t+o+1]&&(i=1),this[t+o]=(e/s>>0)-i&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):H(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):H(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):z(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):z(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,r){return Y(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return Y(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return q(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return q(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--a)e[a+t]=this[a+r];else if(o<1e3||!l.TYPED_ARRAY_SUPPORT)for(a=0;a>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"===typeof e)for(o=t;o55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function K(e){for(var t=[],r=0;r>8,a=r%256,o.push(a),o.push(n)}return o}function $(e){return n.toByteArray(j(e))}function ee(e,t,r,n){for(var a=0;a=t.length||a>=e.length)break;t[a+r]=e[a]}return a}function te(e){return e!==e}}).call(this,r("c8ba"))},c8ba:function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}e.exports=r},e3db:function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}}}); +//# sourceMappingURL=2a3936b6d597c3ad52f0.worker.js.map \ No newline at end of file diff --git a/2a3936b6d597c3ad52f0.worker.js.map b/2a3936b6d597c3ad52f0.worker.js.map new file mode 100644 index 0000000..bc7eb04 --- /dev/null +++ b/2a3936b6d597c3ad52f0.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/base64-js/index.js","webpack:///./src/models/loadFont.worker.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/opentype.js/dist/opentype.module.js","webpack:///./node_modules/buffer/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/isarray/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","self","window","opentype","require","onmessage","e","data","url","fileName","load","error","font","postMessage","message","read","buffer","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","Infinity","Math","pow","write","rt","abs","isNaN","floor","log","LN2","String","codePointAt","$defineProperty","result","position","this","TypeError","string","size","index","Number","second","first","TINF_OK","TINF_DATA_ERROR","Tree","table","Uint16Array","trans","Data","source","dest","sourceIndex","tag","bitcount","destLen","ltree","dtree","sltree","sdtree","length_bits","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","bits","base","delta","sum","tinf_build_fixed_trees","lt","dt","offs","tinf_build_tree","off","tinf_getbit","bit","tinf_read_bits","val","tinf_decode_symbol","cur","tinf_decode_trees","hlit","hdist","hclen","clen","sym","prev","tinf_inflate_block_data","dist","tinf_inflate_uncompressed_block","invlength","tinf_uncompress","bfinal","btype","res","slice","subarray","tinyInflate","derive","v0","v1","v2","v3","BoundingBox","x1","y1","x2","y2","Path","commands","fill","stroke","strokeWidth","fail","argument","predicate","isEmpty","addPoint","x","y","addX","addY","addBezier","x0","y0","p0","p1","p2","p3","b","a","b2ac","t1","sqrt","t2","addQuad","cp1x","cp1y","cp2x","cp2y","moveTo","type","lineTo","curveTo","bezierCurveTo","quadTo","quadraticCurveTo","close","closePath","extend","pathOrCommands","box","apply","getBoundingBox","startX","startY","prevX","prevY","cmd","draw","ctx","beginPath","fillStyle","strokeStyle","lineWidth","toPathData","decimalPlaces","floatToString","v","round","toFixed","packValues","arguments$1","arguments","undefined","toSVG","svg","toDOMElement","temporaryPath","newPath","document","createElementNS","setAttribute","check","assert","LIMIT16","LIMIT32","decode","encode","sizeOf","constant","BYTE","CHAR","CHARARRAY","USHORT","SHORT","UINT24","ULONG","LONG","FIXED","FWORD","UFWORD","LONGDATETIME","TAG","Card8","Card16","OffSize","SID","NUMBER","NUMBER16","NUMBER32","REAL","toString","exec","epsilon","parseFloat","nibbles","ii","out","i$1","ii$1","parseInt","substr","NAME","STRING","UTF8","numBytes","codePoints","numChars","j","getUint8","fromCharCode","UTF16","getUint16","codepoint","eightBitMacEncodings","macintosh","MACSTRING","dataView","dataLength","encoding","macEncodingCacheKeys","macEncodingTableCache","WeakMap","getMacEncodingTable","cacheKey","cachedTable","decodingTable","encodingTable","set","isByteEncodable","encodeVarDeltaRunAsZeroes","deltas","pos","runLength","numDeltas","encodeVarDeltaRunAsBytes","encodeVarDeltaRunAsWords","str","VARDELTAS","INDEX","offsets","OBJECT","encodedOffsets","offSize","offsetEncoder","encodedOffset","concat","DICT","keys","k","OPERAND","OPERATOR","isArray","OP","wmm","Table","tableName","fields","options","field","optionKeys","ushortList","itemName","list","count","tableList","records","itemCallback","recordList","Coverage","coverageTable","format","glyphs","ScriptList","scriptListTable","scriptRecord","script","defaultLangSys","reqFeatureIndex","featureIndexes","langSysRecords","langSysRecord","langSys","FeatureList","featureListTable","featureRecord","feature","featureParams","lookupListIndexes","LookupList","lookupListTable","subtableMakers","lookupTable","subtableCallback","lookupType","lookupFlag","subtables","CHARSTRING","ops","cachedValue","op","encodingFunction","sizeOfFunction","TABLE","subtableOffsets","bytes","RECORD","LITERAL","constructor","Record","getByte","getUShort","getShort","getInt16","getUInt24","getULong","getUint32","getFixed","decimal","fraction","getTag","getInt8","getOffset","getBytes","startOffset","endOffset","bytesToString","typeOffsets","byte","uShort","short","uLong","fixed","longDateTime","Parser","relativeOffset","parseByte","parseChar","parseCard8","parseUShort","parseCard16","parseSID","parseOffset16","parseShort","parseF2Dot14","parseUInt24","parseULong","parseOffset32","parseFixed","parseString","parseTag","parseLongDateTime","parseVersion","minorBase","major","minor","skip","amount","parseULongList","parseOffset16List","parseUShortList","parseShortList","parseUInt24List","parseByteList","parseList","parseList32","parseRecordList","recordDescription","rec","fieldName","fieldType","parseRecordList32","parseStruct","description","struct","parseValueRecord","valueFormat","valueRecord","xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice","parseValueRecordList","valueCount","values","parsePointer","storeOffset","structOffset","tableOffset","parsePointer32","parseListOfLists","subOffsets","subList","parseCoverage","ranges","parseClassDef","startGlyph","classes","classId","list32","recordList32","pointer","pointer32","offset16","uShortList","uInt24","offset32","uLongList","uInt24List","coverage","classDef","langSysTable","reserved","parseScriptList","parseFeatureList","parseStylisticSetFeatureParams","version","uiNameId","parseCharacterVariantFeatureParams","featUiLabelNameId","featUiTooltipTextNameId","sampleTextNameId","numNamedParameters","firstParamUiLabelNameId","characters","parseLookupList","lookupTableParsers","useMarkFilteringSet","markFilteringSet","parseFeatureVariationsList","majorVersion","minorVersion","featureVariations","conditionSetOffset","featureTableSubstitutionOffset","parse","getCard8","getCard16","parseCmapTableFormat12","cmap","groupCount","language","glyphIndexMap","startCharCode","endCharCode","startGlyphId","parseCmapTableFormat4","segCount","endCountParser","startCountParser","idDeltaParser","idRangeOffsetParser","glyphIndexOffset","glyphIndex","endCount","startCount","idDelta","idRangeOffset","parseCmapTable","numTables","platformId","encodingId","addSegment","segments","addTerminatorSegment","makeCmapTable","isPlan0Only","g","unicode","console","cmapTable","glyph","unicodes","sort","segCountToRemove","endCounts","startCounts","idDeltas","idRangeOffsets","glyphIds","cmap12Groups","segment","glyphId","segCountX2","searchRange","entrySelector","rangeShift","cmap4Length","cmap12Length","cmap12Offset","make","cffStandardStrings","cffStandardEncoding","cffExpertEncoding","standardNames","DefaultEncoding","CmapEncoding","CffEncoding","charset","GlyphNames","post","names","numberOfGlyphs","glyphNameIndex","addGlyphNamesAll","tables","charCodes","addUnicode","cffEncoding","isCIDFont","glyphNames","glyphIndexToName","addGlyphNamesToUnicodeMap","_IndexToUnicodeMap","addGlyphNames","opt","lowMemory","line","charToGlyphIndex","charName","nameToGlyphIndex","gid","getPathDefinition","path","_path","configurable","Glyph","bindConstructorValues","defineDependentProperty","externalName","internalName","newValue","GlyphSet","unitsPerEm","glyphLoader","ttfGlyphLoader","parseGlyph","buildPath","cffGlyphLoader","parseCFFCharstring","charstring","xMin","yMin","xMax","yMax","advanceWidth","getPath","fontSize","hPoints","xScale","yScale","hinting","getCommands","scale","getContours","points","contours","currentContour","pt","lastPointOfContour","getMetrics","xCoords","yCoords","metrics","min","max","leftSideBearing","isFinite","rightSideBearing","drawPoints","drawCircles","arc","PI","blueCircles","redCircles","drawMetrics","_push","unicodeObj","_hmtxTableData","loader","glyphset","equals","calcCFFSubroutineBias","subrs","bias","parseCFFIndex","conversionFn","objectOffset","objects","offsetSize","parseCFFIndexLowMemory","getCffIndexObject","parseFloatOperand","parser","eof","n1","n2","parseOperand","b0","b1","b2","b3","b4","entriesToObject","entries","parseCFFDict","operands","getCFFString","strings","interpretDict","dict","meta","newDict","parseCFFHeader","header","formatMajor","formatMinor","TOP_DICT_META","PRIVATE_DICT_META","parseCFFTopDict","parseCFFPrivateDict","gatherCFFTopDicts","cffIndex","topDictArray","iTopDict","topDictData","DataView","topDict","_subrs","_subrsBias","privateSize","private","privateOffset","privateDict","_defaultWidthX","defaultWidthX","_nominalWidthX","nominalWidthX","subrOffset","subrIndex","_privateDict","parseCFFCharset","nGlyphs","sid","i$2","parseCFFEncoding","enc","nCodes","nRanges","nLeft","c1x","c1y","c2x","c2y","subrsBias","stack","nStems","haveWidth","open","fdIndex","cff","_fdSelect","fdDict","_fdArray","width","newContour","parseStems","hasWidthArg","shift","codeIndex","subrCode","jpx","jpy","c3x","c3y","c4x","c4y","pop","gsubrsBias","gsubrs","parseCFFFDSelect","fdArrayCount","fdSelect","iGid","next","iRange","parseCFFTable","nameIndex","topDictIndex","stringIndex","globalSubrIndex","ros","fdArrayOffset","fdArray","fdSelectOffset","fdArrayIndex","numGlyphs","charStringsIndex","privateDictOffset","charStrings","charString","encodeString","makeHeader","makeNameIndex","fontNames","makeDict","attrs","entry","makeTopDict","makeTopDictIndex","topDicts","makeStringIndex","makeGlobalSubrIndex","makeCharsets","glyphName","glyphSID","glyphToOps","dx","dy","_13","_23","dx1","dy1","dx2","dy2","makeCharStringsIndex","makePrivateDict","makeCFFTable","fontScale","fullName","familyName","weight","weightName","fontBBox","fontMatrix","privateAttrs","postScriptName","charsets","parseHeadTable","head","fontRevision","checkSumAdjustment","magicNumber","flags","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","makeHeadTable","timestamp","Date","getTime","createdTimestamp","parseHheaTable","hhea","ascender","descender","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfHMetrics","makeHheaTable","parseHmtxTableAll","numMetrics","parseHmtxTableOnLowMemory","parseHmtxTable","makeHmtxTable","hmtx","makeLtagTable","tags","stringPool","stringPoolOffset","parseLtagTable","tableVersion","numTags","ltag","parseMaxpTable","maxp","maxPoints","maxContours","maxCompositePoints","maxCompositeContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","makeMaxpTable","nameTableNames","macLanguages","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","macLanguageToScript","windowsLanguages","getLanguageCode","platformID","languageID","utf16","macScriptEncodings","macLanguageEncodings","getEncoding","encodingID","parseNameTable","stringOffset","nameID","text","translations","reverseDict","makeNameRecord","findSubArray","needle","haystack","needleLength","limit","loop","addStringToPool","pool","makeNameTable","nameIDs","namesWithNumericKeys","nameTableIds","id","macLanguageIds","windowsLanguageIds","nameRecords","lang","macPlatform","macLanguage","macScript","macEncoding","macName","macNameOffset","winLanguage","winName","winNameOffset","_name","unicodeRanges","begin","getUnicodeRange","range","parseOS2Table","os2","xAvgCharWidth","usWeightClass","usWidthClass","fsType","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","sFamilyClass","panose","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","achVendID","fsSelection","usFirstCharIndex","usLastCharIndex","sTypoAscender","sTypoDescender","sTypoLineGap","usWinAscent","usWinDescent","ulCodePageRange1","ulCodePageRange2","sxHeight","sCapHeight","usDefaultChar","usBreakChar","usMaxContent","makeOS2Table","parsePostTable","italicAngle","underlinePosition","underlineThickness","isFixedPitch","minMemType42","maxMemType42","minMemType1","maxMemType1","nameLength","makePostTable","subtableParsers","substFormat","deltaGlyphId","substitute","sequences","alternateSets","ligatureSets","ligGlyph","components","lookupRecordDesc","sequenceIndex","lookupListIndex","parseGsubTable","scripts","features","lookups","variations","forEach","f","match","featureParamsTable","p$1","ruleSets","glyphCount","substCount","input","lookupRecords","classSets","coverages","chainRuleSets","backtrack","lookahead","backtrackClassDef","inputClassDef","lookaheadClassDef","chainClassSet","backtrackCoverage","inputCoverage","lookaheadCoverage","extensionLookupType","extensionParser","extension","substitutes","makeGsubTable","gsub","subtable","alternateSet","ligatureSet","ligature","parseMetaTable","numDataMaps","dataOffset","makeMetaTable","log2","computeCheckSum","makeTableRecord","checkSum","makeSfntTable","sfnt","highestPowerOf2","recordFields","tableFields","tableLength","tableRecord","r1","r2","metricsForChar","chars","notFoundMetrics","average","vs","fontToSfntTable","firstCharIndex","xMins","yMins","xMaxs","yMaxs","advanceWidths","leftSideBearings","rightSideBearings","lastCharIndex","globals","advanceWidthAvg","maxLeftSideBearing","headTable","hheaTable","maxpTable","os2Table","assign","hasChar","hmtxTable","englishFamilyName","getEnglishName","englishStyleName","englishFullName","replace","uniqueID","en","preferredFamily","fontFamily","preferredSubfamily","fontSubfamily","languageTags","nameTable","ltagTable","postTable","cffTable","metaTable","metas","sfntTable","checkSumAdjusted","fontToTable","searchTag","imin","imax","imid","binSearch","Layout","Position","Substitution","arraysEqual","ar1","ar2","getSubstFormat","defaultSubtable","isBrowser","nodeBufferToArrayBuffer","ab","ArrayBuffer","view","arrayBufferToNodeBuffer","Buffer","checkArgument","expression","parseGlyphCoordinate","flag","previousValue","shortVectorBitMask","sameBitMask","numberOfContours","_xMin","_yMin","_xMax","_yMax","endPointIndices","instructionLength","instructions","numberOfCoordinates","repeatCount","point","i$3","onCurve","px","i$4","py","i$5","isComposite","moreComponents","component","scale01","scale10","matchedPoints","i$6","transformPoints","transform","newPoints","newPt","contourIndex","contour","curr","next2","componentGlyph","transformedPoints","firstPt","secondPt","parseGlyfTableAll","loca","nextOffset","parseGlyfTableOnLowMemory","parseGlyfTable","getTable","layout","createDefaultTable","getScriptNames","map","getDefaultScriptName","hasLatn","getScriptTable","scr","splice","getLangSysTable","scriptTable","getFeatureTable","featIndexes","allFeatures","params","getLookupTables","featureTable","allLookups","getGlyphClass","classDefTable","getCoverageIndex","expandCoverage","init","defaultKerningTables","getKerningTables","getKerningValue","kerningLookups","leftIndex","rightIndex","covIndex","posFormat","pairSet","pairSets","pair","secondGlyph","value1","class1","classDef1","class2","classDef2","pair$1","classRecords","gpos","getSingle","substitutions","lookupTables","idx","sub","by","getAlternates","alternates","getLigatures","ligatures","ligSet","lig","addSingle","substitution","coverageGlyph","addAlternate","addLigature","ligComponents","ligatureTable","getFeature","test","add","instructionTable","execGlyph","execComponent","glyf","Hinting","_fpgmState","_prepState","_errorState","roundOff","roundToGrid","sign","roundToDoubleGrid","roundToHalfGrid","roundUpToGrid","ceil","roundDownToGrid","roundSuper","period","srPeriod","phase","srPhase","threshold","srThreshold","trunc","xUnitVector","axis","distance","o1","o2","xo","interpolate","rp1","rp2","pv","do1","do2","doa1","doa2","dm1","dm2","setRelative","normalSlope","NEGATIVE_INFINITY","rp","org","rpx","rpy","yo","rpdx","rpdy","slope","touch","xTouched","touched","untouch","yUnitVector","POSITIVE_INFINITY","yTouched","UnitVector","freeze","getUnitVector","HPoint","prevPointOnContour","nextPointOnContour","preventExtensions","pvns","fvs","nextTouched","prevTouched","HPZero","defaultState","cvCutIn","deltaBase","deltaShift","minDis","autoFlip","State","env","prog","zp0","zp1","zp2","rp0","fv","dpv","initTZone","state","tZone","gZone","handleElse","ins","ip","nesting","SVTCA","DEBUG","step","SPVTCA","SFVTCA","SPVTL","p2i","p1i","z2","z1","SFVTL","SPVFS","SFVFS","GPV","GFV","SFVTPV","ISECT","pa0i","pa1i","pb0i","pb1i","pi","z0","pa0","pa1","pb0","pb1","x3","y3","x4","y4","div","f1","f2","SRP0","SRP1","SRP2","SZP0","SZP1","SZP2","SZPS","SLOOP","RTG","RTHG","SMD","ELSE","JMPR","SCVTCI","DUP","POP","CLEAR","SWAP","DEPTH","LOOPCALL","fn","cip","cprog","funcs","CALL","CINDEX","MINDEX","FDEF","ipBegin","MDAP","IUP","cp","pp","np","pLen","SHP","rpi","SHC","ci","sp","SHZ","z","SHPIX","IP","rp1i","rp2i","MSIRP","ALIGNRP","rp0i","RTDG","MIAP","cv","cvt","NPUSHB","NPUSHW","w","WS","store","RS","WCVTP","RCVT","cvte","GC","MD","pi2","pi1","MPPEM","ppem","FLIPON","LT","e2","e1","LTEQ","GT","GTEQ","EQ","NEQ","ODD","EVEN","IF","EIF","AND","OR","NOT","DELTAP123","ds","arg","appem","mag","SDB","SDS","ADD","SUB","DIV","MUL","ABS","NEG","FLOOR","CEILING","ROUND","WCVTF","DELTAC123","SROUND","S45ROUND","ROFF","RUTG","RDTG","SCANCTRL","SDPVTL","GETINFO","sel","ROLL","MAX","MIN","SCANTYPE","INSTCTRL","inhibitGridFit","ignoreCvt","PUSHB","PUSHW","MDRP_MIRP","indirect","setRp0","keepD","ro","od","md","Token","char","activeState","ContextRange","startIndex","contextName","ContextChecker","checkStart","checkEnd","openRange","ContextParams","context","currentIndex","current","Event","eventId","subscribers","initializeCoreEvents","events","this$1","coreEvents","event","subscribe","requiresContextUpdate","updateContextsRanges","Tokenizer","tokens","registeredContexts","contextCheckers","registeredModifiers","isArabicChar","isIsolatedArabicChar","isTashkeelArabicChar","isLatinChar","isWhiteSpace","FeatureQuery","SubstitutionAction","action","lookupCoverage","singleSubstitutionFormat1","substituteIndex","singleSubstitutionFormat2","lookupCoverageList","coverageList","contextParams","lookupList","lookupIndex","chainingSubstitutionFormat3","lookupsCount","inputLookups","lookaheadOffset","lookaheadContext","lookaheadParams","lookaheadLookups","backtrackContext","reverse","backtrackParams","backtrackLookups","contextRulesMatch","lookupRecord","getLookupByIndex","subtable$1","getLookupMethod","substitutionType","getSubstitutionType","ligatureSubstitutionFormat1","ligSetIndex","lookaheadItem","decompositionSubstitutionFormat1","arabicWordStartCheck","prevChar","arabicWordEndCheck","nextChar","prepState","fpgmState","fpgm","prep","oCvt","cg","gz","cc","gLen","setState","getState","stateId","inboundIndex","composeRUD","RUDs","silent","RUD","hasFAILObject","obj","every","FAIL","report","filter","dispatch","replaceRange","isTokenType","token","replaced","replaceToken","removeRange","removeToken","insertToken","tokenType","registerModifier","modifierId","condition","modifier","newToken","conditionParams","canApplyModifier","modifierParams","newStateValue","eventHandler","unsubscribe","subsId","setCurrentIndex","rangeToText","getRangeTokens","getText","getContext","on","eventName","args","subscriber","registerContextChecker","contextStartCheck","contextEndCheck","endIndex","getContextRanges","resetContextsRanges","runContextCheck","setEndOffset","rangeId","contextChecker","tokenize","from","getDefaultScriptFeaturesIndexes","getScriptFeaturesIndexes","scriptTag","mapTagsToFeatures","getScriptFeatures","featuresIndexes","lookupFeature","query","getFeatureLookups","getLookupSubtables","substType","supports","supportedScript","supportedFeature","some","scriptFeatures","arabicWordCheck","startCheck","endCheck","arabicSentenceStartCheck","arabicSentenceEndCheck","nextIsWhitespace","arabicCharAhead","arabicSentenceCheck","singleSubstitutionFormat1$1","singleSubstitutionFormat2$1","chainingSubstitutionFormat3$1","subst","ligatureSubstitutionFormat1$1","compsCount","SUBSTITUTIONS","applySubstitution","willConnectPrev","charContextParams","isolated","tashkeel","willConnectNext","arabicPresentationForms","featuresTags","tokenizer","CONNECT","info","getContextParams","arabicRequiredLigatures","latinWordStartCheck","latinWordEndCheck","latinWordCheck","getContextParams$1","latinLigature","Bidi","baseDir","checkId","contextChecks","tokenizeText","reverseArabicSentences","rangeTokens","checkGlyphIndexStatus","applyArabicPresentationForms","applyArabicRequireLigatures","applyLatinLigatures","Font","empty","styleName","designer","designerURL","manufacturer","manufacturerURL","license","licenseURL","copyright","trademark","weightClass","usWeightClasses","MEDIUM","widthClass","usWidthClasses","fsSelectionValues","REGULAR","supported","_hinting","outlinesFormat","addName","nameString","JSON","stringify","nameKey","makeFvarAxis","minValue","defaultValue","maxValue","parseFvarAxis","makeFvarInstance","inst","axes","axisTag","coordinates","parseFvarInstance","makeFvarTable","fvar","instances","offsetToData","parseFvarTable","axisCount","axisSize","instanceCount","instanceSize","instanceStart","setText","registerFeatures","supportedTags","applyFeatures","checkContextReady","contextId","applyFeaturesToContexts","processText","getBidiText","getTextGlyphs","indexes","deleted","charToGlyph","updateFeatures","defaultRenderOptions","stringToGlyphs","bidi","charToGlyphIndexMod","notdef","nameToGlyph","leftGlyph","rightGlyph","gposKerning","kerningPairs","kerning","forEachGlyph","callback","kerningValue","letterSpacing","tracking","fullPath","gX","gY","gFontSize","glyphPath","getPaths","glyphPaths","getAdvanceWidth","validate","_this","assertNamePresent","englishName","trim","toTables","toBuffer","warn","toArrayBuffer","intArray","download","arrayBuffer","URL","webkitURL","blob","Blob","link","createElement","href","createObjectURL","createEvent","initEvent","dispatchEvent","fs","writeFileSync","ITALIC","UNDERSCORE","NEGATIVE","OUTLINED","STRIKEOUT","BOLD","USER_TYPO_METRICS","WWS","OBLIQUE","ULTRA_CONDENSED","EXTRA_CONDENSED","CONDENSED","SEMI_CONDENSED","SEMI_EXPANDED","EXPANDED","EXTRA_EXPANDED","ULTRA_EXPANDED","THIN","EXTRA_LIGHT","LIGHT","NORMAL","SEMI_BOLD","EXTRA_BOLD","BLACK","subtableParsers$1","parseGposTable","posformat","valueFormat1","valueFormat2","value2","class1Count","class2Count","subtableMakers$1","makeGposTable","parseWindowsKernTable","pairs","subtableVersion","nPairs","parseMacKernTable","nTables","parseKernTable","kern","parseLocaTable","shortVersion","parseFn","glyphOffsets","glyphOffset","loadFromFile","readFile","err","loadFromUrl","request","XMLHttpRequest","responseType","onload","response","statusText","onerror","send","parseOpenTypeTableEntries","tableEntries","checksum","compression","parseWOFFTableEntries","compLength","origLength","compressedLength","uncompressTable","tableEntry","inBuffer","outBuffer","parseBuffer","cffTableEntry","fvarTableEntry","glyfTableEntry","gposTableEntry","gsubTableEntry","hmtxTableEntry","kernTableEntry","locaTableEntry","nameTableEntry","metaTableEntry","signature","flavor","locaTable","locaOffsets","glyfTable","kernTable","gposTable","gsubTable","ref","uiName","ref$1","featUiLabelName","fvarTable","isNode","loadFn","Promise","resolve","reject","loadSync","readFileSync","__proto__","_parse","base64","ieee754","typedArraySupport","foo","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","checked","isEncoding","actual","fromArrayLike","array","byteOffset","isBuffer","copy","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","global","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","inspect","target","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","MAX_ARGUMENTS_LENGTH","ret","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","src","dst","Function"],"mappings":"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ACA,aACA,WACA,kBACA,qBACA,qBACA,aACA,yBACA,YACA,gBAGAC,GAAe,CACfC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,UACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,QACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,UACJC,GAAI,UACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,QACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,UACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,IAAK,KACLC,I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,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAASj/B,IAAK,OACtB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,MAAQj/B,IAAK,OACrB,CAACi/B,MAAO,KAAQj/B,IAAK,MACrB,CAACi/B,MAAO,MAASj/B,IAAK,OACtB,CAACi/B,MAAO,MAASj/B,IAAK,OACtB,CAACi/B,MAAO,MAASj/B,IAAK,OACtB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AMl6C,UAAKmO,EAAW,GACtB+rC,GAAMl6C,UAAKmO,EAAW,GACtBosC,GAAMv6C,UAAKmO,EAAW,GACtBosC,GAAMv6C,UAAKmO,EAAW,GACtBqsC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAkB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,QACAzuC,OACAA,EACA0uC,GACAC,GACAC,GACAC,GACAC,GACAO,GACAC,QACAtvC,OACAA,OACAA,EACA+uC,GACAK,GACAG,QACAvvC,EACAyvC,GAAK59C,UAAKmO,EAAW,GACrByvC,GAAK59C,UAAKmO,EAAW,GACrB0vC,GAAI79C,UAAKmO,EAAWopC,IACpBsG,GAAI79C,UAAKmO,EAAWqnC,IACpB0I,GAAIl+C,UAAKmO,EAAW,GACpB+vC,GAAIl+C,UAAKmO,EAAW,GACpBiwC,GAAIp+C,UAAKmO,EAAW,GACpBiwC,GAAIp+C,UAAKmO,EAAW,GACpBowC,GAAIv+C,UAAKmO,EAAW,GACpBowC,GAAIv+C,UAAKmO,EAAW,GACpBswC,GACAC,GACAG,GAAM7+C,UAAKmO,EAAW,GACtB0wC,GAAM7+C,UAAKmO,EAAW,GACtB2wC,GACAE,GACAC,GAAKj/C,UAAKmO,EAAW,GACrB8wC,GAAKj/C,UAAKmO,EAAW,GACrBixC,GACAC,GACAE,GACAE,GACAC,GACAC,GACAE,GAAG7/C,UAAKmO,EAAW,GACnB0xC,GAAG7/C,UAAKmO,EAAW,QACnBA,EACA2xC,GAAG9/C,UAAKmO,EAAW,GACnB2xC,GAAG9/C,UAAKmO,EAAW,GACnB8xC,QACA9xC,EACAgyC,QACAhyC,OACAA,EACAiyC,GACAG,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAAUnhD,UAAKmO,EAAW,GAC1BqzC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAAMliD,UAAKmO,EAAW,GACtB+zC,GAAMliD,UAAKmO,EAAW,GACtB+zC,GAAMliD,UAAKmO,EAAW,GACtB+zC,GAAMliD,UAAKmO,EAAW,QACtBA,OACAA,OACAA,OACAA,EACAg0C,GACAhB,GAAUnhD,UAAKmO,EAAW,GAC1BgzC,GAAUnhD,UAAKmO,EAAW,GAC1Bi0C,GAAUpiD,UAAKmO,EAAW,GAC1Bi0C,GAAUpiD,UAAKmO,EAAW,GAC1Bi0C,GAAUpiD,UAAKmO,EAAW,GAC1Bk0C,GACAC,QACAn0C,OACAA,EACAo0C,QACAp0C,EACAq0C,GACAC,GACA3F,GACAA,QACA3uC,OACAA,OACAA,OACAA,OACAA,EACAu0C,GACAC,GAAO3iD,UAAKmO,EAAW,GACvBw0C,GAAO3iD,UAAKmO,EAAW,GACvBy0C,QACAz0C,EACA20C,GACAC,GACAC,GACAC,GACAC,QACA/0C,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,OACAA,EACAk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBk1C,GAAMrjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBm1C,GAAMtjD,UAAKmO,EAAW,GACtBo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,GACtCo1C,GAAUvjD,UAAKmO,EAAW,EAAG,EAAG,EAAG,EAAG,IA2WrD21C,GAAM1jD,UAAU4oD,SAAW,SAASjpD,EAAKN,GAGrC,OAFA2F,KAAKk0C,MAAMv5C,GAAON,EAClB2F,KAAK4+C,YAAc,CAAEjkD,IAAKA,EAAKN,MAAO2F,KAAKk0C,MAAMv5C,IAC1CqF,KAAK4+C,aAGhBF,GAAM1jD,UAAU6oD,SAAW,SAAUC,GACjC,OAAO9jD,KAAKk0C,MAAM4P,IAAY,MAOlC3D,GAAUnlD,UAAU+oD,aAAe,SAAS3jD,GACxC,OAAOA,GAAS,GAAKA,EAAQJ,KAAKogD,OAAOtkD,QAQ7CqkD,GAAUnlD,UAAUgpD,WAAa,SAAUC,GACvC,IAAIpE,EAAS7/C,KAETkkD,GAAS,EACThQ,EAAQ+P,EAAKnZ,KAAI,SAAUqZ,GAAO,OAClCtE,EAAOsE,EAAI,IAAI18C,MAAMo4C,EAAQsE,EAAIngD,MAAM,GAAG4K,OAAOs1C,OAEjDE,EAAgB,SAAUC,GAAO,MAClB,kBAARA,GACPA,EAAIppD,eAAe,SAEvB,GAAIi5C,EAAMoQ,MAAMF,GACZ,MAAO,CACHG,KAAM,mEACNC,OAAQtQ,EAAMuQ,OAAOL,IAG7BpkD,KAAK0kD,SAAS,aAAc,CAACxQ,EAAMuQ,QAAO,SAAUvyC,GAAM,OAAQkyC,EAAclyC,SAUpFiuC,GAAUnlD,UAAU2pD,aAAe,SAAU7F,EAAYtgD,EAAQ4hD,EAAQ8D,GACrE1lD,EAAoB,OAAXA,EAAkBA,EAASwB,KAAKogD,OAAOtkD,OAChD,IAAI8oD,EAAcxE,EAAOkE,OAAM,SAAUO,GAAS,OAAOA,aAAiBnG,MAC1E,IAAKn/C,MAAMu/C,IAAe9+C,KAAK+jD,aAAajF,IAAe8F,EAAa,CACpE,IAAIE,EAAW9kD,KAAKogD,OAAOjV,OAAO1jC,MAC9BzH,KAAKogD,OAAQ,CAACtB,EAAYtgD,GAAQoQ,OAAOwxC,IAG7C,OADK8D,GAAUlkD,KAAK0kD,SAAS,eAAgB,CAAC5F,EAAYtgD,EAAQ4hD,IAC3D,CAAC0E,EAAU1E,GAElB,MAAO,CAAEmE,KAAM,gDAUvBpE,GAAUnlD,UAAU+pD,aAAe,SAAU3kD,EAAOykD,EAAOX,GACvD,IAAK3kD,MAAMa,IAAUJ,KAAK+jD,aAAa3jD,IAAUykD,aAAiBnG,GAAO,CACrE,IAAIoG,EAAW9kD,KAAKogD,OAAOjV,OAAO/qC,EAAO,EAAGykD,GAE5C,OADKX,GAAUlkD,KAAK0kD,SAAS,eAAgB,CAACtkD,EAAOykD,IAC9C,CAACC,EAAS,GAAID,GAErB,MAAO,CAAEN,KAAM,0CAUvBpE,GAAUnlD,UAAUgqD,YAAc,SAASlG,EAAYtgD,EAAQ0lD,GAC3D1lD,EAAUe,MAAMf,GAAmBwB,KAAKogD,OAAOtkD,OAArB0C,EAC1B,IAAI4hD,EAASpgD,KAAKogD,OAAOjV,OAAO2T,EAAYtgD,GAE5C,OADK0lD,GAAUlkD,KAAK0kD,SAAS,cAAe,CAACtE,EAAQtB,EAAYtgD,IAC1D4hD,GAQXD,GAAUnlD,UAAUiqD,YAAc,SAAS7kD,EAAO8jD,GAC9C,IAAK3kD,MAAMa,IAAUJ,KAAK+jD,aAAa3jD,GAAQ,CAC3C,IAAIykD,EAAQ7kD,KAAKogD,OAAOjV,OAAO/qC,EAAO,GAEtC,OADK8jD,GAAUlkD,KAAK0kD,SAAS,cAAe,CAACG,EAAOzkD,IAC7CykD,EAEP,MAAO,CAAEN,KAAM,sCAUvBpE,GAAUnlD,UAAUkqD,YAAc,SAAU9E,EAAQhgD,EAAO8jD,GACvD,IAAIiB,EAAY/E,EAAOkE,OACnB,SAAUO,GAAS,OAAOA,aAAiBnG,MAE/C,OAAIyG,GACAnlD,KAAKogD,OAAOjV,OAAO1jC,MACfzH,KAAKogD,OAAQ,CAAChgD,EAAO,GAAGwO,OAAOwxC,IAE9B8D,GAAUlkD,KAAK0kD,SAAS,cAAe,CAACtE,EAAQhgD,IAC9CggD,GAEA,CAAEmE,KAAM,mCAUvBpE,GAAUnlD,UAAUoqD,iBAAmB,SAASC,EAAYC,EAAWC,GACnEvlD,KAAK4/C,OAAO4F,SAASxF,WAAU,SAAS6E,EAAOvD,GAC3C,IAAImE,EAAkB,CAACZ,EAAOvD,GAC1BoE,EACc,OAAdJ,IAC2C,IAA3CA,EAAU79C,MAAMzH,KAAMylD,GAEtBE,EAAiB,CAACd,EAAOvD,GAC7B,GAAIoE,EAAkB,CAClB,IAAIE,EAAgBL,EAAS99C,MAAMzH,KAAM2lD,GACzCd,EAAMjB,SAASyB,EAAYO,OAGnC5lD,KAAKugD,oBAAoBrjD,KAAKmoD,IAOlC7F,GAAMxkD,UAAUglD,UAAY,SAAU6F,GAClC,MAA4B,oBAAjBA,EACE7lD,KAAK0/C,YAAYxiD,KAAK2oD,GAAiB,EAEzC,CAAEtB,KAAO,YAAevkD,KAAY,QAAI,oBAQvDw/C,GAAMxkD,UAAU8qD,YAAc,SAAUC,GACpC/lD,KAAK0/C,YAAYvU,OAAO4a,EAAQ,IAOpC3G,GAAcpkD,UAAUgrD,gBAAkB,SAAS5lD,GAC/CJ,KAAKI,MAAQA,EACbJ,KAAKu/C,QAAUv/C,KAAKq/C,QAAQj/C,GAC5BJ,KAAKohC,UAAYphC,KAAKq/C,QAAQr7C,MAAM,EAAG5D,GACvCJ,KAAKqhC,UAAYrhC,KAAKq/C,QAAQr7C,MAAM5D,EAAQ,IAUhDg/C,GAAcpkD,UAAUf,IAAM,SAAUuE,GACpC,QAAQ,GACJ,KAAiB,IAAXA,EACF,OAAOwB,KAAKu/C,QAChB,KAAM/gD,EAAS,GAAKU,KAAKI,IAAId,IAAWwB,KAAKohC,UAAUtlC,OACnD,OAAOkE,KAAKohC,UAAUp9B,MAAMxF,GAAQ,GACxC,KAAMA,EAAS,GAAKA,GAAUwB,KAAKqhC,UAAUvlC,OACzC,OAAOkE,KAAKqhC,UAAU7iC,EAAS,GACnC,QACI,OAAO,OAQnB2hD,GAAUnlD,UAAUirD,YAAc,SAAU9pB,GACxC,GAAIA,aAAiB0iB,GACjB,OACI7+C,KAAKkmD,eAAe/pB,GACf2O,KAAI,SAAU+Z,GAAS,OAAOA,EAAMlG,QAASxhD,KAAK,KAQnEgjD,GAAUnlD,UAAUmrD,QAAU,WAC1B,OAAOnmD,KAAKogD,OAAOtV,KAAI,SAAU+Z,GAAS,OAAOA,EAAMlG,QAASxhD,KAAK,KAOzEgjD,GAAUnlD,UAAUorD,WAAa,SAAUrH,GACvC,IAAIM,EAAUr/C,KAAKqgD,mBAAmBtB,GACtC,OAASM,GAAoB,MAQjCc,GAAUnlD,UAAUqrD,GAAK,SAASC,EAAWT,GACzC,IAAI9F,EAAQ//C,KAAK4/C,OAAO0G,GACxB,OAAMvG,EACKA,EAAMC,UAAU6F,GAEhB,MASf1F,GAAUnlD,UAAU0pD,SAAW,SAAS4B,EAAWC,GAC/C,IAAI1G,EAAS7/C,KAET+/C,EAAQ//C,KAAK4/C,OAAO0G,GACpBvG,aAAiBP,IACjBO,EAAML,YAAYnf,SAAQ,SAAUimB,GAChCA,EAAW/+C,MAAMo4C,EAAQ0G,GAAQ,QAY7CpG,GAAUnlD,UAAUyrD,uBAAyB,SAAS1H,EAAa2H,EAAmBC,GAClF,GAAM3mD,KAAKomD,WAAWrH,GAAgB,MAAO,CACzCwF,KACC,iBAAmBxF,EAAc,4BAEtC,GAAiC,oBAAtB2H,EAAoC,MAAO,CAClDnC,KACA,gCAEJ,GAA+B,oBAApBoC,EAAkC,MAAO,CAChDpC,KACA,8BAEJ,IAAIjE,EAAkB,IAAItB,GACtBD,EAAa2H,EAAmBC,GAIpC,OAFA3mD,KAAKqgD,mBAAmBtB,GAAeuB,EACvCtgD,KAAKsgD,gBAAgBpjD,KAAKojD,GACnBA,GAOXH,GAAUnlD,UAAUkrD,eAAiB,SAAS/pB,GAC1C,IAAIyqB,EAAWzqB,EAAM2iB,WAAa3iB,EAAMxoB,UACxC,MAAO,GAAG/E,OACN5O,KAAKogD,OACAp8C,MAAMm4B,EAAM2iB,WAAY8H,KAQrCzG,GAAUnlD,UAAU6rD,iBAAmB,SAAS9H,GAC5C,IAAIM,EAAUr/C,KAAKomD,WAAWrH,GAC9B,OAAMM,EACKA,EAAQjnC,OAER,CAAEmsC,KAAO,oBAAsBxF,EAAc,yBAO5DoB,GAAUnlD,UAAU8rD,oBAAsB,WACtC,IAAIzG,EAAqBrgD,KAAKqgD,mBAC9B,IAAK,IAAItB,KAAesB,EACpB,GAAIA,EAAmBplD,eAAe8jD,GAAc,CAChD,IAAIM,EAAUgB,EAAmBtB,GACjCM,EAAQjnC,OAAS,KAQ7B+nC,GAAUnlD,UAAUklD,qBAAuB,WACvClgD,KAAK8mD,sBAEL,IADA,IAAIrjB,EAAQzjC,KAAKogD,OAAOtV,KAAI,SAAU+Z,GAAS,OAAOA,EAAMlG,QACnDvlD,EAAI,EAAGA,EAAIqqC,EAAM3nC,OAAQ1C,IAAK,CACnC,IAAIkoD,EAAgB,IAAIlC,GAAc3b,EAAOrqC,GAC7C4G,KAAK+mD,gBAAgBzF,GAEzBthD,KAAK0kD,SAAS,uBAAwB,CAAC1kD,KAAKqgD,sBAQhDF,GAAUnlD,UAAUgsD,aAAe,SAAUxoD,EAAQugD,GACjD,IAAID,EAAa9+C,KAAKomD,WAAWrH,GAAaI,UAAUL,WACpD3iB,EAAQ,IAAI0iB,GAAaC,EAAYtgD,EAAQugD,GAC7C3mC,EAASpY,KAAKomD,WAAWrH,GAAa3mC,OAI1C,OAHA+jB,EAAM8qB,QAAUlI,EAAc,IAAO3mC,EAAa,OAClDA,EAAOlb,KAAKi/B,GACZn8B,KAAKomD,WAAWrH,GAAaI,UAAY,KAClChjB,GAOXgkB,GAAUnlD,UAAU+rD,gBAAkB,SAASzF,GAC3C,IAAIzB,EAAS7/C,KAETI,EAAQkhD,EAAclhD,MAC1BJ,KAAKsgD,gBAAgB/f,SAAQ,SAAU2mB,GACnC,IAAInI,EAAcmI,EAAenI,YAC7BI,EAAYU,EAAOuG,WAAWrH,GAAaI,UAM/C,IALKA,GAAa+H,EAAejI,WAAWqC,KACxCnC,EAAY,IAAIN,GAAaz+C,EAAO,KAAM2+C,GAC1Cc,EAAOuG,WAAWrH,GAAaI,UAAYA,EAC3CU,EAAO6E,SAAS,eAAgB,CAAC3F,EAAa3+C,KAE5C++C,GAAa+H,EAAehI,SAASoC,GAAgB,CACvD,IAAI9iD,EAAU4B,EAAQ++C,EAAUL,WAAc,EAC1C3iB,EAAQ0jB,EAAOmH,aAAaxoD,EAAQugD,GACxCc,EAAO6E,SAAS,aAAc,CAAC3F,EAAa5iB,SASxDgkB,GAAUnlD,UAAUmsD,SAAW,SAAUltB,GACrCj6B,KAAKogD,OAAS,GACdpgD,KAAK8mD,sBACL,IAAIrjB,EAAQ9nC,MAAMyrD,KAAKntB,GACvBj6B,KAAK0kD,SAAS,SACd,IAAK,IAAItrD,EAAI,EAAGA,EAAIqqC,EAAM3nC,OAAQ1C,IAAK,CACnC,IAAIulD,EAAOlb,EAAMrqC,GACbkoD,EAAgB,IAAIlC,GAAc3b,EAAOrqC,GAC7C4G,KAAK0kD,SAAS,OAAQ,CAACpD,IACvBthD,KAAK+mD,gBAAgBzF,GACrB,IAAIuD,EAAQ,IAAInG,GAAMC,GACtB3+C,KAAKogD,OAAOljD,KAAK2nD,GACjB7kD,KAAK0kD,SAAS,WAAY,CAACG,EAAOvD,IAGtC,OADAthD,KAAK0kD,SAAS,MAAO,CAAC1kD,KAAKogD,SACpBpgD,KAAKogD,QA0PhBS,GAAa7lD,UAAUqsD,gCAAkC,WAErD,IADA,IAAIlnB,EAAUngC,KAAK7B,KAAKghB,OAAO+iB,KAAK/B,QAC3BhlC,EAAI,EAAGA,EAAIglC,EAAQrkC,OAAQX,IAAK,CACrC,IAAIuV,EAASyvB,EAAQhlC,GACrB,GAAmB,SAAfuV,EAAOxP,IAAkB,OACzBwP,EAAOA,OAAOC,eAClB,eAEJ,MAAO,IAOXkwC,GAAa7lD,UAAUssD,yBAA2B,SAASC,GACvD,IAAIpoC,EAASnf,KAAK7B,KAAKghB,OACvB,IAAKA,EAAO+iB,KAAQ,MAAO,GAC3B,IAAKqlB,EAAa,OAAOvnD,KAAKqnD,kCAE9B,IADA,IAAIlnB,EAAUngC,KAAK7B,KAAKghB,OAAO+iB,KAAK/B,QAC3B/mC,EAAI,EAAGA,EAAI+mC,EAAQrkC,OAAQ1C,IAAK,CACrC,IAAIsX,EAASyvB,EAAQ/mC,GACrB,GAAIsX,EAAOxP,MAAQqmD,GAAa72C,EAAOA,OAAOC,eAC1C,OAAOD,EAAOA,OAAOC,eAAeE,eAEpC,IAAIC,EAAiBJ,EAAOI,eAC5B,GAAMA,EACF,IAAK,IAAIxE,EAAI,EAAGA,EAAIwE,EAAehV,OAAQwQ,IAAK,CAC5C,IAAIyE,EAAgBD,EAAexE,GACnC,GAAIyE,EAAc7P,MAAQqmD,EAAW,CACjC,IAAIv2C,EAAUD,EAAcC,QAC5B,OAAOA,EAAQH,iBAMnC,OAAO7Q,KAAKqnD,mCAQhBxG,GAAa7lD,UAAUwsD,kBAAoB,SAAUpnB,EAAUmnB,GAE3D,IADA,IAAIn3B,EAAO,GACFh3B,EAAI,EAAGA,EAAIgnC,EAAStkC,OAAQ1C,IAAK,CACtC,IAAI8H,EAAMk/B,EAAShnC,GAAG8H,IAClBkQ,EAAUgvB,EAAShnC,GAAGgY,QAC1Bgf,EAAKlvB,GAAOkQ,EAEhBpR,KAAKogC,SAASmnB,GAAWn3B,KAAOA,GAOpCywB,GAAa7lD,UAAUysD,kBAAoB,SAAUF,GACjD,IAAInnB,EAAWpgC,KAAKogC,SAASmnB,GAC7B,GAAIvnD,KAAKogC,SAASnlC,eAAessD,GAAc,OAAOnnB,EACtD,IAAIsnB,EAAkB1nD,KAAKsnD,yBAAyBC,GACpD,IAAKG,EAAmB,OAAO,KAC/B,IAAIxlB,EAAOliC,KAAK7B,KAAKghB,OAAO+iB,KAI5B,OAHA9B,EAAWsnB,EAAgB5c,KAAI,SAAU1qC,GAAS,OAAO8hC,EAAK9B,SAAShgC,MACvEJ,KAAKogC,SAASmnB,GAAannB,EAC3BpgC,KAAKwnD,kBAAkBpnB,EAAUmnB,GAC1BnnB,GAQXygB,GAAa7lD,UAAU0nD,oBAAsB,SAAShxC,EAAaywB,GAC/D,IAAIvwB,EAAaF,EAAYE,WAAWvG,WACpCk0B,EAAc4C,EAAS5C,YAAYl0B,WACvC,OAAOuG,EAAa2tB,GAQxBshB,GAAa7lD,UAAUwnD,gBAAkB,SAAS9wC,EAAaywB,GAC3D,IAAI0d,EAAS7/C,KAETyiD,EAAmBziD,KAAK0iD,oBAAoBhxC,EAAaywB,GAC7D,OAAQsgB,GACJ,IAAK,KACD,OAAO,SAAU1mC,GAAc,OAAOklC,GAA0Bx5C,MAC5Do4C,EAAQ,CAAC9jC,EAAYomB,KAE7B,IAAK,KACD,OAAO,SAAUpmB,GAAc,OAAOolC,GAA0B15C,MAC5Do4C,EAAQ,CAAC9jC,EAAYomB,KAE7B,IAAK,KACD,OAAO,SAAUmf,GAAiB,OAAOG,GAA4Bh6C,MACjEo4C,EAAQ,CAACyB,EAAenf,KAEhC,IAAK,KACD,OAAO,SAAUmf,GAAiB,OAAOqB,GAA4Bl7C,MACjEo4C,EAAQ,CAACyB,EAAenf,KAEhC,IAAK,KACD,OAAO,SAAUpmB,GAAc,OAAO+mC,GAAiCr7C,MACnEo4C,EAAQ,CAAC9jC,EAAYomB,KAE7B,QACI,MAAM,IAAIjmC,MACN,eAAkBwV,EAAsB,WAAI,mBACzBywB,EAAoB,YAAI,2BAiC3D0e,GAAa7lD,UAAU2sD,cAAgB,SAAUC,GAC7C,IAAItG,EAAgBsG,EAAMtG,cACtBhC,EAAegC,EAAclhD,MAC7BgR,EAAUpR,KAAKyuC,WAAW,CAC1BvtC,IAAK0mD,EAAM1mD,IAAKwP,OAAQk3C,EAAMl3C,SAElC,IAAKU,EAAW,OAAO,IAAIlV,MACvB,SAAY8D,KAAK7B,KAAK4gB,MAAMoO,SAAW,GAAI,8BACZy6B,EAAS,IAAI,iBAC1BA,EAAY,OAAI,MAItC,IAFA,IAAIvnB,EAAUrgC,KAAK6nD,kBAAkBz2C,GACjCm8B,EAAgB,GAAG3+B,OAAO0yC,EAAcjC,SACnChmD,EAAI,EAAGA,EAAIgnC,EAAQvkC,OAAQzC,IAGhC,IAFA,IAAIqY,EAAc2uB,EAAQhnC,GACtByY,EAAY9R,KAAK8nD,mBAAmBp2C,GAC/BvW,EAAI,EAAGA,EAAI2W,EAAUhW,OAAQX,IAAK,CACvC,IAAIgnC,EAAWrwB,EAAU3W,GACrB4sD,EAAY/nD,KAAK0iD,oBAAoBhxC,EAAaywB,GAClD5mC,EAASyE,KAAKwiD,gBAAgB9wC,EAAaywB,GAC3CgM,OAAe,EACnB,OAAQ4Z,GACJ,IAAK,KACD5Z,EAAe5yC,EAAO+lD,EAAc/B,SAChCpR,GACAZ,EAAcpC,OAAOmU,EAAc,EAAG,IAAIwB,GAAmB,CACzD7lB,GAAI,GAAI/5B,IAAK0mD,EAAM1mD,IAAKitC,aAAcA,KAG9C,MACJ,IAAK,KACDA,EAAe5yC,EAAO+lD,EAAc/B,SAChCpR,GACAZ,EAAcpC,OAAOmU,EAAc,EAAG,IAAIwB,GAAmB,CACzD7lB,GAAI,GAAI/5B,IAAK0mD,EAAM1mD,IAAKitC,aAAcA,KAG9C,MACJ,IAAK,KACDA,EAAe5yC,EAAO+lD,GAClB3lD,MAAMuT,QAAQi/B,IAAiBA,EAAaryC,QAC5CyxC,EAAcpC,OAAOmU,EAAc,EAAG,IAAIwB,GAAmB,CACzD7lB,GAAI,GAAI/5B,IAAK0mD,EAAM1mD,IAAKitC,aAAcA,KAG9C,MACJ,IAAK,KACDA,EAAe5yC,EAAO+lD,GAClBnT,GACAZ,EAAcpC,OAAOmU,EAAc,EAAG,IAAIwB,GAAmB,CACzD7lB,GAAI,GAAI/5B,IAAK0mD,EAAM1mD,IAAKitC,aAAcA,KAG9C,MACJ,IAAK,KACDA,EAAe5yC,EAAO+lD,EAAc/B,SAChCpR,GACAZ,EAAcpC,OAAOmU,EAAc,EAAG,IAAIwB,GAAmB,CACzD7lB,GAAI,GAAI/5B,IAAK0mD,EAAM1mD,IAAKitC,aAAcA,KAG9C,MAERmT,EAAgB,IAAIlC,GAAc7R,EAAe+R,GAC7C3jD,MAAMuT,QAAQi/B,KAAkBA,EAAaryC,SACjDqyC,EAAe,MAGvB,OAAOZ,EAAczxC,OAASyxC,EAAgB,MAOlDsT,GAAa7lD,UAAUgtD,SAAW,SAAUJ,GACxC,IAAKA,EAAMl3C,OAAU,OAAO,EAC5B1Q,KAAKynD,kBAAkBG,EAAMl3C,QAC7B,IAAIu3C,EAAkBjoD,KAAKogC,SAASnlC,eAAe2sD,EAAMl3C,QACzD,IAAKk3C,EAAM1mD,IAAO,OAAO+mD,EACzB,IAAIC,EACAloD,KAAKogC,SAASwnB,EAAMl3C,QAAQy3C,MAAK,SAAU/2C,GAAW,OAAOA,EAAQlQ,MAAQ0mD,EAAM1mD,OAEvF,OAAO+mD,GAAmBC,GAO9BrH,GAAa7lD,UAAU8sD,mBAAqB,SAAUp2C,GAClD,OAAOA,EAAYI,WAAa,MAOpC+uC,GAAa7lD,UAAUsnD,iBAAmB,SAAUliD,GAChD,IAAIigC,EAAUrgC,KAAK7B,KAAKghB,OAAO+iB,KAAK7B,QACpC,OAAOA,EAAQjgC,IAAU,MAO7BygD,GAAa7lD,UAAU6sD,kBAAoB,SAAUz2C,GAEjD,OAAOA,EAAQE,kBAAkBw5B,IAAI9qC,KAAKsiD,iBAAiB1nD,KAAKoF,QAOpE6gD,GAAa7lD,UAAUyzC,WAAa,SAAoBmZ,GACpD,IAAK5nD,KAAK7B,KAAQ,MAAO,CAAEomD,KAAM,qBAC5BvkD,KAAKogC,SAASnlC,eAAe2sD,EAAMl3C,SACpC1Q,KAAKynD,kBAAkBG,EAAMl3C,QAEjC,IAAI03C,EAAiBpoD,KAAKogC,SAASwnB,EAAMl3C,QACzC,OAAK03C,EAGAA,EAAeh4B,KAAKw3B,EAAM1mD,KACxBlB,KAAKogC,SAASwnB,EAAMl3C,QAAQ0f,KAAKw3B,EAAM1mD,KADA,KAHhB,CACxBqjD,KAAO,yBAA4BqD,EAAY,SA+BzD,IAAIS,GAAkB,CAClBC,WAAYvF,GACZwF,SAAUtF,IAOd,SAASuF,GAAyBlH,GAC9B,IAAI3C,EAAO2C,EAAc/B,QACrByD,EAAW1B,EAAcrnD,KAAK,GAClC,OAEKumD,GAAa7B,IAAS+B,GAAqB/B,MAC3C6B,GAAawC,GAItB,SAASyF,GAAuBnH,GAC5B,IAAI4B,EAAW5B,EAAcrnD,IAAI,GACjC,QAAQ,GACJ,KAAkB,OAAbipD,EACD,OAAO,EACX,KAAO1C,GAAa0C,KAAcxC,GAAqBwC,GACnD,IAAIwF,EAAmB9H,GAAasC,GACpC,IAAKwF,EAAoB,OAAO,EAChC,GAAIA,EAAkB,CAClB,IAAIC,GAAkB,EAMtB,GALAA,EACIrH,EAAcjgB,UAAU8mB,MACpB,SAAU1uD,GAAK,OAAO+mD,GAAa/mD,IAAMinD,GAAqBjnD,OAGjEkvD,EAAmB,OAAO,EAEnC,MACJ,QACI,OAAO,GAInB,IAAIC,GAAsB,CACtBN,WAAYE,GACZD,SAAUE,IASd,SAASI,GAA4B9H,EAAQX,EAAQhgD,GACjDggD,EAAOhgD,GAAOwjD,SAAS7C,EAAO7/C,IAAK6/C,EAAO5S,cAS9C,SAAS2a,GAA4B/H,EAAQX,EAAQhgD,GACjDggD,EAAOhgD,GAAOwjD,SAAS7C,EAAO7/C,IAAK6/C,EAAO5S,cAS9C,SAAS4a,GAA8BhI,EAAQX,EAAQhgD,GACnD2gD,EAAO5S,aAAa5N,SAAQ,SAAUyoB,EAAOxqD,GACzC,IAAIqmD,EAAQzE,EAAOhgD,EAAQ5B,GAC3BqmD,EAAMjB,SAAS7C,EAAO7/C,IAAK8nD,MAUnC,SAASC,GAA8BlI,EAAQX,EAAQhgD,GACnD,IAAIykD,EAAQzE,EAAOhgD,GACnBykD,EAAMjB,SAAS7C,EAAO7/C,IAAK6/C,EAAO5S,aAAatO,UAE/C,IADA,IAAIqpB,EAAanI,EAAO5S,aAAarO,WAAWhkC,OACvC1C,EAAI,EAAGA,EAAI8vD,EAAY9vD,IAC5ByrD,EAAQzE,EAAOhgD,EAAQhH,EAAI,GAC3ByrD,EAAMjB,SAAS,WAAW,GAOlC,IAAIuF,GAAgB,CAChB32B,GAAIq2B,GACJp2B,GAAIq2B,GACJlzB,GAAImzB,GACJz0B,GAAI20B,IASR,SAASG,GAAkBrI,EAAQX,EAAQhgD,GACnC2gD,aAAkBD,IAAsBqI,GAAcpI,EAAO9lB,KAC7DkuB,GAAcpI,EAAO9lB,IAAI8lB,EAAQX,EAAQhgD,GAYjD,SAASipD,GAAgBC,GAErB,IADA,IAAIloB,EAAY,GAAGxyB,OAAO06C,EAAkBloB,WACnChoC,EAAIgoC,EAAUtlC,OAAS,EAAG1C,GAAK,EAAGA,IAAK,CAC5C,IAAI4pD,EAAW5hB,EAAUhoC,GACrBmwD,EAAW9I,GAAqBuC,GAChCwG,EAAW9I,GAAqBsC,GACpC,IAAKuG,IAAaC,EAAY,OAAO,EACrC,GAAID,EAAY,OAAO,EAE3B,OAAO,EAOX,SAASE,GAAgBH,GACrB,GAAI7I,GAAqB6I,EAAkB/J,SAAY,OAAO,EAC9D,IAAK,IAAInmD,EAAI,EAAGA,EAAIkwD,EAAkBjoB,UAAUvlC,OAAQ1C,IAAK,CACzD,IAAI8pD,EAAWoG,EAAkBjoB,UAAUjoC,GACvCowD,EAAW9I,GAAqBwC,GACpC,IAAKsG,EAAY,OAAO,EAE5B,OAAO,EAOX,SAASE,GAAwBvtB,GAC7B,IAAI0jB,EAAS7/C,KAET0Q,EAAS,OACT0f,EAAOpwB,KAAK2pD,aAAaj5C,GACzB0vC,EAASpgD,KAAK4pD,UAAU1D,eAAe/pB,GAC3C,GAAsB,IAAlBikB,EAAOtkD,OAAX,CACA,IAAIwlD,EAAgB,IAAIlC,GACpBgB,EAAOtV,KAAI,SAAU+Z,GAAS,OAAOA,EAAMhB,SAAS,iBACrD,GACCyF,EAAoB,IAAIlK,GACxBgB,EAAOtV,KAAI,SAAU+Z,GAAS,OAAOA,EAAMlG,QAC5C,GACHyB,EAAO7f,SAAQ,SAAUskB,EAAOzkD,GAC5B,IAAIsgD,GAAqBmE,EAAMlG,MAA/B,CACA2C,EAAc0E,gBAAgB5lD,GAC9BkpD,EAAkBtD,gBAAgB5lD,GAClC,IAGIc,EAHA2oD,EAAU,EAId,OAHIR,GAAgBC,KAAsBO,GAAW,GACjDJ,GAAgBH,KAAsBO,GAAW,GAE7CA,GACJ,KAAK,EAAI3oD,EAAM,OAAS,MACxB,KAAK,EAAIA,EAAM,OAAS,MACxB,KAAK,EAAIA,EAAM,OAAS,MAE5B,IAA2B,IAAvBkvB,EAAKh0B,QAAQ8E,GAAjB,CACA,IAAIqsC,EAAgBsS,EAAO+H,MAAMD,cAAc,CAC3CzmD,IAAKA,EAAKwP,OAAQA,EAAQ4wC,cAAeA,IAE7C,GAAI/T,aAAyBrxC,MAAS,OAAO6gB,QAAQ+sC,KAAKvc,EAAclvC,SACxEkvC,EAAchN,SAAQ,SAAUwgB,EAAQ3gD,GAChC2gD,aAAkBD,KAClBsI,GAAkBrI,EAAQX,EAAQhgD,GAClCkhD,EAAcjC,QAAQj/C,GAAS2gD,EAAO5S,uBAetD,SAAS4b,GAAiB3J,EAAQhgD,GAC9B,IAAIi/C,EAAUe,EAAOtV,KAAI,SAAU+Z,GAAS,OAAOA,EAAMjG,YAAYvkD,SACrE,OAAO,IAAI+kD,GAAcC,EAASj/C,GAAS,GAO/C,SAAS4pD,GAAwB7tB,GAC7B,IAAI0jB,EAAS7/C,KAET0Q,EAAS,OACT0vC,EAASpgD,KAAK4pD,UAAU1D,eAAe/pB,GACvCmlB,EAAgByI,GAAiB3J,GACrCkB,EAAcjC,QAAQ9e,SAAQ,SAAUxkB,EAAY3b,GAChDkhD,EAAc0E,gBAAgB5lD,GAC9B,IAAImtC,EAAgBsS,EAAO+H,MAAMD,cAAc,CAC3CzmD,IAAK,OAAQwP,OAAQA,EAAQ4wC,cAAeA,IAE5C/T,EAAczxC,SACdyxC,EAAchN,SACV,SAAUwgB,GAAU,OAAOqI,GAAkBrI,EAAQX,EAAQhgD,MAEjEkhD,EAAgByI,GAAiB3J,OAS7C,SAAS6J,GAAoB3I,GACzB,IAAI3C,EAAO2C,EAAc/B,QACrByD,EAAW1B,EAAcrnD,KAAK,GAClC,OAEkB,OAAb+oD,GAAqBrC,GAAYhC,KAEhCgC,GAAYqC,IAAarC,GAAYhC,GAI/C,SAASuL,GAAkB5I,GACvB,IAAI4B,EAAW5B,EAAcrnD,IAAI,GACjC,OAEkB,OAAbipD,IAECvC,GAAYuC,IAItB,IAAIiH,GAAiB,CACjB7B,WAAY2B,GACZ1B,SAAU2B,IAYd,SAASE,GAAmBhK,EAAQhgD,GAChC,IAAIi/C,EAAUe,EAAOtV,KAAI,SAAU+Z,GAAS,OAAOA,EAAMjG,YAAYvkD,SACrE,OAAO,IAAI+kD,GAAcC,EAASj/C,GAAS,GAO/C,SAASiqD,GAAcluB,GACnB,IAAI0jB,EAAS7/C,KAET0Q,EAAS,OACT0vC,EAASpgD,KAAK4pD,UAAU1D,eAAe/pB,GACvCmlB,EAAgB8I,GAAmBhK,GACvCkB,EAAcjC,QAAQ9e,SAAQ,SAAUxkB,EAAY3b,GAChDkhD,EAAc0E,gBAAgB5lD,GAC9B,IAAImtC,EAAgBsS,EAAO+H,MAAMD,cAAc,CAC3CzmD,IAAK,OAAQwP,OAAQA,EAAQ4wC,cAAeA,IAE5C/T,EAAczxC,SACdyxC,EAAchN,SACV,SAAUwgB,GAAU,OAAOqI,GAAkBrI,EAAQX,EAAQhgD,MAEjEkhD,EAAgB8I,GAAmBhK,OAc/C,SAASkK,GAAKC,GACVvqD,KAAKuqD,QAAUA,GAAW,MAC1BvqD,KAAK4pD,UAAY,IAAIzJ,GACrBngD,KAAK2pD,aAAe,GAyBxB,SAASlD,GAAuB+D,GAC5B,IAAIhhD,EAAQxJ,KAAKyqD,cAAeD,EAAU,SAC1C,OAAOxqD,KAAK4pD,UAAUnD,uBAClB+D,EAAShhD,EAAM8+C,WAAY9+C,EAAM++C,UAQzC,SAASmC,KAIL,OAHAjE,GAAuBltD,KAAKyG,KAAM,aAClCymD,GAAuBltD,KAAKyG,KAAM,cAClCymD,GAAuBltD,KAAKyG,KAAM,kBAC3BA,KAAK4pD,UAAUzC,SAASnnD,KAAKi6B,MAOxC,SAAS0wB,KACL,IAAI9K,EAAS7/C,KAEToY,EAASpY,KAAK4pD,UAAU/C,iBAAiB,kBAC7CzuC,EAAOmoB,SAAQ,SAAUpE,GACrB,IAAIyuB,EAAc/K,EAAO+J,UAAU1D,eAAe/pB,GAClD0jB,EAAO+J,UAAUjF,aACbxoB,EAAM2iB,WACN3iB,EAAMxoB,UACNi3C,EAAY3I,cAuDxB,SAAS4I,KACL,IAAkE,IAA9D7qD,KAAK4pD,UAAUrJ,oBAAoBnkD,QAAQ,cAC3C,MAAM,IAAIF,MACN,0EASZ,SAAS4uD,KACL,IAAIjL,EAAS7/C,KAET0Q,EAAS,OACb,GAAK1Q,KAAK2pD,aAAa1uD,eAAeyV,GAAtC,CACAm6C,GAAsBtxD,KAAKyG,MAC3B,IAAIoY,EAASpY,KAAK4pD,UAAU/C,iBAAiB,cAC7CzuC,EAAOmoB,SAAQ,SAAUpE,GACrButB,GAAwBnwD,KAAKsmD,EAAQ1jB,OAO7C,SAAS4uB,KACL,IAAIlL,EAAS7/C,KAET0Q,EAAS,OACb,GAAK1Q,KAAK2pD,aAAa1uD,eAAeyV,GAAtC,CACA,IAAI0f,EAAOpwB,KAAK2pD,aAAaj5C,GAC7B,IAA8B,IAA1B0f,EAAKh0B,QAAQ,QAAjB,CACAyuD,GAAsBtxD,KAAKyG,MAC3B,IAAIoY,EAASpY,KAAK4pD,UAAU/C,iBAAiB,cAC7CzuC,EAAOmoB,SAAQ,SAAUpE,GACrB6tB,GAAwBzwD,KAAKsmD,EAAQ1jB,QAO7C,SAAS6uB,KACL,IAAInL,EAAS7/C,KAET0Q,EAAS,OACb,GAAK1Q,KAAK2pD,aAAa1uD,eAAeyV,GAAtC,CACA,IAAI0f,EAAOpwB,KAAK2pD,aAAaj5C,GAC7B,IAA8B,IAA1B0f,EAAKh0B,QAAQ,QAAjB,CACAyuD,GAAsBtxD,KAAKyG,MAC3B,IAAIoY,EAASpY,KAAK4pD,UAAU/C,iBAAiB,aAC7CzuC,EAAOmoB,SAAQ,SAAUpE,GACrBkuB,GAAc9wD,KAAKsmD,EAAQ1jB,QAwGnC,SAAS8uB,GAAKz7C,GACVA,EAAUA,GAAW,GACrBA,EAAQ2P,OAAS3P,EAAQ2P,QAAU,GAE9B3P,EAAQ07C,QAETxjB,GAAcl4B,EAAQ4d,WAAY,4DAClCsa,GAAcl4B,EAAQ27C,UAAW,2DACjCzjB,GAAcl4B,EAAQuR,WAAY,4DAClC2mB,GAAcl4B,EAAQwf,SAAU,0DAChC0Y,GAAcl4B,EAAQyf,WAAa,EAAG,0EAGtCjvB,KAAK+e,MAAQ,CACT0mB,WAAY,CAACF,GAAI/1B,EAAQ4d,YAAc,KACvCuY,cAAe,CAACJ,GAAI/1B,EAAQ27C,WAAa,KACzCh+B,SAAU,CAACoY,GAAI/1B,EAAQ2d,UAAY3d,EAAQ4d,WAAa,IAAM5d,EAAQ27C,WAEtEz9B,eAAgB,CAAC6X,GAAI/1B,EAAQke,iBAAmBle,EAAQ4d,WAAa5d,EAAQ27C,WAAW9lB,QAAQ,MAAO,KACvG+lB,SAAU,CAAC7lB,GAAI/1B,EAAQ47C,UAAY,KACnCC,YAAa,CAAC9lB,GAAI/1B,EAAQ67C,aAAe,KACzCC,aAAc,CAAC/lB,GAAI/1B,EAAQ87C,cAAgB,KAC3CC,gBAAiB,CAAChmB,GAAI/1B,EAAQ+7C,iBAAmB,KACjDC,QAAS,CAACjmB,GAAI/1B,EAAQg8C,SAAW,KACjCC,WAAY,CAAClmB,GAAI/1B,EAAQi8C,YAAc,KACvC/xC,QAAS,CAAC6rB,GAAI/1B,EAAQkK,SAAW,eACjC/C,YAAa,CAAC4uB,GAAI/1B,EAAQmH,aAAe,KACzC+0C,UAAW,CAACnmB,GAAI/1B,EAAQk8C,WAAa,KACrCC,UAAW,CAACpmB,GAAI/1B,EAAQm8C,WAAa,MAEzC3rD,KAAK+gB,WAAavR,EAAQuR,YAAc,IACxC/gB,KAAKgvB,SAAWxf,EAAQwf,SACxBhvB,KAAKivB,UAAYzf,EAAQyf,UACzBjvB,KAAK6uB,iBAAmBrf,EAAQqf,iBAChC7uB,KAAKmf,OAASrlB,OAAOgrC,OAAOt1B,EAAQ2P,OAAQ,CACxCkd,IAAKviC,OAAOgrC,OAAO,CACfvI,cAAe/sB,EAAQo8C,aAAe5rD,KAAK6rD,gBAAgBC,OAC3DtvB,aAAchtB,EAAQu8C,YAAc/rD,KAAKgsD,eAAeF,OACxDnuB,YAAanuB,EAAQmuB,aAAe39B,KAAKisD,kBAAkBC,SAC5D18C,EAAQ2P,OAAOkd,QAI1Br8B,KAAKmsD,WAAY,EACjBnsD,KAAKsQ,OAAS,IAAIwT,GAAShD,SAAS9gB,KAAMwP,EAAQc,QAAU,IAC5DtQ,KAAKiN,SAAW,IAAIwR,GAAgBze,MACpCA,KAAKD,SAAW,IAAI6mC,GAAS5mC,MAC7BA,KAAKmuC,aAAe,IAAItH,GAAa7mC,MACrCA,KAAKmf,OAASnf,KAAKmf,QAAU,GAG7Bnf,KAAK0jB,MAAQ,KACb1jB,KAAK4jB,eAAiB,GAEtB9pB,OAAOC,eAAeiG,KAAM,UAAW,CACnC/F,IAAK,WACD,OAAI+F,KAAKosD,SAAmBpsD,KAAKosD,SACL,aAAxBpsD,KAAKqsD,eACGrsD,KAAKosD,SAAW,IAAIpd,GAAQhvC,WADxC,KA+dZ,SAASssD,GAAQ3yD,EAAMolB,GACnB,IAAIwtC,EAAaC,KAAKC,UAAU9yD,GAC5BqgC,EAAS,IACb,IAAK,IAAI0yB,KAAW3tC,EAAO,CACvB,IAAIlkB,EAAIiR,SAAS4gD,GACjB,GAAK7xD,KAAKA,EAAI,KAAd,CAIA,GAAI2xD,KAAKC,UAAU1tC,EAAM2tC,MAAcH,EACnC,OAAO1xD,EAGPm/B,GAAUn/B,IACVm/B,EAASn/B,EAAI,IAKrB,OADAkkB,EAAMib,GAAUrgC,EACTqgC,EAGX,SAAS2yB,GAAa9xD,EAAGw1C,EAAMtxB,GAC3B,IAAIib,EAASsyB,GAAQjc,EAAK12C,KAAMolB,GAChC,MAAO,CACH,CAACplB,KAAM,OAASkB,EAAGiM,KAAM,MAAOzM,MAAOg2C,EAAKnvC,KAC5C,CAACvH,KAAM,YAAckB,EAAGiM,KAAM,QAASzM,MAAOg2C,EAAKuc,UAAY,IAC/D,CAACjzD,KAAM,gBAAkBkB,EAAGiM,KAAM,QAASzM,MAAOg2C,EAAKwc,cAAgB,IACvE,CAAClzD,KAAM,YAAckB,EAAGiM,KAAM,QAASzM,MAAOg2C,EAAKyc,UAAY,IAC/D,CAACnzD,KAAM,SAAWkB,EAAGiM,KAAM,SAAUzM,MAAO,GAC5C,CAACV,KAAM,UAAYkB,EAAGiM,KAAM,SAAUzM,MAAO2/B,IAIrD,SAAS+yB,GAAcjvD,EAAMf,EAAOgiB,GAChC,IAAIsxB,EAAO,GACPn1C,EAAI,IAAI2f,GAAMzG,OAAOtW,EAAMf,GAO/B,OANAszC,EAAKnvC,IAAMhG,EAAEka,WACbi7B,EAAKuc,SAAW1xD,EAAEga,aAClBm7B,EAAKwc,aAAe3xD,EAAEga,aACtBm7B,EAAKyc,SAAW5xD,EAAEga,aAClBha,EAAEwa,KAAK,SAAU,GACjB26B,EAAK12C,KAAOolB,EAAM7jB,EAAEuZ,gBAAkB,GAC/B47B,EAGX,SAAS2c,GAAiBnyD,EAAGoyD,EAAMC,EAAMnuC,GAOrC,IANA,IAAIib,EAASsyB,GAAQW,EAAKtzD,KAAMolB,GAC5BxP,EAAS,CACT,CAAC5V,KAAM,UAAYkB,EAAGiM,KAAM,SAAUzM,MAAO2/B,GAC7C,CAACrgC,KAAM,SAAWkB,EAAGiM,KAAM,SAAUzM,MAAO,IAGvCjB,EAAI,EAAGA,EAAI8zD,EAAKpxD,SAAU1C,EAAG,CAClC,IAAI+zD,EAAUD,EAAK9zD,GAAG8H,IACtBqO,EAAOrS,KAAK,CACRvD,KAAM,QAAUkB,EAAI,IAAMsyD,EAC1BrmD,KAAM,QACNzM,MAAO4yD,EAAKG,YAAYD,IAAY,KAI5C,OAAO59C,EAGX,SAAS89C,GAAkBvvD,EAAMf,EAAOmwD,EAAMnuC,GAC1C,IAAIkuC,EAAO,GACP/xD,EAAI,IAAI2f,GAAMzG,OAAOtW,EAAMf,GAC/BkwD,EAAKtzD,KAAOolB,EAAM7jB,EAAEuZ,gBAAkB,GACtCvZ,EAAEwa,KAAK,SAAU,GAEjBu3C,EAAKG,YAAc,GACnB,IAAK,IAAIh0D,EAAI,EAAGA,EAAI8zD,EAAKpxD,SAAU1C,EAC/B6zD,EAAKG,YAAYF,EAAK9zD,GAAG8H,KAAOhG,EAAEga,aAGtC,OAAO+3C,EAGX,SAASK,GAAcC,EAAMxuC,GACzB,IAAIjf,EAAS,IAAIa,GAAM0O,MAAM,OAAQ,CACjC,CAAC1V,KAAM,UAAWmN,KAAM,QAASzM,MAAO,OACxC,CAACV,KAAM,eAAgBmN,KAAM,SAAUzM,MAAO,GAC9C,CAACV,KAAM,iBAAkBmN,KAAM,SAAUzM,MAAO,GAChD,CAACV,KAAM,YAAamN,KAAM,SAAUzM,MAAOkzD,EAAKL,KAAKpxD,QACrD,CAACnC,KAAM,WAAYmN,KAAM,SAAUzM,MAAO,IAC1C,CAACV,KAAM,gBAAiBmN,KAAM,SAAUzM,MAAOkzD,EAAKC,UAAU1xD,QAC9D,CAACnC,KAAM,eAAgBmN,KAAM,SAAUzM,MAAO,EAAuB,EAAnBkzD,EAAKL,KAAKpxD,UAEhEgE,EAAO2tD,aAAe3tD,EAAOgK,SAE7B,IAAK,IAAI1Q,EAAI,EAAGA,EAAIm0D,EAAKL,KAAKpxD,OAAQ1C,IAClC0G,EAAOyP,OAASzP,EAAOyP,OAAOX,OAAO+9C,GAAavzD,EAAGm0D,EAAKL,KAAK9zD,GAAI2lB,IAGvE,IAAK,IAAIzS,EAAI,EAAGA,EAAIihD,EAAKC,UAAU1xD,OAAQwQ,IACvCxM,EAAOyP,OAASzP,EAAOyP,OAAOX,OAAOo+C,GAAiB1gD,EAAGihD,EAAKC,UAAUlhD,GAAIihD,EAAKL,KAAMnuC,IAG3F,OAAOjf,EAGX,SAAS4tD,GAAe5vD,EAAMf,EAAOgiB,GACjC,IAAI7jB,EAAI,IAAI2f,GAAMzG,OAAOtW,EAAMf,GAC3ByzB,EAAet1B,EAAE8Z,aACrBxL,EAAMrE,SAA0B,QAAjBqrB,EAA6B,mCAC5C,IAAIi9B,EAAevyD,EAAE0Z,gBAErB1Z,EAAEwa,KAAK,SAAU,GAOjB,IANA,IAAIi4C,EAAYzyD,EAAEuZ,cACdm5C,EAAW1yD,EAAEuZ,cACbo5C,EAAgB3yD,EAAEuZ,cAClBq5C,EAAe5yD,EAAEuZ,cAEjBy4C,EAAO,GACF9zD,EAAI,EAAGA,EAAIu0D,EAAWv0D,IAC3B8zD,EAAKhwD,KAAK6vD,GAAcjvD,EAAMf,EAAQ0wD,EAAer0D,EAAIw0D,EAAU7uC,IAKvE,IAFA,IAAIyuC,EAAY,GACZO,EAAgBhxD,EAAQ0wD,EAAeE,EAAYC,EAC9CthD,EAAI,EAAGA,EAAIuhD,EAAevhD,IAC/BkhD,EAAUtwD,KAAKmwD,GAAkBvvD,EAAMiwD,EAAgBzhD,EAAIwhD,EAAcZ,EAAMnuC,IAGnF,MAAO,CAACmuC,KAAMA,EAAMM,UAAWA,GA35BnClD,GAAKtvD,UAAUgzD,QAAU,SAAU/zB,GAC/Bj6B,KAAKi6B,KAAOA,GAQhBqwB,GAAKtvD,UAAUyvD,cAAgB,CAC3BN,eAAgBA,GAChB9B,gBAAiBA,GACjBO,oBAAqBA,IA+CzB0B,GAAKtvD,UAAUizD,iBAAmB,SAAUv9C,EAAQ0f,GAChD,IAAIyvB,EAAS7/C,KAETkuD,EAAgB99B,EAAKq0B,QACrB,SAAUvjD,GAAO,OAAO2+C,EAAO+H,MAAMI,SAAS,CAACt3C,OAAQA,EAAQxP,IAAKA,OAEnElB,KAAK2pD,aAAa1uD,eAAeyV,GAGlC1Q,KAAK2pD,aAAaj5C,GAClB1Q,KAAK2pD,aAAaj5C,GAAQ9B,OAAOs/C,GAHjCluD,KAAK2pD,aAAaj5C,GAAUw9C,GAapC5D,GAAKtvD,UAAUmzD,cAAgB,SAAUhwD,EAAMiiC,GAC3C,IAAKjiC,EAAQ,MAAM,IAAIjC,MACnB,gDAEC8D,KAAK4nD,QAAS5nD,KAAK4nD,MAAQ,IAAI/G,GAAa1iD,IACjD,IAAK,IAAIqiC,EAAI,EAAGA,EAAIJ,EAAStkC,OAAQ0kC,IAAK,CACtC,IAAIpvB,EAAUgvB,EAASI,GAClBxgC,KAAK4nD,MAAMI,SAAS,CAACt3C,OAAQU,EAAQV,UAC1C1Q,KAAKiuD,iBAAiB78C,EAAQV,OAAQU,EAAQgf,QAUtDk6B,GAAKtvD,UAAUoqD,iBAAmB,SAAUC,EAAYC,EAAWC,GAC/DvlD,KAAK4pD,UAAUxE,iBAAiBC,EAAYC,EAAWC,IAoE3D+E,GAAKtvD,UAAUozD,kBAAoB,SAAUC,GACzC,QAASruD,KAAK4pD,UAAUxD,WAAWiI,IAMvC/D,GAAKtvD,UAAUszD,wBAA0B,WACjCtuD,KAAKouD,kBAAkB,gBACvBtD,GAA6BvxD,KAAKyG,MAClC+qD,GAA4BxxD,KAAKyG,OAEjCA,KAAKouD,kBAAkB,cACvBpD,GAAoBzxD,KAAKyG,MAEzBA,KAAKouD,kBAAkB,mBACvBzD,GAAuBpxD,KAAKyG,OAQpCsqD,GAAKtvD,UAAUuzD,YAAc,SAASt0B,GAC7Bj6B,KAAKi6B,MAAQj6B,KAAKi6B,OAASA,IAC5Bj6B,KAAKguD,QAAQ/zB,GACbywB,GAAanxD,KAAKyG,MAClBA,KAAKsuD,4BASbhE,GAAKtvD,UAAUwzD,YAAc,SAAUv0B,GAEnC,OADAj6B,KAAKuuD,YAAYt0B,GACVj6B,KAAK4pD,UAAUzD,WAO1BmE,GAAKtvD,UAAUyzD,cAAgB,SAAUx0B,GACrCj6B,KAAKuuD,YAAYt0B,GAEjB,IADA,IAAIy0B,EAAU,GACLt1D,EAAI,EAAGA,EAAI4G,KAAK4pD,UAAUxJ,OAAOtkD,OAAQ1C,IAAK,CACnD,IAAIyrD,EAAQ7kD,KAAK4pD,UAAUxJ,OAAOhnD,GAClC,IAAIyrD,EAAM3Q,MAAMya,QAAhB,CACA,IAAIvuD,EAAQykD,EAAMjG,YAAYvkD,MAC9Bq0D,EAAQxxD,KAAKvB,MAAMuT,QAAQ9O,GAASA,EAAM,GAAKA,IAEnD,OAAOsuD,GA8GXzD,GAAKjwD,UAAU+pC,QAAU,SAAStrC,GAC9B,OAA6C,OAAtCuG,KAAKiN,SAAS+S,iBAAiBvmB,IAU1CwxD,GAAKjwD,UAAUglB,iBAAmB,SAAS7kB,GACvC,OAAO6E,KAAKiN,SAAS+S,iBAAiB7kB,IAU1C8vD,GAAKjwD,UAAU4zD,YAAc,SAASn1D,GAClC,IAAIsiB,EAAa/b,KAAKggB,iBAAiBvmB,GACnCwjB,EAAQjd,KAAKsQ,OAAOrW,IAAI8hB,GAM5B,OALKkB,IAEDA,EAAQjd,KAAKsQ,OAAOrW,IAAI,IAGrBgjB,GAOXguC,GAAKjwD,UAAU6zD,eAAiB,SAAUr/C,GAEtC,OAAOxP,KAAK8uD,qBAAqB1uB,SAAS0K,KAAI,SAAU15B,GACpD,MAAuB,SAAnBA,EAAQV,OACD,CACHA,OAAQ,OACR0f,KAAMhf,EAAQgf,KAAKq0B,QAAO,SAAUvjD,GAAO,OAAOsO,EAAQtO,OAGvDkQ,MAcnB65C,GAAKjwD,UAAU+zD,eAAiB,SAAS5zD,EAAGqU,GACxC,IAAIqwC,EAAS7/C,KAGTgvD,EAAO,IAAI1E,GAGX2E,EAAsB,SAAUpK,GAAS,OAAOhF,EAAO7/B,iBAAiB6kC,EAAMlG,OAClFqQ,EAAK5J,iBAAiB,aAAc,KAAM6J,GAG1C,IAAI7uB,EAAW5wB,EACfxP,KAAK6uD,eAAer/C,EAAQ4wB,UAC5BpgC,KAAK8uD,qBAAqB1uB,SAE1B4uB,EAAKb,cAAcnuD,KAAMogC,GASzB,IAPA,IAAIsuB,EAAUM,EAAKP,cAActzD,GAE7BW,EAAS4yD,EAAQ5yD,OAGjBwU,EAAS,IAAI3U,MAAMG,GACnBozD,EAASlvD,KAAKsQ,OAAOrW,IAAI,GACpBb,EAAI,EAAGA,EAAI0C,EAAQ1C,GAAK,EAC7BkX,EAAOlX,GAAK4G,KAAKsQ,OAAOrW,IAAIy0D,EAAQt1D,KAAO81D,EAE/C,OAAO5+C,GAOX26C,GAAKjwD,UAAUklB,iBAAmB,SAASvmB,GACvC,OAAOqG,KAAKwf,WAAWU,iBAAiBvmB,IAO5CsxD,GAAKjwD,UAAUm0D,YAAc,SAASx1D,GAClC,IAAIoiB,EAAa/b,KAAKkgB,iBAAiBvmB,GACnCsjB,EAAQjd,KAAKsQ,OAAOrW,IAAI8hB,GAM5B,OALKkB,IAEDA,EAAQjd,KAAKsQ,OAAOrW,IAAI,IAGrBgjB,GAOXguC,GAAKjwD,UAAUykB,iBAAmB,SAASU,GACvC,OAAKngB,KAAKwf,WAAWC,iBAIdzf,KAAKwf,WAAWC,iBAAiBU,GAH7B,IAiBf8qC,GAAKjwD,UAAUoxC,gBAAkB,SAASgjB,EAAWC,GACjDD,EAAYA,EAAUhvD,OAASgvD,EAC/BC,EAAaA,EAAWjvD,OAASivD,EACjC,IAAIC,EAActvD,KAAKD,SAASmsC,qBAChC,OAAIojB,EACOtvD,KAAKD,SAASqsC,gBAAgBkjB,EAAaF,EAAWC,GAG1DrvD,KAAKuvD,aAAaH,EAAY,IAAMC,IAAe,GAc9DpE,GAAKjwD,UAAU8zD,qBAAuB,CAClCU,SAAS,EACTpvB,SAAU,CAKN,CAAE1vB,OAAQ,OAAQ0f,KAAM,CAAC,OAAQ,OAAQ,OAAQ,SACjD,CAAE1f,OAAQ,OAAQ0f,KAAM,CAAC,OAAQ,WAczC66B,GAAKjwD,UAAUy0D,aAAe,SAASx1B,EAAM10B,EAAGC,EAAGqc,EAAUrS,EAASkgD,GAClEnqD,OAAUwD,IAANxD,EAAkBA,EAAI,EAC1BC,OAAUuD,IAANvD,EAAkBA,EAAI,EAC1Bqc,OAAwB9Y,IAAb8Y,EAAyBA,EAAW,GAC/CrS,EAAU1V,OAAOgrC,OAAO,GAAI9kC,KAAK8uD,qBAAsBt/C,GACvD,IAEI68B,EAFAnf,EAAY,EAAIltB,KAAK+gB,WAAac,EAClCvR,EAAStQ,KAAK+uD,eAAe90B,EAAMzqB,GAEvC,GAAIA,EAAQggD,QAAS,CACjB,IAAI9+C,EAASlB,EAAQkB,QAAU1Q,KAAKD,SAASgrC,uBAC7CsB,EAAiBrsC,KAAKD,SAASosC,iBAAiBz7B,EAAQlB,EAAQ2L,UAEpE,IAAK,IAAI/hB,EAAI,EAAGA,EAAIkX,EAAOxU,OAAQ1C,GAAK,EAAG,CACvC,IAAI6jB,EAAQ3M,EAAOlX,GAMnB,GALAs2D,EAASn2D,KAAKyG,KAAMid,EAAO1X,EAAGC,EAAGqc,EAAUrS,GACvCyN,EAAM0E,eACNpc,GAAK0X,EAAM0E,aAAeuL,GAG1B1d,EAAQggD,SAAWp2D,EAAIkX,EAAOxU,OAAS,EAAG,CAG1C,IAAI6zD,EAAetjB,EACbrsC,KAAKD,SAASqsC,gBAAgBC,EAAgBpvB,EAAM7c,MAAOkQ,EAAOlX,EAAI,GAAGgH,OACzEJ,KAAKosC,gBAAgBnvB,EAAO3M,EAAOlX,EAAI,IAC7CmM,GAAKoqD,EAAeziC,EAGpB1d,EAAQogD,cACRrqD,GAAKiK,EAAQogD,cAAgB/tC,EACtBrS,EAAQqgD,WACftqD,GAAMiK,EAAQqgD,SAAW,IAAQhuC,GAGzC,OAAOtc,GAYX0lD,GAAKjwD,UAAU4mB,QAAU,SAASqY,EAAM10B,EAAGC,EAAGqc,EAAUrS,GACpD,IAAIsgD,EAAW,IAAIjrD,EAKnB,OAJA7E,KAAKyvD,aAAax1B,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAAS,SAASyN,EAAO8yC,EAAIC,EAAIC,GACrE,IAAIC,EAAYjzC,EAAM2E,QAAQmuC,EAAIC,EAAIC,EAAWzgD,EAASxP,MAC1D8vD,EAASxoD,OAAO4oD,MAEbJ,GAYX7E,GAAKjwD,UAAUm1D,SAAW,SAASl2B,EAAM10B,EAAGC,EAAGqc,EAAUrS,GACrD,IAAI4gD,EAAa,GAMjB,OALApwD,KAAKyvD,aAAax1B,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAAS,SAASyN,EAAO8yC,EAAIC,EAAIC,GACrE,IAAIC,EAAYjzC,EAAM2E,QAAQmuC,EAAIC,EAAIC,EAAWzgD,EAASxP,MAC1DowD,EAAWlzD,KAAKgzD,MAGbE,GAkBXnF,GAAKjwD,UAAUq1D,gBAAkB,SAASp2B,EAAMpY,EAAUrS,GACtD,OAAOxP,KAAKyvD,aAAax1B,EAAM,EAAG,EAAGpY,EAAUrS,GAAS,gBAY5Dy7C,GAAKjwD,UAAUgN,KAAO,SAASC,EAAKgyB,EAAM10B,EAAGC,EAAGqc,EAAUrS,GACtDxP,KAAK4hB,QAAQqY,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAASxH,KAAKC,IAarDgjD,GAAKjwD,UAAUmoB,WAAa,SAASlb,EAAKgyB,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAC5DxP,KAAKyvD,aAAax1B,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAAS,SAASyN,EAAO8yC,EAAIC,EAAIC,GACrEhzC,EAAMkG,WAAWlb,EAAK8nD,EAAIC,EAAIC,OAgBtChF,GAAKjwD,UAAUyoB,YAAc,SAASxb,EAAKgyB,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAC7DxP,KAAKyvD,aAAax1B,EAAM10B,EAAGC,EAAGqc,EAAUrS,GAAS,SAASyN,EAAO8yC,EAAIC,EAAIC,GACrEhzC,EAAMwG,YAAYxb,EAAK8nD,EAAIC,EAAIC,OAQvChF,GAAKjwD,UAAUkqC,eAAiB,SAASvrC,GACrC,IAAIugC,EAAel6B,KAAK+e,MAAMplB,GAC9B,GAAIugC,EACA,OAAOA,EAAaqL,IAO5B0lB,GAAKjwD,UAAUs1D,SAAW,WACtB,IAAIC,EAAQvwD,KAEZ,SAASyJ,EAAOrE,EAAW/G,IAG3B,SAASmyD,EAAkB72D,GACvB,IAAI82D,EAAcF,EAAMrrB,eAAevrC,GACvC8P,EAAOgnD,GAAeA,EAAYC,OAAO50D,OAAS,GAItD00D,EAAkB,cAClBA,EAAkB,cAClBA,EAAkB,gBAClBA,EAAkB,aAClBA,EAAkB,WAGlB/mD,EAAOzJ,KAAK+gB,WAAa,IAQ7BkqC,GAAKjwD,UAAU21D,SAAW,WACtB,OAAO3tB,GAAKqD,YAAYrmC,OAK5BirD,GAAKjwD,UAAU41D,SAAW,WAEtB,OADA7zC,QAAQ8zC,KAAK,gEACN7wD,KAAK8wD,iBAMhB7F,GAAKjwD,UAAU81D,cAAgB,WAK3B,IAJA,IAAI3qB,EAAYnmC,KAAK2wD,WACjBp+C,EAAQ4zB,EAAUt8B,SAClBtL,EAAS,IAAI+oC,YAAY/0B,EAAMzW,QAC/Bi1D,EAAW,IAAIr1D,WAAW6C,GACrBnF,EAAI,EAAGA,EAAImZ,EAAMzW,OAAQ1C,IAC9B23D,EAAS33D,GAAKmZ,EAAMnZ,GAGxB,OAAOmF,GAMX0sD,GAAKjwD,UAAUg2D,SAAW,SAAShzD,GAC/B,IAAIovB,EAAaptB,KAAKklC,eAAe,cACjCimB,EAAYnrD,KAAKklC,eAAe,iBACpClnC,EAAWA,GAAYovB,EAAWiY,QAAQ,MAAO,IAAM,IAAM8lB,EAAY,OACzE,IAAI8F,EAAcjxD,KAAK8wD,gBAEvB,GAAI3pB,KAGA,GAFA1pC,OAAOyzD,IAAMzzD,OAAOyzD,KAAOzzD,OAAO0zD,UAE9B1zD,OAAOyzD,IAAK,CACZ,IAAInkD,EAAW,IAAI6Z,SAASqqC,GACxBG,EAAO,IAAIC,KAAK,CAACtkD,GAAW,CAACjG,KAAM,kBAEnCwqD,EAAOjoD,SAASkoD,cAAc,KAClCD,EAAKE,KAAO/zD,OAAOyzD,IAAIO,gBAAgBL,GACvCE,EAAKN,SAAWhzD,EAEhB,IAAI+hD,EAAQ12C,SAASqoD,YAAY,eACjC3R,EAAM4R,UAAU,SAAS,GAAM,GAC/BL,EAAKM,cAAc7R,QAEnBhjC,QAAQ8zC,KAAK,yEAEd,CACH,IAAIgB,EAAK,EAAQ,GACbtzD,EAASipC,GAAwBypB,GACrCY,EAAGC,cAAc9zD,EAAUO,KAMnC0sD,GAAKjwD,UAAUixD,kBAAoB,CAC/B8F,OAAqB,EACrBC,WAAqB,EACrBC,SAAqB,EACrBC,SAAqB,EACrBC,UAAqB,GACrBC,KAAqB,GACrBlG,QAAqB,GACrBmG,kBAAqB,IACrBC,IAAqB,IACrBC,QAAqB,KAMzBtH,GAAKjwD,UAAUgxD,eAAiB,CAC5BwG,gBAAiB,EACjBC,gBAAiB,EACjBC,UAAW,EACXC,eAAgB,EAChB7G,OAAQ,EACR8G,cAAe,EACfC,SAAU,EACVC,eAAgB,EAChBC,eAAgB,GAMpB9H,GAAKjwD,UAAU6wD,gBAAkB,CAC7BmH,KAAM,IACNC,YAAa,IACbC,MAAO,IACPC,OAAQ,IACRrH,OAAQ,IACRsH,UAAW,IACXhB,KAAM,IACNiB,WAAY,IACZC,MAAU,KAqId,IAAI/F,GAAO,CAAEnvC,KAAMkvC,GAAezyC,MAAO6yC,IAIrC6F,GAAoB,IAAI53D,MAAM,IAgFlC,SAAS63D,GAAe11D,EAAMf,GAC1BA,EAAQA,GAAS,EACjB,IAAI7B,EAAI,IAAIkZ,GAAOtW,EAAMf,GACrByzB,EAAet1B,EAAEoa,aAAa,GAGlC,OAFA9L,EAAMrE,SAA0B,IAAjBqrB,GAAuC,MAAjBA,EAAsB,kCAAoCA,GAE1E,IAAjBA,EACO,CACH9W,QAAS8W,EACT2P,QAASjlC,EAAEqe,kBACX6mB,SAAUllC,EAAEse,mBACZ6mB,QAASnlC,EAAEif,gBAAgBo5C,KAGxB,CACH75C,QAAS8W,EACT2P,QAASjlC,EAAEqe,kBACX6mB,SAAUllC,EAAEse,mBACZ6mB,QAASnlC,EAAEif,gBAAgBo5C,IAC3BjzB,WAAYplC,EAAEqf,8BA/F1Bg5C,GAAkB,GAAK,WACnB,IAAIx2D,EAAQiD,KAAKxB,OAASwB,KAAKqU,eAC3Bo/C,EAAYzzD,KAAKyU,cACrB,OAAkB,IAAdg/C,EACO,CACHhnB,UAAW,EACXtzB,SAAUnZ,KAAK2X,aAAavD,GAAO+E,UACnC9e,MAAO2F,KAAK6W,oBAEK,IAAd48C,EACA,CACHhnB,UAAW,EACXtzB,SAAUnZ,KAAK2X,aAAavD,GAAO+E,UACnCzB,OAAQ1X,KAAKwX,6BAGrBhO,EAAMC,QAAO,EAAO,KAAO1M,EAAMsO,SAAS,IAAM,gDAIpDkoD,GAAkB,GAAK,WACnB,IAAIx2D,EAAQiD,KAAKxB,OAASwB,KAAKqU,eAC3Bo4B,EAAYzsC,KAAKyU,cACrBjL,EAAMC,OAAqB,IAAdgjC,GAAiC,IAAdA,EAAiB,KAAO1vC,EAAMsO,SAAS,IAAM,+CAC7E,IAAI8N,EAAWnZ,KAAK2X,aAAavD,GAAO+E,UACpCu6C,EAAe1zD,KAAKyU,cACpBk/C,EAAe3zD,KAAKyU,cACxB,GAAkB,IAAdg4B,EAEA,MAAO,CACHA,UAAWA,EACXtzB,SAAUA,EACVu6C,aAAcA,EACdC,aAAcA,EACdhnB,SAAU3sC,KAAKkW,UAAU9B,GAAOuE,QAAQvE,GAAOvE,MAAK,WAChD,MAAO,CACHg9B,YAAa7sC,KAAKyU,cAClBq4B,OAAQ9sC,KAAK6W,iBAAiB68C,GAC9BE,OAAQ5zD,KAAK6W,iBAAiB88C,UAIvC,GAAkB,IAAdlnB,EAAiB,CACxB,IAAIO,EAAYhtC,KAAK2X,aAAavD,GAAOgF,UACrC8zB,EAAYltC,KAAK2X,aAAavD,GAAOgF,UACrCy6C,EAAc7zD,KAAKyU,cACnBq/C,EAAc9zD,KAAKyU,cACvB,MAAO,CAEHg4B,UAAWA,EACXtzB,SAAUA,EACVu6C,aAAcA,EACdC,aAAcA,EACd3mB,UAAWA,EACXE,UAAWA,EACX2mB,YAAaA,EACbC,YAAaA,EACb1mB,aAAcptC,KAAKkW,UAAU29C,EAAaz/C,GAAOvE,KAAKikD,GAAa,WAC/D,MAAO,CACHhnB,OAAQ9sC,KAAK6W,iBAAiB68C,GAC9BE,OAAQ5zD,KAAK6W,iBAAiB88C,WAOlDJ,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCACjEq1D,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCACjEq1D,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCACjEq1D,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCACjEq1D,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCACjEq1D,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCACjEq1D,GAAkB,GAAK,WAA0B,MAAO,CAAEr1D,MAAO,gCA8BjE,IAAI61D,GAAmB,IAAIp4D,MAAM,IAEjC,SAASq4D,GAAc3mB,GACnB,OAAO,IAAI1sC,GAAM0O,MAAM,OAAQ,CAC3B,CAAC1V,KAAM,UAAWmN,KAAM,QAASzM,MAAO,OACxC,CAACV,KAAM,UAAWmN,KAAM,QAASzM,MAAO,IAAIsG,GAAM4P,WAAW88B,EAAKlN,UAClE,CAACxmC,KAAM,WAAYmN,KAAM,QAASzM,MAAO,IAAIsG,GAAMsQ,YAAYo8B,EAAKjN,WACpE,CAACzmC,KAAM,UAAWmN,KAAM,QAASzM,MAAO,IAAIsG,GAAM4Q,WAAW87B,EAAKhN,QAAS0zB,OAInF,IAAI1mB,GAAO,CAAExyB,MAAO24C,GAAgBp1C,KAAM41C,IAI1C,SAASC,GAAsB/4D,GAC3B,IAAIg5D,EAAQ,GAEZh5D,EAAEwa,KAAK,UACP,IAAIy+C,EAAkBj5D,EAAEuZ,cACxBjL,EAAMrE,SAA6B,IAApBgvD,EAAuB,uCAEtCj5D,EAAEwa,KAAK,SAAU,GACjB,IAAI0+C,EAASl5D,EAAEuZ,cAEfvZ,EAAEwa,KAAK,SAAU,GACjB,IAAK,IAAItc,EAAI,EAAGA,EAAIg7D,EAAQh7D,GAAK,EAAG,CAChC,IAAIkzC,EAAYpxC,EAAEuZ,cACd83B,EAAarxC,EAAEuZ,cACfpa,EAAQa,EAAE2Z,aACdq/C,EAAM5nB,EAAY,IAAMC,GAAclyC,EAE1C,OAAO65D,EAGX,SAASG,GAAkBn5D,GACvB,IAAIg5D,EAAQ,GAGZh5D,EAAEwa,KAAK,UACP,IAAI4+C,EAAUp5D,EAAE8Z,aAEZs/C,EAAU,GACVv3C,QAAQ8zC,KAAK,8CAEjB31D,EAAEwa,KAAK,SACP,IAAIyD,EAAWje,EAAEuZ,cACb0/C,EAA6B,IAAXh7C,EAEtB,GADAje,EAAEwa,KAAK,UACiB,IAApBy+C,EAAuB,CACvB,IAAIC,EAASl5D,EAAEuZ,cAEfvZ,EAAEwa,KAAK,SAAU,GACjB,IAAK,IAAItc,EAAI,EAAGA,EAAIg7D,EAAQh7D,GAAK,EAAG,CAChC,IAAIkzC,EAAYpxC,EAAEuZ,cACd83B,EAAarxC,EAAEuZ,cACfpa,EAAQa,EAAE2Z,aACdq/C,EAAM5nB,EAAY,IAAMC,GAAclyC,GAG9C,OAAO65D,EAIX,SAASK,GAAez2D,EAAMf,GAC1B,IAAI7B,EAAI,IAAI2f,GAAMzG,OAAOtW,EAAMf,GAC3ByzB,EAAet1B,EAAEuZ,cACrB,GAAqB,IAAjB+b,EACA,OAAOyjC,GAAsB/4D,GAC1B,GAAqB,IAAjBs1B,EACP,OAAO6jC,GAAkBn5D,GAEzB,MAAM,IAAIgB,MAAM,mCAAqCs0B,EAAe,MAI5E,IAAIgkC,GAAO,CAAE35C,MAAO05C,IAUpB,SAASE,GAAe32D,EAAMf,EAAOmuB,EAAWwpC,GAM5C,IALA,IAAIx5D,EAAI,IAAI2f,GAAMzG,OAAOtW,EAAMf,GAC3B43D,EAAUD,EAAex5D,EAAEuZ,YAAcvZ,EAAE8Z,WAG3C4/C,EAAe,GACVx7D,EAAI,EAAGA,EAAI8xB,EAAY,EAAG9xB,GAAK,EAAG,CACvC,IAAIy7D,EAAcF,EAAQp7D,KAAK2B,GAC3Bw5D,IAEAG,GAAe,GAGnBD,EAAa13D,KAAK23D,GAGtB,OAAOD,EAGX,IAAItqB,GAAO,CAAEzvB,MAAO45C,IAgBpB,SAASK,GAAaz0C,EAAMqvC,GACxB,IAAImC,EAAK,EAAQ,GACjBA,EAAGkD,SAAS10C,GAAM,SAAS20C,EAAKz2D,GAC5B,GAAIy2D,EACA,OAAOtF,EAASsF,EAAI32D,SAGxBqxD,EAAS,KAAMtoB,GAAwB7oC,OAS/C,SAAS02D,GAAYl3D,EAAK2xD,GACtB,IAAIwF,EAAU,IAAIC,eAClBD,EAAQtsC,KAAK,MAAO7qB,GAAK,GACzBm3D,EAAQE,aAAe,cACvBF,EAAQG,OAAS,WACb,OAAIH,EAAQI,SACD5F,EAAS,KAAMwF,EAAQI,UAEvB5F,EAAS,6BAA+BwF,EAAQK,aAI/DL,EAAQM,QAAU,WACd9F,EAAS,6BAGbwF,EAAQO,OAUZ,SAASC,GAA0B53D,EAAMue,GAGrC,IAFA,IAAIs5C,EAAe,GACfz6D,EAAI,GACC9B,EAAI,EAAGA,EAAIijB,EAAWjjB,GAAK,EAAG,CACnC,IAAI8H,EAAM2Z,GAAMvH,OAAOxV,EAAM5C,GACzB06D,EAAW/6C,GAAM5H,SAASnV,EAAM5C,EAAI,GACpCsD,EAASqc,GAAM5H,SAASnV,EAAM5C,EAAI,GAClCY,EAAS+e,GAAM5H,SAASnV,EAAM5C,EAAI,IACtCy6D,EAAaz4D,KAAK,CAACgE,IAAKA,EAAK00D,SAAUA,EAAUp3D,OAAQA,EAAQ1C,OAAQA,EAAQ+5D,aAAa,IAC9F36D,GAAK,GAGT,OAAOy6D,EASX,SAASG,GAAsBh4D,EAAMue,GAGjC,IAFA,IAAIs5C,EAAe,GACfz6D,EAAI,GACC9B,EAAI,EAAGA,EAAIijB,EAAWjjB,GAAK,EAAG,CACnC,IAAI8H,EAAM2Z,GAAMvH,OAAOxV,EAAM5C,GACzBsD,EAASqc,GAAM5H,SAASnV,EAAM5C,EAAI,GAClC66D,EAAal7C,GAAM5H,SAASnV,EAAM5C,EAAI,GACtC86D,EAAan7C,GAAM5H,SAASnV,EAAM5C,EAAI,IACtC26D,OAAc,EAEdA,EADAE,EAAaC,GACC,OAKlBL,EAAaz4D,KAAK,CAACgE,IAAKA,EAAK1C,OAAQA,EAAQq3D,YAAaA,EACtDI,iBAAkBF,EAAYj6D,OAAQk6D,IAC1C96D,GAAK,GAGT,OAAOy6D,EAeX,SAASO,GAAgBp4D,EAAMq4D,GAC3B,GAA+B,SAA3BA,EAAWN,YAAwB,CACnC,IAAIO,EAAW,IAAI16D,WAAWoC,EAAKS,OAAQ43D,EAAW33D,OAAS,EAAG23D,EAAWF,iBAAmB,GAC5FI,EAAY,IAAI36D,WAAWy6D,EAAWr6D,QAE1C,GADAoI,EAAYkyD,EAAUC,GAClBA,EAAUj7D,aAAe+6D,EAAWr6D,OACpC,MAAM,IAAII,MAAM,wBAA0Bi6D,EAAWj1D,IAAM,sDAG/D,IAAIqmC,EAAO,IAAI3gB,SAASyvC,EAAU93D,OAAQ,GAC1C,MAAO,CAACT,KAAMypC,EAAM/oC,OAAQ,GAE5B,MAAO,CAACV,KAAMA,EAAMU,OAAQ23D,EAAW33D,QAa/C,SAAS83D,GAAY/3D,EAAQshB,GAGzB,IAAI0O,EACAuX,EAHJjmB,OAAe9W,IAAR8W,GAA6B,OAARA,EAAiB,GAAKA,EAOlD,IAMIxD,EA2BAk6C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA97D,EA3CAiD,EAAO,IAAI8sD,GAAK,CAACC,OAAO,IAKxBptD,EAAO,IAAI8oB,SAASroB,EAAQ,GAE5Bo3D,EAAe,GACfsB,EAAYp8C,GAAMvH,OAAOxV,EAAM,GACnC,GAAIm5D,IAAct3D,OAAO6M,aAAa,EAAG,EAAG,EAAG,IAAoB,SAAdyqD,GAAsC,SAAdA,EACzE94D,EAAKkuD,eAAiB,WACtBhwC,EAAYxB,GAAMhI,UAAU/U,EAAM,GAClC63D,EAAeD,GAA0B53D,EAAMue,QAC5C,GAAkB,SAAd46C,EACP94D,EAAKkuD,eAAiB,MACtBhwC,EAAYxB,GAAMhI,UAAU/U,EAAM,GAClC63D,EAAeD,GAA0B53D,EAAMue,OAC5C,IAAkB,SAAd46C,EAaP,MAAM,IAAI/6D,MAAM,kCAAoC+6D,GAZpD,IAAIC,EAASr8C,GAAMvH,OAAOxV,EAAM,GAChC,GAAIo5D,IAAWv3D,OAAO6M,aAAa,EAAG,EAAG,EAAG,GACxCrO,EAAKkuD,eAAiB,eACnB,IAAe,SAAX6K,EAGP,MAAM,IAAIh7D,MAAM,+BAAiC+6D,GAFjD94D,EAAKkuD,eAAiB,MAK1BhwC,EAAYxB,GAAMhI,UAAU/U,EAAM,IAClC63D,EAAeG,GAAsBh4D,EAAMue,GAiB/C,IAAK,IAAIjjB,EAAI,EAAGA,EAAIijB,EAAWjjB,GAAK,EAAG,CACnC,IAAI+8D,EAAaR,EAAav8D,GAC1BuH,OAAQ,EACZ,OAAQw1D,EAAWj1D,KACf,IAAK,OACDP,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bh4D,EAAKghB,OAAOlE,KAAOA,GAAKJ,MAAMla,EAAM7C,KAAM6C,EAAMnC,QAChDL,EAAK8O,SAAW,IAAIyR,GAAavgB,EAAKghB,OAAOlE,MAC7C,MACJ,IAAK,OACDta,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bj7D,EAAI,IAAI2f,GAAMzG,OAAOzT,EAAM7C,KAAM6C,EAAMnC,QACvCL,EAAKghB,OAAO46B,IAAM7+C,EAAE6a,eAAeogD,EAAWr6D,OAAS,GACvD,MACJ,IAAK,OACD06D,EAAiBL,EACjB,MACJ,IAAK,OACDx1D,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bj7D,EAAI,IAAI2f,GAAMzG,OAAOzT,EAAM7C,KAAM6C,EAAMnC,QACvCL,EAAKghB,OAAOkkC,KAAOnoD,EAAE+a,cAAckgD,EAAWr6D,QAC9C,MACJ,IAAK,OACD6E,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bh4D,EAAKghB,OAAO0O,KAAOA,GAAKhT,MAAMla,EAAM7C,KAAM6C,EAAMnC,QAChDL,EAAK4iB,WAAa5iB,EAAKghB,OAAO0O,KAAK9M,WACnCwN,EAAmBpwB,EAAKghB,OAAO0O,KAAKU,iBACpC,MACJ,IAAK,OACD5tB,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bh4D,EAAKghB,OAAO4P,KAAOA,GAAKlU,MAAMla,EAAM7C,KAAM6C,EAAMnC,QAChDL,EAAK6wB,SAAW7wB,EAAKghB,OAAO4P,KAAKC,SACjC7wB,EAAK8wB,UAAY9wB,EAAKghB,OAAO4P,KAAKE,UAClC9wB,EAAKwxB,iBAAmBxxB,EAAKghB,OAAO4P,KAAKY,iBACzC,MACJ,IAAK,OACDinC,EAAiBT,EACjB,MACJ,IAAK,OACDx1D,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9BrwB,EAAYpV,GAAK7V,MAAMla,EAAM7C,KAAM6C,EAAMnC,QACzC,MACJ,IAAK,OACDmC,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bh4D,EAAKghB,OAAOyR,KAAOA,GAAK/V,MAAMla,EAAM7C,KAAM6C,EAAMnC,QAChDL,EAAK+sB,UAAY/sB,EAAKghB,OAAOyR,KAAK1F,UAClC,MACJ,IAAK,OACD6rC,EAAiBZ,EACjB,MACJ,IAAK,OACDx1D,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bh4D,EAAKghB,OAAOkd,IAAMA,GAAIxhB,MAAMla,EAAM7C,KAAM6C,EAAMnC,QAC9C,MACJ,IAAK,OACDmC,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bh4D,EAAKghB,OAAOL,KAAOA,GAAKjE,MAAMla,EAAM7C,KAAM6C,EAAMnC,QAChDL,EAAKqhB,WAAa,IAAIX,GAAW1gB,EAAKghB,OAAOL,MAC7C,MACJ,IAAK,OACDne,EAAQu1D,GAAgBp4D,EAAMq4D,GAC9Bj7D,EAAI,IAAI2f,GAAMzG,OAAOzT,EAAM7C,KAAM6C,EAAMnC,QACvCL,EAAKghB,OAAOmkC,KAAOpoD,EAAE+a,cAAckgD,EAAWr6D,QAC9C,MACJ,IAAK,OACD26D,EAAiBN,EACjB,MACJ,IAAK,OACDW,EAAiBX,EACjB,MACJ,IAAK,OACDI,EAAgBJ,EAChB,MACJ,IAAK,OACDU,EAAiBV,EACjB,MACJ,IAAK,OACDO,EAAiBP,EACjB,MACJ,IAAK,OACDQ,EAAiBR,EACjB,MACJ,IAAK,OACDa,EAAiBb,EACjB,OAIZ,IAAItwB,EAAYqwB,GAAgBp4D,EAAMi5D,GAItC,GAHA54D,EAAKghB,OAAOxlB,KAAOoiC,GAAMlhB,MAAMgrB,EAAU/nC,KAAM+nC,EAAUrnC,OAAQsnC,GACjE3nC,EAAK4gB,MAAQ5gB,EAAKghB,OAAOxlB,KAErB88D,GAAkBK,EAAgB,CAClC,IAAIpC,EAAoC,IAArBnmC,EACf4oC,EAAYjB,GAAgBp4D,EAAMg5D,GAClCM,EAAc9sB,GAAKzvB,MAAMs8C,EAAUr5D,KAAMq5D,EAAU34D,OAAQL,EAAK+sB,UAAWwpC,GAC3E2C,EAAYnB,GAAgBp4D,EAAM24D,GACtCt4D,EAAKmS,OAASy+B,GAAKl0B,MAAMw8C,EAAUv5D,KAAMu5D,EAAU74D,OAAQ44D,EAAaj5D,EAAM0hB,OAC3E,KAAI02C,EAIP,MAAM,IAAIr6D,MAAM,kDAHhB,IAAI8pC,EAAWkwB,GAAgBp4D,EAAMy4D,GACrCztC,GAAIjO,MAAMmrB,EAASloC,KAAMkoC,EAASxnC,OAAQL,EAAM0hB,GAKpD,IAAImlB,EAAYkxB,GAAgBp4D,EAAM84D,GAItC,GAHA1mC,GAAKrV,MAAM1c,EAAM6mC,EAAUlnC,KAAMknC,EAAUxmC,OAAQL,EAAKwxB,iBAAkBxxB,EAAK+sB,UAAW/sB,EAAKmS,OAAQuP,GACvGD,GAAczhB,EAAM0hB,GAEhBg3C,EAAgB,CAChB,IAAIS,EAAYpB,GAAgBp4D,EAAM+4D,GACtC14D,EAAKoxD,aAAeiF,GAAK35C,MAAMy8C,EAAUx5D,KAAMw5D,EAAU94D,aAEzDL,EAAKoxD,aAAe,GAGxB,GAAImH,EAAgB,CAChB,IAAIa,EAAYrB,GAAgBp4D,EAAM44D,GACtCv4D,EAAKghB,OAAOkuB,KAAOA,GAAKxyB,MAAM08C,EAAUz5D,KAAMy5D,EAAU/4D,QACxDL,EAAK4B,SAASksC,OAGlB,GAAI0qB,EAAgB,CAChB,IAAIa,EAAYtB,GAAgBp4D,EAAM64D,GACtCx4D,EAAKghB,OAAO+iB,KAAOA,GAAKrnB,MAAM28C,EAAU15D,KAAM05D,EAAUh5D,QACxDL,EAAKghB,OAAO+iB,KAAK9B,SAASG,SAAQ,SAAUC,GAExC,GAAIA,EAAEt/B,IAAIu/B,MAAM,uBAAwB,CACpC,IAAIg3B,EAAMj3B,EAAEpvB,QAAQsvB,mBAChB/mB,EAAW89C,EAAI99C,SACnB6mB,EAAEpvB,QAAQsmD,OAASv5D,EAAKghB,OAAOxlB,KAAKggB,QAGnC,GAAI6mB,EAAEt/B,IAAIu/B,MAAM,wBAAyB,CAC1C,IAAIk3B,EAAQn3B,EAAEpvB,QAAQsvB,mBAClB7mB,EAAoB89C,EAAM99C,kBAC9B2mB,EAAEpvB,QAAQwmD,gBAAkBz5D,EAAKghB,OAAOxlB,KAAKkgB,OAKzD,GAAI28C,EAAgB,CAChB,IAAIqB,EAAY3B,GAAgBp4D,EAAM04D,GACtCr4D,EAAKghB,OAAOouC,KAAOA,GAAK1yC,MAAMg9C,EAAU/5D,KAAM+5D,EAAUr5D,OAAQL,EAAK4gB,OAGzE,GAAIi4C,EAAgB,CAChB,IAAI/wB,EAAYiwB,GAAgBp4D,EAAMk5D,GACtC74D,EAAKghB,OAAO0G,KAAOA,GAAKhL,MAAMorB,EAAUnoC,KAAMmoC,EAAUznC,QACxDL,EAAK+nC,MAAQ/nC,EAAKghB,OAAO0G,KAG7B,OAAO1nB,EAaX,SAASF,GAAKF,EAAK2xD,EAAU7vC,GACzB,IAAIi4C,EAA2B,qBAAXr6D,OAChBs6D,EAASD,EAAShD,GAAeG,GAErC,OAAO,IAAI+C,SAAQ,SAAUC,EAASC,GAClCH,EAAOh6D,GAAK,SAASi3D,EAAK/D,GACtB,GAAI+D,EAAK,CACL,GAAItF,EACA,OAAOA,EAASsF,GAEhBkD,EAAOlD,GAGf,IAAI72D,EACJ,IACIA,EAAOm4D,GAAYrF,EAAapxC,GAClC,MAAOhiB,GACL,GAAI6xD,EACA,OAAOA,EAAS7xD,EAAG,MAEnBq6D,EAAOr6D,GAGf,GAAI6xD,EACA,OAAOA,EAAS,KAAMvxD,GAEtB85D,EAAQ95D,SAcxB,SAASg6D,GAASp6D,EAAK8hB,GACnB,IAAIgyC,EAAK,EAAQ,GACbtzD,EAASszD,EAAGuG,aAAar6D,GAC7B,OAAOu4D,GAAYlvB,GAAwB7oC,GAASshB,GAGxD,IAAIniB,GAAwB5D,OAAOy4C,OAAO,CACzC8lB,UAAW,KACXpN,KAAMA,GACNzqC,MAAOA,GACP3b,KAAMA,EACNL,YAAaA,EACb8zD,OAAQz9C,GACRA,MAAOy7C,GACPr4D,KAAMA,GACNk6D,SAAUA,KAGI,iB,gECx/bf;;;;;;;AAUA,IAAII,EAAS,EAAQ,QACjBC,EAAU,EAAQ,QAClBtpD,EAAU,EAAQ,QAuCtB,SAASupD,IACP,IACE,IAAIh8D,EAAM,IAAIf,WAAW,GAEzB,OADAe,EAAI47D,UAAY,CAACA,UAAW38D,WAAWV,UAAW09D,IAAK,WAAc,OAAO,KACvD,KAAdj8D,EAAIi8D,OACiB,oBAAjBj8D,EAAIwH,UACuB,IAAlCxH,EAAIwH,SAAS,EAAG,GAAG7I,WACvB,MAAOyC,GACP,OAAO,GAIX,SAAS86D,IACP,OAAOlxB,EAAOmxB,oBACV,WACA,WAGN,SAASC,EAAcC,EAAMh9D,GAC3B,GAAI68D,IAAe78D,EACjB,MAAM,IAAIi9D,WAAW,8BAcvB,OAZItxB,EAAOmxB,qBAETE,EAAO,IAAIp9D,WAAWI,GACtBg9D,EAAKT,UAAY5wB,EAAOzsC,YAGX,OAAT89D,IACFA,EAAO,IAAIrxB,EAAO3rC,IAEpBg9D,EAAKh9D,OAASA,GAGTg9D,EAaT,SAASrxB,EAAQwU,EAAK+c,EAAkBl9D,GACtC,IAAK2rC,EAAOmxB,uBAAyB54D,gBAAgBynC,GACnD,OAAO,IAAIA,EAAOwU,EAAK+c,EAAkBl9D,GAI3C,GAAmB,kBAARmgD,EAAkB,CAC3B,GAAgC,kBAArB+c,EACT,MAAM,IAAI98D,MACR,qEAGJ,OAAO+8D,EAAYj5D,KAAMi8C,GAE3B,OAAOmL,EAAKpnD,KAAMi8C,EAAK+c,EAAkBl9D,GAW3C,SAASsrD,EAAM0R,EAAMz+D,EAAO2+D,EAAkBl9D,GAC5C,GAAqB,kBAAVzB,EACT,MAAM,IAAI4F,UAAU,yCAGtB,MAA2B,qBAAhBqnC,aAA+BjtC,aAAiBitC,YAClD4xB,EAAgBJ,EAAMz+D,EAAO2+D,EAAkBl9D,GAGnC,kBAAVzB,EACF8+D,EAAWL,EAAMz+D,EAAO2+D,GAG1BI,EAAWN,EAAMz+D,GA4B1B,SAASg/D,EAAYl5D,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAIF,UAAU,oCACf,GAAIE,EAAO,EAChB,MAAM,IAAI44D,WAAW,wCAIzB,SAASO,EAAOR,EAAM34D,EAAM4E,EAAMkI,GAEhC,OADAosD,EAAWl5D,GACPA,GAAQ,EACH04D,EAAaC,EAAM34D,QAEf4I,IAAThE,EAIyB,kBAAbkI,EACV4rD,EAAaC,EAAM34D,GAAM4E,KAAKA,EAAMkI,GACpC4rD,EAAaC,EAAM34D,GAAM4E,KAAKA,GAE7B8zD,EAAaC,EAAM34D,GAW5B,SAAS84D,EAAaH,EAAM34D,GAG1B,GAFAk5D,EAAWl5D,GACX24D,EAAOD,EAAaC,EAAM34D,EAAO,EAAI,EAAoB,EAAhBo5D,EAAQp5D,KAC5CsnC,EAAOmxB,oBACV,IAAK,IAAIx/D,EAAI,EAAGA,EAAI+G,IAAQ/G,EAC1B0/D,EAAK1/D,GAAK,EAGd,OAAO0/D,EAgBT,SAASK,EAAYL,EAAM54D,EAAQ+M,GAKjC,GAJwB,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,SAGRw6B,EAAO+xB,WAAWvsD,GACrB,MAAM,IAAIhN,UAAU,8CAGtB,IAAInE,EAAwC,EAA/BV,EAAW8E,EAAQ+M,GAChC6rD,EAAOD,EAAaC,EAAMh9D,GAE1B,IAAI29D,EAASX,EAAK15D,MAAMc,EAAQ+M,GAShC,OAPIwsD,IAAW39D,IAIbg9D,EAAOA,EAAK90D,MAAM,EAAGy1D,IAGhBX,EAGT,SAASY,EAAeZ,EAAMa,GAC5B,IAAI79D,EAAS69D,EAAM79D,OAAS,EAAI,EAA4B,EAAxBy9D,EAAQI,EAAM79D,QAClDg9D,EAAOD,EAAaC,EAAMh9D,GAC1B,IAAK,IAAI1C,EAAI,EAAGA,EAAI0C,EAAQ1C,GAAK,EAC/B0/D,EAAK1/D,GAAgB,IAAXugE,EAAMvgE,GAElB,OAAO0/D,EAGT,SAASI,EAAiBJ,EAAMa,EAAOC,EAAY99D,GAGjD,GAFA69D,EAAMv+D,WAEFw+D,EAAa,GAAKD,EAAMv+D,WAAaw+D,EACvC,MAAM,IAAIb,WAAW,6BAGvB,GAAIY,EAAMv+D,WAAaw+D,GAAc99D,GAAU,GAC7C,MAAM,IAAIi9D,WAAW,6BAmBvB,OAfEY,OADiB5wD,IAAf6wD,QAAuC7wD,IAAXjN,EACtB,IAAIJ,WAAWi+D,QACH5wD,IAAXjN,EACD,IAAIJ,WAAWi+D,EAAOC,GAEtB,IAAIl+D,WAAWi+D,EAAOC,EAAY99D,GAGxC2rC,EAAOmxB,qBAETE,EAAOa,EACPb,EAAKT,UAAY5wB,EAAOzsC,WAGxB89D,EAAOY,EAAcZ,EAAMa,GAEtBb,EAGT,SAASM,EAAYN,EAAMzU,GACzB,GAAI5c,EAAOoyB,SAASxV,GAAM,CACxB,IAAIxoD,EAA4B,EAAtB09D,EAAQlV,EAAIvoD,QAGtB,OAFAg9D,EAAOD,EAAaC,EAAMj9D,GAEN,IAAhBi9D,EAAKh9D,OACAg9D,GAGTzU,EAAIyV,KAAKhB,EAAM,EAAG,EAAGj9D,GACdi9D,GAGT,GAAIzU,EAAK,CACP,GAA4B,qBAAhB/c,aACR+c,EAAI9lD,kBAAkB+oC,aAAgB,WAAY+c,EACpD,MAA0B,kBAAfA,EAAIvoD,QAAuBi+D,GAAM1V,EAAIvoD,QACvC+8D,EAAaC,EAAM,GAErBY,EAAcZ,EAAMzU,GAG7B,GAAiB,WAAbA,EAAIv9C,MAAqBoI,EAAQm1C,EAAIvmD,MACvC,OAAO47D,EAAcZ,EAAMzU,EAAIvmD,MAInC,MAAM,IAAImC,UAAU,sFAGtB,SAASs5D,EAASz9D,GAGhB,GAAIA,GAAU68D,IACZ,MAAM,IAAII,WAAW,0DACaJ,IAAattD,SAAS,IAAM,UAEhE,OAAgB,EAATvP,EAGT,SAASk+D,EAAYl+D,GAInB,OAHKA,GAAUA,IACbA,EAAS,GAEJ2rC,EAAO6xB,OAAOx9D,GA+EvB,SAASV,EAAY8E,EAAQ+M,GAC3B,GAAIw6B,EAAOoyB,SAAS35D,GAClB,OAAOA,EAAOpE,OAEhB,GAA2B,qBAAhBwrC,aAA6D,oBAAvBA,YAAY2yB,SACxD3yB,YAAY2yB,OAAO/5D,IAAWA,aAAkBonC,aACnD,OAAOpnC,EAAO9E,WAEM,kBAAX8E,IACTA,EAAS,GAAKA,GAGhB,IAAIrE,EAAMqE,EAAOpE,OACjB,GAAY,IAARD,EAAW,OAAO,EAItB,IADA,IAAIq+D,GAAc,IAEhB,OAAQjtD,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOpR,EACT,IAAK,OACL,IAAK,QACL,UAAKkN,EACH,OAAOoxD,EAAYj6D,GAAQpE,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAAND,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOu+D,EAAcl6D,GAAQpE,OAC/B,QACE,GAAIo+D,EAAa,OAAOC,EAAYj6D,GAAQpE,OAC5CmR,GAAY,GAAKA,GAAUotD,cAC3BH,GAAc,GAMtB,SAASI,EAAcrtD,EAAUlQ,EAAOC,GACtC,IAAIk9D,GAAc,EAclB,SALcnxD,IAAVhM,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQiD,KAAKlE,OACf,MAAO,GAOT,SAJYiN,IAAR/L,GAAqBA,EAAMgD,KAAKlE,UAClCkB,EAAMgD,KAAKlE,QAGTkB,GAAO,EACT,MAAO,GAOT,GAHAA,KAAS,EACTD,KAAW,EAEPC,GAAOD,EACT,MAAO,GAGJkQ,IAAUA,EAAW,QAE1B,MAAO,EACL,OAAQA,GACN,IAAK,MACH,OAAOstD,EAASv6D,KAAMjD,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOw9D,EAAUx6D,KAAMjD,EAAOC,GAEhC,IAAK,QACH,OAAOy9D,EAAWz6D,KAAMjD,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAO09D,EAAY16D,KAAMjD,EAAOC,GAElC,IAAK,SACH,OAAO29D,EAAY36D,KAAMjD,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO49D,EAAa56D,KAAMjD,EAAOC,GAEnC,QACE,GAAIk9D,EAAa,MAAM,IAAIj6D,UAAU,qBAAuBgN,GAC5DA,GAAYA,EAAW,IAAIotD,cAC3BH,GAAc,GAStB,SAASW,EAAM30D,EAAGrL,EAAGrB,GACnB,IAAIJ,EAAI8M,EAAErL,GACVqL,EAAErL,GAAKqL,EAAE1M,GACT0M,EAAE1M,GAAKJ,EAmIT,SAAS0hE,EAAsBv8D,EAAQuE,EAAK82D,EAAY3sD,EAAU8tD,GAEhE,GAAsB,IAAlBx8D,EAAOzC,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAf89D,GACT3sD,EAAW2sD,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACVr6D,MAAMq6D,KAERA,EAAamB,EAAM,EAAKx8D,EAAOzC,OAAS,GAItC89D,EAAa,IAAGA,EAAar7D,EAAOzC,OAAS89D,GAC7CA,GAAcr7D,EAAOzC,OAAQ,CAC/B,GAAIi/D,EAAK,OAAQ,EACZnB,EAAar7D,EAAOzC,OAAS,OAC7B,GAAI89D,EAAa,EAAG,CACzB,IAAImB,EACC,OAAQ,EADJnB,EAAa,EAUxB,GALmB,kBAAR92D,IACTA,EAAM2kC,EAAO2f,KAAKtkD,EAAKmK,IAIrBw6B,EAAOoyB,SAAS/2D,GAElB,OAAmB,IAAfA,EAAIhH,QACE,EAEHk/D,EAAaz8D,EAAQuE,EAAK82D,EAAY3sD,EAAU8tD,GAClD,GAAmB,kBAARj4D,EAEhB,OADAA,GAAY,IACR2kC,EAAOmxB,qBACiC,oBAAjCl9D,WAAWV,UAAUoB,QAC1B2+D,EACKr/D,WAAWV,UAAUoB,QAAQ7C,KAAKgF,EAAQuE,EAAK82D,GAE/Cl+D,WAAWV,UAAUigE,YAAY1hE,KAAKgF,EAAQuE,EAAK82D,GAGvDoB,EAAaz8D,EAAQ,CAAEuE,GAAO82D,EAAY3sD,EAAU8tD,GAG7D,MAAM,IAAI96D,UAAU,wCAGtB,SAAS+6D,EAAcv+D,EAAKqG,EAAK82D,EAAY3sD,EAAU8tD,GACrD,IA0BI3hE,EA1BA8hE,EAAY,EACZC,EAAY1+D,EAAIX,OAChBs/D,EAAYt4D,EAAIhH,OAEpB,QAAiBiN,IAAbkE,IACFA,EAAWtN,OAAOsN,GAAUotD,cACX,SAAbptD,GAAoC,UAAbA,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIxQ,EAAIX,OAAS,GAAKgH,EAAIhH,OAAS,EACjC,OAAQ,EAEVo/D,EAAY,EACZC,GAAa,EACbC,GAAa,EACbxB,GAAc,EAIlB,SAASt7D,EAAM+8D,EAAKjiE,GAClB,OAAkB,IAAd8hE,EACKG,EAAIjiE,GAEJiiE,EAAIC,aAAaliE,EAAI8hE,GAKhC,GAAIH,EAAK,CACP,IAAIQ,GAAc,EAClB,IAAKniE,EAAIwgE,EAAYxgE,EAAI+hE,EAAW/hE,IAClC,GAAIkF,EAAK7B,EAAKrD,KAAOkF,EAAKwE,GAAqB,IAAhBy4D,EAAoB,EAAIniE,EAAImiE,IAEzD,IADoB,IAAhBA,IAAmBA,EAAaniE,GAChCA,EAAImiE,EAAa,IAAMH,EAAW,OAAOG,EAAaL,OAEtC,IAAhBK,IAAmBniE,GAAKA,EAAImiE,GAChCA,GAAc,OAKlB,IADI3B,EAAawB,EAAYD,IAAWvB,EAAauB,EAAYC,GAC5DhiE,EAAIwgE,EAAYxgE,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAIoiE,GAAQ,EACHlvD,EAAI,EAAGA,EAAI8uD,EAAW9uD,IAC7B,GAAIhO,EAAK7B,EAAKrD,EAAIkT,KAAOhO,EAAKwE,EAAKwJ,GAAI,CACrCkvD,GAAQ,EACR,MAGJ,GAAIA,EAAO,OAAOpiE,EAItB,OAAQ,EAeV,SAASqiE,EAAUJ,EAAKn7D,EAAQ1B,EAAQ1C,GACtC0C,EAAS6B,OAAO7B,IAAW,EAC3B,IAAIk9D,EAAYL,EAAIv/D,OAAS0C,EACxB1C,GAGHA,EAASuE,OAAOvE,GACZA,EAAS4/D,IACX5/D,EAAS4/D,IAJX5/D,EAAS4/D,EASX,IAAIC,EAASz7D,EAAOpE,OACpB,GAAI6/D,EAAS,IAAM,EAAG,MAAM,IAAI17D,UAAU,sBAEtCnE,EAAS6/D,EAAS,IACpB7/D,EAAS6/D,EAAS,GAEpB,IAAK,IAAIviE,EAAI,EAAGA,EAAI0C,IAAU1C,EAAG,CAC/B,IAAIwiE,EAAS9vD,SAAS5L,EAAO6L,OAAW,EAAJ3S,EAAO,GAAI,IAC/C,GAAImG,MAAMq8D,GAAS,OAAOxiE,EAC1BiiE,EAAI78D,EAASpF,GAAKwiE,EAEpB,OAAOxiE,EAGT,SAASyiE,EAAWR,EAAKn7D,EAAQ1B,EAAQ1C,GACvC,OAAOggE,GAAW3B,EAAYj6D,EAAQm7D,EAAIv/D,OAAS0C,GAAS68D,EAAK78D,EAAQ1C,GAG3E,SAASigE,EAAYV,EAAKn7D,EAAQ1B,EAAQ1C,GACxC,OAAOggE,GAAWE,EAAa97D,GAASm7D,EAAK78D,EAAQ1C,GAGvD,SAASmgE,EAAaZ,EAAKn7D,EAAQ1B,EAAQ1C,GACzC,OAAOigE,EAAWV,EAAKn7D,EAAQ1B,EAAQ1C,GAGzC,SAASogE,EAAab,EAAKn7D,EAAQ1B,EAAQ1C,GACzC,OAAOggE,GAAW1B,EAAcl6D,GAASm7D,EAAK78D,EAAQ1C,GAGxD,SAASqgE,EAAWd,EAAKn7D,EAAQ1B,EAAQ1C,GACvC,OAAOggE,GAAWM,EAAel8D,EAAQm7D,EAAIv/D,OAAS0C,GAAS68D,EAAK78D,EAAQ1C,GAkF9E,SAAS6+D,EAAaU,EAAKt+D,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQq+D,EAAIv/D,OACtBy8D,EAAOj9D,cAAc+/D,GAErB9C,EAAOj9D,cAAc+/D,EAAIr3D,MAAMjH,EAAOC,IAIjD,SAASw9D,EAAWa,EAAKt+D,EAAOC,GAC9BA,EAAMkC,KAAK4jB,IAAIu4C,EAAIv/D,OAAQkB,GAC3B,IAAI+G,EAAM,GAEN3K,EAAI2D,EACR,MAAO3D,EAAI4D,EAAK,CACd,IAQMq/D,EAAYC,EAAWC,EAAYC,EARrCC,EAAYpB,EAAIjiE,GAChBsjE,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIrjE,EAAIujE,GAAoB3/D,EAG1B,OAAQ2/D,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHJ,EAAahB,EAAIjiE,EAAI,GACO,OAAV,IAAbijE,KACHG,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,EACzCG,EAAgB,MAClBE,EAAYF,IAGhB,MACF,KAAK,EACHH,EAAahB,EAAIjiE,EAAI,GACrBkjE,EAAYjB,EAAIjiE,EAAI,GACQ,OAAV,IAAbijE,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,IAGhB,MACF,KAAK,EACHH,EAAahB,EAAIjiE,EAAI,GACrBkjE,EAAYjB,EAAIjiE,EAAI,GACpBmjE,EAAalB,EAAIjiE,EAAI,GACO,OAAV,IAAbijE,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CE,EAAYF,IAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACb34D,EAAI7G,KAAKw/D,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvB34D,EAAI7G,KAAKw/D,GACTtjE,GAAKujE,EAGP,OAAOC,EAAsB74D,GA98B/B7K,EAAQuuC,OAASA,EACjBvuC,EAAQ8gE,WAAaA,EACrB9gE,EAAQ2jE,kBAAoB,GA0B5Bp1B,EAAOmxB,yBAAqD7vD,IAA/B+zD,EAAOlE,oBAChCkE,EAAOlE,oBACPH,IAKJv/D,EAAQy/D,WAAaA,IAkErBlxB,EAAOs1B,SAAW,KAGlBt1B,EAAOu1B,SAAW,SAAUvgE,GAE1B,OADAA,EAAI47D,UAAY5wB,EAAOzsC,UAChByB,GA2BTgrC,EAAO2f,KAAO,SAAU/sD,EAAO2+D,EAAkBl9D,GAC/C,OAAOsrD,EAAK,KAAM/sD,EAAO2+D,EAAkBl9D,IAGzC2rC,EAAOmxB,sBACTnxB,EAAOzsC,UAAUq9D,UAAY38D,WAAWV,UACxCysC,EAAO4wB,UAAY38D,WACG,qBAAXvB,QAA0BA,OAAO8iE,SACxCx1B,EAAOttC,OAAO8iE,WAAax1B,GAE7B3tC,OAAOC,eAAe0tC,EAAQttC,OAAO8iE,QAAS,CAC5C5iE,MAAO,KACPkmB,cAAc,KAiCpBknB,EAAO6xB,MAAQ,SAAUn5D,EAAM4E,EAAMkI,GACnC,OAAOqsD,EAAM,KAAMn5D,EAAM4E,EAAMkI,IAiBjCw6B,EAAOwxB,YAAc,SAAU94D,GAC7B,OAAO84D,EAAY,KAAM94D,IAK3BsnC,EAAOy1B,gBAAkB,SAAU/8D,GACjC,OAAO84D,EAAY,KAAM94D,IAiH3BsnC,EAAOoyB,SAAW,SAAmB3zD,GACnC,QAAe,MAALA,IAAaA,EAAEi3D,YAG3B11B,EAAO21B,QAAU,SAAkBj3D,EAAGD,GACpC,IAAKuhC,EAAOoyB,SAAS1zD,KAAOshC,EAAOoyB,SAAS3zD,GAC1C,MAAM,IAAIjG,UAAU,6BAGtB,GAAIkG,IAAMD,EAAG,OAAO,EAKpB,IAHA,IAAIX,EAAIY,EAAErK,OACN0J,EAAIU,EAAEpK,OAED1C,EAAI,EAAGyC,EAAMqD,KAAK4jB,IAAIvd,EAAGC,GAAIpM,EAAIyC,IAAOzC,EAC/C,GAAI+M,EAAE/M,KAAO8M,EAAE9M,GAAI,CACjBmM,EAAIY,EAAE/M,GACNoM,EAAIU,EAAE9M,GACN,MAIJ,OAAImM,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,GAGTkiC,EAAO+xB,WAAa,SAAqBvsD,GACvC,OAAQtN,OAAOsN,GAAUotD,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,IAIb5yB,EAAO74B,OAAS,SAAiBiB,EAAM/T,GACrC,IAAKoT,EAAQW,GACX,MAAM,IAAI5P,UAAU,+CAGtB,GAAoB,IAAhB4P,EAAK/T,OACP,OAAO2rC,EAAO6xB,MAAM,GAGtB,IAAIlgE,EACJ,QAAe2P,IAAXjN,EAEF,IADAA,EAAS,EACJ1C,EAAI,EAAGA,EAAIyW,EAAK/T,SAAU1C,EAC7B0C,GAAU+T,EAAKzW,GAAG0C,OAItB,IAAIyC,EAASkpC,EAAOwxB,YAAYn9D,GAC5BgS,EAAM,EACV,IAAK1U,EAAI,EAAGA,EAAIyW,EAAK/T,SAAU1C,EAAG,CAChC,IAAIiiE,EAAMxrD,EAAKzW,GACf,IAAKquC,EAAOoyB,SAASwB,GACnB,MAAM,IAAIp7D,UAAU,+CAEtBo7D,EAAIvB,KAAKv7D,EAAQuP,GACjBA,GAAOutD,EAAIv/D,OAEb,OAAOyC,GA8CTkpC,EAAOrsC,WAAaA,EA0EpBqsC,EAAOzsC,UAAUmiE,WAAY,EAQ7B11B,EAAOzsC,UAAUqiE,OAAS,WACxB,IAAIxhE,EAAMmE,KAAKlE,OACf,GAAID,EAAM,IAAM,EACd,MAAM,IAAIk9D,WAAW,6CAEvB,IAAK,IAAI3/D,EAAI,EAAGA,EAAIyC,EAAKzC,GAAK,EAC5ByhE,EAAK76D,KAAM5G,EAAGA,EAAI,GAEpB,OAAO4G,MAGTynC,EAAOzsC,UAAUsiE,OAAS,WACxB,IAAIzhE,EAAMmE,KAAKlE,OACf,GAAID,EAAM,IAAM,EACd,MAAM,IAAIk9D,WAAW,6CAEvB,IAAK,IAAI3/D,EAAI,EAAGA,EAAIyC,EAAKzC,GAAK,EAC5ByhE,EAAK76D,KAAM5G,EAAGA,EAAI,GAClByhE,EAAK76D,KAAM5G,EAAI,EAAGA,EAAI,GAExB,OAAO4G,MAGTynC,EAAOzsC,UAAUuiE,OAAS,WACxB,IAAI1hE,EAAMmE,KAAKlE,OACf,GAAID,EAAM,IAAM,EACd,MAAM,IAAIk9D,WAAW,6CAEvB,IAAK,IAAI3/D,EAAI,EAAGA,EAAIyC,EAAKzC,GAAK,EAC5ByhE,EAAK76D,KAAM5G,EAAGA,EAAI,GAClByhE,EAAK76D,KAAM5G,EAAI,EAAGA,EAAI,GACtByhE,EAAK76D,KAAM5G,EAAI,EAAGA,EAAI,GACtByhE,EAAK76D,KAAM5G,EAAI,EAAGA,EAAI,GAExB,OAAO4G,MAGTynC,EAAOzsC,UAAUqQ,SAAW,WAC1B,IAAIvP,EAAuB,EAAdkE,KAAKlE,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArBgN,UAAUhN,OAAqB0+D,EAAUx6D,KAAM,EAAGlE,GAC/Cw+D,EAAa7yD,MAAMzH,KAAM8I,YAGlC2+B,EAAOzsC,UAAU+oB,OAAS,SAAiB7d,GACzC,IAAKuhC,EAAOoyB,SAAS3zD,GAAI,MAAM,IAAIjG,UAAU,6BAC7C,OAAID,OAASkG,GACsB,IAA5BuhC,EAAO21B,QAAQp9D,KAAMkG,IAG9BuhC,EAAOzsC,UAAUwiE,QAAU,WACzB,IAAIrvD,EAAM,GACN4U,EAAM7pB,EAAQ2jE,kBAKlB,OAJI78D,KAAKlE,OAAS,IAChBqS,EAAMnO,KAAKqL,SAAS,MAAO,EAAG0X,GAAK0d,MAAM,SAAStjC,KAAK,KACnD6C,KAAKlE,OAASinB,IAAK5U,GAAO,UAEzB,WAAaA,EAAM,KAG5Bs5B,EAAOzsC,UAAUoiE,QAAU,SAAkBK,EAAQ1gE,EAAOC,EAAK0gE,EAAWC,GAC1E,IAAKl2B,EAAOoyB,SAAS4D,GACnB,MAAM,IAAIx9D,UAAU,6BAgBtB,QAbc8I,IAAVhM,IACFA,EAAQ,QAEEgM,IAAR/L,IACFA,EAAMygE,EAASA,EAAO3hE,OAAS,QAEfiN,IAAd20D,IACFA,EAAY,QAEE30D,IAAZ40D,IACFA,EAAU39D,KAAKlE,QAGbiB,EAAQ,GAAKC,EAAMygE,EAAO3hE,QAAU4hE,EAAY,GAAKC,EAAU39D,KAAKlE,OACtE,MAAM,IAAIi9D,WAAW,sBAGvB,GAAI2E,GAAaC,GAAW5gE,GAASC,EACnC,OAAO,EAET,GAAI0gE,GAAaC,EACf,OAAQ,EAEV,GAAI5gE,GAASC,EACX,OAAO,EAQT,GALAD,KAAW,EACXC,KAAS,EACT0gE,KAAe,EACfC,KAAa,EAET39D,OAASy9D,EAAQ,OAAO,EAS5B,IAPA,IAAIl4D,EAAIo4D,EAAUD,EACdl4D,EAAIxI,EAAMD,EACVlB,EAAMqD,KAAK4jB,IAAIvd,EAAGC,GAElBo4D,EAAW59D,KAAKgE,MAAM05D,EAAWC,GACjCE,EAAaJ,EAAOz5D,MAAMjH,EAAOC,GAE5B5D,EAAI,EAAGA,EAAIyC,IAAOzC,EACzB,GAAIwkE,EAASxkE,KAAOykE,EAAWzkE,GAAI,CACjCmM,EAAIq4D,EAASxkE,GACboM,EAAIq4D,EAAWzkE,GACf,MAIJ,OAAImM,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,GA6HTkiC,EAAOzsC,UAAU8iE,SAAW,SAAmBh7D,EAAK82D,EAAY3sD,GAC9D,OAAoD,IAA7CjN,KAAK5D,QAAQ0G,EAAK82D,EAAY3sD,IAGvCw6B,EAAOzsC,UAAUoB,QAAU,SAAkB0G,EAAK82D,EAAY3sD,GAC5D,OAAO6tD,EAAqB96D,KAAM8C,EAAK82D,EAAY3sD,GAAU,IAG/Dw6B,EAAOzsC,UAAUigE,YAAc,SAAsBn4D,EAAK82D,EAAY3sD,GACpE,OAAO6tD,EAAqB96D,KAAM8C,EAAK82D,EAAY3sD,GAAU,IAkD/Dw6B,EAAOzsC,UAAUoE,MAAQ,SAAgBc,EAAQ1B,EAAQ1C,EAAQmR,GAE/D,QAAelE,IAAXvK,EACFyO,EAAW,OACXnR,EAASkE,KAAKlE,OACd0C,EAAS,OAEJ,QAAeuK,IAAXjN,GAA0C,kBAAX0C,EACxCyO,EAAWzO,EACX1C,EAASkE,KAAKlE,OACd0C,EAAS,MAEJ,KAAIykB,SAASzkB,GAWlB,MAAM,IAAItC,MACR,2EAXFsC,GAAkB,EACdykB,SAASnnB,IACXA,GAAkB,OACDiN,IAAbkE,IAAwBA,EAAW,UAEvCA,EAAWnR,EACXA,OAASiN,GASb,IAAI2yD,EAAY17D,KAAKlE,OAAS0C,EAG9B,SAFeuK,IAAXjN,GAAwBA,EAAS4/D,KAAW5/D,EAAS4/D,GAEpDx7D,EAAOpE,OAAS,IAAMA,EAAS,GAAK0C,EAAS,IAAOA,EAASwB,KAAKlE,OACrE,MAAM,IAAIi9D,WAAW,0CAGlB9rD,IAAUA,EAAW,QAG1B,IADA,IAAIitD,GAAc,IAEhB,OAAQjtD,GACN,IAAK,MACH,OAAOwuD,EAASz7D,KAAME,EAAQ1B,EAAQ1C,GAExC,IAAK,OACL,IAAK,QACH,OAAO+/D,EAAU77D,KAAME,EAAQ1B,EAAQ1C,GAEzC,IAAK,QACH,OAAOigE,EAAW/7D,KAAME,EAAQ1B,EAAQ1C,GAE1C,IAAK,SACL,IAAK,SACH,OAAOmgE,EAAYj8D,KAAME,EAAQ1B,EAAQ1C,GAE3C,IAAK,SAEH,OAAOogE,EAAYl8D,KAAME,EAAQ1B,EAAQ1C,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOqgE,EAAUn8D,KAAME,EAAQ1B,EAAQ1C,GAEzC,QACE,GAAIo+D,EAAa,MAAM,IAAIj6D,UAAU,qBAAuBgN,GAC5DA,GAAY,GAAKA,GAAUotD,cAC3BH,GAAc,IAKtBzyB,EAAOzsC,UAAU+iE,OAAS,WACxB,MAAO,CACLj3D,KAAM,SACNhJ,KAAMnC,MAAMX,UAAUgJ,MAAMzK,KAAKyG,KAAKg+D,MAAQh+D,KAAM,KAwFxD,IAAIi+D,EAAuB,KAE3B,SAASrB,EAAuBxwD,GAC9B,IAAIvQ,EAAMuQ,EAAWtQ,OACrB,GAAID,GAAOoiE,EACT,OAAOt+D,OAAO6M,aAAa/E,MAAM9H,OAAQyM,GAI3C,IAAIrI,EAAM,GACN3K,EAAI,EACR,MAAOA,EAAIyC,EACTkI,GAAOpE,OAAO6M,aAAa/E,MACzB9H,OACAyM,EAAWpI,MAAM5K,EAAGA,GAAK6kE,IAG7B,OAAOl6D,EAGT,SAAS02D,EAAYY,EAAKt+D,EAAOC,GAC/B,IAAIkhE,EAAM,GACVlhE,EAAMkC,KAAK4jB,IAAIu4C,EAAIv/D,OAAQkB,GAE3B,IAAK,IAAI5D,EAAI2D,EAAO3D,EAAI4D,IAAO5D,EAC7B8kE,GAAOv+D,OAAO6M,aAAsB,IAAT6uD,EAAIjiE,IAEjC,OAAO8kE,EAGT,SAASxD,EAAaW,EAAKt+D,EAAOC,GAChC,IAAIkhE,EAAM,GACVlhE,EAAMkC,KAAK4jB,IAAIu4C,EAAIv/D,OAAQkB,GAE3B,IAAK,IAAI5D,EAAI2D,EAAO3D,EAAI4D,IAAO5D,EAC7B8kE,GAAOv+D,OAAO6M,aAAa6uD,EAAIjiE,IAEjC,OAAO8kE,EAGT,SAAS3D,EAAUc,EAAKt+D,EAAOC,GAC7B,IAAInB,EAAMw/D,EAAIv/D,SAETiB,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMnB,KAAKmB,EAAMnB,GAGxC,IADA,IAAI8P,EAAM,GACDvS,EAAI2D,EAAO3D,EAAI4D,IAAO5D,EAC7BuS,GAAOwyD,EAAM9C,EAAIjiE,IAEnB,OAAOuS,EAGT,SAASivD,EAAcS,EAAKt+D,EAAOC,GAGjC,IAFA,IAAIuV,EAAQ8oD,EAAIr3D,MAAMjH,EAAOC,GACzB+G,EAAM,GACD3K,EAAI,EAAGA,EAAImZ,EAAMzW,OAAQ1C,GAAK,EACrC2K,GAAOpE,OAAO6M,aAAa+F,EAAMnZ,GAAoB,IAAfmZ,EAAMnZ,EAAI,IAElD,OAAO2K,EA0CT,SAASq6D,EAAa5/D,EAAQ6/D,EAAKviE,GACjC,GAAK0C,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAIu6D,WAAW,sBAC3D,GAAIv6D,EAAS6/D,EAAMviE,EAAQ,MAAM,IAAIi9D,WAAW,yCA+JlD,SAASuF,EAAUjD,EAAKhhE,EAAOmE,EAAQ6/D,EAAKt7C,EAAKD,GAC/C,IAAK2kB,EAAOoyB,SAASwB,GAAM,MAAM,IAAIp7D,UAAU,+CAC/C,GAAI5F,EAAQ0oB,GAAO1oB,EAAQyoB,EAAK,MAAM,IAAIi2C,WAAW,qCACrD,GAAIv6D,EAAS6/D,EAAMhD,EAAIv/D,OAAQ,MAAM,IAAIi9D,WAAW,sBAkDtD,SAASwF,EAAmBlD,EAAKhhE,EAAOmE,EAAQggE,GAC1CnkE,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIjB,EAAI,EAAGkT,EAAIpN,KAAK4jB,IAAIu4C,EAAIv/D,OAAS0C,EAAQ,GAAIpF,EAAIkT,IAAKlT,EAC7DiiE,EAAI78D,EAASpF,IAAMiB,EAAS,KAAS,GAAKmkE,EAAeplE,EAAI,EAAIA,MAClC,GAA5BolE,EAAeplE,EAAI,EAAIA,GA8B9B,SAASqlE,EAAmBpD,EAAKhhE,EAAOmE,EAAQggE,GAC1CnkE,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIjB,EAAI,EAAGkT,EAAIpN,KAAK4jB,IAAIu4C,EAAIv/D,OAAS0C,EAAQ,GAAIpF,EAAIkT,IAAKlT,EAC7DiiE,EAAI78D,EAASpF,GAAMiB,IAAuC,GAA5BmkE,EAAeplE,EAAI,EAAIA,GAAU,IAmJnE,SAASslE,EAAcrD,EAAKhhE,EAAOmE,EAAQ6/D,EAAKt7C,EAAKD,GACnD,GAAItkB,EAAS6/D,EAAMhD,EAAIv/D,OAAQ,MAAM,IAAIi9D,WAAW,sBACpD,GAAIv6D,EAAS,EAAG,MAAM,IAAIu6D,WAAW,sBAGvC,SAAS4F,EAAYtD,EAAKhhE,EAAOmE,EAAQggE,EAAcI,GAKrD,OAJKA,GACHF,EAAarD,EAAKhhE,EAAOmE,EAAQ,EAAG,sBAAyB,sBAE/Dg6D,EAAQp5D,MAAMi8D,EAAKhhE,EAAOmE,EAAQggE,EAAc,GAAI,GAC7ChgE,EAAS,EAWlB,SAASqgE,EAAaxD,EAAKhhE,EAAOmE,EAAQggE,EAAcI,GAKtD,OAJKA,GACHF,EAAarD,EAAKhhE,EAAOmE,EAAQ,EAAG,uBAA0B,uBAEhEg6D,EAAQp5D,MAAMi8D,EAAKhhE,EAAOmE,EAAQggE,EAAc,GAAI,GAC7ChgE,EAAS,EA/clBipC,EAAOzsC,UAAUgJ,MAAQ,SAAgBjH,EAAOC,GAC9C,IAoBI8hE,EApBAjjE,EAAMmE,KAAKlE,OAqBf,GApBAiB,IAAUA,EACVC,OAAc+L,IAAR/L,EAAoBnB,IAAQmB,EAE9BD,EAAQ,GACVA,GAASlB,EACLkB,EAAQ,IAAGA,EAAQ,IACdA,EAAQlB,IACjBkB,EAAQlB,GAGNmB,EAAM,GACRA,GAAOnB,EACHmB,EAAM,IAAGA,EAAM,IACVA,EAAMnB,IACfmB,EAAMnB,GAGJmB,EAAMD,IAAOC,EAAMD,GAGnB0qC,EAAOmxB,oBACTkG,EAAS9+D,KAAKiE,SAASlH,EAAOC,GAC9B8hE,EAAOzG,UAAY5wB,EAAOzsC,cACrB,CACL,IAAI+jE,EAAW/hE,EAAMD,EACrB+hE,EAAS,IAAIr3B,EAAOs3B,OAAUh2D,GAC9B,IAAK,IAAI3P,EAAI,EAAGA,EAAI2lE,IAAY3lE,EAC9B0lE,EAAO1lE,GAAK4G,KAAK5G,EAAI2D,GAIzB,OAAO+hE,GAWTr3B,EAAOzsC,UAAUgkE,WAAa,SAAqBxgE,EAAQpD,EAAYwjE,GACrEpgE,GAAkB,EAClBpD,GAA0B,EACrBwjE,GAAUR,EAAY5/D,EAAQpD,EAAY4E,KAAKlE,QAEpD,IAAIgH,EAAM9C,KAAKxB,GACXygE,EAAM,EACN7lE,EAAI,EACR,QAASA,EAAIgC,IAAe6jE,GAAO,KACjCn8D,GAAO9C,KAAKxB,EAASpF,GAAK6lE,EAG5B,OAAOn8D,GAGT2kC,EAAOzsC,UAAUkkE,WAAa,SAAqB1gE,EAAQpD,EAAYwjE,GACrEpgE,GAAkB,EAClBpD,GAA0B,EACrBwjE,GACHR,EAAY5/D,EAAQpD,EAAY4E,KAAKlE,QAGvC,IAAIgH,EAAM9C,KAAKxB,IAAWpD,GACtB6jE,EAAM,EACV,MAAO7jE,EAAa,IAAM6jE,GAAO,KAC/Bn8D,GAAO9C,KAAKxB,IAAWpD,GAAc6jE,EAGvC,OAAOn8D,GAGT2kC,EAAOzsC,UAAUmkE,UAAY,SAAoB3gE,EAAQogE,GAEvD,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACpCkE,KAAKxB,IAGdipC,EAAOzsC,UAAUokE,aAAe,SAAuB5gE,EAAQogE,GAE7D,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACpCkE,KAAKxB,GAAWwB,KAAKxB,EAAS,IAAM,GAG7CipC,EAAOzsC,UAAUsgE,aAAe,SAAuB98D,EAAQogE,GAE7D,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACnCkE,KAAKxB,IAAW,EAAKwB,KAAKxB,EAAS,IAG7CipC,EAAOzsC,UAAUqkE,aAAe,SAAuB7gE,EAAQogE,GAG7D,OAFKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,SAElCkE,KAAKxB,GACTwB,KAAKxB,EAAS,IAAM,EACpBwB,KAAKxB,EAAS,IAAM,IACD,SAAnBwB,KAAKxB,EAAS,IAGrBipC,EAAOzsC,UAAUskE,aAAe,SAAuB9gE,EAAQogE,GAG7D,OAFKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QAEpB,SAAfkE,KAAKxB,IACTwB,KAAKxB,EAAS,IAAM,GACrBwB,KAAKxB,EAAS,IAAM,EACrBwB,KAAKxB,EAAS,KAGlBipC,EAAOzsC,UAAUukE,UAAY,SAAoB/gE,EAAQpD,EAAYwjE,GACnEpgE,GAAkB,EAClBpD,GAA0B,EACrBwjE,GAAUR,EAAY5/D,EAAQpD,EAAY4E,KAAKlE,QAEpD,IAAIgH,EAAM9C,KAAKxB,GACXygE,EAAM,EACN7lE,EAAI,EACR,QAASA,EAAIgC,IAAe6jE,GAAO,KACjCn8D,GAAO9C,KAAKxB,EAASpF,GAAK6lE,EAM5B,OAJAA,GAAO,IAEHn8D,GAAOm8D,IAAKn8D,GAAO5D,KAAKC,IAAI,EAAG,EAAI/D,IAEhC0H,GAGT2kC,EAAOzsC,UAAUwkE,UAAY,SAAoBhhE,EAAQpD,EAAYwjE,GACnEpgE,GAAkB,EAClBpD,GAA0B,EACrBwjE,GAAUR,EAAY5/D,EAAQpD,EAAY4E,KAAKlE,QAEpD,IAAI1C,EAAIgC,EACJ6jE,EAAM,EACNn8D,EAAM9C,KAAKxB,IAAWpF,GAC1B,MAAOA,EAAI,IAAM6lE,GAAO,KACtBn8D,GAAO9C,KAAKxB,IAAWpF,GAAK6lE,EAM9B,OAJAA,GAAO,IAEHn8D,GAAOm8D,IAAKn8D,GAAO5D,KAAKC,IAAI,EAAG,EAAI/D,IAEhC0H,GAGT2kC,EAAOzsC,UAAUykE,SAAW,SAAmBjhE,EAAQogE,GAErD,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACtB,IAAfkE,KAAKxB,IAC0B,GAA5B,IAAOwB,KAAKxB,GAAU,GADKwB,KAAKxB,IAI3CipC,EAAOzsC,UAAU0kE,YAAc,SAAsBlhE,EAAQogE,GACtDA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QAC3C,IAAIgH,EAAM9C,KAAKxB,GAAWwB,KAAKxB,EAAS,IAAM,EAC9C,OAAc,MAANsE,EAAsB,WAANA,EAAmBA,GAG7C2kC,EAAOzsC,UAAU2kE,YAAc,SAAsBnhE,EAAQogE,GACtDA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QAC3C,IAAIgH,EAAM9C,KAAKxB,EAAS,GAAMwB,KAAKxB,IAAW,EAC9C,OAAc,MAANsE,EAAsB,WAANA,EAAmBA,GAG7C2kC,EAAOzsC,UAAU4kE,YAAc,SAAsBphE,EAAQogE,GAG3D,OAFKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QAEnCkE,KAAKxB,GACVwB,KAAKxB,EAAS,IAAM,EACpBwB,KAAKxB,EAAS,IAAM,GACpBwB,KAAKxB,EAAS,IAAM,IAGzBipC,EAAOzsC,UAAU6kE,YAAc,SAAsBrhE,EAAQogE,GAG3D,OAFKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QAEnCkE,KAAKxB,IAAW,GACrBwB,KAAKxB,EAAS,IAAM,GACpBwB,KAAKxB,EAAS,IAAM,EACpBwB,KAAKxB,EAAS,IAGnBipC,EAAOzsC,UAAU8kE,YAAc,SAAsBthE,EAAQogE,GAE3D,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACpC08D,EAAQl6D,KAAK0B,KAAMxB,GAAQ,EAAM,GAAI,IAG9CipC,EAAOzsC,UAAU+kE,YAAc,SAAsBvhE,EAAQogE,GAE3D,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACpC08D,EAAQl6D,KAAK0B,KAAMxB,GAAQ,EAAO,GAAI,IAG/CipC,EAAOzsC,UAAUglE,aAAe,SAAuBxhE,EAAQogE,GAE7D,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACpC08D,EAAQl6D,KAAK0B,KAAMxB,GAAQ,EAAM,GAAI,IAG9CipC,EAAOzsC,UAAUilE,aAAe,SAAuBzhE,EAAQogE,GAE7D,OADKA,GAAUR,EAAY5/D,EAAQ,EAAGwB,KAAKlE,QACpC08D,EAAQl6D,KAAK0B,KAAMxB,GAAQ,EAAO,GAAI,IAS/CipC,EAAOzsC,UAAUklE,YAAc,SAAsB7lE,EAAOmE,EAAQpD,EAAYwjE,GAI9E,GAHAvkE,GAASA,EACTmE,GAAkB,EAClBpD,GAA0B,GACrBwjE,EAAU,CACb,IAAIuB,EAAWjhE,KAAKC,IAAI,EAAG,EAAI/D,GAAc,EAC7CkjE,EAASt+D,KAAM3F,EAAOmE,EAAQpD,EAAY+kE,EAAU,GAGtD,IAAIlB,EAAM,EACN7lE,EAAI,EACR4G,KAAKxB,GAAkB,IAARnE,EACf,QAASjB,EAAIgC,IAAe6jE,GAAO,KACjCj/D,KAAKxB,EAASpF,GAAMiB,EAAQ4kE,EAAO,IAGrC,OAAOzgE,EAASpD,GAGlBqsC,EAAOzsC,UAAUolE,YAAc,SAAsB/lE,EAAOmE,EAAQpD,EAAYwjE,GAI9E,GAHAvkE,GAASA,EACTmE,GAAkB,EAClBpD,GAA0B,GACrBwjE,EAAU,CACb,IAAIuB,EAAWjhE,KAAKC,IAAI,EAAG,EAAI/D,GAAc,EAC7CkjE,EAASt+D,KAAM3F,EAAOmE,EAAQpD,EAAY+kE,EAAU,GAGtD,IAAI/mE,EAAIgC,EAAa,EACjB6jE,EAAM,EACVj/D,KAAKxB,EAASpF,GAAa,IAARiB,EACnB,QAASjB,GAAK,IAAM6lE,GAAO,KACzBj/D,KAAKxB,EAASpF,GAAMiB,EAAQ4kE,EAAO,IAGrC,OAAOzgE,EAASpD,GAGlBqsC,EAAOzsC,UAAUqlE,WAAa,SAAqBhmE,EAAOmE,EAAQogE,GAMhE,OALAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,IAAM,GACjDipC,EAAOmxB,sBAAqBv+D,EAAQ6E,KAAKM,MAAMnF,IACpD2F,KAAKxB,GAAmB,IAARnE,EACTmE,EAAS,GAWlBipC,EAAOzsC,UAAUslE,cAAgB,SAAwBjmE,EAAOmE,EAAQogE,GAUtE,OATAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,MAAQ,GACpDipC,EAAOmxB,qBACT54D,KAAKxB,GAAmB,IAARnE,EAChB2F,KAAKxB,EAAS,GAAMnE,IAAU,GAE9BkkE,EAAkBv+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAGlBipC,EAAOzsC,UAAUulE,cAAgB,SAAwBlmE,EAAOmE,EAAQogE,GAUtE,OATAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,MAAQ,GACpDipC,EAAOmxB,qBACT54D,KAAKxB,GAAWnE,IAAU,EAC1B2F,KAAKxB,EAAS,GAAc,IAARnE,GAEpBkkE,EAAkBv+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAUlBipC,EAAOzsC,UAAUwlE,cAAgB,SAAwBnmE,EAAOmE,EAAQogE,GAYtE,OAXAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,WAAY,GACxDipC,EAAOmxB,qBACT54D,KAAKxB,EAAS,GAAMnE,IAAU,GAC9B2F,KAAKxB,EAAS,GAAMnE,IAAU,GAC9B2F,KAAKxB,EAAS,GAAMnE,IAAU,EAC9B2F,KAAKxB,GAAmB,IAARnE,GAEhBokE,EAAkBz+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAGlBipC,EAAOzsC,UAAUylE,cAAgB,SAAwBpmE,EAAOmE,EAAQogE,GAYtE,OAXAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,WAAY,GACxDipC,EAAOmxB,qBACT54D,KAAKxB,GAAWnE,IAAU,GAC1B2F,KAAKxB,EAAS,GAAMnE,IAAU,GAC9B2F,KAAKxB,EAAS,GAAMnE,IAAU,EAC9B2F,KAAKxB,EAAS,GAAc,IAARnE,GAEpBokE,EAAkBz+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAGlBipC,EAAOzsC,UAAU0lE,WAAa,SAAqBrmE,EAAOmE,EAAQpD,EAAYwjE,GAG5E,GAFAvkE,GAASA,EACTmE,GAAkB,GACbogE,EAAU,CACb,IAAInkC,EAAQv7B,KAAKC,IAAI,EAAG,EAAI/D,EAAa,GAEzCkjE,EAASt+D,KAAM3F,EAAOmE,EAAQpD,EAAYq/B,EAAQ,GAAIA,GAGxD,IAAIrhC,EAAI,EACJ6lE,EAAM,EACNvxB,EAAM,EACV1tC,KAAKxB,GAAkB,IAARnE,EACf,QAASjB,EAAIgC,IAAe6jE,GAAO,KAC7B5kE,EAAQ,GAAa,IAARqzC,GAAsC,IAAzB1tC,KAAKxB,EAASpF,EAAI,KAC9Cs0C,EAAM,GAER1tC,KAAKxB,EAASpF,IAAOiB,EAAQ4kE,GAAQ,GAAKvxB,EAAM,IAGlD,OAAOlvC,EAASpD,GAGlBqsC,EAAOzsC,UAAU2lE,WAAa,SAAqBtmE,EAAOmE,EAAQpD,EAAYwjE,GAG5E,GAFAvkE,GAASA,EACTmE,GAAkB,GACbogE,EAAU,CACb,IAAInkC,EAAQv7B,KAAKC,IAAI,EAAG,EAAI/D,EAAa,GAEzCkjE,EAASt+D,KAAM3F,EAAOmE,EAAQpD,EAAYq/B,EAAQ,GAAIA,GAGxD,IAAIrhC,EAAIgC,EAAa,EACjB6jE,EAAM,EACNvxB,EAAM,EACV1tC,KAAKxB,EAASpF,GAAa,IAARiB,EACnB,QAASjB,GAAK,IAAM6lE,GAAO,KACrB5kE,EAAQ,GAAa,IAARqzC,GAAsC,IAAzB1tC,KAAKxB,EAASpF,EAAI,KAC9Cs0C,EAAM,GAER1tC,KAAKxB,EAASpF,IAAOiB,EAAQ4kE,GAAQ,GAAKvxB,EAAM,IAGlD,OAAOlvC,EAASpD,GAGlBqsC,EAAOzsC,UAAU4lE,UAAY,SAAoBvmE,EAAOmE,EAAQogE,GAO9D,OANAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,KAAO,KAClDipC,EAAOmxB,sBAAqBv+D,EAAQ6E,KAAKM,MAAMnF,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC2F,KAAKxB,GAAmB,IAARnE,EACTmE,EAAS,GAGlBipC,EAAOzsC,UAAU6lE,aAAe,SAAuBxmE,EAAOmE,EAAQogE,GAUpE,OATAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,OAAS,OACrDipC,EAAOmxB,qBACT54D,KAAKxB,GAAmB,IAARnE,EAChB2F,KAAKxB,EAAS,GAAMnE,IAAU,GAE9BkkE,EAAkBv+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAGlBipC,EAAOzsC,UAAU8lE,aAAe,SAAuBzmE,EAAOmE,EAAQogE,GAUpE,OATAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,OAAS,OACrDipC,EAAOmxB,qBACT54D,KAAKxB,GAAWnE,IAAU,EAC1B2F,KAAKxB,EAAS,GAAc,IAARnE,GAEpBkkE,EAAkBv+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAGlBipC,EAAOzsC,UAAU+lE,aAAe,SAAuB1mE,EAAOmE,EAAQogE,GAYpE,OAXAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,YAAa,YACzDipC,EAAOmxB,qBACT54D,KAAKxB,GAAmB,IAARnE,EAChB2F,KAAKxB,EAAS,GAAMnE,IAAU,EAC9B2F,KAAKxB,EAAS,GAAMnE,IAAU,GAC9B2F,KAAKxB,EAAS,GAAMnE,IAAU,IAE9BokE,EAAkBz+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAGlBipC,EAAOzsC,UAAUgmE,aAAe,SAAuB3mE,EAAOmE,EAAQogE,GAapE,OAZAvkE,GAASA,EACTmE,GAAkB,EACbogE,GAAUN,EAASt+D,KAAM3F,EAAOmE,EAAQ,EAAG,YAAa,YACzDnE,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxCotC,EAAOmxB,qBACT54D,KAAKxB,GAAWnE,IAAU,GAC1B2F,KAAKxB,EAAS,GAAMnE,IAAU,GAC9B2F,KAAKxB,EAAS,GAAMnE,IAAU,EAC9B2F,KAAKxB,EAAS,GAAc,IAARnE,GAEpBokE,EAAkBz+D,KAAM3F,EAAOmE,GAAQ,GAElCA,EAAS,GAgBlBipC,EAAOzsC,UAAUimE,aAAe,SAAuB5mE,EAAOmE,EAAQogE,GACpE,OAAOD,EAAW3+D,KAAM3F,EAAOmE,GAAQ,EAAMogE,IAG/Cn3B,EAAOzsC,UAAUkmE,aAAe,SAAuB7mE,EAAOmE,EAAQogE,GACpE,OAAOD,EAAW3+D,KAAM3F,EAAOmE,GAAQ,EAAOogE,IAWhDn3B,EAAOzsC,UAAUmmE,cAAgB,SAAwB9mE,EAAOmE,EAAQogE,GACtE,OAAOC,EAAY7+D,KAAM3F,EAAOmE,GAAQ,EAAMogE,IAGhDn3B,EAAOzsC,UAAUomE,cAAgB,SAAwB/mE,EAAOmE,EAAQogE,GACtE,OAAOC,EAAY7+D,KAAM3F,EAAOmE,GAAQ,EAAOogE,IAIjDn3B,EAAOzsC,UAAU8+D,KAAO,SAAe2D,EAAQ4D,EAAatkE,EAAOC,GAQjE,GAPKD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAMgD,KAAKlE,QAC9BulE,GAAe5D,EAAO3hE,SAAQulE,EAAc5D,EAAO3hE,QAClDulE,IAAaA,EAAc,GAC5BrkE,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB0gE,EAAO3hE,QAAgC,IAAhBkE,KAAKlE,OAAc,OAAO,EAGrD,GAAIulE,EAAc,EAChB,MAAM,IAAItI,WAAW,6BAEvB,GAAIh8D,EAAQ,GAAKA,GAASiD,KAAKlE,OAAQ,MAAM,IAAIi9D,WAAW,6BAC5D,GAAI/7D,EAAM,EAAG,MAAM,IAAI+7D,WAAW,2BAG9B/7D,EAAMgD,KAAKlE,SAAQkB,EAAMgD,KAAKlE,QAC9B2hE,EAAO3hE,OAASulE,EAAcrkE,EAAMD,IACtCC,EAAMygE,EAAO3hE,OAASulE,EAActkE,GAGtC,IACI3D,EADAyC,EAAMmB,EAAMD,EAGhB,GAAIiD,OAASy9D,GAAU1gE,EAAQskE,GAAeA,EAAcrkE,EAE1D,IAAK5D,EAAIyC,EAAM,EAAGzC,GAAK,IAAKA,EAC1BqkE,EAAOrkE,EAAIioE,GAAerhE,KAAK5G,EAAI2D,QAEhC,GAAIlB,EAAM,MAAS4rC,EAAOmxB,oBAE/B,IAAKx/D,EAAI,EAAGA,EAAIyC,IAAOzC,EACrBqkE,EAAOrkE,EAAIioE,GAAerhE,KAAK5G,EAAI2D,QAGrCrB,WAAWV,UAAU0S,IAAInU,KACvBkkE,EACAz9D,KAAKiE,SAASlH,EAAOA,EAAQlB,GAC7BwlE,GAIJ,OAAOxlE,GAOT4rC,EAAOzsC,UAAU+J,KAAO,SAAejC,EAAK/F,EAAOC,EAAKiQ,GAEtD,GAAmB,kBAARnK,EAAkB,CAS3B,GARqB,kBAAV/F,GACTkQ,EAAWlQ,EACXA,EAAQ,EACRC,EAAMgD,KAAKlE,QACa,kBAARkB,IAChBiQ,EAAWjQ,EACXA,EAAMgD,KAAKlE,QAEM,IAAfgH,EAAIhH,OAAc,CACpB,IAAIF,EAAOkH,EAAI/G,WAAW,GACtBH,EAAO,MACTkH,EAAMlH,GAGV,QAAiBmN,IAAbkE,GAA8C,kBAAbA,EACnC,MAAM,IAAIhN,UAAU,6BAEtB,GAAwB,kBAAbgN,IAA0Bw6B,EAAO+xB,WAAWvsD,GACrD,MAAM,IAAIhN,UAAU,qBAAuBgN,OAErB,kBAARnK,IAChBA,GAAY,KAId,GAAI/F,EAAQ,GAAKiD,KAAKlE,OAASiB,GAASiD,KAAKlE,OAASkB,EACpD,MAAM,IAAI+7D,WAAW,sBAGvB,GAAI/7D,GAAOD,EACT,OAAOiD,KAQT,IAAI5G,EACJ,GANA2D,KAAkB,EAClBC,OAAc+L,IAAR/L,EAAoBgD,KAAKlE,OAASkB,IAAQ,EAE3C8F,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAK1J,EAAI2D,EAAO3D,EAAI4D,IAAO5D,EACzB4G,KAAK5G,GAAK0J,MAEP,CACL,IAAIyP,EAAQk1B,EAAOoyB,SAAS/2D,GACxBA,EACAq3D,EAAY,IAAI1yB,EAAO3kC,EAAKmK,GAAU5B,YACtCxP,EAAM0W,EAAMzW,OAChB,IAAK1C,EAAI,EAAGA,EAAI4D,EAAMD,IAAS3D,EAC7B4G,KAAK5G,EAAI2D,GAASwV,EAAMnZ,EAAIyC,GAIhC,OAAOmE,MAMT,IAAIshE,EAAoB,qBAExB,SAASC,EAAapzD,GAIpB,GAFAA,EAAMqzD,EAAWrzD,GAAKk3B,QAAQi8B,EAAmB,IAE7CnzD,EAAIrS,OAAS,EAAG,MAAO,GAE3B,MAAOqS,EAAIrS,OAAS,IAAM,EACxBqS,GAAY,IAEd,OAAOA,EAGT,SAASqzD,EAAYrzD,GACnB,OAAIA,EAAIuiD,KAAaviD,EAAIuiD,OAClBviD,EAAIk3B,QAAQ,aAAc,IAGnC,SAAS84B,EAAOtjE,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAEwQ,SAAS,IAC7BxQ,EAAEwQ,SAAS,IAGpB,SAAS8uD,EAAaj6D,EAAQuhE,GAE5B,IAAI/E,EADJ+E,EAAQA,GAASxiE,IAMjB,IAJA,IAAInD,EAASoE,EAAOpE,OAChB4lE,EAAgB,KAChBnvD,EAAQ,GAEHnZ,EAAI,EAAGA,EAAI0C,IAAU1C,EAAG,CAI/B,GAHAsjE,EAAYx8D,EAAOnE,WAAW3C,GAG1BsjE,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAKgF,EAAe,CAElB,GAAIhF,EAAY,MAAQ,EAEjB+E,GAAS,IAAM,GAAGlvD,EAAMrV,KAAK,IAAM,IAAM,KAC9C,SACK,GAAI9D,EAAI,IAAM0C,EAAQ,EAEtB2lE,GAAS,IAAM,GAAGlvD,EAAMrV,KAAK,IAAM,IAAM,KAC9C,SAIFwkE,EAAgBhF,EAEhB,SAIF,GAAIA,EAAY,MAAQ,EACjB+E,GAAS,IAAM,GAAGlvD,EAAMrV,KAAK,IAAM,IAAM,KAC9CwkE,EAAgBhF,EAChB,SAIFA,EAAkE,OAArDgF,EAAgB,OAAU,GAAKhF,EAAY,YAC/CgF,IAEJD,GAAS,IAAM,GAAGlvD,EAAMrV,KAAK,IAAM,IAAM,KAMhD,GAHAwkE,EAAgB,KAGZhF,EAAY,IAAM,CACpB,IAAK+E,GAAS,GAAK,EAAG,MACtBlvD,EAAMrV,KAAKw/D,QACN,GAAIA,EAAY,KAAO,CAC5B,IAAK+E,GAAS,GAAK,EAAG,MACtBlvD,EAAMrV,KACJw/D,GAAa,EAAM,IACP,GAAZA,EAAmB,UAEhB,GAAIA,EAAY,MAAS,CAC9B,IAAK+E,GAAS,GAAK,EAAG,MACtBlvD,EAAMrV,KACJw/D,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,SAEhB,MAAIA,EAAY,SASrB,MAAM,IAAIxgE,MAAM,sBARhB,IAAKulE,GAAS,GAAK,EAAG,MACtBlvD,EAAMrV,KACJw/D,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,MAOzB,OAAOnqD,EAGT,SAASypD,EAAc7tD,GAErB,IADA,IAAIwzD,EAAY,GACPvoE,EAAI,EAAGA,EAAI+U,EAAIrS,SAAU1C,EAEhCuoE,EAAUzkE,KAAyB,IAApBiR,EAAIpS,WAAW3C,IAEhC,OAAOuoE,EAGT,SAASvF,EAAgBjuD,EAAKszD,GAG5B,IAFA,IAAIhoE,EAAGmoE,EAAIC,EACPF,EAAY,GACPvoE,EAAI,EAAGA,EAAI+U,EAAIrS,SAAU1C,EAAG,CACnC,IAAKqoE,GAAS,GAAK,EAAG,MAEtBhoE,EAAI0U,EAAIpS,WAAW3C,GACnBwoE,EAAKnoE,GAAK,EACVooE,EAAKpoE,EAAI,IACTkoE,EAAUzkE,KAAK2kE,GACfF,EAAUzkE,KAAK0kE,GAGjB,OAAOD,EAGT,SAASvH,EAAejsD,GACtB,OAAOoqD,EAAOl9D,YAAYkmE,EAAYpzD,IAGxC,SAAS2tD,GAAYgG,EAAKC,EAAKvjE,EAAQ1C,GACrC,IAAK,IAAI1C,EAAI,EAAGA,EAAI0C,IAAU1C,EAAG,CAC/B,GAAKA,EAAIoF,GAAUujE,EAAIjmE,QAAY1C,GAAK0oE,EAAIhmE,OAAS,MACrDimE,EAAI3oE,EAAIoF,GAAUsjE,EAAI1oE,GAExB,OAAOA,EAGT,SAAS2gE,GAAOj3D,GACd,OAAOA,IAAQA,K,yCC3vDjB,IAAI+Z,EAGJA,EAAI,WACH,OAAO7c,KADJ,GAIJ,IAEC6c,EAAIA,GAAK,IAAImlD,SAAS,cAAb,GACR,MAAOnkE,GAEc,kBAAXJ,SAAqBof,EAAIpf,QAOrCtE,EAAOD,QAAU2jB,G,mBCnBjB,IAAIxR,EAAW,GAAGA,SAElBlS,EAAOD,QAAUyC,MAAMuT,SAAW,SAAUzS,GAC1C,MAA6B,kBAAtB4O,EAAS9R,KAAKkD","file":"2a3936b6d597c3ad52f0.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"340c\");\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","self.window = {};\nconst opentype = require(\"opentype.js\");\n\nself.onmessage = function (e) {\n const { url, fileName } = e.data;\n opentype.load(url, (error, font) => {\n if (error) {\n self.postMessage({ url, fileName, error: error.message });\n }\n else {\n self.postMessage({ url, fileName, font });\n }\n });\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * https://opentype.js.org v1.3.3 | (c) Frederik De Bleser and other contributors | MIT License | Uses tiny-inflate by Devon Govett and string.prototype.codepointat polyfill by Mathias Bynens\n */\n\n/*! https://mths.be/codepointat v0.2.0 by @mathias */\nif (!String.prototype.codePointAt) {\n\t(function() {\n\t\tvar defineProperty = (function() {\n\t\t\t// IE 8 only supports `Object.defineProperty` on DOM elements\n\t\t\ttry {\n\t\t\t\tvar object = {};\n\t\t\t\tvar $defineProperty = Object.defineProperty;\n\t\t\t\tvar result = $defineProperty(object, object, object) && $defineProperty;\n\t\t\t} catch(error) {}\n\t\t\treturn result;\n\t\t}());\n\t\tvar codePointAt = function(position) {\n\t\t\tif (this == null) {\n\t\t\t\tthrow TypeError();\n\t\t\t}\n\t\t\tvar string = String(this);\n\t\t\tvar size = string.length;\n\t\t\t// `ToInteger`\n\t\t\tvar index = position ? Number(position) : 0;\n\t\t\tif (index != index) { // better `isNaN`\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\t// Account for out-of-bounds indices:\n\t\t\tif (index < 0 || index >= size) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\t// Get the first code unit\n\t\t\tvar first = string.charCodeAt(index);\n\t\t\tvar second;\n\t\t\tif ( // check if it’s the start of a surrogate pair\n\t\t\t\tfirst >= 0xD800 && first <= 0xDBFF && // high surrogate\n\t\t\t\tsize > index + 1 // there is a next code unit\n\t\t\t) {\n\t\t\t\tsecond = string.charCodeAt(index + 1);\n\t\t\t\tif (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate\n\t\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\t\treturn (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn first;\n\t\t};\n\t\tif (defineProperty) {\n\t\t\tdefineProperty(String.prototype, 'codePointAt', {\n\t\t\t\t'value': codePointAt,\n\t\t\t\t'configurable': true,\n\t\t\t\t'writable': true\n\t\t\t});\n\t\t} else {\n\t\t\tString.prototype.codePointAt = codePointAt;\n\t\t}\n\t}());\n}\n\nvar TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) { bits[i] = 0; }\n for (i = 0; i < 30 - delta; ++i) { bits[i + delta] = i / delta | 0; }\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) { lt.table[i] = 0; }\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) { lt.trans[i] = 256 + i; }\n for (i = 0; i < 144; ++i) { lt.trans[24 + i] = i; }\n for (i = 0; i < 8; ++i) { lt.trans[24 + 144 + i] = 280 + i; }\n for (i = 0; i < 112; ++i) { lt.trans[24 + 144 + 8 + i] = 144 + i; }\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) { dt.table[i] = 0; }\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) { dt.trans[i] = i; }\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) { t.table[i] = 0; }\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) { t.table[lengths[off + i]]++; }\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) { t.trans[offs[lengths[off + i]]++] = i; }\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n { return base; }\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) { lengths[i] = 0; }\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n { return TINF_DATA_ERROR; }\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n { d.dest[d.destLen++] = d.source[d.sourceIndex++]; }\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n { throw new Error('Data error'); }\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n { return d.dest.slice(0, d.destLen); }\n else\n { return d.dest.subarray(0, d.destLen); }\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nvar tinyInflate = tinf_uncompress;\n\n// The Bounding Box object\n\nfunction derive(v0, v1, v2, v3, t) {\n return Math.pow(1 - t, 3) * v0 +\n 3 * Math.pow(1 - t, 2) * t * v1 +\n 3 * (1 - t) * Math.pow(t, 2) * v2 +\n Math.pow(t, 3) * v3;\n}\n/**\n * A bounding box is an enclosing box that describes the smallest measure within which all the points lie.\n * It is used to calculate the bounding box of a glyph or text path.\n *\n * On initialization, x1/y1/x2/y2 will be NaN. Check if the bounding box is empty using `isEmpty()`.\n *\n * @exports opentype.BoundingBox\n * @class\n * @constructor\n */\nfunction BoundingBox() {\n this.x1 = Number.NaN;\n this.y1 = Number.NaN;\n this.x2 = Number.NaN;\n this.y2 = Number.NaN;\n}\n\n/**\n * Returns true if the bounding box is empty, that is, no points have been added to the box yet.\n */\nBoundingBox.prototype.isEmpty = function() {\n return isNaN(this.x1) || isNaN(this.y1) || isNaN(this.x2) || isNaN(this.y2);\n};\n\n/**\n * Add the point to the bounding box.\n * The x1/y1/x2/y2 coordinates of the bounding box will now encompass the given point.\n * @param {number} x - The X coordinate of the point.\n * @param {number} y - The Y coordinate of the point.\n */\nBoundingBox.prototype.addPoint = function(x, y) {\n if (typeof x === 'number') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n if (x < this.x1) {\n this.x1 = x;\n }\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n if (typeof y === 'number') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n if (y < this.y1) {\n this.y1 = y;\n }\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n};\n\n/**\n * Add a X coordinate to the bounding box.\n * This extends the bounding box to include the X coordinate.\n * This function is used internally inside of addBezier.\n * @param {number} x - The X coordinate of the point.\n */\nBoundingBox.prototype.addX = function(x) {\n this.addPoint(x, null);\n};\n\n/**\n * Add a Y coordinate to the bounding box.\n * This extends the bounding box to include the Y coordinate.\n * This function is used internally inside of addBezier.\n * @param {number} y - The Y coordinate of the point.\n */\nBoundingBox.prototype.addY = function(y) {\n this.addPoint(null, y);\n};\n\n/**\n * Add a Bézier curve to the bounding box.\n * This extends the bounding box to include the entire Bézier.\n * @param {number} x0 - The starting X coordinate.\n * @param {number} y0 - The starting Y coordinate.\n * @param {number} x1 - The X coordinate of the first control point.\n * @param {number} y1 - The Y coordinate of the first control point.\n * @param {number} x2 - The X coordinate of the second control point.\n * @param {number} y2 - The Y coordinate of the second control point.\n * @param {number} x - The ending X coordinate.\n * @param {number} y - The ending Y coordinate.\n */\nBoundingBox.prototype.addBezier = function(x0, y0, x1, y1, x2, y2, x, y) {\n // This code is based on http://nishiohirokazu.blogspot.com/2009/06/how-to-calculate-bezier-curves-bounding.html\n // and https://github.com/icons8/svg-path-bounding-box\n\n var p0 = [x0, y0];\n var p1 = [x1, y1];\n var p2 = [x2, y2];\n var p3 = [x, y];\n\n this.addPoint(x0, y0);\n this.addPoint(x, y);\n\n for (var i = 0; i <= 1; i++) {\n var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n var c = 3 * p1[i] - 3 * p0[i];\n\n if (a === 0) {\n if (b === 0) { continue; }\n var t = -c / b;\n if (0 < t && t < 1) {\n if (i === 0) { this.addX(derive(p0[i], p1[i], p2[i], p3[i], t)); }\n if (i === 1) { this.addY(derive(p0[i], p1[i], p2[i], p3[i], t)); }\n }\n continue;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n if (b2ac < 0) { continue; }\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n if (0 < t1 && t1 < 1) {\n if (i === 0) { this.addX(derive(p0[i], p1[i], p2[i], p3[i], t1)); }\n if (i === 1) { this.addY(derive(p0[i], p1[i], p2[i], p3[i], t1)); }\n }\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n if (0 < t2 && t2 < 1) {\n if (i === 0) { this.addX(derive(p0[i], p1[i], p2[i], p3[i], t2)); }\n if (i === 1) { this.addY(derive(p0[i], p1[i], p2[i], p3[i], t2)); }\n }\n }\n};\n\n/**\n * Add a quadratic curve to the bounding box.\n * This extends the bounding box to include the entire quadratic curve.\n * @param {number} x0 - The starting X coordinate.\n * @param {number} y0 - The starting Y coordinate.\n * @param {number} x1 - The X coordinate of the control point.\n * @param {number} y1 - The Y coordinate of the control point.\n * @param {number} x - The ending X coordinate.\n * @param {number} y - The ending Y coordinate.\n */\nBoundingBox.prototype.addQuad = function(x0, y0, x1, y1, x, y) {\n var cp1x = x0 + 2 / 3 * (x1 - x0);\n var cp1y = y0 + 2 / 3 * (y1 - y0);\n var cp2x = cp1x + 1 / 3 * (x - x0);\n var cp2y = cp1y + 1 / 3 * (y - y0);\n this.addBezier(x0, y0, cp1x, cp1y, cp2x, cp2y, x, y);\n};\n\n// Geometric objects\n\n/**\n * A bézier path containing a set of path commands similar to a SVG path.\n * Paths can be drawn on a context using `draw`.\n * @exports opentype.Path\n * @class\n * @constructor\n */\nfunction Path() {\n this.commands = [];\n this.fill = 'black';\n this.stroke = null;\n this.strokeWidth = 1;\n}\n\n/**\n * @param {number} x\n * @param {number} y\n */\nPath.prototype.moveTo = function(x, y) {\n this.commands.push({\n type: 'M',\n x: x,\n y: y\n });\n};\n\n/**\n * @param {number} x\n * @param {number} y\n */\nPath.prototype.lineTo = function(x, y) {\n this.commands.push({\n type: 'L',\n x: x,\n y: y\n });\n};\n\n/**\n * Draws cubic curve\n * @function\n * curveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control 1\n * @param {number} y1 - y of control 1\n * @param {number} x2 - x of control 2\n * @param {number} y2 - y of control 2\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\n\n/**\n * Draws cubic curve\n * @function\n * bezierCurveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control 1\n * @param {number} y1 - y of control 1\n * @param {number} x2 - x of control 2\n * @param {number} y2 - y of control 2\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n * @see curveTo\n */\nPath.prototype.curveTo = Path.prototype.bezierCurveTo = function(x1, y1, x2, y2, x, y) {\n this.commands.push({\n type: 'C',\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n x: x,\n y: y\n });\n};\n\n/**\n * Draws quadratic curve\n * @function\n * quadraticCurveTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control\n * @param {number} y1 - y of control\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\n\n/**\n * Draws quadratic curve\n * @function\n * quadTo\n * @memberof opentype.Path.prototype\n * @param {number} x1 - x of control\n * @param {number} y1 - y of control\n * @param {number} x - x of path point\n * @param {number} y - y of path point\n */\nPath.prototype.quadTo = Path.prototype.quadraticCurveTo = function(x1, y1, x, y) {\n this.commands.push({\n type: 'Q',\n x1: x1,\n y1: y1,\n x: x,\n y: y\n });\n};\n\n/**\n * Closes the path\n * @function closePath\n * @memberof opentype.Path.prototype\n */\n\n/**\n * Close the path\n * @function close\n * @memberof opentype.Path.prototype\n */\nPath.prototype.close = Path.prototype.closePath = function() {\n this.commands.push({\n type: 'Z'\n });\n};\n\n/**\n * Add the given path or list of commands to the commands of this path.\n * @param {Array} pathOrCommands - another opentype.Path, an opentype.BoundingBox, or an array of commands.\n */\nPath.prototype.extend = function(pathOrCommands) {\n if (pathOrCommands.commands) {\n pathOrCommands = pathOrCommands.commands;\n } else if (pathOrCommands instanceof BoundingBox) {\n var box = pathOrCommands;\n this.moveTo(box.x1, box.y1);\n this.lineTo(box.x2, box.y1);\n this.lineTo(box.x2, box.y2);\n this.lineTo(box.x1, box.y2);\n this.close();\n return;\n }\n\n Array.prototype.push.apply(this.commands, pathOrCommands);\n};\n\n/**\n * Calculate the bounding box of the path.\n * @returns {opentype.BoundingBox}\n */\nPath.prototype.getBoundingBox = function() {\n var box = new BoundingBox();\n\n var startX = 0;\n var startY = 0;\n var prevX = 0;\n var prevY = 0;\n for (var i = 0; i < this.commands.length; i++) {\n var cmd = this.commands[i];\n switch (cmd.type) {\n case 'M':\n box.addPoint(cmd.x, cmd.y);\n startX = prevX = cmd.x;\n startY = prevY = cmd.y;\n break;\n case 'L':\n box.addPoint(cmd.x, cmd.y);\n prevX = cmd.x;\n prevY = cmd.y;\n break;\n case 'Q':\n box.addQuad(prevX, prevY, cmd.x1, cmd.y1, cmd.x, cmd.y);\n prevX = cmd.x;\n prevY = cmd.y;\n break;\n case 'C':\n box.addBezier(prevX, prevY, cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y);\n prevX = cmd.x;\n prevY = cmd.y;\n break;\n case 'Z':\n prevX = startX;\n prevY = startY;\n break;\n default:\n throw new Error('Unexpected path command ' + cmd.type);\n }\n }\n if (box.isEmpty()) {\n box.addPoint(0, 0);\n }\n return box;\n};\n\n/**\n * Draw the path to a 2D context.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context.\n */\nPath.prototype.draw = function(ctx) {\n ctx.beginPath();\n for (var i = 0; i < this.commands.length; i += 1) {\n var cmd = this.commands[i];\n if (cmd.type === 'M') {\n ctx.moveTo(cmd.x, cmd.y);\n } else if (cmd.type === 'L') {\n ctx.lineTo(cmd.x, cmd.y);\n } else if (cmd.type === 'C') {\n ctx.bezierCurveTo(cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y);\n } else if (cmd.type === 'Q') {\n ctx.quadraticCurveTo(cmd.x1, cmd.y1, cmd.x, cmd.y);\n } else if (cmd.type === 'Z') {\n ctx.closePath();\n }\n }\n\n if (this.fill) {\n ctx.fillStyle = this.fill;\n ctx.fill();\n }\n\n if (this.stroke) {\n ctx.strokeStyle = this.stroke;\n ctx.lineWidth = this.strokeWidth;\n ctx.stroke();\n }\n};\n\n/**\n * Convert the Path to a string of path data instructions\n * See http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {number} [decimalPlaces=2] - The amount of decimal places for floating-point values\n * @return {string}\n */\nPath.prototype.toPathData = function(decimalPlaces) {\n decimalPlaces = decimalPlaces !== undefined ? decimalPlaces : 2;\n\n function floatToString(v) {\n if (Math.round(v) === v) {\n return '' + Math.round(v);\n } else {\n return v.toFixed(decimalPlaces);\n }\n }\n\n function packValues() {\n var arguments$1 = arguments;\n\n var s = '';\n for (var i = 0; i < arguments.length; i += 1) {\n var v = arguments$1[i];\n if (v >= 0 && i > 0) {\n s += ' ';\n }\n\n s += floatToString(v);\n }\n\n return s;\n }\n\n var d = '';\n for (var i = 0; i < this.commands.length; i += 1) {\n var cmd = this.commands[i];\n if (cmd.type === 'M') {\n d += 'M' + packValues(cmd.x, cmd.y);\n } else if (cmd.type === 'L') {\n d += 'L' + packValues(cmd.x, cmd.y);\n } else if (cmd.type === 'C') {\n d += 'C' + packValues(cmd.x1, cmd.y1, cmd.x2, cmd.y2, cmd.x, cmd.y);\n } else if (cmd.type === 'Q') {\n d += 'Q' + packValues(cmd.x1, cmd.y1, cmd.x, cmd.y);\n } else if (cmd.type === 'Z') {\n d += 'Z';\n }\n }\n\n return d;\n};\n\n/**\n * Convert the path to an SVG element, as a string.\n * @param {number} [decimalPlaces=2] - The amount of decimal places for floating-point values\n * @return {string}\n */\nPath.prototype.toSVG = function(decimalPlaces) {\n var svg = '= 0 && v <= 255, 'Byte value should be between 0 and 255.');\n return [v];\n};\n/**\n * @constant\n * @type {number}\n */\nsizeOf.BYTE = constant(1);\n\n/**\n * Convert a 8-bit signed integer to a list of 1 byte.\n * @param {string}\n * @returns {Array}\n */\nencode.CHAR = function(v) {\n return [v.charCodeAt(0)];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.CHAR = constant(1);\n\n/**\n * Convert an ASCII string to a list of bytes.\n * @param {string}\n * @returns {Array}\n */\nencode.CHARARRAY = function(v) {\n var b = [];\n for (var i = 0; i < v.length; i += 1) {\n b[i] = v.charCodeAt(i);\n }\n\n return b;\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.CHARARRAY = function(v) {\n return v.length;\n};\n\n/**\n * Convert a 16-bit unsigned integer to a list of 2 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.USHORT = function(v) {\n return [(v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.USHORT = constant(2);\n\n/**\n * Convert a 16-bit signed integer to a list of 2 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.SHORT = function(v) {\n // Two's complement\n if (v >= LIMIT16) {\n v = -(2 * LIMIT16 - v);\n }\n\n return [(v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.SHORT = constant(2);\n\n/**\n * Convert a 24-bit unsigned integer to a list of 3 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.UINT24 = function(v) {\n return [(v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.UINT24 = constant(3);\n\n/**\n * Convert a 32-bit unsigned integer to a list of 4 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.ULONG = function(v) {\n return [(v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.ULONG = constant(4);\n\n/**\n * Convert a 32-bit unsigned integer to a list of 4 bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.LONG = function(v) {\n // Two's complement\n if (v >= LIMIT32) {\n v = -(2 * LIMIT32 - v);\n }\n\n return [(v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.LONG = constant(4);\n\nencode.FIXED = encode.ULONG;\nsizeOf.FIXED = sizeOf.ULONG;\n\nencode.FWORD = encode.SHORT;\nsizeOf.FWORD = sizeOf.SHORT;\n\nencode.UFWORD = encode.USHORT;\nsizeOf.UFWORD = sizeOf.USHORT;\n\n/**\n * Convert a 32-bit Apple Mac timestamp integer to a list of 8 bytes, 64-bit timestamp.\n * @param {number}\n * @returns {Array}\n */\nencode.LONGDATETIME = function(v) {\n return [0, 0, 0, 0, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.LONGDATETIME = constant(8);\n\n/**\n * Convert a 4-char tag to a list of 4 bytes.\n * @param {string}\n * @returns {Array}\n */\nencode.TAG = function(v) {\n check.argument(v.length === 4, 'Tag should be exactly 4 ASCII characters.');\n return [v.charCodeAt(0),\n v.charCodeAt(1),\n v.charCodeAt(2),\n v.charCodeAt(3)];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.TAG = constant(4);\n\n// CFF data types ///////////////////////////////////////////////////////////\n\nencode.Card8 = encode.BYTE;\nsizeOf.Card8 = sizeOf.BYTE;\n\nencode.Card16 = encode.USHORT;\nsizeOf.Card16 = sizeOf.USHORT;\n\nencode.OffSize = encode.BYTE;\nsizeOf.OffSize = sizeOf.BYTE;\n\nencode.SID = encode.USHORT;\nsizeOf.SID = sizeOf.USHORT;\n\n// Convert a numeric operand or charstring number to a variable-size list of bytes.\n/**\n * Convert a numeric operand or charstring number to a variable-size list of bytes.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER = function(v) {\n if (v >= -107 && v <= 107) {\n return [v + 139];\n } else if (v >= 108 && v <= 1131) {\n v = v - 108;\n return [(v >> 8) + 247, v & 0xFF];\n } else if (v >= -1131 && v <= -108) {\n v = -v - 108;\n return [(v >> 8) + 251, v & 0xFF];\n } else if (v >= -32768 && v <= 32767) {\n return encode.NUMBER16(v);\n } else {\n return encode.NUMBER32(v);\n }\n};\n\n/**\n * @param {number}\n * @returns {number}\n */\nsizeOf.NUMBER = function(v) {\n return encode.NUMBER(v).length;\n};\n\n/**\n * Convert a signed number between -32768 and +32767 to a three-byte value.\n * This ensures we always use three bytes, but is not the most compact format.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER16 = function(v) {\n return [28, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.NUMBER16 = constant(3);\n\n/**\n * Convert a signed number between -(2^31) and +(2^31-1) to a five-byte value.\n * This is useful if you want to be sure you always use four bytes,\n * at the expense of wasting a few bytes for smaller numbers.\n * @param {number}\n * @returns {Array}\n */\nencode.NUMBER32 = function(v) {\n return [29, (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF];\n};\n\n/**\n * @constant\n * @type {number}\n */\nsizeOf.NUMBER32 = constant(5);\n\n/**\n * @param {number}\n * @returns {Array}\n */\nencode.REAL = function(v) {\n var value = v.toString();\n\n // Some numbers use an epsilon to encode the value. (e.g. JavaScript will store 0.0000001 as 1e-7)\n // This code converts it back to a number without the epsilon.\n var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n if (m) {\n var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(v * epsilon) / epsilon).toString();\n }\n\n var nibbles = '';\n for (var i = 0, ii = value.length; i < ii; i += 1) {\n var c = value[i];\n if (c === 'e') {\n nibbles += value[++i] === '-' ? 'c' : 'b';\n } else if (c === '.') {\n nibbles += 'a';\n } else if (c === '-') {\n nibbles += 'e';\n } else {\n nibbles += c;\n }\n }\n\n nibbles += (nibbles.length & 1) ? 'f' : 'ff';\n var out = [30];\n for (var i$1 = 0, ii$1 = nibbles.length; i$1 < ii$1; i$1 += 2) {\n out.push(parseInt(nibbles.substr(i$1, 2), 16));\n }\n\n return out;\n};\n\n/**\n * @param {number}\n * @returns {number}\n */\nsizeOf.REAL = function(v) {\n return encode.REAL(v).length;\n};\n\nencode.NAME = encode.CHARARRAY;\nsizeOf.NAME = sizeOf.CHARARRAY;\n\nencode.STRING = encode.CHARARRAY;\nsizeOf.STRING = sizeOf.CHARARRAY;\n\n/**\n * @param {DataView} data\n * @param {number} offset\n * @param {number} numBytes\n * @returns {string}\n */\ndecode.UTF8 = function(data, offset, numBytes) {\n var codePoints = [];\n var numChars = numBytes;\n for (var j = 0; j < numChars; j++, offset += 1) {\n codePoints[j] = data.getUint8(offset);\n }\n\n return String.fromCharCode.apply(null, codePoints);\n};\n\n/**\n * @param {DataView} data\n * @param {number} offset\n * @param {number} numBytes\n * @returns {string}\n */\ndecode.UTF16 = function(data, offset, numBytes) {\n var codePoints = [];\n var numChars = numBytes / 2;\n for (var j = 0; j < numChars; j++, offset += 2) {\n codePoints[j] = data.getUint16(offset);\n }\n\n return String.fromCharCode.apply(null, codePoints);\n};\n\n/**\n * Convert a JavaScript string to UTF16-BE.\n * @param {string}\n * @returns {Array}\n */\nencode.UTF16 = function(v) {\n var b = [];\n for (var i = 0; i < v.length; i += 1) {\n var codepoint = v.charCodeAt(i);\n b[b.length] = (codepoint >> 8) & 0xFF;\n b[b.length] = codepoint & 0xFF;\n }\n\n return b;\n};\n\n/**\n * @param {string}\n * @returns {number}\n */\nsizeOf.UTF16 = function(v) {\n return v.length * 2;\n};\n\n// Data for converting old eight-bit Macintosh encodings to Unicode.\n// This representation is optimized for decoding; encoding is slower\n// and needs more memory. The assumption is that all opentype.js users\n// want to open fonts, but saving a font will be comparatively rare\n// so it can be more expensive. Keyed by IANA character set name.\n//\n// Python script for generating these strings:\n//\n// s = u''.join([chr(c).decode('mac_greek') for c in range(128, 256)])\n// print(s.encode('utf-8'))\n/**\n * @private\n */\nvar eightBitMacEncodings = {\n 'x-mac-croatian': // Python: 'mac_croatian'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø' +\n '¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ',\n 'x-mac-cyrillic': // Python: 'mac_cyrillic'\n 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњ' +\n 'јЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю',\n 'x-mac-gaelic': // http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/GAELIC.TXT\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæø' +\n 'ṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ',\n 'x-mac-greek': // Python: 'mac_greek'\n 'Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩ' +\n 'άΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ\\u00AD',\n 'x-mac-icelandic': // Python: 'mac_iceland'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-inuit': // http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/INUIT.TXT\n 'ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗ' +\n 'ᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł',\n 'x-mac-ce': // Python: 'mac_latin2'\n 'ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅ' +\n 'ņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ',\n macintosh: // Python: 'mac_roman'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-romanian': // Python: 'mac_romanian'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ',\n 'x-mac-turkish': // Python: 'mac_turkish'\n 'ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø' +\n '¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ'\n};\n\n/**\n * Decodes an old-style Macintosh string. Returns either a Unicode JavaScript\n * string, or 'undefined' if the encoding is unsupported. For example, we do\n * not support Chinese, Japanese or Korean because these would need large\n * mapping tables.\n * @param {DataView} dataView\n * @param {number} offset\n * @param {number} dataLength\n * @param {string} encoding\n * @returns {string}\n */\ndecode.MACSTRING = function(dataView, offset, dataLength, encoding) {\n var table = eightBitMacEncodings[encoding];\n if (table === undefined) {\n return undefined;\n }\n\n var result = '';\n for (var i = 0; i < dataLength; i++) {\n var c = dataView.getUint8(offset + i);\n // In all eight-bit Mac encodings, the characters 0x00..0x7F are\n // mapped to U+0000..U+007F; we only need to look up the others.\n if (c <= 0x7F) {\n result += String.fromCharCode(c);\n } else {\n result += table[c & 0x7F];\n }\n }\n\n return result;\n};\n\n// Helper function for encode.MACSTRING. Returns a dictionary for mapping\n// Unicode character codes to their 8-bit MacOS equivalent. This table\n// is not exactly a super cheap data structure, but we do not care because\n// encoding Macintosh strings is only rarely needed in typical applications.\nvar macEncodingTableCache = typeof WeakMap === 'function' && new WeakMap();\nvar macEncodingCacheKeys;\nvar getMacEncodingTable = function (encoding) {\n // Since we use encoding as a cache key for WeakMap, it has to be\n // a String object and not a literal. And at least on NodeJS 2.10.1,\n // WeakMap requires that the same String instance is passed for cache hits.\n if (!macEncodingCacheKeys) {\n macEncodingCacheKeys = {};\n for (var e in eightBitMacEncodings) {\n /*jshint -W053 */ // Suppress \"Do not use String as a constructor.\"\n macEncodingCacheKeys[e] = new String(e);\n }\n }\n\n var cacheKey = macEncodingCacheKeys[encoding];\n if (cacheKey === undefined) {\n return undefined;\n }\n\n // We can't do \"if (cache.has(key)) {return cache.get(key)}\" here:\n // since garbage collection may run at any time, it could also kick in\n // between the calls to cache.has() and cache.get(). In that case,\n // we would return 'undefined' even though we do support the encoding.\n if (macEncodingTableCache) {\n var cachedTable = macEncodingTableCache.get(cacheKey);\n if (cachedTable !== undefined) {\n return cachedTable;\n }\n }\n\n var decodingTable = eightBitMacEncodings[encoding];\n if (decodingTable === undefined) {\n return undefined;\n }\n\n var encodingTable = {};\n for (var i = 0; i < decodingTable.length; i++) {\n encodingTable[decodingTable.charCodeAt(i)] = i + 0x80;\n }\n\n if (macEncodingTableCache) {\n macEncodingTableCache.set(cacheKey, encodingTable);\n }\n\n return encodingTable;\n};\n\n/**\n * Encodes an old-style Macintosh string. Returns a byte array upon success.\n * If the requested encoding is unsupported, or if the input string contains\n * a character that cannot be expressed in the encoding, the function returns\n * 'undefined'.\n * @param {string} str\n * @param {string} encoding\n * @returns {Array}\n */\nencode.MACSTRING = function(str, encoding) {\n var table = getMacEncodingTable(encoding);\n if (table === undefined) {\n return undefined;\n }\n\n var result = [];\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n\n // In all eight-bit Mac encodings, the characters 0x00..0x7F are\n // mapped to U+0000..U+007F; we only need to look up the others.\n if (c >= 0x80) {\n c = table[c];\n if (c === undefined) {\n // str contains a Unicode character that cannot be encoded\n // in the requested encoding.\n return undefined;\n }\n }\n result[i] = c;\n // result.push(c);\n }\n\n return result;\n};\n\n/**\n * @param {string} str\n * @param {string} encoding\n * @returns {number}\n */\nsizeOf.MACSTRING = function(str, encoding) {\n var b = encode.MACSTRING(str, encoding);\n if (b !== undefined) {\n return b.length;\n } else {\n return 0;\n }\n};\n\n// Helper for encode.VARDELTAS\nfunction isByteEncodable(value) {\n return value >= -128 && value <= 127;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsZeroes(deltas, pos, result) {\n var runLength = 0;\n var numDeltas = deltas.length;\n while (pos < numDeltas && runLength < 64 && deltas[pos] === 0) {\n ++pos;\n ++runLength;\n }\n result.push(0x80 | (runLength - 1));\n return pos;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsBytes(deltas, offset, result) {\n var runLength = 0;\n var numDeltas = deltas.length;\n var pos = offset;\n while (pos < numDeltas && runLength < 64) {\n var value = deltas[pos];\n if (!isByteEncodable(value)) {\n break;\n }\n\n // Within a byte-encoded run of deltas, a single zero is best\n // stored literally as 0x00 value. However, if we have two or\n // more zeroes in a sequence, it is better to start a new run.\n // Fore example, the sequence of deltas [15, 15, 0, 15, 15]\n // becomes 6 bytes (04 0F 0F 00 0F 0F) when storing the zero\n // within the current run, but 7 bytes (01 0F 0F 80 01 0F 0F)\n // when starting a new run.\n if (value === 0 && pos + 1 < numDeltas && deltas[pos + 1] === 0) {\n break;\n }\n\n ++pos;\n ++runLength;\n }\n result.push(runLength - 1);\n for (var i = offset; i < pos; ++i) {\n result.push((deltas[i] + 256) & 0xff);\n }\n return pos;\n}\n\n// Helper for encode.VARDELTAS\nfunction encodeVarDeltaRunAsWords(deltas, offset, result) {\n var runLength = 0;\n var numDeltas = deltas.length;\n var pos = offset;\n while (pos < numDeltas && runLength < 64) {\n var value = deltas[pos];\n\n // Within a word-encoded run of deltas, it is easiest to start\n // a new run (with a different encoding) whenever we encounter\n // a zero value. For example, the sequence [0x6666, 0, 0x7777]\n // needs 7 bytes when storing the zero inside the current run\n // (42 66 66 00 00 77 77), and equally 7 bytes when starting a\n // new run (40 66 66 80 40 77 77).\n if (value === 0) {\n break;\n }\n\n // Within a word-encoded run of deltas, a single value in the\n // range (-128..127) should be encoded within the current run\n // because it is more compact. For example, the sequence\n // [0x6666, 2, 0x7777] becomes 7 bytes when storing the value\n // literally (42 66 66 00 02 77 77), but 8 bytes when starting\n // a new run (40 66 66 00 02 40 77 77).\n if (isByteEncodable(value) && pos + 1 < numDeltas && isByteEncodable(deltas[pos + 1])) {\n break;\n }\n\n ++pos;\n ++runLength;\n }\n result.push(0x40 | (runLength - 1));\n for (var i = offset; i < pos; ++i) {\n var val = deltas[i];\n result.push(((val + 0x10000) >> 8) & 0xff, (val + 0x100) & 0xff);\n }\n return pos;\n}\n\n/**\n * Encode a list of variation adjustment deltas.\n *\n * Variation adjustment deltas are used in ‘gvar’ and ‘cvar’ tables.\n * They indicate how points (in ‘gvar’) or values (in ‘cvar’) get adjusted\n * when generating instances of variation fonts.\n *\n * @see https://www.microsoft.com/typography/otspec/gvar.htm\n * @see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6gvar.html\n * @param {Array}\n * @return {Array}\n */\nencode.VARDELTAS = function(deltas) {\n var pos = 0;\n var result = [];\n while (pos < deltas.length) {\n var value = deltas[pos];\n if (value === 0) {\n pos = encodeVarDeltaRunAsZeroes(deltas, pos, result);\n } else if (value >= -128 && value <= 127) {\n pos = encodeVarDeltaRunAsBytes(deltas, pos, result);\n } else {\n pos = encodeVarDeltaRunAsWords(deltas, pos, result);\n }\n }\n return result;\n};\n\n// Convert a list of values to a CFF INDEX structure.\n// The values should be objects containing name / type / value.\n/**\n * @param {Array} l\n * @returns {Array}\n */\nencode.INDEX = function(l) {\n //var offset, offsets, offsetEncoder, encodedOffsets, encodedOffset, data,\n // i, v;\n // Because we have to know which data type to use to encode the offsets,\n // we have to go through the values twice: once to encode the data and\n // calculate the offsets, then again to encode the offsets using the fitting data type.\n var offset = 1; // First offset is always 1.\n var offsets = [offset];\n var data = [];\n for (var i = 0; i < l.length; i += 1) {\n var v = encode.OBJECT(l[i]);\n Array.prototype.push.apply(data, v);\n offset += v.length;\n offsets.push(offset);\n }\n\n if (data.length === 0) {\n return [0, 0];\n }\n\n var encodedOffsets = [];\n var offSize = (1 + Math.floor(Math.log(offset) / Math.log(2)) / 8) | 0;\n var offsetEncoder = [undefined, encode.BYTE, encode.USHORT, encode.UINT24, encode.ULONG][offSize];\n for (var i$1 = 0; i$1 < offsets.length; i$1 += 1) {\n var encodedOffset = offsetEncoder(offsets[i$1]);\n Array.prototype.push.apply(encodedOffsets, encodedOffset);\n }\n\n return Array.prototype.concat(encode.Card16(l.length),\n encode.OffSize(offSize),\n encodedOffsets,\n data);\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.INDEX = function(v) {\n return encode.INDEX(v).length;\n};\n\n/**\n * Convert an object to a CFF DICT structure.\n * The keys should be numeric.\n * The values should be objects containing name / type / value.\n * @param {Object} m\n * @returns {Array}\n */\nencode.DICT = function(m) {\n var d = [];\n var keys = Object.keys(m);\n var length = keys.length;\n\n for (var i = 0; i < length; i += 1) {\n // Object.keys() return string keys, but our keys are always numeric.\n var k = parseInt(keys[i], 0);\n var v = m[k];\n // Value comes before the key.\n d = d.concat(encode.OPERAND(v.value, v.type));\n d = d.concat(encode.OPERATOR(k));\n }\n\n return d;\n};\n\n/**\n * @param {Object}\n * @returns {number}\n */\nsizeOf.DICT = function(m) {\n return encode.DICT(m).length;\n};\n\n/**\n * @param {number}\n * @returns {Array}\n */\nencode.OPERATOR = function(v) {\n if (v < 1200) {\n return [v];\n } else {\n return [12, v - 1200];\n }\n};\n\n/**\n * @param {Array} v\n * @param {string}\n * @returns {Array}\n */\nencode.OPERAND = function(v, type) {\n var d = [];\n if (Array.isArray(type)) {\n for (var i = 0; i < type.length; i += 1) {\n check.argument(v.length === type.length, 'Not enough arguments given for type' + type);\n d = d.concat(encode.OPERAND(v[i], type[i]));\n }\n } else {\n if (type === 'SID') {\n d = d.concat(encode.NUMBER(v));\n } else if (type === 'offset') {\n // We make it easy for ourselves and always encode offsets as\n // 4 bytes. This makes offset calculation for the top dict easier.\n d = d.concat(encode.NUMBER32(v));\n } else if (type === 'number') {\n d = d.concat(encode.NUMBER(v));\n } else if (type === 'real') {\n d = d.concat(encode.REAL(v));\n } else {\n throw new Error('Unknown operand type ' + type);\n // FIXME Add support for booleans\n }\n }\n\n return d;\n};\n\nencode.OP = encode.BYTE;\nsizeOf.OP = sizeOf.BYTE;\n\n// memoize charstring encoding using WeakMap if available\nvar wmm = typeof WeakMap === 'function' && new WeakMap();\n\n/**\n * Convert a list of CharString operations to bytes.\n * @param {Array}\n * @returns {Array}\n */\nencode.CHARSTRING = function(ops) {\n // See encode.MACSTRING for why we don't do \"if (wmm && wmm.has(ops))\".\n if (wmm) {\n var cachedValue = wmm.get(ops);\n if (cachedValue !== undefined) {\n return cachedValue;\n }\n }\n\n var d = [];\n var length = ops.length;\n\n for (var i = 0; i < length; i += 1) {\n var op = ops[i];\n d = d.concat(encode[op.type](op.value));\n }\n\n if (wmm) {\n wmm.set(ops, d);\n }\n\n return d;\n};\n\n/**\n * @param {Array}\n * @returns {number}\n */\nsizeOf.CHARSTRING = function(ops) {\n return encode.CHARSTRING(ops).length;\n};\n\n// Utility functions ////////////////////////////////////////////////////////\n\n/**\n * Convert an object containing name / type / value to bytes.\n * @param {Object}\n * @returns {Array}\n */\nencode.OBJECT = function(v) {\n var encodingFunction = encode[v.type];\n check.argument(encodingFunction !== undefined, 'No encoding function for type ' + v.type);\n return encodingFunction(v.value);\n};\n\n/**\n * @param {Object}\n * @returns {number}\n */\nsizeOf.OBJECT = function(v) {\n var sizeOfFunction = sizeOf[v.type];\n check.argument(sizeOfFunction !== undefined, 'No sizeOf function for type ' + v.type);\n return sizeOfFunction(v.value);\n};\n\n/**\n * Convert a table object to bytes.\n * A table contains a list of fields containing the metadata (name, type and default value).\n * The table itself has the field values set as attributes.\n * @param {opentype.Table}\n * @returns {Array}\n */\nencode.TABLE = function(table) {\n var d = [];\n var length = table.fields.length;\n var subtables = [];\n var subtableOffsets = [];\n\n for (var i = 0; i < length; i += 1) {\n var field = table.fields[i];\n var encodingFunction = encode[field.type];\n check.argument(encodingFunction !== undefined, 'No encoding function for field type ' + field.type + ' (' + field.name + ')');\n var value = table[field.name];\n if (value === undefined) {\n value = field.value;\n }\n\n var bytes = encodingFunction(value);\n\n if (field.type === 'TABLE') {\n subtableOffsets.push(d.length);\n d = d.concat([0, 0]);\n subtables.push(bytes);\n } else {\n d = d.concat(bytes);\n }\n }\n\n for (var i$1 = 0; i$1 < subtables.length; i$1 += 1) {\n var o = subtableOffsets[i$1];\n var offset = d.length;\n check.argument(offset < 65536, 'Table ' + table.tableName + ' too big.');\n d[o] = offset >> 8;\n d[o + 1] = offset & 0xff;\n d = d.concat(subtables[i$1]);\n }\n\n return d;\n};\n\n/**\n * @param {opentype.Table}\n * @returns {number}\n */\nsizeOf.TABLE = function(table) {\n var numBytes = 0;\n var length = table.fields.length;\n\n for (var i = 0; i < length; i += 1) {\n var field = table.fields[i];\n var sizeOfFunction = sizeOf[field.type];\n check.argument(sizeOfFunction !== undefined, 'No sizeOf function for field type ' + field.type + ' (' + field.name + ')');\n var value = table[field.name];\n if (value === undefined) {\n value = field.value;\n }\n\n numBytes += sizeOfFunction(value);\n\n // Subtables take 2 more bytes for offsets.\n if (field.type === 'TABLE') {\n numBytes += 2;\n }\n }\n\n return numBytes;\n};\n\nencode.RECORD = encode.TABLE;\nsizeOf.RECORD = sizeOf.TABLE;\n\n// Merge in a list of bytes.\nencode.LITERAL = function(v) {\n return v;\n};\n\nsizeOf.LITERAL = function(v) {\n return v.length;\n};\n\n// Table metadata\n\n/**\n * @exports opentype.Table\n * @class\n * @param {string} tableName\n * @param {Array} fields\n * @param {Object} options\n * @constructor\n */\nfunction Table(tableName, fields, options) {\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n this[field.name] = field.value;\n }\n\n this.tableName = tableName;\n this.fields = fields;\n if (options) {\n var optionKeys = Object.keys(options);\n for (var i$1 = 0; i$1 < optionKeys.length; i$1 += 1) {\n var k = optionKeys[i$1];\n var v = options[k];\n if (this[k] !== undefined) {\n this[k] = v;\n }\n }\n }\n}\n\n/**\n * Encodes the table and returns an array of bytes\n * @return {Array}\n */\nTable.prototype.encode = function() {\n return encode.TABLE(this);\n};\n\n/**\n * Get the size of the table.\n * @return {number}\n */\nTable.prototype.sizeOf = function() {\n return sizeOf.TABLE(this);\n};\n\n/**\n * @private\n */\nfunction ushortList(itemName, list, count) {\n if (count === undefined) {\n count = list.length;\n }\n var fields = new Array(list.length + 1);\n fields[0] = {name: itemName + 'Count', type: 'USHORT', value: count};\n for (var i = 0; i < list.length; i++) {\n fields[i + 1] = {name: itemName + i, type: 'USHORT', value: list[i]};\n }\n return fields;\n}\n\n/**\n * @private\n */\nfunction tableList(itemName, records, itemCallback) {\n var count = records.length;\n var fields = new Array(count + 1);\n fields[0] = {name: itemName + 'Count', type: 'USHORT', value: count};\n for (var i = 0; i < count; i++) {\n fields[i + 1] = {name: itemName + i, type: 'TABLE', value: itemCallback(records[i], i)};\n }\n return fields;\n}\n\n/**\n * @private\n */\nfunction recordList(itemName, records, itemCallback) {\n var count = records.length;\n var fields = [];\n fields[0] = {name: itemName + 'Count', type: 'USHORT', value: count};\n for (var i = 0; i < count; i++) {\n fields = fields.concat(itemCallback(records[i], i));\n }\n return fields;\n}\n\n// Common Layout Tables\n\n/**\n * @exports opentype.Coverage\n * @class\n * @param {opentype.Table}\n * @constructor\n * @extends opentype.Table\n */\nfunction Coverage(coverageTable) {\n if (coverageTable.format === 1) {\n Table.call(this, 'coverageTable',\n [{name: 'coverageFormat', type: 'USHORT', value: 1}]\n .concat(ushortList('glyph', coverageTable.glyphs))\n );\n } else {\n check.assert(false, 'Can\\'t create coverage table format 2 yet.');\n }\n}\nCoverage.prototype = Object.create(Table.prototype);\nCoverage.prototype.constructor = Coverage;\n\nfunction ScriptList(scriptListTable) {\n Table.call(this, 'scriptListTable',\n recordList('scriptRecord', scriptListTable, function(scriptRecord, i) {\n var script = scriptRecord.script;\n var defaultLangSys = script.defaultLangSys;\n check.assert(!!defaultLangSys, 'Unable to write GSUB: script ' + scriptRecord.tag + ' has no default language system.');\n return [\n {name: 'scriptTag' + i, type: 'TAG', value: scriptRecord.tag},\n {name: 'script' + i, type: 'TABLE', value: new Table('scriptTable', [\n {name: 'defaultLangSys', type: 'TABLE', value: new Table('defaultLangSys', [\n {name: 'lookupOrder', type: 'USHORT', value: 0},\n {name: 'reqFeatureIndex', type: 'USHORT', value: defaultLangSys.reqFeatureIndex}]\n .concat(ushortList('featureIndex', defaultLangSys.featureIndexes)))}\n ].concat(recordList('langSys', script.langSysRecords, function(langSysRecord, i) {\n var langSys = langSysRecord.langSys;\n return [\n {name: 'langSysTag' + i, type: 'TAG', value: langSysRecord.tag},\n {name: 'langSys' + i, type: 'TABLE', value: new Table('langSys', [\n {name: 'lookupOrder', type: 'USHORT', value: 0},\n {name: 'reqFeatureIndex', type: 'USHORT', value: langSys.reqFeatureIndex}\n ].concat(ushortList('featureIndex', langSys.featureIndexes)))}\n ];\n })))}\n ];\n })\n );\n}\nScriptList.prototype = Object.create(Table.prototype);\nScriptList.prototype.constructor = ScriptList;\n\n/**\n * @exports opentype.FeatureList\n * @class\n * @param {opentype.Table}\n * @constructor\n * @extends opentype.Table\n */\nfunction FeatureList(featureListTable) {\n Table.call(this, 'featureListTable',\n recordList('featureRecord', featureListTable, function(featureRecord, i) {\n var feature = featureRecord.feature;\n return [\n {name: 'featureTag' + i, type: 'TAG', value: featureRecord.tag},\n {name: 'feature' + i, type: 'TABLE', value: new Table('featureTable', [\n {name: 'featureParams', type: 'USHORT', value: feature.featureParams} ].concat(ushortList('lookupListIndex', feature.lookupListIndexes)))}\n ];\n })\n );\n}\nFeatureList.prototype = Object.create(Table.prototype);\nFeatureList.prototype.constructor = FeatureList;\n\n/**\n * @exports opentype.LookupList\n * @class\n * @param {opentype.Table}\n * @param {Object}\n * @constructor\n * @extends opentype.Table\n */\nfunction LookupList(lookupListTable, subtableMakers) {\n Table.call(this, 'lookupListTable', tableList('lookup', lookupListTable, function(lookupTable) {\n var subtableCallback = subtableMakers[lookupTable.lookupType];\n check.assert(!!subtableCallback, 'Unable to write GSUB lookup type ' + lookupTable.lookupType + ' tables.');\n return new Table('lookupTable', [\n {name: 'lookupType', type: 'USHORT', value: lookupTable.lookupType},\n {name: 'lookupFlag', type: 'USHORT', value: lookupTable.lookupFlag}\n ].concat(tableList('subtable', lookupTable.subtables, subtableCallback)));\n }));\n}\nLookupList.prototype = Object.create(Table.prototype);\nLookupList.prototype.constructor = LookupList;\n\n// Record = same as Table, but inlined (a Table has an offset and its data is further in the stream)\n// Don't use offsets inside Records (probable bug), only in Tables.\nvar table = {\n Table: Table,\n Record: Table,\n Coverage: Coverage,\n ScriptList: ScriptList,\n FeatureList: FeatureList,\n LookupList: LookupList,\n ushortList: ushortList,\n tableList: tableList,\n recordList: recordList,\n};\n\n// Parsing utility functions\n\n// Retrieve an unsigned byte from the DataView.\nfunction getByte(dataView, offset) {\n return dataView.getUint8(offset);\n}\n\n// Retrieve an unsigned 16-bit short from the DataView.\n// The value is stored in big endian.\nfunction getUShort(dataView, offset) {\n return dataView.getUint16(offset, false);\n}\n\n// Retrieve a signed 16-bit short from the DataView.\n// The value is stored in big endian.\nfunction getShort(dataView, offset) {\n return dataView.getInt16(offset, false);\n}\n\n// Retrieve an unsigned 24-bit integer from the DataView.\n// Format optimal for the 21-bit Unicode Scalar Values:\n// https://developer.apple.com/documentation/swift/string/unicodescalarview\n// The value is stored in big endian.\nfunction getUInt24(dataView, offset) {\n var b = dataView.getUint16(offset, false);\n var a = dataView.getUint8(offset + 2, false);\n return b * Math.pow(2, 8) + a;\n}\n\n// Retrieve an unsigned 32-bit long from the DataView.\n// The value is stored in big endian.\nfunction getULong(dataView, offset) {\n return dataView.getUint32(offset, false);\n}\n\n// Retrieve a 32-bit signed fixed-point number (16.16) from the DataView.\n// The value is stored in big endian.\nfunction getFixed(dataView, offset) {\n var decimal = dataView.getInt16(offset, false);\n var fraction = dataView.getUint16(offset + 2, false);\n return decimal + fraction / 65535;\n}\n\n// Retrieve a 4-character tag from the DataView.\n// Tags are used to identify tables.\nfunction getTag(dataView, offset) {\n var tag = '';\n for (var i = offset; i < offset + 4; i += 1) {\n tag += String.fromCharCode(dataView.getInt8(i));\n }\n\n return tag;\n}\n\n// Retrieve an offset from the DataView.\n// Offsets are 1 to 4 bytes in length, depending on the offSize argument.\nfunction getOffset(dataView, offset, offSize) {\n var v = 0;\n for (var i = 0; i < offSize; i += 1) {\n v <<= 8;\n v += dataView.getUint8(offset + i);\n }\n\n return v;\n}\n\n// Retrieve a number of bytes from start offset to the end offset from the DataView.\nfunction getBytes(dataView, startOffset, endOffset) {\n var bytes = [];\n for (var i = startOffset; i < endOffset; i += 1) {\n bytes.push(dataView.getUint8(i));\n }\n\n return bytes;\n}\n\n// Convert the list of bytes to a string.\nfunction bytesToString(bytes) {\n var s = '';\n for (var i = 0; i < bytes.length; i += 1) {\n s += String.fromCharCode(bytes[i]);\n }\n\n return s;\n}\n\nvar typeOffsets = {\n byte: 1,\n uShort: 2,\n short: 2,\n uLong: 4,\n fixed: 4,\n longDateTime: 8,\n tag: 4\n};\n\n// A stateful parser that changes the offset whenever a value is retrieved.\n// The data is a DataView.\nfunction Parser(data, offset) {\n this.data = data;\n this.offset = offset;\n this.relativeOffset = 0;\n}\n\nParser.prototype.parseByte = function() {\n var v = this.data.getUint8(this.offset + this.relativeOffset);\n this.relativeOffset += 1;\n return v;\n};\n\nParser.prototype.parseChar = function() {\n var v = this.data.getInt8(this.offset + this.relativeOffset);\n this.relativeOffset += 1;\n return v;\n};\n\nParser.prototype.parseCard8 = Parser.prototype.parseByte;\n\nParser.prototype.parseUShort = function() {\n var v = this.data.getUint16(this.offset + this.relativeOffset);\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseCard16 = Parser.prototype.parseUShort;\nParser.prototype.parseSID = Parser.prototype.parseUShort;\nParser.prototype.parseOffset16 = Parser.prototype.parseUShort;\n\nParser.prototype.parseShort = function() {\n var v = this.data.getInt16(this.offset + this.relativeOffset);\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseF2Dot14 = function() {\n var v = this.data.getInt16(this.offset + this.relativeOffset) / 16384;\n this.relativeOffset += 2;\n return v;\n};\n\nParser.prototype.parseUInt24 = function() {\n var v = getUInt24(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 3;\n return v;\n};\n\nParser.prototype.parseULong = function() {\n var v = getULong(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 4;\n return v;\n};\n\nParser.prototype.parseOffset32 = Parser.prototype.parseULong;\n\nParser.prototype.parseFixed = function() {\n var v = getFixed(this.data, this.offset + this.relativeOffset);\n this.relativeOffset += 4;\n return v;\n};\n\nParser.prototype.parseString = function(length) {\n var dataView = this.data;\n var offset = this.offset + this.relativeOffset;\n var string = '';\n this.relativeOffset += length;\n for (var i = 0; i < length; i++) {\n string += String.fromCharCode(dataView.getUint8(offset + i));\n }\n\n return string;\n};\n\nParser.prototype.parseTag = function() {\n return this.parseString(4);\n};\n\n// LONGDATETIME is a 64-bit integer.\n// JavaScript and unix timestamps traditionally use 32 bits, so we\n// only take the last 32 bits.\n// + Since until 2038 those bits will be filled by zeros we can ignore them.\nParser.prototype.parseLongDateTime = function() {\n var v = getULong(this.data, this.offset + this.relativeOffset + 4);\n // Subtract seconds between 01/01/1904 and 01/01/1970\n // to convert Apple Mac timestamp to Standard Unix timestamp\n v -= 2082844800;\n this.relativeOffset += 8;\n return v;\n};\n\nParser.prototype.parseVersion = function(minorBase) {\n var major = getUShort(this.data, this.offset + this.relativeOffset);\n\n // How to interpret the minor version is very vague in the spec. 0x5000 is 5, 0x1000 is 1\n // Default returns the correct number if minor = 0xN000 where N is 0-9\n // Set minorBase to 1 for tables that use minor = N where N is 0-9\n var minor = getUShort(this.data, this.offset + this.relativeOffset + 2);\n this.relativeOffset += 4;\n if (minorBase === undefined) { minorBase = 0x1000; }\n return major + minor / minorBase / 10;\n};\n\nParser.prototype.skip = function(type, amount) {\n if (amount === undefined) {\n amount = 1;\n }\n\n this.relativeOffset += typeOffsets[type] * amount;\n};\n\n///// Parsing lists and records ///////////////////////////////\n\n// Parse a list of 32 bit unsigned integers.\nParser.prototype.parseULongList = function(count) {\n if (count === undefined) { count = this.parseULong(); }\n var offsets = new Array(count);\n var dataView = this.data;\n var offset = this.offset + this.relativeOffset;\n for (var i = 0; i < count; i++) {\n offsets[i] = dataView.getUint32(offset);\n offset += 4;\n }\n\n this.relativeOffset += count * 4;\n return offsets;\n};\n\n// Parse a list of 16 bit unsigned integers. The length of the list can be read on the stream\n// or provided as an argument.\nParser.prototype.parseOffset16List =\nParser.prototype.parseUShortList = function(count) {\n if (count === undefined) { count = this.parseUShort(); }\n var offsets = new Array(count);\n var dataView = this.data;\n var offset = this.offset + this.relativeOffset;\n for (var i = 0; i < count; i++) {\n offsets[i] = dataView.getUint16(offset);\n offset += 2;\n }\n\n this.relativeOffset += count * 2;\n return offsets;\n};\n\n// Parses a list of 16 bit signed integers.\nParser.prototype.parseShortList = function(count) {\n var list = new Array(count);\n var dataView = this.data;\n var offset = this.offset + this.relativeOffset;\n for (var i = 0; i < count; i++) {\n list[i] = dataView.getInt16(offset);\n offset += 2;\n }\n\n this.relativeOffset += count * 2;\n return list;\n};\n\n// Parse a list of 24 bit unsigned integers. The length of the list can be read on the stream\n// or provided as an argument.\nParser.prototype.parseUInt24List = function(count) {\n if (count === undefined) { count = this.parseUShort(); }\n var offsets = new Array(count);\n var dataView = this.data;\n var offset = this.offset + this.relativeOffset;\n for (var i = 0; i < count; i++) {\n offsets[i] = getUInt24(dataView, offset);\n offset += 3;\n }\n\n this.relativeOffset += count * 3;\n return offsets;\n};\n\n// Parses a list of bytes.\nParser.prototype.parseByteList = function(count) {\n var list = new Array(count);\n var dataView = this.data;\n var offset = this.offset + this.relativeOffset;\n for (var i = 0; i < count; i++) {\n list[i] = dataView.getUint8(offset++);\n }\n\n this.relativeOffset += count;\n return list;\n};\n\n/**\n * Parse a list of items.\n * Record count is optional, if omitted it is read from the stream.\n * itemCallback is one of the Parser methods.\n */\nParser.prototype.parseList = function(count, itemCallback) {\n if (!itemCallback) {\n itemCallback = count;\n count = this.parseUShort();\n }\n var list = new Array(count);\n for (var i = 0; i < count; i++) {\n list[i] = itemCallback.call(this);\n }\n return list;\n};\n\nParser.prototype.parseList32 = function(count, itemCallback) {\n if (!itemCallback) {\n itemCallback = count;\n count = this.parseULong();\n }\n var list = new Array(count);\n for (var i = 0; i < count; i++) {\n list[i] = itemCallback.call(this);\n }\n return list;\n};\n\n/**\n * Parse a list of records.\n * Record count is optional, if omitted it is read from the stream.\n * Example of recordDescription: { sequenceIndex: Parser.uShort, lookupListIndex: Parser.uShort }\n */\nParser.prototype.parseRecordList = function(count, recordDescription) {\n // If the count argument is absent, read it in the stream.\n if (!recordDescription) {\n recordDescription = count;\n count = this.parseUShort();\n }\n var records = new Array(count);\n var fields = Object.keys(recordDescription);\n for (var i = 0; i < count; i++) {\n var rec = {};\n for (var j = 0; j < fields.length; j++) {\n var fieldName = fields[j];\n var fieldType = recordDescription[fieldName];\n rec[fieldName] = fieldType.call(this);\n }\n records[i] = rec;\n }\n return records;\n};\n\nParser.prototype.parseRecordList32 = function(count, recordDescription) {\n // If the count argument is absent, read it in the stream.\n if (!recordDescription) {\n recordDescription = count;\n count = this.parseULong();\n }\n var records = new Array(count);\n var fields = Object.keys(recordDescription);\n for (var i = 0; i < count; i++) {\n var rec = {};\n for (var j = 0; j < fields.length; j++) {\n var fieldName = fields[j];\n var fieldType = recordDescription[fieldName];\n rec[fieldName] = fieldType.call(this);\n }\n records[i] = rec;\n }\n return records;\n};\n\n// Parse a data structure into an object\n// Example of description: { sequenceIndex: Parser.uShort, lookupListIndex: Parser.uShort }\nParser.prototype.parseStruct = function(description) {\n if (typeof description === 'function') {\n return description.call(this);\n } else {\n var fields = Object.keys(description);\n var struct = {};\n for (var j = 0; j < fields.length; j++) {\n var fieldName = fields[j];\n var fieldType = description[fieldName];\n struct[fieldName] = fieldType.call(this);\n }\n return struct;\n }\n};\n\n/**\n * Parse a GPOS valueRecord\n * https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#value-record\n * valueFormat is optional, if omitted it is read from the stream.\n */\nParser.prototype.parseValueRecord = function(valueFormat) {\n if (valueFormat === undefined) {\n valueFormat = this.parseUShort();\n }\n if (valueFormat === 0) {\n // valueFormat2 in kerning pairs is most often 0\n // in this case return undefined instead of an empty object, to save space\n return;\n }\n var valueRecord = {};\n\n if (valueFormat & 0x0001) { valueRecord.xPlacement = this.parseShort(); }\n if (valueFormat & 0x0002) { valueRecord.yPlacement = this.parseShort(); }\n if (valueFormat & 0x0004) { valueRecord.xAdvance = this.parseShort(); }\n if (valueFormat & 0x0008) { valueRecord.yAdvance = this.parseShort(); }\n\n // Device table (non-variable font) / VariationIndex table (variable font) not supported\n // https://docs.microsoft.com/fr-fr/typography/opentype/spec/chapter2#devVarIdxTbls\n if (valueFormat & 0x0010) { valueRecord.xPlaDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0020) { valueRecord.yPlaDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0040) { valueRecord.xAdvDevice = undefined; this.parseShort(); }\n if (valueFormat & 0x0080) { valueRecord.yAdvDevice = undefined; this.parseShort(); }\n\n return valueRecord;\n};\n\n/**\n * Parse a list of GPOS valueRecords\n * https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#value-record\n * valueFormat and valueCount are read from the stream.\n */\nParser.prototype.parseValueRecordList = function() {\n var valueFormat = this.parseUShort();\n var valueCount = this.parseUShort();\n var values = new Array(valueCount);\n for (var i = 0; i < valueCount; i++) {\n values[i] = this.parseValueRecord(valueFormat);\n }\n return values;\n};\n\nParser.prototype.parsePointer = function(description, storeOffset) {\n if ( storeOffset === void 0 ) storeOffset = false;\n\n var structOffset = this.parseOffset16();\n if (structOffset > 0) {\n // NULL offset => return undefined\n var offset = this.offset + structOffset;\n var struct = new Parser(this.data, offset).parseStruct(description);\n if (storeOffset) {\n struct.tableOffset = offset;\n }\n return struct;\n }\n return undefined;\n};\n\nParser.prototype.parsePointer32 = function(description) {\n var structOffset = this.parseOffset32();\n if (structOffset > 0) {\n // NULL offset => return undefined\n return new Parser(this.data, this.offset + structOffset).parseStruct(description);\n }\n return undefined;\n};\n\n/**\n * Parse a list of offsets to lists of 16-bit integers,\n * or a list of offsets to lists of offsets to any kind of items.\n * If itemCallback is not provided, a list of list of UShort is assumed.\n * If provided, itemCallback is called on each item and must parse the item.\n * See examples in tables/gsub.js\n */\nParser.prototype.parseListOfLists = function(itemCallback) {\n var offsets = this.parseOffset16List();\n var count = offsets.length;\n var relativeOffset = this.relativeOffset;\n var list = new Array(count);\n for (var i = 0; i < count; i++) {\n var start = offsets[i];\n if (start === 0) {\n // NULL offset\n // Add i as owned property to list. Convenient with assert.\n list[i] = undefined;\n continue;\n }\n this.relativeOffset = start;\n if (itemCallback) {\n var subOffsets = this.parseOffset16List();\n var subList = new Array(subOffsets.length);\n for (var j = 0; j < subOffsets.length; j++) {\n this.relativeOffset = start + subOffsets[j];\n subList[j] = itemCallback.call(this);\n }\n list[i] = subList;\n } else {\n list[i] = this.parseUShortList();\n }\n }\n this.relativeOffset = relativeOffset;\n return list;\n};\n\n///// Complex tables parsing //////////////////////////////////\n\n// Parse a coverage table in a GSUB, GPOS or GDEF table.\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\n// parser.offset must point to the start of the table containing the coverage.\nParser.prototype.parseCoverage = function() {\n var startOffset = this.offset + this.relativeOffset;\n var format = this.parseUShort();\n var count = this.parseUShort();\n if (format === 1) {\n return {\n format: 1,\n glyphs: this.parseUShortList(count)\n };\n } else if (format === 2) {\n var ranges = new Array(count);\n for (var i = 0; i < count; i++) {\n ranges[i] = {\n start: this.parseUShort(),\n end: this.parseUShort(),\n index: this.parseUShort()\n };\n }\n return {\n format: 2,\n ranges: ranges\n };\n }\n throw new Error('0x' + startOffset.toString(16) + ': Coverage format must be 1 or 2.');\n};\n\n// Parse a Class Definition Table in a GSUB, GPOS or GDEF table.\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\nParser.prototype.parseClassDef = function() {\n var startOffset = this.offset + this.relativeOffset;\n var format = this.parseUShort();\n if (format === 1) {\n return {\n format: 1,\n startGlyph: this.parseUShort(),\n classes: this.parseUShortList()\n };\n } else if (format === 2) {\n return {\n format: 2,\n ranges: this.parseRecordList({\n start: Parser.uShort,\n end: Parser.uShort,\n classId: Parser.uShort\n })\n };\n }\n throw new Error('0x' + startOffset.toString(16) + ': ClassDef format must be 1 or 2.');\n};\n\n///// Static methods ///////////////////////////////////\n// These convenience methods can be used as callbacks and should be called with \"this\" context set to a Parser instance.\n\nParser.list = function(count, itemCallback) {\n return function() {\n return this.parseList(count, itemCallback);\n };\n};\n\nParser.list32 = function(count, itemCallback) {\n return function() {\n return this.parseList32(count, itemCallback);\n };\n};\n\nParser.recordList = function(count, recordDescription) {\n return function() {\n return this.parseRecordList(count, recordDescription);\n };\n};\n\nParser.recordList32 = function(count, recordDescription) {\n return function() {\n return this.parseRecordList32(count, recordDescription);\n };\n};\n\nParser.pointer = function(description, storeOffset) {\n if ( storeOffset === void 0 ) storeOffset = false;\n\n return function() {\n return this.parsePointer(description, storeOffset);\n };\n};\n\nParser.pointer32 = function(description) {\n return function() {\n return this.parsePointer32(description);\n };\n};\n\nParser.tag = Parser.prototype.parseTag;\nParser.byte = Parser.prototype.parseByte;\nParser.uShort = Parser.offset16 = Parser.prototype.parseUShort;\nParser.uShortList = Parser.prototype.parseUShortList;\nParser.uInt24 = Parser.prototype.parseUInt24;\nParser.uLong = Parser.offset32 = Parser.prototype.parseULong;\nParser.uLongList = Parser.prototype.parseULongList;\nParser.uInt24List = Parser.prototype.parseUInt24List;\nParser.struct = Parser.prototype.parseStruct;\nParser.coverage = Parser.prototype.parseCoverage;\nParser.classDef = Parser.prototype.parseClassDef;\n\n///// Script, Feature, Lookup lists ///////////////////////////////////////////////\n// https://www.microsoft.com/typography/OTSPEC/chapter2.htm\n\nvar langSysTable = {\n reserved: Parser.uShort,\n reqFeatureIndex: Parser.uShort,\n featureIndexes: Parser.uShortList\n};\n\nParser.prototype.parseScriptList = function() {\n return this.parsePointer(Parser.recordList({\n tag: Parser.tag,\n script: Parser.pointer({\n defaultLangSys: Parser.pointer(langSysTable),\n langSysRecords: Parser.recordList({\n tag: Parser.tag,\n langSys: Parser.pointer(langSysTable)\n })\n })\n })) || [];\n};\n\nParser.prototype.parseFeatureList = function() {\n return this.parsePointer(Parser.recordList({\n tag: Parser.tag,\n feature: Parser.pointer({\n featureParams: Parser.offset16,\n lookupListIndexes: Parser.uShortList\n }, true)\n })) || [];\n};\n\nParser.prototype.parseStylisticSetFeatureParams = function() {\n return this.parsePointer({\n version: Parser.uShort,\n uiNameId: Parser.uShort\n }) || [];\n};\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/features_ae#tag-cv01--cv99\nParser.prototype.parseCharacterVariantFeatureParams = function() {\n return this.parsePointer({\n format: Parser.uShort,\n featUiLabelNameId: Parser.uShort,\n featUiTooltipTextNameId: Parser.uShort,\n sampleTextNameId: Parser.uShort,\n numNamedParameters: Parser.uShort,\n firstParamUiLabelNameId: Parser.uShort,\n characters: Parser.uInt24List\n }) || [];\n};\n\nParser.prototype.parseLookupList = function(lookupTableParsers) {\n return this.parsePointer(Parser.list(Parser.pointer(function() {\n var lookupType = this.parseUShort();\n check.argument(1 <= lookupType && lookupType <= 9, 'GPOS/GSUB lookup type ' + lookupType + ' unknown.');\n var lookupFlag = this.parseUShort();\n var useMarkFilteringSet = lookupFlag & 0x10;\n return {\n lookupType: lookupType,\n lookupFlag: lookupFlag,\n subtables: this.parseList(Parser.pointer(lookupTableParsers[lookupType])),\n markFilteringSet: useMarkFilteringSet ? this.parseUShort() : undefined\n };\n }))) || [];\n};\n\nParser.prototype.parseFeatureVariationsList = function() {\n return this.parsePointer32(function() {\n var majorVersion = this.parseUShort();\n var minorVersion = this.parseUShort();\n check.argument(majorVersion === 1 && minorVersion < 1, 'GPOS/GSUB feature variations table unknown.');\n var featureVariations = this.parseRecordList32({\n conditionSetOffset: Parser.offset32,\n featureTableSubstitutionOffset: Parser.offset32\n });\n return featureVariations;\n }) || [];\n};\n\nvar parse = {\n getByte: getByte,\n getCard8: getByte,\n getUShort: getUShort,\n getCard16: getUShort,\n getShort: getShort,\n getUInt24: getUInt24,\n getULong: getULong,\n getFixed: getFixed,\n getTag: getTag,\n getOffset: getOffset,\n getBytes: getBytes,\n bytesToString: bytesToString,\n Parser: Parser,\n};\n\n// The `cmap` table stores the mappings from characters to glyphs.\n\nfunction parseCmapTableFormat12(cmap, p) {\n //Skip reserved.\n p.parseUShort();\n\n // Length in bytes of the sub-tables.\n cmap.length = p.parseULong();\n cmap.language = p.parseULong();\n\n var groupCount;\n cmap.groupCount = groupCount = p.parseULong();\n cmap.glyphIndexMap = {};\n\n for (var i = 0; i < groupCount; i += 1) {\n var startCharCode = p.parseULong();\n var endCharCode = p.parseULong();\n var startGlyphId = p.parseULong();\n\n for (var c = startCharCode; c <= endCharCode; c += 1) {\n cmap.glyphIndexMap[c] = startGlyphId;\n startGlyphId++;\n }\n }\n}\n\nfunction parseCmapTableFormat4(cmap, p, data, start, offset) {\n // Length in bytes of the sub-tables.\n cmap.length = p.parseUShort();\n cmap.language = p.parseUShort();\n\n // segCount is stored x 2.\n var segCount;\n cmap.segCount = segCount = p.parseUShort() >> 1;\n\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n\n // The \"unrolled\" mapping from character codes to glyph indices.\n cmap.glyphIndexMap = {};\n var endCountParser = new parse.Parser(data, start + offset + 14);\n var startCountParser = new parse.Parser(data, start + offset + 16 + segCount * 2);\n var idDeltaParser = new parse.Parser(data, start + offset + 16 + segCount * 4);\n var idRangeOffsetParser = new parse.Parser(data, start + offset + 16 + segCount * 6);\n var glyphIndexOffset = start + offset + 16 + segCount * 8;\n for (var i = 0; i < segCount - 1; i += 1) {\n var glyphIndex = (void 0);\n var endCount = endCountParser.parseUShort();\n var startCount = startCountParser.parseUShort();\n var idDelta = idDeltaParser.parseShort();\n var idRangeOffset = idRangeOffsetParser.parseUShort();\n for (var c = startCount; c <= endCount; c += 1) {\n if (idRangeOffset !== 0) {\n // The idRangeOffset is relative to the current position in the idRangeOffset array.\n // Take the current offset in the idRangeOffset array.\n glyphIndexOffset = (idRangeOffsetParser.offset + idRangeOffsetParser.relativeOffset - 2);\n\n // Add the value of the idRangeOffset, which will move us into the glyphIndex array.\n glyphIndexOffset += idRangeOffset;\n\n // Then add the character index of the current segment, multiplied by 2 for USHORTs.\n glyphIndexOffset += (c - startCount) * 2;\n glyphIndex = parse.getUShort(data, glyphIndexOffset);\n if (glyphIndex !== 0) {\n glyphIndex = (glyphIndex + idDelta) & 0xFFFF;\n }\n } else {\n glyphIndex = (c + idDelta) & 0xFFFF;\n }\n\n cmap.glyphIndexMap[c] = glyphIndex;\n }\n }\n}\n\n// Parse the `cmap` table. This table stores the mappings from characters to glyphs.\n// There are many available formats, but we only support the Windows format 4 and 12.\n// This function returns a `CmapEncoding` object or null if no supported format could be found.\nfunction parseCmapTable(data, start) {\n var cmap = {};\n cmap.version = parse.getUShort(data, start);\n check.argument(cmap.version === 0, 'cmap table version should be 0.');\n\n // The cmap table can contain many sub-tables, each with their own format.\n // We're only interested in a \"platform 0\" (Unicode format) and \"platform 3\" (Windows format) table.\n cmap.numTables = parse.getUShort(data, start + 2);\n var offset = -1;\n for (var i = cmap.numTables - 1; i >= 0; i -= 1) {\n var platformId = parse.getUShort(data, start + 4 + (i * 8));\n var encodingId = parse.getUShort(data, start + 4 + (i * 8) + 2);\n if ((platformId === 3 && (encodingId === 0 || encodingId === 1 || encodingId === 10)) ||\n (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 2 || encodingId === 3 || encodingId === 4))) {\n offset = parse.getULong(data, start + 4 + (i * 8) + 4);\n break;\n }\n }\n\n if (offset === -1) {\n // There is no cmap table in the font that we support.\n throw new Error('No valid cmap sub-tables found.');\n }\n\n var p = new parse.Parser(data, start + offset);\n cmap.format = p.parseUShort();\n\n if (cmap.format === 12) {\n parseCmapTableFormat12(cmap, p);\n } else if (cmap.format === 4) {\n parseCmapTableFormat4(cmap, p, data, start, offset);\n } else {\n throw new Error('Only format 4 and 12 cmap tables are supported (found format ' + cmap.format + ').');\n }\n\n return cmap;\n}\n\nfunction addSegment(t, code, glyphIndex) {\n t.segments.push({\n end: code,\n start: code,\n delta: -(code - glyphIndex),\n offset: 0,\n glyphIndex: glyphIndex\n });\n}\n\nfunction addTerminatorSegment(t) {\n t.segments.push({\n end: 0xFFFF,\n start: 0xFFFF,\n delta: 1,\n offset: 0\n });\n}\n\n// Make cmap table, format 4 by default, 12 if needed only\nfunction makeCmapTable(glyphs) {\n // Plan 0 is the base Unicode Plan but emojis, for example are on another plan, and needs cmap 12 format (with 32bit)\n var isPlan0Only = true;\n var i;\n\n // Check if we need to add cmap format 12 or if format 4 only is fine\n for (i = glyphs.length - 1; i > 0; i -= 1) {\n var g = glyphs.get(i);\n if (g.unicode > 65535) {\n console.log('Adding CMAP format 12 (needed!)');\n isPlan0Only = false;\n break;\n }\n }\n\n var cmapTable = [\n {name: 'version', type: 'USHORT', value: 0},\n {name: 'numTables', type: 'USHORT', value: isPlan0Only ? 1 : 2},\n\n // CMAP 4 header\n {name: 'platformID', type: 'USHORT', value: 3},\n {name: 'encodingID', type: 'USHORT', value: 1},\n {name: 'offset', type: 'ULONG', value: isPlan0Only ? 12 : (12 + 8)}\n ];\n\n if (!isPlan0Only)\n { cmapTable = cmapTable.concat([\n // CMAP 12 header\n {name: 'cmap12PlatformID', type: 'USHORT', value: 3}, // We encode only for PlatformID = 3 (Windows) because it is supported everywhere\n {name: 'cmap12EncodingID', type: 'USHORT', value: 10},\n {name: 'cmap12Offset', type: 'ULONG', value: 0}\n ]); }\n\n cmapTable = cmapTable.concat([\n // CMAP 4 Subtable\n {name: 'format', type: 'USHORT', value: 4},\n {name: 'cmap4Length', type: 'USHORT', value: 0},\n {name: 'language', type: 'USHORT', value: 0},\n {name: 'segCountX2', type: 'USHORT', value: 0},\n {name: 'searchRange', type: 'USHORT', value: 0},\n {name: 'entrySelector', type: 'USHORT', value: 0},\n {name: 'rangeShift', type: 'USHORT', value: 0}\n ]);\n\n var t = new table.Table('cmap', cmapTable);\n\n t.segments = [];\n for (i = 0; i < glyphs.length; i += 1) {\n var glyph = glyphs.get(i);\n for (var j = 0; j < glyph.unicodes.length; j += 1) {\n addSegment(t, glyph.unicodes[j], i);\n }\n\n t.segments = t.segments.sort(function (a, b) {\n return a.start - b.start;\n });\n }\n\n addTerminatorSegment(t);\n\n var segCount = t.segments.length;\n var segCountToRemove = 0;\n\n // CMAP 4\n // Set up parallel segment arrays.\n var endCounts = [];\n var startCounts = [];\n var idDeltas = [];\n var idRangeOffsets = [];\n var glyphIds = [];\n\n // CMAP 12\n var cmap12Groups = [];\n\n // Reminder this loop is not following the specification at 100%\n // The specification -> find suites of characters and make a group\n // Here we're doing one group for each letter\n // Doing as the spec can save 8 times (or more) space\n for (i = 0; i < segCount; i += 1) {\n var segment = t.segments[i];\n\n // CMAP 4\n if (segment.end <= 65535 && segment.start <= 65535) {\n endCounts = endCounts.concat({name: 'end_' + i, type: 'USHORT', value: segment.end});\n startCounts = startCounts.concat({name: 'start_' + i, type: 'USHORT', value: segment.start});\n idDeltas = idDeltas.concat({name: 'idDelta_' + i, type: 'SHORT', value: segment.delta});\n idRangeOffsets = idRangeOffsets.concat({name: 'idRangeOffset_' + i, type: 'USHORT', value: segment.offset});\n if (segment.glyphId !== undefined) {\n glyphIds = glyphIds.concat({name: 'glyph_' + i, type: 'USHORT', value: segment.glyphId});\n }\n } else {\n // Skip Unicode > 65535 (16bit unsigned max) for CMAP 4, will be added in CMAP 12\n segCountToRemove += 1;\n }\n\n // CMAP 12\n // Skip Terminator Segment\n if (!isPlan0Only && segment.glyphIndex !== undefined) {\n cmap12Groups = cmap12Groups.concat({name: 'cmap12Start_' + i, type: 'ULONG', value: segment.start});\n cmap12Groups = cmap12Groups.concat({name: 'cmap12End_' + i, type: 'ULONG', value: segment.end});\n cmap12Groups = cmap12Groups.concat({name: 'cmap12Glyph_' + i, type: 'ULONG', value: segment.glyphIndex});\n }\n }\n\n // CMAP 4 Subtable\n t.segCountX2 = (segCount - segCountToRemove) * 2;\n t.searchRange = Math.pow(2, Math.floor(Math.log((segCount - segCountToRemove)) / Math.log(2))) * 2;\n t.entrySelector = Math.log(t.searchRange / 2) / Math.log(2);\n t.rangeShift = t.segCountX2 - t.searchRange;\n\n t.fields = t.fields.concat(endCounts);\n t.fields.push({name: 'reservedPad', type: 'USHORT', value: 0});\n t.fields = t.fields.concat(startCounts);\n t.fields = t.fields.concat(idDeltas);\n t.fields = t.fields.concat(idRangeOffsets);\n t.fields = t.fields.concat(glyphIds);\n\n t.cmap4Length = 14 + // Subtable header\n endCounts.length * 2 +\n 2 + // reservedPad\n startCounts.length * 2 +\n idDeltas.length * 2 +\n idRangeOffsets.length * 2 +\n glyphIds.length * 2;\n\n if (!isPlan0Only) {\n // CMAP 12 Subtable\n var cmap12Length = 16 + // Subtable header\n cmap12Groups.length * 4;\n\n t.cmap12Offset = 12 + (2 * 2) + 4 + t.cmap4Length;\n t.fields = t.fields.concat([\n {name: 'cmap12Format', type: 'USHORT', value: 12},\n {name: 'cmap12Reserved', type: 'USHORT', value: 0},\n {name: 'cmap12Length', type: 'ULONG', value: cmap12Length},\n {name: 'cmap12Language', type: 'ULONG', value: 0},\n {name: 'cmap12nGroups', type: 'ULONG', value: cmap12Groups.length / 3}\n ]);\n\n t.fields = t.fields.concat(cmap12Groups);\n }\n\n return t;\n}\n\nvar cmap = { parse: parseCmapTable, make: makeCmapTable };\n\n// Glyph encoding\n\nvar cffStandardStrings = [\n '.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright',\n 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two',\n 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater',\n 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',\n 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore',\n 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',\n 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling',\n 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft',\n 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph',\n 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand',\n 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring',\n 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE',\n 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu',\n 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn',\n 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright',\n 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex',\n 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex',\n 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute',\n 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute',\n 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute',\n 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave',\n 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior',\n 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', '266 ff', 'onedotenleader',\n 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle',\n 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior',\n 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior',\n 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl',\n 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall',\n 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall',\n 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',\n 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall',\n 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall',\n 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall',\n 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds',\n 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior',\n 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior',\n 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior',\n 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall',\n 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall',\n 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall',\n 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall',\n 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000',\n '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'];\n\nvar cffStandardEncoding = [\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright',\n 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two',\n 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater',\n 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',\n 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore',\n 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',\n 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle',\n 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger',\n 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright',\n 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde',\n 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron',\n 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '',\n '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '',\n 'lslash', 'oslash', 'oe', 'germandbls'];\n\nvar cffExpertEncoding = [\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior',\n 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader',\n 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle',\n 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon',\n 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior',\n 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior',\n 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl',\n 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall',\n 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall',\n 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall',\n 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '',\n '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',\n 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall',\n 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior',\n '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters',\n 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '',\n '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior',\n 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior',\n 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior',\n 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall',\n 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall',\n 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall',\n 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall',\n 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall',\n 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\n\nvar standardNames = [\n '.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent',\n 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash',\n 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less',\n 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',\n 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',\n 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',\n 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde',\n 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave',\n 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis',\n 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis',\n 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section',\n 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal',\n 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation',\n 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown',\n 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright',\n 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft',\n 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction',\n 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase',\n 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute',\n 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex',\n 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut',\n 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth',\n 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior',\n 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla',\n 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n\n/**\n * This is the encoding used for fonts created from scratch.\n * It loops through all glyphs and finds the appropriate unicode value.\n * Since it's linear time, other encodings will be faster.\n * @exports opentype.DefaultEncoding\n * @class\n * @constructor\n * @param {opentype.Font}\n */\nfunction DefaultEncoding(font) {\n this.font = font;\n}\n\nDefaultEncoding.prototype.charToGlyphIndex = function(c) {\n var code = c.codePointAt(0);\n var glyphs = this.font.glyphs;\n if (glyphs) {\n for (var i = 0; i < glyphs.length; i += 1) {\n var glyph = glyphs.get(i);\n for (var j = 0; j < glyph.unicodes.length; j += 1) {\n if (glyph.unicodes[j] === code) {\n return i;\n }\n }\n }\n }\n return null;\n};\n\n/**\n * @exports opentype.CmapEncoding\n * @class\n * @constructor\n * @param {Object} cmap - a object with the cmap encoded data\n */\nfunction CmapEncoding(cmap) {\n this.cmap = cmap;\n}\n\n/**\n * @param {string} c - the character\n * @return {number} The glyph index.\n */\nCmapEncoding.prototype.charToGlyphIndex = function(c) {\n return this.cmap.glyphIndexMap[c.codePointAt(0)] || 0;\n};\n\n/**\n * @exports opentype.CffEncoding\n * @class\n * @constructor\n * @param {string} encoding - The encoding\n * @param {Array} charset - The character set.\n */\nfunction CffEncoding(encoding, charset) {\n this.encoding = encoding;\n this.charset = charset;\n}\n\n/**\n * @param {string} s - The character\n * @return {number} The index.\n */\nCffEncoding.prototype.charToGlyphIndex = function(s) {\n var code = s.codePointAt(0);\n var charName = this.encoding[code];\n return this.charset.indexOf(charName);\n};\n\n/**\n * @exports opentype.GlyphNames\n * @class\n * @constructor\n * @param {Object} post\n */\nfunction GlyphNames(post) {\n switch (post.version) {\n case 1:\n this.names = standardNames.slice();\n break;\n case 2:\n this.names = new Array(post.numberOfGlyphs);\n for (var i = 0; i < post.numberOfGlyphs; i++) {\n if (post.glyphNameIndex[i] < standardNames.length) {\n this.names[i] = standardNames[post.glyphNameIndex[i]];\n } else {\n this.names[i] = post.names[post.glyphNameIndex[i] - standardNames.length];\n }\n }\n\n break;\n case 2.5:\n this.names = new Array(post.numberOfGlyphs);\n for (var i$1 = 0; i$1 < post.numberOfGlyphs; i$1++) {\n this.names[i$1] = standardNames[i$1 + post.glyphNameIndex[i$1]];\n }\n\n break;\n case 3:\n this.names = [];\n break;\n default:\n this.names = [];\n break;\n }\n}\n\n/**\n * Gets the index of a glyph by name.\n * @param {string} name - The glyph name\n * @return {number} The index\n */\nGlyphNames.prototype.nameToGlyphIndex = function(name) {\n return this.names.indexOf(name);\n};\n\n/**\n * @param {number} gid\n * @return {string}\n */\nGlyphNames.prototype.glyphIndexToName = function(gid) {\n return this.names[gid];\n};\n\nfunction addGlyphNamesAll(font) {\n var glyph;\n var glyphIndexMap = font.tables.cmap.glyphIndexMap;\n var charCodes = Object.keys(glyphIndexMap);\n\n for (var i = 0; i < charCodes.length; i += 1) {\n var c = charCodes[i];\n var glyphIndex = glyphIndexMap[c];\n glyph = font.glyphs.get(glyphIndex);\n glyph.addUnicode(parseInt(c));\n }\n\n for (var i$1 = 0; i$1 < font.glyphs.length; i$1 += 1) {\n glyph = font.glyphs.get(i$1);\n if (font.cffEncoding) {\n if (font.isCIDFont) {\n glyph.name = 'gid' + i$1;\n } else {\n glyph.name = font.cffEncoding.charset[i$1];\n }\n } else if (font.glyphNames.names) {\n glyph.name = font.glyphNames.glyphIndexToName(i$1);\n }\n }\n}\n\nfunction addGlyphNamesToUnicodeMap(font) {\n font._IndexToUnicodeMap = {};\n\n var glyphIndexMap = font.tables.cmap.glyphIndexMap;\n var charCodes = Object.keys(glyphIndexMap);\n\n for (var i = 0; i < charCodes.length; i += 1) {\n var c = charCodes[i];\n var glyphIndex = glyphIndexMap[c];\n if (font._IndexToUnicodeMap[glyphIndex] === undefined) {\n font._IndexToUnicodeMap[glyphIndex] = {\n unicodes: [parseInt(c)]\n };\n } else {\n font._IndexToUnicodeMap[glyphIndex].unicodes.push(parseInt(c));\n }\n }\n}\n\n/**\n * @alias opentype.addGlyphNames\n * @param {opentype.Font}\n * @param {Object}\n */\nfunction addGlyphNames(font, opt) {\n if (opt.lowMemory) {\n addGlyphNamesToUnicodeMap(font);\n } else {\n addGlyphNamesAll(font);\n }\n}\n\n// Drawing utility functions.\n\n// Draw a line on the given context from point `x1,y1` to point `x2,y2`.\nfunction line(ctx, x1, y1, x2, y2) {\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n}\n\nvar draw = { line: line };\n\n// The Glyph object\n// import glyf from './tables/glyf' Can't be imported here, because it's a circular dependency\n\nfunction getPathDefinition(glyph, path) {\n var _path = path || new Path();\n return {\n configurable: true,\n\n get: function() {\n if (typeof _path === 'function') {\n _path = _path();\n }\n\n return _path;\n },\n\n set: function(p) {\n _path = p;\n }\n };\n}\n/**\n * @typedef GlyphOptions\n * @type Object\n * @property {string} [name] - The glyph name\n * @property {number} [unicode]\n * @property {Array} [unicodes]\n * @property {number} [xMin]\n * @property {number} [yMin]\n * @property {number} [xMax]\n * @property {number} [yMax]\n * @property {number} [advanceWidth]\n */\n\n// A Glyph is an individual mark that often corresponds to a character.\n// Some glyphs, such as ligatures, are a combination of many characters.\n// Glyphs are the basic building blocks of a font.\n//\n// The `Glyph` class contains utility methods for drawing the path and its points.\n/**\n * @exports opentype.Glyph\n * @class\n * @param {GlyphOptions}\n * @constructor\n */\nfunction Glyph(options) {\n // By putting all the code on a prototype function (which is only declared once)\n // we reduce the memory requirements for larger fonts by some 2%\n this.bindConstructorValues(options);\n}\n\n/**\n * @param {GlyphOptions}\n */\nGlyph.prototype.bindConstructorValues = function(options) {\n this.index = options.index || 0;\n\n // These three values cannot be deferred for memory optimization:\n this.name = options.name || null;\n this.unicode = options.unicode || undefined;\n this.unicodes = options.unicodes || options.unicode !== undefined ? [options.unicode] : [];\n\n // But by binding these values only when necessary, we reduce can\n // the memory requirements by almost 3% for larger fonts.\n if ('xMin' in options) {\n this.xMin = options.xMin;\n }\n\n if ('yMin' in options) {\n this.yMin = options.yMin;\n }\n\n if ('xMax' in options) {\n this.xMax = options.xMax;\n }\n\n if ('yMax' in options) {\n this.yMax = options.yMax;\n }\n\n if ('advanceWidth' in options) {\n this.advanceWidth = options.advanceWidth;\n }\n\n // The path for a glyph is the most memory intensive, and is bound as a value\n // with a getter/setter to ensure we actually do path parsing only once the\n // path is actually needed by anything.\n Object.defineProperty(this, 'path', getPathDefinition(this, options.path));\n};\n\n/**\n * @param {number}\n */\nGlyph.prototype.addUnicode = function(unicode) {\n if (this.unicodes.length === 0) {\n this.unicode = unicode;\n }\n\n this.unicodes.push(unicode);\n};\n\n/**\n * Calculate the minimum bounding box for this glyph.\n * @return {opentype.BoundingBox}\n */\nGlyph.prototype.getBoundingBox = function() {\n return this.path.getBoundingBox();\n};\n\n/**\n * Convert the glyph to a Path we can draw on a drawing context.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {Object=} options - xScale, yScale to stretch the glyph.\n * @param {opentype.Font} if hinting is to be used, the font\n * @return {opentype.Path}\n */\nGlyph.prototype.getPath = function(x, y, fontSize, options, font) {\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 72;\n var commands;\n var hPoints;\n if (!options) { options = { }; }\n var xScale = options.xScale;\n var yScale = options.yScale;\n\n if (options.hinting && font && font.hinting) {\n // in case of hinting, the hinting engine takes care\n // of scaling the points (not the path) before hinting.\n hPoints = this.path && font.hinting.exec(this, fontSize);\n // in case the hinting engine failed hPoints is undefined\n // and thus reverts to plain rending\n }\n\n if (hPoints) {\n // Call font.hinting.getCommands instead of `glyf.getPath(hPoints).commands` to avoid a circular dependency\n commands = font.hinting.getCommands(hPoints);\n x = Math.round(x);\n y = Math.round(y);\n // TODO in case of hinting xyScaling is not yet supported\n xScale = yScale = 1;\n } else {\n commands = this.path.commands;\n var scale = 1 / (this.path.unitsPerEm || 1000) * fontSize;\n if (xScale === undefined) { xScale = scale; }\n if (yScale === undefined) { yScale = scale; }\n }\n\n var p = new Path();\n for (var i = 0; i < commands.length; i += 1) {\n var cmd = commands[i];\n if (cmd.type === 'M') {\n p.moveTo(x + (cmd.x * xScale), y + (-cmd.y * yScale));\n } else if (cmd.type === 'L') {\n p.lineTo(x + (cmd.x * xScale), y + (-cmd.y * yScale));\n } else if (cmd.type === 'Q') {\n p.quadraticCurveTo(x + (cmd.x1 * xScale), y + (-cmd.y1 * yScale),\n x + (cmd.x * xScale), y + (-cmd.y * yScale));\n } else if (cmd.type === 'C') {\n p.curveTo(x + (cmd.x1 * xScale), y + (-cmd.y1 * yScale),\n x + (cmd.x2 * xScale), y + (-cmd.y2 * yScale),\n x + (cmd.x * xScale), y + (-cmd.y * yScale));\n } else if (cmd.type === 'Z') {\n p.closePath();\n }\n }\n\n return p;\n};\n\n/**\n * Split the glyph into contours.\n * This function is here for backwards compatibility, and to\n * provide raw access to the TrueType glyph outlines.\n * @return {Array}\n */\nGlyph.prototype.getContours = function() {\n if (this.points === undefined) {\n return [];\n }\n\n var contours = [];\n var currentContour = [];\n for (var i = 0; i < this.points.length; i += 1) {\n var pt = this.points[i];\n currentContour.push(pt);\n if (pt.lastPointOfContour) {\n contours.push(currentContour);\n currentContour = [];\n }\n }\n\n check.argument(currentContour.length === 0, 'There are still points left in the current contour.');\n return contours;\n};\n\n/**\n * Calculate the xMin/yMin/xMax/yMax/lsb/rsb for a Glyph.\n * @return {Object}\n */\nGlyph.prototype.getMetrics = function() {\n var commands = this.path.commands;\n var xCoords = [];\n var yCoords = [];\n for (var i = 0; i < commands.length; i += 1) {\n var cmd = commands[i];\n if (cmd.type !== 'Z') {\n xCoords.push(cmd.x);\n yCoords.push(cmd.y);\n }\n\n if (cmd.type === 'Q' || cmd.type === 'C') {\n xCoords.push(cmd.x1);\n yCoords.push(cmd.y1);\n }\n\n if (cmd.type === 'C') {\n xCoords.push(cmd.x2);\n yCoords.push(cmd.y2);\n }\n }\n\n var metrics = {\n xMin: Math.min.apply(null, xCoords),\n yMin: Math.min.apply(null, yCoords),\n xMax: Math.max.apply(null, xCoords),\n yMax: Math.max.apply(null, yCoords),\n leftSideBearing: this.leftSideBearing\n };\n\n if (!isFinite(metrics.xMin)) {\n metrics.xMin = 0;\n }\n\n if (!isFinite(metrics.xMax)) {\n metrics.xMax = this.advanceWidth;\n }\n\n if (!isFinite(metrics.yMin)) {\n metrics.yMin = 0;\n }\n\n if (!isFinite(metrics.yMax)) {\n metrics.yMax = 0;\n }\n\n metrics.rightSideBearing = this.advanceWidth - metrics.leftSideBearing - (metrics.xMax - metrics.xMin);\n return metrics;\n};\n\n/**\n * Draw the glyph on the given context.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context, like Canvas.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {Object=} options - xScale, yScale to stretch the glyph.\n */\nGlyph.prototype.draw = function(ctx, x, y, fontSize, options) {\n this.getPath(x, y, fontSize, options).draw(ctx);\n};\n\n/**\n * Draw the points of the glyph.\n * On-curve points will be drawn in blue, off-curve points will be drawn in red.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context, like Canvas.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n */\nGlyph.prototype.drawPoints = function(ctx, x, y, fontSize) {\n function drawCircles(l, x, y, scale) {\n ctx.beginPath();\n for (var j = 0; j < l.length; j += 1) {\n ctx.moveTo(x + (l[j].x * scale), y + (l[j].y * scale));\n ctx.arc(x + (l[j].x * scale), y + (l[j].y * scale), 2, 0, Math.PI * 2, false);\n }\n\n ctx.closePath();\n ctx.fill();\n }\n\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 24;\n var scale = 1 / this.path.unitsPerEm * fontSize;\n\n var blueCircles = [];\n var redCircles = [];\n var path = this.path;\n for (var i = 0; i < path.commands.length; i += 1) {\n var cmd = path.commands[i];\n if (cmd.x !== undefined) {\n blueCircles.push({x: cmd.x, y: -cmd.y});\n }\n\n if (cmd.x1 !== undefined) {\n redCircles.push({x: cmd.x1, y: -cmd.y1});\n }\n\n if (cmd.x2 !== undefined) {\n redCircles.push({x: cmd.x2, y: -cmd.y2});\n }\n }\n\n ctx.fillStyle = 'blue';\n drawCircles(blueCircles, x, y, scale);\n ctx.fillStyle = 'red';\n drawCircles(redCircles, x, y, scale);\n};\n\n/**\n * Draw lines indicating important font measurements.\n * Black lines indicate the origin of the coordinate system (point 0,0).\n * Blue lines indicate the glyph bounding box.\n * Green line indicates the advance width of the glyph.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context, like Canvas.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n */\nGlyph.prototype.drawMetrics = function(ctx, x, y, fontSize) {\n var scale;\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 24;\n scale = 1 / this.path.unitsPerEm * fontSize;\n ctx.lineWidth = 1;\n\n // Draw the origin\n ctx.strokeStyle = 'black';\n draw.line(ctx, x, -10000, x, 10000);\n draw.line(ctx, -10000, y, 10000, y);\n\n // This code is here due to memory optimization: by not using\n // defaults in the constructor, we save a notable amount of memory.\n var xMin = this.xMin || 0;\n var yMin = this.yMin || 0;\n var xMax = this.xMax || 0;\n var yMax = this.yMax || 0;\n var advanceWidth = this.advanceWidth || 0;\n\n // Draw the glyph box\n ctx.strokeStyle = 'blue';\n draw.line(ctx, x + (xMin * scale), -10000, x + (xMin * scale), 10000);\n draw.line(ctx, x + (xMax * scale), -10000, x + (xMax * scale), 10000);\n draw.line(ctx, -10000, y + (-yMin * scale), 10000, y + (-yMin * scale));\n draw.line(ctx, -10000, y + (-yMax * scale), 10000, y + (-yMax * scale));\n\n // Draw the advance width\n ctx.strokeStyle = 'green';\n draw.line(ctx, x + (advanceWidth * scale), -10000, x + (advanceWidth * scale), 10000);\n};\n\n// The GlyphSet object\n\n// Define a property on the glyph that depends on the path being loaded.\nfunction defineDependentProperty(glyph, externalName, internalName) {\n Object.defineProperty(glyph, externalName, {\n get: function() {\n // Request the path property to make sure the path is loaded.\n glyph.path; // jshint ignore:line\n return glyph[internalName];\n },\n set: function(newValue) {\n glyph[internalName] = newValue;\n },\n enumerable: true,\n configurable: true\n });\n}\n\n/**\n * A GlyphSet represents all glyphs available in the font, but modelled using\n * a deferred glyph loader, for retrieving glyphs only once they are absolutely\n * necessary, to keep the memory footprint down.\n * @exports opentype.GlyphSet\n * @class\n * @param {opentype.Font}\n * @param {Array}\n */\nfunction GlyphSet(font, glyphs) {\n this.font = font;\n this.glyphs = {};\n if (Array.isArray(glyphs)) {\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n glyph.path.unitsPerEm = font.unitsPerEm;\n this.glyphs[i] = glyph;\n }\n }\n\n this.length = (glyphs && glyphs.length) || 0;\n}\n\n/**\n * @param {number} index\n * @return {opentype.Glyph}\n */\nGlyphSet.prototype.get = function(index) {\n // this.glyphs[index] is 'undefined' when low memory mode is on. glyph is pushed on request only.\n if (this.glyphs[index] === undefined) {\n this.font._push(index);\n if (typeof this.glyphs[index] === 'function') {\n this.glyphs[index] = this.glyphs[index]();\n }\n\n var glyph = this.glyphs[index];\n var unicodeObj = this.font._IndexToUnicodeMap[index];\n\n if (unicodeObj) {\n for (var j = 0; j < unicodeObj.unicodes.length; j++)\n { glyph.addUnicode(unicodeObj.unicodes[j]); }\n }\n\n if (this.font.cffEncoding) {\n if (this.font.isCIDFont) {\n glyph.name = 'gid' + index;\n } else {\n glyph.name = this.font.cffEncoding.charset[index];\n }\n } else if (this.font.glyphNames.names) {\n glyph.name = this.font.glyphNames.glyphIndexToName(index);\n }\n\n this.glyphs[index].advanceWidth = this.font._hmtxTableData[index].advanceWidth;\n this.glyphs[index].leftSideBearing = this.font._hmtxTableData[index].leftSideBearing;\n } else {\n if (typeof this.glyphs[index] === 'function') {\n this.glyphs[index] = this.glyphs[index]();\n }\n }\n\n return this.glyphs[index];\n};\n\n/**\n * @param {number} index\n * @param {Object}\n */\nGlyphSet.prototype.push = function(index, loader) {\n this.glyphs[index] = loader;\n this.length++;\n};\n\n/**\n * @alias opentype.glyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @return {opentype.Glyph}\n */\nfunction glyphLoader(font, index) {\n return new Glyph({index: index, font: font});\n}\n\n/**\n * Generate a stub glyph that can be filled with all metadata *except*\n * the \"points\" and \"path\" properties, which must be loaded only once\n * the glyph's path is actually requested for text shaping.\n * @alias opentype.ttfGlyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @param {Function} parseGlyph\n * @param {Object} data\n * @param {number} position\n * @param {Function} buildPath\n * @return {opentype.Glyph}\n */\nfunction ttfGlyphLoader(font, index, parseGlyph, data, position, buildPath) {\n return function() {\n var glyph = new Glyph({index: index, font: font});\n\n glyph.path = function() {\n parseGlyph(glyph, data, position);\n var path = buildPath(font.glyphs, glyph);\n path.unitsPerEm = font.unitsPerEm;\n return path;\n };\n\n defineDependentProperty(glyph, 'xMin', '_xMin');\n defineDependentProperty(glyph, 'xMax', '_xMax');\n defineDependentProperty(glyph, 'yMin', '_yMin');\n defineDependentProperty(glyph, 'yMax', '_yMax');\n\n return glyph;\n };\n}\n/**\n * @alias opentype.cffGlyphLoader\n * @param {opentype.Font} font\n * @param {number} index\n * @param {Function} parseCFFCharstring\n * @param {string} charstring\n * @return {opentype.Glyph}\n */\nfunction cffGlyphLoader(font, index, parseCFFCharstring, charstring) {\n return function() {\n var glyph = new Glyph({index: index, font: font});\n\n glyph.path = function() {\n var path = parseCFFCharstring(font, glyph, charstring);\n path.unitsPerEm = font.unitsPerEm;\n return path;\n };\n\n return glyph;\n };\n}\n\nvar glyphset = { GlyphSet: GlyphSet, glyphLoader: glyphLoader, ttfGlyphLoader: ttfGlyphLoader, cffGlyphLoader: cffGlyphLoader };\n\n// The `CFF` table contains the glyph outlines in PostScript format.\n\n// Custom equals function that can also check lists.\nfunction equals(a, b) {\n if (a === b) {\n return true;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; i += 1) {\n if (!equals(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n } else {\n return false;\n }\n}\n\n// Subroutines are encoded using the negative half of the number space.\n// See type 2 chapter 4.7 \"Subroutine operators\".\nfunction calcCFFSubroutineBias(subrs) {\n var bias;\n if (subrs.length < 1240) {\n bias = 107;\n } else if (subrs.length < 33900) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n return bias;\n}\n\n// Parse a `CFF` INDEX array.\n// An index array consists of a list of offsets, then a list of objects at those offsets.\nfunction parseCFFIndex(data, start, conversionFn) {\n var offsets = [];\n var objects = [];\n var count = parse.getCard16(data, start);\n var objectOffset;\n var endOffset;\n if (count !== 0) {\n var offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + ((count + 1) * offsetSize) + 2;\n var pos = start + 3;\n for (var i = 0; i < count + 1; i += 1) {\n offsets.push(parse.getOffset(data, pos, offsetSize));\n pos += offsetSize;\n }\n\n // The total size of the index array is 4 header bytes + the value of the last offset.\n endOffset = objectOffset + offsets[count];\n } else {\n endOffset = start + 2;\n }\n\n for (var i$1 = 0; i$1 < offsets.length - 1; i$1 += 1) {\n var value = parse.getBytes(data, objectOffset + offsets[i$1], objectOffset + offsets[i$1 + 1]);\n if (conversionFn) {\n value = conversionFn(value);\n }\n\n objects.push(value);\n }\n\n return {objects: objects, startOffset: start, endOffset: endOffset};\n}\n\nfunction parseCFFIndexLowMemory(data, start) {\n var offsets = [];\n var count = parse.getCard16(data, start);\n var objectOffset;\n var endOffset;\n if (count !== 0) {\n var offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + ((count + 1) * offsetSize) + 2;\n var pos = start + 3;\n for (var i = 0; i < count + 1; i += 1) {\n offsets.push(parse.getOffset(data, pos, offsetSize));\n pos += offsetSize;\n }\n\n // The total size of the index array is 4 header bytes + the value of the last offset.\n endOffset = objectOffset + offsets[count];\n } else {\n endOffset = start + 2;\n }\n\n return {offsets: offsets, startOffset: start, endOffset: endOffset};\n}\nfunction getCffIndexObject(i, offsets, data, start, conversionFn) {\n var count = parse.getCard16(data, start);\n var objectOffset = 0;\n if (count !== 0) {\n var offsetSize = parse.getByte(data, start + 2);\n objectOffset = start + ((count + 1) * offsetSize) + 2;\n }\n\n var value = parse.getBytes(data, objectOffset + offsets[i], objectOffset + offsets[i + 1]);\n if (conversionFn) {\n value = conversionFn(value);\n }\n return value;\n}\n\n// Parse a `CFF` DICT real value.\nfunction parseFloatOperand(parser) {\n var s = '';\n var eof = 15;\n var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n while (true) {\n var b = parser.parseByte();\n var n1 = b >> 4;\n var n2 = b & 15;\n\n if (n1 === eof) {\n break;\n }\n\n s += lookup[n1];\n\n if (n2 === eof) {\n break;\n }\n\n s += lookup[n2];\n }\n\n return parseFloat(s);\n}\n\n// Parse a `CFF` DICT operand.\nfunction parseOperand(parser, b0) {\n var b1;\n var b2;\n var b3;\n var b4;\n if (b0 === 28) {\n b1 = parser.parseByte();\n b2 = parser.parseByte();\n return b1 << 8 | b2;\n }\n\n if (b0 === 29) {\n b1 = parser.parseByte();\n b2 = parser.parseByte();\n b3 = parser.parseByte();\n b4 = parser.parseByte();\n return b1 << 24 | b2 << 16 | b3 << 8 | b4;\n }\n\n if (b0 === 30) {\n return parseFloatOperand(parser);\n }\n\n if (b0 >= 32 && b0 <= 246) {\n return b0 - 139;\n }\n\n if (b0 >= 247 && b0 <= 250) {\n b1 = parser.parseByte();\n return (b0 - 247) * 256 + b1 + 108;\n }\n\n if (b0 >= 251 && b0 <= 254) {\n b1 = parser.parseByte();\n return -(b0 - 251) * 256 - b1 - 108;\n }\n\n throw new Error('Invalid b0 ' + b0);\n}\n\n// Convert the entries returned by `parseDict` to a proper dictionary.\n// If a value is a list of one, it is unpacked.\nfunction entriesToObject(entries) {\n var o = {};\n for (var i = 0; i < entries.length; i += 1) {\n var key = entries[i][0];\n var values = entries[i][1];\n var value = (void 0);\n if (values.length === 1) {\n value = values[0];\n } else {\n value = values;\n }\n\n if (o.hasOwnProperty(key) && !isNaN(o[key])) {\n throw new Error('Object ' + o + ' already has key ' + key);\n }\n\n o[key] = value;\n }\n\n return o;\n}\n\n// Parse a `CFF` DICT object.\n// A dictionary contains key-value pairs in a compact tokenized format.\nfunction parseCFFDict(data, start, size) {\n start = start !== undefined ? start : 0;\n var parser = new parse.Parser(data, start);\n var entries = [];\n var operands = [];\n size = size !== undefined ? size : data.length;\n\n while (parser.relativeOffset < size) {\n var op = parser.parseByte();\n\n // The first byte for each dict item distinguishes between operator (key) and operand (value).\n // Values <= 21 are operators.\n if (op <= 21) {\n // Two-byte operators have an initial escape byte of 12.\n if (op === 12) {\n op = 1200 + parser.parseByte();\n }\n\n entries.push([op, operands]);\n operands = [];\n } else {\n // Since the operands (values) come before the operators (keys), we store all operands in a list\n // until we encounter an operator.\n operands.push(parseOperand(parser, op));\n }\n }\n\n return entriesToObject(entries);\n}\n\n// Given a String Index (SID), return the value of the string.\n// Strings below index 392 are standard CFF strings and are not encoded in the font.\nfunction getCFFString(strings, index) {\n if (index <= 390) {\n index = cffStandardStrings[index];\n } else {\n index = strings[index - 391];\n }\n\n return index;\n}\n\n// Interpret a dictionary and return a new dictionary with readable keys and values for missing entries.\n// This function takes `meta` which is a list of objects containing `operand`, `name` and `default`.\nfunction interpretDict(dict, meta, strings) {\n var newDict = {};\n var value;\n\n // Because we also want to include missing values, we start out from the meta list\n // and lookup values in the dict.\n for (var i = 0; i < meta.length; i += 1) {\n var m = meta[i];\n\n if (Array.isArray(m.type)) {\n var values = [];\n values.length = m.type.length;\n for (var j = 0; j < m.type.length; j++) {\n value = dict[m.op] !== undefined ? dict[m.op][j] : undefined;\n if (value === undefined) {\n value = m.value !== undefined && m.value[j] !== undefined ? m.value[j] : null;\n }\n if (m.type[j] === 'SID') {\n value = getCFFString(strings, value);\n }\n values[j] = value;\n }\n newDict[m.name] = values;\n } else {\n value = dict[m.op];\n if (value === undefined) {\n value = m.value !== undefined ? m.value : null;\n }\n\n if (m.type === 'SID') {\n value = getCFFString(strings, value);\n }\n newDict[m.name] = value;\n }\n }\n\n return newDict;\n}\n\n// Parse the CFF header.\nfunction parseCFFHeader(data, start) {\n var header = {};\n header.formatMajor = parse.getCard8(data, start);\n header.formatMinor = parse.getCard8(data, start + 1);\n header.size = parse.getCard8(data, start + 2);\n header.offsetSize = parse.getCard8(data, start + 3);\n header.startOffset = start;\n header.endOffset = start + 4;\n return header;\n}\n\nvar TOP_DICT_META = [\n {name: 'version', op: 0, type: 'SID'},\n {name: 'notice', op: 1, type: 'SID'},\n {name: 'copyright', op: 1200, type: 'SID'},\n {name: 'fullName', op: 2, type: 'SID'},\n {name: 'familyName', op: 3, type: 'SID'},\n {name: 'weight', op: 4, type: 'SID'},\n {name: 'isFixedPitch', op: 1201, type: 'number', value: 0},\n {name: 'italicAngle', op: 1202, type: 'number', value: 0},\n {name: 'underlinePosition', op: 1203, type: 'number', value: -100},\n {name: 'underlineThickness', op: 1204, type: 'number', value: 50},\n {name: 'paintType', op: 1205, type: 'number', value: 0},\n {name: 'charstringType', op: 1206, type: 'number', value: 2},\n {\n name: 'fontMatrix',\n op: 1207,\n type: ['real', 'real', 'real', 'real', 'real', 'real'],\n value: [0.001, 0, 0, 0.001, 0, 0]\n },\n {name: 'uniqueId', op: 13, type: 'number'},\n {name: 'fontBBox', op: 5, type: ['number', 'number', 'number', 'number'], value: [0, 0, 0, 0]},\n {name: 'strokeWidth', op: 1208, type: 'number', value: 0},\n {name: 'xuid', op: 14, type: [], value: null},\n {name: 'charset', op: 15, type: 'offset', value: 0},\n {name: 'encoding', op: 16, type: 'offset', value: 0},\n {name: 'charStrings', op: 17, type: 'offset', value: 0},\n {name: 'private', op: 18, type: ['number', 'offset'], value: [0, 0]},\n {name: 'ros', op: 1230, type: ['SID', 'SID', 'number']},\n {name: 'cidFontVersion', op: 1231, type: 'number', value: 0},\n {name: 'cidFontRevision', op: 1232, type: 'number', value: 0},\n {name: 'cidFontType', op: 1233, type: 'number', value: 0},\n {name: 'cidCount', op: 1234, type: 'number', value: 8720},\n {name: 'uidBase', op: 1235, type: 'number'},\n {name: 'fdArray', op: 1236, type: 'offset'},\n {name: 'fdSelect', op: 1237, type: 'offset'},\n {name: 'fontName', op: 1238, type: 'SID'}\n];\n\nvar PRIVATE_DICT_META = [\n {name: 'subrs', op: 19, type: 'offset', value: 0},\n {name: 'defaultWidthX', op: 20, type: 'number', value: 0},\n {name: 'nominalWidthX', op: 21, type: 'number', value: 0}\n];\n\n// Parse the CFF top dictionary. A CFF table can contain multiple fonts, each with their own top dictionary.\n// The top dictionary contains the essential metadata for the font, together with the private dictionary.\nfunction parseCFFTopDict(data, strings) {\n var dict = parseCFFDict(data, 0, data.byteLength);\n return interpretDict(dict, TOP_DICT_META, strings);\n}\n\n// Parse the CFF private dictionary. We don't fully parse out all the values, only the ones we need.\nfunction parseCFFPrivateDict(data, start, size, strings) {\n var dict = parseCFFDict(data, start, size);\n return interpretDict(dict, PRIVATE_DICT_META, strings);\n}\n\n// Returns a list of \"Top DICT\"s found using an INDEX list.\n// Used to read both the usual high-level Top DICTs and also the FDArray\n// discovered inside CID-keyed fonts. When a Top DICT has a reference to\n// a Private DICT that is read and saved into the Top DICT.\n//\n// In addition to the expected/optional values as outlined in TOP_DICT_META\n// the following values might be saved into the Top DICT.\n//\n// _subrs [] array of local CFF subroutines from Private DICT\n// _subrsBias bias value computed from number of subroutines\n// (see calcCFFSubroutineBias() and parseCFFCharstring())\n// _defaultWidthX default widths for CFF characters\n// _nominalWidthX bias added to width embedded within glyph description\n//\n// _privateDict saved copy of parsed Private DICT from Top DICT\nfunction gatherCFFTopDicts(data, start, cffIndex, strings) {\n var topDictArray = [];\n for (var iTopDict = 0; iTopDict < cffIndex.length; iTopDict += 1) {\n var topDictData = new DataView(new Uint8Array(cffIndex[iTopDict]).buffer);\n var topDict = parseCFFTopDict(topDictData, strings);\n topDict._subrs = [];\n topDict._subrsBias = 0;\n var privateSize = topDict.private[0];\n var privateOffset = topDict.private[1];\n if (privateSize !== 0 && privateOffset !== 0) {\n var privateDict = parseCFFPrivateDict(data, privateOffset + start, privateSize, strings);\n topDict._defaultWidthX = privateDict.defaultWidthX;\n topDict._nominalWidthX = privateDict.nominalWidthX;\n if (privateDict.subrs !== 0) {\n var subrOffset = privateOffset + privateDict.subrs;\n var subrIndex = parseCFFIndex(data, subrOffset + start);\n topDict._subrs = subrIndex.objects;\n topDict._subrsBias = calcCFFSubroutineBias(topDict._subrs);\n }\n topDict._privateDict = privateDict;\n }\n topDictArray.push(topDict);\n }\n return topDictArray;\n}\n\n// Parse the CFF charset table, which contains internal names for all the glyphs.\n// This function will return a list of glyph names.\n// See Adobe TN #5176 chapter 13, \"Charsets\".\nfunction parseCFFCharset(data, start, nGlyphs, strings) {\n var sid;\n var count;\n var parser = new parse.Parser(data, start);\n\n // The .notdef glyph is not included, so subtract 1.\n nGlyphs -= 1;\n var charset = ['.notdef'];\n\n var format = parser.parseCard8();\n if (format === 0) {\n for (var i = 0; i < nGlyphs; i += 1) {\n sid = parser.parseSID();\n charset.push(getCFFString(strings, sid));\n }\n } else if (format === 1) {\n while (charset.length <= nGlyphs) {\n sid = parser.parseSID();\n count = parser.parseCard8();\n for (var i$1 = 0; i$1 <= count; i$1 += 1) {\n charset.push(getCFFString(strings, sid));\n sid += 1;\n }\n }\n } else if (format === 2) {\n while (charset.length <= nGlyphs) {\n sid = parser.parseSID();\n count = parser.parseCard16();\n for (var i$2 = 0; i$2 <= count; i$2 += 1) {\n charset.push(getCFFString(strings, sid));\n sid += 1;\n }\n }\n } else {\n throw new Error('Unknown charset format ' + format);\n }\n\n return charset;\n}\n\n// Parse the CFF encoding data. Only one encoding can be specified per font.\n// See Adobe TN #5176 chapter 12, \"Encodings\".\nfunction parseCFFEncoding(data, start, charset) {\n var code;\n var enc = {};\n var parser = new parse.Parser(data, start);\n var format = parser.parseCard8();\n if (format === 0) {\n var nCodes = parser.parseCard8();\n for (var i = 0; i < nCodes; i += 1) {\n code = parser.parseCard8();\n enc[code] = i;\n }\n } else if (format === 1) {\n var nRanges = parser.parseCard8();\n code = 1;\n for (var i$1 = 0; i$1 < nRanges; i$1 += 1) {\n var first = parser.parseCard8();\n var nLeft = parser.parseCard8();\n for (var j = first; j <= first + nLeft; j += 1) {\n enc[j] = code;\n code += 1;\n }\n }\n } else {\n throw new Error('Unknown encoding format ' + format);\n }\n\n return new CffEncoding(enc, charset);\n}\n\n// Take in charstring code and return a Glyph object.\n// The encoding is described in the Type 2 Charstring Format\n// https://www.microsoft.com/typography/OTSPEC/charstr2.htm\nfunction parseCFFCharstring(font, glyph, code) {\n var c1x;\n var c1y;\n var c2x;\n var c2y;\n var p = new Path();\n var stack = [];\n var nStems = 0;\n var haveWidth = false;\n var open = false;\n var x = 0;\n var y = 0;\n var subrs;\n var subrsBias;\n var defaultWidthX;\n var nominalWidthX;\n if (font.isCIDFont) {\n var fdIndex = font.tables.cff.topDict._fdSelect[glyph.index];\n var fdDict = font.tables.cff.topDict._fdArray[fdIndex];\n subrs = fdDict._subrs;\n subrsBias = fdDict._subrsBias;\n defaultWidthX = fdDict._defaultWidthX;\n nominalWidthX = fdDict._nominalWidthX;\n } else {\n subrs = font.tables.cff.topDict._subrs;\n subrsBias = font.tables.cff.topDict._subrsBias;\n defaultWidthX = font.tables.cff.topDict._defaultWidthX;\n nominalWidthX = font.tables.cff.topDict._nominalWidthX;\n }\n var width = defaultWidthX;\n\n function newContour(x, y) {\n if (open) {\n p.closePath();\n }\n\n p.moveTo(x, y);\n open = true;\n }\n\n function parseStems() {\n var hasWidthArg;\n\n // The number of stem operators on the stack is always even.\n // If the value is uneven, that means a width is specified.\n hasWidthArg = stack.length % 2 !== 0;\n if (hasWidthArg && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n }\n\n nStems += stack.length >> 1;\n stack.length = 0;\n haveWidth = true;\n }\n\n function parse(code) {\n var b1;\n var b2;\n var b3;\n var b4;\n var codeIndex;\n var subrCode;\n var jpx;\n var jpy;\n var c3x;\n var c3y;\n var c4x;\n var c4y;\n\n var i = 0;\n while (i < code.length) {\n var v = code[i];\n i += 1;\n switch (v) {\n case 1: // hstem\n parseStems();\n break;\n case 3: // vstem\n parseStems();\n break;\n case 4: // vmoveto\n if (stack.length > 1 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n y += stack.pop();\n newContour(x, y);\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n p.lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n p.lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n\n x += stack.shift();\n p.lineTo(x, y);\n }\n\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 10: // callsubr\n codeIndex = stack.pop() + subrsBias;\n subrCode = subrs[codeIndex];\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n case 11: // return\n return;\n case 12: // flex operators\n v = code[i];\n i += 1;\n switch (v) {\n case 35: // flex\n // |- dx1 dy1 dx2 dy2 dx3 dy3 dx4 dy4 dx5 dy5 dx6 dy6 fd flex (12 35) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y + stack.shift(); // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = jpy + stack.shift(); // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n x = c4x + stack.shift(); // dx6\n y = c4y + stack.shift(); // dy6\n stack.shift(); // flex depth\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 34: // hflex\n // |- dx1 dx2 dy2 dx3 dx4 dx5 dx6 hflex (12 34) |-\n c1x = x + stack.shift(); // dx1\n c1y = y; // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y; // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = c2y; // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = y; // dy5\n x = c4x + stack.shift(); // dx6\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 36: // hflex1\n // |- dx1 dy1 dx2 dy2 dx3 dx4 dx5 dy5 dx6 hflex1 (12 36) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y; // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = c2y; // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n x = c4x + stack.shift(); // dx6\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n case 37: // flex1\n // |- dx1 dy1 dx2 dy2 dx3 dy3 dx4 dy4 dx5 dy5 d6 flex1 (12 37) |-\n c1x = x + stack.shift(); // dx1\n c1y = y + stack.shift(); // dy1\n c2x = c1x + stack.shift(); // dx2\n c2y = c1y + stack.shift(); // dy2\n jpx = c2x + stack.shift(); // dx3\n jpy = c2y + stack.shift(); // dy3\n c3x = jpx + stack.shift(); // dx4\n c3y = jpy + stack.shift(); // dy4\n c4x = c3x + stack.shift(); // dx5\n c4y = c3y + stack.shift(); // dy5\n if (Math.abs(c4x - x) > Math.abs(c4y - y)) {\n x = c4x + stack.shift();\n } else {\n y = c4y + stack.shift();\n }\n\n p.curveTo(c1x, c1y, c2x, c2y, jpx, jpy);\n p.curveTo(c3x, c3y, c4x, c4y, x, y);\n break;\n default:\n console.log('Glyph ' + glyph.index + ': unknown operator ' + 1200 + v);\n stack.length = 0;\n }\n break;\n case 14: // endchar\n if (stack.length > 0 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n if (open) {\n p.closePath();\n open = false;\n }\n\n break;\n case 18: // hstemhm\n parseStems();\n break;\n case 19: // hintmask\n case 20: // cntrmask\n parseStems();\n i += (nStems + 7) >> 3;\n break;\n case 21: // rmoveto\n if (stack.length > 2 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n y += stack.pop();\n x += stack.pop();\n newContour(x, y);\n break;\n case 22: // hmoveto\n if (stack.length > 1 && !haveWidth) {\n width = stack.shift() + nominalWidthX;\n haveWidth = true;\n }\n\n x += stack.pop();\n newContour(x, y);\n break;\n case 23: // vstemhm\n parseStems();\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n p.lineTo(x, y);\n }\n\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length > 0) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 28: // shortint\n b1 = code[i];\n b2 = code[i + 1];\n stack.push(((b1 << 24) | (b2 << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n codeIndex = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[codeIndex];\n if (subrCode) {\n parse(subrCode);\n }\n\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n if (stack.length === 0) {\n break;\n }\n\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n if (stack.length === 0) {\n break;\n }\n\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n p.curveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n default:\n if (v < 32) {\n console.log('Glyph ' + glyph.index + ': unknown operator ' + v);\n } else if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n b1 = code[i];\n i += 1;\n stack.push((v - 247) * 256 + b1 + 108);\n } else if (v < 255) {\n b1 = code[i];\n i += 1;\n stack.push(-(v - 251) * 256 - b1 - 108);\n } else {\n b1 = code[i];\n b2 = code[i + 1];\n b3 = code[i + 2];\n b4 = code[i + 3];\n i += 4;\n stack.push(((b1 << 24) | (b2 << 16) | (b3 << 8) | b4) / 65536);\n }\n }\n }\n }\n\n parse(code);\n\n glyph.advanceWidth = width;\n return p;\n}\n\nfunction parseCFFFDSelect(data, start, nGlyphs, fdArrayCount) {\n var fdSelect = [];\n var fdIndex;\n var parser = new parse.Parser(data, start);\n var format = parser.parseCard8();\n if (format === 0) {\n // Simple list of nGlyphs elements\n for (var iGid = 0; iGid < nGlyphs; iGid++) {\n fdIndex = parser.parseCard8();\n if (fdIndex >= fdArrayCount) {\n throw new Error('CFF table CID Font FDSelect has bad FD index value ' + fdIndex + ' (FD count ' + fdArrayCount + ')');\n }\n fdSelect.push(fdIndex);\n }\n } else if (format === 3) {\n // Ranges\n var nRanges = parser.parseCard16();\n var first = parser.parseCard16();\n if (first !== 0) {\n throw new Error('CFF Table CID Font FDSelect format 3 range has bad initial GID ' + first);\n }\n var next;\n for (var iRange = 0; iRange < nRanges; iRange++) {\n fdIndex = parser.parseCard8();\n next = parser.parseCard16();\n if (fdIndex >= fdArrayCount) {\n throw new Error('CFF table CID Font FDSelect has bad FD index value ' + fdIndex + ' (FD count ' + fdArrayCount + ')');\n }\n if (next > nGlyphs) {\n throw new Error('CFF Table CID Font FDSelect format 3 range has bad GID ' + next);\n }\n for (; first < next; first++) {\n fdSelect.push(fdIndex);\n }\n first = next;\n }\n if (next !== nGlyphs) {\n throw new Error('CFF Table CID Font FDSelect format 3 range has bad final GID ' + next);\n }\n } else {\n throw new Error('CFF Table CID Font FDSelect table has unsupported format ' + format);\n }\n return fdSelect;\n}\n\n// Parse the `CFF` table, which contains the glyph outlines in PostScript format.\nfunction parseCFFTable(data, start, font, opt) {\n font.tables.cff = {};\n var header = parseCFFHeader(data, start);\n var nameIndex = parseCFFIndex(data, header.endOffset, parse.bytesToString);\n var topDictIndex = parseCFFIndex(data, nameIndex.endOffset);\n var stringIndex = parseCFFIndex(data, topDictIndex.endOffset, parse.bytesToString);\n var globalSubrIndex = parseCFFIndex(data, stringIndex.endOffset);\n font.gsubrs = globalSubrIndex.objects;\n font.gsubrsBias = calcCFFSubroutineBias(font.gsubrs);\n\n var topDictArray = gatherCFFTopDicts(data, start, topDictIndex.objects, stringIndex.objects);\n if (topDictArray.length !== 1) {\n throw new Error('CFF table has too many fonts in \\'FontSet\\' - count of fonts NameIndex.length = ' + topDictArray.length);\n }\n\n var topDict = topDictArray[0];\n font.tables.cff.topDict = topDict;\n\n if (topDict._privateDict) {\n font.defaultWidthX = topDict._privateDict.defaultWidthX;\n font.nominalWidthX = topDict._privateDict.nominalWidthX;\n }\n\n if (topDict.ros[0] !== undefined && topDict.ros[1] !== undefined) {\n font.isCIDFont = true;\n }\n\n if (font.isCIDFont) {\n var fdArrayOffset = topDict.fdArray;\n var fdSelectOffset = topDict.fdSelect;\n if (fdArrayOffset === 0 || fdSelectOffset === 0) {\n throw new Error('Font is marked as a CID font, but FDArray and/or FDSelect information is missing');\n }\n fdArrayOffset += start;\n var fdArrayIndex = parseCFFIndex(data, fdArrayOffset);\n var fdArray = gatherCFFTopDicts(data, start, fdArrayIndex.objects, stringIndex.objects);\n topDict._fdArray = fdArray;\n fdSelectOffset += start;\n topDict._fdSelect = parseCFFFDSelect(data, fdSelectOffset, font.numGlyphs, fdArray.length);\n }\n\n var privateDictOffset = start + topDict.private[1];\n var privateDict = parseCFFPrivateDict(data, privateDictOffset, topDict.private[0], stringIndex.objects);\n font.defaultWidthX = privateDict.defaultWidthX;\n font.nominalWidthX = privateDict.nominalWidthX;\n\n if (privateDict.subrs !== 0) {\n var subrOffset = privateDictOffset + privateDict.subrs;\n var subrIndex = parseCFFIndex(data, subrOffset);\n font.subrs = subrIndex.objects;\n font.subrsBias = calcCFFSubroutineBias(font.subrs);\n } else {\n font.subrs = [];\n font.subrsBias = 0;\n }\n\n // Offsets in the top dict are relative to the beginning of the CFF data, so add the CFF start offset.\n var charStringsIndex;\n if (opt.lowMemory) {\n charStringsIndex = parseCFFIndexLowMemory(data, start + topDict.charStrings);\n font.nGlyphs = charStringsIndex.offsets.length;\n } else {\n charStringsIndex = parseCFFIndex(data, start + topDict.charStrings);\n font.nGlyphs = charStringsIndex.objects.length;\n }\n\n var charset = parseCFFCharset(data, start + topDict.charset, font.nGlyphs, stringIndex.objects);\n if (topDict.encoding === 0) {\n // Standard encoding\n font.cffEncoding = new CffEncoding(cffStandardEncoding, charset);\n } else if (topDict.encoding === 1) {\n // Expert encoding\n font.cffEncoding = new CffEncoding(cffExpertEncoding, charset);\n } else {\n font.cffEncoding = parseCFFEncoding(data, start + topDict.encoding, charset);\n }\n\n // Prefer the CMAP encoding to the CFF encoding.\n font.encoding = font.encoding || font.cffEncoding;\n\n font.glyphs = new glyphset.GlyphSet(font);\n if (opt.lowMemory) {\n font._push = function(i) {\n var charString = getCffIndexObject(i, charStringsIndex.offsets, data, start + topDict.charStrings);\n font.glyphs.push(i, glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString));\n };\n } else {\n for (var i = 0; i < font.nGlyphs; i += 1) {\n var charString = charStringsIndex.objects[i];\n font.glyphs.push(i, glyphset.cffGlyphLoader(font, i, parseCFFCharstring, charString));\n }\n }\n}\n\n// Convert a string to a String ID (SID).\n// The list of strings is modified in place.\nfunction encodeString(s, strings) {\n var sid;\n\n // Is the string in the CFF standard strings?\n var i = cffStandardStrings.indexOf(s);\n if (i >= 0) {\n sid = i;\n }\n\n // Is the string already in the string index?\n i = strings.indexOf(s);\n if (i >= 0) {\n sid = i + cffStandardStrings.length;\n } else {\n sid = cffStandardStrings.length + strings.length;\n strings.push(s);\n }\n\n return sid;\n}\n\nfunction makeHeader() {\n return new table.Record('Header', [\n {name: 'major', type: 'Card8', value: 1},\n {name: 'minor', type: 'Card8', value: 0},\n {name: 'hdrSize', type: 'Card8', value: 4},\n {name: 'major', type: 'Card8', value: 1}\n ]);\n}\n\nfunction makeNameIndex(fontNames) {\n var t = new table.Record('Name INDEX', [\n {name: 'names', type: 'INDEX', value: []}\n ]);\n t.names = [];\n for (var i = 0; i < fontNames.length; i += 1) {\n t.names.push({name: 'name_' + i, type: 'NAME', value: fontNames[i]});\n }\n\n return t;\n}\n\n// Given a dictionary's metadata, create a DICT structure.\nfunction makeDict(meta, attrs, strings) {\n var m = {};\n for (var i = 0; i < meta.length; i += 1) {\n var entry = meta[i];\n var value = attrs[entry.name];\n if (value !== undefined && !equals(value, entry.value)) {\n if (entry.type === 'SID') {\n value = encodeString(value, strings);\n }\n\n m[entry.op] = {name: entry.name, type: entry.type, value: value};\n }\n }\n\n return m;\n}\n\n// The Top DICT houses the global font attributes.\nfunction makeTopDict(attrs, strings) {\n var t = new table.Record('Top DICT', [\n {name: 'dict', type: 'DICT', value: {}}\n ]);\n t.dict = makeDict(TOP_DICT_META, attrs, strings);\n return t;\n}\n\nfunction makeTopDictIndex(topDict) {\n var t = new table.Record('Top DICT INDEX', [\n {name: 'topDicts', type: 'INDEX', value: []}\n ]);\n t.topDicts = [{name: 'topDict_0', type: 'TABLE', value: topDict}];\n return t;\n}\n\nfunction makeStringIndex(strings) {\n var t = new table.Record('String INDEX', [\n {name: 'strings', type: 'INDEX', value: []}\n ]);\n t.strings = [];\n for (var i = 0; i < strings.length; i += 1) {\n t.strings.push({name: 'string_' + i, type: 'STRING', value: strings[i]});\n }\n\n return t;\n}\n\nfunction makeGlobalSubrIndex() {\n // Currently we don't use subroutines.\n return new table.Record('Global Subr INDEX', [\n {name: 'subrs', type: 'INDEX', value: []}\n ]);\n}\n\nfunction makeCharsets(glyphNames, strings) {\n var t = new table.Record('Charsets', [\n {name: 'format', type: 'Card8', value: 0}\n ]);\n for (var i = 0; i < glyphNames.length; i += 1) {\n var glyphName = glyphNames[i];\n var glyphSID = encodeString(glyphName, strings);\n t.fields.push({name: 'glyph_' + i, type: 'SID', value: glyphSID});\n }\n\n return t;\n}\n\nfunction glyphToOps(glyph) {\n var ops = [];\n var path = glyph.path;\n ops.push({name: 'width', type: 'NUMBER', value: glyph.advanceWidth});\n var x = 0;\n var y = 0;\n for (var i = 0; i < path.commands.length; i += 1) {\n var dx = (void 0);\n var dy = (void 0);\n var cmd = path.commands[i];\n if (cmd.type === 'Q') {\n // CFF only supports bézier curves, so convert the quad to a bézier.\n var _13 = 1 / 3;\n var _23 = 2 / 3;\n\n // We're going to create a new command so we don't change the original path.\n cmd = {\n type: 'C',\n x: cmd.x,\n y: cmd.y,\n x1: _13 * x + _23 * cmd.x1,\n y1: _13 * y + _23 * cmd.y1,\n x2: _13 * cmd.x + _23 * cmd.x1,\n y2: _13 * cmd.y + _23 * cmd.y1\n };\n }\n\n if (cmd.type === 'M') {\n dx = Math.round(cmd.x - x);\n dy = Math.round(cmd.y - y);\n ops.push({name: 'dx', type: 'NUMBER', value: dx});\n ops.push({name: 'dy', type: 'NUMBER', value: dy});\n ops.push({name: 'rmoveto', type: 'OP', value: 21});\n x = Math.round(cmd.x);\n y = Math.round(cmd.y);\n } else if (cmd.type === 'L') {\n dx = Math.round(cmd.x - x);\n dy = Math.round(cmd.y - y);\n ops.push({name: 'dx', type: 'NUMBER', value: dx});\n ops.push({name: 'dy', type: 'NUMBER', value: dy});\n ops.push({name: 'rlineto', type: 'OP', value: 5});\n x = Math.round(cmd.x);\n y = Math.round(cmd.y);\n } else if (cmd.type === 'C') {\n var dx1 = Math.round(cmd.x1 - x);\n var dy1 = Math.round(cmd.y1 - y);\n var dx2 = Math.round(cmd.x2 - cmd.x1);\n var dy2 = Math.round(cmd.y2 - cmd.y1);\n dx = Math.round(cmd.x - cmd.x2);\n dy = Math.round(cmd.y - cmd.y2);\n ops.push({name: 'dx1', type: 'NUMBER', value: dx1});\n ops.push({name: 'dy1', type: 'NUMBER', value: dy1});\n ops.push({name: 'dx2', type: 'NUMBER', value: dx2});\n ops.push({name: 'dy2', type: 'NUMBER', value: dy2});\n ops.push({name: 'dx', type: 'NUMBER', value: dx});\n ops.push({name: 'dy', type: 'NUMBER', value: dy});\n ops.push({name: 'rrcurveto', type: 'OP', value: 8});\n x = Math.round(cmd.x);\n y = Math.round(cmd.y);\n }\n\n // Contours are closed automatically.\n }\n\n ops.push({name: 'endchar', type: 'OP', value: 14});\n return ops;\n}\n\nfunction makeCharStringsIndex(glyphs) {\n var t = new table.Record('CharStrings INDEX', [\n {name: 'charStrings', type: 'INDEX', value: []}\n ]);\n\n for (var i = 0; i < glyphs.length; i += 1) {\n var glyph = glyphs.get(i);\n var ops = glyphToOps(glyph);\n t.charStrings.push({name: glyph.name, type: 'CHARSTRING', value: ops});\n }\n\n return t;\n}\n\nfunction makePrivateDict(attrs, strings) {\n var t = new table.Record('Private DICT', [\n {name: 'dict', type: 'DICT', value: {}}\n ]);\n t.dict = makeDict(PRIVATE_DICT_META, attrs, strings);\n return t;\n}\n\nfunction makeCFFTable(glyphs, options) {\n var t = new table.Table('CFF ', [\n {name: 'header', type: 'RECORD'},\n {name: 'nameIndex', type: 'RECORD'},\n {name: 'topDictIndex', type: 'RECORD'},\n {name: 'stringIndex', type: 'RECORD'},\n {name: 'globalSubrIndex', type: 'RECORD'},\n {name: 'charsets', type: 'RECORD'},\n {name: 'charStringsIndex', type: 'RECORD'},\n {name: 'privateDict', type: 'RECORD'}\n ]);\n\n var fontScale = 1 / options.unitsPerEm;\n // We use non-zero values for the offsets so that the DICT encodes them.\n // This is important because the size of the Top DICT plays a role in offset calculation,\n // and the size shouldn't change after we've written correct offsets.\n var attrs = {\n version: options.version,\n fullName: options.fullName,\n familyName: options.familyName,\n weight: options.weightName,\n fontBBox: options.fontBBox || [0, 0, 0, 0],\n fontMatrix: [fontScale, 0, 0, fontScale, 0, 0],\n charset: 999,\n encoding: 0,\n charStrings: 999,\n private: [0, 999]\n };\n\n var privateAttrs = {};\n\n var glyphNames = [];\n var glyph;\n\n // Skip first glyph (.notdef)\n for (var i = 1; i < glyphs.length; i += 1) {\n glyph = glyphs.get(i);\n glyphNames.push(glyph.name);\n }\n\n var strings = [];\n\n t.header = makeHeader();\n t.nameIndex = makeNameIndex([options.postScriptName]);\n var topDict = makeTopDict(attrs, strings);\n t.topDictIndex = makeTopDictIndex(topDict);\n t.globalSubrIndex = makeGlobalSubrIndex();\n t.charsets = makeCharsets(glyphNames, strings);\n t.charStringsIndex = makeCharStringsIndex(glyphs);\n t.privateDict = makePrivateDict(privateAttrs, strings);\n\n // Needs to come at the end, to encode all custom strings used in the font.\n t.stringIndex = makeStringIndex(strings);\n\n var startOffset = t.header.sizeOf() +\n t.nameIndex.sizeOf() +\n t.topDictIndex.sizeOf() +\n t.stringIndex.sizeOf() +\n t.globalSubrIndex.sizeOf();\n attrs.charset = startOffset;\n\n // We use the CFF standard encoding; proper encoding will be handled in cmap.\n attrs.encoding = 0;\n attrs.charStrings = attrs.charset + t.charsets.sizeOf();\n attrs.private[1] = attrs.charStrings + t.charStringsIndex.sizeOf();\n\n // Recreate the Top DICT INDEX with the correct offsets.\n topDict = makeTopDict(attrs, strings);\n t.topDictIndex = makeTopDictIndex(topDict);\n\n return t;\n}\n\nvar cff = { parse: parseCFFTable, make: makeCFFTable };\n\n// The `head` table contains global information about the font.\n\n// Parse the header `head` table\nfunction parseHeadTable(data, start) {\n var head = {};\n var p = new parse.Parser(data, start);\n head.version = p.parseVersion();\n head.fontRevision = Math.round(p.parseFixed() * 1000) / 1000;\n head.checkSumAdjustment = p.parseULong();\n head.magicNumber = p.parseULong();\n check.argument(head.magicNumber === 0x5F0F3CF5, 'Font header has wrong magic number.');\n head.flags = p.parseUShort();\n head.unitsPerEm = p.parseUShort();\n head.created = p.parseLongDateTime();\n head.modified = p.parseLongDateTime();\n head.xMin = p.parseShort();\n head.yMin = p.parseShort();\n head.xMax = p.parseShort();\n head.yMax = p.parseShort();\n head.macStyle = p.parseUShort();\n head.lowestRecPPEM = p.parseUShort();\n head.fontDirectionHint = p.parseShort();\n head.indexToLocFormat = p.parseShort();\n head.glyphDataFormat = p.parseShort();\n return head;\n}\n\nfunction makeHeadTable(options) {\n // Apple Mac timestamp epoch is 01/01/1904 not 01/01/1970\n var timestamp = Math.round(new Date().getTime() / 1000) + 2082844800;\n var createdTimestamp = timestamp;\n\n if (options.createdTimestamp) {\n createdTimestamp = options.createdTimestamp + 2082844800;\n }\n\n return new table.Table('head', [\n {name: 'version', type: 'FIXED', value: 0x00010000},\n {name: 'fontRevision', type: 'FIXED', value: 0x00010000},\n {name: 'checkSumAdjustment', type: 'ULONG', value: 0},\n {name: 'magicNumber', type: 'ULONG', value: 0x5F0F3CF5},\n {name: 'flags', type: 'USHORT', value: 0},\n {name: 'unitsPerEm', type: 'USHORT', value: 1000},\n {name: 'created', type: 'LONGDATETIME', value: createdTimestamp},\n {name: 'modified', type: 'LONGDATETIME', value: timestamp},\n {name: 'xMin', type: 'SHORT', value: 0},\n {name: 'yMin', type: 'SHORT', value: 0},\n {name: 'xMax', type: 'SHORT', value: 0},\n {name: 'yMax', type: 'SHORT', value: 0},\n {name: 'macStyle', type: 'USHORT', value: 0},\n {name: 'lowestRecPPEM', type: 'USHORT', value: 0},\n {name: 'fontDirectionHint', type: 'SHORT', value: 2},\n {name: 'indexToLocFormat', type: 'SHORT', value: 0},\n {name: 'glyphDataFormat', type: 'SHORT', value: 0}\n ], options);\n}\n\nvar head = { parse: parseHeadTable, make: makeHeadTable };\n\n// The `hhea` table contains information for horizontal layout.\n\n// Parse the horizontal header `hhea` table\nfunction parseHheaTable(data, start) {\n var hhea = {};\n var p = new parse.Parser(data, start);\n hhea.version = p.parseVersion();\n hhea.ascender = p.parseShort();\n hhea.descender = p.parseShort();\n hhea.lineGap = p.parseShort();\n hhea.advanceWidthMax = p.parseUShort();\n hhea.minLeftSideBearing = p.parseShort();\n hhea.minRightSideBearing = p.parseShort();\n hhea.xMaxExtent = p.parseShort();\n hhea.caretSlopeRise = p.parseShort();\n hhea.caretSlopeRun = p.parseShort();\n hhea.caretOffset = p.parseShort();\n p.relativeOffset += 8;\n hhea.metricDataFormat = p.parseShort();\n hhea.numberOfHMetrics = p.parseUShort();\n return hhea;\n}\n\nfunction makeHheaTable(options) {\n return new table.Table('hhea', [\n {name: 'version', type: 'FIXED', value: 0x00010000},\n {name: 'ascender', type: 'FWORD', value: 0},\n {name: 'descender', type: 'FWORD', value: 0},\n {name: 'lineGap', type: 'FWORD', value: 0},\n {name: 'advanceWidthMax', type: 'UFWORD', value: 0},\n {name: 'minLeftSideBearing', type: 'FWORD', value: 0},\n {name: 'minRightSideBearing', type: 'FWORD', value: 0},\n {name: 'xMaxExtent', type: 'FWORD', value: 0},\n {name: 'caretSlopeRise', type: 'SHORT', value: 1},\n {name: 'caretSlopeRun', type: 'SHORT', value: 0},\n {name: 'caretOffset', type: 'SHORT', value: 0},\n {name: 'reserved1', type: 'SHORT', value: 0},\n {name: 'reserved2', type: 'SHORT', value: 0},\n {name: 'reserved3', type: 'SHORT', value: 0},\n {name: 'reserved4', type: 'SHORT', value: 0},\n {name: 'metricDataFormat', type: 'SHORT', value: 0},\n {name: 'numberOfHMetrics', type: 'USHORT', value: 0}\n ], options);\n}\n\nvar hhea = { parse: parseHheaTable, make: makeHheaTable };\n\n// The `hmtx` table contains the horizontal metrics for all glyphs.\n\nfunction parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs) {\n var advanceWidth;\n var leftSideBearing;\n var p = new parse.Parser(data, start);\n for (var i = 0; i < numGlyphs; i += 1) {\n // If the font is monospaced, only one entry is needed. This last entry applies to all subsequent glyphs.\n if (i < numMetrics) {\n advanceWidth = p.parseUShort();\n leftSideBearing = p.parseShort();\n }\n\n var glyph = glyphs.get(i);\n glyph.advanceWidth = advanceWidth;\n glyph.leftSideBearing = leftSideBearing;\n }\n}\n\nfunction parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs) {\n font._hmtxTableData = {};\n\n var advanceWidth;\n var leftSideBearing;\n var p = new parse.Parser(data, start);\n for (var i = 0; i < numGlyphs; i += 1) {\n // If the font is monospaced, only one entry is needed. This last entry applies to all subsequent glyphs.\n if (i < numMetrics) {\n advanceWidth = p.parseUShort();\n leftSideBearing = p.parseShort();\n }\n\n font._hmtxTableData[i] = {\n advanceWidth: advanceWidth,\n leftSideBearing: leftSideBearing\n };\n }\n}\n\n// Parse the `hmtx` table, which contains the horizontal metrics for all glyphs.\n// This function augments the glyph array, adding the advanceWidth and leftSideBearing to each glyph.\nfunction parseHmtxTable(font, data, start, numMetrics, numGlyphs, glyphs, opt) {\n if (opt.lowMemory)\n { parseHmtxTableOnLowMemory(font, data, start, numMetrics, numGlyphs); }\n else\n { parseHmtxTableAll(data, start, numMetrics, numGlyphs, glyphs); }\n}\n\nfunction makeHmtxTable(glyphs) {\n var t = new table.Table('hmtx', []);\n for (var i = 0; i < glyphs.length; i += 1) {\n var glyph = glyphs.get(i);\n var advanceWidth = glyph.advanceWidth || 0;\n var leftSideBearing = glyph.leftSideBearing || 0;\n t.fields.push({name: 'advanceWidth_' + i, type: 'USHORT', value: advanceWidth});\n t.fields.push({name: 'leftSideBearing_' + i, type: 'SHORT', value: leftSideBearing});\n }\n\n return t;\n}\n\nvar hmtx = { parse: parseHmtxTable, make: makeHmtxTable };\n\n// The `ltag` table stores IETF BCP-47 language tags. It allows supporting\n\nfunction makeLtagTable(tags) {\n var result = new table.Table('ltag', [\n {name: 'version', type: 'ULONG', value: 1},\n {name: 'flags', type: 'ULONG', value: 0},\n {name: 'numTags', type: 'ULONG', value: tags.length}\n ]);\n\n var stringPool = '';\n var stringPoolOffset = 12 + tags.length * 4;\n for (var i = 0; i < tags.length; ++i) {\n var pos = stringPool.indexOf(tags[i]);\n if (pos < 0) {\n pos = stringPool.length;\n stringPool += tags[i];\n }\n\n result.fields.push({name: 'offset ' + i, type: 'USHORT', value: stringPoolOffset + pos});\n result.fields.push({name: 'length ' + i, type: 'USHORT', value: tags[i].length});\n }\n\n result.fields.push({name: 'stringPool', type: 'CHARARRAY', value: stringPool});\n return result;\n}\n\nfunction parseLtagTable(data, start) {\n var p = new parse.Parser(data, start);\n var tableVersion = p.parseULong();\n check.argument(tableVersion === 1, 'Unsupported ltag table version.');\n // The 'ltag' specification does not define any flags; skip the field.\n p.skip('uLong', 1);\n var numTags = p.parseULong();\n\n var tags = [];\n for (var i = 0; i < numTags; i++) {\n var tag = '';\n var offset = start + p.parseUShort();\n var length = p.parseUShort();\n for (var j = offset; j < offset + length; ++j) {\n tag += String.fromCharCode(data.getInt8(j));\n }\n\n tags.push(tag);\n }\n\n return tags;\n}\n\nvar ltag = { make: makeLtagTable, parse: parseLtagTable };\n\n// The `maxp` table establishes the memory requirements for the font.\n\n// Parse the maximum profile `maxp` table.\nfunction parseMaxpTable(data, start) {\n var maxp = {};\n var p = new parse.Parser(data, start);\n maxp.version = p.parseVersion();\n maxp.numGlyphs = p.parseUShort();\n if (maxp.version === 1.0) {\n maxp.maxPoints = p.parseUShort();\n maxp.maxContours = p.parseUShort();\n maxp.maxCompositePoints = p.parseUShort();\n maxp.maxCompositeContours = p.parseUShort();\n maxp.maxZones = p.parseUShort();\n maxp.maxTwilightPoints = p.parseUShort();\n maxp.maxStorage = p.parseUShort();\n maxp.maxFunctionDefs = p.parseUShort();\n maxp.maxInstructionDefs = p.parseUShort();\n maxp.maxStackElements = p.parseUShort();\n maxp.maxSizeOfInstructions = p.parseUShort();\n maxp.maxComponentElements = p.parseUShort();\n maxp.maxComponentDepth = p.parseUShort();\n }\n\n return maxp;\n}\n\nfunction makeMaxpTable(numGlyphs) {\n return new table.Table('maxp', [\n {name: 'version', type: 'FIXED', value: 0x00005000},\n {name: 'numGlyphs', type: 'USHORT', value: numGlyphs}\n ]);\n}\n\nvar maxp = { parse: parseMaxpTable, make: makeMaxpTable };\n\n// The `name` naming table.\n\n// NameIDs for the name table.\nvar nameTableNames = [\n 'copyright', // 0\n 'fontFamily', // 1\n 'fontSubfamily', // 2\n 'uniqueID', // 3\n 'fullName', // 4\n 'version', // 5\n 'postScriptName', // 6\n 'trademark', // 7\n 'manufacturer', // 8\n 'designer', // 9\n 'description', // 10\n 'manufacturerURL', // 11\n 'designerURL', // 12\n 'license', // 13\n 'licenseURL', // 14\n 'reserved', // 15\n 'preferredFamily', // 16\n 'preferredSubfamily', // 17\n 'compatibleFullName', // 18\n 'sampleText', // 19\n 'postScriptFindFontName', // 20\n 'wwsFamily', // 21\n 'wwsSubfamily' // 22\n];\n\nvar macLanguages = {\n 0: 'en',\n 1: 'fr',\n 2: 'de',\n 3: 'it',\n 4: 'nl',\n 5: 'sv',\n 6: 'es',\n 7: 'da',\n 8: 'pt',\n 9: 'no',\n 10: 'he',\n 11: 'ja',\n 12: 'ar',\n 13: 'fi',\n 14: 'el',\n 15: 'is',\n 16: 'mt',\n 17: 'tr',\n 18: 'hr',\n 19: 'zh-Hant',\n 20: 'ur',\n 21: 'hi',\n 22: 'th',\n 23: 'ko',\n 24: 'lt',\n 25: 'pl',\n 26: 'hu',\n 27: 'es',\n 28: 'lv',\n 29: 'se',\n 30: 'fo',\n 31: 'fa',\n 32: 'ru',\n 33: 'zh',\n 34: 'nl-BE',\n 35: 'ga',\n 36: 'sq',\n 37: 'ro',\n 38: 'cz',\n 39: 'sk',\n 40: 'si',\n 41: 'yi',\n 42: 'sr',\n 43: 'mk',\n 44: 'bg',\n 45: 'uk',\n 46: 'be',\n 47: 'uz',\n 48: 'kk',\n 49: 'az-Cyrl',\n 50: 'az-Arab',\n 51: 'hy',\n 52: 'ka',\n 53: 'mo',\n 54: 'ky',\n 55: 'tg',\n 56: 'tk',\n 57: 'mn-CN',\n 58: 'mn',\n 59: 'ps',\n 60: 'ks',\n 61: 'ku',\n 62: 'sd',\n 63: 'bo',\n 64: 'ne',\n 65: 'sa',\n 66: 'mr',\n 67: 'bn',\n 68: 'as',\n 69: 'gu',\n 70: 'pa',\n 71: 'or',\n 72: 'ml',\n 73: 'kn',\n 74: 'ta',\n 75: 'te',\n 76: 'si',\n 77: 'my',\n 78: 'km',\n 79: 'lo',\n 80: 'vi',\n 81: 'id',\n 82: 'tl',\n 83: 'ms',\n 84: 'ms-Arab',\n 85: 'am',\n 86: 'ti',\n 87: 'om',\n 88: 'so',\n 89: 'sw',\n 90: 'rw',\n 91: 'rn',\n 92: 'ny',\n 93: 'mg',\n 94: 'eo',\n 128: 'cy',\n 129: 'eu',\n 130: 'ca',\n 131: 'la',\n 132: 'qu',\n 133: 'gn',\n 134: 'ay',\n 135: 'tt',\n 136: 'ug',\n 137: 'dz',\n 138: 'jv',\n 139: 'su',\n 140: 'gl',\n 141: 'af',\n 142: 'br',\n 143: 'iu',\n 144: 'gd',\n 145: 'gv',\n 146: 'ga',\n 147: 'to',\n 148: 'el-polyton',\n 149: 'kl',\n 150: 'az',\n 151: 'nn'\n};\n\n// MacOS language ID → MacOS script ID\n//\n// Note that the script ID is not sufficient to determine what encoding\n// to use in TrueType files. For some languages, MacOS used a modification\n// of a mainstream script. For example, an Icelandic name would be stored\n// with smRoman in the TrueType naming table, but the actual encoding\n// is a special Icelandic version of the normal Macintosh Roman encoding.\n// As another example, Inuktitut uses an 8-bit encoding for Canadian Aboriginal\n// Syllables but MacOS had run out of available script codes, so this was\n// done as a (pretty radical) \"modification\" of Ethiopic.\n//\n// http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt\nvar macLanguageToScript = {\n 0: 0, // langEnglish → smRoman\n 1: 0, // langFrench → smRoman\n 2: 0, // langGerman → smRoman\n 3: 0, // langItalian → smRoman\n 4: 0, // langDutch → smRoman\n 5: 0, // langSwedish → smRoman\n 6: 0, // langSpanish → smRoman\n 7: 0, // langDanish → smRoman\n 8: 0, // langPortuguese → smRoman\n 9: 0, // langNorwegian → smRoman\n 10: 5, // langHebrew → smHebrew\n 11: 1, // langJapanese → smJapanese\n 12: 4, // langArabic → smArabic\n 13: 0, // langFinnish → smRoman\n 14: 6, // langGreek → smGreek\n 15: 0, // langIcelandic → smRoman (modified)\n 16: 0, // langMaltese → smRoman\n 17: 0, // langTurkish → smRoman (modified)\n 18: 0, // langCroatian → smRoman (modified)\n 19: 2, // langTradChinese → smTradChinese\n 20: 4, // langUrdu → smArabic\n 21: 9, // langHindi → smDevanagari\n 22: 21, // langThai → smThai\n 23: 3, // langKorean → smKorean\n 24: 29, // langLithuanian → smCentralEuroRoman\n 25: 29, // langPolish → smCentralEuroRoman\n 26: 29, // langHungarian → smCentralEuroRoman\n 27: 29, // langEstonian → smCentralEuroRoman\n 28: 29, // langLatvian → smCentralEuroRoman\n 29: 0, // langSami → smRoman\n 30: 0, // langFaroese → smRoman (modified)\n 31: 4, // langFarsi → smArabic (modified)\n 32: 7, // langRussian → smCyrillic\n 33: 25, // langSimpChinese → smSimpChinese\n 34: 0, // langFlemish → smRoman\n 35: 0, // langIrishGaelic → smRoman (modified)\n 36: 0, // langAlbanian → smRoman\n 37: 0, // langRomanian → smRoman (modified)\n 38: 29, // langCzech → smCentralEuroRoman\n 39: 29, // langSlovak → smCentralEuroRoman\n 40: 0, // langSlovenian → smRoman (modified)\n 41: 5, // langYiddish → smHebrew\n 42: 7, // langSerbian → smCyrillic\n 43: 7, // langMacedonian → smCyrillic\n 44: 7, // langBulgarian → smCyrillic\n 45: 7, // langUkrainian → smCyrillic (modified)\n 46: 7, // langByelorussian → smCyrillic\n 47: 7, // langUzbek → smCyrillic\n 48: 7, // langKazakh → smCyrillic\n 49: 7, // langAzerbaijani → smCyrillic\n 50: 4, // langAzerbaijanAr → smArabic\n 51: 24, // langArmenian → smArmenian\n 52: 23, // langGeorgian → smGeorgian\n 53: 7, // langMoldavian → smCyrillic\n 54: 7, // langKirghiz → smCyrillic\n 55: 7, // langTajiki → smCyrillic\n 56: 7, // langTurkmen → smCyrillic\n 57: 27, // langMongolian → smMongolian\n 58: 7, // langMongolianCyr → smCyrillic\n 59: 4, // langPashto → smArabic\n 60: 4, // langKurdish → smArabic\n 61: 4, // langKashmiri → smArabic\n 62: 4, // langSindhi → smArabic\n 63: 26, // langTibetan → smTibetan\n 64: 9, // langNepali → smDevanagari\n 65: 9, // langSanskrit → smDevanagari\n 66: 9, // langMarathi → smDevanagari\n 67: 13, // langBengali → smBengali\n 68: 13, // langAssamese → smBengali\n 69: 11, // langGujarati → smGujarati\n 70: 10, // langPunjabi → smGurmukhi\n 71: 12, // langOriya → smOriya\n 72: 17, // langMalayalam → smMalayalam\n 73: 16, // langKannada → smKannada\n 74: 14, // langTamil → smTamil\n 75: 15, // langTelugu → smTelugu\n 76: 18, // langSinhalese → smSinhalese\n 77: 19, // langBurmese → smBurmese\n 78: 20, // langKhmer → smKhmer\n 79: 22, // langLao → smLao\n 80: 30, // langVietnamese → smVietnamese\n 81: 0, // langIndonesian → smRoman\n 82: 0, // langTagalog → smRoman\n 83: 0, // langMalayRoman → smRoman\n 84: 4, // langMalayArabic → smArabic\n 85: 28, // langAmharic → smEthiopic\n 86: 28, // langTigrinya → smEthiopic\n 87: 28, // langOromo → smEthiopic\n 88: 0, // langSomali → smRoman\n 89: 0, // langSwahili → smRoman\n 90: 0, // langKinyarwanda → smRoman\n 91: 0, // langRundi → smRoman\n 92: 0, // langNyanja → smRoman\n 93: 0, // langMalagasy → smRoman\n 94: 0, // langEsperanto → smRoman\n 128: 0, // langWelsh → smRoman (modified)\n 129: 0, // langBasque → smRoman\n 130: 0, // langCatalan → smRoman\n 131: 0, // langLatin → smRoman\n 132: 0, // langQuechua → smRoman\n 133: 0, // langGuarani → smRoman\n 134: 0, // langAymara → smRoman\n 135: 7, // langTatar → smCyrillic\n 136: 4, // langUighur → smArabic\n 137: 26, // langDzongkha → smTibetan\n 138: 0, // langJavaneseRom → smRoman\n 139: 0, // langSundaneseRom → smRoman\n 140: 0, // langGalician → smRoman\n 141: 0, // langAfrikaans → smRoman\n 142: 0, // langBreton → smRoman (modified)\n 143: 28, // langInuktitut → smEthiopic (modified)\n 144: 0, // langScottishGaelic → smRoman (modified)\n 145: 0, // langManxGaelic → smRoman (modified)\n 146: 0, // langIrishGaelicScript → smRoman (modified)\n 147: 0, // langTongan → smRoman\n 148: 6, // langGreekAncient → smRoman\n 149: 0, // langGreenlandic → smRoman\n 150: 0, // langAzerbaijanRoman → smRoman\n 151: 0 // langNynorsk → smRoman\n};\n\n// While Microsoft indicates a region/country for all its language\n// IDs, we omit the region code if it's equal to the \"most likely\n// region subtag\" according to Unicode CLDR. For scripts, we omit\n// the subtag if it is equal to the Suppress-Script entry in the\n// IANA language subtag registry for IETF BCP 47.\n//\n// For example, Microsoft states that its language code 0x041A is\n// Croatian in Croatia. We transform this to the BCP 47 language code 'hr'\n// and not 'hr-HR' because Croatia is the default country for Croatian,\n// according to Unicode CLDR. As another example, Microsoft states\n// that 0x101A is Croatian (Latin) in Bosnia-Herzegovina. We transform\n// this to 'hr-BA' and not 'hr-Latn-BA' because Latin is the default script\n// for the Croatian language, according to IANA.\n//\n// http://www.unicode.org/cldr/charts/latest/supplemental/likely_subtags.html\n// http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\nvar windowsLanguages = {\n 0x0436: 'af',\n 0x041C: 'sq',\n 0x0484: 'gsw',\n 0x045E: 'am',\n 0x1401: 'ar-DZ',\n 0x3C01: 'ar-BH',\n 0x0C01: 'ar',\n 0x0801: 'ar-IQ',\n 0x2C01: 'ar-JO',\n 0x3401: 'ar-KW',\n 0x3001: 'ar-LB',\n 0x1001: 'ar-LY',\n 0x1801: 'ary',\n 0x2001: 'ar-OM',\n 0x4001: 'ar-QA',\n 0x0401: 'ar-SA',\n 0x2801: 'ar-SY',\n 0x1C01: 'aeb',\n 0x3801: 'ar-AE',\n 0x2401: 'ar-YE',\n 0x042B: 'hy',\n 0x044D: 'as',\n 0x082C: 'az-Cyrl',\n 0x042C: 'az',\n 0x046D: 'ba',\n 0x042D: 'eu',\n 0x0423: 'be',\n 0x0845: 'bn',\n 0x0445: 'bn-IN',\n 0x201A: 'bs-Cyrl',\n 0x141A: 'bs',\n 0x047E: 'br',\n 0x0402: 'bg',\n 0x0403: 'ca',\n 0x0C04: 'zh-HK',\n 0x1404: 'zh-MO',\n 0x0804: 'zh',\n 0x1004: 'zh-SG',\n 0x0404: 'zh-TW',\n 0x0483: 'co',\n 0x041A: 'hr',\n 0x101A: 'hr-BA',\n 0x0405: 'cs',\n 0x0406: 'da',\n 0x048C: 'prs',\n 0x0465: 'dv',\n 0x0813: 'nl-BE',\n 0x0413: 'nl',\n 0x0C09: 'en-AU',\n 0x2809: 'en-BZ',\n 0x1009: 'en-CA',\n 0x2409: 'en-029',\n 0x4009: 'en-IN',\n 0x1809: 'en-IE',\n 0x2009: 'en-JM',\n 0x4409: 'en-MY',\n 0x1409: 'en-NZ',\n 0x3409: 'en-PH',\n 0x4809: 'en-SG',\n 0x1C09: 'en-ZA',\n 0x2C09: 'en-TT',\n 0x0809: 'en-GB',\n 0x0409: 'en',\n 0x3009: 'en-ZW',\n 0x0425: 'et',\n 0x0438: 'fo',\n 0x0464: 'fil',\n 0x040B: 'fi',\n 0x080C: 'fr-BE',\n 0x0C0C: 'fr-CA',\n 0x040C: 'fr',\n 0x140C: 'fr-LU',\n 0x180C: 'fr-MC',\n 0x100C: 'fr-CH',\n 0x0462: 'fy',\n 0x0456: 'gl',\n 0x0437: 'ka',\n 0x0C07: 'de-AT',\n 0x0407: 'de',\n 0x1407: 'de-LI',\n 0x1007: 'de-LU',\n 0x0807: 'de-CH',\n 0x0408: 'el',\n 0x046F: 'kl',\n 0x0447: 'gu',\n 0x0468: 'ha',\n 0x040D: 'he',\n 0x0439: 'hi',\n 0x040E: 'hu',\n 0x040F: 'is',\n 0x0470: 'ig',\n 0x0421: 'id',\n 0x045D: 'iu',\n 0x085D: 'iu-Latn',\n 0x083C: 'ga',\n 0x0434: 'xh',\n 0x0435: 'zu',\n 0x0410: 'it',\n 0x0810: 'it-CH',\n 0x0411: 'ja',\n 0x044B: 'kn',\n 0x043F: 'kk',\n 0x0453: 'km',\n 0x0486: 'quc',\n 0x0487: 'rw',\n 0x0441: 'sw',\n 0x0457: 'kok',\n 0x0412: 'ko',\n 0x0440: 'ky',\n 0x0454: 'lo',\n 0x0426: 'lv',\n 0x0427: 'lt',\n 0x082E: 'dsb',\n 0x046E: 'lb',\n 0x042F: 'mk',\n 0x083E: 'ms-BN',\n 0x043E: 'ms',\n 0x044C: 'ml',\n 0x043A: 'mt',\n 0x0481: 'mi',\n 0x047A: 'arn',\n 0x044E: 'mr',\n 0x047C: 'moh',\n 0x0450: 'mn',\n 0x0850: 'mn-CN',\n 0x0461: 'ne',\n 0x0414: 'nb',\n 0x0814: 'nn',\n 0x0482: 'oc',\n 0x0448: 'or',\n 0x0463: 'ps',\n 0x0415: 'pl',\n 0x0416: 'pt',\n 0x0816: 'pt-PT',\n 0x0446: 'pa',\n 0x046B: 'qu-BO',\n 0x086B: 'qu-EC',\n 0x0C6B: 'qu',\n 0x0418: 'ro',\n 0x0417: 'rm',\n 0x0419: 'ru',\n 0x243B: 'smn',\n 0x103B: 'smj-NO',\n 0x143B: 'smj',\n 0x0C3B: 'se-FI',\n 0x043B: 'se',\n 0x083B: 'se-SE',\n 0x203B: 'sms',\n 0x183B: 'sma-NO',\n 0x1C3B: 'sms',\n 0x044F: 'sa',\n 0x1C1A: 'sr-Cyrl-BA',\n 0x0C1A: 'sr',\n 0x181A: 'sr-Latn-BA',\n 0x081A: 'sr-Latn',\n 0x046C: 'nso',\n 0x0432: 'tn',\n 0x045B: 'si',\n 0x041B: 'sk',\n 0x0424: 'sl',\n 0x2C0A: 'es-AR',\n 0x400A: 'es-BO',\n 0x340A: 'es-CL',\n 0x240A: 'es-CO',\n 0x140A: 'es-CR',\n 0x1C0A: 'es-DO',\n 0x300A: 'es-EC',\n 0x440A: 'es-SV',\n 0x100A: 'es-GT',\n 0x480A: 'es-HN',\n 0x080A: 'es-MX',\n 0x4C0A: 'es-NI',\n 0x180A: 'es-PA',\n 0x3C0A: 'es-PY',\n 0x280A: 'es-PE',\n 0x500A: 'es-PR',\n\n // Microsoft has defined two different language codes for\n // “Spanish with modern sorting” and “Spanish with traditional\n // sorting”. This makes sense for collation APIs, and it would be\n // possible to express this in BCP 47 language tags via Unicode\n // extensions (eg., es-u-co-trad is Spanish with traditional\n // sorting). However, for storing names in fonts, the distinction\n // does not make sense, so we give “es” in both cases.\n 0x0C0A: 'es',\n 0x040A: 'es',\n\n 0x540A: 'es-US',\n 0x380A: 'es-UY',\n 0x200A: 'es-VE',\n 0x081D: 'sv-FI',\n 0x041D: 'sv',\n 0x045A: 'syr',\n 0x0428: 'tg',\n 0x085F: 'tzm',\n 0x0449: 'ta',\n 0x0444: 'tt',\n 0x044A: 'te',\n 0x041E: 'th',\n 0x0451: 'bo',\n 0x041F: 'tr',\n 0x0442: 'tk',\n 0x0480: 'ug',\n 0x0422: 'uk',\n 0x042E: 'hsb',\n 0x0420: 'ur',\n 0x0843: 'uz-Cyrl',\n 0x0443: 'uz',\n 0x042A: 'vi',\n 0x0452: 'cy',\n 0x0488: 'wo',\n 0x0485: 'sah',\n 0x0478: 'ii',\n 0x046A: 'yo'\n};\n\n// Returns a IETF BCP 47 language code, for example 'zh-Hant'\n// for 'Chinese in the traditional script'.\nfunction getLanguageCode(platformID, languageID, ltag) {\n switch (platformID) {\n case 0: // Unicode\n if (languageID === 0xFFFF) {\n return 'und';\n } else if (ltag) {\n return ltag[languageID];\n }\n\n break;\n\n case 1: // Macintosh\n return macLanguages[languageID];\n\n case 3: // Windows\n return windowsLanguages[languageID];\n }\n\n return undefined;\n}\n\nvar utf16 = 'utf-16';\n\n// MacOS script ID → encoding. This table stores the default case,\n// which can be overridden by macLanguageEncodings.\nvar macScriptEncodings = {\n 0: 'macintosh', // smRoman\n 1: 'x-mac-japanese', // smJapanese\n 2: 'x-mac-chinesetrad', // smTradChinese\n 3: 'x-mac-korean', // smKorean\n 6: 'x-mac-greek', // smGreek\n 7: 'x-mac-cyrillic', // smCyrillic\n 9: 'x-mac-devanagai', // smDevanagari\n 10: 'x-mac-gurmukhi', // smGurmukhi\n 11: 'x-mac-gujarati', // smGujarati\n 12: 'x-mac-oriya', // smOriya\n 13: 'x-mac-bengali', // smBengali\n 14: 'x-mac-tamil', // smTamil\n 15: 'x-mac-telugu', // smTelugu\n 16: 'x-mac-kannada', // smKannada\n 17: 'x-mac-malayalam', // smMalayalam\n 18: 'x-mac-sinhalese', // smSinhalese\n 19: 'x-mac-burmese', // smBurmese\n 20: 'x-mac-khmer', // smKhmer\n 21: 'x-mac-thai', // smThai\n 22: 'x-mac-lao', // smLao\n 23: 'x-mac-georgian', // smGeorgian\n 24: 'x-mac-armenian', // smArmenian\n 25: 'x-mac-chinesesimp', // smSimpChinese\n 26: 'x-mac-tibetan', // smTibetan\n 27: 'x-mac-mongolian', // smMongolian\n 28: 'x-mac-ethiopic', // smEthiopic\n 29: 'x-mac-ce', // smCentralEuroRoman\n 30: 'x-mac-vietnamese', // smVietnamese\n 31: 'x-mac-extarabic' // smExtArabic\n};\n\n// MacOS language ID → encoding. This table stores the exceptional\n// cases, which override macScriptEncodings. For writing MacOS naming\n// tables, we need to emit a MacOS script ID. Therefore, we cannot\n// merge macScriptEncodings into macLanguageEncodings.\n//\n// http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt\nvar macLanguageEncodings = {\n 15: 'x-mac-icelandic', // langIcelandic\n 17: 'x-mac-turkish', // langTurkish\n 18: 'x-mac-croatian', // langCroatian\n 24: 'x-mac-ce', // langLithuanian\n 25: 'x-mac-ce', // langPolish\n 26: 'x-mac-ce', // langHungarian\n 27: 'x-mac-ce', // langEstonian\n 28: 'x-mac-ce', // langLatvian\n 30: 'x-mac-icelandic', // langFaroese\n 37: 'x-mac-romanian', // langRomanian\n 38: 'x-mac-ce', // langCzech\n 39: 'x-mac-ce', // langSlovak\n 40: 'x-mac-ce', // langSlovenian\n 143: 'x-mac-inuit', // langInuktitut\n 146: 'x-mac-gaelic' // langIrishGaelicScript\n};\n\nfunction getEncoding(platformID, encodingID, languageID) {\n switch (platformID) {\n case 0: // Unicode\n return utf16;\n\n case 1: // Apple Macintosh\n return macLanguageEncodings[languageID] || macScriptEncodings[encodingID];\n\n case 3: // Microsoft Windows\n if (encodingID === 1 || encodingID === 10) {\n return utf16;\n }\n\n break;\n }\n\n return undefined;\n}\n\n// Parse the naming `name` table.\n// FIXME: Format 1 additional fields are not supported yet.\n// ltag is the content of the `ltag' table, such as ['en', 'zh-Hans', 'de-CH-1904'].\nfunction parseNameTable(data, start, ltag) {\n var name = {};\n var p = new parse.Parser(data, start);\n var format = p.parseUShort();\n var count = p.parseUShort();\n var stringOffset = p.offset + p.parseUShort();\n for (var i = 0; i < count; i++) {\n var platformID = p.parseUShort();\n var encodingID = p.parseUShort();\n var languageID = p.parseUShort();\n var nameID = p.parseUShort();\n var property = nameTableNames[nameID] || nameID;\n var byteLength = p.parseUShort();\n var offset = p.parseUShort();\n var language = getLanguageCode(platformID, languageID, ltag);\n var encoding = getEncoding(platformID, encodingID, languageID);\n if (encoding !== undefined && language !== undefined) {\n var text = (void 0);\n if (encoding === utf16) {\n text = decode.UTF16(data, stringOffset + offset, byteLength);\n } else {\n text = decode.MACSTRING(data, stringOffset + offset, byteLength, encoding);\n }\n\n if (text) {\n var translations = name[property];\n if (translations === undefined) {\n translations = name[property] = {};\n }\n\n translations[language] = text;\n }\n }\n }\n\n var langTagCount = 0;\n if (format === 1) {\n // FIXME: Also handle Microsoft's 'name' table 1.\n langTagCount = p.parseUShort();\n }\n\n return name;\n}\n\n// {23: 'foo'} → {'foo': 23}\n// ['bar', 'baz'] → {'bar': 0, 'baz': 1}\nfunction reverseDict(dict) {\n var result = {};\n for (var key in dict) {\n result[dict[key]] = parseInt(key);\n }\n\n return result;\n}\n\nfunction makeNameRecord(platformID, encodingID, languageID, nameID, length, offset) {\n return new table.Record('NameRecord', [\n {name: 'platformID', type: 'USHORT', value: platformID},\n {name: 'encodingID', type: 'USHORT', value: encodingID},\n {name: 'languageID', type: 'USHORT', value: languageID},\n {name: 'nameID', type: 'USHORT', value: nameID},\n {name: 'length', type: 'USHORT', value: length},\n {name: 'offset', type: 'USHORT', value: offset}\n ]);\n}\n\n// Finds the position of needle in haystack, or -1 if not there.\n// Like String.indexOf(), but for arrays.\nfunction findSubArray(needle, haystack) {\n var needleLength = needle.length;\n var limit = haystack.length - needleLength + 1;\n\n loop:\n for (var pos = 0; pos < limit; pos++) {\n for (; pos < limit; pos++) {\n for (var k = 0; k < needleLength; k++) {\n if (haystack[pos + k] !== needle[k]) {\n continue loop;\n }\n }\n\n return pos;\n }\n }\n\n return -1;\n}\n\nfunction addStringToPool(s, pool) {\n var offset = findSubArray(s, pool);\n if (offset < 0) {\n offset = pool.length;\n var i = 0;\n var len = s.length;\n for (; i < len; ++i) {\n pool.push(s[i]);\n }\n\n }\n\n return offset;\n}\n\nfunction makeNameTable(names, ltag) {\n var nameID;\n var nameIDs = [];\n\n var namesWithNumericKeys = {};\n var nameTableIds = reverseDict(nameTableNames);\n for (var key in names) {\n var id = nameTableIds[key];\n if (id === undefined) {\n id = key;\n }\n\n nameID = parseInt(id);\n\n if (isNaN(nameID)) {\n throw new Error('Name table entry \"' + key + '\" does not exist, see nameTableNames for complete list.');\n }\n\n namesWithNumericKeys[nameID] = names[key];\n nameIDs.push(nameID);\n }\n\n var macLanguageIds = reverseDict(macLanguages);\n var windowsLanguageIds = reverseDict(windowsLanguages);\n\n var nameRecords = [];\n var stringPool = [];\n\n for (var i = 0; i < nameIDs.length; i++) {\n nameID = nameIDs[i];\n var translations = namesWithNumericKeys[nameID];\n for (var lang in translations) {\n var text = translations[lang];\n\n // For MacOS, we try to emit the name in the form that was introduced\n // in the initial version of the TrueType spec (in the late 1980s).\n // However, this can fail for various reasons: the requested BCP 47\n // language code might not have an old-style Mac equivalent;\n // we might not have a codec for the needed character encoding;\n // or the name might contain characters that cannot be expressed\n // in the old-style Macintosh encoding. In case of failure, we emit\n // the name in a more modern fashion (Unicode encoding with BCP 47\n // language tags) that is recognized by MacOS 10.5, released in 2009.\n // If fonts were only read by operating systems, we could simply\n // emit all names in the modern form; this would be much easier.\n // However, there are many applications and libraries that read\n // 'name' tables directly, and these will usually only recognize\n // the ancient form (silently skipping the unrecognized names).\n var macPlatform = 1; // Macintosh\n var macLanguage = macLanguageIds[lang];\n var macScript = macLanguageToScript[macLanguage];\n var macEncoding = getEncoding(macPlatform, macScript, macLanguage);\n var macName = encode.MACSTRING(text, macEncoding);\n if (macName === undefined) {\n macPlatform = 0; // Unicode\n macLanguage = ltag.indexOf(lang);\n if (macLanguage < 0) {\n macLanguage = ltag.length;\n ltag.push(lang);\n }\n\n macScript = 4; // Unicode 2.0 and later\n macName = encode.UTF16(text);\n }\n\n var macNameOffset = addStringToPool(macName, stringPool);\n nameRecords.push(makeNameRecord(macPlatform, macScript, macLanguage,\n nameID, macName.length, macNameOffset));\n\n var winLanguage = windowsLanguageIds[lang];\n if (winLanguage !== undefined) {\n var winName = encode.UTF16(text);\n var winNameOffset = addStringToPool(winName, stringPool);\n nameRecords.push(makeNameRecord(3, 1, winLanguage,\n nameID, winName.length, winNameOffset));\n }\n }\n }\n\n nameRecords.sort(function(a, b) {\n return ((a.platformID - b.platformID) ||\n (a.encodingID - b.encodingID) ||\n (a.languageID - b.languageID) ||\n (a.nameID - b.nameID));\n });\n\n var t = new table.Table('name', [\n {name: 'format', type: 'USHORT', value: 0},\n {name: 'count', type: 'USHORT', value: nameRecords.length},\n {name: 'stringOffset', type: 'USHORT', value: 6 + nameRecords.length * 12}\n ]);\n\n for (var r = 0; r < nameRecords.length; r++) {\n t.fields.push({name: 'record_' + r, type: 'RECORD', value: nameRecords[r]});\n }\n\n t.fields.push({name: 'strings', type: 'LITERAL', value: stringPool});\n return t;\n}\n\nvar _name = { parse: parseNameTable, make: makeNameTable };\n\n// The `OS/2` table contains metrics required in OpenType fonts.\n\nvar unicodeRanges = [\n {begin: 0x0000, end: 0x007F}, // Basic Latin\n {begin: 0x0080, end: 0x00FF}, // Latin-1 Supplement\n {begin: 0x0100, end: 0x017F}, // Latin Extended-A\n {begin: 0x0180, end: 0x024F}, // Latin Extended-B\n {begin: 0x0250, end: 0x02AF}, // IPA Extensions\n {begin: 0x02B0, end: 0x02FF}, // Spacing Modifier Letters\n {begin: 0x0300, end: 0x036F}, // Combining Diacritical Marks\n {begin: 0x0370, end: 0x03FF}, // Greek and Coptic\n {begin: 0x2C80, end: 0x2CFF}, // Coptic\n {begin: 0x0400, end: 0x04FF}, // Cyrillic\n {begin: 0x0530, end: 0x058F}, // Armenian\n {begin: 0x0590, end: 0x05FF}, // Hebrew\n {begin: 0xA500, end: 0xA63F}, // Vai\n {begin: 0x0600, end: 0x06FF}, // Arabic\n {begin: 0x07C0, end: 0x07FF}, // NKo\n {begin: 0x0900, end: 0x097F}, // Devanagari\n {begin: 0x0980, end: 0x09FF}, // Bengali\n {begin: 0x0A00, end: 0x0A7F}, // Gurmukhi\n {begin: 0x0A80, end: 0x0AFF}, // Gujarati\n {begin: 0x0B00, end: 0x0B7F}, // Oriya\n {begin: 0x0B80, end: 0x0BFF}, // Tamil\n {begin: 0x0C00, end: 0x0C7F}, // Telugu\n {begin: 0x0C80, end: 0x0CFF}, // Kannada\n {begin: 0x0D00, end: 0x0D7F}, // Malayalam\n {begin: 0x0E00, end: 0x0E7F}, // Thai\n {begin: 0x0E80, end: 0x0EFF}, // Lao\n {begin: 0x10A0, end: 0x10FF}, // Georgian\n {begin: 0x1B00, end: 0x1B7F}, // Balinese\n {begin: 0x1100, end: 0x11FF}, // Hangul Jamo\n {begin: 0x1E00, end: 0x1EFF}, // Latin Extended Additional\n {begin: 0x1F00, end: 0x1FFF}, // Greek Extended\n {begin: 0x2000, end: 0x206F}, // General Punctuation\n {begin: 0x2070, end: 0x209F}, // Superscripts And Subscripts\n {begin: 0x20A0, end: 0x20CF}, // Currency Symbol\n {begin: 0x20D0, end: 0x20FF}, // Combining Diacritical Marks For Symbols\n {begin: 0x2100, end: 0x214F}, // Letterlike Symbols\n {begin: 0x2150, end: 0x218F}, // Number Forms\n {begin: 0x2190, end: 0x21FF}, // Arrows\n {begin: 0x2200, end: 0x22FF}, // Mathematical Operators\n {begin: 0x2300, end: 0x23FF}, // Miscellaneous Technical\n {begin: 0x2400, end: 0x243F}, // Control Pictures\n {begin: 0x2440, end: 0x245F}, // Optical Character Recognition\n {begin: 0x2460, end: 0x24FF}, // Enclosed Alphanumerics\n {begin: 0x2500, end: 0x257F}, // Box Drawing\n {begin: 0x2580, end: 0x259F}, // Block Elements\n {begin: 0x25A0, end: 0x25FF}, // Geometric Shapes\n {begin: 0x2600, end: 0x26FF}, // Miscellaneous Symbols\n {begin: 0x2700, end: 0x27BF}, // Dingbats\n {begin: 0x3000, end: 0x303F}, // CJK Symbols And Punctuation\n {begin: 0x3040, end: 0x309F}, // Hiragana\n {begin: 0x30A0, end: 0x30FF}, // Katakana\n {begin: 0x3100, end: 0x312F}, // Bopomofo\n {begin: 0x3130, end: 0x318F}, // Hangul Compatibility Jamo\n {begin: 0xA840, end: 0xA87F}, // Phags-pa\n {begin: 0x3200, end: 0x32FF}, // Enclosed CJK Letters And Months\n {begin: 0x3300, end: 0x33FF}, // CJK Compatibility\n {begin: 0xAC00, end: 0xD7AF}, // Hangul Syllables\n {begin: 0xD800, end: 0xDFFF}, // Non-Plane 0 *\n {begin: 0x10900, end: 0x1091F}, // Phoenicia\n {begin: 0x4E00, end: 0x9FFF}, // CJK Unified Ideographs\n {begin: 0xE000, end: 0xF8FF}, // Private Use Area (plane 0)\n {begin: 0x31C0, end: 0x31EF}, // CJK Strokes\n {begin: 0xFB00, end: 0xFB4F}, // Alphabetic Presentation Forms\n {begin: 0xFB50, end: 0xFDFF}, // Arabic Presentation Forms-A\n {begin: 0xFE20, end: 0xFE2F}, // Combining Half Marks\n {begin: 0xFE10, end: 0xFE1F}, // Vertical Forms\n {begin: 0xFE50, end: 0xFE6F}, // Small Form Variants\n {begin: 0xFE70, end: 0xFEFF}, // Arabic Presentation Forms-B\n {begin: 0xFF00, end: 0xFFEF}, // Halfwidth And Fullwidth Forms\n {begin: 0xFFF0, end: 0xFFFF}, // Specials\n {begin: 0x0F00, end: 0x0FFF}, // Tibetan\n {begin: 0x0700, end: 0x074F}, // Syriac\n {begin: 0x0780, end: 0x07BF}, // Thaana\n {begin: 0x0D80, end: 0x0DFF}, // Sinhala\n {begin: 0x1000, end: 0x109F}, // Myanmar\n {begin: 0x1200, end: 0x137F}, // Ethiopic\n {begin: 0x13A0, end: 0x13FF}, // Cherokee\n {begin: 0x1400, end: 0x167F}, // Unified Canadian Aboriginal Syllabics\n {begin: 0x1680, end: 0x169F}, // Ogham\n {begin: 0x16A0, end: 0x16FF}, // Runic\n {begin: 0x1780, end: 0x17FF}, // Khmer\n {begin: 0x1800, end: 0x18AF}, // Mongolian\n {begin: 0x2800, end: 0x28FF}, // Braille Patterns\n {begin: 0xA000, end: 0xA48F}, // Yi Syllables\n {begin: 0x1700, end: 0x171F}, // Tagalog\n {begin: 0x10300, end: 0x1032F}, // Old Italic\n {begin: 0x10330, end: 0x1034F}, // Gothic\n {begin: 0x10400, end: 0x1044F}, // Deseret\n {begin: 0x1D000, end: 0x1D0FF}, // Byzantine Musical Symbols\n {begin: 0x1D400, end: 0x1D7FF}, // Mathematical Alphanumeric Symbols\n {begin: 0xFF000, end: 0xFFFFD}, // Private Use (plane 15)\n {begin: 0xFE00, end: 0xFE0F}, // Variation Selectors\n {begin: 0xE0000, end: 0xE007F}, // Tags\n {begin: 0x1900, end: 0x194F}, // Limbu\n {begin: 0x1950, end: 0x197F}, // Tai Le\n {begin: 0x1980, end: 0x19DF}, // New Tai Lue\n {begin: 0x1A00, end: 0x1A1F}, // Buginese\n {begin: 0x2C00, end: 0x2C5F}, // Glagolitic\n {begin: 0x2D30, end: 0x2D7F}, // Tifinagh\n {begin: 0x4DC0, end: 0x4DFF}, // Yijing Hexagram Symbols\n {begin: 0xA800, end: 0xA82F}, // Syloti Nagri\n {begin: 0x10000, end: 0x1007F}, // Linear B Syllabary\n {begin: 0x10140, end: 0x1018F}, // Ancient Greek Numbers\n {begin: 0x10380, end: 0x1039F}, // Ugaritic\n {begin: 0x103A0, end: 0x103DF}, // Old Persian\n {begin: 0x10450, end: 0x1047F}, // Shavian\n {begin: 0x10480, end: 0x104AF}, // Osmanya\n {begin: 0x10800, end: 0x1083F}, // Cypriot Syllabary\n {begin: 0x10A00, end: 0x10A5F}, // Kharoshthi\n {begin: 0x1D300, end: 0x1D35F}, // Tai Xuan Jing Symbols\n {begin: 0x12000, end: 0x123FF}, // Cuneiform\n {begin: 0x1D360, end: 0x1D37F}, // Counting Rod Numerals\n {begin: 0x1B80, end: 0x1BBF}, // Sundanese\n {begin: 0x1C00, end: 0x1C4F}, // Lepcha\n {begin: 0x1C50, end: 0x1C7F}, // Ol Chiki\n {begin: 0xA880, end: 0xA8DF}, // Saurashtra\n {begin: 0xA900, end: 0xA92F}, // Kayah Li\n {begin: 0xA930, end: 0xA95F}, // Rejang\n {begin: 0xAA00, end: 0xAA5F}, // Cham\n {begin: 0x10190, end: 0x101CF}, // Ancient Symbols\n {begin: 0x101D0, end: 0x101FF}, // Phaistos Disc\n {begin: 0x102A0, end: 0x102DF}, // Carian\n {begin: 0x1F030, end: 0x1F09F} // Domino Tiles\n];\n\nfunction getUnicodeRange(unicode) {\n for (var i = 0; i < unicodeRanges.length; i += 1) {\n var range = unicodeRanges[i];\n if (unicode >= range.begin && unicode < range.end) {\n return i;\n }\n }\n\n return -1;\n}\n\n// Parse the OS/2 and Windows metrics `OS/2` table\nfunction parseOS2Table(data, start) {\n var os2 = {};\n var p = new parse.Parser(data, start);\n os2.version = p.parseUShort();\n os2.xAvgCharWidth = p.parseShort();\n os2.usWeightClass = p.parseUShort();\n os2.usWidthClass = p.parseUShort();\n os2.fsType = p.parseUShort();\n os2.ySubscriptXSize = p.parseShort();\n os2.ySubscriptYSize = p.parseShort();\n os2.ySubscriptXOffset = p.parseShort();\n os2.ySubscriptYOffset = p.parseShort();\n os2.ySuperscriptXSize = p.parseShort();\n os2.ySuperscriptYSize = p.parseShort();\n os2.ySuperscriptXOffset = p.parseShort();\n os2.ySuperscriptYOffset = p.parseShort();\n os2.yStrikeoutSize = p.parseShort();\n os2.yStrikeoutPosition = p.parseShort();\n os2.sFamilyClass = p.parseShort();\n os2.panose = [];\n for (var i = 0; i < 10; i++) {\n os2.panose[i] = p.parseByte();\n }\n\n os2.ulUnicodeRange1 = p.parseULong();\n os2.ulUnicodeRange2 = p.parseULong();\n os2.ulUnicodeRange3 = p.parseULong();\n os2.ulUnicodeRange4 = p.parseULong();\n os2.achVendID = String.fromCharCode(p.parseByte(), p.parseByte(), p.parseByte(), p.parseByte());\n os2.fsSelection = p.parseUShort();\n os2.usFirstCharIndex = p.parseUShort();\n os2.usLastCharIndex = p.parseUShort();\n os2.sTypoAscender = p.parseShort();\n os2.sTypoDescender = p.parseShort();\n os2.sTypoLineGap = p.parseShort();\n os2.usWinAscent = p.parseUShort();\n os2.usWinDescent = p.parseUShort();\n if (os2.version >= 1) {\n os2.ulCodePageRange1 = p.parseULong();\n os2.ulCodePageRange2 = p.parseULong();\n }\n\n if (os2.version >= 2) {\n os2.sxHeight = p.parseShort();\n os2.sCapHeight = p.parseShort();\n os2.usDefaultChar = p.parseUShort();\n os2.usBreakChar = p.parseUShort();\n os2.usMaxContent = p.parseUShort();\n }\n\n return os2;\n}\n\nfunction makeOS2Table(options) {\n return new table.Table('OS/2', [\n {name: 'version', type: 'USHORT', value: 0x0003},\n {name: 'xAvgCharWidth', type: 'SHORT', value: 0},\n {name: 'usWeightClass', type: 'USHORT', value: 0},\n {name: 'usWidthClass', type: 'USHORT', value: 0},\n {name: 'fsType', type: 'USHORT', value: 0},\n {name: 'ySubscriptXSize', type: 'SHORT', value: 650},\n {name: 'ySubscriptYSize', type: 'SHORT', value: 699},\n {name: 'ySubscriptXOffset', type: 'SHORT', value: 0},\n {name: 'ySubscriptYOffset', type: 'SHORT', value: 140},\n {name: 'ySuperscriptXSize', type: 'SHORT', value: 650},\n {name: 'ySuperscriptYSize', type: 'SHORT', value: 699},\n {name: 'ySuperscriptXOffset', type: 'SHORT', value: 0},\n {name: 'ySuperscriptYOffset', type: 'SHORT', value: 479},\n {name: 'yStrikeoutSize', type: 'SHORT', value: 49},\n {name: 'yStrikeoutPosition', type: 'SHORT', value: 258},\n {name: 'sFamilyClass', type: 'SHORT', value: 0},\n {name: 'bFamilyType', type: 'BYTE', value: 0},\n {name: 'bSerifStyle', type: 'BYTE', value: 0},\n {name: 'bWeight', type: 'BYTE', value: 0},\n {name: 'bProportion', type: 'BYTE', value: 0},\n {name: 'bContrast', type: 'BYTE', value: 0},\n {name: 'bStrokeVariation', type: 'BYTE', value: 0},\n {name: 'bArmStyle', type: 'BYTE', value: 0},\n {name: 'bLetterform', type: 'BYTE', value: 0},\n {name: 'bMidline', type: 'BYTE', value: 0},\n {name: 'bXHeight', type: 'BYTE', value: 0},\n {name: 'ulUnicodeRange1', type: 'ULONG', value: 0},\n {name: 'ulUnicodeRange2', type: 'ULONG', value: 0},\n {name: 'ulUnicodeRange3', type: 'ULONG', value: 0},\n {name: 'ulUnicodeRange4', type: 'ULONG', value: 0},\n {name: 'achVendID', type: 'CHARARRAY', value: 'XXXX'},\n {name: 'fsSelection', type: 'USHORT', value: 0},\n {name: 'usFirstCharIndex', type: 'USHORT', value: 0},\n {name: 'usLastCharIndex', type: 'USHORT', value: 0},\n {name: 'sTypoAscender', type: 'SHORT', value: 0},\n {name: 'sTypoDescender', type: 'SHORT', value: 0},\n {name: 'sTypoLineGap', type: 'SHORT', value: 0},\n {name: 'usWinAscent', type: 'USHORT', value: 0},\n {name: 'usWinDescent', type: 'USHORT', value: 0},\n {name: 'ulCodePageRange1', type: 'ULONG', value: 0},\n {name: 'ulCodePageRange2', type: 'ULONG', value: 0},\n {name: 'sxHeight', type: 'SHORT', value: 0},\n {name: 'sCapHeight', type: 'SHORT', value: 0},\n {name: 'usDefaultChar', type: 'USHORT', value: 0},\n {name: 'usBreakChar', type: 'USHORT', value: 0},\n {name: 'usMaxContext', type: 'USHORT', value: 0}\n ], options);\n}\n\nvar os2 = { parse: parseOS2Table, make: makeOS2Table, unicodeRanges: unicodeRanges, getUnicodeRange: getUnicodeRange };\n\n// The `post` table stores additional PostScript information, such as glyph names.\n\n// Parse the PostScript `post` table\nfunction parsePostTable(data, start) {\n var post = {};\n var p = new parse.Parser(data, start);\n post.version = p.parseVersion();\n post.italicAngle = p.parseFixed();\n post.underlinePosition = p.parseShort();\n post.underlineThickness = p.parseShort();\n post.isFixedPitch = p.parseULong();\n post.minMemType42 = p.parseULong();\n post.maxMemType42 = p.parseULong();\n post.minMemType1 = p.parseULong();\n post.maxMemType1 = p.parseULong();\n switch (post.version) {\n case 1:\n post.names = standardNames.slice();\n break;\n case 2:\n post.numberOfGlyphs = p.parseUShort();\n post.glyphNameIndex = new Array(post.numberOfGlyphs);\n for (var i = 0; i < post.numberOfGlyphs; i++) {\n post.glyphNameIndex[i] = p.parseUShort();\n }\n\n post.names = [];\n for (var i$1 = 0; i$1 < post.numberOfGlyphs; i$1++) {\n if (post.glyphNameIndex[i$1] >= standardNames.length) {\n var nameLength = p.parseChar();\n post.names.push(p.parseString(nameLength));\n }\n }\n\n break;\n case 2.5:\n post.numberOfGlyphs = p.parseUShort();\n post.offset = new Array(post.numberOfGlyphs);\n for (var i$2 = 0; i$2 < post.numberOfGlyphs; i$2++) {\n post.offset[i$2] = p.parseChar();\n }\n\n break;\n }\n return post;\n}\n\nfunction makePostTable() {\n return new table.Table('post', [\n {name: 'version', type: 'FIXED', value: 0x00030000},\n {name: 'italicAngle', type: 'FIXED', value: 0},\n {name: 'underlinePosition', type: 'FWORD', value: 0},\n {name: 'underlineThickness', type: 'FWORD', value: 0},\n {name: 'isFixedPitch', type: 'ULONG', value: 0},\n {name: 'minMemType42', type: 'ULONG', value: 0},\n {name: 'maxMemType42', type: 'ULONG', value: 0},\n {name: 'minMemType1', type: 'ULONG', value: 0},\n {name: 'maxMemType1', type: 'ULONG', value: 0}\n ]);\n}\n\nvar post = { parse: parsePostTable, make: makePostTable };\n\n// The `GSUB` table contains ligatures, among other things.\n\nvar subtableParsers = new Array(9); // subtableParsers[0] is unused\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#SS\nsubtableParsers[1] = function parseLookup1() {\n var start = this.offset + this.relativeOffset;\n var substFormat = this.parseUShort();\n if (substFormat === 1) {\n return {\n substFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n deltaGlyphId: this.parseUShort()\n };\n } else if (substFormat === 2) {\n return {\n substFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n substitute: this.parseOffset16List()\n };\n }\n check.assert(false, '0x' + start.toString(16) + ': lookup type 1 format must be 1 or 2.');\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#MS\nsubtableParsers[2] = function parseLookup2() {\n var substFormat = this.parseUShort();\n check.argument(substFormat === 1, 'GSUB Multiple Substitution Subtable identifier-format must be 1');\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n sequences: this.parseListOfLists()\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#AS\nsubtableParsers[3] = function parseLookup3() {\n var substFormat = this.parseUShort();\n check.argument(substFormat === 1, 'GSUB Alternate Substitution Subtable identifier-format must be 1');\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n alternateSets: this.parseListOfLists()\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#LS\nsubtableParsers[4] = function parseLookup4() {\n var substFormat = this.parseUShort();\n check.argument(substFormat === 1, 'GSUB ligature table identifier-format must be 1');\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n ligatureSets: this.parseListOfLists(function() {\n return {\n ligGlyph: this.parseUShort(),\n components: this.parseUShortList(this.parseUShort() - 1)\n };\n })\n };\n};\n\nvar lookupRecordDesc = {\n sequenceIndex: Parser.uShort,\n lookupListIndex: Parser.uShort\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#CSF\nsubtableParsers[5] = function parseLookup5() {\n var start = this.offset + this.relativeOffset;\n var substFormat = this.parseUShort();\n\n if (substFormat === 1) {\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n ruleSets: this.parseListOfLists(function() {\n var glyphCount = this.parseUShort();\n var substCount = this.parseUShort();\n return {\n input: this.parseUShortList(glyphCount - 1),\n lookupRecords: this.parseRecordList(substCount, lookupRecordDesc)\n };\n })\n };\n } else if (substFormat === 2) {\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n classDef: this.parsePointer(Parser.classDef),\n classSets: this.parseListOfLists(function() {\n var glyphCount = this.parseUShort();\n var substCount = this.parseUShort();\n return {\n classes: this.parseUShortList(glyphCount - 1),\n lookupRecords: this.parseRecordList(substCount, lookupRecordDesc)\n };\n })\n };\n } else if (substFormat === 3) {\n var glyphCount = this.parseUShort();\n var substCount = this.parseUShort();\n return {\n substFormat: substFormat,\n coverages: this.parseList(glyphCount, Parser.pointer(Parser.coverage)),\n lookupRecords: this.parseRecordList(substCount, lookupRecordDesc)\n };\n }\n check.assert(false, '0x' + start.toString(16) + ': lookup type 5 format must be 1, 2 or 3.');\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#CC\nsubtableParsers[6] = function parseLookup6() {\n var start = this.offset + this.relativeOffset;\n var substFormat = this.parseUShort();\n if (substFormat === 1) {\n return {\n substFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n chainRuleSets: this.parseListOfLists(function() {\n return {\n backtrack: this.parseUShortList(),\n input: this.parseUShortList(this.parseShort() - 1),\n lookahead: this.parseUShortList(),\n lookupRecords: this.parseRecordList(lookupRecordDesc)\n };\n })\n };\n } else if (substFormat === 2) {\n return {\n substFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n backtrackClassDef: this.parsePointer(Parser.classDef),\n inputClassDef: this.parsePointer(Parser.classDef),\n lookaheadClassDef: this.parsePointer(Parser.classDef),\n chainClassSet: this.parseListOfLists(function() {\n return {\n backtrack: this.parseUShortList(),\n input: this.parseUShortList(this.parseShort() - 1),\n lookahead: this.parseUShortList(),\n lookupRecords: this.parseRecordList(lookupRecordDesc)\n };\n })\n };\n } else if (substFormat === 3) {\n return {\n substFormat: 3,\n backtrackCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n inputCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookaheadCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookupRecords: this.parseRecordList(lookupRecordDesc)\n };\n }\n check.assert(false, '0x' + start.toString(16) + ': lookup type 6 format must be 1, 2 or 3.');\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#ES\nsubtableParsers[7] = function parseLookup7() {\n // Extension Substitution subtable\n var substFormat = this.parseUShort();\n check.argument(substFormat === 1, 'GSUB Extension Substitution subtable identifier-format must be 1');\n var extensionLookupType = this.parseUShort();\n var extensionParser = new Parser(this.data, this.offset + this.parseULong());\n return {\n substFormat: 1,\n lookupType: extensionLookupType,\n extension: subtableParsers[extensionLookupType].call(extensionParser)\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/GSUB.htm#RCCS\nsubtableParsers[8] = function parseLookup8() {\n var substFormat = this.parseUShort();\n check.argument(substFormat === 1, 'GSUB Reverse Chaining Contextual Single Substitution Subtable identifier-format must be 1');\n return {\n substFormat: substFormat,\n coverage: this.parsePointer(Parser.coverage),\n backtrackCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n lookaheadCoverage: this.parseList(Parser.pointer(Parser.coverage)),\n substitutes: this.parseUShortList()\n };\n};\n\n// https://www.microsoft.com/typography/OTSPEC/gsub.htm\nfunction parseGsubTable(data, start) {\n start = start || 0;\n var p = new Parser(data, start);\n var tableVersion = p.parseVersion(1);\n check.argument(tableVersion === 1 || tableVersion === 1.1, 'Unsupported GSUB table version.');\n var table;\n if (tableVersion === 1) {\n table = {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers)\n };\n } else {\n table = {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers),\n variations: p.parseFeatureVariationsList()\n };\n }\n\n table.features.forEach(function (f) {\n // Match `ss01` to `ss20`\n if (f.tag.match(/ss(?:0[1-9]|1\\d|20)/)) {\n var p = new Parser(data, f.feature.tableOffset);\n f.feature.featureParamsTable = p.parseStylisticSetFeatureParams();\n }\n // Match `cv01` to `cv99`\n else if (f.tag.match(/cv(?:0[1-9]|[1-9]\\d)/)) {\n var p$1 = new Parser(data, f.feature.tableOffset);\n f.feature.featureParamsTable = p$1.parseCharacterVariantFeatureParams();\n }\n delete f.feature.tableOffset;\n });\n return table;\n\n}\n\n// GSUB Writing //////////////////////////////////////////////\nvar subtableMakers = new Array(9);\n\nsubtableMakers[1] = function makeLookup1(subtable) {\n if (subtable.substFormat === 1) {\n return new table.Table('substitutionTable', [\n {name: 'substFormat', type: 'USHORT', value: 1},\n {name: 'coverage', type: 'TABLE', value: new table.Coverage(subtable.coverage)},\n {name: 'deltaGlyphID', type: 'USHORT', value: subtable.deltaGlyphId}\n ]);\n } else {\n return new table.Table('substitutionTable', [\n {name: 'substFormat', type: 'USHORT', value: 2},\n {name: 'coverage', type: 'TABLE', value: new table.Coverage(subtable.coverage)}\n ].concat(table.ushortList('substitute', subtable.substitute)));\n }\n};\n\nsubtableMakers[3] = function makeLookup3(subtable) {\n check.assert(subtable.substFormat === 1, 'Lookup type 3 substFormat must be 1.');\n return new table.Table('substitutionTable', [\n {name: 'substFormat', type: 'USHORT', value: 1},\n {name: 'coverage', type: 'TABLE', value: new table.Coverage(subtable.coverage)}\n ].concat(table.tableList('altSet', subtable.alternateSets, function(alternateSet) {\n return new table.Table('alternateSetTable', table.ushortList('alternate', alternateSet));\n })));\n};\n\nsubtableMakers[4] = function makeLookup4(subtable) {\n check.assert(subtable.substFormat === 1, 'Lookup type 4 substFormat must be 1.');\n return new table.Table('substitutionTable', [\n {name: 'substFormat', type: 'USHORT', value: 1},\n {name: 'coverage', type: 'TABLE', value: new table.Coverage(subtable.coverage)}\n ].concat(table.tableList('ligSet', subtable.ligatureSets, function(ligatureSet) {\n return new table.Table('ligatureSetTable', table.tableList('ligature', ligatureSet, function(ligature) {\n return new table.Table('ligatureTable',\n [{name: 'ligGlyph', type: 'USHORT', value: ligature.ligGlyph}]\n .concat(table.ushortList('component', ligature.components, ligature.components.length + 1))\n );\n }));\n })));\n};\n\nfunction makeGsubTable(gsub) {\n return new table.Table('GSUB', [\n {name: 'version', type: 'ULONG', value: 0x10000},\n {name: 'scripts', type: 'TABLE', value: new table.ScriptList(gsub.scripts)},\n {name: 'features', type: 'TABLE', value: new table.FeatureList(gsub.features)},\n {name: 'lookups', type: 'TABLE', value: new table.LookupList(gsub.lookups, subtableMakers)}\n ]);\n}\n\nvar gsub = { parse: parseGsubTable, make: makeGsubTable };\n\n// The `GPOS` table contains kerning pairs, among other things.\n\n// Parse the metadata `meta` table.\n// https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6meta.html\nfunction parseMetaTable(data, start) {\n var p = new parse.Parser(data, start);\n var tableVersion = p.parseULong();\n check.argument(tableVersion === 1, 'Unsupported META table version.');\n p.parseULong(); // flags - currently unused and set to 0\n p.parseULong(); // tableOffset\n var numDataMaps = p.parseULong();\n\n var tags = {};\n for (var i = 0; i < numDataMaps; i++) {\n var tag = p.parseTag();\n var dataOffset = p.parseULong();\n var dataLength = p.parseULong();\n var text = decode.UTF8(data, start + dataOffset, dataLength);\n\n tags[tag] = text;\n }\n return tags;\n}\n\nfunction makeMetaTable(tags) {\n var numTags = Object.keys(tags).length;\n var stringPool = '';\n var stringPoolOffset = 16 + numTags * 12;\n\n var result = new table.Table('meta', [\n {name: 'version', type: 'ULONG', value: 1},\n {name: 'flags', type: 'ULONG', value: 0},\n {name: 'offset', type: 'ULONG', value: stringPoolOffset},\n {name: 'numTags', type: 'ULONG', value: numTags}\n ]);\n\n for (var tag in tags) {\n var pos = stringPool.length;\n stringPool += tags[tag];\n\n result.fields.push({name: 'tag ' + tag, type: 'TAG', value: tag});\n result.fields.push({name: 'offset ' + tag, type: 'ULONG', value: stringPoolOffset + pos});\n result.fields.push({name: 'length ' + tag, type: 'ULONG', value: tags[tag].length});\n }\n\n result.fields.push({name: 'stringPool', type: 'CHARARRAY', value: stringPool});\n\n return result;\n}\n\nvar meta = { parse: parseMetaTable, make: makeMetaTable };\n\n// The `sfnt` wrapper provides organization for the tables in the font.\n\nfunction log2(v) {\n return Math.log(v) / Math.log(2) | 0;\n}\n\nfunction computeCheckSum(bytes) {\n while (bytes.length % 4 !== 0) {\n bytes.push(0);\n }\n\n var sum = 0;\n for (var i = 0; i < bytes.length; i += 4) {\n sum += (bytes[i] << 24) +\n (bytes[i + 1] << 16) +\n (bytes[i + 2] << 8) +\n (bytes[i + 3]);\n }\n\n sum %= Math.pow(2, 32);\n return sum;\n}\n\nfunction makeTableRecord(tag, checkSum, offset, length) {\n return new table.Record('Table Record', [\n {name: 'tag', type: 'TAG', value: tag !== undefined ? tag : ''},\n {name: 'checkSum', type: 'ULONG', value: checkSum !== undefined ? checkSum : 0},\n {name: 'offset', type: 'ULONG', value: offset !== undefined ? offset : 0},\n {name: 'length', type: 'ULONG', value: length !== undefined ? length : 0}\n ]);\n}\n\nfunction makeSfntTable(tables) {\n var sfnt = new table.Table('sfnt', [\n {name: 'version', type: 'TAG', value: 'OTTO'},\n {name: 'numTables', type: 'USHORT', value: 0},\n {name: 'searchRange', type: 'USHORT', value: 0},\n {name: 'entrySelector', type: 'USHORT', value: 0},\n {name: 'rangeShift', type: 'USHORT', value: 0}\n ]);\n sfnt.tables = tables;\n sfnt.numTables = tables.length;\n var highestPowerOf2 = Math.pow(2, log2(sfnt.numTables));\n sfnt.searchRange = 16 * highestPowerOf2;\n sfnt.entrySelector = log2(highestPowerOf2);\n sfnt.rangeShift = sfnt.numTables * 16 - sfnt.searchRange;\n\n var recordFields = [];\n var tableFields = [];\n\n var offset = sfnt.sizeOf() + (makeTableRecord().sizeOf() * sfnt.numTables);\n while (offset % 4 !== 0) {\n offset += 1;\n tableFields.push({name: 'padding', type: 'BYTE', value: 0});\n }\n\n for (var i = 0; i < tables.length; i += 1) {\n var t = tables[i];\n check.argument(t.tableName.length === 4, 'Table name' + t.tableName + ' is invalid.');\n var tableLength = t.sizeOf();\n var tableRecord = makeTableRecord(t.tableName, computeCheckSum(t.encode()), offset, tableLength);\n recordFields.push({name: tableRecord.tag + ' Table Record', type: 'RECORD', value: tableRecord});\n tableFields.push({name: t.tableName + ' table', type: 'RECORD', value: t});\n offset += tableLength;\n check.argument(!isNaN(offset), 'Something went wrong calculating the offset.');\n while (offset % 4 !== 0) {\n offset += 1;\n tableFields.push({name: 'padding', type: 'BYTE', value: 0});\n }\n }\n\n // Table records need to be sorted alphabetically.\n recordFields.sort(function(r1, r2) {\n if (r1.value.tag > r2.value.tag) {\n return 1;\n } else {\n return -1;\n }\n });\n\n sfnt.fields = sfnt.fields.concat(recordFields);\n sfnt.fields = sfnt.fields.concat(tableFields);\n return sfnt;\n}\n\n// Get the metrics for a character. If the string has more than one character\n// this function returns metrics for the first available character.\n// You can provide optional fallback metrics if no characters are available.\nfunction metricsForChar(font, chars, notFoundMetrics) {\n for (var i = 0; i < chars.length; i += 1) {\n var glyphIndex = font.charToGlyphIndex(chars[i]);\n if (glyphIndex > 0) {\n var glyph = font.glyphs.get(glyphIndex);\n return glyph.getMetrics();\n }\n }\n\n return notFoundMetrics;\n}\n\nfunction average(vs) {\n var sum = 0;\n for (var i = 0; i < vs.length; i += 1) {\n sum += vs[i];\n }\n\n return sum / vs.length;\n}\n\n// Convert the font object to a SFNT data structure.\n// This structure contains all the necessary tables and metadata to create a binary OTF file.\nfunction fontToSfntTable(font) {\n var xMins = [];\n var yMins = [];\n var xMaxs = [];\n var yMaxs = [];\n var advanceWidths = [];\n var leftSideBearings = [];\n var rightSideBearings = [];\n var firstCharIndex;\n var lastCharIndex = 0;\n var ulUnicodeRange1 = 0;\n var ulUnicodeRange2 = 0;\n var ulUnicodeRange3 = 0;\n var ulUnicodeRange4 = 0;\n\n for (var i = 0; i < font.glyphs.length; i += 1) {\n var glyph = font.glyphs.get(i);\n var unicode = glyph.unicode | 0;\n\n if (isNaN(glyph.advanceWidth)) {\n throw new Error('Glyph ' + glyph.name + ' (' + i + '): advanceWidth is not a number.');\n }\n\n if (firstCharIndex > unicode || firstCharIndex === undefined) {\n // ignore .notdef char\n if (unicode > 0) {\n firstCharIndex = unicode;\n }\n }\n\n if (lastCharIndex < unicode) {\n lastCharIndex = unicode;\n }\n\n var position = os2.getUnicodeRange(unicode);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << position - 32;\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << position - 64;\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << position - 96;\n } else {\n throw new Error('Unicode ranges bits > 123 are reserved for internal usage');\n }\n // Skip non-important characters.\n if (glyph.name === '.notdef') { continue; }\n var metrics = glyph.getMetrics();\n xMins.push(metrics.xMin);\n yMins.push(metrics.yMin);\n xMaxs.push(metrics.xMax);\n yMaxs.push(metrics.yMax);\n leftSideBearings.push(metrics.leftSideBearing);\n rightSideBearings.push(metrics.rightSideBearing);\n advanceWidths.push(glyph.advanceWidth);\n }\n\n var globals = {\n xMin: Math.min.apply(null, xMins),\n yMin: Math.min.apply(null, yMins),\n xMax: Math.max.apply(null, xMaxs),\n yMax: Math.max.apply(null, yMaxs),\n advanceWidthMax: Math.max.apply(null, advanceWidths),\n advanceWidthAvg: average(advanceWidths),\n minLeftSideBearing: Math.min.apply(null, leftSideBearings),\n maxLeftSideBearing: Math.max.apply(null, leftSideBearings),\n minRightSideBearing: Math.min.apply(null, rightSideBearings)\n };\n globals.ascender = font.ascender;\n globals.descender = font.descender;\n\n var headTable = head.make({\n flags: 3, // 00000011 (baseline for font at y=0; left sidebearing point at x=0)\n unitsPerEm: font.unitsPerEm,\n xMin: globals.xMin,\n yMin: globals.yMin,\n xMax: globals.xMax,\n yMax: globals.yMax,\n lowestRecPPEM: 3,\n createdTimestamp: font.createdTimestamp\n });\n\n var hheaTable = hhea.make({\n ascender: globals.ascender,\n descender: globals.descender,\n advanceWidthMax: globals.advanceWidthMax,\n minLeftSideBearing: globals.minLeftSideBearing,\n minRightSideBearing: globals.minRightSideBearing,\n xMaxExtent: globals.maxLeftSideBearing + (globals.xMax - globals.xMin),\n numberOfHMetrics: font.glyphs.length\n });\n\n var maxpTable = maxp.make(font.glyphs.length);\n\n var os2Table = os2.make(Object.assign({\n xAvgCharWidth: Math.round(globals.advanceWidthAvg),\n usFirstCharIndex: firstCharIndex,\n usLastCharIndex: lastCharIndex,\n ulUnicodeRange1: ulUnicodeRange1,\n ulUnicodeRange2: ulUnicodeRange2,\n ulUnicodeRange3: ulUnicodeRange3,\n ulUnicodeRange4: ulUnicodeRange4,\n // See http://typophile.com/node/13081 for more info on vertical metrics.\n // We get metrics for typical characters (such as \"x\" for xHeight).\n // We provide some fallback characters if characters are unavailable: their\n // ordering was chosen experimentally.\n sTypoAscender: globals.ascender,\n sTypoDescender: globals.descender,\n sTypoLineGap: 0,\n usWinAscent: globals.yMax,\n usWinDescent: Math.abs(globals.yMin),\n ulCodePageRange1: 1, // FIXME: hard-code Latin 1 support for now\n sxHeight: metricsForChar(font, 'xyvw', {yMax: Math.round(globals.ascender / 2)}).yMax,\n sCapHeight: metricsForChar(font, 'HIKLEFJMNTZBDPRAGOQSUVWXY', globals).yMax,\n usDefaultChar: font.hasChar(' ') ? 32 : 0, // Use space as the default character, if available.\n usBreakChar: font.hasChar(' ') ? 32 : 0, // Use space as the break character, if available.\n }, font.tables.os2));\n\n var hmtxTable = hmtx.make(font.glyphs);\n var cmapTable = cmap.make(font.glyphs);\n\n var englishFamilyName = font.getEnglishName('fontFamily');\n var englishStyleName = font.getEnglishName('fontSubfamily');\n var englishFullName = englishFamilyName + ' ' + englishStyleName;\n var postScriptName = font.getEnglishName('postScriptName');\n if (!postScriptName) {\n postScriptName = englishFamilyName.replace(/\\s/g, '') + '-' + englishStyleName;\n }\n\n var names = {};\n for (var n in font.names) {\n names[n] = font.names[n];\n }\n\n if (!names.uniqueID) {\n names.uniqueID = {en: font.getEnglishName('manufacturer') + ':' + englishFullName};\n }\n\n if (!names.postScriptName) {\n names.postScriptName = {en: postScriptName};\n }\n\n if (!names.preferredFamily) {\n names.preferredFamily = font.names.fontFamily;\n }\n\n if (!names.preferredSubfamily) {\n names.preferredSubfamily = font.names.fontSubfamily;\n }\n\n var languageTags = [];\n var nameTable = _name.make(names, languageTags);\n var ltagTable = (languageTags.length > 0 ? ltag.make(languageTags) : undefined);\n\n var postTable = post.make();\n var cffTable = cff.make(font.glyphs, {\n version: font.getEnglishName('version'),\n fullName: englishFullName,\n familyName: englishFamilyName,\n weightName: englishStyleName,\n postScriptName: postScriptName,\n unitsPerEm: font.unitsPerEm,\n fontBBox: [0, globals.yMin, globals.ascender, globals.advanceWidthMax]\n });\n\n var metaTable = (font.metas && Object.keys(font.metas).length > 0) ? meta.make(font.metas) : undefined;\n\n // The order does not matter because makeSfntTable() will sort them.\n var tables = [headTable, hheaTable, maxpTable, os2Table, nameTable, cmapTable, postTable, cffTable, hmtxTable];\n if (ltagTable) {\n tables.push(ltagTable);\n }\n // Optional tables\n if (font.tables.gsub) {\n tables.push(gsub.make(font.tables.gsub));\n }\n if (metaTable) {\n tables.push(metaTable);\n }\n\n var sfntTable = makeSfntTable(tables);\n\n // Compute the font's checkSum and store it in head.checkSumAdjustment.\n var bytes = sfntTable.encode();\n var checkSum = computeCheckSum(bytes);\n var tableFields = sfntTable.fields;\n var checkSumAdjusted = false;\n for (var i$1 = 0; i$1 < tableFields.length; i$1 += 1) {\n if (tableFields[i$1].name === 'head table') {\n tableFields[i$1].value.checkSumAdjustment = 0xB1B0AFBA - checkSum;\n checkSumAdjusted = true;\n break;\n }\n }\n\n if (!checkSumAdjusted) {\n throw new Error('Could not find head table with checkSum to adjust.');\n }\n\n return sfntTable;\n}\n\nvar sfnt = { make: makeSfntTable, fontToTable: fontToSfntTable, computeCheckSum: computeCheckSum };\n\n// The Layout object is the prototype of Substitution objects, and provides\n\nfunction searchTag(arr, tag) {\n /* jshint bitwise: false */\n var imin = 0;\n var imax = arr.length - 1;\n while (imin <= imax) {\n var imid = (imin + imax) >>> 1;\n var val = arr[imid].tag;\n if (val === tag) {\n return imid;\n } else if (val < tag) {\n imin = imid + 1;\n } else { imax = imid - 1; }\n }\n // Not found: return -1-insertion point\n return -imin - 1;\n}\n\nfunction binSearch(arr, value) {\n /* jshint bitwise: false */\n var imin = 0;\n var imax = arr.length - 1;\n while (imin <= imax) {\n var imid = (imin + imax) >>> 1;\n var val = arr[imid];\n if (val === value) {\n return imid;\n } else if (val < value) {\n imin = imid + 1;\n } else { imax = imid - 1; }\n }\n // Not found: return -1-insertion point\n return -imin - 1;\n}\n\n// binary search in a list of ranges (coverage, class definition)\nfunction searchRange(ranges, value) {\n // jshint bitwise: false\n var range;\n var imin = 0;\n var imax = ranges.length - 1;\n while (imin <= imax) {\n var imid = (imin + imax) >>> 1;\n range = ranges[imid];\n var start = range.start;\n if (start === value) {\n return range;\n } else if (start < value) {\n imin = imid + 1;\n } else { imax = imid - 1; }\n }\n if (imin > 0) {\n range = ranges[imin - 1];\n if (value > range.end) { return 0; }\n return range;\n }\n}\n\n/**\n * @exports opentype.Layout\n * @class\n */\nfunction Layout(font, tableName) {\n this.font = font;\n this.tableName = tableName;\n}\n\nLayout.prototype = {\n\n /**\n * Binary search an object by \"tag\" property\n * @instance\n * @function searchTag\n * @memberof opentype.Layout\n * @param {Array} arr\n * @param {string} tag\n * @return {number}\n */\n searchTag: searchTag,\n\n /**\n * Binary search in a list of numbers\n * @instance\n * @function binSearch\n * @memberof opentype.Layout\n * @param {Array} arr\n * @param {number} value\n * @return {number}\n */\n binSearch: binSearch,\n\n /**\n * Get or create the Layout table (GSUB, GPOS etc).\n * @param {boolean} create - Whether to create a new one.\n * @return {Object} The GSUB or GPOS table.\n */\n getTable: function(create) {\n var layout = this.font.tables[this.tableName];\n if (!layout && create) {\n layout = this.font.tables[this.tableName] = this.createDefaultTable();\n }\n return layout;\n },\n\n /**\n * Returns all scripts in the substitution table.\n * @instance\n * @return {Array}\n */\n getScriptNames: function() {\n var layout = this.getTable();\n if (!layout) { return []; }\n return layout.scripts.map(function(script) {\n return script.tag;\n });\n },\n\n /**\n * Returns the best bet for a script name.\n * Returns 'DFLT' if it exists.\n * If not, returns 'latn' if it exists.\n * If neither exist, returns undefined.\n */\n getDefaultScriptName: function() {\n var layout = this.getTable();\n if (!layout) { return; }\n var hasLatn = false;\n for (var i = 0; i < layout.scripts.length; i++) {\n var name = layout.scripts[i].tag;\n if (name === 'DFLT') { return name; }\n if (name === 'latn') { hasLatn = true; }\n }\n if (hasLatn) { return 'latn'; }\n },\n\n /**\n * Returns all LangSysRecords in the given script.\n * @instance\n * @param {string} [script='DFLT']\n * @param {boolean} create - forces the creation of this script table if it doesn't exist.\n * @return {Object} An object with tag and script properties.\n */\n getScriptTable: function(script, create) {\n var layout = this.getTable(create);\n if (layout) {\n script = script || 'DFLT';\n var scripts = layout.scripts;\n var pos = searchTag(layout.scripts, script);\n if (pos >= 0) {\n return scripts[pos].script;\n } else if (create) {\n var scr = {\n tag: script,\n script: {\n defaultLangSys: {reserved: 0, reqFeatureIndex: 0xffff, featureIndexes: []},\n langSysRecords: []\n }\n };\n scripts.splice(-1 - pos, 0, scr);\n return scr.script;\n }\n }\n },\n\n /**\n * Returns a language system table\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {boolean} create - forces the creation of this langSysTable if it doesn't exist.\n * @return {Object}\n */\n getLangSysTable: function(script, language, create) {\n var scriptTable = this.getScriptTable(script, create);\n if (scriptTable) {\n if (!language || language === 'dflt' || language === 'DFLT') {\n return scriptTable.defaultLangSys;\n }\n var pos = searchTag(scriptTable.langSysRecords, language);\n if (pos >= 0) {\n return scriptTable.langSysRecords[pos].langSys;\n } else if (create) {\n var langSysRecord = {\n tag: language,\n langSys: {reserved: 0, reqFeatureIndex: 0xffff, featureIndexes: []}\n };\n scriptTable.langSysRecords.splice(-1 - pos, 0, langSysRecord);\n return langSysRecord.langSys;\n }\n }\n },\n\n /**\n * Get a specific feature table.\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {string} feature - One of the codes listed at https://www.microsoft.com/typography/OTSPEC/featurelist.htm\n * @param {boolean} create - forces the creation of the feature table if it doesn't exist.\n * @return {Object}\n */\n getFeatureTable: function(script, language, feature, create) {\n var langSysTable = this.getLangSysTable(script, language, create);\n if (langSysTable) {\n var featureRecord;\n var featIndexes = langSysTable.featureIndexes;\n var allFeatures = this.font.tables[this.tableName].features;\n // The FeatureIndex array of indices is in arbitrary order,\n // even if allFeatures is sorted alphabetically by feature tag.\n for (var i = 0; i < featIndexes.length; i++) {\n featureRecord = allFeatures[featIndexes[i]];\n if (featureRecord.tag === feature) {\n return featureRecord.feature;\n }\n }\n if (create) {\n var index = allFeatures.length;\n // Automatic ordering of features would require to shift feature indexes in the script list.\n check.assert(index === 0 || feature >= allFeatures[index - 1].tag, 'Features must be added in alphabetical order.');\n featureRecord = {\n tag: feature,\n feature: { params: 0, lookupListIndexes: [] }\n };\n allFeatures.push(featureRecord);\n featIndexes.push(index);\n return featureRecord.feature;\n }\n }\n },\n\n /**\n * Get the lookup tables of a given type for a script/language/feature.\n * @instance\n * @param {string} [script='DFLT']\n * @param {string} [language='dlft']\n * @param {string} feature - 4-letter feature code\n * @param {number} lookupType - 1 to 9\n * @param {boolean} create - forces the creation of the lookup table if it doesn't exist, with no subtables.\n * @return {Object[]}\n */\n getLookupTables: function(script, language, feature, lookupType, create) {\n var featureTable = this.getFeatureTable(script, language, feature, create);\n var tables = [];\n if (featureTable) {\n var lookupTable;\n var lookupListIndexes = featureTable.lookupListIndexes;\n var allLookups = this.font.tables[this.tableName].lookups;\n // lookupListIndexes are in no particular order, so use naive search.\n for (var i = 0; i < lookupListIndexes.length; i++) {\n lookupTable = allLookups[lookupListIndexes[i]];\n if (lookupTable.lookupType === lookupType) {\n tables.push(lookupTable);\n }\n }\n if (tables.length === 0 && create) {\n lookupTable = {\n lookupType: lookupType,\n lookupFlag: 0,\n subtables: [],\n markFilteringSet: undefined\n };\n var index = allLookups.length;\n allLookups.push(lookupTable);\n lookupListIndexes.push(index);\n return [lookupTable];\n }\n }\n return tables;\n },\n\n /**\n * Find a glyph in a class definition table\n * https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#class-definition-table\n * @param {object} classDefTable - an OpenType Layout class definition table\n * @param {number} glyphIndex - the index of the glyph to find\n * @returns {number} -1 if not found\n */\n getGlyphClass: function(classDefTable, glyphIndex) {\n switch (classDefTable.format) {\n case 1:\n if (classDefTable.startGlyph <= glyphIndex && glyphIndex < classDefTable.startGlyph + classDefTable.classes.length) {\n return classDefTable.classes[glyphIndex - classDefTable.startGlyph];\n }\n return 0;\n case 2:\n var range = searchRange(classDefTable.ranges, glyphIndex);\n return range ? range.classId : 0;\n }\n },\n\n /**\n * Find a glyph in a coverage table\n * https://docs.microsoft.com/en-us/typography/opentype/spec/chapter2#coverage-table\n * @param {object} coverageTable - an OpenType Layout coverage table\n * @param {number} glyphIndex - the index of the glyph to find\n * @returns {number} -1 if not found\n */\n getCoverageIndex: function(coverageTable, glyphIndex) {\n switch (coverageTable.format) {\n case 1:\n var index = binSearch(coverageTable.glyphs, glyphIndex);\n return index >= 0 ? index : -1;\n case 2:\n var range = searchRange(coverageTable.ranges, glyphIndex);\n return range ? range.index + glyphIndex - range.start : -1;\n }\n },\n\n /**\n * Returns the list of glyph indexes of a coverage table.\n * Format 1: the list is stored raw\n * Format 2: compact list as range records.\n * @instance\n * @param {Object} coverageTable\n * @return {Array}\n */\n expandCoverage: function(coverageTable) {\n if (coverageTable.format === 1) {\n return coverageTable.glyphs;\n } else {\n var glyphs = [];\n var ranges = coverageTable.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var start = range.start;\n var end = range.end;\n for (var j = start; j <= end; j++) {\n glyphs.push(j);\n }\n }\n return glyphs;\n }\n }\n\n};\n\n// The Position object provides utility methods to manipulate\n\n/**\n * @exports opentype.Position\n * @class\n * @extends opentype.Layout\n * @param {opentype.Font}\n * @constructor\n */\nfunction Position(font) {\n Layout.call(this, font, 'gpos');\n}\n\nPosition.prototype = Layout.prototype;\n\n/**\n * Init some data for faster and easier access later.\n */\nPosition.prototype.init = function() {\n var script = this.getDefaultScriptName();\n this.defaultKerningTables = this.getKerningTables(script);\n};\n\n/**\n * Find a glyph pair in a list of lookup tables of type 2 and retrieve the xAdvance kerning value.\n *\n * @param {integer} leftIndex - left glyph index\n * @param {integer} rightIndex - right glyph index\n * @returns {integer}\n */\nPosition.prototype.getKerningValue = function(kerningLookups, leftIndex, rightIndex) {\n for (var i = 0; i < kerningLookups.length; i++) {\n var subtables = kerningLookups[i].subtables;\n for (var j = 0; j < subtables.length; j++) {\n var subtable = subtables[j];\n var covIndex = this.getCoverageIndex(subtable.coverage, leftIndex);\n if (covIndex < 0) { continue; }\n switch (subtable.posFormat) {\n case 1:\n // Search Pair Adjustment Positioning Format 1\n var pairSet = subtable.pairSets[covIndex];\n for (var k = 0; k < pairSet.length; k++) {\n var pair = pairSet[k];\n if (pair.secondGlyph === rightIndex) {\n return pair.value1 && pair.value1.xAdvance || 0;\n }\n }\n break; // left glyph found, not right glyph - try next subtable\n case 2:\n // Search Pair Adjustment Positioning Format 2\n var class1 = this.getGlyphClass(subtable.classDef1, leftIndex);\n var class2 = this.getGlyphClass(subtable.classDef2, rightIndex);\n var pair$1 = subtable.classRecords[class1][class2];\n return pair$1.value1 && pair$1.value1.xAdvance || 0;\n }\n }\n }\n return 0;\n};\n\n/**\n * List all kerning lookup tables.\n *\n * @param {string} [script='DFLT'] - use font.position.getDefaultScriptName() for a better default value\n * @param {string} [language='dflt']\n * @return {object[]} The list of kerning lookup tables (may be empty), or undefined if there is no GPOS table (and we should use the kern table)\n */\nPosition.prototype.getKerningTables = function(script, language) {\n if (this.font.tables.gpos) {\n return this.getLookupTables(script, language, 'kern', 2);\n }\n};\n\n// The Substitution object provides utility methods to manipulate\n\n/**\n * @exports opentype.Substitution\n * @class\n * @extends opentype.Layout\n * @param {opentype.Font}\n * @constructor\n */\nfunction Substitution(font) {\n Layout.call(this, font, 'gsub');\n}\n\n// Check if 2 arrays of primitives are equal.\nfunction arraysEqual(ar1, ar2) {\n var n = ar1.length;\n if (n !== ar2.length) { return false; }\n for (var i = 0; i < n; i++) {\n if (ar1[i] !== ar2[i]) { return false; }\n }\n return true;\n}\n\n// Find the first subtable of a lookup table in a particular format.\nfunction getSubstFormat(lookupTable, format, defaultSubtable) {\n var subtables = lookupTable.subtables;\n for (var i = 0; i < subtables.length; i++) {\n var subtable = subtables[i];\n if (subtable.substFormat === format) {\n return subtable;\n }\n }\n if (defaultSubtable) {\n subtables.push(defaultSubtable);\n return defaultSubtable;\n }\n return undefined;\n}\n\nSubstitution.prototype = Layout.prototype;\n\n/**\n * Create a default GSUB table.\n * @return {Object} gsub - The GSUB table.\n */\nSubstitution.prototype.createDefaultTable = function() {\n // Generate a default empty GSUB table with just a DFLT script and dflt lang sys.\n return {\n version: 1,\n scripts: [{\n tag: 'DFLT',\n script: {\n defaultLangSys: { reserved: 0, reqFeatureIndex: 0xffff, featureIndexes: [] },\n langSysRecords: []\n }\n }],\n features: [],\n lookups: []\n };\n};\n\n/**\n * List all single substitutions (lookup type 1) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('aalt', 'salt', 'ss01'...)\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getSingle = function(feature, script, language) {\n var substitutions = [];\n var lookupTables = this.getLookupTables(script, language, feature, 1);\n for (var idx = 0; idx < lookupTables.length; idx++) {\n var subtables = lookupTables[idx].subtables;\n for (var i = 0; i < subtables.length; i++) {\n var subtable = subtables[i];\n var glyphs = this.expandCoverage(subtable.coverage);\n var j = (void 0);\n if (subtable.substFormat === 1) {\n var delta = subtable.deltaGlyphId;\n for (j = 0; j < glyphs.length; j++) {\n var glyph = glyphs[j];\n substitutions.push({ sub: glyph, by: glyph + delta });\n }\n } else {\n var substitute = subtable.substitute;\n for (j = 0; j < glyphs.length; j++) {\n substitutions.push({ sub: glyphs[j], by: substitute[j] });\n }\n }\n }\n }\n return substitutions;\n};\n\n/**\n * List all alternates (lookup type 3) for a given script, language, and feature.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @param {string} feature - 4-character feature name ('aalt', 'salt'...)\n * @return {Array} alternates - The list of alternates\n */\nSubstitution.prototype.getAlternates = function(feature, script, language) {\n var alternates = [];\n var lookupTables = this.getLookupTables(script, language, feature, 3);\n for (var idx = 0; idx < lookupTables.length; idx++) {\n var subtables = lookupTables[idx].subtables;\n for (var i = 0; i < subtables.length; i++) {\n var subtable = subtables[i];\n var glyphs = this.expandCoverage(subtable.coverage);\n var alternateSets = subtable.alternateSets;\n for (var j = 0; j < glyphs.length; j++) {\n alternates.push({ sub: glyphs[j], by: alternateSets[j] });\n }\n }\n }\n return alternates;\n};\n\n/**\n * List all ligatures (lookup type 4) for a given script, language, and feature.\n * The result is an array of ligature objects like { sub: [ids], by: id }\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @return {Array} ligatures - The list of ligatures.\n */\nSubstitution.prototype.getLigatures = function(feature, script, language) {\n var ligatures = [];\n var lookupTables = this.getLookupTables(script, language, feature, 4);\n for (var idx = 0; idx < lookupTables.length; idx++) {\n var subtables = lookupTables[idx].subtables;\n for (var i = 0; i < subtables.length; i++) {\n var subtable = subtables[i];\n var glyphs = this.expandCoverage(subtable.coverage);\n var ligatureSets = subtable.ligatureSets;\n for (var j = 0; j < glyphs.length; j++) {\n var startGlyph = glyphs[j];\n var ligSet = ligatureSets[j];\n for (var k = 0; k < ligSet.length; k++) {\n var lig = ligSet[k];\n ligatures.push({\n sub: [startGlyph].concat(lig.components),\n by: lig.ligGlyph\n });\n }\n }\n }\n }\n return ligatures;\n};\n\n/**\n * Add or modify a single substitution (lookup type 1)\n * Format 2, more flexible, is always used.\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} substitution - { sub: id, delta: number } for format 1 or { sub: id, by: id } for format 2.\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addSingle = function(feature, substitution, script, language) {\n var lookupTable = this.getLookupTables(script, language, feature, 1, true)[0];\n var subtable = getSubstFormat(lookupTable, 2, { // lookup type 1 subtable, format 2, coverage format 1\n substFormat: 2,\n coverage: {format: 1, glyphs: []},\n substitute: []\n });\n check.assert(subtable.coverage.format === 1, 'Ligature: unable to modify coverage table format ' + subtable.coverage.format);\n var coverageGlyph = substitution.sub;\n var pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.substitute.splice(pos, 0, 0);\n }\n subtable.substitute[pos] = substitution.by;\n};\n\n/**\n * Add or modify an alternate substitution (lookup type 1)\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} substitution - { sub: id, by: [ids] }\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addAlternate = function(feature, substitution, script, language) {\n var lookupTable = this.getLookupTables(script, language, feature, 3, true)[0];\n var subtable = getSubstFormat(lookupTable, 1, { // lookup type 3 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: {format: 1, glyphs: []},\n alternateSets: []\n });\n check.assert(subtable.coverage.format === 1, 'Ligature: unable to modify coverage table format ' + subtable.coverage.format);\n var coverageGlyph = substitution.sub;\n var pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos < 0) {\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.alternateSets.splice(pos, 0, 0);\n }\n subtable.alternateSets[pos] = substitution.by;\n};\n\n/**\n * Add a ligature (lookup type 4)\n * Ligatures with more components must be stored ahead of those with fewer components in order to be found\n * @param {string} feature - 4-letter feature name ('liga', 'rlig', 'dlig'...)\n * @param {Object} ligature - { sub: [ids], by: id }\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.addLigature = function(feature, ligature, script, language) {\n var lookupTable = this.getLookupTables(script, language, feature, 4, true)[0];\n var subtable = lookupTable.subtables[0];\n if (!subtable) {\n subtable = { // lookup type 4 subtable, format 1, coverage format 1\n substFormat: 1,\n coverage: { format: 1, glyphs: [] },\n ligatureSets: []\n };\n lookupTable.subtables[0] = subtable;\n }\n check.assert(subtable.coverage.format === 1, 'Ligature: unable to modify coverage table format ' + subtable.coverage.format);\n var coverageGlyph = ligature.sub[0];\n var ligComponents = ligature.sub.slice(1);\n var ligatureTable = {\n ligGlyph: ligature.by,\n components: ligComponents\n };\n var pos = this.binSearch(subtable.coverage.glyphs, coverageGlyph);\n if (pos >= 0) {\n // ligatureSet already exists\n var ligatureSet = subtable.ligatureSets[pos];\n for (var i = 0; i < ligatureSet.length; i++) {\n // If ligature already exists, return.\n if (arraysEqual(ligatureSet[i].components, ligComponents)) {\n return;\n }\n }\n // ligature does not exist: add it.\n ligatureSet.push(ligatureTable);\n } else {\n // Create a new ligatureSet and add coverage for the first glyph.\n pos = -1 - pos;\n subtable.coverage.glyphs.splice(pos, 0, coverageGlyph);\n subtable.ligatureSets.splice(pos, 0, [ligatureTable]);\n }\n};\n\n/**\n * List all feature data for a given script and language.\n * @param {string} feature - 4-letter feature name\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n * @return {Array} substitutions - The list of substitutions.\n */\nSubstitution.prototype.getFeature = function(feature, script, language) {\n if (/ss\\d\\d/.test(feature)) {\n // ss01 - ss20\n return this.getSingle(feature, script, language);\n }\n switch (feature) {\n case 'aalt':\n case 'salt':\n return this.getSingle(feature, script, language)\n .concat(this.getAlternates(feature, script, language));\n case 'dlig':\n case 'liga':\n case 'rlig': return this.getLigatures(feature, script, language);\n }\n return undefined;\n};\n\n/**\n * Add a substitution to a feature for a given script and language.\n * @param {string} feature - 4-letter feature name\n * @param {Object} sub - the substitution to add (an object like { sub: id or [ids], by: id or [ids] })\n * @param {string} [script='DFLT']\n * @param {string} [language='dflt']\n */\nSubstitution.prototype.add = function(feature, sub, script, language) {\n if (/ss\\d\\d/.test(feature)) {\n // ss01 - ss20\n return this.addSingle(feature, sub, script, language);\n }\n switch (feature) {\n case 'aalt':\n case 'salt':\n if (typeof sub.by === 'number') {\n return this.addSingle(feature, sub, script, language);\n }\n return this.addAlternate(feature, sub, script, language);\n case 'dlig':\n case 'liga':\n case 'rlig':\n return this.addLigature(feature, sub, script, language);\n }\n return undefined;\n};\n\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\n\nfunction nodeBufferToArrayBuffer(buffer) {\n var ab = new ArrayBuffer(buffer.length);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n view[i] = buffer[i];\n }\n\n return ab;\n}\n\nfunction arrayBufferToNodeBuffer(ab) {\n var buffer = new Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n\n return buffer;\n}\n\nfunction checkArgument(expression, message) {\n if (!expression) {\n throw message;\n }\n}\n\n// The `glyf` table describes the glyphs in TrueType outline format.\n\n// Parse the coordinate data for a glyph.\nfunction parseGlyphCoordinate(p, flag, previousValue, shortVectorBitMask, sameBitMask) {\n var v;\n if ((flag & shortVectorBitMask) > 0) {\n // The coordinate is 1 byte long.\n v = p.parseByte();\n // The `same` bit is re-used for short values to signify the sign of the value.\n if ((flag & sameBitMask) === 0) {\n v = -v;\n }\n\n v = previousValue + v;\n } else {\n // The coordinate is 2 bytes long.\n // If the `same` bit is set, the coordinate is the same as the previous coordinate.\n if ((flag & sameBitMask) > 0) {\n v = previousValue;\n } else {\n // Parse the coordinate as a signed 16-bit delta value.\n v = previousValue + p.parseShort();\n }\n }\n\n return v;\n}\n\n// Parse a TrueType glyph.\nfunction parseGlyph(glyph, data, start) {\n var p = new parse.Parser(data, start);\n glyph.numberOfContours = p.parseShort();\n glyph._xMin = p.parseShort();\n glyph._yMin = p.parseShort();\n glyph._xMax = p.parseShort();\n glyph._yMax = p.parseShort();\n var flags;\n var flag;\n\n if (glyph.numberOfContours > 0) {\n // This glyph is not a composite.\n var endPointIndices = glyph.endPointIndices = [];\n for (var i = 0; i < glyph.numberOfContours; i += 1) {\n endPointIndices.push(p.parseUShort());\n }\n\n glyph.instructionLength = p.parseUShort();\n glyph.instructions = [];\n for (var i$1 = 0; i$1 < glyph.instructionLength; i$1 += 1) {\n glyph.instructions.push(p.parseByte());\n }\n\n var numberOfCoordinates = endPointIndices[endPointIndices.length - 1] + 1;\n flags = [];\n for (var i$2 = 0; i$2 < numberOfCoordinates; i$2 += 1) {\n flag = p.parseByte();\n flags.push(flag);\n // If bit 3 is set, we repeat this flag n times, where n is the next byte.\n if ((flag & 8) > 0) {\n var repeatCount = p.parseByte();\n for (var j = 0; j < repeatCount; j += 1) {\n flags.push(flag);\n i$2 += 1;\n }\n }\n }\n\n check.argument(flags.length === numberOfCoordinates, 'Bad flags.');\n\n if (endPointIndices.length > 0) {\n var points = [];\n var point;\n // X/Y coordinates are relative to the previous point, except for the first point which is relative to 0,0.\n if (numberOfCoordinates > 0) {\n for (var i$3 = 0; i$3 < numberOfCoordinates; i$3 += 1) {\n flag = flags[i$3];\n point = {};\n point.onCurve = !!(flag & 1);\n point.lastPointOfContour = endPointIndices.indexOf(i$3) >= 0;\n points.push(point);\n }\n\n var px = 0;\n for (var i$4 = 0; i$4 < numberOfCoordinates; i$4 += 1) {\n flag = flags[i$4];\n point = points[i$4];\n point.x = parseGlyphCoordinate(p, flag, px, 2, 16);\n px = point.x;\n }\n\n var py = 0;\n for (var i$5 = 0; i$5 < numberOfCoordinates; i$5 += 1) {\n flag = flags[i$5];\n point = points[i$5];\n point.y = parseGlyphCoordinate(p, flag, py, 4, 32);\n py = point.y;\n }\n }\n\n glyph.points = points;\n } else {\n glyph.points = [];\n }\n } else if (glyph.numberOfContours === 0) {\n glyph.points = [];\n } else {\n glyph.isComposite = true;\n glyph.points = [];\n glyph.components = [];\n var moreComponents = true;\n while (moreComponents) {\n flags = p.parseUShort();\n var component = {\n glyphIndex: p.parseUShort(),\n xScale: 1,\n scale01: 0,\n scale10: 0,\n yScale: 1,\n dx: 0,\n dy: 0\n };\n if ((flags & 1) > 0) {\n // The arguments are words\n if ((flags & 2) > 0) {\n // values are offset\n component.dx = p.parseShort();\n component.dy = p.parseShort();\n } else {\n // values are matched points\n component.matchedPoints = [p.parseUShort(), p.parseUShort()];\n }\n\n } else {\n // The arguments are bytes\n if ((flags & 2) > 0) {\n // values are offset\n component.dx = p.parseChar();\n component.dy = p.parseChar();\n } else {\n // values are matched points\n component.matchedPoints = [p.parseByte(), p.parseByte()];\n }\n }\n\n if ((flags & 8) > 0) {\n // We have a scale\n component.xScale = component.yScale = p.parseF2Dot14();\n } else if ((flags & 64) > 0) {\n // We have an X / Y scale\n component.xScale = p.parseF2Dot14();\n component.yScale = p.parseF2Dot14();\n } else if ((flags & 128) > 0) {\n // We have a 2x2 transformation\n component.xScale = p.parseF2Dot14();\n component.scale01 = p.parseF2Dot14();\n component.scale10 = p.parseF2Dot14();\n component.yScale = p.parseF2Dot14();\n }\n\n glyph.components.push(component);\n moreComponents = !!(flags & 32);\n }\n if (flags & 0x100) {\n // We have instructions\n glyph.instructionLength = p.parseUShort();\n glyph.instructions = [];\n for (var i$6 = 0; i$6 < glyph.instructionLength; i$6 += 1) {\n glyph.instructions.push(p.parseByte());\n }\n }\n }\n}\n\n// Transform an array of points and return a new array.\nfunction transformPoints(points, transform) {\n var newPoints = [];\n for (var i = 0; i < points.length; i += 1) {\n var pt = points[i];\n var newPt = {\n x: transform.xScale * pt.x + transform.scale01 * pt.y + transform.dx,\n y: transform.scale10 * pt.x + transform.yScale * pt.y + transform.dy,\n onCurve: pt.onCurve,\n lastPointOfContour: pt.lastPointOfContour\n };\n newPoints.push(newPt);\n }\n\n return newPoints;\n}\n\nfunction getContours(points) {\n var contours = [];\n var currentContour = [];\n for (var i = 0; i < points.length; i += 1) {\n var pt = points[i];\n currentContour.push(pt);\n if (pt.lastPointOfContour) {\n contours.push(currentContour);\n currentContour = [];\n }\n }\n\n check.argument(currentContour.length === 0, 'There are still points left in the current contour.');\n return contours;\n}\n\n// Convert the TrueType glyph outline to a Path.\nfunction getPath(points) {\n var p = new Path();\n if (!points) {\n return p;\n }\n\n var contours = getContours(points);\n\n for (var contourIndex = 0; contourIndex < contours.length; ++contourIndex) {\n var contour = contours[contourIndex];\n\n var prev = null;\n var curr = contour[contour.length - 1];\n var next = contour[0];\n\n if (curr.onCurve) {\n p.moveTo(curr.x, curr.y);\n } else {\n if (next.onCurve) {\n p.moveTo(next.x, next.y);\n } else {\n // If both first and last points are off-curve, start at their middle.\n var start = {x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5};\n p.moveTo(start.x, start.y);\n }\n }\n\n for (var i = 0; i < contour.length; ++i) {\n prev = curr;\n curr = next;\n next = contour[(i + 1) % contour.length];\n\n if (curr.onCurve) {\n // This is a straight line.\n p.lineTo(curr.x, curr.y);\n } else {\n var prev2 = prev;\n var next2 = next;\n\n if (!prev.onCurve) {\n prev2 = { x: (curr.x + prev.x) * 0.5, y: (curr.y + prev.y) * 0.5 };\n }\n\n if (!next.onCurve) {\n next2 = { x: (curr.x + next.x) * 0.5, y: (curr.y + next.y) * 0.5 };\n }\n\n p.quadraticCurveTo(curr.x, curr.y, next2.x, next2.y);\n }\n }\n\n p.closePath();\n }\n return p;\n}\n\nfunction buildPath(glyphs, glyph) {\n if (glyph.isComposite) {\n for (var j = 0; j < glyph.components.length; j += 1) {\n var component = glyph.components[j];\n var componentGlyph = glyphs.get(component.glyphIndex);\n // Force the ttfGlyphLoader to parse the glyph.\n componentGlyph.getPath();\n if (componentGlyph.points) {\n var transformedPoints = (void 0);\n if (component.matchedPoints === undefined) {\n // component positioned by offset\n transformedPoints = transformPoints(componentGlyph.points, component);\n } else {\n // component positioned by matched points\n if ((component.matchedPoints[0] > glyph.points.length - 1) ||\n (component.matchedPoints[1] > componentGlyph.points.length - 1)) {\n throw Error('Matched points out of range in ' + glyph.name);\n }\n var firstPt = glyph.points[component.matchedPoints[0]];\n var secondPt = componentGlyph.points[component.matchedPoints[1]];\n var transform = {\n xScale: component.xScale, scale01: component.scale01,\n scale10: component.scale10, yScale: component.yScale,\n dx: 0, dy: 0\n };\n secondPt = transformPoints([secondPt], transform)[0];\n transform.dx = firstPt.x - secondPt.x;\n transform.dy = firstPt.y - secondPt.y;\n transformedPoints = transformPoints(componentGlyph.points, transform);\n }\n glyph.points = glyph.points.concat(transformedPoints);\n }\n }\n }\n\n return getPath(glyph.points);\n}\n\nfunction parseGlyfTableAll(data, start, loca, font) {\n var glyphs = new glyphset.GlyphSet(font);\n\n // The last element of the loca table is invalid.\n for (var i = 0; i < loca.length - 1; i += 1) {\n var offset = loca[i];\n var nextOffset = loca[i + 1];\n if (offset !== nextOffset) {\n glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath));\n } else {\n glyphs.push(i, glyphset.glyphLoader(font, i));\n }\n }\n\n return glyphs;\n}\n\nfunction parseGlyfTableOnLowMemory(data, start, loca, font) {\n var glyphs = new glyphset.GlyphSet(font);\n\n font._push = function(i) {\n var offset = loca[i];\n var nextOffset = loca[i + 1];\n if (offset !== nextOffset) {\n glyphs.push(i, glyphset.ttfGlyphLoader(font, i, parseGlyph, data, start + offset, buildPath));\n } else {\n glyphs.push(i, glyphset.glyphLoader(font, i));\n }\n };\n\n return glyphs;\n}\n\n// Parse all the glyphs according to the offsets from the `loca` table.\nfunction parseGlyfTable(data, start, loca, font, opt) {\n if (opt.lowMemory)\n { return parseGlyfTableOnLowMemory(data, start, loca, font); }\n else\n { return parseGlyfTableAll(data, start, loca, font); }\n}\n\nvar glyf = { getPath: getPath, parse: parseGlyfTable};\n\n/* A TrueType font hinting interpreter.\n*\n* (c) 2017 Axel Kittenberger\n*\n* This interpreter has been implemented according to this documentation:\n* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html\n*\n* According to the documentation F24DOT6 values are used for pixels.\n* That means calculation is 1/64 pixel accurate and uses integer operations.\n* However, Javascript has floating point operations by default and only\n* those are available. One could make a case to simulate the 1/64 accuracy\n* exactly by truncating after every division operation\n* (for example with << 0) to get pixel exactly results as other TrueType\n* implementations. It may make sense since some fonts are pixel optimized\n* by hand using DELTAP instructions. The current implementation doesn't\n* and rather uses full floating point precision.\n*\n* xScale, yScale and rotation is currently ignored.\n*\n* A few non-trivial instructions are missing as I didn't encounter yet\n* a font that used them to test a possible implementation.\n*\n* Some fonts seem to use undocumented features regarding the twilight zone.\n* Only some of them are implemented as they were encountered.\n*\n* The exports.DEBUG statements are removed on the minified distribution file.\n*/\n\nvar instructionTable;\nvar exec;\nvar execGlyph;\nvar execComponent;\n\n/*\n* Creates a hinting object.\n*\n* There ought to be exactly one\n* for each truetype font that is used for hinting.\n*/\nfunction Hinting(font) {\n // the font this hinting object is for\n this.font = font;\n\n this.getCommands = function (hPoints) {\n return glyf.getPath(hPoints).commands;\n };\n\n // cached states\n this._fpgmState =\n this._prepState =\n undefined;\n\n // errorState\n // 0 ... all okay\n // 1 ... had an error in a glyf,\n // continue working but stop spamming\n // the console\n // 2 ... error at prep, stop hinting at this ppem\n // 3 ... error at fpeg, stop hinting for this font at all\n this._errorState = 0;\n}\n\n/*\n* Not rounding.\n*/\nfunction roundOff(v) {\n return v;\n}\n\n/*\n* Rounding to grid.\n*/\nfunction roundToGrid(v) {\n //Rounding in TT is supposed to \"symmetrical around zero\"\n return Math.sign(v) * Math.round(Math.abs(v));\n}\n\n/*\n* Rounding to double grid.\n*/\nfunction roundToDoubleGrid(v) {\n return Math.sign(v) * Math.round(Math.abs(v * 2)) / 2;\n}\n\n/*\n* Rounding to half grid.\n*/\nfunction roundToHalfGrid(v) {\n return Math.sign(v) * (Math.round(Math.abs(v) + 0.5) - 0.5);\n}\n\n/*\n* Rounding to up to grid.\n*/\nfunction roundUpToGrid(v) {\n return Math.sign(v) * Math.ceil(Math.abs(v));\n}\n\n/*\n* Rounding to down to grid.\n*/\nfunction roundDownToGrid(v) {\n return Math.sign(v) * Math.floor(Math.abs(v));\n}\n\n/*\n* Super rounding.\n*/\nvar roundSuper = function (v) {\n var period = this.srPeriod;\n var phase = this.srPhase;\n var threshold = this.srThreshold;\n var sign = 1;\n\n if (v < 0) {\n v = -v;\n sign = -1;\n }\n\n v += threshold - phase;\n\n v = Math.trunc(v / period) * period;\n\n v += phase;\n\n // according to http://xgridfit.sourceforge.net/round.html\n if (v < 0) { return phase * sign; }\n\n return v * sign;\n};\n\n/*\n* Unit vector of x-axis.\n*/\nvar xUnitVector = {\n x: 1,\n\n y: 0,\n\n axis: 'x',\n\n // Gets the projected distance between two points.\n // o1/o2 ... if true, respective original position is used.\n distance: function (p1, p2, o1, o2) {\n return (o1 ? p1.xo : p1.x) - (o2 ? p2.xo : p2.x);\n },\n\n // Moves point p so the moved position has the same relative\n // position to the moved positions of rp1 and rp2 than the\n // original positions had.\n //\n // See APPENDIX on INTERPOLATE at the bottom of this file.\n interpolate: function (p, rp1, rp2, pv) {\n var do1;\n var do2;\n var doa1;\n var doa2;\n var dm1;\n var dm2;\n var dt;\n\n if (!pv || pv === this) {\n do1 = p.xo - rp1.xo;\n do2 = p.xo - rp2.xo;\n dm1 = rp1.x - rp1.xo;\n dm2 = rp2.x - rp2.xo;\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n p.x = p.xo + (dm1 + dm2) / 2;\n return;\n }\n\n p.x = p.xo + (dm1 * doa2 + dm2 * doa1) / dt;\n return;\n }\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n xUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n xUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n },\n\n // Slope of line normal to this\n normalSlope: Number.NEGATIVE_INFINITY,\n\n // Sets the point 'p' relative to point 'rp'\n // by the distance 'd'.\n //\n // See APPENDIX on SETRELATIVE at the bottom of this file.\n //\n // p ... point to set\n // rp ... reference point\n // d ... distance on projection vector\n // pv ... projection vector (undefined = this)\n // org ... if true, uses the original position of rp as reference.\n setRelative: function (p, rp, d, pv, org) {\n if (!pv || pv === this) {\n p.x = (org ? rp.xo : rp.x) + d;\n return;\n }\n\n var rpx = org ? rp.xo : rp.x;\n var rpy = org ? rp.yo : rp.y;\n var rpdx = rpx + d * pv.x;\n var rpdy = rpy + d * pv.y;\n\n p.x = rpdx + (p.y - rpdy) / pv.normalSlope;\n },\n\n // Slope of vector line.\n slope: 0,\n\n // Touches the point p.\n touch: function (p) {\n p.xTouched = true;\n },\n\n // Tests if a point p is touched.\n touched: function (p) {\n return p.xTouched;\n },\n\n // Untouches the point p.\n untouch: function (p) {\n p.xTouched = false;\n }\n};\n\n/*\n* Unit vector of y-axis.\n*/\nvar yUnitVector = {\n x: 0,\n\n y: 1,\n\n axis: 'y',\n\n // Gets the projected distance between two points.\n // o1/o2 ... if true, respective original position is used.\n distance: function (p1, p2, o1, o2) {\n return (o1 ? p1.yo : p1.y) - (o2 ? p2.yo : p2.y);\n },\n\n // Moves point p so the moved position has the same relative\n // position to the moved positions of rp1 and rp2 than the\n // original positions had.\n //\n // See APPENDIX on INTERPOLATE at the bottom of this file.\n interpolate: function (p, rp1, rp2, pv) {\n var do1;\n var do2;\n var doa1;\n var doa2;\n var dm1;\n var dm2;\n var dt;\n\n if (!pv || pv === this) {\n do1 = p.yo - rp1.yo;\n do2 = p.yo - rp2.yo;\n dm1 = rp1.y - rp1.yo;\n dm2 = rp2.y - rp2.yo;\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n p.y = p.yo + (dm1 + dm2) / 2;\n return;\n }\n\n p.y = p.yo + (dm1 * doa2 + dm2 * doa1) / dt;\n return;\n }\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n yUnitVector.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n yUnitVector.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n },\n\n // Slope of line normal to this.\n normalSlope: 0,\n\n // Sets the point 'p' relative to point 'rp'\n // by the distance 'd'\n //\n // See APPENDIX on SETRELATIVE at the bottom of this file.\n //\n // p ... point to set\n // rp ... reference point\n // d ... distance on projection vector\n // pv ... projection vector (undefined = this)\n // org ... if true, uses the original position of rp as reference.\n setRelative: function (p, rp, d, pv, org) {\n if (!pv || pv === this) {\n p.y = (org ? rp.yo : rp.y) + d;\n return;\n }\n\n var rpx = org ? rp.xo : rp.x;\n var rpy = org ? rp.yo : rp.y;\n var rpdx = rpx + d * pv.x;\n var rpdy = rpy + d * pv.y;\n\n p.y = rpdy + pv.normalSlope * (p.x - rpdx);\n },\n\n // Slope of vector line.\n slope: Number.POSITIVE_INFINITY,\n\n // Touches the point p.\n touch: function (p) {\n p.yTouched = true;\n },\n\n // Tests if a point p is touched.\n touched: function (p) {\n return p.yTouched;\n },\n\n // Untouches the point p.\n untouch: function (p) {\n p.yTouched = false;\n }\n};\n\nObject.freeze(xUnitVector);\nObject.freeze(yUnitVector);\n\n/*\n* Creates a unit vector that is not x- or y-axis.\n*/\nfunction UnitVector(x, y) {\n this.x = x;\n this.y = y;\n this.axis = undefined;\n this.slope = y / x;\n this.normalSlope = -x / y;\n Object.freeze(this);\n}\n\n/*\n* Gets the projected distance between two points.\n* o1/o2 ... if true, respective original position is used.\n*/\nUnitVector.prototype.distance = function(p1, p2, o1, o2) {\n return (\n this.x * xUnitVector.distance(p1, p2, o1, o2) +\n this.y * yUnitVector.distance(p1, p2, o1, o2)\n );\n};\n\n/*\n* Moves point p so the moved position has the same relative\n* position to the moved positions of rp1 and rp2 than the\n* original positions had.\n*\n* See APPENDIX on INTERPOLATE at the bottom of this file.\n*/\nUnitVector.prototype.interpolate = function(p, rp1, rp2, pv) {\n var dm1;\n var dm2;\n var do1;\n var do2;\n var doa1;\n var doa2;\n var dt;\n\n do1 = pv.distance(p, rp1, true, true);\n do2 = pv.distance(p, rp2, true, true);\n dm1 = pv.distance(rp1, rp1, false, true);\n dm2 = pv.distance(rp2, rp2, false, true);\n doa1 = Math.abs(do1);\n doa2 = Math.abs(do2);\n dt = doa1 + doa2;\n\n if (dt === 0) {\n this.setRelative(p, p, (dm1 + dm2) / 2, pv, true);\n return;\n }\n\n this.setRelative(p, p, (dm1 * doa2 + dm2 * doa1) / dt, pv, true);\n};\n\n/*\n* Sets the point 'p' relative to point 'rp'\n* by the distance 'd'\n*\n* See APPENDIX on SETRELATIVE at the bottom of this file.\n*\n* p ... point to set\n* rp ... reference point\n* d ... distance on projection vector\n* pv ... projection vector (undefined = this)\n* org ... if true, uses the original position of rp as reference.\n*/\nUnitVector.prototype.setRelative = function(p, rp, d, pv, org) {\n pv = pv || this;\n\n var rpx = org ? rp.xo : rp.x;\n var rpy = org ? rp.yo : rp.y;\n var rpdx = rpx + d * pv.x;\n var rpdy = rpy + d * pv.y;\n\n var pvns = pv.normalSlope;\n var fvs = this.slope;\n\n var px = p.x;\n var py = p.y;\n\n p.x = (fvs * px - pvns * rpdx + rpdy - py) / (fvs - pvns);\n p.y = fvs * (p.x - px) + py;\n};\n\n/*\n* Touches the point p.\n*/\nUnitVector.prototype.touch = function(p) {\n p.xTouched = true;\n p.yTouched = true;\n};\n\n/*\n* Returns a unit vector with x/y coordinates.\n*/\nfunction getUnitVector(x, y) {\n var d = Math.sqrt(x * x + y * y);\n\n x /= d;\n y /= d;\n\n if (x === 1 && y === 0) { return xUnitVector; }\n else if (x === 0 && y === 1) { return yUnitVector; }\n else { return new UnitVector(x, y); }\n}\n\n/*\n* Creates a point in the hinting engine.\n*/\nfunction HPoint(\n x,\n y,\n lastPointOfContour,\n onCurve\n) {\n this.x = this.xo = Math.round(x * 64) / 64; // hinted x value and original x-value\n this.y = this.yo = Math.round(y * 64) / 64; // hinted y value and original y-value\n\n this.lastPointOfContour = lastPointOfContour;\n this.onCurve = onCurve;\n this.prevPointOnContour = undefined;\n this.nextPointOnContour = undefined;\n this.xTouched = false;\n this.yTouched = false;\n\n Object.preventExtensions(this);\n}\n\n/*\n* Returns the next touched point on the contour.\n*\n* v ... unit vector to test touch axis.\n*/\nHPoint.prototype.nextTouched = function(v) {\n var p = this.nextPointOnContour;\n\n while (!v.touched(p) && p !== this) { p = p.nextPointOnContour; }\n\n return p;\n};\n\n/*\n* Returns the previous touched point on the contour\n*\n* v ... unit vector to test touch axis.\n*/\nHPoint.prototype.prevTouched = function(v) {\n var p = this.prevPointOnContour;\n\n while (!v.touched(p) && p !== this) { p = p.prevPointOnContour; }\n\n return p;\n};\n\n/*\n* The zero point.\n*/\nvar HPZero = Object.freeze(new HPoint(0, 0));\n\n/*\n* The default state of the interpreter.\n*\n* Note: Freezing the defaultState and then deriving from it\n* makes the V8 Javascript engine going awkward,\n* so this is avoided, albeit the defaultState shouldn't\n* ever change.\n*/\nvar defaultState = {\n cvCutIn: 17 / 16, // control value cut in\n deltaBase: 9,\n deltaShift: 0.125,\n loop: 1, // loops some instructions\n minDis: 1, // minimum distance\n autoFlip: true\n};\n\n/*\n* The current state of the interpreter.\n*\n* env ... 'fpgm' or 'prep' or 'glyf'\n* prog ... the program\n*/\nfunction State(env, prog) {\n this.env = env;\n this.stack = [];\n this.prog = prog;\n\n switch (env) {\n case 'glyf' :\n this.zp0 = this.zp1 = this.zp2 = 1;\n this.rp0 = this.rp1 = this.rp2 = 0;\n /* fall through */\n case 'prep' :\n this.fv = this.pv = this.dpv = xUnitVector;\n this.round = roundToGrid;\n }\n}\n\n/*\n* Executes a glyph program.\n*\n* This does the hinting for each glyph.\n*\n* Returns an array of moved points.\n*\n* glyph: the glyph to hint\n* ppem: the size the glyph is rendered for\n*/\nHinting.prototype.exec = function(glyph, ppem) {\n if (typeof ppem !== 'number') {\n throw new Error('Point size is not a number!');\n }\n\n // Received a fatal error, don't do any hinting anymore.\n if (this._errorState > 2) { return; }\n\n var font = this.font;\n var prepState = this._prepState;\n\n if (!prepState || prepState.ppem !== ppem) {\n var fpgmState = this._fpgmState;\n\n if (!fpgmState) {\n // Executes the fpgm state.\n // This is used by fonts to define functions.\n State.prototype = defaultState;\n\n fpgmState =\n this._fpgmState =\n new State('fpgm', font.tables.fpgm);\n\n fpgmState.funcs = [ ];\n fpgmState.font = font;\n\n if (exports.DEBUG) {\n console.log('---EXEC FPGM---');\n fpgmState.step = -1;\n }\n\n try {\n exec(fpgmState);\n } catch (e) {\n console.log('Hinting error in FPGM:' + e);\n this._errorState = 3;\n return;\n }\n }\n\n // Executes the prep program for this ppem setting.\n // This is used by fonts to set cvt values\n // depending on to be rendered font size.\n\n State.prototype = fpgmState;\n prepState =\n this._prepState =\n new State('prep', font.tables.prep);\n\n prepState.ppem = ppem;\n\n // Creates a copy of the cvt table\n // and scales it to the current ppem setting.\n var oCvt = font.tables.cvt;\n if (oCvt) {\n var cvt = prepState.cvt = new Array(oCvt.length);\n var scale = ppem / font.unitsPerEm;\n for (var c = 0; c < oCvt.length; c++) {\n cvt[c] = oCvt[c] * scale;\n }\n } else {\n prepState.cvt = [];\n }\n\n if (exports.DEBUG) {\n console.log('---EXEC PREP---');\n prepState.step = -1;\n }\n\n try {\n exec(prepState);\n } catch (e) {\n if (this._errorState < 2) {\n console.log('Hinting error in PREP:' + e);\n }\n this._errorState = 2;\n }\n }\n\n if (this._errorState > 1) { return; }\n\n try {\n return execGlyph(glyph, prepState);\n } catch (e) {\n if (this._errorState < 1) {\n console.log('Hinting error:' + e);\n console.log('Note: further hinting errors are silenced');\n }\n this._errorState = 1;\n return undefined;\n }\n};\n\n/*\n* Executes the hinting program for a glyph.\n*/\nexecGlyph = function(glyph, prepState) {\n // original point positions\n var xScale = prepState.ppem / prepState.font.unitsPerEm;\n var yScale = xScale;\n var components = glyph.components;\n var contours;\n var gZone;\n var state;\n\n State.prototype = prepState;\n if (!components) {\n state = new State('glyf', glyph.instructions);\n if (exports.DEBUG) {\n console.log('---EXEC GLYPH---');\n state.step = -1;\n }\n execComponent(glyph, state, xScale, yScale);\n gZone = state.gZone;\n } else {\n var font = prepState.font;\n gZone = [];\n contours = [];\n for (var i = 0; i < components.length; i++) {\n var c = components[i];\n var cg = font.glyphs.get(c.glyphIndex);\n\n state = new State('glyf', cg.instructions);\n\n if (exports.DEBUG) {\n console.log('---EXEC COMP ' + i + '---');\n state.step = -1;\n }\n\n execComponent(cg, state, xScale, yScale);\n // appends the computed points to the result array\n // post processes the component points\n var dx = Math.round(c.dx * xScale);\n var dy = Math.round(c.dy * yScale);\n var gz = state.gZone;\n var cc = state.contours;\n for (var pi = 0; pi < gz.length; pi++) {\n var p = gz[pi];\n p.xTouched = p.yTouched = false;\n p.xo = p.x = p.x + dx;\n p.yo = p.y = p.y + dy;\n }\n\n var gLen = gZone.length;\n gZone.push.apply(gZone, gz);\n for (var j = 0; j < cc.length; j++) {\n contours.push(cc[j] + gLen);\n }\n }\n\n if (glyph.instructions && !state.inhibitGridFit) {\n // the composite has instructions on its own\n state = new State('glyf', glyph.instructions);\n\n state.gZone = state.z0 = state.z1 = state.z2 = gZone;\n\n state.contours = contours;\n\n // note: HPZero cannot be used here, since\n // the point might be modified\n gZone.push(\n new HPoint(0, 0),\n new HPoint(Math.round(glyph.advanceWidth * xScale), 0)\n );\n\n if (exports.DEBUG) {\n console.log('---EXEC COMPOSITE---');\n state.step = -1;\n }\n\n exec(state);\n\n gZone.length -= 2;\n }\n }\n\n return gZone;\n};\n\n/*\n* Executes the hinting program for a component of a multi-component glyph\n* or of the glyph itself for a non-component glyph.\n*/\nexecComponent = function(glyph, state, xScale, yScale)\n{\n var points = glyph.points || [];\n var pLen = points.length;\n var gZone = state.gZone = state.z0 = state.z1 = state.z2 = [];\n var contours = state.contours = [];\n\n // Scales the original points and\n // makes copies for the hinted points.\n var cp; // current point\n for (var i = 0; i < pLen; i++) {\n cp = points[i];\n\n gZone[i] = new HPoint(\n cp.x * xScale,\n cp.y * yScale,\n cp.lastPointOfContour,\n cp.onCurve\n );\n }\n\n // Chain links the contours.\n var sp; // start point\n var np; // next point\n\n for (var i$1 = 0; i$1 < pLen; i$1++) {\n cp = gZone[i$1];\n\n if (!sp) {\n sp = cp;\n contours.push(i$1);\n }\n\n if (cp.lastPointOfContour) {\n cp.nextPointOnContour = sp;\n sp.prevPointOnContour = cp;\n sp = undefined;\n } else {\n np = gZone[i$1 + 1];\n cp.nextPointOnContour = np;\n np.prevPointOnContour = cp;\n }\n }\n\n if (state.inhibitGridFit) { return; }\n\n if (exports.DEBUG) {\n console.log('PROCESSING GLYPH', state.stack);\n for (var i$2 = 0; i$2 < pLen; i$2++) {\n console.log(i$2, gZone[i$2].x, gZone[i$2].y);\n }\n }\n\n gZone.push(\n new HPoint(0, 0),\n new HPoint(Math.round(glyph.advanceWidth * xScale), 0)\n );\n\n exec(state);\n\n // Removes the extra points.\n gZone.length -= 2;\n\n if (exports.DEBUG) {\n console.log('FINISHED GLYPH', state.stack);\n for (var i$3 = 0; i$3 < pLen; i$3++) {\n console.log(i$3, gZone[i$3].x, gZone[i$3].y);\n }\n }\n};\n\n/*\n* Executes the program loaded in state.\n*/\nexec = function(state) {\n var prog = state.prog;\n\n if (!prog) { return; }\n\n var pLen = prog.length;\n var ins;\n\n for (state.ip = 0; state.ip < pLen; state.ip++) {\n if (exports.DEBUG) { state.step++; }\n ins = instructionTable[prog[state.ip]];\n\n if (!ins) {\n throw new Error(\n 'unknown instruction: 0x' +\n Number(prog[state.ip]).toString(16)\n );\n }\n\n ins(state);\n\n // very extensive debugging for each step\n /*\n if (exports.DEBUG) {\n var da;\n if (state.gZone) {\n da = [];\n for (let i = 0; i < state.gZone.length; i++)\n {\n da.push(i + ' ' +\n state.gZone[i].x * 64 + ' ' +\n state.gZone[i].y * 64 + ' ' +\n (state.gZone[i].xTouched ? 'x' : '') +\n (state.gZone[i].yTouched ? 'y' : '')\n );\n }\n console.log('GZ', da);\n }\n\n if (state.tZone) {\n da = [];\n for (let i = 0; i < state.tZone.length; i++) {\n da.push(i + ' ' +\n state.tZone[i].x * 64 + ' ' +\n state.tZone[i].y * 64 + ' ' +\n (state.tZone[i].xTouched ? 'x' : '') +\n (state.tZone[i].yTouched ? 'y' : '')\n );\n }\n console.log('TZ', da);\n }\n\n if (state.stack.length > 10) {\n console.log(\n state.stack.length,\n '...', state.stack.slice(state.stack.length - 10)\n );\n } else {\n console.log(state.stack.length, state.stack);\n }\n }\n */\n }\n};\n\n/*\n* Initializes the twilight zone.\n*\n* This is only done if a SZPx instruction\n* refers to the twilight zone.\n*/\nfunction initTZone(state)\n{\n var tZone = state.tZone = new Array(state.gZone.length);\n\n // no idea if this is actually correct...\n for (var i = 0; i < tZone.length; i++)\n {\n tZone[i] = new HPoint(0, 0);\n }\n}\n\n/*\n* Skips the instruction pointer ahead over an IF/ELSE block.\n* handleElse .. if true breaks on matching ELSE\n*/\nfunction skip(state, handleElse)\n{\n var prog = state.prog;\n var ip = state.ip;\n var nesting = 1;\n var ins;\n\n do {\n ins = prog[++ip];\n if (ins === 0x58) // IF\n { nesting++; }\n else if (ins === 0x59) // EIF\n { nesting--; }\n else if (ins === 0x40) // NPUSHB\n { ip += prog[ip + 1] + 1; }\n else if (ins === 0x41) // NPUSHW\n { ip += 2 * prog[ip + 1] + 1; }\n else if (ins >= 0xB0 && ins <= 0xB7) // PUSHB\n { ip += ins - 0xB0 + 1; }\n else if (ins >= 0xB8 && ins <= 0xBF) // PUSHW\n { ip += (ins - 0xB8 + 1) * 2; }\n else if (handleElse && nesting === 1 && ins === 0x1B) // ELSE\n { break; }\n } while (nesting > 0);\n\n state.ip = ip;\n}\n\n/*----------------------------------------------------------*\n* And then a lot of instructions... *\n*----------------------------------------------------------*/\n\n// SVTCA[a] Set freedom and projection Vectors To Coordinate Axis\n// 0x00-0x01\nfunction SVTCA(v, state) {\n if (exports.DEBUG) { console.log(state.step, 'SVTCA[' + v.axis + ']'); }\n\n state.fv = state.pv = state.dpv = v;\n}\n\n// SPVTCA[a] Set Projection Vector to Coordinate Axis\n// 0x02-0x03\nfunction SPVTCA(v, state) {\n if (exports.DEBUG) { console.log(state.step, 'SPVTCA[' + v.axis + ']'); }\n\n state.pv = state.dpv = v;\n}\n\n// SFVTCA[a] Set Freedom Vector to Coordinate Axis\n// 0x04-0x05\nfunction SFVTCA(v, state) {\n if (exports.DEBUG) { console.log(state.step, 'SFVTCA[' + v.axis + ']'); }\n\n state.fv = v;\n}\n\n// SPVTL[a] Set Projection Vector To Line\n// 0x06-0x07\nfunction SPVTL(a, state) {\n var stack = state.stack;\n var p2i = stack.pop();\n var p1i = stack.pop();\n var p2 = state.z2[p2i];\n var p1 = state.z1[p1i];\n\n if (exports.DEBUG) { console.log('SPVTL[' + a + ']', p2i, p1i); }\n\n var dx;\n var dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.pv = state.dpv = getUnitVector(dx, dy);\n}\n\n// SFVTL[a] Set Freedom Vector To Line\n// 0x08-0x09\nfunction SFVTL(a, state) {\n var stack = state.stack;\n var p2i = stack.pop();\n var p1i = stack.pop();\n var p2 = state.z2[p2i];\n var p1 = state.z1[p1i];\n\n if (exports.DEBUG) { console.log('SFVTL[' + a + ']', p2i, p1i); }\n\n var dx;\n var dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.fv = getUnitVector(dx, dy);\n}\n\n// SPVFS[] Set Projection Vector From Stack\n// 0x0A\nfunction SPVFS(state) {\n var stack = state.stack;\n var y = stack.pop();\n var x = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SPVFS[]', y, x); }\n\n state.pv = state.dpv = getUnitVector(x, y);\n}\n\n// SFVFS[] Set Freedom Vector From Stack\n// 0x0B\nfunction SFVFS(state) {\n var stack = state.stack;\n var y = stack.pop();\n var x = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SPVFS[]', y, x); }\n\n state.fv = getUnitVector(x, y);\n}\n\n// GPV[] Get Projection Vector\n// 0x0C\nfunction GPV(state) {\n var stack = state.stack;\n var pv = state.pv;\n\n if (exports.DEBUG) { console.log(state.step, 'GPV[]'); }\n\n stack.push(pv.x * 0x4000);\n stack.push(pv.y * 0x4000);\n}\n\n// GFV[] Get Freedom Vector\n// 0x0C\nfunction GFV(state) {\n var stack = state.stack;\n var fv = state.fv;\n\n if (exports.DEBUG) { console.log(state.step, 'GFV[]'); }\n\n stack.push(fv.x * 0x4000);\n stack.push(fv.y * 0x4000);\n}\n\n// SFVTPV[] Set Freedom Vector To Projection Vector\n// 0x0E\nfunction SFVTPV(state) {\n state.fv = state.pv;\n\n if (exports.DEBUG) { console.log(state.step, 'SFVTPV[]'); }\n}\n\n// ISECT[] moves point p to the InterSECTion of two lines\n// 0x0F\nfunction ISECT(state)\n{\n var stack = state.stack;\n var pa0i = stack.pop();\n var pa1i = stack.pop();\n var pb0i = stack.pop();\n var pb1i = stack.pop();\n var pi = stack.pop();\n var z0 = state.z0;\n var z1 = state.z1;\n var pa0 = z0[pa0i];\n var pa1 = z0[pa1i];\n var pb0 = z1[pb0i];\n var pb1 = z1[pb1i];\n var p = state.z2[pi];\n\n if (exports.DEBUG) { console.log('ISECT[], ', pa0i, pa1i, pb0i, pb1i, pi); }\n\n // math from\n // en.wikipedia.org/wiki/Line%E2%80%93line_intersection#Given_two_points_on_each_line\n\n var x1 = pa0.x;\n var y1 = pa0.y;\n var x2 = pa1.x;\n var y2 = pa1.y;\n var x3 = pb0.x;\n var y3 = pb0.y;\n var x4 = pb1.x;\n var y4 = pb1.y;\n\n var div = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n var f1 = x1 * y2 - y1 * x2;\n var f2 = x3 * y4 - y3 * x4;\n\n p.x = (f1 * (x3 - x4) - f2 * (x1 - x2)) / div;\n p.y = (f1 * (y3 - y4) - f2 * (y1 - y2)) / div;\n}\n\n// SRP0[] Set Reference Point 0\n// 0x10\nfunction SRP0(state) {\n state.rp0 = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SRP0[]', state.rp0); }\n}\n\n// SRP1[] Set Reference Point 1\n// 0x11\nfunction SRP1(state) {\n state.rp1 = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SRP1[]', state.rp1); }\n}\n\n// SRP1[] Set Reference Point 2\n// 0x12\nfunction SRP2(state) {\n state.rp2 = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SRP2[]', state.rp2); }\n}\n\n// SZP0[] Set Zone Pointer 0\n// 0x13\nfunction SZP0(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SZP0[]', n); }\n\n state.zp0 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) { initTZone(state); }\n state.z0 = state.tZone;\n break;\n case 1 :\n state.z0 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZP1[] Set Zone Pointer 1\n// 0x14\nfunction SZP1(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SZP1[]', n); }\n\n state.zp1 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) { initTZone(state); }\n state.z1 = state.tZone;\n break;\n case 1 :\n state.z1 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZP2[] Set Zone Pointer 2\n// 0x15\nfunction SZP2(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SZP2[]', n); }\n\n state.zp2 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) { initTZone(state); }\n state.z2 = state.tZone;\n break;\n case 1 :\n state.z2 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SZPS[] Set Zone PointerS\n// 0x16\nfunction SZPS(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SZPS[]', n); }\n\n state.zp0 = state.zp1 = state.zp2 = n;\n\n switch (n) {\n case 0:\n if (!state.tZone) { initTZone(state); }\n state.z0 = state.z1 = state.z2 = state.tZone;\n break;\n case 1 :\n state.z0 = state.z1 = state.z2 = state.gZone;\n break;\n default :\n throw new Error('Invalid zone pointer');\n }\n}\n\n// SLOOP[] Set LOOP variable\n// 0x17\nfunction SLOOP(state) {\n state.loop = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SLOOP[]', state.loop); }\n}\n\n// RTG[] Round To Grid\n// 0x18\nfunction RTG(state) {\n if (exports.DEBUG) { console.log(state.step, 'RTG[]'); }\n\n state.round = roundToGrid;\n}\n\n// RTHG[] Round To Half Grid\n// 0x19\nfunction RTHG(state) {\n if (exports.DEBUG) { console.log(state.step, 'RTHG[]'); }\n\n state.round = roundToHalfGrid;\n}\n\n// SMD[] Set Minimum Distance\n// 0x1A\nfunction SMD(state) {\n var d = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SMD[]', d); }\n\n state.minDis = d / 0x40;\n}\n\n// ELSE[] ELSE clause\n// 0x1B\nfunction ELSE(state) {\n // This instruction has been reached by executing a then branch\n // so it just skips ahead until matching EIF.\n //\n // In case the IF was negative the IF[] instruction already\n // skipped forward over the ELSE[]\n\n if (exports.DEBUG) { console.log(state.step, 'ELSE[]'); }\n\n skip(state, false);\n}\n\n// JMPR[] JuMP Relative\n// 0x1C\nfunction JMPR(state) {\n var o = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'JMPR[]', o); }\n\n // A jump by 1 would do nothing.\n state.ip += o - 1;\n}\n\n// SCVTCI[] Set Control Value Table Cut-In\n// 0x1D\nfunction SCVTCI(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SCVTCI[]', n); }\n\n state.cvCutIn = n / 0x40;\n}\n\n// DUP[] DUPlicate top stack element\n// 0x20\nfunction DUP(state) {\n var stack = state.stack;\n\n if (exports.DEBUG) { console.log(state.step, 'DUP[]'); }\n\n stack.push(stack[stack.length - 1]);\n}\n\n// POP[] POP top stack element\n// 0x21\nfunction POP(state) {\n if (exports.DEBUG) { console.log(state.step, 'POP[]'); }\n\n state.stack.pop();\n}\n\n// CLEAR[] CLEAR the stack\n// 0x22\nfunction CLEAR(state) {\n if (exports.DEBUG) { console.log(state.step, 'CLEAR[]'); }\n\n state.stack.length = 0;\n}\n\n// SWAP[] SWAP the top two elements on the stack\n// 0x23\nfunction SWAP(state) {\n var stack = state.stack;\n\n var a = stack.pop();\n var b = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SWAP[]'); }\n\n stack.push(a);\n stack.push(b);\n}\n\n// DEPTH[] DEPTH of the stack\n// 0x24\nfunction DEPTH(state) {\n var stack = state.stack;\n\n if (exports.DEBUG) { console.log(state.step, 'DEPTH[]'); }\n\n stack.push(stack.length);\n}\n\n// LOOPCALL[] LOOPCALL function\n// 0x2A\nfunction LOOPCALL(state) {\n var stack = state.stack;\n var fn = stack.pop();\n var c = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'LOOPCALL[]', fn, c); }\n\n // saves callers program\n var cip = state.ip;\n var cprog = state.prog;\n\n state.prog = state.funcs[fn];\n\n // executes the function\n for (var i = 0; i < c; i++) {\n exec(state);\n\n if (exports.DEBUG) { console.log(\n ++state.step,\n i + 1 < c ? 'next loopcall' : 'done loopcall',\n i\n ); }\n }\n\n // restores the callers program\n state.ip = cip;\n state.prog = cprog;\n}\n\n// CALL[] CALL function\n// 0x2B\nfunction CALL(state) {\n var fn = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'CALL[]', fn); }\n\n // saves callers program\n var cip = state.ip;\n var cprog = state.prog;\n\n state.prog = state.funcs[fn];\n\n // executes the function\n exec(state);\n\n // restores the callers program\n state.ip = cip;\n state.prog = cprog;\n\n if (exports.DEBUG) { console.log(++state.step, 'returning from', fn); }\n}\n\n// CINDEX[] Copy the INDEXed element to the top of the stack\n// 0x25\nfunction CINDEX(state) {\n var stack = state.stack;\n var k = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'CINDEX[]', k); }\n\n // In case of k == 1, it copies the last element after popping\n // thus stack.length - k.\n stack.push(stack[stack.length - k]);\n}\n\n// MINDEX[] Move the INDEXed element to the top of the stack\n// 0x26\nfunction MINDEX(state) {\n var stack = state.stack;\n var k = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'MINDEX[]', k); }\n\n stack.push(stack.splice(stack.length - k, 1)[0]);\n}\n\n// FDEF[] Function DEFinition\n// 0x2C\nfunction FDEF(state) {\n if (state.env !== 'fpgm') { throw new Error('FDEF not allowed here'); }\n var stack = state.stack;\n var prog = state.prog;\n var ip = state.ip;\n\n var fn = stack.pop();\n var ipBegin = ip;\n\n if (exports.DEBUG) { console.log(state.step, 'FDEF[]', fn); }\n\n while (prog[++ip] !== 0x2D){ }\n\n state.ip = ip;\n state.funcs[fn] = prog.slice(ipBegin + 1, ip);\n}\n\n// MDAP[a] Move Direct Absolute Point\n// 0x2E-0x2F\nfunction MDAP(round, state) {\n var pi = state.stack.pop();\n var p = state.z0[pi];\n var fv = state.fv;\n var pv = state.pv;\n\n if (exports.DEBUG) { console.log(state.step, 'MDAP[' + round + ']', pi); }\n\n var d = pv.distance(p, HPZero);\n\n if (round) { d = state.round(d); }\n\n fv.setRelative(p, HPZero, d, pv);\n fv.touch(p);\n\n state.rp0 = state.rp1 = pi;\n}\n\n// IUP[a] Interpolate Untouched Points through the outline\n// 0x30\nfunction IUP(v, state) {\n var z2 = state.z2;\n var pLen = z2.length - 2;\n var cp;\n var pp;\n var np;\n\n if (exports.DEBUG) { console.log(state.step, 'IUP[' + v.axis + ']'); }\n\n for (var i = 0; i < pLen; i++) {\n cp = z2[i]; // current point\n\n // if this point has been touched go on\n if (v.touched(cp)) { continue; }\n\n pp = cp.prevTouched(v);\n\n // no point on the contour has been touched?\n if (pp === cp) { continue; }\n\n np = cp.nextTouched(v);\n\n if (pp === np) {\n // only one point on the contour has been touched\n // so simply moves the point like that\n\n v.setRelative(cp, cp, v.distance(pp, pp, false, true), v, true);\n }\n\n v.interpolate(cp, pp, np, v);\n }\n}\n\n// SHP[] SHift Point using reference point\n// 0x32-0x33\nfunction SHP(a, state) {\n var stack = state.stack;\n var rpi = a ? state.rp1 : state.rp2;\n var rp = (a ? state.z0 : state.z1)[rpi];\n var fv = state.fv;\n var pv = state.pv;\n var loop = state.loop;\n var z2 = state.z2;\n\n while (loop--)\n {\n var pi = stack.pop();\n var p = z2[pi];\n\n var d = pv.distance(rp, rp, false, true);\n fv.setRelative(p, p, d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ?\n 'loop ' + (state.loop - loop) + ': ' :\n ''\n ) +\n 'SHP[' + (a ? 'rp1' : 'rp2') + ']', pi\n );\n }\n }\n\n state.loop = 1;\n}\n\n// SHC[] SHift Contour using reference point\n// 0x36-0x37\nfunction SHC(a, state) {\n var stack = state.stack;\n var rpi = a ? state.rp1 : state.rp2;\n var rp = (a ? state.z0 : state.z1)[rpi];\n var fv = state.fv;\n var pv = state.pv;\n var ci = stack.pop();\n var sp = state.z2[state.contours[ci]];\n var p = sp;\n\n if (exports.DEBUG) { console.log(state.step, 'SHC[' + a + ']', ci); }\n\n var d = pv.distance(rp, rp, false, true);\n\n do {\n if (p !== rp) { fv.setRelative(p, p, d, pv); }\n p = p.nextPointOnContour;\n } while (p !== sp);\n}\n\n// SHZ[] SHift Zone using reference point\n// 0x36-0x37\nfunction SHZ(a, state) {\n var stack = state.stack;\n var rpi = a ? state.rp1 : state.rp2;\n var rp = (a ? state.z0 : state.z1)[rpi];\n var fv = state.fv;\n var pv = state.pv;\n\n var e = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SHZ[' + a + ']', e); }\n\n var z;\n switch (e) {\n case 0 : z = state.tZone; break;\n case 1 : z = state.gZone; break;\n default : throw new Error('Invalid zone');\n }\n\n var p;\n var d = pv.distance(rp, rp, false, true);\n var pLen = z.length - 2;\n for (var i = 0; i < pLen; i++)\n {\n p = z[i];\n fv.setRelative(p, p, d, pv);\n //if (p !== rp) fv.setRelative(p, p, d, pv);\n }\n}\n\n// SHPIX[] SHift point by a PIXel amount\n// 0x38\nfunction SHPIX(state) {\n var stack = state.stack;\n var loop = state.loop;\n var fv = state.fv;\n var d = stack.pop() / 0x40;\n var z2 = state.z2;\n\n while (loop--) {\n var pi = stack.pop();\n var p = z2[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'SHPIX[]', pi, d\n );\n }\n\n fv.setRelative(p, p, d);\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// IP[] Interpolate Point\n// 0x39\nfunction IP(state) {\n var stack = state.stack;\n var rp1i = state.rp1;\n var rp2i = state.rp2;\n var loop = state.loop;\n var rp1 = state.z0[rp1i];\n var rp2 = state.z1[rp2i];\n var fv = state.fv;\n var pv = state.dpv;\n var z2 = state.z2;\n\n while (loop--) {\n var pi = stack.pop();\n var p = z2[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'IP[]', pi, rp1i, '<->', rp2i\n );\n }\n\n fv.interpolate(p, rp1, rp2, pv);\n\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// MSIRP[a] Move Stack Indirect Relative Point\n// 0x3A-0x3B\nfunction MSIRP(a, state) {\n var stack = state.stack;\n var d = stack.pop() / 64;\n var pi = stack.pop();\n var p = state.z1[pi];\n var rp0 = state.z0[state.rp0];\n var fv = state.fv;\n var pv = state.pv;\n\n fv.setRelative(p, rp0, d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) { console.log(state.step, 'MSIRP[' + a + ']', d, pi); }\n\n state.rp1 = state.rp0;\n state.rp2 = pi;\n if (a) { state.rp0 = pi; }\n}\n\n// ALIGNRP[] Align to reference point.\n// 0x3C\nfunction ALIGNRP(state) {\n var stack = state.stack;\n var rp0i = state.rp0;\n var rp0 = state.z0[rp0i];\n var loop = state.loop;\n var fv = state.fv;\n var pv = state.pv;\n var z1 = state.z1;\n\n while (loop--) {\n var pi = stack.pop();\n var p = z1[pi];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (state.loop > 1 ? 'loop ' + (state.loop - loop) + ': ' : '') +\n 'ALIGNRP[]', pi\n );\n }\n\n fv.setRelative(p, rp0, 0, pv);\n fv.touch(p);\n }\n\n state.loop = 1;\n}\n\n// RTG[] Round To Double Grid\n// 0x3D\nfunction RTDG(state) {\n if (exports.DEBUG) { console.log(state.step, 'RTDG[]'); }\n\n state.round = roundToDoubleGrid;\n}\n\n// MIAP[a] Move Indirect Absolute Point\n// 0x3E-0x3F\nfunction MIAP(round, state) {\n var stack = state.stack;\n var n = stack.pop();\n var pi = stack.pop();\n var p = state.z0[pi];\n var fv = state.fv;\n var pv = state.pv;\n var cv = state.cvt[n];\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n 'MIAP[' + round + ']',\n n, '(', cv, ')', pi\n );\n }\n\n var d = pv.distance(p, HPZero);\n\n if (round) {\n if (Math.abs(d - cv) < state.cvCutIn) { d = cv; }\n\n d = state.round(d);\n }\n\n fv.setRelative(p, HPZero, d, pv);\n\n if (state.zp0 === 0) {\n p.xo = p.x;\n p.yo = p.y;\n }\n\n fv.touch(p);\n\n state.rp0 = state.rp1 = pi;\n}\n\n// NPUSB[] PUSH N Bytes\n// 0x40\nfunction NPUSHB(state) {\n var prog = state.prog;\n var ip = state.ip;\n var stack = state.stack;\n\n var n = prog[++ip];\n\n if (exports.DEBUG) { console.log(state.step, 'NPUSHB[]', n); }\n\n for (var i = 0; i < n; i++) { stack.push(prog[++ip]); }\n\n state.ip = ip;\n}\n\n// NPUSHW[] PUSH N Words\n// 0x41\nfunction NPUSHW(state) {\n var ip = state.ip;\n var prog = state.prog;\n var stack = state.stack;\n var n = prog[++ip];\n\n if (exports.DEBUG) { console.log(state.step, 'NPUSHW[]', n); }\n\n for (var i = 0; i < n; i++) {\n var w = (prog[++ip] << 8) | prog[++ip];\n if (w & 0x8000) { w = -((w ^ 0xffff) + 1); }\n stack.push(w);\n }\n\n state.ip = ip;\n}\n\n// WS[] Write Store\n// 0x42\nfunction WS(state) {\n var stack = state.stack;\n var store = state.store;\n\n if (!store) { store = state.store = []; }\n\n var v = stack.pop();\n var l = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'WS', v, l); }\n\n store[l] = v;\n}\n\n// RS[] Read Store\n// 0x43\nfunction RS(state) {\n var stack = state.stack;\n var store = state.store;\n\n var l = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'RS', l); }\n\n var v = (store && store[l]) || 0;\n\n stack.push(v);\n}\n\n// WCVTP[] Write Control Value Table in Pixel units\n// 0x44\nfunction WCVTP(state) {\n var stack = state.stack;\n\n var v = stack.pop();\n var l = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'WCVTP', v, l); }\n\n state.cvt[l] = v / 0x40;\n}\n\n// RCVT[] Read Control Value Table entry\n// 0x45\nfunction RCVT(state) {\n var stack = state.stack;\n var cvte = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'RCVT', cvte); }\n\n stack.push(state.cvt[cvte] * 0x40);\n}\n\n// GC[] Get Coordinate projected onto the projection vector\n// 0x46-0x47\nfunction GC(a, state) {\n var stack = state.stack;\n var pi = stack.pop();\n var p = state.z2[pi];\n\n if (exports.DEBUG) { console.log(state.step, 'GC[' + a + ']', pi); }\n\n stack.push(state.dpv.distance(p, HPZero, a, false) * 0x40);\n}\n\n// MD[a] Measure Distance\n// 0x49-0x4A\nfunction MD(a, state) {\n var stack = state.stack;\n var pi2 = stack.pop();\n var pi1 = stack.pop();\n var p2 = state.z1[pi2];\n var p1 = state.z0[pi1];\n var d = state.dpv.distance(p1, p2, a, a);\n\n if (exports.DEBUG) { console.log(state.step, 'MD[' + a + ']', pi2, pi1, '->', d); }\n\n state.stack.push(Math.round(d * 64));\n}\n\n// MPPEM[] Measure Pixels Per EM\n// 0x4B\nfunction MPPEM(state) {\n if (exports.DEBUG) { console.log(state.step, 'MPPEM[]'); }\n state.stack.push(state.ppem);\n}\n\n// FLIPON[] set the auto FLIP Boolean to ON\n// 0x4D\nfunction FLIPON(state) {\n if (exports.DEBUG) { console.log(state.step, 'FLIPON[]'); }\n state.autoFlip = true;\n}\n\n// LT[] Less Than\n// 0x50\nfunction LT(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'LT[]', e2, e1); }\n\n stack.push(e1 < e2 ? 1 : 0);\n}\n\n// LTEQ[] Less Than or EQual\n// 0x53\nfunction LTEQ(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'LTEQ[]', e2, e1); }\n\n stack.push(e1 <= e2 ? 1 : 0);\n}\n\n// GTEQ[] Greater Than\n// 0x52\nfunction GT(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'GT[]', e2, e1); }\n\n stack.push(e1 > e2 ? 1 : 0);\n}\n\n// GTEQ[] Greater Than or EQual\n// 0x53\nfunction GTEQ(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'GTEQ[]', e2, e1); }\n\n stack.push(e1 >= e2 ? 1 : 0);\n}\n\n// EQ[] EQual\n// 0x54\nfunction EQ(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'EQ[]', e2, e1); }\n\n stack.push(e2 === e1 ? 1 : 0);\n}\n\n// NEQ[] Not EQual\n// 0x55\nfunction NEQ(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'NEQ[]', e2, e1); }\n\n stack.push(e2 !== e1 ? 1 : 0);\n}\n\n// ODD[] ODD\n// 0x56\nfunction ODD(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'ODD[]', n); }\n\n stack.push(Math.trunc(n) % 2 ? 1 : 0);\n}\n\n// EVEN[] EVEN\n// 0x57\nfunction EVEN(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'EVEN[]', n); }\n\n stack.push(Math.trunc(n) % 2 ? 0 : 1);\n}\n\n// IF[] IF test\n// 0x58\nfunction IF(state) {\n var test = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'IF[]', test); }\n\n // if test is true it just continues\n // if not the ip is skipped until matching ELSE or EIF\n if (!test) {\n skip(state, true);\n\n if (exports.DEBUG) { console.log(state.step, 'EIF[]'); }\n }\n}\n\n// EIF[] End IF\n// 0x59\nfunction EIF(state) {\n // this can be reached normally when\n // executing an else branch.\n // -> just ignore it\n\n if (exports.DEBUG) { console.log(state.step, 'EIF[]'); }\n}\n\n// AND[] logical AND\n// 0x5A\nfunction AND(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'AND[]', e2, e1); }\n\n stack.push(e2 && e1 ? 1 : 0);\n}\n\n// OR[] logical OR\n// 0x5B\nfunction OR(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'OR[]', e2, e1); }\n\n stack.push(e2 || e1 ? 1 : 0);\n}\n\n// NOT[] logical NOT\n// 0x5C\nfunction NOT(state) {\n var stack = state.stack;\n var e = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'NOT[]', e); }\n\n stack.push(e ? 0 : 1);\n}\n\n// DELTAP1[] DELTA exception P1\n// DELTAP2[] DELTA exception P2\n// DELTAP3[] DELTA exception P3\n// 0x5D, 0x71, 0x72\nfunction DELTAP123(b, state) {\n var stack = state.stack;\n var n = stack.pop();\n var fv = state.fv;\n var pv = state.pv;\n var ppem = state.ppem;\n var base = state.deltaBase + (b - 1) * 16;\n var ds = state.deltaShift;\n var z0 = state.z0;\n\n if (exports.DEBUG) { console.log(state.step, 'DELTAP[' + b + ']', n, stack); }\n\n for (var i = 0; i < n; i++) {\n var pi = stack.pop();\n var arg = stack.pop();\n var appem = base + ((arg & 0xF0) >> 4);\n if (appem !== ppem) { continue; }\n\n var mag = (arg & 0x0F) - 8;\n if (mag >= 0) { mag++; }\n if (exports.DEBUG) { console.log(state.step, 'DELTAPFIX', pi, 'by', mag * ds); }\n\n var p = z0[pi];\n fv.setRelative(p, p, mag * ds, pv);\n }\n}\n\n// SDB[] Set Delta Base in the graphics state\n// 0x5E\nfunction SDB(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SDB[]', n); }\n\n state.deltaBase = n;\n}\n\n// SDS[] Set Delta Shift in the graphics state\n// 0x5F\nfunction SDS(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SDS[]', n); }\n\n state.deltaShift = Math.pow(0.5, n);\n}\n\n// ADD[] ADD\n// 0x60\nfunction ADD(state) {\n var stack = state.stack;\n var n2 = stack.pop();\n var n1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'ADD[]', n2, n1); }\n\n stack.push(n1 + n2);\n}\n\n// SUB[] SUB\n// 0x61\nfunction SUB(state) {\n var stack = state.stack;\n var n2 = stack.pop();\n var n1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SUB[]', n2, n1); }\n\n stack.push(n1 - n2);\n}\n\n// DIV[] DIV\n// 0x62\nfunction DIV(state) {\n var stack = state.stack;\n var n2 = stack.pop();\n var n1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'DIV[]', n2, n1); }\n\n stack.push(n1 * 64 / n2);\n}\n\n// MUL[] MUL\n// 0x63\nfunction MUL(state) {\n var stack = state.stack;\n var n2 = stack.pop();\n var n1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'MUL[]', n2, n1); }\n\n stack.push(n1 * n2 / 64);\n}\n\n// ABS[] ABSolute value\n// 0x64\nfunction ABS(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'ABS[]', n); }\n\n stack.push(Math.abs(n));\n}\n\n// NEG[] NEGate\n// 0x65\nfunction NEG(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'NEG[]', n); }\n\n stack.push(-n);\n}\n\n// FLOOR[] FLOOR\n// 0x66\nfunction FLOOR(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'FLOOR[]', n); }\n\n stack.push(Math.floor(n / 0x40) * 0x40);\n}\n\n// CEILING[] CEILING\n// 0x67\nfunction CEILING(state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'CEILING[]', n); }\n\n stack.push(Math.ceil(n / 0x40) * 0x40);\n}\n\n// ROUND[ab] ROUND value\n// 0x68-0x6B\nfunction ROUND(dt, state) {\n var stack = state.stack;\n var n = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'ROUND[]'); }\n\n stack.push(state.round(n / 0x40) * 0x40);\n}\n\n// WCVTF[] Write Control Value Table in Funits\n// 0x70\nfunction WCVTF(state) {\n var stack = state.stack;\n var v = stack.pop();\n var l = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'WCVTF[]', v, l); }\n\n state.cvt[l] = v * state.ppem / state.font.unitsPerEm;\n}\n\n// DELTAC1[] DELTA exception C1\n// DELTAC2[] DELTA exception C2\n// DELTAC3[] DELTA exception C3\n// 0x73, 0x74, 0x75\nfunction DELTAC123(b, state) {\n var stack = state.stack;\n var n = stack.pop();\n var ppem = state.ppem;\n var base = state.deltaBase + (b - 1) * 16;\n var ds = state.deltaShift;\n\n if (exports.DEBUG) { console.log(state.step, 'DELTAC[' + b + ']', n, stack); }\n\n for (var i = 0; i < n; i++) {\n var c = stack.pop();\n var arg = stack.pop();\n var appem = base + ((arg & 0xF0) >> 4);\n if (appem !== ppem) { continue; }\n\n var mag = (arg & 0x0F) - 8;\n if (mag >= 0) { mag++; }\n\n var delta = mag * ds;\n\n if (exports.DEBUG) { console.log(state.step, 'DELTACFIX', c, 'by', delta); }\n\n state.cvt[c] += delta;\n }\n}\n\n// SROUND[] Super ROUND\n// 0x76\nfunction SROUND(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'SROUND[]', n); }\n\n state.round = roundSuper;\n\n var period;\n\n switch (n & 0xC0) {\n case 0x00:\n period = 0.5;\n break;\n case 0x40:\n period = 1;\n break;\n case 0x80:\n period = 2;\n break;\n default:\n throw new Error('invalid SROUND value');\n }\n\n state.srPeriod = period;\n\n switch (n & 0x30) {\n case 0x00:\n state.srPhase = 0;\n break;\n case 0x10:\n state.srPhase = 0.25 * period;\n break;\n case 0x20:\n state.srPhase = 0.5 * period;\n break;\n case 0x30:\n state.srPhase = 0.75 * period;\n break;\n default: throw new Error('invalid SROUND value');\n }\n\n n &= 0x0F;\n\n if (n === 0) { state.srThreshold = 0; }\n else { state.srThreshold = (n / 8 - 0.5) * period; }\n}\n\n// S45ROUND[] Super ROUND 45 degrees\n// 0x77\nfunction S45ROUND(state) {\n var n = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'S45ROUND[]', n); }\n\n state.round = roundSuper;\n\n var period;\n\n switch (n & 0xC0) {\n case 0x00:\n period = Math.sqrt(2) / 2;\n break;\n case 0x40:\n period = Math.sqrt(2);\n break;\n case 0x80:\n period = 2 * Math.sqrt(2);\n break;\n default:\n throw new Error('invalid S45ROUND value');\n }\n\n state.srPeriod = period;\n\n switch (n & 0x30) {\n case 0x00:\n state.srPhase = 0;\n break;\n case 0x10:\n state.srPhase = 0.25 * period;\n break;\n case 0x20:\n state.srPhase = 0.5 * period;\n break;\n case 0x30:\n state.srPhase = 0.75 * period;\n break;\n default:\n throw new Error('invalid S45ROUND value');\n }\n\n n &= 0x0F;\n\n if (n === 0) { state.srThreshold = 0; }\n else { state.srThreshold = (n / 8 - 0.5) * period; }\n}\n\n// ROFF[] Round Off\n// 0x7A\nfunction ROFF(state) {\n if (exports.DEBUG) { console.log(state.step, 'ROFF[]'); }\n\n state.round = roundOff;\n}\n\n// RUTG[] Round Up To Grid\n// 0x7C\nfunction RUTG(state) {\n if (exports.DEBUG) { console.log(state.step, 'RUTG[]'); }\n\n state.round = roundUpToGrid;\n}\n\n// RDTG[] Round Down To Grid\n// 0x7D\nfunction RDTG(state) {\n if (exports.DEBUG) { console.log(state.step, 'RDTG[]'); }\n\n state.round = roundDownToGrid;\n}\n\n// SCANCTRL[] SCAN conversion ConTRoL\n// 0x85\nfunction SCANCTRL(state) {\n var n = state.stack.pop();\n\n // ignored by opentype.js\n\n if (exports.DEBUG) { console.log(state.step, 'SCANCTRL[]', n); }\n}\n\n// SDPVTL[a] Set Dual Projection Vector To Line\n// 0x86-0x87\nfunction SDPVTL(a, state) {\n var stack = state.stack;\n var p2i = stack.pop();\n var p1i = stack.pop();\n var p2 = state.z2[p2i];\n var p1 = state.z1[p1i];\n\n if (exports.DEBUG) { console.log(state.step, 'SDPVTL[' + a + ']', p2i, p1i); }\n\n var dx;\n var dy;\n\n if (!a) {\n dx = p1.x - p2.x;\n dy = p1.y - p2.y;\n } else {\n dx = p2.y - p1.y;\n dy = p1.x - p2.x;\n }\n\n state.dpv = getUnitVector(dx, dy);\n}\n\n// GETINFO[] GET INFOrmation\n// 0x88\nfunction GETINFO(state) {\n var stack = state.stack;\n var sel = stack.pop();\n var r = 0;\n\n if (exports.DEBUG) { console.log(state.step, 'GETINFO[]', sel); }\n\n // v35 as in no subpixel hinting\n if (sel & 0x01) { r = 35; }\n\n // TODO rotation and stretch currently not supported\n // and thus those GETINFO are always 0.\n\n // opentype.js is always gray scaling\n if (sel & 0x20) { r |= 0x1000; }\n\n stack.push(r);\n}\n\n// ROLL[] ROLL the top three stack elements\n// 0x8A\nfunction ROLL(state) {\n var stack = state.stack;\n var a = stack.pop();\n var b = stack.pop();\n var c = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'ROLL[]'); }\n\n stack.push(b);\n stack.push(a);\n stack.push(c);\n}\n\n// MAX[] MAXimum of top two stack elements\n// 0x8B\nfunction MAX(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'MAX[]', e2, e1); }\n\n stack.push(Math.max(e1, e2));\n}\n\n// MIN[] MINimum of top two stack elements\n// 0x8C\nfunction MIN(state) {\n var stack = state.stack;\n var e2 = stack.pop();\n var e1 = stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'MIN[]', e2, e1); }\n\n stack.push(Math.min(e1, e2));\n}\n\n// SCANTYPE[] SCANTYPE\n// 0x8D\nfunction SCANTYPE(state) {\n var n = state.stack.pop();\n // ignored by opentype.js\n if (exports.DEBUG) { console.log(state.step, 'SCANTYPE[]', n); }\n}\n\n// INSTCTRL[] INSTCTRL\n// 0x8D\nfunction INSTCTRL(state) {\n var s = state.stack.pop();\n var v = state.stack.pop();\n\n if (exports.DEBUG) { console.log(state.step, 'INSTCTRL[]', s, v); }\n\n switch (s) {\n case 1 : state.inhibitGridFit = !!v; return;\n case 2 : state.ignoreCvt = !!v; return;\n default: throw new Error('invalid INSTCTRL[] selector');\n }\n}\n\n// PUSHB[abc] PUSH Bytes\n// 0xB0-0xB7\nfunction PUSHB(n, state) {\n var stack = state.stack;\n var prog = state.prog;\n var ip = state.ip;\n\n if (exports.DEBUG) { console.log(state.step, 'PUSHB[' + n + ']'); }\n\n for (var i = 0; i < n; i++) { stack.push(prog[++ip]); }\n\n state.ip = ip;\n}\n\n// PUSHW[abc] PUSH Words\n// 0xB8-0xBF\nfunction PUSHW(n, state) {\n var ip = state.ip;\n var prog = state.prog;\n var stack = state.stack;\n\n if (exports.DEBUG) { console.log(state.ip, 'PUSHW[' + n + ']'); }\n\n for (var i = 0; i < n; i++) {\n var w = (prog[++ip] << 8) | prog[++ip];\n if (w & 0x8000) { w = -((w ^ 0xffff) + 1); }\n stack.push(w);\n }\n\n state.ip = ip;\n}\n\n// MDRP[abcde] Move Direct Relative Point\n// 0xD0-0xEF\n// (if indirect is 0)\n//\n// and\n//\n// MIRP[abcde] Move Indirect Relative Point\n// 0xE0-0xFF\n// (if indirect is 1)\n\nfunction MDRP_MIRP(indirect, setRp0, keepD, ro, dt, state) {\n var stack = state.stack;\n var cvte = indirect && stack.pop();\n var pi = stack.pop();\n var rp0i = state.rp0;\n var rp = state.z0[rp0i];\n var p = state.z1[pi];\n\n var md = state.minDis;\n var fv = state.fv;\n var pv = state.dpv;\n var od; // original distance\n var d; // moving distance\n var sign; // sign of distance\n var cv;\n\n d = od = pv.distance(p, rp, true, true);\n sign = d >= 0 ? 1 : -1; // Math.sign would be 0 in case of 0\n\n // TODO consider autoFlip\n d = Math.abs(d);\n\n if (indirect) {\n cv = state.cvt[cvte];\n\n if (ro && Math.abs(d - cv) < state.cvCutIn) { d = cv; }\n }\n\n if (keepD && d < md) { d = md; }\n\n if (ro) { d = state.round(d); }\n\n fv.setRelative(p, rp, sign * d, pv);\n fv.touch(p);\n\n if (exports.DEBUG) {\n console.log(\n state.step,\n (indirect ? 'MIRP[' : 'MDRP[') +\n (setRp0 ? 'M' : 'm') +\n (keepD ? '>' : '_') +\n (ro ? 'R' : '_') +\n (dt === 0 ? 'Gr' : (dt === 1 ? 'Bl' : (dt === 2 ? 'Wh' : ''))) +\n ']',\n indirect ?\n cvte + '(' + state.cvt[cvte] + ',' + cv + ')' :\n '',\n pi,\n '(d =', od, '->', sign * d, ')'\n );\n }\n\n state.rp1 = state.rp0;\n state.rp2 = pi;\n if (setRp0) { state.rp0 = pi; }\n}\n\n/*\n* The instruction table.\n*/\ninstructionTable = [\n /* 0x00 */ SVTCA.bind(undefined, yUnitVector),\n /* 0x01 */ SVTCA.bind(undefined, xUnitVector),\n /* 0x02 */ SPVTCA.bind(undefined, yUnitVector),\n /* 0x03 */ SPVTCA.bind(undefined, xUnitVector),\n /* 0x04 */ SFVTCA.bind(undefined, yUnitVector),\n /* 0x05 */ SFVTCA.bind(undefined, xUnitVector),\n /* 0x06 */ SPVTL.bind(undefined, 0),\n /* 0x07 */ SPVTL.bind(undefined, 1),\n /* 0x08 */ SFVTL.bind(undefined, 0),\n /* 0x09 */ SFVTL.bind(undefined, 1),\n /* 0x0A */ SPVFS,\n /* 0x0B */ SFVFS,\n /* 0x0C */ GPV,\n /* 0x0D */ GFV,\n /* 0x0E */ SFVTPV,\n /* 0x0F */ ISECT,\n /* 0x10 */ SRP0,\n /* 0x11 */ SRP1,\n /* 0x12 */ SRP2,\n /* 0x13 */ SZP0,\n /* 0x14 */ SZP1,\n /* 0x15 */ SZP2,\n /* 0x16 */ SZPS,\n /* 0x17 */ SLOOP,\n /* 0x18 */ RTG,\n /* 0x19 */ RTHG,\n /* 0x1A */ SMD,\n /* 0x1B */ ELSE,\n /* 0x1C */ JMPR,\n /* 0x1D */ SCVTCI,\n /* 0x1E */ undefined, // TODO SSWCI\n /* 0x1F */ undefined, // TODO SSW\n /* 0x20 */ DUP,\n /* 0x21 */ POP,\n /* 0x22 */ CLEAR,\n /* 0x23 */ SWAP,\n /* 0x24 */ DEPTH,\n /* 0x25 */ CINDEX,\n /* 0x26 */ MINDEX,\n /* 0x27 */ undefined, // TODO ALIGNPTS\n /* 0x28 */ undefined,\n /* 0x29 */ undefined, // TODO UTP\n /* 0x2A */ LOOPCALL,\n /* 0x2B */ CALL,\n /* 0x2C */ FDEF,\n /* 0x2D */ undefined, // ENDF (eaten by FDEF)\n /* 0x2E */ MDAP.bind(undefined, 0),\n /* 0x2F */ MDAP.bind(undefined, 1),\n /* 0x30 */ IUP.bind(undefined, yUnitVector),\n /* 0x31 */ IUP.bind(undefined, xUnitVector),\n /* 0x32 */ SHP.bind(undefined, 0),\n /* 0x33 */ SHP.bind(undefined, 1),\n /* 0x34 */ SHC.bind(undefined, 0),\n /* 0x35 */ SHC.bind(undefined, 1),\n /* 0x36 */ SHZ.bind(undefined, 0),\n /* 0x37 */ SHZ.bind(undefined, 1),\n /* 0x38 */ SHPIX,\n /* 0x39 */ IP,\n /* 0x3A */ MSIRP.bind(undefined, 0),\n /* 0x3B */ MSIRP.bind(undefined, 1),\n /* 0x3C */ ALIGNRP,\n /* 0x3D */ RTDG,\n /* 0x3E */ MIAP.bind(undefined, 0),\n /* 0x3F */ MIAP.bind(undefined, 1),\n /* 0x40 */ NPUSHB,\n /* 0x41 */ NPUSHW,\n /* 0x42 */ WS,\n /* 0x43 */ RS,\n /* 0x44 */ WCVTP,\n /* 0x45 */ RCVT,\n /* 0x46 */ GC.bind(undefined, 0),\n /* 0x47 */ GC.bind(undefined, 1),\n /* 0x48 */ undefined, // TODO SCFS\n /* 0x49 */ MD.bind(undefined, 0),\n /* 0x4A */ MD.bind(undefined, 1),\n /* 0x4B */ MPPEM,\n /* 0x4C */ undefined, // TODO MPS\n /* 0x4D */ FLIPON,\n /* 0x4E */ undefined, // TODO FLIPOFF\n /* 0x4F */ undefined, // TODO DEBUG\n /* 0x50 */ LT,\n /* 0x51 */ LTEQ,\n /* 0x52 */ GT,\n /* 0x53 */ GTEQ,\n /* 0x54 */ EQ,\n /* 0x55 */ NEQ,\n /* 0x56 */ ODD,\n /* 0x57 */ EVEN,\n /* 0x58 */ IF,\n /* 0x59 */ EIF,\n /* 0x5A */ AND,\n /* 0x5B */ OR,\n /* 0x5C */ NOT,\n /* 0x5D */ DELTAP123.bind(undefined, 1),\n /* 0x5E */ SDB,\n /* 0x5F */ SDS,\n /* 0x60 */ ADD,\n /* 0x61 */ SUB,\n /* 0x62 */ DIV,\n /* 0x63 */ MUL,\n /* 0x64 */ ABS,\n /* 0x65 */ NEG,\n /* 0x66 */ FLOOR,\n /* 0x67 */ CEILING,\n /* 0x68 */ ROUND.bind(undefined, 0),\n /* 0x69 */ ROUND.bind(undefined, 1),\n /* 0x6A */ ROUND.bind(undefined, 2),\n /* 0x6B */ ROUND.bind(undefined, 3),\n /* 0x6C */ undefined, // TODO NROUND[ab]\n /* 0x6D */ undefined, // TODO NROUND[ab]\n /* 0x6E */ undefined, // TODO NROUND[ab]\n /* 0x6F */ undefined, // TODO NROUND[ab]\n /* 0x70 */ WCVTF,\n /* 0x71 */ DELTAP123.bind(undefined, 2),\n /* 0x72 */ DELTAP123.bind(undefined, 3),\n /* 0x73 */ DELTAC123.bind(undefined, 1),\n /* 0x74 */ DELTAC123.bind(undefined, 2),\n /* 0x75 */ DELTAC123.bind(undefined, 3),\n /* 0x76 */ SROUND,\n /* 0x77 */ S45ROUND,\n /* 0x78 */ undefined, // TODO JROT[]\n /* 0x79 */ undefined, // TODO JROF[]\n /* 0x7A */ ROFF,\n /* 0x7B */ undefined,\n /* 0x7C */ RUTG,\n /* 0x7D */ RDTG,\n /* 0x7E */ POP, // actually SANGW, supposed to do only a pop though\n /* 0x7F */ POP, // actually AA, supposed to do only a pop though\n /* 0x80 */ undefined, // TODO FLIPPT\n /* 0x81 */ undefined, // TODO FLIPRGON\n /* 0x82 */ undefined, // TODO FLIPRGOFF\n /* 0x83 */ undefined,\n /* 0x84 */ undefined,\n /* 0x85 */ SCANCTRL,\n /* 0x86 */ SDPVTL.bind(undefined, 0),\n /* 0x87 */ SDPVTL.bind(undefined, 1),\n /* 0x88 */ GETINFO,\n /* 0x89 */ undefined, // TODO IDEF\n /* 0x8A */ ROLL,\n /* 0x8B */ MAX,\n /* 0x8C */ MIN,\n /* 0x8D */ SCANTYPE,\n /* 0x8E */ INSTCTRL,\n /* 0x8F */ undefined,\n /* 0x90 */ undefined,\n /* 0x91 */ undefined,\n /* 0x92 */ undefined,\n /* 0x93 */ undefined,\n /* 0x94 */ undefined,\n /* 0x95 */ undefined,\n /* 0x96 */ undefined,\n /* 0x97 */ undefined,\n /* 0x98 */ undefined,\n /* 0x99 */ undefined,\n /* 0x9A */ undefined,\n /* 0x9B */ undefined,\n /* 0x9C */ undefined,\n /* 0x9D */ undefined,\n /* 0x9E */ undefined,\n /* 0x9F */ undefined,\n /* 0xA0 */ undefined,\n /* 0xA1 */ undefined,\n /* 0xA2 */ undefined,\n /* 0xA3 */ undefined,\n /* 0xA4 */ undefined,\n /* 0xA5 */ undefined,\n /* 0xA6 */ undefined,\n /* 0xA7 */ undefined,\n /* 0xA8 */ undefined,\n /* 0xA9 */ undefined,\n /* 0xAA */ undefined,\n /* 0xAB */ undefined,\n /* 0xAC */ undefined,\n /* 0xAD */ undefined,\n /* 0xAE */ undefined,\n /* 0xAF */ undefined,\n /* 0xB0 */ PUSHB.bind(undefined, 1),\n /* 0xB1 */ PUSHB.bind(undefined, 2),\n /* 0xB2 */ PUSHB.bind(undefined, 3),\n /* 0xB3 */ PUSHB.bind(undefined, 4),\n /* 0xB4 */ PUSHB.bind(undefined, 5),\n /* 0xB5 */ PUSHB.bind(undefined, 6),\n /* 0xB6 */ PUSHB.bind(undefined, 7),\n /* 0xB7 */ PUSHB.bind(undefined, 8),\n /* 0xB8 */ PUSHW.bind(undefined, 1),\n /* 0xB9 */ PUSHW.bind(undefined, 2),\n /* 0xBA */ PUSHW.bind(undefined, 3),\n /* 0xBB */ PUSHW.bind(undefined, 4),\n /* 0xBC */ PUSHW.bind(undefined, 5),\n /* 0xBD */ PUSHW.bind(undefined, 6),\n /* 0xBE */ PUSHW.bind(undefined, 7),\n /* 0xBF */ PUSHW.bind(undefined, 8),\n /* 0xC0 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 0),\n /* 0xC1 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 1),\n /* 0xC2 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 2),\n /* 0xC3 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 0, 3),\n /* 0xC4 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 0),\n /* 0xC5 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 1),\n /* 0xC6 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 2),\n /* 0xC7 */ MDRP_MIRP.bind(undefined, 0, 0, 0, 1, 3),\n /* 0xC8 */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 0),\n /* 0xC9 */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 1),\n /* 0xCA */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 2),\n /* 0xCB */ MDRP_MIRP.bind(undefined, 0, 0, 1, 0, 3),\n /* 0xCC */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 0),\n /* 0xCD */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 1),\n /* 0xCE */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 2),\n /* 0xCF */ MDRP_MIRP.bind(undefined, 0, 0, 1, 1, 3),\n /* 0xD0 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 0),\n /* 0xD1 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 1),\n /* 0xD2 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 2),\n /* 0xD3 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 0, 3),\n /* 0xD4 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 0),\n /* 0xD5 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 1),\n /* 0xD6 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 2),\n /* 0xD7 */ MDRP_MIRP.bind(undefined, 0, 1, 0, 1, 3),\n /* 0xD8 */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 0),\n /* 0xD9 */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 1),\n /* 0xDA */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 2),\n /* 0xDB */ MDRP_MIRP.bind(undefined, 0, 1, 1, 0, 3),\n /* 0xDC */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 0),\n /* 0xDD */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 1),\n /* 0xDE */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 2),\n /* 0xDF */ MDRP_MIRP.bind(undefined, 0, 1, 1, 1, 3),\n /* 0xE0 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 0),\n /* 0xE1 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 1),\n /* 0xE2 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 2),\n /* 0xE3 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 0, 3),\n /* 0xE4 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 0),\n /* 0xE5 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 1),\n /* 0xE6 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 2),\n /* 0xE7 */ MDRP_MIRP.bind(undefined, 1, 0, 0, 1, 3),\n /* 0xE8 */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 0),\n /* 0xE9 */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 1),\n /* 0xEA */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 2),\n /* 0xEB */ MDRP_MIRP.bind(undefined, 1, 0, 1, 0, 3),\n /* 0xEC */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 0),\n /* 0xED */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 1),\n /* 0xEE */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 2),\n /* 0xEF */ MDRP_MIRP.bind(undefined, 1, 0, 1, 1, 3),\n /* 0xF0 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 0),\n /* 0xF1 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 1),\n /* 0xF2 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 2),\n /* 0xF3 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 0, 3),\n /* 0xF4 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 0),\n /* 0xF5 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 1),\n /* 0xF6 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 2),\n /* 0xF7 */ MDRP_MIRP.bind(undefined, 1, 1, 0, 1, 3),\n /* 0xF8 */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 0),\n /* 0xF9 */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 1),\n /* 0xFA */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 2),\n /* 0xFB */ MDRP_MIRP.bind(undefined, 1, 1, 1, 0, 3),\n /* 0xFC */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 0),\n /* 0xFD */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 1),\n /* 0xFE */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 2),\n /* 0xFF */ MDRP_MIRP.bind(undefined, 1, 1, 1, 1, 3)\n];\n\n/*****************************\n Mathematical Considerations\n******************************\n\nfv ... refers to freedom vector\npv ... refers to projection vector\nrp ... refers to reference point\np ... refers to to point being operated on\nd ... refers to distance\n\nSETRELATIVE:\n============\n\ncase freedom vector == x-axis:\n------------------------------\n\n (pv)\n .-'\n rpd .-'\n .-*\n d .-'90°'\n .-' '\n .-' '\n *-' ' b\n rp '\n '\n '\n p *----------*-------------- (fv)\n pm\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b\n\n y - rpdy = pvns * (x- rpdx)\n\n y = p.y\n\n x = rpdx + ( p.y - rpdy ) / pvns\n\n\ncase freedom vector == y-axis:\n------------------------------\n\n * pm\n |\\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\\n | \\ b\n | \\\n | \\\n | \\ .-' (pv)\n | 90° \\.-'\n | .-'* rpd\n | .-'\n * *-' d\n p rp\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b:\n pvns ... normal slope to pv\n\n y - rpdy = pvns * (x - rpdx)\n\n x = p.x\n\n y = rpdy + pvns * (p.x - rpdx)\n\n\n\ngeneric case:\n-------------\n\n\n .'(fv)\n .'\n .* pm\n .' !\n .' .\n .' !\n .' . b\n .' !\n * .\n p !\n 90° . ... (pv)\n ...-*-'''\n ...---''' rpd\n ...---''' d\n *--'''\n rp\n\n rpdx = rpx + d * pv.x\n rpdy = rpy + d * pv.y\n\n equation of line b:\n pvns... normal slope to pv\n\n y - rpdy = pvns * (x - rpdx)\n\n equation of freedom vector line:\n fvs ... slope of freedom vector (=fy/fx)\n\n y - py = fvs * (x - px)\n\n\n on pm both equations are true for same x/y\n\n y - rpdy = pvns * (x - rpdx)\n\n y - py = fvs * (x - px)\n\n form to y and set equal:\n\n pvns * (x - rpdx) + rpdy = fvs * (x - px) + py\n\n expand:\n\n pvns * x - pvns * rpdx + rpdy = fvs * x - fvs * px + py\n\n switch:\n\n fvs * x - fvs * px + py = pvns * x - pvns * rpdx + rpdy\n\n solve for x:\n\n fvs * x - pvns * x = fvs * px - pvns * rpdx - py + rpdy\n\n\n\n fvs * px - pvns * rpdx + rpdy - py\n x = -----------------------------------\n fvs - pvns\n\n and:\n\n y = fvs * (x - px) + py\n\n\n\nINTERPOLATE:\n============\n\nExamples of point interpolation.\n\nThe weight of the movement of the reference point gets bigger\nthe further the other reference point is away, thus the safest\noption (that is avoiding 0/0 divisions) is to weight the\noriginal distance of the other point by the sum of both distances.\n\nIf the sum of both distances is 0, then move the point by the\narithmetic average of the movement of both reference points.\n\n\n\n\n (+6)\n rp1o *---->*rp1\n . . (+12)\n . . rp2o *---------->* rp2\n . . . .\n . . . .\n . 10 20 . .\n |.........|...................| .\n . . .\n . . (+8) .\n po *------>*p .\n . . .\n . 12 . 24 .\n |...........|.......................|\n 36\n\n\n-------\n\n\n\n (+10)\n rp1o *-------->*rp1\n . . (-10)\n . . rp2 *<---------* rpo2\n . . . .\n . . . .\n . 10 . 30 . .\n |.........|.............................|\n . .\n . (+5) .\n po *--->* p .\n . . .\n . . 20 .\n |....|..............|\n 5 15\n\n\n-------\n\n\n (+10)\n rp1o *-------->*rp1\n . .\n . .\n rp2o *-------->*rp2\n\n\n (+10)\n po *-------->* p\n\n-------\n\n\n (+10)\n rp1o *-------->*rp1\n . .\n . .(+30)\n rp2o *---------------------------->*rp2\n\n\n (+25)\n po *----------------------->* p\n\n\n\nvim: set ts=4 sw=4 expandtab:\n*****/\n\n/**\n * Converts a string into a list of tokens.\n */\n\n/**\n * Create a new token\n * @param {string} char a single char\n */\nfunction Token(char) {\n this.char = char;\n this.state = {};\n this.activeState = null;\n}\n\n/**\n * Create a new context range\n * @param {number} startIndex range start index\n * @param {number} endOffset range end index offset\n * @param {string} contextName owner context name\n */\nfunction ContextRange(startIndex, endOffset, contextName) {\n this.contextName = contextName;\n this.startIndex = startIndex;\n this.endOffset = endOffset;\n}\n\n/**\n * Check context start and end\n * @param {string} contextName a unique context name\n * @param {function} checkStart a predicate function the indicates a context's start\n * @param {function} checkEnd a predicate function the indicates a context's end\n */\nfunction ContextChecker(contextName, checkStart, checkEnd) {\n this.contextName = contextName;\n this.openRange = null;\n this.ranges = [];\n this.checkStart = checkStart;\n this.checkEnd = checkEnd;\n}\n\n/**\n * @typedef ContextParams\n * @type Object\n * @property {array} context context items\n * @property {number} currentIndex current item index\n */\n\n/**\n * Create a context params\n * @param {array} context a list of items\n * @param {number} currentIndex current item index\n */\nfunction ContextParams(context, currentIndex) {\n this.context = context;\n this.index = currentIndex;\n this.length = context.length;\n this.current = context[currentIndex];\n this.backtrack = context.slice(0, currentIndex);\n this.lookahead = context.slice(currentIndex + 1);\n}\n\n/**\n * Create an event instance\n * @param {string} eventId event unique id\n */\nfunction Event(eventId) {\n this.eventId = eventId;\n this.subscribers = [];\n}\n\n/**\n * Initialize a core events and auto subscribe required event handlers\n * @param {any} events an object that enlists core events handlers\n */\nfunction initializeCoreEvents(events) {\n var this$1 = this;\n\n var coreEvents = [\n 'start', 'end', 'next', 'newToken', 'contextStart',\n 'contextEnd', 'insertToken', 'removeToken', 'removeRange',\n 'replaceToken', 'replaceRange', 'composeRUD', 'updateContextsRanges'\n ];\n\n coreEvents.forEach(function (eventId) {\n Object.defineProperty(this$1.events, eventId, {\n value: new Event(eventId)\n });\n });\n\n if (!!events) {\n coreEvents.forEach(function (eventId) {\n var event = events[eventId];\n if (typeof event === 'function') {\n this$1.events[eventId].subscribe(event);\n }\n });\n }\n var requiresContextUpdate = [\n 'insertToken', 'removeToken', 'removeRange',\n 'replaceToken', 'replaceRange', 'composeRUD'\n ];\n requiresContextUpdate.forEach(function (eventId) {\n this$1.events[eventId].subscribe(\n this$1.updateContextsRanges\n );\n });\n}\n\n/**\n * Converts a string into a list of tokens\n * @param {any} events tokenizer core events\n */\nfunction Tokenizer(events) {\n this.tokens = [];\n this.registeredContexts = {};\n this.contextCheckers = [];\n this.events = {};\n this.registeredModifiers = [];\n\n initializeCoreEvents.call(this, events);\n}\n\n/**\n * Sets the state of a token, usually called by a state modifier.\n * @param {string} key state item key\n * @param {any} value state item value\n */\nToken.prototype.setState = function(key, value) {\n this.state[key] = value;\n this.activeState = { key: key, value: this.state[key] };\n return this.activeState;\n};\n\nToken.prototype.getState = function (stateId) {\n return this.state[stateId] || null;\n};\n\n/**\n * Checks if an index exists in the tokens list.\n * @param {number} index token index\n */\nTokenizer.prototype.inboundIndex = function(index) {\n return index >= 0 && index < this.tokens.length;\n};\n\n/**\n * Compose and apply a list of operations (replace, update, delete)\n * @param {array} RUDs replace, update and delete operations\n * TODO: Perf. Optimization (lengthBefore === lengthAfter ? dispatch once)\n */\nTokenizer.prototype.composeRUD = function (RUDs) {\n var this$1 = this;\n\n var silent = true;\n var state = RUDs.map(function (RUD) { return (\n this$1[RUD[0]].apply(this$1, RUD.slice(1).concat(silent))\n ); });\n var hasFAILObject = function (obj) { return (\n typeof obj === 'object' &&\n obj.hasOwnProperty('FAIL')\n ); };\n if (state.every(hasFAILObject)) {\n return {\n FAIL: \"composeRUD: one or more operations hasn't completed successfully\",\n report: state.filter(hasFAILObject)\n };\n }\n this.dispatch('composeRUD', [state.filter(function (op) { return !hasFAILObject(op); })]);\n};\n\n/**\n * Replace a range of tokens with a list of tokens\n * @param {number} startIndex range start index\n * @param {number} offset range offset\n * @param {token} tokens a list of tokens to replace\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.replaceRange = function (startIndex, offset, tokens, silent) {\n offset = offset !== null ? offset : this.tokens.length;\n var isTokenType = tokens.every(function (token) { return token instanceof Token; });\n if (!isNaN(startIndex) && this.inboundIndex(startIndex) && isTokenType) {\n var replaced = this.tokens.splice.apply(\n this.tokens, [startIndex, offset].concat(tokens)\n );\n if (!silent) { this.dispatch('replaceToken', [startIndex, offset, tokens]); }\n return [replaced, tokens];\n } else {\n return { FAIL: 'replaceRange: invalid tokens or startIndex.' };\n }\n};\n\n/**\n * Replace a token with another token\n * @param {number} index token index\n * @param {token} token a token to replace\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.replaceToken = function (index, token, silent) {\n if (!isNaN(index) && this.inboundIndex(index) && token instanceof Token) {\n var replaced = this.tokens.splice(index, 1, token);\n if (!silent) { this.dispatch('replaceToken', [index, token]); }\n return [replaced[0], token];\n } else {\n return { FAIL: 'replaceToken: invalid token or index.' };\n }\n};\n\n/**\n * Removes a range of tokens\n * @param {number} startIndex range start index\n * @param {number} offset range offset\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.removeRange = function(startIndex, offset, silent) {\n offset = !isNaN(offset) ? offset : this.tokens.length;\n var tokens = this.tokens.splice(startIndex, offset);\n if (!silent) { this.dispatch('removeRange', [tokens, startIndex, offset]); }\n return tokens;\n};\n\n/**\n * Remove a token at a certain index\n * @param {number} index token index\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.removeToken = function(index, silent) {\n if (!isNaN(index) && this.inboundIndex(index)) {\n var token = this.tokens.splice(index, 1);\n if (!silent) { this.dispatch('removeToken', [token, index]); }\n return token;\n } else {\n return { FAIL: 'removeToken: invalid token index.' };\n }\n};\n\n/**\n * Insert a list of tokens at a certain index\n * @param {array} tokens a list of tokens to insert\n * @param {number} index insert the list of tokens at index\n * @param {boolean} silent dispatch events and update context ranges\n */\nTokenizer.prototype.insertToken = function (tokens, index, silent) {\n var tokenType = tokens.every(\n function (token) { return token instanceof Token; }\n );\n if (tokenType) {\n this.tokens.splice.apply(\n this.tokens, [index, 0].concat(tokens)\n );\n if (!silent) { this.dispatch('insertToken', [tokens, index]); }\n return tokens;\n } else {\n return { FAIL: 'insertToken: invalid token(s).' };\n }\n};\n\n/**\n * A state modifier that is called on 'newToken' event\n * @param {string} modifierId state modifier id\n * @param {function} condition a predicate function that returns true or false\n * @param {function} modifier a function to update token state\n */\nTokenizer.prototype.registerModifier = function(modifierId, condition, modifier) {\n this.events.newToken.subscribe(function(token, contextParams) {\n var conditionParams = [token, contextParams];\n var canApplyModifier = (\n condition === null ||\n condition.apply(this, conditionParams) === true\n );\n var modifierParams = [token, contextParams];\n if (canApplyModifier) {\n var newStateValue = modifier.apply(this, modifierParams);\n token.setState(modifierId, newStateValue);\n }\n });\n this.registeredModifiers.push(modifierId);\n};\n\n/**\n * Subscribe a handler to an event\n * @param {function} eventHandler an event handler function\n */\nEvent.prototype.subscribe = function (eventHandler) {\n if (typeof eventHandler === 'function') {\n return ((this.subscribers.push(eventHandler)) - 1);\n } else {\n return { FAIL: (\"invalid '\" + (this.eventId) + \"' event handler\")};\n }\n};\n\n/**\n * Unsubscribe an event handler\n * @param {string} subsId subscription id\n */\nEvent.prototype.unsubscribe = function (subsId) {\n this.subscribers.splice(subsId, 1);\n};\n\n/**\n * Sets context params current value index\n * @param {number} index context params current value index\n */\nContextParams.prototype.setCurrentIndex = function(index) {\n this.index = index;\n this.current = this.context[index];\n this.backtrack = this.context.slice(0, index);\n this.lookahead = this.context.slice(index + 1);\n};\n\n/**\n * Get an item at an offset from the current value\n * example (current value is 3):\n * 1 2 [3] 4 5 | items values\n * -2 -1 0 1 2 | offset values\n * @param {number} offset an offset from current value index\n */\nContextParams.prototype.get = function (offset) {\n switch (true) {\n case (offset === 0):\n return this.current;\n case (offset < 0 && Math.abs(offset) <= this.backtrack.length):\n return this.backtrack.slice(offset)[0];\n case (offset > 0 && offset <= this.lookahead.length):\n return this.lookahead[offset - 1];\n default:\n return null;\n }\n};\n\n/**\n * Converts a context range into a string value\n * @param {contextRange} range a context range\n */\nTokenizer.prototype.rangeToText = function (range) {\n if (range instanceof ContextRange) {\n return (\n this.getRangeTokens(range)\n .map(function (token) { return token.char; }).join('')\n );\n }\n};\n\n/**\n * Converts all tokens into a string\n */\nTokenizer.prototype.getText = function () {\n return this.tokens.map(function (token) { return token.char; }).join('');\n};\n\n/**\n * Get a context by name\n * @param {string} contextName context name to get\n */\nTokenizer.prototype.getContext = function (contextName) {\n var context = this.registeredContexts[contextName];\n return !!context ? context : null;\n};\n\n/**\n * Subscribes a new event handler to an event\n * @param {string} eventName event name to subscribe to\n * @param {function} eventHandler a function to be invoked on event\n */\nTokenizer.prototype.on = function(eventName, eventHandler) {\n var event = this.events[eventName];\n if (!!event) {\n return event.subscribe(eventHandler);\n } else {\n return null;\n }\n};\n\n/**\n * Dispatches an event\n * @param {string} eventName event name\n * @param {any} args event handler arguments\n */\nTokenizer.prototype.dispatch = function(eventName, args) {\n var this$1 = this;\n\n var event = this.events[eventName];\n if (event instanceof Event) {\n event.subscribers.forEach(function (subscriber) {\n subscriber.apply(this$1, args || []);\n });\n }\n};\n\n/**\n * Register a new context checker\n * @param {string} contextName a unique context name\n * @param {function} contextStartCheck a predicate function that returns true on context start\n * @param {function} contextEndCheck a predicate function that returns true on context end\n * TODO: call tokenize on registration to update context ranges with the new context.\n */\nTokenizer.prototype.registerContextChecker = function(contextName, contextStartCheck, contextEndCheck) {\n if (!!this.getContext(contextName)) { return {\n FAIL:\n (\"context name '\" + contextName + \"' is already registered.\")\n }; }\n if (typeof contextStartCheck !== 'function') { return {\n FAIL:\n \"missing context start check.\"\n }; }\n if (typeof contextEndCheck !== 'function') { return {\n FAIL:\n \"missing context end check.\"\n }; }\n var contextCheckers = new ContextChecker(\n contextName, contextStartCheck, contextEndCheck\n );\n this.registeredContexts[contextName] = contextCheckers;\n this.contextCheckers.push(contextCheckers);\n return contextCheckers;\n};\n\n/**\n * Gets a context range tokens\n * @param {contextRange} range a context range\n */\nTokenizer.prototype.getRangeTokens = function(range) {\n var endIndex = range.startIndex + range.endOffset;\n return [].concat(\n this.tokens\n .slice(range.startIndex, endIndex)\n );\n};\n\n/**\n * Gets the ranges of a context\n * @param {string} contextName context name\n */\nTokenizer.prototype.getContextRanges = function(contextName) {\n var context = this.getContext(contextName);\n if (!!context) {\n return context.ranges;\n } else {\n return { FAIL: (\"context checker '\" + contextName + \"' is not registered.\") };\n }\n};\n\n/**\n * Resets context ranges to run context update\n */\nTokenizer.prototype.resetContextsRanges = function () {\n var registeredContexts = this.registeredContexts;\n for (var contextName in registeredContexts) {\n if (registeredContexts.hasOwnProperty(contextName)) {\n var context = registeredContexts[contextName];\n context.ranges = [];\n }\n }\n};\n\n/**\n * Updates context ranges\n */\nTokenizer.prototype.updateContextsRanges = function () {\n this.resetContextsRanges();\n var chars = this.tokens.map(function (token) { return token.char; });\n for (var i = 0; i < chars.length; i++) {\n var contextParams = new ContextParams(chars, i);\n this.runContextCheck(contextParams);\n }\n this.dispatch('updateContextsRanges', [this.registeredContexts]);\n};\n\n/**\n * Sets the end offset of an open range\n * @param {number} offset range end offset\n * @param {string} contextName context name\n */\nTokenizer.prototype.setEndOffset = function (offset, contextName) {\n var startIndex = this.getContext(contextName).openRange.startIndex;\n var range = new ContextRange(startIndex, offset, contextName);\n var ranges = this.getContext(contextName).ranges;\n range.rangeId = contextName + \".\" + (ranges.length);\n ranges.push(range);\n this.getContext(contextName).openRange = null;\n return range;\n};\n\n/**\n * Runs a context check on the current context\n * @param {contextParams} contextParams current context params\n */\nTokenizer.prototype.runContextCheck = function(contextParams) {\n var this$1 = this;\n\n var index = contextParams.index;\n this.contextCheckers.forEach(function (contextChecker) {\n var contextName = contextChecker.contextName;\n var openRange = this$1.getContext(contextName).openRange;\n if (!openRange && contextChecker.checkStart(contextParams)) {\n openRange = new ContextRange(index, null, contextName);\n this$1.getContext(contextName).openRange = openRange;\n this$1.dispatch('contextStart', [contextName, index]);\n }\n if (!!openRange && contextChecker.checkEnd(contextParams)) {\n var offset = (index - openRange.startIndex) + 1;\n var range = this$1.setEndOffset(offset, contextName);\n this$1.dispatch('contextEnd', [contextName, range]);\n }\n });\n};\n\n/**\n * Converts a text into a list of tokens\n * @param {string} text a text to tokenize\n */\nTokenizer.prototype.tokenize = function (text) {\n this.tokens = [];\n this.resetContextsRanges();\n var chars = Array.from(text);\n this.dispatch('start');\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n var contextParams = new ContextParams(chars, i);\n this.dispatch('next', [contextParams]);\n this.runContextCheck(contextParams);\n var token = new Token(char);\n this.tokens.push(token);\n this.dispatch('newToken', [token, contextParams]);\n }\n this.dispatch('end', [this.tokens]);\n return this.tokens;\n};\n\n// ╭─┄┄┄────────────────────────┄─────────────────────────────────────────────╮\n// ┊ Character Class Assertions ┊ Checks if a char belongs to a certain class ┊\n// ╰─╾──────────────────────────┄─────────────────────────────────────────────╯\n// jscs:disable maximumLineLength\n/**\n * Check if a char is Arabic\n * @param {string} c a single char\n */\nfunction isArabicChar(c) {\n return /[\\u0600-\\u065F\\u066A-\\u06D2\\u06FA-\\u06FF]/.test(c);\n}\n\n/**\n * Check if a char is an isolated arabic char\n * @param {string} c a single char\n */\nfunction isIsolatedArabicChar(char) {\n return /[\\u0630\\u0690\\u0621\\u0631\\u0661\\u0671\\u0622\\u0632\\u0672\\u0692\\u06C2\\u0623\\u0673\\u0693\\u06C3\\u0624\\u0694\\u06C4\\u0625\\u0675\\u0695\\u06C5\\u06E5\\u0676\\u0696\\u06C6\\u0627\\u0677\\u0697\\u06C7\\u0648\\u0688\\u0698\\u06C8\\u0689\\u0699\\u06C9\\u068A\\u06CA\\u066B\\u068B\\u06CB\\u068C\\u068D\\u06CD\\u06FD\\u068E\\u06EE\\u06FE\\u062F\\u068F\\u06CF\\u06EF]/.test(char);\n}\n\n/**\n * Check if a char is an Arabic Tashkeel char\n * @param {string} c a single char\n */\nfunction isTashkeelArabicChar(char) {\n return /[\\u0600-\\u0605\\u060C-\\u060E\\u0610-\\u061B\\u061E\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED]/.test(char);\n}\n\n/**\n * Check if a char is Latin\n * @param {string} c a single char\n */\nfunction isLatinChar(c) {\n return /[A-z]/.test(c);\n}\n\n/**\n * Check if a char is whitespace char\n * @param {string} c a single char\n */\nfunction isWhiteSpace(c) {\n return /\\s/.test(c);\n}\n\n/**\n * Query a feature by some of it's properties to lookup a glyph substitution.\n */\n\n/**\n * Create feature query instance\n * @param {Font} font opentype font instance\n */\nfunction FeatureQuery(font) {\n this.font = font;\n this.features = {};\n}\n\n/**\n * @typedef SubstitutionAction\n * @type Object\n * @property {number} id substitution type\n * @property {string} tag feature tag\n * @property {any} substitution substitution value(s)\n */\n\n/**\n * Create a substitution action instance\n * @param {SubstitutionAction} action\n */\nfunction SubstitutionAction(action) {\n this.id = action.id;\n this.tag = action.tag;\n this.substitution = action.substitution;\n}\n\n/**\n * Lookup a coverage table\n * @param {number} glyphIndex glyph index\n * @param {CoverageTable} coverage coverage table\n */\nfunction lookupCoverage(glyphIndex, coverage) {\n if (!glyphIndex) { return -1; }\n switch (coverage.format) {\n case 1:\n return coverage.glyphs.indexOf(glyphIndex);\n\n case 2:\n var ranges = coverage.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (glyphIndex >= range.start && glyphIndex <= range.end) {\n var offset = glyphIndex - range.start;\n return range.index + offset;\n }\n }\n break;\n default:\n return -1; // not found\n }\n return -1;\n}\n\n/**\n * Handle a single substitution - format 1\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction singleSubstitutionFormat1(glyphIndex, subtable) {\n var substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) { return null; }\n return glyphIndex + subtable.deltaGlyphId;\n}\n\n/**\n * Handle a single substitution - format 2\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction singleSubstitutionFormat2(glyphIndex, subtable) {\n var substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) { return null; }\n return subtable.substitute[substituteIndex];\n}\n\n/**\n * Lookup a list of coverage tables\n * @param {any} coverageList a list of coverage tables\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction lookupCoverageList(coverageList, contextParams) {\n var lookupList = [];\n for (var i = 0; i < coverageList.length; i++) {\n var coverage = coverageList[i];\n var glyphIndex = contextParams.current;\n glyphIndex = Array.isArray(glyphIndex) ? glyphIndex[0] : glyphIndex;\n var lookupIndex = lookupCoverage(glyphIndex, coverage);\n if (lookupIndex !== -1) {\n lookupList.push(lookupIndex);\n }\n }\n if (lookupList.length !== coverageList.length) { return -1; }\n return lookupList;\n}\n\n/**\n * Handle chaining context substitution - format 3\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction chainingSubstitutionFormat3(contextParams, subtable) {\n var lookupsCount = (\n subtable.inputCoverage.length +\n subtable.lookaheadCoverage.length +\n subtable.backtrackCoverage.length\n );\n if (contextParams.context.length < lookupsCount) { return []; }\n // INPUT LOOKUP //\n var inputLookups = lookupCoverageList(\n subtable.inputCoverage, contextParams\n );\n if (inputLookups === -1) { return []; }\n // LOOKAHEAD LOOKUP //\n var lookaheadOffset = subtable.inputCoverage.length - 1;\n if (contextParams.lookahead.length < subtable.lookaheadCoverage.length) { return []; }\n var lookaheadContext = contextParams.lookahead.slice(lookaheadOffset);\n while (lookaheadContext.length && isTashkeelArabicChar(lookaheadContext[0].char)) {\n lookaheadContext.shift();\n }\n var lookaheadParams = new ContextParams(lookaheadContext, 0);\n var lookaheadLookups = lookupCoverageList(\n subtable.lookaheadCoverage, lookaheadParams\n );\n // BACKTRACK LOOKUP //\n var backtrackContext = [].concat(contextParams.backtrack);\n backtrackContext.reverse();\n while (backtrackContext.length && isTashkeelArabicChar(backtrackContext[0].char)) {\n backtrackContext.shift();\n }\n if (backtrackContext.length < subtable.backtrackCoverage.length) { return []; }\n var backtrackParams = new ContextParams(backtrackContext, 0);\n var backtrackLookups = lookupCoverageList(\n subtable.backtrackCoverage, backtrackParams\n );\n var contextRulesMatch = (\n inputLookups.length === subtable.inputCoverage.length &&\n lookaheadLookups.length === subtable.lookaheadCoverage.length &&\n backtrackLookups.length === subtable.backtrackCoverage.length\n );\n var substitutions = [];\n if (contextRulesMatch) {\n for (var i = 0; i < subtable.lookupRecords.length; i++) {\n var lookupRecord = subtable.lookupRecords[i];\n var lookupListIndex = lookupRecord.lookupListIndex;\n var lookupTable = this.getLookupByIndex(lookupListIndex);\n for (var s = 0; s < lookupTable.subtables.length; s++) {\n var subtable$1 = lookupTable.subtables[s];\n var lookup = this.getLookupMethod(lookupTable, subtable$1);\n var substitutionType = this.getSubstitutionType(lookupTable, subtable$1);\n if (substitutionType === '12') {\n for (var n = 0; n < inputLookups.length; n++) {\n var glyphIndex = contextParams.get(n);\n var substitution = lookup(glyphIndex);\n if (substitution) { substitutions.push(substitution); }\n }\n }\n }\n }\n }\n return substitutions;\n}\n\n/**\n * Handle ligature substitution - format 1\n * @param {ContextParams} contextParams context params to lookup\n */\nfunction ligatureSubstitutionFormat1(contextParams, subtable) {\n // COVERAGE LOOKUP //\n var glyphIndex = contextParams.current;\n var ligSetIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (ligSetIndex === -1) { return null; }\n // COMPONENTS LOOKUP\n // (!) note, components are ordered in the written direction.\n var ligature;\n var ligatureSet = subtable.ligatureSets[ligSetIndex];\n for (var s = 0; s < ligatureSet.length; s++) {\n ligature = ligatureSet[s];\n for (var l = 0; l < ligature.components.length; l++) {\n var lookaheadItem = contextParams.lookahead[l];\n var component = ligature.components[l];\n if (lookaheadItem !== component) { break; }\n if (l === ligature.components.length - 1) { return ligature; }\n }\n }\n return null;\n}\n\n/**\n * Handle decomposition substitution - format 1\n * @param {number} glyphIndex glyph index\n * @param {any} subtable subtable\n */\nfunction decompositionSubstitutionFormat1(glyphIndex, subtable) {\n var substituteIndex = lookupCoverage(glyphIndex, subtable.coverage);\n if (substituteIndex === -1) { return null; }\n return subtable.sequences[substituteIndex];\n}\n\n/**\n * Get default script features indexes\n */\nFeatureQuery.prototype.getDefaultScriptFeaturesIndexes = function () {\n var scripts = this.font.tables.gsub.scripts;\n for (var s = 0; s < scripts.length; s++) {\n var script = scripts[s];\n if (script.tag === 'DFLT') { return (\n script.script.defaultLangSys.featureIndexes\n ); }\n }\n return [];\n};\n\n/**\n * Get feature indexes of a specific script\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.getScriptFeaturesIndexes = function(scriptTag) {\n var tables = this.font.tables;\n if (!tables.gsub) { return []; }\n if (!scriptTag) { return this.getDefaultScriptFeaturesIndexes(); }\n var scripts = this.font.tables.gsub.scripts;\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n if (script.tag === scriptTag && script.script.defaultLangSys) {\n return script.script.defaultLangSys.featureIndexes;\n } else {\n var langSysRecords = script.langSysRecords;\n if (!!langSysRecords) {\n for (var j = 0; j < langSysRecords.length; j++) {\n var langSysRecord = langSysRecords[j];\n if (langSysRecord.tag === scriptTag) {\n var langSys = langSysRecord.langSys;\n return langSys.featureIndexes;\n }\n }\n }\n }\n }\n return this.getDefaultScriptFeaturesIndexes();\n};\n\n/**\n * Map a feature tag to a gsub feature\n * @param {any} features gsub features\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.mapTagsToFeatures = function (features, scriptTag) {\n var tags = {};\n for (var i = 0; i < features.length; i++) {\n var tag = features[i].tag;\n var feature = features[i].feature;\n tags[tag] = feature;\n }\n this.features[scriptTag].tags = tags;\n};\n\n/**\n * Get features of a specific script\n * @param {string} scriptTag script tag\n */\nFeatureQuery.prototype.getScriptFeatures = function (scriptTag) {\n var features = this.features[scriptTag];\n if (this.features.hasOwnProperty(scriptTag)) { return features; }\n var featuresIndexes = this.getScriptFeaturesIndexes(scriptTag);\n if (!featuresIndexes) { return null; }\n var gsub = this.font.tables.gsub;\n features = featuresIndexes.map(function (index) { return gsub.features[index]; });\n this.features[scriptTag] = features;\n this.mapTagsToFeatures(features, scriptTag);\n return features;\n};\n\n/**\n * Get substitution type\n * @param {any} lookupTable lookup table\n * @param {any} subtable subtable\n */\nFeatureQuery.prototype.getSubstitutionType = function(lookupTable, subtable) {\n var lookupType = lookupTable.lookupType.toString();\n var substFormat = subtable.substFormat.toString();\n return lookupType + substFormat;\n};\n\n/**\n * Get lookup method\n * @param {any} lookupTable lookup table\n * @param {any} subtable subtable\n */\nFeatureQuery.prototype.getLookupMethod = function(lookupTable, subtable) {\n var this$1 = this;\n\n var substitutionType = this.getSubstitutionType(lookupTable, subtable);\n switch (substitutionType) {\n case '11':\n return function (glyphIndex) { return singleSubstitutionFormat1.apply(\n this$1, [glyphIndex, subtable]\n ); };\n case '12':\n return function (glyphIndex) { return singleSubstitutionFormat2.apply(\n this$1, [glyphIndex, subtable]\n ); };\n case '63':\n return function (contextParams) { return chainingSubstitutionFormat3.apply(\n this$1, [contextParams, subtable]\n ); };\n case '41':\n return function (contextParams) { return ligatureSubstitutionFormat1.apply(\n this$1, [contextParams, subtable]\n ); };\n case '21':\n return function (glyphIndex) { return decompositionSubstitutionFormat1.apply(\n this$1, [glyphIndex, subtable]\n ); };\n default:\n throw new Error(\n \"lookupType: \" + (lookupTable.lookupType) + \" - \" +\n \"substFormat: \" + (subtable.substFormat) + \" \" +\n \"is not yet supported\"\n );\n }\n};\n\n/**\n * [ LOOKUP TYPES ]\n * -------------------------------\n * Single 1;\n * Multiple 2;\n * Alternate 3;\n * Ligature 4;\n * Context 5;\n * ChainingContext 6;\n * ExtensionSubstitution 7;\n * ReverseChainingContext 8;\n * -------------------------------\n *\n */\n\n/**\n * @typedef FQuery\n * @type Object\n * @param {string} tag feature tag\n * @param {string} script feature script\n * @param {ContextParams} contextParams context params\n */\n\n/**\n * Lookup a feature using a query parameters\n * @param {FQuery} query feature query\n */\nFeatureQuery.prototype.lookupFeature = function (query) {\n var contextParams = query.contextParams;\n var currentIndex = contextParams.index;\n var feature = this.getFeature({\n tag: query.tag, script: query.script\n });\n if (!feature) { return new Error(\n \"font '\" + (this.font.names.fullName.en) + \"' \" +\n \"doesn't support feature '\" + (query.tag) + \"' \" +\n \"for script '\" + (query.script) + \"'.\"\n ); }\n var lookups = this.getFeatureLookups(feature);\n var substitutions = [].concat(contextParams.context);\n for (var l = 0; l < lookups.length; l++) {\n var lookupTable = lookups[l];\n var subtables = this.getLookupSubtables(lookupTable);\n for (var s = 0; s < subtables.length; s++) {\n var subtable = subtables[s];\n var substType = this.getSubstitutionType(lookupTable, subtable);\n var lookup = this.getLookupMethod(lookupTable, subtable);\n var substitution = (void 0);\n switch (substType) {\n case '11':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 11, tag: query.tag, substitution: substitution\n }));\n }\n break;\n case '12':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 12, tag: query.tag, substitution: substitution\n }));\n }\n break;\n case '63':\n substitution = lookup(contextParams);\n if (Array.isArray(substitution) && substitution.length) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 63, tag: query.tag, substitution: substitution\n }));\n }\n break;\n case '41':\n substitution = lookup(contextParams);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 41, tag: query.tag, substitution: substitution\n }));\n }\n break;\n case '21':\n substitution = lookup(contextParams.current);\n if (substitution) {\n substitutions.splice(currentIndex, 1, new SubstitutionAction({\n id: 21, tag: query.tag, substitution: substitution\n }));\n }\n break;\n }\n contextParams = new ContextParams(substitutions, currentIndex);\n if (Array.isArray(substitution) && !substitution.length) { continue; }\n substitution = null;\n }\n }\n return substitutions.length ? substitutions : null;\n};\n\n/**\n * Checks if a font supports a specific features\n * @param {FQuery} query feature query object\n */\nFeatureQuery.prototype.supports = function (query) {\n if (!query.script) { return false; }\n this.getScriptFeatures(query.script);\n var supportedScript = this.features.hasOwnProperty(query.script);\n if (!query.tag) { return supportedScript; }\n var supportedFeature = (\n this.features[query.script].some(function (feature) { return feature.tag === query.tag; })\n );\n return supportedScript && supportedFeature;\n};\n\n/**\n * Get lookup table subtables\n * @param {any} lookupTable lookup table\n */\nFeatureQuery.prototype.getLookupSubtables = function (lookupTable) {\n return lookupTable.subtables || null;\n};\n\n/**\n * Get lookup table by index\n * @param {number} index lookup table index\n */\nFeatureQuery.prototype.getLookupByIndex = function (index) {\n var lookups = this.font.tables.gsub.lookups;\n return lookups[index] || null;\n};\n\n/**\n * Get lookup tables for a feature\n * @param {string} feature\n */\nFeatureQuery.prototype.getFeatureLookups = function (feature) {\n // TODO: memoize\n return feature.lookupListIndexes.map(this.getLookupByIndex.bind(this));\n};\n\n/**\n * Query a feature by it's properties\n * @param {any} query an object that describes the properties of a query\n */\nFeatureQuery.prototype.getFeature = function getFeature(query) {\n if (!this.font) { return { FAIL: \"No font was found\"}; }\n if (!this.features.hasOwnProperty(query.script)) {\n this.getScriptFeatures(query.script);\n }\n var scriptFeatures = this.features[query.script];\n if (!scriptFeatures) { return (\n { FAIL: (\"No feature for script \" + (query.script))}\n ); }\n if (!scriptFeatures.tags[query.tag]) { return null; }\n return this.features[query.script].tags[query.tag];\n};\n\n/**\n * Arabic word context checkers\n */\n\nfunction arabicWordStartCheck(contextParams) {\n var char = contextParams.current;\n var prevChar = contextParams.get(-1);\n return (\n // ? arabic first char\n (prevChar === null && isArabicChar(char)) ||\n // ? arabic char preceded with a non arabic char\n (!isArabicChar(prevChar) && isArabicChar(char))\n );\n}\n\nfunction arabicWordEndCheck(contextParams) {\n var nextChar = contextParams.get(1);\n return (\n // ? last arabic char\n (nextChar === null) ||\n // ? next char is not arabic\n (!isArabicChar(nextChar))\n );\n}\n\nvar arabicWordCheck = {\n startCheck: arabicWordStartCheck,\n endCheck: arabicWordEndCheck\n};\n\n/**\n * Arabic sentence context checkers\n */\n\nfunction arabicSentenceStartCheck(contextParams) {\n var char = contextParams.current;\n var prevChar = contextParams.get(-1);\n return (\n // ? an arabic char preceded with a non arabic char\n (isArabicChar(char) || isTashkeelArabicChar(char)) &&\n !isArabicChar(prevChar)\n );\n}\n\nfunction arabicSentenceEndCheck(contextParams) {\n var nextChar = contextParams.get(1);\n switch (true) {\n case nextChar === null:\n return true;\n case (!isArabicChar(nextChar) && !isTashkeelArabicChar(nextChar)):\n var nextIsWhitespace = isWhiteSpace(nextChar);\n if (!nextIsWhitespace) { return true; }\n if (nextIsWhitespace) {\n var arabicCharAhead = false;\n arabicCharAhead = (\n contextParams.lookahead.some(\n function (c) { return isArabicChar(c) || isTashkeelArabicChar(c); }\n )\n );\n if (!arabicCharAhead) { return true; }\n }\n break;\n default:\n return false;\n }\n}\n\nvar arabicSentenceCheck = {\n startCheck: arabicSentenceStartCheck,\n endCheck: arabicSentenceEndCheck\n};\n\n/**\n * Apply single substitution format 1\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction singleSubstitutionFormat1$1(action, tokens, index) {\n tokens[index].setState(action.tag, action.substitution);\n}\n\n/**\n * Apply single substitution format 2\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction singleSubstitutionFormat2$1(action, tokens, index) {\n tokens[index].setState(action.tag, action.substitution);\n}\n\n/**\n * Apply chaining context substitution format 3\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction chainingSubstitutionFormat3$1(action, tokens, index) {\n action.substitution.forEach(function (subst, offset) {\n var token = tokens[index + offset];\n token.setState(action.tag, subst);\n });\n}\n\n/**\n * Apply ligature substitution format 1\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction ligatureSubstitutionFormat1$1(action, tokens, index) {\n var token = tokens[index];\n token.setState(action.tag, action.substitution.ligGlyph);\n var compsCount = action.substitution.components.length;\n for (var i = 0; i < compsCount; i++) {\n token = tokens[index + i + 1];\n token.setState('deleted', true);\n }\n}\n\n/**\n * Supported substitutions\n */\nvar SUBSTITUTIONS = {\n 11: singleSubstitutionFormat1$1,\n 12: singleSubstitutionFormat2$1,\n 63: chainingSubstitutionFormat3$1,\n 41: ligatureSubstitutionFormat1$1\n};\n\n/**\n * Apply substitutions to a list of tokens\n * @param {Array} substitutions substitutions\n * @param {any} tokens a list of tokens\n * @param {number} index token index\n */\nfunction applySubstitution(action, tokens, index) {\n if (action instanceof SubstitutionAction && SUBSTITUTIONS[action.id]) {\n SUBSTITUTIONS[action.id](action, tokens, index);\n }\n}\n\n/**\n * Apply Arabic presentation forms to a range of tokens\n */\n\n/**\n * Check if a char can be connected to it's preceding char\n * @param {ContextParams} charContextParams context params of a char\n */\nfunction willConnectPrev(charContextParams) {\n var backtrack = [].concat(charContextParams.backtrack);\n for (var i = backtrack.length - 1; i >= 0; i--) {\n var prevChar = backtrack[i];\n var isolated = isIsolatedArabicChar(prevChar);\n var tashkeel = isTashkeelArabicChar(prevChar);\n if (!isolated && !tashkeel) { return true; }\n if (isolated) { return false; }\n }\n return false;\n}\n\n/**\n * Check if a char can be connected to it's proceeding char\n * @param {ContextParams} charContextParams context params of a char\n */\nfunction willConnectNext(charContextParams) {\n if (isIsolatedArabicChar(charContextParams.current)) { return false; }\n for (var i = 0; i < charContextParams.lookahead.length; i++) {\n var nextChar = charContextParams.lookahead[i];\n var tashkeel = isTashkeelArabicChar(nextChar);\n if (!tashkeel) { return true; }\n }\n return false;\n}\n\n/**\n * Apply arabic presentation forms to a list of tokens\n * @param {ContextRange} range a range of tokens\n */\nfunction arabicPresentationForms(range) {\n var this$1 = this;\n\n var script = 'arab';\n var tags = this.featuresTags[script];\n var tokens = this.tokenizer.getRangeTokens(range);\n if (tokens.length === 1) { return; }\n var contextParams = new ContextParams(\n tokens.map(function (token) { return token.getState('glyphIndex'); }\n ), 0);\n var charContextParams = new ContextParams(\n tokens.map(function (token) { return token.char; }\n ), 0);\n tokens.forEach(function (token, index) {\n if (isTashkeelArabicChar(token.char)) { return; }\n contextParams.setCurrentIndex(index);\n charContextParams.setCurrentIndex(index);\n var CONNECT = 0; // 2 bits 00 (10: can connect next) (01: can connect prev)\n if (willConnectPrev(charContextParams)) { CONNECT |= 1; }\n if (willConnectNext(charContextParams)) { CONNECT |= 2; }\n var tag;\n switch (CONNECT) {\n case 1: (tag = 'fina'); break;\n case 2: (tag = 'init'); break;\n case 3: (tag = 'medi'); break;\n }\n if (tags.indexOf(tag) === -1) { return; }\n var substitutions = this$1.query.lookupFeature({\n tag: tag, script: script, contextParams: contextParams\n });\n if (substitutions instanceof Error) { return console.info(substitutions.message); }\n substitutions.forEach(function (action, index) {\n if (action instanceof SubstitutionAction) {\n applySubstitution(action, tokens, index);\n contextParams.context[index] = action.substitution;\n }\n });\n });\n}\n\n/**\n * Apply Arabic required ligatures feature to a range of tokens\n */\n\n/**\n * Update context params\n * @param {any} tokens a list of tokens\n * @param {number} index current item index\n */\nfunction getContextParams(tokens, index) {\n var context = tokens.map(function (token) { return token.activeState.value; });\n return new ContextParams(context, index || 0);\n}\n\n/**\n * Apply Arabic required ligatures to a context range\n * @param {ContextRange} range a range of tokens\n */\nfunction arabicRequiredLigatures(range) {\n var this$1 = this;\n\n var script = 'arab';\n var tokens = this.tokenizer.getRangeTokens(range);\n var contextParams = getContextParams(tokens);\n contextParams.context.forEach(function (glyphIndex, index) {\n contextParams.setCurrentIndex(index);\n var substitutions = this$1.query.lookupFeature({\n tag: 'rlig', script: script, contextParams: contextParams\n });\n if (substitutions.length) {\n substitutions.forEach(\n function (action) { return applySubstitution(action, tokens, index); }\n );\n contextParams = getContextParams(tokens);\n }\n });\n}\n\n/**\n * Latin word context checkers\n */\n\nfunction latinWordStartCheck(contextParams) {\n var char = contextParams.current;\n var prevChar = contextParams.get(-1);\n return (\n // ? latin first char\n (prevChar === null && isLatinChar(char)) ||\n // ? latin char preceded with a non latin char\n (!isLatinChar(prevChar) && isLatinChar(char))\n );\n}\n\nfunction latinWordEndCheck(contextParams) {\n var nextChar = contextParams.get(1);\n return (\n // ? last latin char\n (nextChar === null) ||\n // ? next char is not latin\n (!isLatinChar(nextChar))\n );\n}\n\nvar latinWordCheck = {\n startCheck: latinWordStartCheck,\n endCheck: latinWordEndCheck\n};\n\n/**\n * Apply Latin ligature feature to a range of tokens\n */\n\n/**\n * Update context params\n * @param {any} tokens a list of tokens\n * @param {number} index current item index\n */\nfunction getContextParams$1(tokens, index) {\n var context = tokens.map(function (token) { return token.activeState.value; });\n return new ContextParams(context, index || 0);\n}\n\n/**\n * Apply Arabic required ligatures to a context range\n * @param {ContextRange} range a range of tokens\n */\nfunction latinLigature(range) {\n var this$1 = this;\n\n var script = 'latn';\n var tokens = this.tokenizer.getRangeTokens(range);\n var contextParams = getContextParams$1(tokens);\n contextParams.context.forEach(function (glyphIndex, index) {\n contextParams.setCurrentIndex(index);\n var substitutions = this$1.query.lookupFeature({\n tag: 'liga', script: script, contextParams: contextParams\n });\n if (substitutions.length) {\n substitutions.forEach(\n function (action) { return applySubstitution(action, tokens, index); }\n );\n contextParams = getContextParams$1(tokens);\n }\n });\n}\n\n/**\n * Infer bidirectional properties for a given text and apply\n * the corresponding layout rules.\n */\n\n/**\n * Create Bidi. features\n * @param {string} baseDir text base direction. value either 'ltr' or 'rtl'\n */\nfunction Bidi(baseDir) {\n this.baseDir = baseDir || 'ltr';\n this.tokenizer = new Tokenizer();\n this.featuresTags = {};\n}\n\n/**\n * Sets Bidi text\n * @param {string} text a text input\n */\nBidi.prototype.setText = function (text) {\n this.text = text;\n};\n\n/**\n * Store essential context checks:\n * arabic word check for applying gsub features\n * arabic sentence check for adjusting arabic layout\n */\nBidi.prototype.contextChecks = ({\n latinWordCheck: latinWordCheck,\n arabicWordCheck: arabicWordCheck,\n arabicSentenceCheck: arabicSentenceCheck\n});\n\n/**\n * Register arabic word check\n */\nfunction registerContextChecker(checkId) {\n var check = this.contextChecks[(checkId + \"Check\")];\n return this.tokenizer.registerContextChecker(\n checkId, check.startCheck, check.endCheck\n );\n}\n\n/**\n * Perform pre tokenization procedure then\n * tokenize text input\n */\nfunction tokenizeText() {\n registerContextChecker.call(this, 'latinWord');\n registerContextChecker.call(this, 'arabicWord');\n registerContextChecker.call(this, 'arabicSentence');\n return this.tokenizer.tokenize(this.text);\n}\n\n/**\n * Reverse arabic sentence layout\n * TODO: check base dir before applying adjustments - priority low\n */\nfunction reverseArabicSentences() {\n var this$1 = this;\n\n var ranges = this.tokenizer.getContextRanges('arabicSentence');\n ranges.forEach(function (range) {\n var rangeTokens = this$1.tokenizer.getRangeTokens(range);\n this$1.tokenizer.replaceRange(\n range.startIndex,\n range.endOffset,\n rangeTokens.reverse()\n );\n });\n}\n\n/**\n * Register supported features tags\n * @param {script} script script tag\n * @param {Array} tags features tags list\n */\nBidi.prototype.registerFeatures = function (script, tags) {\n var this$1 = this;\n\n var supportedTags = tags.filter(\n function (tag) { return this$1.query.supports({script: script, tag: tag}); }\n );\n if (!this.featuresTags.hasOwnProperty(script)) {\n this.featuresTags[script] = supportedTags;\n } else {\n this.featuresTags[script] =\n this.featuresTags[script].concat(supportedTags);\n }\n};\n\n/**\n * Apply GSUB features\n * @param {Array} tagsList a list of features tags\n * @param {string} script a script tag\n * @param {Font} font opentype font instance\n */\nBidi.prototype.applyFeatures = function (font, features) {\n if (!font) { throw new Error(\n 'No valid font was provided to apply features'\n ); }\n if (!this.query) { this.query = new FeatureQuery(font); }\n for (var f = 0; f < features.length; f++) {\n var feature = features[f];\n if (!this.query.supports({script: feature.script})) { continue; }\n this.registerFeatures(feature.script, feature.tags);\n }\n};\n\n/**\n * Register a state modifier\n * @param {string} modifierId state modifier id\n * @param {function} condition a predicate function that returns true or false\n * @param {function} modifier a modifier function to set token state\n */\nBidi.prototype.registerModifier = function (modifierId, condition, modifier) {\n this.tokenizer.registerModifier(modifierId, condition, modifier);\n};\n\n/**\n * Check if 'glyphIndex' is registered\n */\nfunction checkGlyphIndexStatus() {\n if (this.tokenizer.registeredModifiers.indexOf('glyphIndex') === -1) {\n throw new Error(\n 'glyphIndex modifier is required to apply ' +\n 'arabic presentation features.'\n );\n }\n}\n\n/**\n * Apply arabic presentation forms features\n */\nfunction applyArabicPresentationForms() {\n var this$1 = this;\n\n var script = 'arab';\n if (!this.featuresTags.hasOwnProperty(script)) { return; }\n checkGlyphIndexStatus.call(this);\n var ranges = this.tokenizer.getContextRanges('arabicWord');\n ranges.forEach(function (range) {\n arabicPresentationForms.call(this$1, range);\n });\n}\n\n/**\n * Apply required arabic ligatures\n */\nfunction applyArabicRequireLigatures() {\n var this$1 = this;\n\n var script = 'arab';\n if (!this.featuresTags.hasOwnProperty(script)) { return; }\n var tags = this.featuresTags[script];\n if (tags.indexOf('rlig') === -1) { return; }\n checkGlyphIndexStatus.call(this);\n var ranges = this.tokenizer.getContextRanges('arabicWord');\n ranges.forEach(function (range) {\n arabicRequiredLigatures.call(this$1, range);\n });\n}\n\n/**\n * Apply required arabic ligatures\n */\nfunction applyLatinLigatures() {\n var this$1 = this;\n\n var script = 'latn';\n if (!this.featuresTags.hasOwnProperty(script)) { return; }\n var tags = this.featuresTags[script];\n if (tags.indexOf('liga') === -1) { return; }\n checkGlyphIndexStatus.call(this);\n var ranges = this.tokenizer.getContextRanges('latinWord');\n ranges.forEach(function (range) {\n latinLigature.call(this$1, range);\n });\n}\n\n/**\n * Check if a context is registered\n * @param {string} contextId context id\n */\nBidi.prototype.checkContextReady = function (contextId) {\n return !!this.tokenizer.getContext(contextId);\n};\n\n/**\n * Apply features to registered contexts\n */\nBidi.prototype.applyFeaturesToContexts = function () {\n if (this.checkContextReady('arabicWord')) {\n applyArabicPresentationForms.call(this);\n applyArabicRequireLigatures.call(this);\n }\n if (this.checkContextReady('latinWord')) {\n applyLatinLigatures.call(this);\n }\n if (this.checkContextReady('arabicSentence')) {\n reverseArabicSentences.call(this);\n }\n};\n\n/**\n * process text input\n * @param {string} text an input text\n */\nBidi.prototype.processText = function(text) {\n if (!this.text || this.text !== text) {\n this.setText(text);\n tokenizeText.call(this);\n this.applyFeaturesToContexts();\n }\n};\n\n/**\n * Process a string of text to identify and adjust\n * bidirectional text entities.\n * @param {string} text input text\n */\nBidi.prototype.getBidiText = function (text) {\n this.processText(text);\n return this.tokenizer.getText();\n};\n\n/**\n * Get the current state index of each token\n * @param {text} text an input text\n */\nBidi.prototype.getTextGlyphs = function (text) {\n this.processText(text);\n var indexes = [];\n for (var i = 0; i < this.tokenizer.tokens.length; i++) {\n var token = this.tokenizer.tokens[i];\n if (token.state.deleted) { continue; }\n var index = token.activeState.value;\n indexes.push(Array.isArray(index) ? index[0] : index);\n }\n return indexes;\n};\n\n// The Font object\n\n/**\n * @typedef FontOptions\n * @type Object\n * @property {Boolean} empty - whether to create a new empty font\n * @property {string} familyName\n * @property {string} styleName\n * @property {string=} fullName\n * @property {string=} postScriptName\n * @property {string=} designer\n * @property {string=} designerURL\n * @property {string=} manufacturer\n * @property {string=} manufacturerURL\n * @property {string=} license\n * @property {string=} licenseURL\n * @property {string=} version\n * @property {string=} description\n * @property {string=} copyright\n * @property {string=} trademark\n * @property {Number} unitsPerEm\n * @property {Number} ascender\n * @property {Number} descender\n * @property {Number} createdTimestamp\n * @property {string=} weightClass\n * @property {string=} widthClass\n * @property {string=} fsSelection\n */\n\n/**\n * A Font represents a loaded OpenType font file.\n * It contains a set of glyphs and methods to draw text on a drawing context,\n * or to get a path representing the text.\n * @exports opentype.Font\n * @class\n * @param {FontOptions}\n * @constructor\n */\nfunction Font(options) {\n options = options || {};\n options.tables = options.tables || {};\n\n if (!options.empty) {\n // Check that we've provided the minimum set of names.\n checkArgument(options.familyName, 'When creating a new Font object, familyName is required.');\n checkArgument(options.styleName, 'When creating a new Font object, styleName is required.');\n checkArgument(options.unitsPerEm, 'When creating a new Font object, unitsPerEm is required.');\n checkArgument(options.ascender, 'When creating a new Font object, ascender is required.');\n checkArgument(options.descender <= 0, 'When creating a new Font object, negative descender value is required.');\n\n // OS X will complain if the names are empty, so we put a single space everywhere by default.\n this.names = {\n fontFamily: {en: options.familyName || ' '},\n fontSubfamily: {en: options.styleName || ' '},\n fullName: {en: options.fullName || options.familyName + ' ' + options.styleName},\n // postScriptName may not contain any whitespace\n postScriptName: {en: options.postScriptName || (options.familyName + options.styleName).replace(/\\s/g, '')},\n designer: {en: options.designer || ' '},\n designerURL: {en: options.designerURL || ' '},\n manufacturer: {en: options.manufacturer || ' '},\n manufacturerURL: {en: options.manufacturerURL || ' '},\n license: {en: options.license || ' '},\n licenseURL: {en: options.licenseURL || ' '},\n version: {en: options.version || 'Version 0.1'},\n description: {en: options.description || ' '},\n copyright: {en: options.copyright || ' '},\n trademark: {en: options.trademark || ' '}\n };\n this.unitsPerEm = options.unitsPerEm || 1000;\n this.ascender = options.ascender;\n this.descender = options.descender;\n this.createdTimestamp = options.createdTimestamp;\n this.tables = Object.assign(options.tables, {\n os2: Object.assign({\n usWeightClass: options.weightClass || this.usWeightClasses.MEDIUM,\n usWidthClass: options.widthClass || this.usWidthClasses.MEDIUM,\n fsSelection: options.fsSelection || this.fsSelectionValues.REGULAR,\n }, options.tables.os2)\n });\n }\n\n this.supported = true; // Deprecated: parseBuffer will throw an error if font is not supported.\n this.glyphs = new glyphset.GlyphSet(this, options.glyphs || []);\n this.encoding = new DefaultEncoding(this);\n this.position = new Position(this);\n this.substitution = new Substitution(this);\n this.tables = this.tables || {};\n\n // needed for low memory mode only.\n this._push = null;\n this._hmtxTableData = {};\n\n Object.defineProperty(this, 'hinting', {\n get: function() {\n if (this._hinting) { return this._hinting; }\n if (this.outlinesFormat === 'truetype') {\n return (this._hinting = new Hinting(this));\n }\n }\n });\n}\n\n/**\n * Check if the font has a glyph for the given character.\n * @param {string}\n * @return {Boolean}\n */\nFont.prototype.hasChar = function(c) {\n return this.encoding.charToGlyphIndex(c) !== null;\n};\n\n/**\n * Convert the given character to a single glyph index.\n * Note that this function assumes that there is a one-to-one mapping between\n * the given character and a glyph; for complex scripts this might not be the case.\n * @param {string}\n * @return {Number}\n */\nFont.prototype.charToGlyphIndex = function(s) {\n return this.encoding.charToGlyphIndex(s);\n};\n\n/**\n * Convert the given character to a single Glyph object.\n * Note that this function assumes that there is a one-to-one mapping between\n * the given character and a glyph; for complex scripts this might not be the case.\n * @param {string}\n * @return {opentype.Glyph}\n */\nFont.prototype.charToGlyph = function(c) {\n var glyphIndex = this.charToGlyphIndex(c);\n var glyph = this.glyphs.get(glyphIndex);\n if (!glyph) {\n // .notdef\n glyph = this.glyphs.get(0);\n }\n\n return glyph;\n};\n\n/**\n * Update features\n * @param {any} options features options\n */\nFont.prototype.updateFeatures = function (options) {\n // TODO: update all features options not only 'latn'.\n return this.defaultRenderOptions.features.map(function (feature) {\n if (feature.script === 'latn') {\n return {\n script: 'latn',\n tags: feature.tags.filter(function (tag) { return options[tag]; })\n };\n } else {\n return feature;\n }\n });\n};\n\n/**\n * Convert the given text to a list of Glyph objects.\n * Note that there is no strict one-to-one mapping between characters and\n * glyphs, so the list of returned glyphs can be larger or smaller than the\n * length of the given string.\n * @param {string}\n * @param {GlyphRenderOptions} [options]\n * @return {opentype.Glyph[]}\n */\nFont.prototype.stringToGlyphs = function(s, options) {\n var this$1 = this;\n\n\n var bidi = new Bidi();\n\n // Create and register 'glyphIndex' state modifier\n var charToGlyphIndexMod = function (token) { return this$1.charToGlyphIndex(token.char); };\n bidi.registerModifier('glyphIndex', null, charToGlyphIndexMod);\n\n // roll-back to default features\n var features = options ?\n this.updateFeatures(options.features) :\n this.defaultRenderOptions.features;\n\n bidi.applyFeatures(this, features);\n\n var indexes = bidi.getTextGlyphs(s);\n\n var length = indexes.length;\n\n // convert glyph indexes to glyph objects\n var glyphs = new Array(length);\n var notdef = this.glyphs.get(0);\n for (var i = 0; i < length; i += 1) {\n glyphs[i] = this.glyphs.get(indexes[i]) || notdef;\n }\n return glyphs;\n};\n\n/**\n * @param {string}\n * @return {Number}\n */\nFont.prototype.nameToGlyphIndex = function(name) {\n return this.glyphNames.nameToGlyphIndex(name);\n};\n\n/**\n * @param {string}\n * @return {opentype.Glyph}\n */\nFont.prototype.nameToGlyph = function(name) {\n var glyphIndex = this.nameToGlyphIndex(name);\n var glyph = this.glyphs.get(glyphIndex);\n if (!glyph) {\n // .notdef\n glyph = this.glyphs.get(0);\n }\n\n return glyph;\n};\n\n/**\n * @param {Number}\n * @return {String}\n */\nFont.prototype.glyphIndexToName = function(gid) {\n if (!this.glyphNames.glyphIndexToName) {\n return '';\n }\n\n return this.glyphNames.glyphIndexToName(gid);\n};\n\n/**\n * Retrieve the value of the kerning pair between the left glyph (or its index)\n * and the right glyph (or its index). If no kerning pair is found, return 0.\n * The kerning value gets added to the advance width when calculating the spacing\n * between glyphs.\n * For GPOS kerning, this method uses the default script and language, which covers\n * most use cases. To have greater control, use font.position.getKerningValue .\n * @param {opentype.Glyph} leftGlyph\n * @param {opentype.Glyph} rightGlyph\n * @return {Number}\n */\nFont.prototype.getKerningValue = function(leftGlyph, rightGlyph) {\n leftGlyph = leftGlyph.index || leftGlyph;\n rightGlyph = rightGlyph.index || rightGlyph;\n var gposKerning = this.position.defaultKerningTables;\n if (gposKerning) {\n return this.position.getKerningValue(gposKerning, leftGlyph, rightGlyph);\n }\n // \"kern\" table\n return this.kerningPairs[leftGlyph + ',' + rightGlyph] || 0;\n};\n\n/**\n * @typedef GlyphRenderOptions\n * @type Object\n * @property {string} [script] - script used to determine which features to apply. By default, 'DFLT' or 'latn' is used.\n * See https://www.microsoft.com/typography/otspec/scripttags.htm\n * @property {string} [language='dflt'] - language system used to determine which features to apply.\n * See https://www.microsoft.com/typography/developers/opentype/languagetags.aspx\n * @property {boolean} [kerning=true] - whether to include kerning values\n * @property {object} [features] - OpenType Layout feature tags. Used to enable or disable the features of the given script/language system.\n * See https://www.microsoft.com/typography/otspec/featuretags.htm\n */\nFont.prototype.defaultRenderOptions = {\n kerning: true,\n features: [\n /**\n * these 4 features are required to render Arabic text properly\n * and shouldn't be turned off when rendering arabic text.\n */\n { script: 'arab', tags: ['init', 'medi', 'fina', 'rlig'] },\n { script: 'latn', tags: ['liga', 'rlig'] }\n ]\n};\n\n/**\n * Helper function that invokes the given callback for each glyph in the given text.\n * The callback gets `(glyph, x, y, fontSize, options)`.* @param {string} text\n * @param {string} text - The text to apply.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @param {Function} callback\n */\nFont.prototype.forEachGlyph = function(text, x, y, fontSize, options, callback) {\n x = x !== undefined ? x : 0;\n y = y !== undefined ? y : 0;\n fontSize = fontSize !== undefined ? fontSize : 72;\n options = Object.assign({}, this.defaultRenderOptions, options);\n var fontScale = 1 / this.unitsPerEm * fontSize;\n var glyphs = this.stringToGlyphs(text, options);\n var kerningLookups;\n if (options.kerning) {\n var script = options.script || this.position.getDefaultScriptName();\n kerningLookups = this.position.getKerningTables(script, options.language);\n }\n for (var i = 0; i < glyphs.length; i += 1) {\n var glyph = glyphs[i];\n callback.call(this, glyph, x, y, fontSize, options);\n if (glyph.advanceWidth) {\n x += glyph.advanceWidth * fontScale;\n }\n\n if (options.kerning && i < glyphs.length - 1) {\n // We should apply position adjustment lookups in a more generic way.\n // Here we only use the xAdvance value.\n var kerningValue = kerningLookups ?\n this.position.getKerningValue(kerningLookups, glyph.index, glyphs[i + 1].index) :\n this.getKerningValue(glyph, glyphs[i + 1]);\n x += kerningValue * fontScale;\n }\n\n if (options.letterSpacing) {\n x += options.letterSpacing * fontSize;\n } else if (options.tracking) {\n x += (options.tracking / 1000) * fontSize;\n }\n }\n return x;\n};\n\n/**\n * Create a Path object that represents the given text.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return {opentype.Path}\n */\nFont.prototype.getPath = function(text, x, y, fontSize, options) {\n var fullPath = new Path();\n this.forEachGlyph(text, x, y, fontSize, options, function(glyph, gX, gY, gFontSize) {\n var glyphPath = glyph.getPath(gX, gY, gFontSize, options, this);\n fullPath.extend(glyphPath);\n });\n return fullPath;\n};\n\n/**\n * Create an array of Path objects that represent the glyphs of a given text.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return {opentype.Path[]}\n */\nFont.prototype.getPaths = function(text, x, y, fontSize, options) {\n var glyphPaths = [];\n this.forEachGlyph(text, x, y, fontSize, options, function(glyph, gX, gY, gFontSize) {\n var glyphPath = glyph.getPath(gX, gY, gFontSize, options, this);\n glyphPaths.push(glyphPath);\n });\n\n return glyphPaths;\n};\n\n/**\n * Returns the advance width of a text.\n *\n * This is something different than Path.getBoundingBox() as for example a\n * suffixed whitespace increases the advanceWidth but not the bounding box\n * or an overhanging letter like a calligraphic 'f' might have a quite larger\n * bounding box than its advance width.\n *\n * This corresponds to canvas2dContext.measureText(text).width\n *\n * @param {string} text - The text to create.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n * @return advance width\n */\nFont.prototype.getAdvanceWidth = function(text, fontSize, options) {\n return this.forEachGlyph(text, 0, 0, fontSize, options, function() {});\n};\n\n/**\n * Draw the text on the given drawing context.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context, like Canvas.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n */\nFont.prototype.draw = function(ctx, text, x, y, fontSize, options) {\n this.getPath(text, x, y, fontSize, options).draw(ctx);\n};\n\n/**\n * Draw the points of all glyphs in the text.\n * On-curve points will be drawn in blue, off-curve points will be drawn in red.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context, like Canvas.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n */\nFont.prototype.drawPoints = function(ctx, text, x, y, fontSize, options) {\n this.forEachGlyph(text, x, y, fontSize, options, function(glyph, gX, gY, gFontSize) {\n glyph.drawPoints(ctx, gX, gY, gFontSize);\n });\n};\n\n/**\n * Draw lines indicating important font measurements for all glyphs in the text.\n * Black lines indicate the origin of the coordinate system (point 0,0).\n * Blue lines indicate the glyph bounding box.\n * Green line indicates the advance width of the glyph.\n * @param {CanvasRenderingContext2D} ctx - A 2D drawing context, like Canvas.\n * @param {string} text - The text to create.\n * @param {number} [x=0] - Horizontal position of the beginning of the text.\n * @param {number} [y=0] - Vertical position of the *baseline* of the text.\n * @param {number} [fontSize=72] - Font size in pixels. We scale the glyph units by `1 / unitsPerEm * fontSize`.\n * @param {GlyphRenderOptions=} options\n */\nFont.prototype.drawMetrics = function(ctx, text, x, y, fontSize, options) {\n this.forEachGlyph(text, x, y, fontSize, options, function(glyph, gX, gY, gFontSize) {\n glyph.drawMetrics(ctx, gX, gY, gFontSize);\n });\n};\n\n/**\n * @param {string}\n * @return {string}\n */\nFont.prototype.getEnglishName = function(name) {\n var translations = this.names[name];\n if (translations) {\n return translations.en;\n }\n};\n\n/**\n * Validate\n */\nFont.prototype.validate = function() {\n var _this = this;\n\n function assert(predicate, message) {\n }\n\n function assertNamePresent(name) {\n var englishName = _this.getEnglishName(name);\n assert(englishName && englishName.trim().length > 0);\n }\n\n // Identification information\n assertNamePresent('fontFamily');\n assertNamePresent('weightName');\n assertNamePresent('manufacturer');\n assertNamePresent('copyright');\n assertNamePresent('version');\n\n // Dimension information\n assert(this.unitsPerEm > 0);\n};\n\n/**\n * Convert the font object to a SFNT data structure.\n * This structure contains all the necessary tables and metadata to create a binary OTF file.\n * @return {opentype.Table}\n */\nFont.prototype.toTables = function() {\n return sfnt.fontToTable(this);\n};\n/**\n * @deprecated Font.toBuffer is deprecated. Use Font.toArrayBuffer instead.\n */\nFont.prototype.toBuffer = function() {\n console.warn('Font.toBuffer is deprecated. Use Font.toArrayBuffer instead.');\n return this.toArrayBuffer();\n};\n/**\n * Converts a `opentype.Font` into an `ArrayBuffer`\n * @return {ArrayBuffer}\n */\nFont.prototype.toArrayBuffer = function() {\n var sfntTable = this.toTables();\n var bytes = sfntTable.encode();\n var buffer = new ArrayBuffer(bytes.length);\n var intArray = new Uint8Array(buffer);\n for (var i = 0; i < bytes.length; i++) {\n intArray[i] = bytes[i];\n }\n\n return buffer;\n};\n\n/**\n * Initiate a download of the OpenType font.\n */\nFont.prototype.download = function(fileName) {\n var familyName = this.getEnglishName('fontFamily');\n var styleName = this.getEnglishName('fontSubfamily');\n fileName = fileName || familyName.replace(/\\s/g, '') + '-' + styleName + '.otf';\n var arrayBuffer = this.toArrayBuffer();\n\n if (isBrowser()) {\n window.URL = window.URL || window.webkitURL;\n\n if (window.URL) {\n var dataView = new DataView(arrayBuffer);\n var blob = new Blob([dataView], {type: 'font/opentype'});\n\n var link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = fileName;\n\n var event = document.createEvent('MouseEvents');\n event.initEvent('click', true, false);\n link.dispatchEvent(event);\n } else {\n console.warn('Font file could not be downloaded. Try using a different browser.');\n }\n } else {\n var fs = require('fs');\n var buffer = arrayBufferToNodeBuffer(arrayBuffer);\n fs.writeFileSync(fileName, buffer);\n }\n};\n/**\n * @private\n */\nFont.prototype.fsSelectionValues = {\n ITALIC: 0x001, //1\n UNDERSCORE: 0x002, //2\n NEGATIVE: 0x004, //4\n OUTLINED: 0x008, //8\n STRIKEOUT: 0x010, //16\n BOLD: 0x020, //32\n REGULAR: 0x040, //64\n USER_TYPO_METRICS: 0x080, //128\n WWS: 0x100, //256\n OBLIQUE: 0x200 //512\n};\n\n/**\n * @private\n */\nFont.prototype.usWidthClasses = {\n ULTRA_CONDENSED: 1,\n EXTRA_CONDENSED: 2,\n CONDENSED: 3,\n SEMI_CONDENSED: 4,\n MEDIUM: 5,\n SEMI_EXPANDED: 6,\n EXPANDED: 7,\n EXTRA_EXPANDED: 8,\n ULTRA_EXPANDED: 9\n};\n\n/**\n * @private\n */\nFont.prototype.usWeightClasses = {\n THIN: 100,\n EXTRA_LIGHT: 200,\n LIGHT: 300,\n NORMAL: 400,\n MEDIUM: 500,\n SEMI_BOLD: 600,\n BOLD: 700,\n EXTRA_BOLD: 800,\n BLACK: 900\n};\n\n// The `fvar` table stores font variation axes and instances.\n\nfunction addName(name, names) {\n var nameString = JSON.stringify(name);\n var nameID = 256;\n for (var nameKey in names) {\n var n = parseInt(nameKey);\n if (!n || n < 256) {\n continue;\n }\n\n if (JSON.stringify(names[nameKey]) === nameString) {\n return n;\n }\n\n if (nameID <= n) {\n nameID = n + 1;\n }\n }\n\n names[nameID] = name;\n return nameID;\n}\n\nfunction makeFvarAxis(n, axis, names) {\n var nameID = addName(axis.name, names);\n return [\n {name: 'tag_' + n, type: 'TAG', value: axis.tag},\n {name: 'minValue_' + n, type: 'FIXED', value: axis.minValue << 16},\n {name: 'defaultValue_' + n, type: 'FIXED', value: axis.defaultValue << 16},\n {name: 'maxValue_' + n, type: 'FIXED', value: axis.maxValue << 16},\n {name: 'flags_' + n, type: 'USHORT', value: 0},\n {name: 'nameID_' + n, type: 'USHORT', value: nameID}\n ];\n}\n\nfunction parseFvarAxis(data, start, names) {\n var axis = {};\n var p = new parse.Parser(data, start);\n axis.tag = p.parseTag();\n axis.minValue = p.parseFixed();\n axis.defaultValue = p.parseFixed();\n axis.maxValue = p.parseFixed();\n p.skip('uShort', 1); // reserved for flags; no values defined\n axis.name = names[p.parseUShort()] || {};\n return axis;\n}\n\nfunction makeFvarInstance(n, inst, axes, names) {\n var nameID = addName(inst.name, names);\n var fields = [\n {name: 'nameID_' + n, type: 'USHORT', value: nameID},\n {name: 'flags_' + n, type: 'USHORT', value: 0}\n ];\n\n for (var i = 0; i < axes.length; ++i) {\n var axisTag = axes[i].tag;\n fields.push({\n name: 'axis_' + n + ' ' + axisTag,\n type: 'FIXED',\n value: inst.coordinates[axisTag] << 16\n });\n }\n\n return fields;\n}\n\nfunction parseFvarInstance(data, start, axes, names) {\n var inst = {};\n var p = new parse.Parser(data, start);\n inst.name = names[p.parseUShort()] || {};\n p.skip('uShort', 1); // reserved for flags; no values defined\n\n inst.coordinates = {};\n for (var i = 0; i < axes.length; ++i) {\n inst.coordinates[axes[i].tag] = p.parseFixed();\n }\n\n return inst;\n}\n\nfunction makeFvarTable(fvar, names) {\n var result = new table.Table('fvar', [\n {name: 'version', type: 'ULONG', value: 0x10000},\n {name: 'offsetToData', type: 'USHORT', value: 0},\n {name: 'countSizePairs', type: 'USHORT', value: 2},\n {name: 'axisCount', type: 'USHORT', value: fvar.axes.length},\n {name: 'axisSize', type: 'USHORT', value: 20},\n {name: 'instanceCount', type: 'USHORT', value: fvar.instances.length},\n {name: 'instanceSize', type: 'USHORT', value: 4 + fvar.axes.length * 4}\n ]);\n result.offsetToData = result.sizeOf();\n\n for (var i = 0; i < fvar.axes.length; i++) {\n result.fields = result.fields.concat(makeFvarAxis(i, fvar.axes[i], names));\n }\n\n for (var j = 0; j < fvar.instances.length; j++) {\n result.fields = result.fields.concat(makeFvarInstance(j, fvar.instances[j], fvar.axes, names));\n }\n\n return result;\n}\n\nfunction parseFvarTable(data, start, names) {\n var p = new parse.Parser(data, start);\n var tableVersion = p.parseULong();\n check.argument(tableVersion === 0x00010000, 'Unsupported fvar table version.');\n var offsetToData = p.parseOffset16();\n // Skip countSizePairs.\n p.skip('uShort', 1);\n var axisCount = p.parseUShort();\n var axisSize = p.parseUShort();\n var instanceCount = p.parseUShort();\n var instanceSize = p.parseUShort();\n\n var axes = [];\n for (var i = 0; i < axisCount; i++) {\n axes.push(parseFvarAxis(data, start + offsetToData + i * axisSize, names));\n }\n\n var instances = [];\n var instanceStart = start + offsetToData + axisCount * axisSize;\n for (var j = 0; j < instanceCount; j++) {\n instances.push(parseFvarInstance(data, instanceStart + j * instanceSize, axes, names));\n }\n\n return {axes: axes, instances: instances};\n}\n\nvar fvar = { make: makeFvarTable, parse: parseFvarTable };\n\n// The `GPOS` table contains kerning pairs, among other things.\n\nvar subtableParsers$1 = new Array(10); // subtableParsers[0] is unused\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-1-single-adjustment-positioning-subtable\n// this = Parser instance\nsubtableParsers$1[1] = function parseLookup1() {\n var start = this.offset + this.relativeOffset;\n var posformat = this.parseUShort();\n if (posformat === 1) {\n return {\n posFormat: 1,\n coverage: this.parsePointer(Parser.coverage),\n value: this.parseValueRecord()\n };\n } else if (posformat === 2) {\n return {\n posFormat: 2,\n coverage: this.parsePointer(Parser.coverage),\n values: this.parseValueRecordList()\n };\n }\n check.assert(false, '0x' + start.toString(16) + ': GPOS lookup type 1 format must be 1 or 2.');\n};\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos#lookup-type-2-pair-adjustment-positioning-subtable\nsubtableParsers$1[2] = function parseLookup2() {\n var start = this.offset + this.relativeOffset;\n var posFormat = this.parseUShort();\n check.assert(posFormat === 1 || posFormat === 2, '0x' + start.toString(16) + ': GPOS lookup type 2 format must be 1 or 2.');\n var coverage = this.parsePointer(Parser.coverage);\n var valueFormat1 = this.parseUShort();\n var valueFormat2 = this.parseUShort();\n if (posFormat === 1) {\n // Adjustments for Glyph Pairs\n return {\n posFormat: posFormat,\n coverage: coverage,\n valueFormat1: valueFormat1,\n valueFormat2: valueFormat2,\n pairSets: this.parseList(Parser.pointer(Parser.list(function() {\n return { // pairValueRecord\n secondGlyph: this.parseUShort(),\n value1: this.parseValueRecord(valueFormat1),\n value2: this.parseValueRecord(valueFormat2)\n };\n })))\n };\n } else if (posFormat === 2) {\n var classDef1 = this.parsePointer(Parser.classDef);\n var classDef2 = this.parsePointer(Parser.classDef);\n var class1Count = this.parseUShort();\n var class2Count = this.parseUShort();\n return {\n // Class Pair Adjustment\n posFormat: posFormat,\n coverage: coverage,\n valueFormat1: valueFormat1,\n valueFormat2: valueFormat2,\n classDef1: classDef1,\n classDef2: classDef2,\n class1Count: class1Count,\n class2Count: class2Count,\n classRecords: this.parseList(class1Count, Parser.list(class2Count, function() {\n return {\n value1: this.parseValueRecord(valueFormat1),\n value2: this.parseValueRecord(valueFormat2)\n };\n }))\n };\n }\n};\n\nsubtableParsers$1[3] = function parseLookup3() { return { error: 'GPOS Lookup 3 not supported' }; };\nsubtableParsers$1[4] = function parseLookup4() { return { error: 'GPOS Lookup 4 not supported' }; };\nsubtableParsers$1[5] = function parseLookup5() { return { error: 'GPOS Lookup 5 not supported' }; };\nsubtableParsers$1[6] = function parseLookup6() { return { error: 'GPOS Lookup 6 not supported' }; };\nsubtableParsers$1[7] = function parseLookup7() { return { error: 'GPOS Lookup 7 not supported' }; };\nsubtableParsers$1[8] = function parseLookup8() { return { error: 'GPOS Lookup 8 not supported' }; };\nsubtableParsers$1[9] = function parseLookup9() { return { error: 'GPOS Lookup 9 not supported' }; };\n\n// https://docs.microsoft.com/en-us/typography/opentype/spec/gpos\nfunction parseGposTable(data, start) {\n start = start || 0;\n var p = new Parser(data, start);\n var tableVersion = p.parseVersion(1);\n check.argument(tableVersion === 1 || tableVersion === 1.1, 'Unsupported GPOS table version ' + tableVersion);\n\n if (tableVersion === 1) {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers$1)\n };\n } else {\n return {\n version: tableVersion,\n scripts: p.parseScriptList(),\n features: p.parseFeatureList(),\n lookups: p.parseLookupList(subtableParsers$1),\n variations: p.parseFeatureVariationsList()\n };\n }\n\n}\n\n// GPOS Writing //////////////////////////////////////////////\n// NOT SUPPORTED\nvar subtableMakers$1 = new Array(10);\n\nfunction makeGposTable(gpos) {\n return new table.Table('GPOS', [\n {name: 'version', type: 'ULONG', value: 0x10000},\n {name: 'scripts', type: 'TABLE', value: new table.ScriptList(gpos.scripts)},\n {name: 'features', type: 'TABLE', value: new table.FeatureList(gpos.features)},\n {name: 'lookups', type: 'TABLE', value: new table.LookupList(gpos.lookups, subtableMakers$1)}\n ]);\n}\n\nvar gpos = { parse: parseGposTable, make: makeGposTable };\n\n// The `kern` table contains kerning pairs.\n\nfunction parseWindowsKernTable(p) {\n var pairs = {};\n // Skip nTables.\n p.skip('uShort');\n var subtableVersion = p.parseUShort();\n check.argument(subtableVersion === 0, 'Unsupported kern sub-table version.');\n // Skip subtableLength, subtableCoverage\n p.skip('uShort', 2);\n var nPairs = p.parseUShort();\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n for (var i = 0; i < nPairs; i += 1) {\n var leftIndex = p.parseUShort();\n var rightIndex = p.parseUShort();\n var value = p.parseShort();\n pairs[leftIndex + ',' + rightIndex] = value;\n }\n return pairs;\n}\n\nfunction parseMacKernTable(p) {\n var pairs = {};\n // The Mac kern table stores the version as a fixed (32 bits) but we only loaded the first 16 bits.\n // Skip the rest.\n p.skip('uShort');\n var nTables = p.parseULong();\n //check.argument(nTables === 1, 'Only 1 subtable is supported (got ' + nTables + ').');\n if (nTables > 1) {\n console.warn('Only the first kern subtable is supported.');\n }\n p.skip('uLong');\n var coverage = p.parseUShort();\n var subtableVersion = coverage & 0xFF;\n p.skip('uShort');\n if (subtableVersion === 0) {\n var nPairs = p.parseUShort();\n // Skip searchRange, entrySelector, rangeShift.\n p.skip('uShort', 3);\n for (var i = 0; i < nPairs; i += 1) {\n var leftIndex = p.parseUShort();\n var rightIndex = p.parseUShort();\n var value = p.parseShort();\n pairs[leftIndex + ',' + rightIndex] = value;\n }\n }\n return pairs;\n}\n\n// Parse the `kern` table which contains kerning pairs.\nfunction parseKernTable(data, start) {\n var p = new parse.Parser(data, start);\n var tableVersion = p.parseUShort();\n if (tableVersion === 0) {\n return parseWindowsKernTable(p);\n } else if (tableVersion === 1) {\n return parseMacKernTable(p);\n } else {\n throw new Error('Unsupported kern table version (' + tableVersion + ').');\n }\n}\n\nvar kern = { parse: parseKernTable };\n\n// The `loca` table stores the offsets to the locations of the glyphs in the font.\n\n// Parse the `loca` table. This table stores the offsets to the locations of the glyphs in the font,\n// relative to the beginning of the glyphData table.\n// The number of glyphs stored in the `loca` table is specified in the `maxp` table (under numGlyphs)\n// The loca table has two versions: a short version where offsets are stored as uShorts, and a long\n// version where offsets are stored as uLongs. The `head` table specifies which version to use\n// (under indexToLocFormat).\nfunction parseLocaTable(data, start, numGlyphs, shortVersion) {\n var p = new parse.Parser(data, start);\n var parseFn = shortVersion ? p.parseUShort : p.parseULong;\n // There is an extra entry after the last index element to compute the length of the last glyph.\n // That's why we use numGlyphs + 1.\n var glyphOffsets = [];\n for (var i = 0; i < numGlyphs + 1; i += 1) {\n var glyphOffset = parseFn.call(p);\n if (shortVersion) {\n // The short table version stores the actual offset divided by 2.\n glyphOffset *= 2;\n }\n\n glyphOffsets.push(glyphOffset);\n }\n\n return glyphOffsets;\n}\n\nvar loca = { parse: parseLocaTable };\n\n// opentype.js\n\n/**\n * The opentype library.\n * @namespace opentype\n */\n\n// File loaders /////////////////////////////////////////////////////////\n/**\n * Loads a font from a file. The callback throws an error message as the first parameter if it fails\n * and the font as an ArrayBuffer in the second parameter if it succeeds.\n * @param {string} path - The path of the file\n * @param {Function} callback - The function to call when the font load completes\n */\nfunction loadFromFile(path, callback) {\n var fs = require('fs');\n fs.readFile(path, function(err, buffer) {\n if (err) {\n return callback(err.message);\n }\n\n callback(null, nodeBufferToArrayBuffer(buffer));\n });\n}\n/**\n * Loads a font from a URL. The callback throws an error message as the first parameter if it fails\n * and the font as an ArrayBuffer in the second parameter if it succeeds.\n * @param {string} url - The URL of the font file.\n * @param {Function} callback - The function to call when the font load completes\n */\nfunction loadFromUrl(url, callback) {\n var request = new XMLHttpRequest();\n request.open('get', url, true);\n request.responseType = 'arraybuffer';\n request.onload = function() {\n if (request.response) {\n return callback(null, request.response);\n } else {\n return callback('Font could not be loaded: ' + request.statusText);\n }\n };\n\n request.onerror = function () {\n callback('Font could not be loaded');\n };\n\n request.send();\n}\n\n// Table Directory Entries //////////////////////////////////////////////\n/**\n * Parses OpenType table entries.\n * @param {DataView}\n * @param {Number}\n * @return {Object[]}\n */\nfunction parseOpenTypeTableEntries(data, numTables) {\n var tableEntries = [];\n var p = 12;\n for (var i = 0; i < numTables; i += 1) {\n var tag = parse.getTag(data, p);\n var checksum = parse.getULong(data, p + 4);\n var offset = parse.getULong(data, p + 8);\n var length = parse.getULong(data, p + 12);\n tableEntries.push({tag: tag, checksum: checksum, offset: offset, length: length, compression: false});\n p += 16;\n }\n\n return tableEntries;\n}\n\n/**\n * Parses WOFF table entries.\n * @param {DataView}\n * @param {Number}\n * @return {Object[]}\n */\nfunction parseWOFFTableEntries(data, numTables) {\n var tableEntries = [];\n var p = 44; // offset to the first table directory entry.\n for (var i = 0; i < numTables; i += 1) {\n var tag = parse.getTag(data, p);\n var offset = parse.getULong(data, p + 4);\n var compLength = parse.getULong(data, p + 8);\n var origLength = parse.getULong(data, p + 12);\n var compression = (void 0);\n if (compLength < origLength) {\n compression = 'WOFF';\n } else {\n compression = false;\n }\n\n tableEntries.push({tag: tag, offset: offset, compression: compression,\n compressedLength: compLength, length: origLength});\n p += 20;\n }\n\n return tableEntries;\n}\n\n/**\n * @typedef TableData\n * @type Object\n * @property {DataView} data - The DataView\n * @property {number} offset - The data offset.\n */\n\n/**\n * @param {DataView}\n * @param {Object}\n * @return {TableData}\n */\nfunction uncompressTable(data, tableEntry) {\n if (tableEntry.compression === 'WOFF') {\n var inBuffer = new Uint8Array(data.buffer, tableEntry.offset + 2, tableEntry.compressedLength - 2);\n var outBuffer = new Uint8Array(tableEntry.length);\n tinyInflate(inBuffer, outBuffer);\n if (outBuffer.byteLength !== tableEntry.length) {\n throw new Error('Decompression error: ' + tableEntry.tag + ' decompressed length doesn\\'t match recorded length');\n }\n\n var view = new DataView(outBuffer.buffer, 0);\n return {data: view, offset: 0};\n } else {\n return {data: data, offset: tableEntry.offset};\n }\n}\n\n// Public API ///////////////////////////////////////////////////////////\n\n/**\n * Parse the OpenType file data (as an ArrayBuffer) and return a Font object.\n * Throws an error if the font could not be parsed.\n * @param {ArrayBuffer}\n * @param {Object} opt - options for parsing\n * @return {opentype.Font}\n */\nfunction parseBuffer(buffer, opt) {\n opt = (opt === undefined || opt === null) ? {} : opt;\n\n var indexToLocFormat;\n var ltagTable;\n\n // Since the constructor can also be called to create new fonts from scratch, we indicate this\n // should be an empty font that we'll fill with our own data.\n var font = new Font({empty: true});\n\n // OpenType fonts use big endian byte ordering.\n // We can't rely on typed array view types, because they operate with the endianness of the host computer.\n // Instead we use DataViews where we can specify endianness.\n var data = new DataView(buffer, 0);\n var numTables;\n var tableEntries = [];\n var signature = parse.getTag(data, 0);\n if (signature === String.fromCharCode(0, 1, 0, 0) || signature === 'true' || signature === 'typ1') {\n font.outlinesFormat = 'truetype';\n numTables = parse.getUShort(data, 4);\n tableEntries = parseOpenTypeTableEntries(data, numTables);\n } else if (signature === 'OTTO') {\n font.outlinesFormat = 'cff';\n numTables = parse.getUShort(data, 4);\n tableEntries = parseOpenTypeTableEntries(data, numTables);\n } else if (signature === 'wOFF') {\n var flavor = parse.getTag(data, 4);\n if (flavor === String.fromCharCode(0, 1, 0, 0)) {\n font.outlinesFormat = 'truetype';\n } else if (flavor === 'OTTO') {\n font.outlinesFormat = 'cff';\n } else {\n throw new Error('Unsupported OpenType flavor ' + signature);\n }\n\n numTables = parse.getUShort(data, 12);\n tableEntries = parseWOFFTableEntries(data, numTables);\n } else {\n throw new Error('Unsupported OpenType signature ' + signature);\n }\n\n var cffTableEntry;\n var fvarTableEntry;\n var glyfTableEntry;\n var gposTableEntry;\n var gsubTableEntry;\n var hmtxTableEntry;\n var kernTableEntry;\n var locaTableEntry;\n var nameTableEntry;\n var metaTableEntry;\n var p;\n\n for (var i = 0; i < numTables; i += 1) {\n var tableEntry = tableEntries[i];\n var table = (void 0);\n switch (tableEntry.tag) {\n case 'cmap':\n table = uncompressTable(data, tableEntry);\n font.tables.cmap = cmap.parse(table.data, table.offset);\n font.encoding = new CmapEncoding(font.tables.cmap);\n break;\n case 'cvt ' :\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.cvt = p.parseShortList(tableEntry.length / 2);\n break;\n case 'fvar':\n fvarTableEntry = tableEntry;\n break;\n case 'fpgm' :\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.fpgm = p.parseByteList(tableEntry.length);\n break;\n case 'head':\n table = uncompressTable(data, tableEntry);\n font.tables.head = head.parse(table.data, table.offset);\n font.unitsPerEm = font.tables.head.unitsPerEm;\n indexToLocFormat = font.tables.head.indexToLocFormat;\n break;\n case 'hhea':\n table = uncompressTable(data, tableEntry);\n font.tables.hhea = hhea.parse(table.data, table.offset);\n font.ascender = font.tables.hhea.ascender;\n font.descender = font.tables.hhea.descender;\n font.numberOfHMetrics = font.tables.hhea.numberOfHMetrics;\n break;\n case 'hmtx':\n hmtxTableEntry = tableEntry;\n break;\n case 'ltag':\n table = uncompressTable(data, tableEntry);\n ltagTable = ltag.parse(table.data, table.offset);\n break;\n case 'maxp':\n table = uncompressTable(data, tableEntry);\n font.tables.maxp = maxp.parse(table.data, table.offset);\n font.numGlyphs = font.tables.maxp.numGlyphs;\n break;\n case 'name':\n nameTableEntry = tableEntry;\n break;\n case 'OS/2':\n table = uncompressTable(data, tableEntry);\n font.tables.os2 = os2.parse(table.data, table.offset);\n break;\n case 'post':\n table = uncompressTable(data, tableEntry);\n font.tables.post = post.parse(table.data, table.offset);\n font.glyphNames = new GlyphNames(font.tables.post);\n break;\n case 'prep' :\n table = uncompressTable(data, tableEntry);\n p = new parse.Parser(table.data, table.offset);\n font.tables.prep = p.parseByteList(tableEntry.length);\n break;\n case 'glyf':\n glyfTableEntry = tableEntry;\n break;\n case 'loca':\n locaTableEntry = tableEntry;\n break;\n case 'CFF ':\n cffTableEntry = tableEntry;\n break;\n case 'kern':\n kernTableEntry = tableEntry;\n break;\n case 'GPOS':\n gposTableEntry = tableEntry;\n break;\n case 'GSUB':\n gsubTableEntry = tableEntry;\n break;\n case 'meta':\n metaTableEntry = tableEntry;\n break;\n }\n }\n\n var nameTable = uncompressTable(data, nameTableEntry);\n font.tables.name = _name.parse(nameTable.data, nameTable.offset, ltagTable);\n font.names = font.tables.name;\n\n if (glyfTableEntry && locaTableEntry) {\n var shortVersion = indexToLocFormat === 0;\n var locaTable = uncompressTable(data, locaTableEntry);\n var locaOffsets = loca.parse(locaTable.data, locaTable.offset, font.numGlyphs, shortVersion);\n var glyfTable = uncompressTable(data, glyfTableEntry);\n font.glyphs = glyf.parse(glyfTable.data, glyfTable.offset, locaOffsets, font, opt);\n } else if (cffTableEntry) {\n var cffTable = uncompressTable(data, cffTableEntry);\n cff.parse(cffTable.data, cffTable.offset, font, opt);\n } else {\n throw new Error('Font doesn\\'t contain TrueType or CFF outlines.');\n }\n\n var hmtxTable = uncompressTable(data, hmtxTableEntry);\n hmtx.parse(font, hmtxTable.data, hmtxTable.offset, font.numberOfHMetrics, font.numGlyphs, font.glyphs, opt);\n addGlyphNames(font, opt);\n\n if (kernTableEntry) {\n var kernTable = uncompressTable(data, kernTableEntry);\n font.kerningPairs = kern.parse(kernTable.data, kernTable.offset);\n } else {\n font.kerningPairs = {};\n }\n\n if (gposTableEntry) {\n var gposTable = uncompressTable(data, gposTableEntry);\n font.tables.gpos = gpos.parse(gposTable.data, gposTable.offset);\n font.position.init();\n }\n\n if (gsubTableEntry) {\n var gsubTable = uncompressTable(data, gsubTableEntry);\n font.tables.gsub = gsub.parse(gsubTable.data, gsubTable.offset);\n font.tables.gsub.features.forEach(function (f) {\n // Match `ss01` to `ss20`\n if (f.tag.match(/ss(?:0[1-9]|1\\d|20)/)) {\n var ref = f.feature.featureParamsTable;\n var uiNameId = ref.uiNameId;\n f.feature.uiName = font.tables.name[uiNameId];\n }\n // Match `cv01` to `cv99`\n else if (f.tag.match(/cv(?:0[1-9]|[1-9]\\d)/)) {\n var ref$1 = f.feature.featureParamsTable;\n var featUiLabelNameId = ref$1.featUiLabelNameId;\n f.feature.featUiLabelName = font.tables.name[featUiLabelNameId];\n }\n });\n }\n\n if (fvarTableEntry) {\n var fvarTable = uncompressTable(data, fvarTableEntry);\n font.tables.fvar = fvar.parse(fvarTable.data, fvarTable.offset, font.names);\n }\n\n if (metaTableEntry) {\n var metaTable = uncompressTable(data, metaTableEntry);\n font.tables.meta = meta.parse(metaTable.data, metaTable.offset);\n font.metas = font.tables.meta;\n }\n\n return font;\n}\n\n/**\n * Asynchronously load the font from a URL or a filesystem. When done, call the callback\n * with two arguments `(err, font)`. The `err` will be null on success,\n * the `font` is a Font object.\n * We use the node.js callback convention so that\n * opentype.js can integrate with frameworks like async.js.\n * @alias opentype.load\n * @param {string} url - The URL of the font to load.\n * @param {Function} callback - The callback.\n */\nfunction load(url, callback, opt) {\n var isNode = typeof window === 'undefined';\n var loadFn = isNode ? loadFromFile : loadFromUrl;\n\n return new Promise(function (resolve, reject) {\n loadFn(url, function(err, arrayBuffer) {\n if (err) {\n if (callback) {\n return callback(err);\n } else {\n reject(err);\n }\n }\n var font;\n try {\n font = parseBuffer(arrayBuffer, opt);\n } catch (e) {\n if (callback) {\n return callback(e, null);\n } else {\n reject(e);\n }\n }\n if (callback) {\n return callback(null, font);\n } else {\n resolve(font);\n }\n });\n });\n}\n\n/**\n * Synchronously load the font from a URL or file.\n * When done, returns the font object or throws an error.\n * @alias opentype.loadSync\n * @param {string} url - The URL of the font to load.\n * @param {Object} opt - opt.lowMemory\n * @return {opentype.Font}\n */\nfunction loadSync(url, opt) {\n var fs = require('fs');\n var buffer = fs.readFileSync(url);\n return parseBuffer(nodeBufferToArrayBuffer(buffer), opt);\n}\n\nvar opentype = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tFont: Font,\n\tGlyph: Glyph,\n\tPath: Path,\n\tBoundingBox: BoundingBox,\n\t_parse: parse,\n\tparse: parseBuffer,\n\tload: load,\n\tloadSync: loadSync\n});\n\nexport default opentype;\nexport { BoundingBox, Font, Glyph, Path, parse as _parse, load, loadSync, parseBuffer as parse };\n//# sourceMappingURL=opentype.module.js.map\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"sourceRoot":""} \ No newline at end of file diff --git a/404.html b/404.html index fb3f2db..d0cc5e9 100644 --- a/404.html +++ b/404.html @@ -2,7 +2,7 @@ - Single Page Apps for GitHub Pages + Bulletproof Font Tester
\ No newline at end of file + }(window.location))
\ No newline at end of file diff --git a/js/app.3d31cc32.js b/js/app.3d31cc32.js deleted file mode 100644 index 5e3b70c..0000000 --- a/js/app.3d31cc32.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(e){function t(t){for(var a,s,o=t[0],l=t[1],c=t[2],g=0,p=[];g0?this.value.map((function(t){return t[e.keys.label]||t})).join(this.multipleDelimiter):"":this.value?this.value[this.keys.label]||this.value:""},hasDisplayText:function(){return Boolean(this.displayText.length)},hasNoResults:function(){return!this.loading&&0!==this.query.length&&(this.disableFilter?this.noResults:0===this.filteredOptions.length)},submittedValue:function(){var e=this;if(this.name&&this.value)return Array.isArray(this.value)?this.value.map((function(t){return t[e.keys.value]||t})).join(","):this.value[this.keys.value]||this.value}},watch:{filteredOptions:function(){this.highlightedIndex=0,Object(H["a"])(this.$refs.optionsList)},query:function(){this.$emit("query-change",this.query)},isActive:function(e){e?this.addExternalClickListener(this.$el,this.onExternalClick):this.removeExternalClickListener()}},created:function(){this.value&&""!==this.value||this.setValue(null)},mounted:function(){this.refreshScrollbar()}},Object(T["a"])(a,"watch",{options:function(e,t){e.length!==t.length&&this.refreshScrollbar()}}),Object(T["a"])(a,"methods",{refreshScrollbar:function(){this.openDropdown(),this.closeDropdown()},setValue:function(e){e=e||(this.multiple?[]:""),this.$emit("input",e),this.$emit("change",e)},setCustomValue:function(e){e?this.setValue(e):this.selectOption(this.options[0],0,{autoClose:!1})},highlightOption:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{autoScroll:!0};if(this.highlightedIndex!==e&&0!==this.$refs.options.length){var n=0,a=this.$refs.options.length-1;ea&&(e=n),this.$refs.options[e]||(e=0),this.highlightedIndex=e,t.autoScroll&&this.scrollOptionIntoView(this.$refs.options[e].$el)}},selectHighlighted:function(e){var t=this.$refs.options;t[this.highlightedIndex]&&(e&&e.preventDefault(),this.selectOption(t[this.highlightedIndex].option,this.highlightedIndex))},selectOption:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{autoClose:!0},a=this.multiple&&!this.isOptionSelected(e);this.multiple?this.updateOption(e,{select:a}):(this.setValue(e),this.selectedIndex=t),this.$emit("select",e,{selected:!this.multiple||a}),this.highlightedIndex=t,this.multiple||this.clearQuery(),!this.multiple&&n.autoClose&&this.closeDropdown()},isOptionSelected:function(e){return this.multiple?Object(D["b"])(this.value,e)>-1:Object(D["a"])(this.value,e)},updateOption:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{select:!0},n=[],a=!1,i=Object(D["b"])(this.value,e);t.select&&i<0&&(n=this.value.concat(e),a=!0),!t.select&&i>-1&&(n=this.value.slice(0,i).concat(this.value.slice(i+1)),a=!0),a&&this.setValue(n)},defaultFilter:function(e,t){var n=e[this.keys.label]||e;return"string"===typeof n&&(n=n.toLowerCase()),$()(t.toLowerCase(),n)},clearSelection:function(){this.setValue(null)},clearQuery:function(){this.query=""},focus:function(){this.isAutocomplete&&this.$refs.input?this.$refs.input.focus():this.$refs.label.focus()},toggleDropdown:function(){this.$refs.dropdown.toggle()},openDropdown:function(){this.disabled||this.$refs.dropdown.open()},closeDropdown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{blurAfterClose:!1};this.$refs.dropdown.close(),this.isTouched||(this.isTouched=!0,this.$emit("touch")),e.blurAfterClose?this.isActive=!1:this.focus()},onFocus:function(e){this.isAutocomplete&&(this.$refs.input&&this.$refs.input.focus(),this.isFocused=!0),this.isActive||(this.isActive=!0,this.$emit("focus",e))},onBlur:function(e){this.isActive=!1,this.$emit("blur",e),this.$refs.dropdown.isOpen()&&this.closeDropdown({blurAfterClose:!0})},onOpen:function(){var e=this;this.isActive=!0,this.$refs.dropdown.$el.style.width=this.$refs.label.getBoundingClientRect().width+"px",this.$nextTick((function(){e.scrollOptionIntoView(e.$refs.optionsList.querySelector(".is-selected"))})),this.$emit("dropdown-open")},onReveal:function(){var e=this;this.autocomplete?this.$nextTick((function(){e.focus()})):this.$refs[this.hasSearch?"searchInput":"dropdownContent"].focus()},onClose:function(){this.highlightedIndex=this.multiple?-1:this.selectedIndex,this.$emit("dropdown-close")},onExternalClick:function(){this.$refs.dropdown.isOpen()?this.closeDropdown({blurAfterClose:!0}):this.isActive&&(this.isActive=!1)},scrollOptionIntoView:function(e){Object(H["b"])(e,{container:this.$refs.optionsList,marginTop:180})},reset:function(){this.setValue(JSON.parse(this.initialValue)),this.clearQuery(),this.resetTouched(),this.selectedIndex=-1,this.highlightedIndex=-1},resetTouched:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{touched:!1};this.isTouched=e.touched},onInputEnter:function(){this.$refs.dropdown.isOpen()&&this.$refs.options[this.highlightedIndex]?this.selectHighlighted():this.toggleDropdown()}}),Object(T["a"])(a,"components",{UiIcon:E["a"],UiPopover:P["a"],UiProgressCircular:B["a"],UiSelectOption:M["a"]}),Object(T["a"])(a,"mixins",[N["a"]]),a),V=U,R=(n("a01f"),Object(h["a"])(V,K,I,!1,null,null,null)),G=R.exports,W=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ui-tooltip"},[e._t("default")],2)},q=[],J=n("a5c9"),Z=n("1513"),Y={name:"ui-tooltip",props:{animation:{type:String,default:"fade"},appendToBody:{type:Boolean,default:!0},openDelay:{type:Number,default:0},openOn:{type:String,default:"mouseenter focus"},position:{type:String,default:"bottom"},trigger:{validator:function(e){return Z["a"].validate(e,'[UiTooltip]: Invalid prop: "trigger". Expected Element, VueComponent or CSS selector string.')}},zIndex:Number,interactive:{type:Boolean,default:!1}},mounted:function(){if(this.triggerEl=Z["a"].resolve(this.trigger,this.$el.parentElement),this.triggerEl){var e={animateFill:"fade"!==this.animation,animation:"none"===this.animation?"fade":this.animation,arrow:!1,content:this.$el,delay:[this.openDelay,0],distance:4,duration:"none"===this.animation?0:[250,200],ignoreAttributes:!0,lazy:!0,multiple:!0,placement:this.position,theme:"ui-tooltip",trigger:this.openOn.replace("hover","mouseenter"),zIndex:this.zIndex,popperOptions:{modifiers:{computeStyle:{gpuAcceleration:!(window.devicePixelRatio<1.5&&/Win/.test(navigator.platform))}}},interactive:this.interactive};this.appendToBody||(e.appendTo=this.triggerEl.parentElement),this.tip=Object(J["a"])(this.triggerEl,e)}else console.error("[UiTooltip]: Trigger element not found.")},beforeDestroy:function(){this.tip&&(this.tip.destroy(),this.tip=null)}},Q=Y,X=(n("b92e"),Object(h["a"])(Q,W,q,!1,null,null,null)),ee=X.exports,te=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:{callback:e.visibilityChanged,once:!0},expression:"{\n callback: visibilityChanged,\n once: true,\n }"}],staticClass:"fit-me"},[n("div",{ref:"fitted",staticClass:"fitted",style:"font-size: "+e.fontSize+"px;"},[e._v("\n "+e._s(e.localText)+"\n ")])])},ne=[],ae=(n("96cf"),n("3b8d")),ie={props:{text:String,cutText:Number},data:function(){return{localText:this.text,fontSize:16}},methods:{visibilityChanged:function(){this.runFit()},fit:function(){var e=Object(ae["a"])(regeneratorRuntime.mark((function e(t){var n,a,i,r,s,o,l,c,u,g,p=this,h=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n=h.length>1&&void 0!==h[1]?h[1]:0,this.localText=this.text.slice(0,this.text.length-t),e.next=4,this.$nextTick();case 4:if(a=this.$refs.fitted,i=this.$el,r=i.clientWidth,s=a.clientWidth,s&&r){e.next=10;break}return e.abrupt("return");case 10:if(!(s===r&&n<5)){e.next=13;break}return setTimeout((function(){p.fit(0,n+1)}),100),e.abrupt("return");case 13:return o=r/s,l=parseFloat(getComputedStyle(a).fontSize),c=Math.round(l*o),this.fontSize=c,e.next=19,this.$nextTick();case 19:if(u=i.clientHeight,g=a.clientHeight,!(g/u<.69&&t22?e.slice(0,8)+"..."+e.slice(-10):e).replace(/\.(ttf|otf)$/,(function(e){return e.toUpperCase()}))}}},ce=le,ue=(n("9fee"),Object(h["a"])(ce,F,L,!1,null,null,null)),ge=ue.exports,pe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:"file-drop "+(this.visible?"":"hidden"),on:{dragenter:e.handleDragEnter,dragleave:e.handleDragLeave,dragover:e.handleDragOver,drop:e.handleDrop}})},he=[];function me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function de(e){for(var t=1;t-1&&(e.preventDefault(),console.log("handleBodyDragEnter"),this.showDrop())},preventScroll:function(){this.scrolledParent.scrollTop=this.scrolledParentTop,console.log("prevented scroll")},disableScroll:function(){this.scrolledParent.addEventListener("scroll",this.preventScroll),setTimeout(this.enableScroll,500)},enableScroll:function(){this.scrolledParent.removeEventListener("scroll",this.preventScroll)},toggleBodyScroll:function(e){this.scrolledParentTop=this.scrolledParent.scrollTop,e?this.enableScroll():this.disableScroll()}}},ve=fe,ye=(n("f717"),Object(h["a"])(ve,pe,he,!1,null,"5882b3e7",null)),Te=ye.exports,be=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"fireworks"},e._l(e.fireworks,(function(e){return n("Firework",{key:e.key,attrs:{position:e.position}})})),1)},Se=[];function ke(e,t,n){function a(e){var t=e.pageX,a=e.pageY;n({x:t,y:a})}e.addEventListener(t,a)}var xe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:"firework firework-"+e.$vnode.key,style:"font-family: "+e.font+";"},e._l(e.letterSoup,(function(t,a){return n("div",{key:a,class:"letter letter-"+a,style:"font-size: "+(3+a%6*.5)+"em"},[e._v(e._s(t))])})),0)},we=[],Ce=n("1209");function _e(e,t){for(var n=[],a=e.charCodeAt(0),i=t.charCodeAt(0);a<=i;++a)n.push(String.fromCharCode(a));return n}function Oe(){return[].concat(Object(w["a"])(_e("a","z")),Object(w["a"])(_e("A","Z")),Object(w["a"])(_e("0","9")))}var Pe={props:{font:{type:String,default:""},position:{type:Object,default:function(){return{x:700,y:300}}}},data:function(){return{letterSoup:Oe()}},mounted:function(){this.firework()},methods:{firework:function(){var e=this;this.$el.style.left=this.position.x+"px",this.$el.style.top=this.position.y+"px",this.$el.style.opacity=0;var t=1500,n=1800,a=Ce["a"].timeline({duration:n});a.add({targets:this.$el,scale:[{value:.1,duration:0},{value:1,duration:t}],opacity:[{value:.85,duration:200},{value:0,duration:n}],easing:"linear"},0),this.letterSoup.forEach((function(t,i){var r=".firework-".concat(e.$vnode.key," .letter-").concat(i);document.querySelector(r).style.transform="translate(-50%, -50%)";var s=2*Math.random()*Math.PI,o=100*(1+Math.random()),l=Math.cos(s)*o+"vw",c=Math.sin(s)*o+"vw";a.add({targets:r,translateX:"+=".concat(l),translateY:"+=".concat(c),duration:n,easing:"easeInSine",delay:300*Math.random()},0)}))}}},je=Pe,Ae=(n("3d3d"),Object(h["a"])(je,xe,we,!1,null,"237c7d63",null)),Fe=Ae.exports,Le={components:{Firework:Fe},props:{font:{type:String,default:""},disable:{type:Boolean,default:!0}},data:function(){return{fireworks:[],position:{x:0,y:0},keyCount:0}},mounted:function(){var e=this;ke(document,"dragover",(function(t){return e.position=t})),this.$on("event",this.add)},methods:{add:function(){this.fireworks.push({position:this.position,key:this.keyCount++})}}},Ke=Le,Ie=Object(h["a"])(Ke,be,Se,!1,null,null,null),Ee=Ie.exports,Be=n("6c59"),Me=n.n(Be),Ne=(n("4f7f"),n("a8db")),De=n("d225"),He=n("b0b4"),ze=n("bf45"),$e=n.n(ze);function Ue(e){var t=Ve.find((function(t){return t.tag.test(e)}));return t?e.replace(t.tag,t.name):e}var Ve=[{tag:/aalt/,name:"Access All Alternates"},{tag:/abvf/,name:"Above-base Forms"},{tag:/abvm/,name:"Above-base Mark Positioning"},{tag:/abvs/,name:"Above-base Substitutions"},{tag:/afrc/,name:"Alternative Fractions"},{tag:/akhn/,name:"Akhands"},{tag:/blwf/,name:"Below-base Forms"},{tag:/blwm/,name:"Below-base Mark Positioning"},{tag:/blws/,name:"Below-base Substitutions"},{tag:/calt/,name:"Contextual Alternates"},{tag:/case/,name:"Case-Sensitive Forms"},{tag:/ccmp/,name:"Glyph Composition / Decomposition"},{tag:/cfar/,name:"Conjunct Form After Ro"},{tag:/cjct/,name:"Conjunct Forms"},{tag:/clig/,name:"Contextual Ligatures"},{tag:/cpct/,name:"Centered CJK Punctuation"},{tag:/cpsp/,name:"Capital Spacing"},{tag:/cswh/,name:"Contextual Swash"},{tag:/curs/,name:"Cursive Positioning"},{tag:/cv(\d{2})/,name:"Character Variants $1"},{tag:/c2pc/,name:"Petite Capitals From Capitals"},{tag:/c2sc/,name:"Small Capitals From Capitals"},{tag:/dist/,name:"Distances"},{tag:/dlig/,name:"Discretionary Ligatures"},{tag:/dnom/,name:"Denominators"},{tag:/dtls/,name:"Dotless Forms"},{tag:/expt/,name:"Expert Forms"},{tag:/falt/,name:"Final Glyph on Line Alternates"},{tag:/fin2/,name:"Terminal Forms #2"},{tag:/fin3/,name:"Terminal Forms #3"},{tag:/fina/,name:"Terminal Forms"},{tag:/flac/,name:"Flattened accent forms"},{tag:/frac/,name:"Fractions"},{tag:/fwid/,name:"Full Widths"},{tag:/half/,name:"Half Forms"},{tag:/haln/,name:"Halant Forms"},{tag:/halt/,name:"Alternate Half Widths"},{tag:/hist/,name:"Historical Forms"},{tag:/hkna/,name:"Horizontal Kana Alternates"},{tag:/hlig/,name:"Historical Ligatures"},{tag:/hngl/,name:"Hangul"},{tag:/hojo/,name:"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms)"},{tag:/hwid/,name:"Half Widths"},{tag:/init/,name:"Initial Forms"},{tag:/isol/,name:"Isolated Forms"},{tag:/ital/,name:"Italics"},{tag:/jalt/,name:"Justification Alternates"},{tag:/jp78/,name:"JIS78 Forms"},{tag:/jp83/,name:"JIS83 Forms"},{tag:/jp90/,name:"JIS90 Forms"},{tag:/jp04/,name:"JIS2004 Forms"},{tag:/kern/,name:"Kerning"},{tag:/lfbd/,name:"Left Bounds"},{tag:/liga/,name:"Standard Ligatures"},{tag:/ljmo/,name:"Leading Jamo Forms"},{tag:/lnum/,name:"Lining Figures"},{tag:/locl/,name:"Localized Forms"},{tag:/ltra/,name:"Left-to-right alternates"},{tag:/ltrm/,name:"Left-to-right mirrored forms"},{tag:/mark/,name:"Mark Positioning"},{tag:/med2/,name:"Medial Forms #2"},{tag:/medi/,name:"Medial Forms"},{tag:/mgrk/,name:"Mathematical Greek"},{tag:/mkmk/,name:"Mark to Mark Positioning"},{tag:/mset/,name:"Mark Positioning via Substitution"},{tag:/nalt/,name:"Alternate Annotation Forms"},{tag:/nlck/,name:"NLC Kanji Forms"},{tag:/nukt/,name:"Nukta Forms"},{tag:/numr/,name:"Numerators"},{tag:/onum/,name:"Oldstyle Figures"},{tag:/opbd/,name:"Optical Bounds"},{tag:/ordn/,name:"Ordinals"},{tag:/ornm/,name:"Ornaments"},{tag:/palt/,name:"Proportional Alternate Widths"},{tag:/pcap/,name:"Petite Capitals"},{tag:/pkna/,name:"Proportional Kana"},{tag:/pnum/,name:"Proportional Figures"},{tag:/pref/,name:"Pre-Base Forms"},{tag:/pres/,name:"Pre-base Substitutions"},{tag:/pstf/,name:"Post-base Forms"},{tag:/psts/,name:"Post-base Substitutions"},{tag:/pwid/,name:"Proportional Widths"},{tag:/qwid/,name:"Quarter Widths"},{tag:/rand/,name:"Randomize"},{tag:/rclt/,name:"Required Contextual Alternates"},{tag:/rkrf/,name:"Rakar Forms"},{tag:/rlig/,name:"Required Ligatures"},{tag:/rphf/,name:"Reph Forms"},{tag:/rtbd/,name:"Right Bounds"},{tag:/rtla/,name:"Right-to-left alternates"},{tag:/rtlm/,name:"Right-to-left mirrored forms"},{tag:/ruby/,name:"Ruby Notation Forms"},{tag:/rvrn/,name:"Required Variation Alternates"},{tag:/salt/,name:"Stylistic Alternates"},{tag:/sinf/,name:"Scientific Inferiors"},{tag:/size/,name:"Optical size"},{tag:/smcp/,name:"Small Capitals"},{tag:/smpl/,name:"Simplified Forms"},{tag:/ss01/,name:"Stylistic Set 1"},{tag:/ss02/,name:"Stylistic Set 2"},{tag:/ss03/,name:"Stylistic Set 3"},{tag:/ss04/,name:"Stylistic Set 4"},{tag:/ss05/,name:"Stylistic Set 5"},{tag:/ss06/,name:"Stylistic Set 6"},{tag:/ss07/,name:"Stylistic Set 7"},{tag:/ss08/,name:"Stylistic Set 8"},{tag:/ss09/,name:"Stylistic Set 9"},{tag:/ss10/,name:"Stylistic Set 10"},{tag:/ss11/,name:"Stylistic Set 11"},{tag:/ss12/,name:"Stylistic Set 12"},{tag:/ss13/,name:"Stylistic Set 13"},{tag:/ss14/,name:"Stylistic Set 14"},{tag:/ss15/,name:"Stylistic Set 15"},{tag:/ss16/,name:"Stylistic Set 16"},{tag:/ss17/,name:"Stylistic Set 17"},{tag:/ss18/,name:"Stylistic Set 18"},{tag:/ss19/,name:"Stylistic Set 19"},{tag:/ss20/,name:"Stylistic Set 20"},{tag:/ssty/,name:"Math script style alternates"},{tag:/stch/,name:"Stretching Glyph Decomposition"},{tag:/subs/,name:"Subscript"},{tag:/sups/,name:"Superscript"},{tag:/swsh/,name:"Swash"},{tag:/titl/,name:"Titling"},{tag:/tjmo/,name:"Trailing Jamo Forms"},{tag:/tnam/,name:"Traditional Name Forms"},{tag:/tnum/,name:"Tabular Figures"},{tag:/trad/,name:"Traditional Forms"},{tag:/twid/,name:"Third Widths"},{tag:/unic/,name:"Unicase"},{tag:/valt/,name:"Alternate Vertical Metrics"},{tag:/vatu/,name:"Vattu Variants"},{tag:/vert/,name:"Vertical Writing"},{tag:/vhal/,name:"Alternate Vertical Half Metrics"},{tag:/vjmo/,name:"Vowel Jamo Forms"},{tag:/vkna/,name:"Vertical Kana Alternates"},{tag:/vkrn/,name:"Vertical Kerning"},{tag:/vpal/,name:"Proportional Alternate Vertical Metrics"},{tag:/vrt2/,name:"Vertical Alternates and Rotation"},{tag:/vrtr/,name:"Vertical Alternates for Rotation"},{tag:/zero/,name:"Slashed Zero"}],Re=function(){function e(t,n,a){Object(De["a"])(this,e),this.version=0,this.url=n,this.fileName=a,this.font=t,this.processFont()}return Object(He["a"])(e,[{key:"serialize",value:function(){this.font;var e=Object(Ne["a"])(this,["font"]);return e}},{key:"processFont",value:function(){this.getNames(),this.getFeatures(),this.getGlyphs(),this.generateFontFace()}},{key:"getNames",value:function(){var e=this.font,t=e.names;this.family=t.preferredFamily&&t.preferredFamily.en||t.fontFamily.en,this.originalFamily=this.family,this.version&&(this.family+="-".concat(this.version)),this.style=t.preferredSubfamily&&t.preferredSubfamily.en||t.fontSubfamily.en,this.cssFamily=this.family+"-"+this.style,this.cssStyle=/(italic|oblique)/gi.test(this.style)?"italic":"normal",this.cssWeight=e.tables.os2.usWeightClass,this.displayName="".concat(this.originalFamily," ").concat(this.style," ").concat(this.version?"(".concat(this.version,")"):"")}},{key:"getGlyphs",value:function(){var e=this.font,t=Object.keys(e.glyphs.glyphs).map((function(t){return e.glyphs.glyphs[t]})).filter((function(e){return e.unicode})).map((function(e){return String.fromCharCode(e.unicode)}));this.characters=t}},{key:"getFeatures",value:function(){var e=this,t=this.font,n=t.names,a=t.tables.gpos||{},i=t.tables.gsub||{},r=new Set([].concat(Object(w["a"])(a.scripts||[]),Object(w["a"])(i.scripts||[])).flatMap((function(e){return e.script.langSysRecords})).map((function(e){return e.tag}))),s=Array.from(r).map((function(e){var t=$e.a.find((function(t){return t.opentypeTag===e})),n=t?t.name:e,a=t?t.htmlTag:e.toLowerCase();return{tag:e,name:n,htmlTag:a}})).sort((function(e,t){return e.name>t.name}));Object.getOwnPropertyNames(n).filter((function(e){return/\d+/.test(e)})).map((function(e){return n[e].en}));this.gposFeatures=[],(a.features||[]).forEach((function(t){var n=e.gposFeatures.find((function(e){return e.tag==t.tag}));if(!n){var a={tag:t.tag,name:Ue(t.tag)};e.gposFeatures.push(a)}})),this.gsubFeatures=[],(i.features||[]).forEach((function(t){var n=e.gsubFeatures.find((function(e){return e.tag==t.tag}));if(!n){var a={tag:t.tag,name:Ue(t.tag)};if("locl"==t.tag)a.languages=s,a.selectedLanguage="";else if(/ss\d\d/.test(t.tag)){var i=t.feature.uiName;a.uiName=i&&i["en"]}e.gsubFeatures.push(a)}})),this.variationAxes=[],t&&t.tables.fvar&&t.tables.fvar.axes&&(this.variationAxes=t&&t.tables.fvar&&t.tables.fvar.axes)}},{key:"generateFontFace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.family,n=e.style,a=e.weight;return this.fontFace='\n @font-face {\n font-family: "'.concat(t||this.cssFamily,'";\n // font-style: ').concat(n||this.cssStyle,"; // disabling helps work with variable fonts\n // font-weight: ").concat(a||this.cssWeight,";\n src: url('").concat(this.url,"');\n }\n "),this.fontFace}},{key:"bumpVersion",value:function(e){e?this.version=e:this.version++,this.processFont()}}]),e}(),Ge=(n("6b54"),function(e){if(e){var t=e,n=1;while(document.getElementById(t))t="".concat(e,"-").concat(n++);return t}var a="";do{var i=Math.random()*Math.pow(2,8),r=i.toString(16);a="b"+r}while(document.getElementById(a));return a}),We={add:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";t||(t=Ge());var n=document.createElement("style");if(n.appendChild(document.createTextNode(e)),document.head.appendChild(n),t){var a=document.getElementById(t);a&&a.parentNode.removeChild(a)}n.id=t},setProperty:function(e,t){document.documentElement.style.setProperty(e,t)}},qe=["AlegreyaSans/AlegreyaSans-Regular.ttf","AlegreyaSans/AlegreyaSans-Italic.ttf","AlegreyaSans/AlegreyaSans-Bold.ttf","AlegreyaSans/AlegreyaSans-BoldItalic.ttf","Rywalka-Regular.ttf","Graduate.ttf"];function Je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Ze(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=t.files,a=void 0===n?[]:n,i=t.urls,r=void 0===i?[]:i;a.map((function(e){return Ze({},e)}));if(r.length||(r=a.map((function(e){return URL.createObjectURL(e)}))),r.length){this.fontLoadingProgress=0,this.$store.dispatch("fontLoadStart");var s=a.length?a.map((function(e){return e.name})):r.map((function(e){return e.replace(/.*\//,"")})),o=[],l=[],c=new Me.a;c.onmessage=function(t){if(u++,t.data.font){var n=t.data,a=n.font,i=n.url,s=n.fileName,c=new Re(a,i,s),g=e.fonts.concat(o).filter((function(e){return e.originalFamily===c.originalFamily&&e.style===c.style})).map((function(e){return e.version}));if(g.length>0){var p=Math.max.apply(Math,Object(w["a"])(g));c.bumpVersion(p+1)}We.add(c.fontFace),o.push(c),e.fontLoadingProgress=100*u/r.length}else if(t.data.error){var h=t.data,m=h.error,d=h.fileName;l.push({error:m,fileName:d})}u===r.length&&(o.length&&(o.sort((function(e,t){return e.family.localeCompare(t.family)||e.cssWeight-t.cssWeight||t.cssStyle.localeCompare(e.cssStyle)})),e.fonts=Object.freeze([].concat(o,Object(w["a"])(e.fonts))),e.selectFont(o[0])),l.length&&e.printFontLoadingError(l),e.$store.dispatch("fontLoadEnd"))};var u=0;r.forEach((function(e,t){c.postMessage({url:e,fileName:s[t]})}))}},printFontLoadingError:function(e,t){if(e.length){var n=e.filter((function(e){return e.error}));this.errorMessage="".concat(n.length," out of ").concat(e.length," files were not loaded."),this.errorLogs=n.map((function(e){return"".concat(e.fileName,": ").concat(e.error)}))}else this.errorMessage="An unexpected error occurred.",this.errorLogs=[t];this.$refs.modal.open()},getFont:function(e){var t=this.fonts.findIndex((function(t){return t.displayName===e.displayName})),n=this.fonts[t],a=n.serialize();return{index:t,font:a}},selectFont:function(e){this.lastFont=this.selectedFont;var t=this.getFont(e),n=t.index,a=t.font;function i(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;at.cssWeight})),s=i(r,(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight===300}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight>=200}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight>0}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight===0}))[0],o=i(this.fonts.slice(),(function(t){return t.family===e.family&&t.cssWeight===e.cssWeight&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight=200&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight>0&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight===0&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight<=e.cssWeight}))[0];this.selectBoldFont(s),this.selectHeaderFont(s),this.selectItalicFont(o),this.selectBoldItalicFont(l)},selectBoldFont:function(e){var t=this.getFont(e),n=t.font;We.setProperty("--selectedBoldFontFamily",n.cssFamily),this.$store.commit("selectFont",{boldFont:n})},selectItalicFont:function(e){var t=this.getFont(e),n=t.font;We.setProperty("--selectedItalicFontFamily",n.cssFamily),this.$store.commit("selectFont",{italicFont:n})},selectBoldItalicFont:function(e){var t=this.getFont(e),n=t.font;We.setProperty("--selectedBoldItalicFontFamily",n.cssFamily),this.$store.commit("selectFont",{boldItalicFont:n})},selectHeaderFont:function(e){var t=this.getFont(e),n=t.font;We.setProperty("--selectedHeaderFontFamily",n.cssFamily),this.$store.commit("selectFont",{headerFont:n})},setLastFont:function(){this.selectFont(this.lastFont)},setPreviousFont:function(){this.selectFont(this.fonts[Math.max(0,this.selectedFontIndex-1)])},setNextFont:function(){this.selectFont(this.fonts[Math.min(this.fonts.length-1,this.selectedFontIndex+1)])}}},Qe=Ye,Xe=(n("3743"),Object(h["a"])(Qe,k,x,!1,null,null,null)),et=Xe.exports,tt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"editor-nav"},[n("div",{staticClass:"links-wrapper"},[n("transition-group",{staticClass:"links",attrs:{name:"fade"}},e._l(e.lessCustomTextIds,(function(e){return n("EditorNavLink",{key:e,attrs:{id:e}})})),1),n("transition-group",{staticClass:"links",attrs:{name:"fade"}},e._l(e.moreCustomTextIds,(function(e){return n("EditorNavLink",{key:e,attrs:{id:e}})})),1)],1),n("span",{key:"-1",staticClass:"nav-link new"},[n("router-link",{attrs:{to:"/custom/-1"}},[e._v("\n "+e._s(e.customTextIds.length>0?"+ New":"Editor")+"\n ")])],1)])},nt=[],at=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"editor-nav-link nav-link"},[n("router-link",{attrs:{to:"/custom/"+e.id}},[n("div",{staticClass:"middle-ellipsis"},[n("div",{staticClass:"start"},[e._v("Custom ")]),n("div",{staticClass:"end"},[e._v(e._s(e.id))])])]),n("UiIconButton",{staticStyle:{color:"white"},attrs:{color:"secondary"},on:{click:function(t){return e.removeCustomText(e.id)}}},[n("svg",{key:"1",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"currentColor",d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}}),n("path",{attrs:{d:"M0 0h24v24H0z",fill:"none"}})])])],1)},it=[],rt=n("6904"),st={components:{UiIconButton:rt["a"]},props:{id:Number},methods:{removeCustomText:function(e){this.$store.commit("removeCustomText",{id:e})}}},ot=st,lt=(n("774c"),Object(h["a"])(ot,at,it,!1,null,"00f8f142",null)),ct=lt.exports;function ut(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function gt(e){for(var t=1;t-1},left:function(){return this.sidesArray.indexOf("both")>-1||this.sidesArray.indexOf("left")>-1},right:function(){return this.sidesArray.indexOf("both")>-1||this.sidesArray.indexOf("right")>-1},rootStyle:function(){return"\n ".concat(this.left?"margin-left: ".concat(this.width-this.marginAdjust,"px;"):"","\n ").concat(this.right?"margin-right: ".concat(this.width-this.marginAdjust,"px;"):"","\n position: relative;\n ")},containerStyle:function(){return"\n height: 100%;\n display: flex;\n align-items: center;\n "},contentStyle:function(){return"\n ".concat(this.left?"margin-left: -".concat(this.marginAdjust,"px;"):"","\n ").concat(this.right?"margin-right: -".concat(this.marginAdjust,"px;"):"","\n // opacity: 0.9999;\n z-index: 1;\n ")}},mounted:function(){var e=getComputedStyle(this.$el);this.background=this.$el.style.background||e.backgroundImage+" "+e.backgroundColor},methods:{path:function(e){return this.top?"left"===e?"M0,1 C".concat(1*this.control,",1 ").concat(1*(1-this.control),",0 1,0 L1,1 0,1"):"M0,0 C".concat(1*this.control,",0 ").concat(1*(1-this.control),",1 1,1 L0,1 0,0"):"left"===e?"M0,0 C".concat(1*this.control,",0 ").concat(1*(1-this.control),",1 1,1 L1,0 0,0"):"M0,1 C".concat(1*this.control,",1 ").concat(1*(1-this.control),",0 1,0 L0,0 0,1")},sigmoidWrapperStyle:function(e){return"\n position: absolute;\n top: 0;\n bottom: 0;\n width: ".concat(this.width,"px;\n ").concat("left"===e?"\n right: 100%;\n ":"\n left: 100%;\n ","\n overflow: hidden;\n ")},sigmoidStyle:function(e){return"\n background: ".concat(this.background,";\n height: calc(100% + 1px) /* fixes gap left by imprecise clip-path */;\n width: calc(100% + 1px) /* fixes gap left by imprecise clip-path */;\n ").concat(this.top?"":"transform: translateY(-1px);","\n ").concat("\n clip-path: url('#".concat("left"===e?this.svgLeftId:this.svgRightId,"');\n "),"\n ")}}}),wt=xt,Ct=(n("f5b2"),Object(h["a"])(wt,St,kt,!1,null,"c62ebfe4",null)),_t=Ct.exports,Ot=["lettering","pangrams","sentences","gotchas","ABCs","glyphs","kerning","languages"],Pt=function(e){return e[0].toUpperCase()+e.substr(1)};function jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function At(e){for(var t=1;tthis.stickyShowDelta||e<100?(this.setSticky(!0),this.lastTop=e):t>this.stickyHideDelta&&(this.setSticky(!1),this.lastTop=e)},initStickyHeader:function(){var e=this,t=!1;this.scrolledParent.addEventListener("wheel",(function(){return t=!0})),this.scrolledParent.addEventListener("click",(function(){return e.lastTop=e.measureTop()})),setInterval((function(){t&&(e.hasScrolled(),t=!1)}),250)}}},Lt=Ft,Kt=(n("156c"),Object(h["a"])(Lt,v,y,!1,null,"50601dbf",null)),It=Kt.exports,Et=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"site-footer"},[n("div",{ref:"sentinel",staticClass:"sentinel"}),e._m(0),n("SigmoidContainer",{staticClass:"large light aside",attrs:{sides:"left bottom",width:"65",idSeed:"footer"}},[n("a",{staticClass:"github-link",attrs:{href:"https://github.com/hyvyys/Bulletproof",target:"_blank",rel:"noopener noreferrer"}},[n("div",[e._v("\n Bulletproof\n "),n("br"),e._v("\n on Github\n ")]),n("svg",{attrs:{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","svg-inline":"",height:"32",width:"32",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"currentColor",d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"}})])])])],1)},Bt=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"main u-dark"},[n("div",[n("div",[e._v("\n Sample texts from\n "),n("a",{attrs:{href:"https://github.com/hyvyys/language-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("\n Language-Data\n ")]),e._v(".\n Visit link to contribute.\n ")]),n("div",[n("a",{attrs:{href:"https://github.com/huertatipografica/Alegreya-Sans"}},[e._v("Alegreya Sans")]),e._v(" font by Juan Pablo del Peral.\n ")]),n("div",[n("a",{attrs:{href:"https://github.com/etunni/Graduate-Variable-Font"}},[e._v("Graduate")]),e._v(" Variable Font by Eduardo Tunni.\n ")]),n("div",[e._v("\n Rywalka font by Adam Jagosz.\n ")])]),n("div",{staticClass:"bulletproof-info"},[n("div",[e._v("\n Bulletproof Font Tester\n ")]),n("div",[e._v("\n Copyright 2020 Adam Jagosz.\n ")])])])}],Mt=n("9224").version,Nt={components:{SigmoidContainer:_t},data:function(){return{version:Mt}},mounted:function(){this.initObserver()},destroyed:function(){this.observer.disconnect()},methods:{initObserver:function(){var e=this,t={threshold:[0,.25,.5,.75,1]},n=function(t,n){t.forEach((function(t){e.updateHeight(t)}))};this.observer=new IntersectionObserver(n,t),this.observer.observe(this.$refs.sentinel)},updateHeight:function(e){var t=e.intersectionRatio;this.$store.commit("updateFooter",{visible:t>.75,ratio:t})}}},Dt=Nt,Ht=(n("7306"),Object(h["a"])(Dt,Et,Bt,!1,null,"a8ebd28a",null)),zt=Ht.exports,$t=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:"home "+(e.webkit?"webkit":"")},[n("div",{class:e.parallaxClasses},[n("div",{staticClass:"pane"},[n("div",{ref:"parallax",staticClass:"parallax-content",attrs:{"data-parallax":"0.3 0"}},[e._v("\n "+e._s(e.getParallaxText())+"\n ")])])]),n("div",{ref:"overlay",class:e.overlayClasses}),n("Welcome",{attrs:{msg:"Welcome to Your Vue.js App"}})],1)},Ut=[];n("14b9");function Vt(e){var t,n,a;for(a=e.length-1;a>0;a--)t=Math.floor(Math.random()*(a+1)),n=e[a],e[a]=e[t],e[t]=n;return e}var Rt=n("b474"),Gt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"welcome reading"},[n("div",{staticClass:"fold"},[n("figure",{staticClass:"banner"},[n("svg",{class:"logo",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("g",{attrs:{"data-name":"Warstwa 3"}},[n("g",{attrs:{"data-name":"Icon Big"}},[n("path",{attrs:{fill:"currentColor",d:"M207.6 192.9c.28-1.46 3.45-3.78 7.05-5.15l14.81-5.64c3.6-1.37 3.41-2.88-.41-3.36L214.5 177c-3.82-.47-7.66-3.06-8.52-5.74s-3.21-12-1.77-15.53l8.73-21.56c1.45-3.57.13-4.58-2.93-2.24l-17.33 13.25c-3.06 2.34-6.82 3.65-8.36 2.91l-2.13-.73-4.5-1.53c-2.8-.25-7.48-2.51-10.41-5a19.57 19.57 0 00-4-3.9c-2.67-2-2.9-1.21-.51 1.81l.91 1.15c2.39 3 3.6 5.73 2.68 6s-7.33-.86-11-2.1l-9.55-3.24c-3.64-1.24-6 .83-5.22 4.6l.59 2.88c.77 3.77.48 7.7-.65 8.74s-6.83 4.88-10.55 5.85l-.71.19c-3.72 1-4.51 2.43-1.75 3.23a4.66 4.66 0 013.25 6.15c-1 2.58-4.53 12-7.49 14.49l-7.53 6.28c-3 2.46-2.26 4.89 1.56 5.4l7.42 1c3.82.5 8.17 3.13 9.67 5.85s6.81 11.9 6.81 15.75v2.87c0 3.85 2.27 4.81 5 2.14l.18-.17c2.78-2.67 6.79-4.19 8.93-3.37s10.3 4.29 13 7.08l6.5 6.85c2.65 2.8 5.59 2 6.54-1.7l1.68-6.58a20.76 20.76 0 017.6-10.6l7.81-7c2.45-3 6.94-5.9 10-6.5s10.13-3.17 6.37-4l-1.78-.39c-3.75-.86-5.72-5.23-5.44-6.69zm-21.25-16.6a2.91 2.91 0 00-.15 5.44c.86.54.87 1.24 0 1.55a3.82 3.82 0 00-1.73 2.13c-.07.42.74 1.24 1.82 1.82s1 .92-.21.76a3.51 3.51 0 00-2.82 1.42 2.61 2.61 0 00.53 2.12c.5.72.18 1.23-.71 1.15s-2.6 1.06-3 1.48 0 2.79.93 5.27.09 3.07-1.85 1.29-5.88-2.23-6.85-2a2.67 2.67 0 00-1.75 2.58c0 1.18-.52 1.22-1.16.09l-.64-1.13a4.1 4.1 0 00-.76-.92c-2.16 0-4.14-.15-6.57-.32l-.53 1c-.53 1-1 .83-1-.45a5.37 5.37 0 00-1.3-3.14c-.35-.24-1.91.67-3.46 2s-2 .94-1-.91a7.68 7.68 0 00-.07-5.74c-.44-.7-1.93-.88-3.29-.39s-1.6 0-.52-1.17 1.42-3.93 1.3-4.67-1.13-1.35-2.24-1.35-1.13-.56 0-1.23 2.23-3.38 2.43-4.16-1.17-2.17-3-3.07-1.6-1.54.6-1.41 5.77-2.38 6.63-3.22a3.77 3.77 0 001-3.32c-.3-1 .2-1.33 1.1-.76s3.18.24 3.8 0a2.8 2.8 0 001.13-2.5c0-1.15.47-1.26 1-.26a4.05 4.05 0 002.64 1.63c.45 0 1.28-1.16 1.86-2.51s1.47-1.27 2 .17 3.77 3.48 4.75 4 2.7-.2 3.84-1.58 1.66-1 1.15.89 1.22 5.77 1.84 6.83a4.35 4.35 0 003.9 1.66c1.54-.1 1.7.3.36.93z","data-name":"Hole 1"}}),n("path",{attrs:{fill:"currentColor",d:"M185.51 76.49l-10.72-7a2.71 2.71 0 01-.65-4l6.59-8.32c1-1.3.52-2.21-1.12-2l-9.77 1c-1.64.17-2-.56-.68-1.61l6-4.91A1 1 0 00174 48.1L163.6 53a2.15 2.15 0 01-3.2-1.69l-1.75-10.9c-.27-1.63-1.5-2.07-2.74-1l-8.51 7.45a2.31 2.31 0 01-3.7-.66l-.38-.7c-.79-1.45-2-2.76-2.79-2.91s-2.17.81-3.16 2.13l-1.28 1.72a2.12 2.12 0 01-3.59 0l-5.66-7.66a2.11 2.11 0 00-3.58 0l-12.68 16.87a1.89 1.89 0 01-3.36-.16L94.59 34.57c-.86-1.41-1.26-1.25-.89.36l6.3 27.8a5.36 5.36 0 01-1.64 4.84l-5.16 4.3a10.64 10.64 0 01-4.75 2.19c-1.34.15-1.58 1.31-.52 2.58l1.59 1.9a14.9 14.9 0 012.57 5.24l2 8.8a12.19 12.19 0 002.78 5l.09.09a3 3 0 010 4.25l-4.44 4.44c-1.16 1.17-.8 2.43.8 2.81l5.68 1.39a7.07 7.07 0 014.29 10.76l-1.52 2.32a2.63 2.63 0 002.61 4l13-2.07a2.82 2.82 0 013 3.89l-3 7a1.68 1.68 0 002.69 1.89l7.71-7.17a12.37 12.37 0 015.14-2.61l10.93-2.12a5 5 0 014.64 1.91l3.67 5.36c.93 1.36 1.87 1.13 2.08-.5l.86-6.54a16.5 16.5 0 012-5.52l3.9-6.3a3.36 3.36 0 014.26-1.21l3.32 1.66c1.48.74 2.48 0 2.24-1.62l-2.37-15.78a2 2 0 012.51-2.42l11.47 2.15c1.62.31 1.93-.33.69-1.42l-9.06-8c-1.24-1.09-1-2.35.63-2.81l1.83-.52c1.59-.45 1.58-1.18 0-1.61 0 0-3.07-.84-3.62-1.39-1.21-1.21 12.24-3.33 12.24-3.33 1.55-.21 1.75-1.16.37-2.07zm-28.21 8.93c-1.86.94-3.74 5.11-4.14 6.37a4.68 4.68 0 001.46 4.3c1.21 1.11 1 1.53-.46.92a4.41 4.41 0 00-4 .87 4.34 4.34 0 00-.44 2.91c.18 1.07-.37 1.59-1.22 1.13a4.09 4.09 0 00-2.94.15c-.39.24-.46 1.48-.15 2.75s0 1.45-.76.39a3.74 3.74 0 00-3.15-1.24 2.78 2.78 0 00-1.32 2c-.21.91-.86 1-1.43.25s-2.71-1.31-3.34-1.34-2.22 2-3.55 4.52-2.38 2.28-2.35-.55-2.43-6.3-3.31-6.9a2.86 2.86 0 00-3.32.44c-1 .85-1.35.46-.91-.86a12.61 12.61 0 00.7-2.52l-.06-.07-1.55-1.73c-1.06-2.2-2.07-4.5-2.25-5.1s-.56-2.27-.62-2.71-1.89-1-4.08-1.32-2.2-.94 0-1.48 4.29-3.3 4.53-4.17-.68-2.17-2.05-2.91-1.11-1.3.57-1.26 4.15-1.68 4.66-2.31a25.14 25.14 0 011.88-2.05 31.32 31.32 0 013.62-2.65c.77-.41.89-2.49.27-4.64s.08-2.38 1.56-.52 6 2.9 7.32 3a4 4 0 003.39-1.57c.57-.94 2-.43 3.16 1.13s2.85 2.18 3.77 1.36 1.34-.53.95.65a4.29 4.29 0 00.59 3.28c.34.33 1.84.19 3.33-.32s2.08.26 1.3 1.72-.07 5.51.22 6.65 2.1 2 4 1.94 1.97.55.12 1.49z","data-name":"Hole 2"}}),n("path",{attrs:{fill:"currentColor",d:"M117.52 172.68c.06-.47-4-4.94-4-4.94-3.69-4.07-3.74-7.23-.11-7s6.52 0 6.42-.4-3-1.6-6.42-2.61-5.84-5.6-4-8.14a6 6 0 00-4-9.18s-12.45-2.53-13.3-3.17-5.77-15.21-7.21-15-11.77 8.46-16.18 10l-4.11 1.39c-2.61 1.29-6.05.86-7.64-1s-2.91-3.28-3.2-1.75-3 3.46-4.86 1.09l-.57-2.75-.56-2.75c-2.16-2.09-4.25.69-4.66 6.18a103.16 103.16 0 01-2.55 15.23c-.53 2.11-2 4.76-4.11 4a4.11 4.11 0 01-1.77-1.62l-1.51-2.07c-2.29-4-4.36-7.14-4.59-7.06s.57 4.54 1.8 9.91c0 0 .34 1.51-1.64 6.83l-.89 2.4c-2.59.65-4.31 2.77-3.82 4.69l1.45 1.09c1.46 1.09 3.18 1.87 4.33 3.28s1.44 3.79 0 4.86c-2.38 1.74-2.17 5.59-.35 7.91s4.71 3.47 7.46 4.53c1 .37.79 1.76.44 2.73l-1.23 3.44c-1.36 3.78-.41 7 2.1 7.11s8.36 4.21 7.72 7.3 1 10.27 4.66 9 16.28-4.79 20.81-3.28l3.07-2.52c1.82-1.49 1.94-5.48 4-6.5 3.09-1.5 7.81 1.64 9.85 4.4s2.65 6.32 3.28 9.69c.32 1.81 3 2.28 4.46 1.21S99.3 212 99.3 212c1.48-5.3 3.94-8.68 5.46-7.53s4.08-.06 2.31-5.27a42.23 42.23 0 01-2-13.69c.29-5.36 12.35-12.09 12.45-12.83zM85.84 178c.62 1.17.13 1.89-1.08 1.61a4.37 4.37 0 00-3.61.84c-.77.74-2.73 3.42-2.29 4.83s-.3 1.52-1.64.22-3.21-2-4.17-1.55-4.37 1.74-5 3.09-1 1.3-.91-.12-.31-2.69-.89-2.83a26.72 26.72 0 01-3.37-1.38c-.73-.38-1.6-.9-2-1.14a3.68 3.68 0 00-3 .22c-1 .63-1.24.4-.55-.53s1-2 .67-2.34a4.46 4.46 0 00-2.58-1.24c-.84.09-1.12-.42-.64-1.13a2.85 2.85 0 00.5-2.25 8.73 8.73 0 00-2.72-3.09c-1.15-.62-1.25-1.59-.22-2.15a4.21 4.21 0 002-2.72 27.69 27.69 0 011.27-4.41c.27-.59.49-1.09.51-1.12s-.06-1.82-.19-3.91l-.05-.33 3.35-.72c1.83-.38 3.45-1.29 3.59-2s1.25-1.12 2.46-.88a4.66 4.66 0 003-.2c.46-.35 2.3-1.43 2.53-2.81s.77-1.32 1.23.11 1.39 2.75 2.08 2.9a27.51 27.51 0 013.53 1.37 21.37 21.37 0 012.22 1.39 5.7 5.7 0 005.1-.24c1.63-1.15 2-.63.9 1.16s-1.79 3.79-1.44 4.42 1.8 3.38 2.77 3.59 1.18 1.44.47 2.73-.72 3.94.24 4.47.84 1-.27 1-2.18.55-2.38 1.19a7.1 7.1 0 00.58 3.95z","data-name":"Hole 3"}})])])]),n("h1",[e._v("Bulletproof")]),n("div",{staticClass:"subtitle"},[e._v("I Wish I Was...")])]),n("div",{staticClass:"invitation"},[e._v("\n Drop font files anywhere to start\n ")])]),n("WelcomeText",{staticClass:"readme"})],1)},Wt=[],qt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("p",[e._v("Test your local fonts with the proofing tool developed by a type designer, for type designers. Check out kerning, OpenType features, and language coverage. Explore and animate variation axes in variable fonts.")]),e._m(0),e._m(1),n("h2",[e._v("Available formatting options")]),e._m(2),n("h2",[e._v("Text collection")]),e._m(3),e._m(4),n("p",[e._v("The selection of languages and texts is arbitrary and limited, but contributions are welcome. Currently the focus is on languages written with Latin and Cyrillic.")]),n("h2",[e._v("Kerning tester")]),n("p",[e._v("The app is equipped with a "),n("router-link",{attrs:{to:"/kerning"}},[e._v("kerning string generator")]),e._v(", along with a couple of predefined kerning patterns. "),n("router-link",{attrs:{to:"/help/kerning"}},[e._v("[See kerning generator help]")])],1),n("h2",[e._v("Playground & Animation")]),n("p",[e._v("Any open text sample can be edited. In the "),n("router-link",{attrs:{to:"/editor"}},[e._v("editor tab")]),e._v(" some more options are available: setting bold and italic (with separately selectable fonts), as well as taking snapshots of the settings and using them as animation keyframes — can be useful for recording gifs or videos, or toggling multiple features on and off more quickly. "),n("router-link",{attrs:{to:"/help/animation"}},[e._v("[See animation editor help]")])],1)])},Jt=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[e._v("To begin, load selected local font files (you can drag'n'drop them right here). Their OpenType features and variation axes will be automatically detected. Everything is processed locally in the browser, using "),n("a",{attrs:{href:"https://github.com/opentypejs/opentype.js"}},[e._v("OpenType.js")]),e._v(".")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[e._v("Or if you don't have any font files handy, look around and test the included fonts: "),n("a",{attrs:{href:"https://github.com/huertatipografica/Alegreya-Sans"}},[e._v("Alegreya Sans")]),e._v(" by Juan Pablo del Peral, "),n("a",{attrs:{href:"https://github.com/etunni/Graduate-Variable-Font"}},[e._v("Graduate")]),e._v(" Variable Font by Eduardo Tunni, and my own Rywalka (work-in-progress).")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",[n("li",[e._v("Changing font size, line height, text alignment, text case transform, text and background colors.")]),n("li",[e._v("Toggling OpenType features on and off.")]),n("li",[e._v("Choosing localization language from the list of languages built into the font.")]),n("li",[e._v("Manipulating OpenType Variation axes.")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[e._v("A set of multilingual texts is collected in a separate project "),n("a",{attrs:{href:"https://github.com/hyvyys/language-data"}},[e._v("Language-Data")]),e._v(". It includes a few kinds of texts:")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",[n("li",[e._v("ordinary sentences,")]),n("li",[e._v("pangrams,")]),n("li",[e._v("lettering samples — defined as sets of A-Z words preferably repeating the initial letter within),")]),n("li",[n("em",[e._v("gotchas")]),e._v(" — edge cases characteristic to the given language, things to look out for when desigining a typeface.")])])}],Zt={},Yt=Object(h["a"])(Zt,qt,Jt,!1,null,null,null),Qt=Yt.exports,Xt={name:"Welcome",components:{WelcomeText:Qt},props:{},mounted:function(){this.$store.commit("scrollToTop")}},en=Xt,tn=(n("2f93"),Object(h["a"])(en,Gt,Wt,!1,null,"4602ce0c",null)),nn=tn.exports;function an(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function rn(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"\\",a=new RegExp(xn(n)+"$"),i=[],r=[],s="";e.split("").forEach((function(e){e!==t||a.test(s)?s+=e:(r.push(s),s="")})),r.push(s);var o=new RegExp(xn(n)+xn(t),"g");return r=r.map((function(e){return e.replace(o,t)})),[].push.apply(i,r),i}var Cn=function(){function e(){Object(De["a"])(this,e)}return Object(He["a"])(e,null,[{key:"parseSequences",value:function(e){e=e.replace(/^\|/,"").replace(/\|$/,"");var t=wn(e,"|");return t}},{key:"parseClosure",value:function(e){var t=wn(e,"_");return t}},{key:"sets",value:function(e){var t=this,n=[],a=[];return e.forEach((function(e){if(/^@/.test(e)){e=e.replace(/^@/,""),e=e.replace(/\\@/g,"@");var i=[],r="_|\\",s=r.split("").map((function(e){return xn("\\"+e)})).join("|"),o="([^".concat(xn(r),"]*|").concat(s,")*"),l=new RegExp("^\\|(".concat(o,"_").concat(o,"\\|)+$"));i=l.test(e)?t.parseSequences(e).map((function(e){return t.parseClosure(e)})):Array.from(e.matchAll(/(.)(.)/g)).map((function(e){return[e[1],e[2]]})),a.push(i)}else if(e=e.replace(/\\@/g,"@"),/^\|.+\|$/.test(e))n.push(t.parseSequences(e));else{var c=[],u=e.matchAll(/([^\\])-(.)/g);Array.from(u).forEach((function(e){var t=Object(bn["a"])(e,3),n=t[1],a=t[2];[].push.apply(c,Sn(n,a))})),e=e.replace(/([^\\])-(.)/g,"");var g=e.replace(/\\-/g,"-").split("");[].push.apply(c,g),n.push(c)}})),{sets:n,closures:a}}},{key:"kerningString",value:function(e){var t=e.sets.filter((function(e){return e.length}));t=JSON.parse(JSON.stringify(t));var n=kn.apply(void 0,Object(w["a"])(t)),a=[],i=n[0][0]||"",r="";function s(t){e.closures.length||(t+=i),e.closures.length||(t=t.replace(/(.)\1{2,}/g,"$1$1")),a.push(t)}return n.filter((function(e){return e.length})).forEach((function(t){t[0]!==i&&(s(r),r="",i=t[0]);var n=t.join("");if(e.closures.length){var a=e.closures.map((function(e){return e.map((function(e){return e[0]}))})),o=e.closures.map((function(e){return e.map((function(e){return e[1]}))})),l=kn.apply(void 0,Object(w["a"])(a)).map((function(e){return e.reverse().join("")})),c=kn.apply(void 0,Object(w["a"])(o)).map((function(e){return e.join("")})),u=l.map((function(e,t){return[e,c[t]]}));n=u.map((function(e){return"".concat(e[0]).concat(n).concat(e[1])})).join(" ")+" "}r+=n})),s(r),a}}]),e}(),_n=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"kerning-editor panel"},[n("transition-group",{staticClass:"fade-transition-group",attrs:{name:"fade",tag:"div"}},[n("div",{key:"title",staticClass:"row"},[n("h3",[e._v("\n Pattern segments\n ")]),n("UiIconButton",{key:"btnAdd",attrs:{color:"primary",size:"small"},on:{click:function(t){return e.$emit("addKerningSegment")}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",fill:"currentColor"}}),n("path",{attrs:{d:"M0 0h24v24H0z",fill:"none"}})])])],1),e._l(e.segments,(function(t,a){return n("div",{key:"segment-"+t.key,staticClass:"row segment-row"},[n("UiSelect",{ref:"segmentSelects",refInFor:!0,attrs:{options:e.builtInSegmentCharacters,dropdownClass:"kerning-segment-select",dropdownPosition:"bottom-end",placeholder:"type or choose",autocomplete:!0},on:{input:function(t){return e.$emit("updateKerningPattern")}},scopedSlots:e._u([{key:"option",fn:function(t){return[n("kbd",[e._v(e._s(t.option||" "))])]}}],null,!0),model:{value:e.segments[a].characters,callback:function(t){e.$set(e.segments[a],"characters",t)},expression:"segments[i].characters"}}),n("UiIconButton",{key:"btnRemove",staticClass:"border",attrs:{color:"default",size:"small"},on:{click:function(t){return e.$emit("removeKerningSegment",a)}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{d:"M19 13H5v-2h14v2z",fill:"currentColor"}}),n("path",{attrs:{d:"M0 0h24v24H0z",fill:"none"}})])])],1)}))],2)],1)},On=[],Pn=["A-Z","a-z","0-9","A-Za-z0-9","FPTVWYfrvwy","aáàâåäãæbcçdðeéèêëfghiíìîïjklmnñoóòôöõøpqrstuúùûüvwxyýÿzþ","aáàăâåäãąāæbcćĉčċçdďđðeéèĕêěëėęēfgğĝġģhĥħiíìĭîïĩįīijıjĵkķlĺľļłŀmnńňñņŋoóòŏôöőõøōœpqĸrŕřŗsśŝšştťţŧuúùŭûůüűũųūvwŵxyýŷÿÿzźžżþ","АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ","абвгдеёжзийклмнопрстуфхцчшщъыьэюя","ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ","αβγδεζηθικλμνξοπρσςτυφχψω",",.",";:","-–—+","|fi|fj|fl|ff|ffi|ffl|fb|fh|fk|ft|","@¡!¿?","@“”‘’","@“”„”„“””","@|“_,”|”_”:|„_”,|„_“.|","@\"\"''","@()[]{}<>"],jn={components:{UiIconButton:rt["a"],UiSelect:G},props:{segments:{type:Array,default:function(){return[]}}},data:function(){return{builtInSegmentCharacters:[""].concat(Object(w["a"])(Pn))}},watch:{segments:function(e,t){if(this.$refs.segmentSelects&&this.$refs.segmentSelects.length){var n=0;t.length>0&&(n=this.$refs.segmentSelects.length-1),this.$refs.segmentSelects[n].focus()}}},mounted:function(){this.$refs.segmentSelects&&this.$refs.segmentSelects.length&&this.$refs.segmentSelects[0].focus()},updated:function(){}},An=jn,Fn=(n("6fa0"),Object(h["a"])(An,_n,On,!1,null,"76dead88",null)),Ln=Fn.exports,Kn=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},In=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("p",[e._v("Kerning strings can be generated in the "),n("a",{attrs:{href:"/kerning"}},[e._v("Kerning tab")]),e._v(". Each string is defined using a "),n("strong",[e._v("pattern")]),e._v(" consisting of character sets called "),n("strong",[e._v("segments")]),e._v(".")]),n("p",[n("strong",[e._v("Regular segments")]),e._v(" are sets of letters, characters, or words that will be interpolated to create the kerning string. There are two kinds of regular segments:")]),n("ul",[n("li",[e._v("Single-character segments, e.g. "),n("code",[e._v("A-Za-ząćę")]),e._v(".")]),n("li",[e._v("Multi-character segments, e.g. "),n("code",[e._v("|fi|fj|fl|")]),e._v(".")])]),n("p",[n("strong",[e._v("Closure segments")]),e._v(" start with an at "),n("code",[e._v("@")]),e._v(" and are used to surround the interpolated substrings with extra characters, typically punctuation. These also come in two flavors:")]),n("ul",[n("li",[e._v("Single character closures, e.g. "),n("code",[e._v("@()[]{}")]),e._v(". Characters after "),n("code",[e._v("@")]),e._v(" are treated as opening–closing pairs.")]),n("li",[e._v("Multiple character closures, e.g. "),n("code",[e._v("@|“_”.|“_.”|“_”,|“_,”|")]),e._v(". Anything before the underscore "),n("code",[e._v("_")]),e._v(" is treated as prefix, everything after — as suffix. Either can be empty, e.g. "),n("code",[e._v("@|_,|")]),e._v(" is a suffix-only closure.")])]),n("p",[e._v("Multiple closure segments can be combined. A pattern of the following segments:")]),n("blockquote",[n("p",[n("code",[e._v("abc")]),n("br"),n("code",[e._v("@“”‘’")]),n("br"),n("code",[e._v("@()")])])]),n("p",[e._v("will yield "),n("code",[e._v("(“a”) (‘a’) (“b”) (‘b’) (“c”) (‘c’)")]),e._v(".")]),n("h2",[e._v("Summary")]),n("p",[e._v("The segment syntax has just five special characters:")]),n("ul",[n("li",[e._v("at "),n("code",[e._v("@")]),e._v(" (only at the beginning of segment) — begins a closure segment,")]),n("li",[e._v("hyphen "),n("code",[e._v("-")]),e._v(" — signifies character range,")]),n("li",[e._v("pipe "),n("code",[e._v("|")]),e._v(" — delimits words or closures,")]),n("li",[e._v("underscore "),n("code",[e._v("_")]),e._v(", — separates closure prefix and suffix,")]),n("li",[e._v("and backslash "),n("code",[e._v("\\")]),e._v(" — escapes the above (and itself), e.g. "),n("code",[e._v("@|\\|_\\|\\_|")]),e._v(" means a closure segment with a "),n("code",[e._v("|")]),e._v(" prefix and "),n("code",[e._v("|_")]),e._v(" suffix.")])])])}],En={},Bn=Object(h["a"])(En,Kn,In,!1,null,null,null),Mn=Bn.exports,Nn={components:{Kerning:Mn,KerningEditor:Ln},data:function(){return{segments:[],key:0}},computed:{kerningStringLines:function(){var e=this.segments.map((function(e){return e.characters})),t=Cn.sets(e),n=t.sets,a=t.closures,i={segments:e,sets:n,closures:a};return Cn.kerningString(i)}},mounted:function(){this.addKerningSegment(null,"A-Z"),this.addKerningSegment(null,"aeiou")},methods:{addKerningSegment:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.segments.push({key:this.getKey(),characters:t})},getKey:function(){return++this.key},removeKerningSegment:function(e){this.segments.splice(e,1)}}},Dn=Nn,Hn=(n("2d2b"),Object(h["a"])(Dn,yn,Tn,!1,null,"7273fa36",null)),zn=Hn.exports,$n=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"help-topic"},[n("div",{staticClass:"help"},[n("div",{staticClass:"reading"},[n("h2",{staticClass:"help-heading"},[n("router-link",{attrs:{to:"/help"}},[e._v("Help / ")]),e._v("Animation editor\n ")],1),n("Animation")],1)]),n("div",{staticClass:"example"})])},Un=[],Vn=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},Rn=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("p",[e._v("In the "),n("a",{attrs:{href:"/editor"}},[e._v("Editor tab")]),e._v(", the right side Contextual sidebar provides a simple animation editor. At any time a frame can be added to take a snapshot of the current settings from the left side Settings sidebar. Most settings are animatable, including continuous settings like Variation Axes, font size and color, as well as discrete settings like OpenType features. Currently a few settings remain unanimated: text align and text case transform.")])])}],Gn={},Wn=Object(h["a"])(Gn,Vn,Rn,!1,null,null,null),qn=Wn.exports,Jn={components:{Animation:qn}},Zn=Jn,Yn=Object(h["a"])(Zn,$n,Un,!1,null,"3498f484",null),Qn=Yn.exports,Xn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"font-tester"},[n("transition",{attrs:{name:"fade-slow",mode:"in-out"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.fontLoading,expression:"!fontLoading"}],staticClass:"font-tester-content"},[n("Pinnable",{staticClass:"site-sidebar sidebar-settings",attrs:{title:"Settings",isPinned:!0,isVisible:e.settingsPanelVisible,trigger:"#settings-trigger"},on:{toggle:function(t){return e.$store.commit("toggleSettingsPanel")},hide:function(t){return e.$store.commit("toggleSettingsPanel",{value:!1})}}},[n("Settings")],1),"languages"===e.selectedSampleKey?n("LanguageSupportSummary",{attrs:{languageSupport:"languageSupport"}}):n("TesterBody",{staticClass:"main",attrs:{texts:e.fontSampleTexts,isCustom:"custom"===e.selectedTextKind},on:{update:function(t){return e.modifyText(t)}}}),n("Pinnable",{staticClass:"site-sidebar sidebar-nav",attrs:{title:e.navElementTitle,isPinned:!0,isVisible:e.contextualPanelVisible,scrolled:!1,trigger:"#nav-trigger"},on:{toggle:function(t){return e.$store.commit("toggleContextualPanel")},hide:function(t){return e.$store.commit("toggleContextualPanel",{value:!1})}}},[n("div",{staticClass:"transition-wrapper u-flex-v",staticStyle:{overflow:"hidden"}},[n("transition",{attrs:{name:"swap"}},[n(e.navElement,{key:e.navElementTitle,tag:"component"})],1)],1)])],1)])],1)},ea=[],ta=function(){var e=this,t=e.$createElement,n=e._self._c||t;return!e.forceInvisible&&e.isVisible?n("div",{class:"\n pinnable "+(e.pinned?"pinned":"")+"\n "+(!e.footerVisible&&e.sticky?"sticky":"")+"\n "+(e.footerNear?"footer-near":"")+"\n "+(e.footerNearer?"footer-nearer":"")+"\n "+(e.triggerHover?"trigger-hover":"")+"\n "+(e.scrolled?"pinnable-scrolled":"")+"\n "},[e.title?n("div",{staticClass:"titlebar"},[n("h2",[e._v(e._s(e.title))]),n("UiIconButton",{class:"pin "+(e.pinned?"active":""),attrs:{size:"small"},on:{click:e.togglePinPanel}},[n("svg",{staticStyle:{width:"24px",height:"24px"},attrs:{viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"currentColor",d:"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z"}})])])],1):e._e(),e.scrolled?n("div",{directives:[{name:"bar",rawName:"v-bar"}],ref:"vb",staticClass:"content"},[n("div",{ref:"scrolled",class:"scrolled "+(e.disableOverscroll?"disable-overscroll":""),on:{wheel:e.onWheel}},[e._t("default")],2)]):e._t("default")],2):e._e()},na=[];function aa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ia(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:3,a=0,i=e;while(null!=i&&a<=n){if(t(i))return i;i=i.parentNode,a++}return null}var sa={name:"Pinnable",components:{UiIconButton:rt["a"]},props:{title:{type:String},isPinned:{type:Boolean,default:!0},scrolled:{type:Boolean,default:!0},side:{type:String,default:"left"},isVisible:{type:Boolean,default:!0},disableOverscroll:{type:Boolean,default:!0},trigger:String,forceInvisible:{type:Boolean,default:!1},scrollSyncStartEvent:{type:String,default:"scrollSyncStart"},scrollSyncEndEvent:{type:String,default:"scrollSyncEnd"}},data:function(){return{storedScrollPosition:0,pinned:this.isPinned,lastHeight:0,width:null,triggerHover:!1}},computed:ia({},Object(b["e"])({sticky:function(e){return e.layout.sticky},footerVisible:function(e){return e.layout.footerVisible},footerSentinelVisibleRatio:function(e){return e.layout.footerSentinelVisibleRatio}}),{footerNear:function(){return this.footerSentinelVisibleRatio>0},footerNearer:function(){return this.footerSentinelVisibleRatio>.5}}),watch:{sticky:function(){var e=this;this.$refs.vb&&(setTimeout((function(){return e.$vuebar.refreshScrollbar(e.$refs.vb)}),50),setTimeout((function(){return e.$vuebar.refreshScrollbar(e.$refs.vb)}),100),setTimeout((function(){return e.$vuebar.refreshScrollbar(e.$refs.vb)}),250))}},mounted:function(){this.init()},destroyed:function(){this.cleanup()},methods:{init:function(){this.trigger&&(this.getTriggerElement().addEventListener("mouseenter",this.onTriggerMouseEnter),this.getTriggerElement().addEventListener("mouseleave",this.onTriggerMouseLeave))},cleanup:function(){this.trigger&&(this.getTriggerElement().removeEventListener("mouseenter",this.onTriggerMouseEnter),this.getTriggerElement().removeEventListener("mouseleave",this.onTriggerMouseLeave))},onTriggerMouseEnter:function(){this.triggerHover=!0},onTriggerMouseLeave:function(){this.triggerHover=!1},onWheel:function(e){this.disableOverscroll&&e.stopPropagation()},toggle:function(){this.$emit("toggle")},hide:function(){this.$emit("hide")},getTriggerElement:function(){return document.querySelector(this.trigger)},mysteriousClick:function(e){var t=this.getTriggerElement().contains(e.target);if(!this.pinned&&this.isVisible&&!t){var n=e.target,a=ra(n,(function(e){return"A"===e.tagName}),3),i=!!a&&a.getAttribute("href").startsWith("#");this.$el.contains(e.target)&&!i||this.hide()}},initScrollSync:function(){var e=this;this.$on(this.scrollSyncStartEvent,(function(){e.storedScrollPosition=e.$refs.scrolled.scrollTop})),this.$on(this.scrollSyncEndEvent,(function(){e.$refs.scrolled.scrollTop=e.storedScrollPosition}))},togglePinPanel:function(){this.pinned=!this.pinned}}},oa=sa,la=(n("692a"),Object(h["a"])(oa,ta,na,!1,null,"a9235368",null)),ca=la.exports,ua=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"settings"},[n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Font size")]),n("UiNumber",{ref:"settingFontSize",attrs:{value:e.settings.fontSize,min:e.settings.minFontSize,max:e.settings.maxFontSize,step:e.settings.fontSizeStep,clickStep:e.settings.fontSizeClickStep},on:{input:function(t){return e.updateSetting("updateSettings",{fontSize:t})}}}),n("UiSelect",{ref:"settingFontSizeUnit",staticClass:"const3ch",attrs:{value:e.settings.fontSizeUnit,options:e.settings.fontSizeUnitOptions},on:{input:function(t){return e.updateSetting("updateSettings",{fontSizeUnit:t})}}})],1),n("div",{staticClass:"row"},[n("UiTextbox",{ref:"settingWaterfallSizes",attrs:{value:e.settings.waterfallSizes,disabled:!e.settings.enableWaterfall},on:{input:function(t){return e.updateSetting("updateSettings",{waterfallSizes:t})}}}),n("UiCheckbox",{ref:"settingEnableWaterfall",staticClass:"checkbox-small",attrs:{value:e.settings.enableWaterfall},on:{input:function(t){return e.updateSetting("updateSettings",{enableWaterfall:t})}}},[e._v("waterfall")])],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Line height")]),n("UiNumber",{ref:"settingLineHeight",attrs:{value:e.settings.lineHeight,min:e.settings.minLineHeight,max:e.settings.maxLineHeight,step:e.settings.lineHeightStep,clickStep:e.settings.lineHeightClickStep,disabled:e.settings.defaultLineHeight},on:{input:function(t){return e.updateSetting("updateSettings",{lineHeight:t})}}}),n("UiCheckbox",{ref:"settingDefaultLineHeight",staticClass:"checkbox-small",attrs:{value:e.settings.defaultLineHeight},on:{input:function(t){return e.updateSetting("updateSettings",{defaultLineHeight:t})}}},[e._v("default")])],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Tracking")]),n("UiNumber",{ref:"settingTracking",attrs:{value:e.settings.tracking,min:e.settings.minTracking,max:e.settings.maxTracking,step:e.settings.trackingStep,clickStep:e.settings.trackingClickStep,disabled:e.settings.defaultTracking},on:{input:function(t){return e.updateSetting("updateSettings",{tracking:t})}}}),n("UiCheckbox",{ref:"settingDefaultTracking",staticClass:"checkbox-small",attrs:{value:e.settings.defaultTracking},on:{input:function(t){return e.updateSetting("updateSettings",{defaultTracking:t})}}},[e._v("default")])],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Text align")]),n("UiSelect",{ref:"settingTextAlign",attrs:{value:e.settings.textAlign,options:e.settings.textAlignOptions},on:{input:function(t){return e.updateSetting("updateSettings",{textAlign:t})}}})],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Text color")]),n("UiColorPicker",{ref:"settingTextColor",attrs:{value:e.settings.textColor},on:{input:function(t){return e.updateSetting("updateSettings",{textColor:t})}}})],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Back color")]),n("UiColorPicker",{ref:"settingBackgroundColor",attrs:{value:e.settings.backgroundColor},on:{input:function(t){return e.updateSetting("updateSettings",{backgroundColor:t})}}})],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Case transform")]),n("UiSelect",{ref:"settingTextTransform",attrs:{value:e.settings.textTransform,options:e.settings.textTransformOptions},on:{input:function(t){return e.updateSetting("updateSettings",{textTransform:t})}}})],1),n("div",{staticClass:"row row-check"},[n("UiCheckbox",{ref:"settingWrapLines",attrs:{label:"Break-word",value:e.settings.wrapLines},on:{input:function(t){return e.updateSetting("updateSettings",{wrapLines:t})}}})],1),e.capFeatures.length>0?n("h3",[e._v("Caps")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.capFeatures,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)})),0),e.localization?n("h3",[e._v("Localization")]):e._e(),e.localization?n("div",{staticClass:"setting-group"},[n("div",{staticClass:"row"},[n("UiSelect",{attrs:{value:e.localizationLanguage,options:e.localizationLanguages,keys:e.loclSelectKeys,placeholder:"select language",invalid:e.isLocalizationInvalid,disabled:e.onGotchasTab},on:{input:function(t){return e.updateSetting("updateLoclFeature",{selectedLanguage:t})}},scopedSlots:e._u([{key:"option",fn:function(t){return n("div",{staticClass:"locl-select__option"},[n("div",{staticClass:"name"},[e._v(e._s(t.option.name))]),t.option.name!==t.option.tag?n("div",{staticClass:"tag"},[e._v("("+e._s(t.option.tag)+")")]):e._e()])}}],null,!1,3090818932)}),n("UiCheckbox",{staticClass:"checkbox-small",attrs:{value:e.localization.value},on:{input:function(t){return e.updateSetting("updateGsubFeature",{tag:"locl",value:t})}}},[e._v("enable")])],1)]):e._e(),e.numberFeatures.length>0?n("h3",[e._v("Numbers")]):e._e(),n("div",{staticClass:"setting-group"},[n("div",{staticClass:"row"},[e.pnum&&e.tnum?n("UiRadioGroup",{attrs:{name:"figureWidth",options:e.figureWidths,vertical:!0},model:{value:e.figureWidth,callback:function(t){e.figureWidth=t},expression:"figureWidth"}}):e._e(),e.lnum&&e.onum?n("UiRadioGroup",{attrs:{name:"figureHeight",options:e.figureHeights,vertical:!0},model:{value:e.figureHeight,callback:function(t){e.figureHeight=t},expression:"figureHeight"}}):e._e()],1),e._l(e.numberFeatures,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)}))],2),e.stylisticSets.length>0?n("h3",[e._v("Stylistic Sets")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.stylisticSets,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[t.uiName?[n("strong",[e._v(e._s(t.tag))]),e._v(" "+e._s(t.uiName))]:[e._v(e._s(t.name))]],2)],1)})),0),e.otherGsub.length>0?n("h3",[e._v("Other GSUB")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.otherGsub,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)})),0),e.activeGpos.length>0?n("h3",[e._v("GPOS")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.activeGpos,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGposFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)})),0),n("h3",[e._v("Variation axes")]),n("div",{staticClass:"setting-group"},[0===e.variationAxes.length?n("div",{staticClass:"notice"},[e._v("\n The selected font is not variable.\n ")]):e._e(),e._l(e.variationAxes,(function(t,a){return n("div",{key:a},[n("div",{staticClass:"row"},[n("UiCheckbox",{attrs:{label:t.displayName,value:t.enabled},on:{input:function(n){return e.updateSetting("updateVariationAxis",{tag:t.tag,enabled:n})}}})],1),n("div",{staticClass:"row"},[n("UiSlider",{staticStyle:{margin:"0 0.5em",flex:"2"},attrs:{value:t.value,min:t.minValue,max:t.maxValue,step:1,snapToStep:!0,showMarker:!1},on:{input:function(n){return e.updateSetting("updateVariationAxis",{tag:t.tag,value:n})}}}),n("UiNumber",{attrs:{value:t.value,min:t.minValue,max:t.maxValue,step:1},on:{input:function(n){return e.updateSetting("updateVariationAxis",{tag:t.tag,value:n})}}})],1)])}))],2)])},ga=[],pa=(n("6762"),n("2fdb"),n("f576"),n("6c7b"),n("3d86")),ha=n("40c39"),ma=n("cc32"),da=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ui-textbox ui-number",class:e.classes},[e.icon||e.$slots.icon?n("div",{staticClass:"ui-textbox__icon-wrapper"},[e._t("icon",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),n("div",{staticClass:"ui-textbox__content"},[n("label",{staticClass:"ui-textbox__label"},[n("div",{staticClass:"ui-textbox__input-wrapper"},[n("input",{directives:[{name:"autofocus",rawName:"v-autofocus",value:e.autofocus,expression:"autofocus"}],ref:"input",staticClass:"ui-textbox__input",attrs:{autocomplete:e.autocomplete?e.autocomplete:null,disabled:e.disabled,inputmode:"numeric",max:e.maxValue,maxlength:e.enforceMaxlength?e.maxlength:null,minlength:e.minlength,min:e.minValue,name:e.name,number:"number"===e.type||null,placeholder:e.hasFloatingLabel?null:e.placeholder,readonly:e.readonly,required:e.required,step:e.stepValue,tabindex:e.tabindex,type:e.type},domProps:{value:null!=e.displayedText?e.displayedText:e.value},on:{blur:e.onBlur2,focus:e.onFocus,change:function(t){return e.updateValue(t.target.value)},input:function(t){return e.updateValue(t.target.value)},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.onKeydownEnter(t)},e.onKeydown]}}),n("div",{staticClass:"ui-number-buttons"},[n("UiIconButton",{staticClass:"ui-number__button ui-select__dropdown-button",attrs:{disabled:e.disabled},nativeOn:{mousedown:function(t){return e.startIncrement(t)},mouseleave:function(t){return e.endIncrementDecrement(t)},mouseup:function(t){return e.endIncrementDecrement(t)}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{transform:"translate(0 24) scale(1 -1) translate(0 -1)",d:"M6.984 9.984h10.03L12 15z"}})])]),n("UiIconButton",{staticClass:"ui-number__button ui-select__dropdown-button",attrs:{disabled:e.disabled},nativeOn:{mousedown:function(t){return e.startDecrement(t)},mouseleave:function(t){return e.endIncrementDecrement(t)},mouseup:function(t){return e.endIncrementDecrement(t)}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{transform:"translate(0 -1)",d:"M6.984 9.984h10.03L12 15z"}})])])],1)]),e.label||e.$slots.default?n("div",{staticClass:"ui-textbox__label-text",class:e.labelClasses},[e._t("default",[e._v(e._s(e.label))])],2):e._e()]),e.hasFeedback||e.maxlength?n("div",{staticClass:"ui-textbox__feedback"},[e.showError?n("div",{staticClass:"ui-textbox__feedback-text"},[e._t("error",[e._v(e._s(e.error))])],2):e.showHelp?n("div",{staticClass:"ui-textbox__feedback-text"},[e._t("help",[e._v(e._s(e.help))])],2):e._e(),e.maxlength?n("div",{staticClass:"ui-textbox__counter"},[e._v(e._s(e.valueLength+"/"+e.maxlength))]):e._e()]):e._e()])])},fa=[],va=(n("2e37"),n("a020")),ya=n("4128"),Ta={name:"UiNumber",components:{UiIconButton:rt["a"]},extends:va["a"],props:{value:{type:Number,default:1},step:{type:Number,default:1},clickStep:{type:Number,default:1},clickStepFunction:{type:Function,default:null},minlength:{type:Number,default:-1}},data:function(){return{displayedText:null,tryValue:null,incrementTimeout:null}},computed:{stringValue:function(){return this.tempValue.toLocaleString()},_clickStep:function(){return this.clickStepFunction?this.clickStepFunction(this.value):this.clickStep}},watch:{value:function(e){this.coerceValue(e)},min:function(e){this.valuee&&this.updateValue(e)},step:function(){this.roundedToStep()!==this.value&&this.updateValue(this.roundedToStep())}},methods:{updateValue:function(e){var t=String(e),n=Number(t.replace(",","."));if(!isNaN(n)&&!/[.,]$/.test(t)){var a=this.correctValue(n);Math.abs(n-a)0&&void 0!==arguments[0]?arguments[0]:this.value;return new ya(e).toNearest(this.step).toNumber()},roundedToClickStep:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.value;return new ya(e).toNearest(this._clickStep).toNumber()},getSteps:function(e){return e<2?1:Math.ceil(.1*this.value/this._clickStep)},getDelay:function(e){return e<2?200:100},increment:function(e){this.updateValue(this.roundedToClickStep()+e*this._clickStep)},decrement:function(e){this.updateValue(this.roundedToClickStep()-e*this._clickStep)},startIncrement:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.getSteps(n);this.increment(a),this.incrementTimeout=setTimeout((function(){return t.startIncrement(e,n+1)}),this.getDelay(n))},startDecrement:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.getSteps(n);this.decrement(a),this.incrementTimeout=setTimeout((function(){return t.startDecrement(e,n+1)}),this.getDelay(n))},endIncrementDecrement:function(){clearTimeout(this.incrementTimeout)}}},ba=Ta,Sa=(n("b47f"),Object(h["a"])(ba,da,fa,!1,null,"4d5c14db",null)),ka=Sa.exports,xa=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ui-color-picker popover-trigger"},[n("div",{staticClass:"swatch",style:"background-color: "+e.value},[e._v(" ")]),n("ui-textbox",{ref:"input",attrs:{label:e.label,icon:e.icon,help:e.help},on:{input:e.updateFromInput},model:{value:e.textValue,callback:function(t){e.textValue=t},expression:"textValue"}}),n("ui-popover",{ref:"popover",staticClass:"popover",attrs:{position:"bottom-start",constrainToScrollParent:!1},on:{reveal:function(t){return e.$refs.input.focus()}}},[n("sketch-picker",{attrs:{value:e.colorValue,disableFields:!0},on:{input:e.updateFromPicker}})],1)],1)},wa=[],Ca=n("ecb1");function _a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Oa(e){for(var t=1;t1?n("div",{staticClass:"font-size-label"},[e._v(e._s(t))]):e._e(),n("div",{ref:"content",refInFor:!0,staticClass:"font-sample-content-inner",style:{"font-size":""+t+e.settings.fontSizeUnit},attrs:{contenteditable:"",spellcheck:"false"},on:{paste:e.onPaste,input:e.onInput,focus:e.onFocus}})])})),0):e._l(e.texts,(function(t,a){return n("div",{key:a},["gotchas"===e.selectedSampleKey?n("GotchaHeader",{attrs:{header:t.header}}):t.header.language?n("SampleHeader",{attrs:{header:t.header}}):e._e(),e._l(t.texts,(function(t,a){return n("FontSample",{key:a},e._l(e.fontSizes,(function(a,i){return n("div",{key:i,staticClass:"sample-paragraph"},[e.fontSizes.length>1?n("div",{staticClass:"font-size-label"},[e._v(e._s(a))]):e._e(),n("div",{style:{"font-size":""+a+e.settings.fontSizeUnit},attrs:{contenteditable:e.isContentEditable,spellcheck:"false"},domProps:{innerHTML:e._s(t)},on:{selectstart:e.onSelectStart,click:e.onSelectEnd}})])})),0)}))],2)}))],2)},Ua=[];window.getSelection&&document.createRange?(Ma=function(){var e=window.getSelection();return e.rangeCount>=1&&e.getRangeAt(0)},Ea=function(e){var t=e.ownerDocument,n=t.defaultView,a=n.getSelection().getRangeAt(0),i=a.cloneRange();i.selectNodeContents(e),i.setEnd(a.startContainer,a.startOffset);var r=i.toString().length;return{start:r,end:r+a.toString().length}},Ba=function(e,t){var n=e.ownerDocument,a=n.defaultView,i=0,r=n.createRange();r.setStart(e,0),r.collapse(!0);var s,o=[e],l=!1,c=!1;while(!c&&(s=o.pop()))if(3==s.nodeType){var u=i+s.length;!l&&t.start>=i&&t.start<=u&&(r.setStart(s,t.start-i),l=!0),l&&t.end>=i&&t.end<=u&&(r.setEnd(s,t.end-i),c=!0),i=u}else{var g=s.childNodes.length;while(g--)o.push(s.childNodes[g])}var p=a.getSelection();p.removeAllRanges(),p.addRange(r)}):document.selection&&(Ea=function(e){var t=e.ownerDocument,n=t.selection.createRange(),a=t.body.createTextRange();a.moveToElementText(e),a.setEndPoint("EndToStart",n);var i=a.text.length;return{start:i,end:i+n.text.length}},Ba=function(e,t){var n=e.ownerDocument,a=n.body.createTextRange();a.moveToElementText(e),a.collapse(!0),a.moveEnd("character",t.end),a.moveStart("character",t.start),a.select()});var Va=function(){function e(t){Object(De["a"])(this,e),this.selection=null,this.container=t}return Object(He["a"])(e,[{key:"save",value:function(){this.selection=Ea(this.container)}},{key:"restore",value:function(){this.selection&&Ba(this.container,this.selection)}},{key:"forget",value:function(){this.selection=null}},{key:"ancestor",value:function(){var e=Ma(this.container),t=e.commonAncestorContainer;return t.nodeType===Node.TEXT_NODE&&(t=t.parentNode),t}},{key:"existentTags",value:function(e){var t=Ma(this.container),n=t.cloneContents(),a=n.querySelectorAll(e);return a}},{key:"closestTag",value:function(e){var t=this.ancestor().closest(e);return t}},{key:"containsTag",value:function(e){return this.existentTags(e).length>0||null!=this.closestTag(e)}},{key:"wrap",value:function(e){var t=/^h[1-6]$/.test(e),n=this.ancestor();if(this.container.contains(n)){var a=Ma(this.container),i=a.cloneContents(),r=i.querySelectorAll(e),s=this.closestTag(e);if(s){var o=n===s?n.parentNode:n,l=document.createElement("tmp");a.surroundContents(l);var c=document.createDocumentFragment();Array.from(s.childNodes).forEach((function(t){try{if(t===l)c.appendChild(t.childNodes[0]);else if(t.nodeValue||t.innerText){var n=document.createElement(e);n.appendChild(t.cloneNode()),c.appendChild(n)}}catch(a){console.log(a)}})),o.replaceChild(c,s)}else if(r.length)r.forEach((function(e){try{var t=document.createDocumentFragment();Array.from(e.childNodes).forEach((function(e){return t.appendChild(e)})),e.parentNode.replaceChild(t,e)}catch(n){console.log(n)}})),a.deleteContents(),a.insertNode(i);else try{var u=t&&""===a.toString();u&&a.insertNode(document.createElement("br"));var g=document.createElement(e);g.appendChild(a.extractContents()),a.insertNode(g),u&&a.selectNodeContents(g)}catch(p){console.log(p),console.log(n)}Ra(this.container)}else console.log("not contained")}},{key:"remembered",get:function(){return null!==this.selection}}]),e}();function Ra(e){for(var t=0;t1e6?e/1e6+"M":e>9999?e/1e3+"K":e}var ai={props:{header:{type:Object,default:function(){}}},methods:{printNumber:ni}},ii=ai,ri=Object(h["a"])(ii,ei,ti,!1,null,"52cde21e",null),si=ri.exports,oi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"header-flex"},[n("h3",{attrs:{id:e.header.langId}},[e._v(e._s(e.header.topic))]),e.header.description?n("UiButton",{staticClass:"btn",attrs:{color:"none"}},[n("svg",{class:"help-icon",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",height:"18",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"none",d:"M0 0h24v24H0V0z"}}),n("path",{attrs:{fill:"currentColor",d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}})]),n("UiTooltip",{staticClass:"description-tooltip",attrs:{openOn:"click",interactive:!0},domProps:{innerHTML:e._s(e.header.description||"(no description)")}})],1):e._e(),n("div",{staticClass:"tags"},e._l(e.header.tags,(function(t,a){return n("span",{key:a},[e._v(e._s(t))])})),0),n("h3",{attrs:{id:e.header.langId}},[e._v(e._s(e.header.language))]),e.header.opentypeTag?n("div",[n("span",{staticClass:"light"},[e._v("OT code: ")]),n("code",[e._v(e._s(e.header.opentypeTag.padEnd(4," "))+" ")]),n("span",{staticClass:"light"},[e._v("HTML code: ")]),n("code",[e._v(e._s(e.header.htmlTag))])]):e._e(),n("div",[e._v(e._s(e.printNumber(e.header.speakers))+" speakers")])],1)},li=[],ci={components:{UiTooltip:ee,UiButton:O["a"]},props:{header:{type:Object,default:function(){}}},methods:{printNumber:ni}},ui=ci,gi=(n("a5f5"),Object(h["a"])(ui,oi,li,!1,null,"257cc006",null)),pi=gi.exports;function hi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function mi(e){for(var t=1;t0?-1:0},on:{focus:function(t){return 0===a?e.highlightAnchor(t):""},keydown:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"space",32,n.key,[" ","Spacebar"])?null:(n.preventDefault(),e.toggleLanguage(t.id,!t.isSelected))}}},[e._v("\n "+e._s(t.language)+"\n ")])],1)})),0)])])},bi=[];function Si(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!1),e.dispatchEvent(n)}function ki(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function xi(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:null;null==n&&(n=e.getAttribute("href"));var a=n.slice(1).replace(/\\/g,"\\\\"),i="[id='".concat(a,"']"),r=document.querySelector(i);if(r){var s=r.offsetTop;t.scrollTop=s}}function Fi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Li(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"";this.segments.push({key:this.getKey(),characters:t})},removeKerningSegment:function(e){var t=this;this.requestVuebarFreeze((function(){t.segments.splice(e,1),t.updateKerningPattern()}))},addKerningPattern:function(){var e=this;this.$store.dispatch("addKerningPattern",{segments:["",""]}),this.$nextTick((function(){var t=e.kerningPatterns[0];e.selectPattern(t.id)}))},updateKerningPattern:function(){null!=this.selectedPatternId&&(this.activeElement=document.activeElement,this.$store.dispatch("updateKerningPattern",{id:this.selectedPatternId,segments:this.segments.map((function(e){return e.characters}))}))},removeKerningPattern:function(e){var t=this;this.requestVuebarFreeze((function(){return t.$store.dispatch("removeKerningPattern",{id:e})}))},toggleKerningPattern:function(e,t){this.$store.dispatch("toggleKerningPattern",{id:e,on:t})},clearKerningPatterns:function(){var e=this;this.requestVuebarFreeze((function(){e.$store.dispatch("clearKerningPatterns"),document.querySelector(e.scrolledParentSelector).scrollTop=0}))},revertKerningPatterns:function(){this.$store.dispatch("revertKerningPatterns")},formatPatternId:function(e){return e.replace(/×/g,"×").replace(/-/g,"‑")},requestVuebarFreeze:function(e){var t=this;this.$vuebar.freezeScrollbar(this.$refs.vb),this.$nextTick((function(){e()})),setTimeout((function(){return t.$vuebar.unfreezeScrollbar(t.$refs.vb)}),250)}}},Ii=Ki,Ei=(n("e486"),Object(h["a"])(Ii,Pi,ji,!1,null,"1f701b1d",null)),Bi=Ei.exports,Mi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"language-support-summary"},[n("v-style",[e._v("\n .glyph {\n font-size: "+e._s(e.settings.fontSize)+e._s(e.settings.fontSizeUnit)+";\n }\n ")]),n("div",{staticClass:"main-column"},[n("div",[n("p",[e._v("\n Font supports "),n("strong",[e._v(e._s(e.languageSupport.supportedLanguages.length))]),e._v(" out of "),n("strong",[e._v(e._s(e.languageSupport.languages.length))]),e._v(" listed languages.\n ")]),n("h2",[e._v("\n Supported languages\n "),n("UiSelect",{staticClass:"inline",attrs:{options:e.supportedLanguagesSortingOptions},model:{value:e.supportedLanguagesSorting,callback:function(t){e.supportedLanguagesSorting=t},expression:"supportedLanguagesSorting"}})],1),n("LanguageList",{attrs:{languages:e.supportedLanguages},on:{"select-language":function(t){return e.selectLanguage(t)}}}),n("h2",[e._v("\n Unsupported languages\n "),n("UiSelect",{staticClass:"inline",attrs:{options:e.unsupportedLanguagesSortingOptions},model:{value:e.unsupportedLanguagesSorting,callback:function(t){e.unsupportedLanguagesSorting=t},expression:"unsupportedLanguagesSorting"}})],1),n("div",e._l(e.unsupportedLanguages,(function(t,a){return n("span",{key:a},[n("UiButton",{class:"support-"+Math.min(4,Math.ceil(t.missingCharacters.length/5)),on:{click:function(n){return e.selectLanguage(t)}}},[e._v("\n "+e._s(t.language)+"\n ")])],1)})),0),n("h2",[e._v("\n Missing characters\n "),n("UiSelect",{staticClass:"inline",attrs:{options:e.missingCharacterSortingOptions},model:{value:e.missingCharacterSorting,callback:function(t){e.missingCharacterSorting=t},expression:"missingCharacterSorting"}})],1),n("div",e._l(e.missingCharacters,(function(t,a){return n("div",{key:a},[n("h3",[e._v(e._s(t.script))]),e._l(t.characters.filter((function(e){return 1===e.character.length})),(function(t,a){return n("button",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character)+"\n ")])}))],2)})),0),n("h2",[e._v("\n Missing character combinations by script\n ")]),n("div",e._l(e.languageSupport.missingCharacterCombinationsByScript,(function(t,a){return n("div",{key:a},[n("h3",[e._v(e._s(t.script))]),e._l(t.characters,(function(t,a){return n("button",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character)+"\n ")])}))],2)})),0),n("h2",[e._v("\n Included characters by script\n ")]),n("FontSample",e._l(e.languageSupport.includedCharactersByScript,(function(t,a){return n("div",{key:a},[n("h3",[e._v(e._s(t.script))]),e._l(t.characters.filter((function(e){return 1===e.character.length})),(function(t,a){return n("div",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character))])}))],2)})),0),n("h2",[e._v("\n Included character combinations by script\n ")]),n("FontSample",e._l(e.languageSupport.includedCharacterCombinationsByScript,(function(t,a){return n("div",{key:a},[n("h3",[e._v(e._s(t.script))]),e._l(t.characters,(function(t,a){return n("div",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character))])}))],2)})),0),n("h2",[e._v("\n All included characters\n ")]),n("FontSample",e._l(e.languageSupport.fontCharacters,(function(t,a){return n("div",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character))])})),0)],1)]),n("Pinnable",{staticClass:"sidebar",attrs:{isPinned:!0,isVisible:!0,scrolled:!1}},[n("div",{staticClass:"language-character-sidebar"},[e.selectedCharacter?n("ScrollPanel",[n("CharacterPanel",{attrs:{characterInfo:e.selectedCharacter},on:{"select-language":function(t){return e.selectLanguage(t)}}})],1):n("div",{staticClass:"placeholder-info"},[e._v("\n "+e._s(e.languageSupport.characters.filter((function(e){return!e.isMissing})).length)+" /\n "+e._s(e.languageSupport.characters.length)+" characters\n ")]),e.selectedLanguage?n("ScrollPanel",[n("LanguagePanel",{attrs:{lang:e.selectedLanguage.htmlTag,languageInfo:e.selectedLanguage},on:{"character-clicked":function(t){return e.selectCharacter(e.languageSupport.characters.find((function(e){return e.character===t})))}}})],1):n("div",{staticClass:"placeholder-info"},[e._v("\n "+e._s(e.languageSupport.supportedLanguages.length)+" /\n "+e._s(e.languageSupport.languages.length)+" languages\n ")])],1)])],1)},Ni=[],Di=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"scroll-panel"},[n("div",{directives:[{name:"bar",rawName:"v-bar",value:{preventParentScroll:!0},expression:"{ preventParentScroll: true }"}]},[n("div",{staticClass:"content"},[e._t("default")],2)])])},Hi=[],zi={},$i=Object(h["a"])(zi,Di,Hi,!1,null,null,null),Ui=$i.exports,Vi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"language-panel"},[n("div",{staticClass:"info-bar"},[n("strong",[e._v(e._s(e.languageInfo.language)+" ")]),n("div",[n("label",[e._v("OpenType: ")]),n("code",[e._v(e._s(e.languageInfo.opentypeTag))])]),n("div",[n("label",[e._v("HTML: ")]),n("code",[e._v(e._s(e.languageInfo.htmlTag))])]),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/"+e.languageInfo.language.replace(/languages?$/,"_language"),target:"_blank",rel:"noopener noreferrer"}},[e._v("Wikipedia")])]),n("p",[n("strong",[e._v(e._s(e.printNumber(e.languageInfo.speakers))+" speakers")])]),e.languageInfo.missingCharacters.length?n("header",[e._v("missing characters")]):e._e(),n("div",{staticClass:"glyphs"},e._l(e.languageInfo.missingCharacters,(function(t,a){return n("button",{key:a,staticClass:"glyph support-4",on:{click:function(n){return e.$emit("character-clicked",t)}}},[e._v(e._s(t)+"\n ")])})),0),e.languageInfo.includedCharacters.length?n("header",[e._v("supported characters")]):e._e(),n("div",{staticClass:"glyphs"},e._l(e.languageInfo.includedCharacters,(function(t,a){return n("button",{key:a,staticClass:"glyph support-0",on:{click:function(n){return e.$emit("character-clicked",t)}}},[e._v(e._s(t)+"\n ")])})),0),e.languageInfo.specialLetters.length!=e.languageInfo.requiredCharacters.length?n("div",[n("header",[e._v("letter units")]),n("div",{staticClass:"glyphs"},e._l(e.languageInfo.specialLetters,(function(t,a){return n("button",{key:a,staticClass:"glyph",on:{click:function(n){return e.$emit("character-clicked",t)}}},[e._v(e._s(t)+"\n ")])})),0)]):e._e(),e.languageInfo.gotchas.length?n("div",[n("header",[e._v("gotchas")]),n("div",{staticClass:"gotchas"},[e._l(e.languageInfo.gotchas,(function(t,a){return n("p",{key:a,domProps:{innerHTML:e._s(""+t.topic+": "+(t.description||t.tags.join(", ")))}})})),n("p",[n("router-link",{attrs:{to:"/gotchas#"+e.languageInfo.language+"-"+e.languageInfo.id}},[e._v("\n go to tests\n ")])],1)],2)]):e._e()])},Ri=[],Gi={props:{languageInfo:{type:Object,required:!0}},methods:{printNumber:ni}},Wi=Gi,qi=(n("602a"),Object(h["a"])(Wi,Vi,Ri,!1,null,"78d0fe3c",null)),Ji=qi.exports,Zi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"language-list"},[e._l(e.languages,(function(t){return n("span",{key:t.language+"-"+t.script,attrs:{lang:t.htmlCode}},[n("UiButton",{class:"language-button support-"+Math.min(4,Math.ceil((t.missingCharacters||[]).length/5)),on:{click:function(n){return e.$emit("select-language",t)}}},[n("div",[e._v("\n "+e._s(t.language)+"\n ")]),e.fields.indexOf("coverage")>-1?n("div",{staticClass:"goals"},[e._v("\n "+e._s(t.includedCharacters.length)+"/"+e._s(t.requiredCharacters.length)+"\n ")]):e._e(),t.gotchas.length?n("div",{staticClass:"gotcha-warning-icon"},[n("svg",{class:"help-icon",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",width:"18",height:"18","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z"}})])]):e._e()])],1)})),n("UiButton",{on:{click:e.copyList}},[e._v("copy list")]),n("textarea",{ref:"list",staticStyle:{position:"absolute",left:"-9999px"},domProps:{value:e.languages.map((function(e){return e.language})).join(", ")}})],2)},Yi=[],Qi={components:{UiButton:O["a"]},props:{languages:Array,fields:{type:Array,default:function(){return[]}}},methods:{copyList:function(){this.$refs.list.select(),document.execCommand("copy"),window.getSelection().removeAllRanges()}}},Xi=Qi,er=(n("2046"),Object(h["a"])(Xi,Zi,Yi,!1,null,"6123afb8",null)),tr=er.exports,nr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"character-panel"},[n("CharacterInfo",{attrs:{character:e.characterInfo.character}}),n("div",[n("strong",[e._v(e._s(e.printNumber(e.characterInfo.speakers)))]),e._v(" speakers total")]),e.characterInfo.obligatoryLanguages?n("div",[n("h4",[e._v("obligatory in "+e._s(e.characterInfo.obligatoryLanguages.length)+" languages")]),n("div",[n("LanguageList",{attrs:{languages:e.characterInfo.obligatoryLanguages,fields:["coverage"]},on:{"select-language":function(t){return e.$emit("select-language",t)}}})],1),n("br"),n("div",[n("a",{attrs:{href:e.wordFinderUrl,target:"_blank",rel:"noopener noreferrer"}},[e._v("find words")])])]):e._e(),e.characterInfo.optionalLanguages?n("div",[e.characterInfo.optionalLanguages.length?n("div",[n("strong",[e._v("optional in "+e._s(e.characterInfo.optionalLanguages.length)+" languages")])]):e._e(),n("div",[e._v("\n "+e._s(e.characterInfo.optionalLanguages.map((function(e){return e.language+" ("+e.optionalCharactersNote+")"})).join(", "))+"\n ")])]):e._e()],1)},ar=[],ir=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"character-info"},[n("div",{staticClass:"character-font-preview"},[e._v(e._s(e.character)+" ")]),n("div",{staticClass:"info-bar"},[n("div",{staticStyle:{"font-size":"2.5rem"}},[e._v(e._s(e.characterRepresentation)+" ")]),n("div",[e._v(e._s(e.unicodes))]),n("div",[e._v(e._s(e.glyphnames))]),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/"+e.character,target:"_blank",rel:"noopener noreferrer"}},[e._v("Wikipedia")])])])},rr=[],sr={props:{character:{type:String,required:!0}},computed:{characterRepresentation:function(){var e=this.character.charCodeAt(0);return(e>767&&e<807?"◌":"")+this.character},codepoints:function(){return this.character.split("").map((function(e){return e.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0")}))},glyphnames:function(){return this.codepoints.map((function(e){return"uni"+e})).join(" + ")},unicodes:function(){return this.codepoints.map((function(e){return"U+"+e})).join(" ")}}},or=sr,lr=(n("3cae"),Object(h["a"])(or,ir,rr,!1,null,"42b34de5",null)),cr=lr.exports,ur={components:{CharacterInfo:cr,LanguageList:tr},props:{characterInfo:{type:Object,required:!0}},computed:{wordFinderUrl:function(){return"https://wordfinder.italic.space/search"+"?i=".concat(this.characterInfo.character)+"&l=".concat(this.characterInfo.obligatoryLanguages.map((function(e){return e.htmlTag})).join(","))}},methods:{printNumber:ni}},gr=ur,pr=(n("f89b"),Object(h["a"])(gr,nr,ar,!1,null,"886201ec",null)),hr=pr.exports,mr=n("e83a");function dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function fr(e){for(var t=1;t=2},keyframesText:function(){return JSON.stringify(this.animationKeyframes)}}),methods:Er({},Object(b["d"])(["addAnimationKeyframe","removeAnimationKeyframe","activateKeyframe","importAnimationKeyframes","setAnimatedProperties"]),{updateKeyframeProgress:function(){var e=this;this.animationKeyframes.forEach((function(t,n,a){var i=100/a.length,r=i*n,s=i*(n+1),o=(e.progress-r)/(s-r)*100;e.$set(e.keyframeProgress,n,Math.max(0,Math.min(100,o)))}))},play:function(){var e=this;if(this.canAnimate){var t=this.animationKeyframes.map((function(t){var n={};return Object.keys(t.frame).forEach((function(a){e.animationKeyframes.some((function(e){return e.frame[a]!==t.frame[a]}))&&(n[a]=t.frame[a])})),n})),n=[],a=[];t.forEach((function(e,t){var i=e.fontFeatureSettings,r=Object(Ne["a"])(e,["fontFeatureSettings"]);i&&(i=i.replace(/['"](ss\d\d|aalt)['"]( (0|1))* *,* */g,""));var s=Er({},r),o={fontFeatureSettings:i};0===t&&(o.duration=0,s.duration=0),n.push(o),a.push(s)}));var i=document.querySelector(".font-sample"),r=Ce["a"].timeline({targets:i,duration:this.duration,easing:"easeOutQuad",autoplay:!1,delay:100,endDelay:0});r.add({keyframes:n,easing:"steps(1)"},0),r.add({keyframes:a,update:function(t){var n=i.style,a=(t.progress-e.progress)/100*e.duration;a>48&&(e.$store.dispatch("animateSettings",{style:n}),e.progress=t.progress)},begin:function(){e.playing=!0},complete:function(){e.$store.commit("finishAnimateSettings"),e.playing=!1,e.progress=0,e.activateKeyframe({id:e.animationKeyframes.slice(-1)[0].id})}},0),this.activateKeyframe({id:this.animationKeyframes[0].id}),r.restart()}}})},Mr=Br,Nr=(n("bcca"),Object(h["a"])(Mr,_r,Or,!1,null,"0dcbafa4",null)),Dr=Nr.exports;function Hr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function zr(e){for(var t=1;t/g,">").replace(/"/g,""").replace(/'/g,"'")}function is(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function rs(e){for(var t=1;t=0&&a-1-1?e.isSelected=!0:e.isSelected=!1}))},clearKerningPatterns:function(e){e.kerningPatterns.splice(0),this.commit("setText",{sampleKey:"kerning",html:""})},initKerningPatterns:function(e){var t=this;e.defaultKerningPatterns.forEach((function(e){var n=e.segments,a=e.isVisible,i=void 0===a||a;t.commit("addKerningPattern",{segments:n,isVisible:i,toEnd:!0})}))},addKerningPattern:function(e,t){var n=t.segments,a=t.isVisible,i=t.toEnd,r=Cn.sets(n),s=r.sets,o=r.closures,l=e.kerningPatterns.slice(),c={segments:n,sets:s,closures:o,isVisible:a};c.lines=Cn.kerningString(c),c.name=es(c),c.id=Ge("kerning-pattern-"+c.name),i?l.push(c):l.unshift(c),e.kerningPatterns=l},updateKerningPattern:function(e,t){var n=t.id,a=t.segments,i=Cn.sets(a),r=i.sets,s=i.closures,o=e.kerningPatterns.slice(),l=o.find((function(e){return e.id===n}));l||(this.commit("addKerningPattern",{segments:a,isVisible:!0}),o=e.kerningPatterns.slice(),l=o[0],l.id=n),l.segments=a,l.sets=r,l.closures=s,l.lines=Cn.kerningString(l),l.name=es(l),e.kerningPatterns=o},removeKerningPattern:function(e,t){var n=t.id,a=e.kerningPatterns.findIndex((function(e){return e.id===n}));e.kerningPatterns.splice(a,1)},toggleKerningPattern:function(e,t){var n=t.id,a=t.on,i=e.kerningPatterns.findIndex((function(e){return e.id===n}));e.kerningPatterns[i].isVisible=a},updateKerning:function(e){var t=e.kerningPatterns.filter((function(e){return e.isVisible})),n=t.map((function(e){var t=e.lines,n=t[0].length>50?t.join("\n"):t.join(" ").replace(/ +/g," ");return{header:'
'),texts:["

".concat(as(n),"

")]}}));this.commit("setText",{sampleKey:"kerning",html:n})},updateFontCharacters:function(e,t){var n=t.characters;e.fontCharacters=n}},actions:{selectScripts:function(e,t){e.state;var n=e.commit,a=e.dispatch,i=t.values;n("selectScripts",{values:i}),a("updateText")},selectLanguage:function(e,t){var n=e.state,a=e.commit,i=e.dispatch,r=t.id,s=t.checked,o=n.languages.find((function(e){return e.id===r}));o.isSelected!==s&&(a("selectLanguage",{id:r,checked:s}),i("updateText"))},selectSample:function(e,t){var n=e.state,a=e.commit,i=e.dispatch,r=t.kind,s=t.id;a("selectSample",{kind:r,id:s}),"kerning"===r&&0===n.kerningPatterns.length&&this.commit("initKerningPatterns"),i("updateText")},updateFontCharacters:function(e,t){var n=e.dispatch,a=t.font,i=a.characters;this.commit("updateFontCharacters",{characters:i}),n("updateText")},updateText:function(e){var t=e.state,n=e.commit,a=e.getters;function i(e){return e.replace(/\s\s+/g,"")}var r=a.selectedSampleTextKey;if(r){var s=a.selectedLanguages.map((function(e){return rs({},e,{id:"".concat(e.language,"-").concat(e.id),texts:e[r]})})),o=[];"gotchas"===a.selectedSampleKey?s.forEach((function(e){var t=e.id,n=e.language,a=e.speakers,r=e.htmlTag,s=e.opentypeTag,l=e.texts,c=l.map((function(e){var o=e.topic,l=e.tags,c=e.tests,u=e.description,g={id:t+"-"+o.replace(/[^a-z0-9]/gi,"_"),langId:t,language:n,speakers:a,htmlTag:r,opentypeTag:s,topic:o,tags:l,tests:c,description:u},p=[i('
\n ').concat(c.map((function(e){return"

".concat(e,"

")})).join(""),"\n
"))];return{header:g,texts:p}}));o=[].concat(Object(w["a"])(o),Object(w["a"])(c))})):o=s.map((function(e){var t,n=e.id,i=e.language,r=e.script,s=e.speakers,o=e.htmlTag,l=e.opentypeTag,c=e.texts,u={langId:n,language:i,script:r,speakers:s,htmlTag:o,opentypeTag:l};switch(a.selectedSampleKey){case"ABCs":var g=c,p=g.split(" ").filter((function(e){return e.split("").every((function(e){return e.toUpperCase()===e}))})),h=g.split(" ").filter((function(e){return e.split("").every((function(e){return e.toLowerCase()===e}))}));if(t=[g,p.join(" "),h.join(" ")],"Latn"==r){var m=p.filter((function(e){return!/^[A-Z ]+$/.test(e)})),d=h.filter((function(e){return!/^[a-z ]+$/.test(e)}));t.push(m.join("")),t.push(d.join(""))}t=t.map((function(e){return"

".concat(e,"

")}));break;default:t=c instanceof Array?c.map((function(e){return"

".concat(e,"

")})):[c].map((function(e){return"

".concat(e,"

")}))}return{header:u,texts:t}})),n("setText",{sampleKey:t.selectedSampleKey,html:o})}else if("kerning"===t.selectedSampleKey)n("updateKerning");else if("glyphs"===t.selectedSampleKey){var l=['

'.concat(t.fontCharacters.map((function(e){return"").concat(e,"")})).join(""),"

")];n("setText",{sampleKey:t.selectedSampleKey,html:[{header:"",texts:l}]})}},addKerningPattern:function(e,t){var n=e.commit,a=t.segments,i=t.toEnd;n("addKerningPattern",{segments:a,isVisible:!0,toEnd:i}),n("updateKerning")},updateKerningPattern:function(e,t){var n=e.commit,a=t.id,i=t.segments;n("updateKerningPattern",{id:a,segments:i}),n("updateKerning")},removeKerningPattern:function(e,t){var n=e.commit,a=t.id;n("removeKerningPattern",{id:a}),n("updateKerning")},toggleKerningPattern:function(e,t){var n=e.commit,a=t.id,i=t.on;n("toggleKerningPattern",{id:a,on:i}),n("updateKerning")},clearKerningPatterns:function(e){var t=e.dispatch,n=e.commit;n("clearKerningPatterns"),setTimeout((function(){t("updateText")}),50)},revertKerningPatterns:function(e){var t=e.dispatch,n=e.commit;n("clearKerningPatterns"),n("initKerningPatterns"),t("updateText")}},getters:{texts:function(e){return e.texts},textHeadings:function(e){return e.textHeadings},formatRequested:function(e){return e.formatRequested},customTextIds:function(e){return e.customTextIds},selectedSampleKey:function(e){return e.selectedSampleKey},selectedSampleTextKey:function(e){return ts[e.selectedSampleKey]},scripts:function(e){return e.scripts},selectedScripts:function(e){return e.scripts.filter((function(e){return e.isSelected}))},filteredLanguages:function(e,t){return e.languages.filter((function(e){return t.selectedScripts.find((function(t){return t.script===e.script}))}))},visibleLanguages:function(e,t){return"languages"===t.selectedSampleKey?t.filteredLanguages.filter((function(e){return e.alphabet})):t.selectedSampleTextKey?t.filteredLanguages.filter((function(e){return e[t.selectedSampleTextKey].length})):[]},otherLanguages:function(e,t){return t.filteredLanguages.filter((function(e){return null==t.visibleLanguages.find((function(t){return t.id===e.id}))}))},selectedLanguages:function(e,t){return t.visibleLanguages.filter((function(e){return e.isSelected}))},languages:function(e,t){return[].concat(Object(w["a"])(t.visibleLanguages.map((function(e){return rs({},e,{hasText:!0})}))),Object(w["a"])(t.otherLanguages.map((function(e){return rs({},e,{hasText:!1})}))))},kerningPatterns:function(e){return e.kerningPatterns},languageSupport:function(e,t){function n(e,t,n){return!/^[A-Za-z ]+$/.test(e)&&n.indexOf(e)===t}var a=t.selectedLanguages,i=a.map((function(t){var a=("Latn"===t.script?t.specialCharacters:t.alphabet).split(" ").filter((function(e,t,n){return n.indexOf(e)===t&&e})),i=a.join("").split("").filter(n),r=i.filter((function(t){return t.split("").every((function(t){return e.fontCharacters.indexOf(t)>-1}))})),s=i.filter((function(e){return-1===r.indexOf(e)}));return rs({},t,{specialLetters:a,requiredCharacters:i,includedCharacters:r,missingCharacters:s})})),r=i.filter((function(e){return e.requiredCharacters.length===e.includedCharacters.length})),s=i.filter((function(e){return-1===r.indexOf(e)})),o=i.reduce((function(e,t){return[].concat(Object(w["a"])(t.missingCharacters),Object(w["a"])(e))}),[]),l=[].concat(Object(w["a"])(i.reduce((function(e,t){return[].concat(Object(w["a"])(t.specialLetters),Object(w["a"])(e))}),[])),Object(w["a"])(i.reduce((function(e,t){return[].concat(Object(w["a"])(t.requiredCharacters),Object(w["a"])(e))}),[]))).filter((function(e,t,n){return n.indexOf(e)===t})).map((function(e){return{character:e,unicode:e.charCodeAt(0),obligatoryLanguages:i.filter((function(t){return t.alphabet.indexOf(e)>-1})),optionalLanguages:i.filter((function(t){return t.optionalCharacters.indexOf(e)>-1})),script:(us.find((function(t){return t.alphabet.indexOf(e)>-1}))||{script:"Latn"}).script,isMissing:o.indexOf(e)>-1}})).map((function(e){return rs({},e,{speakers:[].concat(Object(w["a"])(e.obligatoryLanguages),Object(w["a"])(e.optionalLanguages)).reduce((function(e,t){return e+t.speakers}),0)})})),c=ps(l,!0),u=ps(l,!1),g=ms(c),p=ms(u),h=e.fontCharacters.map((function(e){return{character:e,unicode:e.charCodeAt(0),obligatoryLanguages:i.filter((function(t){return t.alphabet.indexOf(e)>-1})),optionalLanguages:i.filter((function(t){return t.optionalCharacters.indexOf(e)>-1}))}})).map((function(e){return rs({},e,{speakers:[].concat(Object(w["a"])(e.obligatoryLanguages),Object(w["a"])(e.optionalLanguages)).reduce((function(e,t){return e+t.speakers}),0)})}));return{languages:i,supportedLanguages:r,unsupportedLanguages:s,characters:l,missingCharactersByScript:c,includedCharactersByScript:u,missingCharacterCombinationsByScript:g,includedCharacterCombinationsByScript:p,fontCharacters:h}}}};function ps(e,t){var n=[];return e.filter((function(e){return e.isMissing===t})).forEach((function(e){var t=n.find((function(t){return t.script===e.script}));t||(t={script:e.script,characters:[]},n.push(t)),t.characters.push(e)})),n.forEach((function(e){e.characters.sort((function(e,t){return e.character.localeCompare(t.character,"en",{caseFirst:"upper"})}))})),n}function hs(e,t){return e.charCodeAt(t)>768&&e.charCodeAt(t)<894}function ms(e){return e.map((function(e){return rs({},e,{characters:e.characters.filter((function(e){return e.character.length>1&&hs(e.character,1)}))})})).filter((function(e){return e.characters.length}))}n("4917");var ds=function(){function e(){Object(De["a"])(this,e)}return Object(He["a"])(e,null,[{key:"getDefaults",value:function(){var e=this,t={};return Object.keys(this.definitions).forEach((function(n){var a=e.definitions[n],i=a.default;"function"===typeof i&&a.type!==Function?t[n]=i():t[n]=i})),t}},{key:"getStyleFromSettings",value:function(e){return{fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:e.textAlign,textTransform:e.textTransform,color:e.textColor,backgroundColor:e.backgroundColor,fontFeatureSettings:e.gsubFeatures.concat(e.gposFeatures).map((function(e){return"'".concat(e.tag,"' ").concat(e.value?"1":"0"," ")})).join(", "),fontVariationSettings:e.variationAxes.filter((function(e){return e.enabled})).map((function(e){return"'".concat(e.tag,"' ").concat(e.value," ")})).join(", ")||"unset"}}},{key:"mergeStyleOntoSettings",value:function(e,t){function n(n,a){var i={};(t[n]||"").split(/, ?/g).filter((function(e){return e})).map((function(e){var t=e.match(/[a-z]{4}/i);if(t){var n=t[0];t=e.match(/ \d+/);var a=t?parseInt(t[0]):1;i[n]=a}})),e[a].forEach((function(t,n){t.tag in i&&(e[a][n].value=i[t.tag])}))}e.fontSize=parseFloat(t.fontSize),e.lineHeight=parseFloat(e.lineHeight),e.textColor=t.color,e.backgroundColor=t.backgroundColor,n("fontFeatureSettings","gsubFeatures"),n("fontFeatureSettings","gposFeatures"),n("fontVariationSettings","variationAxes")}},{key:"definitions",get:function(){return{fontFamily:{type:String,default:""},fallbackFontFamily:{type:String,default:"sans-serif"},fontSize:{type:Number,default:24,validate:function(e,t){return e>=t.minFontSize&&e<=t.maxFontSize}},fontSizeUnit:{type:String,default:"pt",kind:"select"},fontSizeUnitOptions:{type:Array,default:function(){return["pt","px","em","vw","vh"]}},enableWaterfall:{type:Boolean,default:!1},waterfallSizes:{type:String,default:"10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,34,36,38,44,64"},defaultLineHeight:{type:Boolean,default:!0},lineHeight:{type:Number,default:1,validate:function(e,t){return e>=t.minLineHeight&&e<=t.maxLineHeight}},minLineHeight:{type:Number,default:.5},maxLineHeight:{type:Number,default:3},lineHeightStep:{type:Number,default:.01},lineHeightClickStep:{type:Number,default:.01},defaultTracking:{type:Boolean,default:!0},tracking:{type:Number,default:0,validate:function(e,t){return e>=t.minTracking&&e<=t.maxTracking}},minTracking:{type:Number,default:-.5},maxTracking:{type:Number,default:2},trackingStep:{type:Number,default:.001},trackingClickStep:{type:Number,default:.01},textAlign:{type:String,default:"left",kind:"select"},textAlignOptions:{type:Array,default:function(){return["left","center","right","justify"]}},textColor:{type:String,default:"#000"},backgroundColor:{type:String,default:"#fff"},textTransform:{type:String,default:"none",kind:"select"},textTransformOptions:{type:Array,default:function(){return["none","uppercase","capitalize","lowercase"]}},wrapLines:{type:Boolean,default:!1},gposFeatures:{type:Object,default:function(){return[]}},gsubFeatures:{type:Object,default:function(){return[]}},variationAxes:{type:Object,default:function(){return[]}},enableVariationAxis:{type:Object,default:function(){return[]}}}}}]),e}();function fs(e){return JSON.parse(JSON.stringify(e))}var vs={state:{animatedProperties:Object.keys(ds.definitions),animatableProperties:Object.keys(ds.definitions),animationKeyframes:[],activeKeyframeId:null,maxId:0},getters:{animatedProperties:function(e){return e.animatedProperties},animatableProperties:function(e){return e.animatableProperties},animationKeyframes:function(e){return e.animationKeyframes},activeKeyframeId:function(e){return e.activeKeyframeId}},mutations:{setAnimatedProperties:function(e,t){var n=t.properties;e.animatedProperties=n},importAnimationKeyframes:function(e,t){var n=t.keyframes;try{e.animationKeyframes=JSON.parse(n)}catch(a){console.log(a)}},addAnimationKeyframe:function(e){var t=++e.maxId;e.activeKeyframeId=t,e.animationKeyframes.push({id:t}),this.commit("updateKeyframe")},removeAnimationKeyframe:function(e,t){var n=t.id;if(null!=n){var a=e.animationKeyframes.findIndex((function(e){return e.id===n}));e.animationKeyframes.splice(a,1)}},activateKeyframe:function(e,t){var n=t.id;e.activeKeyframeId=n;var a=e.animationKeyframes.find((function(e){return e.id===n})),i=a.snapshot;this.commit("restoreSettings",{snapshot:i})},updateKeyframe:function(e){var t=e.activeKeyframeId;if(null!=t){var n=fs(this.state.settings),a=ds.getStyleFromSettings(this.state.settings),r=e.animationKeyframes.findIndex((function(e){return e.id===t}));i["a"].set(e.animationKeyframes,r,{id:t,snapshot:n,frame:a})}},finishAnimateSettings:function(){this.commit("animateSettings",{settings:null})}},actions:{animateSettings:function(e,t){var n=t.style,a=fs(this.state.settings);ds.mergeStyleOntoSettings(a,n);var i=fs(this.state.settings);Object.keys(a).filter((function(t){return e.state.animatedProperties.indexOf(t)>-1})).forEach((function(e){i[e]=a[e]})),this.commit("animateSettings",{settings:i})}}},ys=".app-content";i["a"].prototype.$scrollToTop=function(){return ys.scrollTo(0,0)};var Ts={state:{scrolledParentSelector:ys,sticky:!0,footerVisible:0,footerSentinelVisibleRatio:0},getters:{scrolledParentSelector:function(e){return e.scrolledParentSelector}},mutations:{sticky:function(e,t){var n=t.value;e.sticky=n},updateFooter:function(e,t){var n=t.visible,a=t.ratio;e.footerVisible=n,e.footerSentinelVisibleRatio=a},scrollToTop:function(e){this.commit("sticky",{value:!0}),this.commit("updateFooter",{visible:!1,ratio:0});var t=document.querySelector(e.scrolledParentSelector);t.scrollTop=0}},actions:{}};function bs(e){e.subscribe((function(t,n){var a=t.type,i=t.payload;switch(a){case"updateSetting":null!=n.animation.activeKeyframeId&&e.commit("updateKeyframe");break;case"selectFont":i.font&&e.dispatch("updateFontCharacters",{font:i.font})}}))}var Ss=function(){function e(){Object(De["a"])(this,e)}return Object(He["a"])(e,[{key:"convert",value:function(e){var t={"ch-cm":.21087588*e.value,"ch-em":.5*e.value,"ch-ex":e.value/.9,"ch-in":.083022*e.value,"ch-mm":2.1087588*e.value,"ch-pc":.5*e.value,"ch-pt":5.977584*e.value,"ch-%":50*e.value,"ch-px":e.value*e.base*.5,"cm-ch":e.value/.21087588,"cm-em":e.value/.42175176,"cm-ex":e.value/.189788292,"cm-in":.39*e.value,"cm-mm":10*e.value,"cm-pc":e.value/.42175176,"cm-pt":28.3464566929*e.value,"cm-%":e.value/e.base*100/2.54*e.dpi,"cm-px":e.value/2.54*e.dpi,"em-ch":e.value/.5,"em-cm":.42175176*e.value,"em-ex":e.value/.45,"em-in":.166044*e.value,"em-mm":e.value/.237106301584,"em-pc":e.value,"em-pt":11.955168*e.value,"em-%":100*e.value,"em-px":e.value*e.base,"em-vh":100*e.value*e.base/S.height,"em-vw":100*e.value*e.base/S.width,"ex-ch":.9*e.value,"ex-cm":.189788292*e.value,"ex-em":.45*e.value,"ex-in":.0747198*e.value,"ex-mm":1.89788292*e.value,"ex-pc":.45*e.value,"ex-pt":5.3798256*e.value,"ex-%":45*e.value,"ex-px":e.value*e.base*.45,"in-ch":e.value/.083022,"in-cm":2.54*e.value,"in-em":e.value/.166044,"in-ex":e.value/.0747198,"in-mm":2.54*e.value*10,"in-pc":e.value/.166044,"in-pt":e.value/.014842519685,"in-%":e.value/e.base*100*e.dpi,"in-px":e.value*e.dpi,"mm-ch":e.value/2.1087588,"mm-cm":e.value/10,"mm-em":.237106301584*e.value,"mm-ex":e.value/1.89788292,"mm-in":.39*e.value/10,"mm-pc":e.value/4.42175176,"mm-pt":e.value/.352777777778,"mm-%":e.value/e.base*100/2.54*e.dpi/10,"mm-px":e.value/2.54*e.dpi/10,"pc-ch":e.value/.5,"pc-cm":.42175176*e.value,"pc-em":e.value,"pc-ex":e.value/.45,"pc-in":.166044*e.value,"pc-mm":4.42175176*e.value,"pc-pt":e.value/.0836458341698,"pc-%":100*e.value,"pc-px":e.value*e.base,"pt-ch":e.value/5.977584,"pt-cm":e.value/28.3464566929,"pt-em":e.value/11.955168,"pt-ex":e.value/5.3798256,"pt-in":.014842519685*e.value,"pt-mm":.352777777778*e.value,"pt-pc":.0836458341698*e.value,"pt-%":e.value/(e.base-4)*100,"pt-px":96*e.value/72,"pt-vh":100*e.value*96/72/S.height,"pt-vw":100*e.value*96/72/S.width,"%-ch":e.value/50,"%-cm":e.value*e.base/100*2.54/e.dpi,"%-em":e.value/100,"%-ex":e.value/45,"%-in":e.value*e.base/100/e.dpi,"%-mm":e.value*e.base/100*2.54/e.dpi*10,"%-pc":e.value/100,"%-pt":e.value*(e.base-4)/100,"%-px":e.value*e.base/100,"px-ch":e.value/e.base/.5,"px-cm":2.54*e.value/e.dpi,"px-em":e.value/e.base,"px-ex":e.value/e.base/.45,"px-in":e.value/e.dpi,"px-mm":2.54*e.value/e.dpi*10,"px-pc":e.value/e.base,"px-pt":72*e.value/96,"px-%":e.value/e.base*100,"px-vh":e.value/S.height*100,"px-vw":e.value/S.width*100,"vh-px":e.value*S.height/100,"vh-pt":.75*e.value*S.height/100,"vh-em":e.value*S.height/100/e.base,"vh-vw":e.value*S.height/S.width,"vw-px":e.value*S.width/100,"vw-pt":.75*e.value*S.width/100,"vw-em":e.value*S.width/100/e.base,"vw-vh":e.value*S.width/S.height},n="".concat(e.from,"-").concat(e.to),a=t[n];return!isNaN(a)&&this.round(a,e.decimals)+e.to}},{key:"getUnits",value:function(){return["ch","cm","em","ex","in","mm","pc","pt","%","px"]}},{key:"round",value:function(e,t){return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}}]),e}();function ks(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.base,n=void 0===t?16:t,a=e.decimals,i=void 0===a?2:a,r=e.dpi,s=void 0===r?72:r,o=e.from,l=e.to,c=e.value,u=new Ss,g=u.convert({base:n,decimals:i,dpi:s,from:o,to:l,value:c});return g}var xs={minFontSize:function(){switch(this.fontSizeUnit){case"px":return 4;default:var e=ks({from:"px",value:4,to:this.fontSizeUnit});return parseFloat(e)}},maxFontSize:function(){switch(this.fontSizeUnit){case"px":return 1e3;default:var e=ks({from:"px",value:1e3,to:this.fontSizeUnit});return parseFloat(e)}},fontSizeStep:function(){switch(this.fontSizeUnit){case"pt":return.5;case"px":return 1;case"vw":case"vh":case"em":return.01;default:return.01}},fontSizeClickStep:function(){switch(this.fontSizeUnit){case"px":case"pt":case"vw":case"vh":return 1;case"em":return.5;default:return 1}}},ws=n("14fe"),Cs=n.n(ws);function _s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Os(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{value:null},n=t.value,a=null!=n?n:!e.settingsPanelVisible;e.settingsPanelVisible=a},toggleContextualPanel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{value:null},n=t.value,a=null!=n?n:!e.contextualPanelVisible;e.contextualPanelVisible=a},fontLoadStart:function(e){e.fontLoading=!0},fontLoadEnd:function(e){e.fontLoading=!1},selectFont:function(e,t){var n=t.font,a=t.boldFont,i=t.italicFont,r=t.boldItalicFont,s=t.headerFont;n&&(e.selectedFont=n,this.commit("mapFontFeatureSettings"),this.commit("mapFontVariationSettings")),a&&(e.selectedBoldFont=a),i&&(e.selectedItalicFont=i),r&&(e.selectedBoldItalicFont=r),s&&(e.selectedHeaderFont=s)},mapFontFeatureSettings:function(e){var t=e.selectedFont;function n(n){var a=t[n],i=e.settings[n];i.forEach((function(e){e.active=!1})),a.forEach((function(e){var t=i.find((function(t){return t.tag===e.tag}));t?(t.active=!0,"locl"===e.tag?t.languages=e.languages:/ss\d\d/.test(e.tag)&&(t.uiName=e.uiName)):i.push(Os({},e,{value:Cs.a.indexOf(e.tag)>-1,active:!0}))}))}n("gsubFeatures"),n("gposFeatures")},updateGposFeature:function(e,t){var n=t.tag,a=t.value,i=e.settings.gposFeatures,r=i.find((function(e){return e.tag===n}));r&&(r.value=a),this.commit("updateSetting")},updateGsubFeature:function(e,t){var n=t.tag,a=t.value,i=e.settings.gsubFeatures,r=i.find((function(e){return e.tag===n}));r&&(r.value=a),this.commit("updateSetting")},updateLoclFeature:function(e,t){var n=t.selectedLanguage,a=e.settings.gsubFeatures,i=a.find((function(e){return"locl"===e.tag}));i&&(i.selectedLanguage=n),this.commit("updateSetting")},mapFontVariationSettings:function(e){var t=e.selectedFont;e.settings.variationAxes=t.variationAxes.map((function(t){var n=e.settings.variationAxes.find((function(e){return e.tag===t.tag}));return Os({},t,{value:n?n.value:t.defaultValue,enabled:!n||n.enabled,displayName:t.name.en})}))},updateVariationAxis:function(e,t){var n=t.tag,a=t.value,i=t.enabled,r=e.settings.variationAxes.find((function(e){return e.tag===n}));r&&(null!=a&&(r.value=a),null!=i&&(r.enabled=i)),this.commit("updateSetting")},resetSettings:function(e){var t=ds.getDefaults();Object.keys(t).forEach((function(n){return e.settings[n]=t[n]})),this.commit("computeParams"),this.commit("updateSetting")},computeParams:function(e){Object.keys(xs).forEach((function(t){var n=xs[t],a=n.call(e.settings);a!==e.settings[t]&&(e.settings[t]=a)}))},updateSettings:function(e,t){var n=this;Object.keys(t).forEach((function(a){e.settings,ds.definitions[a];var i=t[a];"fontSizeUnit"==a&&n.commit("convertFontSize",{newUnit:i}),e.settings[a]=i,n.commit("updateSetting")})),this.commit("computeParams")},restoreSettings:function(e,t){var n=t.snapshot;e.settings=n,this.commit("mapFontFeatureSettings"),this.commit("mapFontVariationSettings")},animateSettings:function(e,t){var n=t.settings;n?(e.animating=!0,Object.keys(n).forEach((function(t){i["a"].set(e.displayedSettings,t,n[t])}))):e.animating=!1},updateSetting:function(){},convertFontSize:function(e,t){var n=t.newUnit,a=e.settings,i=String(a.fontSizeStep).replace(/\d+\.?/,"").length,r=ks({value:a.fontSize,from:a.fontSizeUnit,to:n,decimals:i});a.fontSize=parseFloat(r)}},actions:{fontLoadStart:function(e){var t=e.commit;t("fontLoadStart")},fontLoadEnd:function(e){var t=e.commit;t("fontLoadEnd")}}});bs(Ps);var js=Ps;n("4cf1");i["a"].config.productionTip=!1,i["a"].use(s.a),i["a"].use(o["a"]),i["a"].use(l["a"]),new i["a"]({router:Qr,store:js,render:function(e){return e(d)}}).$mount("#app")},"5c0b":function(e,t,n){"use strict";var a=n("fc32"),i=n.n(a);i.a},"5c5b":function(e,t,n){},"602a":function(e,t,n){"use strict";var a=n("f389"),i=n.n(a);i.a},"692a":function(e,t,n){"use strict";var a=n("fa94"),i=n.n(a);i.a},"6c59":function(e,t,n){e.exports=function(){return new Worker(n.p+"56d3d284d3b26bb5569a.worker.js")}},"6fa0":function(e,t,n){"use strict";var a=n("c9d8"),i=n.n(a);i.a},"70d6":function(e,t,n){},"71c9":function(e,t,n){"use strict";var a=n("0e25"),i=n.n(a);i.a},7306:function(e,t,n){"use strict";var a=n("3a4d"),i=n.n(a);i.a},"774c":function(e,t,n){"use strict";var a=n("e4e9"),i=n.n(a);i.a},8698:function(e,t,n){},"8cc4":function(e,t,n){"use strict";var a=n("3473"),i=n.n(a);i.a},"911e":function(e,t,n){},9224:function(e){e.exports=JSON.parse('{"name":"bulletproof","version":"1.0.0","private":true,"scripts":{"serve":"vue-cli-service serve","build":"vue-cli-service build","lint":"vue-cli-service lint","test:e2e":"vue-cli-service test:e2e","test:unit":"vue-cli-service test:unit","deploy":"node .\\\\scripts\\\\publish.js"},"dependencies":{"animejs":"^3.2.1","convert-css-length":"^2.0.1","core-js":"^2.6.11","decimal.js":"^10.2.1","detect-browser":"^4.8.0","grapheme-splitter":"^1.0.4","hamsterjs":"^1.1.3","keen-ui":"^1.3.1","language-data":"0.0.16","lodash.debounce":"^4.0.8","lodash.throttle":"^4.1.1","opentype.js":"git+https://github.com/hyvyys/opentype.js.git","vue":"^2.6.12","vue-closable":"0.0.3","vue-color":"^2.7.1","vue-observe-visibility":"^0.4.6","vue-router":"^3.4.6","vue-worker":"^1.2.1","vuebar":"github:hyvyys/vuebar","vuex":"^3.5.1"},"devDependencies":{"@vue/cli-plugin-babel":"^3.12.1","@vue/cli-plugin-eslint":"^3.12.1","@vue/cli-plugin-unit-jest":"^3.12.1","@vue/cli-service":"^3.12.1","@vue/test-utils":"1.0.0-beta.29","babel-core":"7.0.0-bridge.0","babel-eslint":"^10.1.0","babel-jest":"^25.5.1","eslint":"^5.16.0","eslint-plugin-vue":"^5.0.0","gh-pages":"^2.2.0","markdown-it":"^9.1.0","node-sass":"^4.14.1","sass-loader":"^7.1.0","vue-svg-inline-loader":"^1.5.0","vue-template-compiler":"^2.6.12","ware-loader":"^0.2.4","worker-loader":"^2.0.0"},"postcss":{"plugins":{"autoprefixer":{}}},"browserslist":["> 1%","last 2 versions"],"jest":{"moduleFileExtensions":["js","jsx","json","vue"],"transform":{"^.+\\\\.vue$":"vue-jest",".+\\\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$":"jest-transform-stub","^.+\\\\.jsx?$":"babel-jest"},"transformIgnorePatterns":["node_modules/(?!(keen-ui|tippy\\\\.js|popper\\\\.js|vue-color)/)"],"moduleNameMapper":{"^@/(.*)$":"/src/$1"},"snapshotSerializers":["jest-serializer-vue"],"testMatch":["**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"],"testURL":"http://localhost/","watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"]}}')},"9a52":function(e,t,n){},"9bea":function(e,t,n){"use strict";var a=n("4761"),i=n.n(a);i.a},"9cbb":function(e,t,n){},"9fee":function(e,t,n){"use strict";var a=n("e89a"),i=n.n(a);i.a},a01f:function(e,t,n){"use strict";var a=n("cee9"),i=n.n(a);i.a},a11f:function(e,t,n){"use strict";var a=n("4ecf"),i=n.n(a);i.a},a53d:function(e,t,n){},a5f5:function(e,t,n){"use strict";var a=n("e5da"),i=n.n(a);i.a},acd7:function(e,t,n){},b3be:function(e,t,n){},b47f:function(e,t,n){"use strict";var a=n("9a52"),i=n.n(a);i.a},b68e:function(e,t,n){},b92e:function(e,t,n){"use strict";var a=n("a53d"),i=n.n(a);i.a},bcca:function(e,t,n){"use strict";var a=n("9cbb"),i=n.n(a);i.a},bf45:function(e,t){e.exports=[{name:"Abaza",opentypeTag:"ABA ",htmlTag:"abq"},{name:"Abkhazian",opentypeTag:"ABK ",htmlTag:"ab"},{name:"Acholi",opentypeTag:"ACH ",htmlTag:"ach"},{name:"Achi",opentypeTag:"ACR ",htmlTag:"acr"},{name:"Adyghe",opentypeTag:"ADY ",htmlTag:"ady"},{name:"Afrikaans",opentypeTag:"AFK ",htmlTag:"af"},{name:"Afar",opentypeTag:"AFR ",htmlTag:"aa"},{name:"Agaw",opentypeTag:"AGW ",htmlTag:"ahg"},{name:"Aiton",opentypeTag:"AIO ",htmlTag:"aio"},{name:"Akan",opentypeTag:"AKA ",htmlTag:"ak"},{name:"Alsatian",opentypeTag:"ALS ",htmlTag:"gsw"},{name:"Altai",opentypeTag:"ALT ",htmlTag:"atv"},{name:"Amharic",opentypeTag:"AMH ",htmlTag:"am"},{name:"Anglo-Saxon",opentypeTag:"ANG ",htmlTag:"ang"},{name:"Phonetic transcription—Americanist conventions",opentypeTag:"APPH"},{name:"Arabic",opentypeTag:"ARA ",htmlTag:"ar"},{name:"Aragonese",opentypeTag:"ARG ",htmlTag:"an"},{name:"Aari",opentypeTag:"ARI ",htmlTag:"aiw"},{name:"Rakhine",opentypeTag:"ARK ",htmlTag:"mhv"},{name:"Assamese",opentypeTag:"ASM ",htmlTag:"as"},{name:"Asturian",opentypeTag:"AST ",htmlTag:"ast"},{name:"Athapaskan",opentypeTag:"ATH ",htmlTag:"apk"},{name:"Avar",opentypeTag:"AVR ",htmlTag:"av"},{name:"Awadhi",opentypeTag:"AWA ",htmlTag:"awa"},{name:"Aymara",opentypeTag:"AYM ",htmlTag:"ay"},{name:"Torki",opentypeTag:"AZB ",htmlTag:"azb"},{name:"Azerbaijani",opentypeTag:"AZE ",htmlTag:"az"},{name:"Badaga",opentypeTag:"BAD ",htmlTag:"bfq"},{name:"Banda",opentypeTag:"BAD0",htmlTag:"bad"},{name:"Baghelkhandi",opentypeTag:"BAG ",htmlTag:"bfy"},{name:"Balkar",opentypeTag:"BAL ",htmlTag:"krc"},{name:"Balinese",opentypeTag:"BAN ",htmlTag:"ban"},{name:"Bavarian",opentypeTag:"BAR ",htmlTag:"bar"},{name:"Baulé",opentypeTag:"BAU ",htmlTag:"bci"},{name:"Batak Toba",opentypeTag:"BBC ",htmlTag:"bbc"},{name:"Berber",opentypeTag:"BBR ",htmlTag:"ber"},{name:"Bench",opentypeTag:"BCH ",htmlTag:"bcq"},{name:"Bible Cree",opentypeTag:"BCR "},{name:"Bandjalang",opentypeTag:"BDY ",htmlTag:"bdy"},{name:"Belarussian",opentypeTag:"BEL ",htmlTag:"be"},{name:"Bemba",opentypeTag:"BEM ",htmlTag:"bem"},{name:"Bengali",opentypeTag:"BEN ",htmlTag:"bn"},{name:"Haryanvi",opentypeTag:"BGC ",htmlTag:"bgc"},{name:"Bagri",opentypeTag:"BGQ ",htmlTag:"bgq"},{name:"Bulgarian",opentypeTag:"BGR ",htmlTag:"bg"},{name:"Bhili",opentypeTag:"BHI ",htmlTag:"bhi"},{name:"Bhojpuri",opentypeTag:"BHO ",htmlTag:"bho"},{name:"Bikol",opentypeTag:"BIK ",htmlTag:"bik"},{name:"Bilen",opentypeTag:"BIL ",htmlTag:"byn"},{name:"Bislama",opentypeTag:"BIS ",htmlTag:"bi"},{name:"Kanauji",opentypeTag:"BJJ ",htmlTag:"bjj"},{name:"Blackfoot",opentypeTag:"BKF ",htmlTag:"bla"},{name:"Baluchi",opentypeTag:"BLI ",htmlTag:"bal"},{name:"Pa’o Karen",opentypeTag:"BLK ",htmlTag:"blk"},{name:"Balante",opentypeTag:"BLN ",htmlTag:"bjt"},{name:"Balti",opentypeTag:"BLT ",htmlTag:"bft"},{name:"Bambara (Bamanankan)",opentypeTag:"BMB ",htmlTag:"bm"},{name:"Bamileke",opentypeTag:"BML "},{name:"Bosnian",opentypeTag:"BOS ",htmlTag:"bs"},{name:"Bishnupriya Manipuri",opentypeTag:"BPY ",htmlTag:"bpy"},{name:"Breton",opentypeTag:"BRE ",htmlTag:"br"},{name:"Brahui",opentypeTag:"BRH ",htmlTag:"brh"},{name:"Braj Bhasha",opentypeTag:"BRI ",htmlTag:"bra"},{name:"Burmese",opentypeTag:"BRM ",htmlTag:"my"},{name:"Bodo",opentypeTag:"BRX ",htmlTag:"brx"},{name:"Bashkir",opentypeTag:"BSH ",htmlTag:"ba"},{name:"Burushaski",opentypeTag:"BSK ",htmlTag:"bsk"},{name:"Beti",opentypeTag:"BTI ",htmlTag:"btb"},{name:"Batak Simalungun",opentypeTag:"BTS ",htmlTag:"bts"},{name:"Bugis",opentypeTag:"BUG ",htmlTag:"bug"},{name:"Medumba",opentypeTag:"BYV ",htmlTag:"byv"},{name:"Kaqchikel",opentypeTag:"CAK ",htmlTag:"cak"},{name:"Catalan",opentypeTag:"CAT ",htmlTag:"ca"},{name:"Zamboanga Chavacano",opentypeTag:"CBK ",htmlTag:"cbk"},{name:"Chinantec",opentypeTag:"CCHN",htmlTag:"cco"},{name:"Cebuano",opentypeTag:"CEB ",htmlTag:"ceb"},{name:"Chechen",opentypeTag:"CHE ",htmlTag:"ce"},{name:"Chaha Gurage",opentypeTag:"CHG ",htmlTag:"sgw"},{name:"Chattisgarhi",opentypeTag:"CHH ",htmlTag:"hne"},{name:"Chichewa (Chewa, Nyanja)",opentypeTag:"CHI ",htmlTag:"ny"},{name:"Chukchi",opentypeTag:"CHK ",htmlTag:"ckt"},{name:"Chuukese",opentypeTag:"CHK0",htmlTag:"chk"},{name:"Choctaw",opentypeTag:"CHO ",htmlTag:"cho"},{name:"Chipewyan",opentypeTag:"CHP ",htmlTag:"chp"},{name:"Cherokee",opentypeTag:"CHR ",htmlTag:"chr"},{name:"Chamorro",opentypeTag:"CHA ",htmlTag:"ch"},{name:"Chuvash",opentypeTag:"CHU ",htmlTag:"cv"},{name:"Cheyenne",opentypeTag:"CHY ",htmlTag:"chy"},{name:"Chiga",opentypeTag:"CGG ",htmlTag:"cgg"},{name:"Western Cham",opentypeTag:"CJA ",htmlTag:"cja"},{name:"Eastern Cham",opentypeTag:"CJM ",htmlTag:"cjm"},{name:"Comorian",opentypeTag:"CMR ",htmlTag:"swb"},{name:"Coptic",opentypeTag:"COP ",htmlTag:"cop"},{name:"Cornish",opentypeTag:"COR ",htmlTag:"kw"},{name:"Corsican",opentypeTag:"COS ",htmlTag:"co"},{name:"Creoles",opentypeTag:"CPP ",htmlTag:"crp"},{name:"Cree",opentypeTag:"CRE ",htmlTag:"cr"},{name:"Carrier",opentypeTag:"CRR ",htmlTag:"crx"},{name:"Crimean Tatar",opentypeTag:"CRT ",htmlTag:"crh"},{name:"Kashubian",opentypeTag:"CSB ",htmlTag:"csb"},{name:"Church Slavonic",opentypeTag:"CSL ",htmlTag:"cu"},{name:"Czech",opentypeTag:"CSY ",htmlTag:"cs"},{name:"Chittagonian",opentypeTag:"CTG ",htmlTag:"ctg"},{name:"San Blas Kuna",opentypeTag:"CUK ",htmlTag:"cuk"},{name:"Danish",opentypeTag:"DAN ",htmlTag:"da"},{name:"Dargwa",opentypeTag:"DAR ",htmlTag:"dar"},{name:"Dayi",opentypeTag:"DAX ",htmlTag:"dax"},{name:"Woods Cree",opentypeTag:"DCR ",htmlTag:"cwd"},{name:"German",opentypeTag:"DEU ",htmlTag:"de"},{name:"Dogri",opentypeTag:"DGO ",htmlTag:"dgo"},{name:"Dogri",opentypeTag:"DGR ",htmlTag:"doi"},{name:"Dhangu",opentypeTag:"DHG ",htmlTag:"dhg"},{name:"Divehi (Dhivehi, Maldivian)",opentypeTag:"DHV (deprecated)",htmlTag:"dv"},{name:"Dimli",opentypeTag:"DIQ ",htmlTag:"diq"},{name:"Divehi (Dhivehi, Maldivian)",opentypeTag:"DIV ",htmlTag:"dv"},{name:"Zarma",opentypeTag:"DJR ",htmlTag:"dje"},{name:"Djambarrpuyngu",opentypeTag:"DJR0",htmlTag:"djr"},{name:"Dangme",opentypeTag:"DNG ",htmlTag:"ada"},{name:"Dan",opentypeTag:"DNJ ",htmlTag:"dnj"},{name:"Dinka",opentypeTag:"DNK ",htmlTag:"din"},{name:"Dari",opentypeTag:"DRI ",htmlTag:"prs"},{name:"Dhuwal",opentypeTag:"DUJ ",htmlTag:"duj"},{name:"Dungan",opentypeTag:"DUN ",htmlTag:"dng"},{name:"Dzongkha",opentypeTag:"DZN ",htmlTag:"dz"},{name:"Ebira",opentypeTag:"EBI ",htmlTag:"igb"},{name:"Eastern Cree",opentypeTag:"ECR ",htmlTag:"crj"},{name:"Edo",opentypeTag:"EDO ",htmlTag:"bin"},{name:"Efik",opentypeTag:"EFI ",htmlTag:"efi"},{name:"Greek",opentypeTag:"ELL ",htmlTag:"el"},{name:"Eastern Maninkakan",opentypeTag:"EMK ",htmlTag:"emk"},{name:"English",opentypeTag:"ENG ",htmlTag:"en"},{name:"Erzya",opentypeTag:"ERZ ",htmlTag:"myv"},{name:"Spanish",opentypeTag:"ESP ",htmlTag:"es"},{name:"Central Yupik",opentypeTag:"ESU ",htmlTag:"esu"},{name:"Estonian",opentypeTag:"ETI ",htmlTag:"et"},{name:"Basque",opentypeTag:"EUQ ",htmlTag:"eu"},{name:"Evenki",opentypeTag:"EVK ",htmlTag:"evn"},{name:"Even",opentypeTag:"EVN ",htmlTag:"eve"},{name:"Ewe",opentypeTag:"EWE ",htmlTag:"ee"},{name:"French Antillean",opentypeTag:"FAN ",htmlTag:"acf"},{name:"Fang",opentypeTag:"FAN0",htmlTag:"fan"},{name:"Persian",opentypeTag:"FAR ",htmlTag:"fa"},{name:"Fanti",opentypeTag:"FAT ",htmlTag:"fat"},{name:"Finnish",opentypeTag:"FIN ",htmlTag:"fi"},{name:"Fijian",opentypeTag:"FJI ",htmlTag:"fj"},{name:"Dutch (Flemish)",opentypeTag:"FLE ",htmlTag:"vls"},{name:"Fe’fe’",opentypeTag:"FMP ",htmlTag:"fmp"},{name:"Forest Nenets",opentypeTag:"FNE ",htmlTag:"enf"},{name:"Fon",opentypeTag:"FON ",htmlTag:"fon"},{name:"Faroese",opentypeTag:"FOS ",htmlTag:"fo"},{name:"French",opentypeTag:"FRA ",htmlTag:"fr"},{name:"Cajun French",opentypeTag:"FRC ",htmlTag:"frc"},{name:"Frisian",opentypeTag:"FRI ",htmlTag:"fy"},{name:"Friulian",opentypeTag:"FRL ",htmlTag:"fur"},{name:"Arpitan",opentypeTag:"FRP ",htmlTag:"frp"},{name:"Futa",opentypeTag:"FTA ",htmlTag:"fuf"},{name:"Fulah",opentypeTag:"FUL ",htmlTag:"ff"},{name:"Nigerian Fulfulde",opentypeTag:"FUV ",htmlTag:"fuv"},{name:"Ga",opentypeTag:"GAD ",htmlTag:"gaa"},{name:"Scottish Gaelic (Gaelic)",opentypeTag:"GAE ",htmlTag:"gd"},{name:"Gagauz",opentypeTag:"GAG ",htmlTag:"gag"},{name:"Galician",opentypeTag:"GAL ",htmlTag:"gl"},{name:"Garshuni",opentypeTag:"GAR "},{name:"Garhwali",opentypeTag:"GAW ",htmlTag:"gbm"},{name:"Geez",opentypeTag:"GEZ ",htmlTag:"gez"},{name:"Githabul",opentypeTag:"GIH ",htmlTag:"gih"},{name:"Gilyak",opentypeTag:"GIL ",htmlTag:"niv"},{name:"Kiribati (Gilbertese)",opentypeTag:"GIL0",htmlTag:"gil"},{name:"Kpelle (Guinea)",opentypeTag:"GKP ",htmlTag:"gkp"},{name:"Gilaki",opentypeTag:"GLK ",htmlTag:"glk"},{name:"Gumuz",opentypeTag:"GMZ ",htmlTag:"guk"},{name:"Gumatj",opentypeTag:"GNN ",htmlTag:"gnn"},{name:"Gogo",opentypeTag:"GOG ",htmlTag:"gog"},{name:"Gondi",opentypeTag:"GON ",htmlTag:"gon"},{name:"Greenlandic",opentypeTag:"GRN ",htmlTag:"kl"},{name:"Garo",opentypeTag:"GRO ",htmlTag:"grt"},{name:"Guarani",opentypeTag:"GUA ",htmlTag:"gn"},{name:"Wayuu",opentypeTag:"GUC ",htmlTag:"guc"},{name:"Gupapuyngu",opentypeTag:"GUF ",htmlTag:"guf"},{name:"Gujarati",opentypeTag:"GUJ ",htmlTag:"gu"},{name:"Gusii",opentypeTag:"GUZ ",htmlTag:"guz"},{name:"Haitian (Haitian Creole)",opentypeTag:"HAI ",htmlTag:"ht"},{name:"Halam (Falam Chin)",opentypeTag:"HAL ",htmlTag:"flm"},{name:"Harauti",opentypeTag:"HAR ",htmlTag:"hoj"},{name:"Hausa",opentypeTag:"HAU ",htmlTag:"ha"},{name:"Hawaiian",opentypeTag:"HAW ",htmlTag:"haw"},{name:"Haya",opentypeTag:"HAY ",htmlTag:"hay"},{name:"Hazaragi",opentypeTag:"HAZ ",htmlTag:"haz"},{name:"Hammer-Banna",opentypeTag:"HBN ",htmlTag:"amf"},{name:"Herero",opentypeTag:"HER ",htmlTag:"hz"},{name:"Hiligaynon",opentypeTag:"HIL ",htmlTag:"hil"},{name:"Hindi",opentypeTag:"HIN ",htmlTag:"hi"},{name:"High Mari",opentypeTag:"HMA ",htmlTag:"mrj"},{name:"Hmong",opentypeTag:"HMN ",htmlTag:"hmn"},{name:"Hiri Motu",opentypeTag:"HMO ",htmlTag:"ho"},{name:"Hindko",opentypeTag:"HND ",htmlTag:"hno"},{name:"Ho",opentypeTag:"HO",htmlTag:"hoc"},{name:"Harari",opentypeTag:"HRI ",htmlTag:"har"},{name:"Croatian",opentypeTag:"HRV ",htmlTag:"hr"},{name:"Hungarian",opentypeTag:"HUN ",htmlTag:"hu"},{name:"Armenian",opentypeTag:"HYE ",htmlTag:"hy"},{name:"Armenian East",opentypeTag:"HYE0",htmlTag:"hy"},{name:"Iban",opentypeTag:"IBA ",htmlTag:"iba"},{name:"Ibibio",opentypeTag:"IBB ",htmlTag:"ibb"},{name:"Igbo",opentypeTag:"IBO ",htmlTag:"ig"},{name:"Ijo languages",opentypeTag:"IJO ",htmlTag:"ijc"},{name:"Ido",opentypeTag:"IDO ",htmlTag:"io"},{name:"Interlingue",opentypeTag:"ILE ",htmlTag:"ie"},{name:"Ilokano",opentypeTag:"ILO ",htmlTag:"ilo"},{name:"Interlingua",opentypeTag:"INA ",htmlTag:"ia"},{name:"Indonesian",opentypeTag:"IND ",htmlTag:"id"},{name:"Ingush",opentypeTag:"ING ",htmlTag:"inh"},{name:"Inuktitut",opentypeTag:"INU ",htmlTag:"iu"},{name:"Inupiat",opentypeTag:"IPK ",htmlTag:"ik"},{name:"Phonetic transcription—IPA conventions",opentypeTag:"IPPH"},{name:"Irish",opentypeTag:"IRI ",htmlTag:"ga"},{name:"Irish Traditional",opentypeTag:"IRT ",htmlTag:"ga"},{name:"Icelandic",opentypeTag:"ISL ",htmlTag:"is"},{name:"Inari Sami",opentypeTag:"ISM ",htmlTag:"smn"},{name:"Italian",opentypeTag:"ITA ",htmlTag:"it"},{name:"Hebrew",opentypeTag:"IWR ",htmlTag:"he"},{name:"Jamaican Creole",opentypeTag:"JAM ",htmlTag:"jam"},{name:"Japanese",opentypeTag:"JAN ",htmlTag:"ja"},{name:"Javanese",opentypeTag:"JAV ",htmlTag:"jv"},{name:"Lojban",opentypeTag:"JBO ",htmlTag:"jbo"},{name:"Krymchak",opentypeTag:"JCT ",htmlTag:"jct"},{name:"Yiddish",opentypeTag:"JII ",htmlTag:"yi"},{name:"Ladino",opentypeTag:"JUD ",htmlTag:"lad"},{name:"Jula",opentypeTag:"JUL ",htmlTag:"dyu"},{name:"Kabardian",opentypeTag:"KAB ",htmlTag:"kbd"},{name:"Kabyle",opentypeTag:"KAB0",htmlTag:"kab"},{name:"Kachchi",opentypeTag:"KAC ",htmlTag:"kfr"},{name:"Kalenjin",opentypeTag:"KAL ",htmlTag:"kln"},{name:"Kannada",opentypeTag:"KAN ",htmlTag:"kn"},{name:"Karachay",opentypeTag:"KAR ",htmlTag:"krc"},{name:"Georgian",opentypeTag:"KAT ",htmlTag:"ka"},{name:"Kazakh",opentypeTag:"KAZ ",htmlTag:"kk"},{name:"Makonde",opentypeTag:"KDE ",htmlTag:"kde"},{name:"Kabuverdianu (Crioulo)",opentypeTag:"KEA ",htmlTag:"kea"},{name:"Kebena",opentypeTag:"KEB ",htmlTag:"ktb"},{name:"Kekchi",opentypeTag:"KEK ",htmlTag:"kek"},{name:"Khutsuri Georgian",opentypeTag:"KGE ",htmlTag:"ka"},{name:"Khakass",opentypeTag:"KHA ",htmlTag:"kjh"},{name:"Khanty-Kazim",opentypeTag:"KHK ",htmlTag:"kca"},{name:"Khmer",opentypeTag:"KHM ",htmlTag:"km"},{name:"Khanty-Shurishkar",opentypeTag:"KHS ",htmlTag:"kca"},{name:"Khamti Shan",opentypeTag:"KHT ",htmlTag:"kht"},{name:"Khanty-Vakhi",opentypeTag:"KHV ",htmlTag:"kca"},{name:"Khowar",opentypeTag:"KHW ",htmlTag:"khw"},{name:"Kikuyu (Gikuyu)",opentypeTag:"KIK ",htmlTag:"ki"},{name:"Kirghiz (Kyrgyz)",opentypeTag:"KIR ",htmlTag:"ky"},{name:"Kisii",opentypeTag:"KIS ",htmlTag:"kqs"},{name:"Kirmanjki",opentypeTag:"KIU ",htmlTag:"kiu"},{name:"Southern Kiwai",opentypeTag:"KJD ",htmlTag:"kjd"},{name:"Eastern Pwo Karen",opentypeTag:"KJP ",htmlTag:"kjp"},{name:"Bumthangkha",opentypeTag:"KJZ ",htmlTag:"kjz"},{name:"Kokni",opentypeTag:"KKN ",htmlTag:"kex"},{name:"Kalmyk",opentypeTag:"KLM ",htmlTag:"xal"},{name:"Kamba",opentypeTag:"KMB ",htmlTag:"kam"},{name:"Kumaoni",opentypeTag:"KMN ",htmlTag:"kfy"},{name:"Komo",opentypeTag:"KMO ",htmlTag:"kmw"},{name:"Komso",opentypeTag:"KMS ",htmlTag:"kxc"},{name:"Khorasani Turkic",opentypeTag:"KMZ ",htmlTag:"kmz"},{name:"Kanuri",opentypeTag:"KNR ",htmlTag:"kr"},{name:"Kodagu",opentypeTag:"KOD ",htmlTag:"kfa"},{name:"Korean Old Hangul",opentypeTag:"KOH ",htmlTag:"okm"},{name:"Konkani",opentypeTag:"KOK ",htmlTag:"kok"},{name:"Kikongo",opentypeTag:"KON ",htmlTag:"ktu"},{name:"Komi",opentypeTag:"KOM ",htmlTag:"kv"},{name:"Kongo",opentypeTag:"KON0",htmlTag:"kg"},{name:"Komi-Permyak",opentypeTag:"KOP ",htmlTag:"koi"},{name:"Korean",opentypeTag:"KOR ",htmlTag:"ko"},{name:"Kosraean",opentypeTag:"KOS ",htmlTag:"kos"},{name:"Komi-Zyrian",opentypeTag:"KOZ ",htmlTag:"kpv"},{name:"Kpelle",opentypeTag:"KPL ",htmlTag:"kpe"},{name:"Krio",opentypeTag:"KRI ",htmlTag:"kri"},{name:"Karakalpak",opentypeTag:"KRK ",htmlTag:"kaa"},{name:"Karelian",opentypeTag:"KRL ",htmlTag:"krl"},{name:"Karaim",opentypeTag:"KRM ",htmlTag:"kdr"},{name:"Karen",opentypeTag:"KRN ",htmlTag:"kar"},{name:"Koorete",opentypeTag:"KRT ",htmlTag:"kqy"},{name:"Kashmiri",opentypeTag:"KSH ",htmlTag:"ks"},{name:"Ripuarian",opentypeTag:"KSH0",htmlTag:"ksh"},{name:"Khasi",opentypeTag:"KSI ",htmlTag:"kha"},{name:"Kildin Sami",opentypeTag:"KSM ",htmlTag:"sjd"},{name:"S’gaw Karen",opentypeTag:"KSW ",htmlTag:"ksw"},{name:"Kuanyama",opentypeTag:"KUA ",htmlTag:"kj"},{name:"Kui",opentypeTag:"KUI ",htmlTag:"kxu"},{name:"Kulvi",opentypeTag:"KUL ",htmlTag:"kfx"},{name:"Kumyk",opentypeTag:"KUM ",htmlTag:"kum"},{name:"Kurdish",opentypeTag:"KUR ",htmlTag:"ku"},{name:"Kurukh",opentypeTag:"KUU ",htmlTag:"kru"},{name:"Kuy",opentypeTag:"KUY ",htmlTag:"kdt"},{name:"Koryak",opentypeTag:"KYK ",htmlTag:"kpy"},{name:"Western Kayah",opentypeTag:"KYU ",htmlTag:"kyu"},{name:"Ladin",opentypeTag:"LAD ",htmlTag:"lld"},{name:"Lahuli",opentypeTag:"LAH ",htmlTag:"bfu"},{name:"Lak",opentypeTag:"LAK ",htmlTag:"lbe"},{name:"Lambani",opentypeTag:"LAM ",htmlTag:"lmn"},{name:"Lao",opentypeTag:"LAO ",htmlTag:"lo"},{name:"Latin",opentypeTag:"LAT ",htmlTag:"la"},{name:"Laz",opentypeTag:"LAZ ",htmlTag:"lzz"},{name:"L-Cree",opentypeTag:"LCR ",htmlTag:"crm"},{name:"Ladakhi",opentypeTag:"LDK ",htmlTag:"lbj"},{name:"Lezgi",opentypeTag:"LEZ ",htmlTag:"lez"},{name:"Ligurian",opentypeTag:"LIJ ",htmlTag:"lij"},{name:"Limburgish",opentypeTag:"LIM ",htmlTag:"li"},{name:"Lingala",opentypeTag:"LIN ",htmlTag:"ln"},{name:"Lisu",opentypeTag:"LIS ",htmlTag:"lis"},{name:"Lampung",opentypeTag:"LJP ",htmlTag:"ljp"},{name:"Laki",opentypeTag:"LKI ",htmlTag:"lki"},{name:"Low Mari",opentypeTag:"LMA ",htmlTag:"mhr"},{name:"Limbu",opentypeTag:"LMB ",htmlTag:"lif"},{name:"Lombard",opentypeTag:"LMO ",htmlTag:"lmo"},{name:"Lomwe",opentypeTag:"LMW ",htmlTag:"ngl"},{name:"Loma",opentypeTag:"LOM ",htmlTag:"lom"},{name:"Luri",opentypeTag:"LRC ",htmlTag:"lrc"},{name:"Lower Sorbian",opentypeTag:"LSB ",htmlTag:"dsb"},{name:"Lule Sami",opentypeTag:"LSM ",htmlTag:"smj"},{name:"Lithuanian",opentypeTag:"LTH ",htmlTag:"lt"},{name:"Luxembourgish",opentypeTag:"LTZ ",htmlTag:"lb"},{name:"Luba-Lulua",opentypeTag:"LUA ",htmlTag:"lua"},{name:"Luba-Katanga",opentypeTag:"LUB ",htmlTag:"lu"},{name:"Ganda",opentypeTag:"LUG ",htmlTag:"lg"},{name:"Luyia",opentypeTag:"LUH ",htmlTag:"luy"},{name:"Luo",opentypeTag:"LUO ",htmlTag:"luo"},{name:"Latvian",opentypeTag:"LVI ",htmlTag:"lv"},{name:"Madura",opentypeTag:"MAD ",htmlTag:"mad"},{name:"Magahi",opentypeTag:"MAG ",htmlTag:"mag"},{name:"Marshallese",opentypeTag:"MAH ",htmlTag:"mh"},{name:"Majang",opentypeTag:"MAJ ",htmlTag:"mpe"},{name:"Makhuwa",opentypeTag:"MAK ",htmlTag:"vmw"},{name:"Malayalam",opentypeTag:"MAL ",htmlTag:"ml"},{name:"Mam",opentypeTag:"MAM ",htmlTag:"mam"},{name:"Mansi",opentypeTag:"MAN ",htmlTag:"mns"},{name:"Mapudungun",opentypeTag:"MAP ",htmlTag:"arn"},{name:"Marathi",opentypeTag:"MAR ",htmlTag:"mr"},{name:"Marwari",opentypeTag:"MAW ",htmlTag:"mwr"},{name:"Mbundu",opentypeTag:"MBN ",htmlTag:"kmb"},{name:"Mbo",opentypeTag:"MBO ",htmlTag:"mbo"},{name:"Manchu",opentypeTag:"MCH ",htmlTag:"mnc"},{name:"Moose Cree",opentypeTag:"MCR ",htmlTag:"crm"},{name:"Mende",opentypeTag:"MDE ",htmlTag:"men"},{name:"Mandar",opentypeTag:"MDR ",htmlTag:"mdr"},{name:"Me’en",opentypeTag:"MEN ",htmlTag:"mym"},{name:"Meru",opentypeTag:"MER ",htmlTag:"mer"},{name:"Pattani Malay",opentypeTag:"MFA ",htmlTag:"mfa"},{name:"Morisyen",opentypeTag:"MFE ",htmlTag:"mfe"},{name:"Minangkabau",opentypeTag:"MIN ",htmlTag:"min"},{name:"Mizo",opentypeTag:"MIZ ",htmlTag:"lus"},{name:"Macedonian",opentypeTag:"MKD ",htmlTag:"mk"},{name:"Makasar",opentypeTag:"MKR ",htmlTag:"mak"},{name:"Kituba",opentypeTag:"MKW ",htmlTag:"mkw"},{name:"Male",opentypeTag:"MLE ",htmlTag:"mdy"},{name:"Malagasy",opentypeTag:"MLG ",htmlTag:"mg"},{name:"Malinke",opentypeTag:"MLN ",htmlTag:"mlq"},{name:"Malayalam Reformed",opentypeTag:"MLR ",htmlTag:"ml"},{name:"Malay",opentypeTag:"MLY ",htmlTag:"ms"},{name:"Mandinka",opentypeTag:"MND ",htmlTag:"mnk"},{name:"Mongolian",opentypeTag:"MNG ",htmlTag:"mn"},{name:"Manipuri",opentypeTag:"MNI ",htmlTag:"mni"},{name:"Maninka",opentypeTag:"MNK ",htmlTag:"man"},{name:"Manx",opentypeTag:"MNX ",htmlTag:"gv"},{name:"Mohawk",opentypeTag:"MOH ",htmlTag:"moh"},{name:"Moksha",opentypeTag:"MOK ",htmlTag:"mdf"},{name:"Moldavian",opentypeTag:"MOL ",htmlTag:"mol"},{name:"Mon",opentypeTag:"MON ",htmlTag:"mnw"},{name:"Moroccan",opentypeTag:"MOR "},{name:"Mossi",opentypeTag:"MOS ",htmlTag:"mos"},{name:"Maori",opentypeTag:"MRI ",htmlTag:"mi"},{name:"Maithili",opentypeTag:"MTH ",htmlTag:"mai"},{name:"Maltese",opentypeTag:"MTS ",htmlTag:"mt"},{name:"Mundari",opentypeTag:"MUN ",htmlTag:"unr"},{name:"Muscogee",opentypeTag:"MUS ",htmlTag:"mus"},{name:"Mirandese",opentypeTag:"MWL ",htmlTag:"mwl"},{name:"Hmong Daw",opentypeTag:"MWW ",htmlTag:"mww"},{name:"Mayan",opentypeTag:"MYN ",htmlTag:"myn"},{name:"Mazanderani",opentypeTag:"MZN ",htmlTag:"mzn"},{name:"Naga-Assamese",opentypeTag:"NAG ",htmlTag:"nag"},{name:"Nahuatl",opentypeTag:"NAH ",htmlTag:"nah"},{name:"Nanai",opentypeTag:"NAN ",htmlTag:"gld"},{name:"Neapolitan",opentypeTag:"NAP ",htmlTag:"nap"},{name:"Naskapi",opentypeTag:"NAS ",htmlTag:"nsk"},{name:"Nauruan",opentypeTag:"NAU ",htmlTag:"na"},{name:"Navajo",opentypeTag:"NAV ",htmlTag:"nv"},{name:"N-Cree",opentypeTag:"NCR ",htmlTag:"csw"},{name:"Ndebele",opentypeTag:"NDB ",htmlTag:"nr"},{name:"Ndau",opentypeTag:"NDC ",htmlTag:"ndc"},{name:"Ndonga",opentypeTag:"NDG ",htmlTag:"ng"},{name:"Low Saxon",opentypeTag:"NDS ",htmlTag:"nds"},{name:"Nepali",opentypeTag:"NEP ",htmlTag:"ne"},{name:"Newari",opentypeTag:"NEW ",htmlTag:"new"},{name:"Ngbaka",opentypeTag:"NGA ",htmlTag:"nga"},{name:"Nagari",opentypeTag:"NGR "},{name:"Norway House Cree",opentypeTag:"NHC ",htmlTag:"csw"},{name:"Nisi",opentypeTag:"NIS ",htmlTag:"dap"},{name:"Niuean",opentypeTag:"NIU ",htmlTag:"niu"},{name:"Nyankole",opentypeTag:"NKL ",htmlTag:"nyn"},{name:"N’Ko",opentypeTag:"NKO ",htmlTag:"nqo"},{name:"Dutch",opentypeTag:"NLD ",htmlTag:"nl"},{name:"Nimadi",opentypeTag:"NOE ",htmlTag:"noe"},{name:"Nogai",opentypeTag:"NOG ",htmlTag:"nog"},{name:"Norwegian",opentypeTag:"NOR ",htmlTag:"nb"},{name:"Novial",opentypeTag:"NOV ",htmlTag:"nov"},{name:"Northern Sami",opentypeTag:"NSM ",htmlTag:"se"},{name:"Sotho, Northern",opentypeTag:"NSO ",htmlTag:"nso"},{name:"Northern Tai",opentypeTag:"NTA ",htmlTag:"nod"},{name:"Esperanto",opentypeTag:"NTO ",htmlTag:"eo"},{name:"Nyamwezi",opentypeTag:"NYM ",htmlTag:"nym"},{name:"Norwegian Nynorsk (Nynorsk, Norwegian)",opentypeTag:"NYN ",htmlTag:"nn"},{name:"Mbembe Tigon",opentypeTag:"NZA ",htmlTag:"nza"},{name:"Occitan",opentypeTag:"OCI ",htmlTag:"oc"},{name:"Oji-Cree",opentypeTag:"OCR ",htmlTag:"ojs"},{name:"Ojibway",opentypeTag:"OJB ",htmlTag:"oj"},{name:"Odia (formerly Oriya)",opentypeTag:"ORI ",htmlTag:"or"},{name:"Oromo",opentypeTag:"ORO ",htmlTag:"om"},{name:"Ossetian",opentypeTag:"OSS ",htmlTag:"os"},{name:"Palestinian Aramaic",opentypeTag:"PAA ",htmlTag:"sam"},{name:"Pangasinan",opentypeTag:"PAG ",htmlTag:"pag"},{name:"Pali",opentypeTag:"PAL ",htmlTag:"pi"},{name:"Pampangan",opentypeTag:"PAM ",htmlTag:"pam"},{name:"Punjabi",opentypeTag:"PAN ",htmlTag:"pa"},{name:"Palpa",opentypeTag:"PAP ",htmlTag:"plp"},{name:"Papiamentu",opentypeTag:"PAP0",htmlTag:"pap"},{name:"Pashto",opentypeTag:"PAS ",htmlTag:"ps"},{name:"Palauan",opentypeTag:"PAU ",htmlTag:"pau"},{name:"Bouyei",opentypeTag:"PCC ",htmlTag:"pcc"},{name:"Picard",opentypeTag:"PCD ",htmlTag:"pcd"},{name:"Pennsylvania German",opentypeTag:"PDC ",htmlTag:"pdc"},{name:"Polytonic Greek",opentypeTag:"PGR ",htmlTag:"el"},{name:"Phake",opentypeTag:"PHK ",htmlTag:"phk"},{name:"Norfolk",opentypeTag:"PIH ",htmlTag:"pih"},{name:"Filipino",opentypeTag:"PIL ",htmlTag:"fil"},{name:"Palaung",opentypeTag:"PLG ",htmlTag:"pce"},{name:"Polish",opentypeTag:"PLK ",htmlTag:"pl"},{name:"Piemontese",opentypeTag:"PMS ",htmlTag:"pms"},{name:"Western Panjabi",opentypeTag:"PNB ",htmlTag:"pnb"},{name:"Pocomchi",opentypeTag:"POH ",htmlTag:"poh"},{name:"Pohnpeian",opentypeTag:"PON ",htmlTag:"pon"},{name:"Provençal / Old Provençal",opentypeTag:"PRO ",htmlTag:"pro"},{name:"Portuguese",opentypeTag:"PTG ",htmlTag:"pt"},{name:"Western Pwo Karen",opentypeTag:"PWO ",htmlTag:"pwo"},{name:"Chin",opentypeTag:"QIN ",htmlTag:"bgr"},{name:"K’iche’",opentypeTag:"QUC ",htmlTag:"quc"},{name:"Quechua (Bolivia)",opentypeTag:"QUH ",htmlTag:"quh"},{name:"Quechua",opentypeTag:"QUZ ",htmlTag:"quz"},{name:"Quechua (Ecuador)",opentypeTag:"QVI ",htmlTag:"qvi"},{name:"Quechua (Peru)",opentypeTag:"QWH ",htmlTag:"qwh"},{name:"Rajasthani",opentypeTag:"RAJ ",htmlTag:"raj"},{name:"Rarotongan",opentypeTag:"RAR ",htmlTag:"rar"},{name:"Russian Buriat",opentypeTag:"RBU ",htmlTag:"bxr"},{name:"R-Cree",opentypeTag:"RCR ",htmlTag:"atj"},{name:"Rejang",opentypeTag:"REJ ",htmlTag:"rej"},{name:"Riang",opentypeTag:"RIA ",htmlTag:"ria"},{name:"Tarifit",opentypeTag:"RIF ",htmlTag:"rif"},{name:"Ritarungo",opentypeTag:"RIT ",htmlTag:"rit"},{name:"Arakwal",opentypeTag:"RKW ",htmlTag:"rkw"},{name:"Romansh",opentypeTag:"RMS ",htmlTag:"rm"},{name:"Vlax Romani",opentypeTag:"RMY ",htmlTag:"rmy"},{name:"Romanian",opentypeTag:"ROM ",htmlTag:"ro"},{name:"Romany",opentypeTag:"ROY ",htmlTag:"rom"},{name:"Rusyn",opentypeTag:"RSY ",htmlTag:"rue"},{name:"Rotuman",opentypeTag:"RTM ",htmlTag:"rtm"},{name:"Kinyarwanda",opentypeTag:"RUA ",htmlTag:"rw"},{name:"Rundi",opentypeTag:"RUN ",htmlTag:"rn"},{name:"Aromanian",opentypeTag:"RUP ",htmlTag:"rup"},{name:"Russian",opentypeTag:"RUS ",htmlTag:"ru"},{name:"Sadri",opentypeTag:"SAD ",htmlTag:"sck"},{name:"Sanskrit",opentypeTag:"SAN ",htmlTag:"sa"},{name:"Sasak",opentypeTag:"SAS ",htmlTag:"sas"},{name:"Santali",opentypeTag:"SAT ",htmlTag:"sat"},{name:"Sayisi",opentypeTag:"SAY ",htmlTag:"chp"},{name:"Sicilian",opentypeTag:"SCN ",htmlTag:"scn"},{name:"Scots",opentypeTag:"SCO ",htmlTag:"sco"},{name:"Sekota",opentypeTag:"SEK ",htmlTag:"xan"},{name:"Selkup",opentypeTag:"SEL ",htmlTag:"sel"},{name:"Old Irish",opentypeTag:"SGA ",htmlTag:"sga"},{name:"Sango",opentypeTag:"SGO ",htmlTag:"sg"},{name:"Samogitian",opentypeTag:"SGS ",htmlTag:"sgs"},{name:"Tachelhit",opentypeTag:"SHI ",htmlTag:"shi"},{name:"Shan",opentypeTag:"SHN ",htmlTag:"shn"},{name:"Sibe",opentypeTag:"SIB ",htmlTag:"sjo"},{name:"Sidamo",opentypeTag:"SID ",htmlTag:"sid"},{name:"Silte Gurage",opentypeTag:"SIG ",htmlTag:"xst"},{name:"Skolt Sami",opentypeTag:"SKS ",htmlTag:"sms"},{name:"Slovak",opentypeTag:"SKY ",htmlTag:"sk"},{name:"North Slavey",opentypeTag:"SCS ",htmlTag:"scs"},{name:"Slavey",opentypeTag:"SLA ",htmlTag:"scs"},{name:"Slovenian",opentypeTag:"SLV ",htmlTag:"sl"},{name:"Somali",opentypeTag:"SML ",htmlTag:"so"},{name:"Samoan",opentypeTag:"SMO ",htmlTag:"sm"},{name:"Sena",opentypeTag:"SNA ",htmlTag:"seh"},{name:"Shona",opentypeTag:"SNA0",htmlTag:"sn"},{name:"Sindhi",opentypeTag:"SND ",htmlTag:"sd"},{name:"Sinhala (Sinhalese)",opentypeTag:"SNH ",htmlTag:"si"},{name:"Soninke",opentypeTag:"SNK ",htmlTag:"snk"},{name:"Sodo Gurage",opentypeTag:"SOG ",htmlTag:"gru"},{name:"Songe",opentypeTag:"SOP ",htmlTag:"sop"},{name:"Sotho, Southern",opentypeTag:"SOT ",htmlTag:"st"},{name:"Albanian",opentypeTag:"SQI ",htmlTag:"sq"},{name:"Serbian",opentypeTag:"SRB ",htmlTag:"sr"},{name:"Sardinian",opentypeTag:"SRD ",htmlTag:"sc"},{name:"Saraiki",opentypeTag:"SRK ",htmlTag:"skr"},{name:"Serer",opentypeTag:"SRR ",htmlTag:"srr"},{name:"South Slavey",opentypeTag:"SSL ",htmlTag:"xsl"},{name:"Southern Sami",opentypeTag:"SSM ",htmlTag:"sma"},{name:"Saterland Frisian",opentypeTag:"STQ ",htmlTag:"stq"},{name:"Sukuma",opentypeTag:"SUK ",htmlTag:"suk"},{name:"Sundanese",opentypeTag:"SUN ",htmlTag:"su"},{name:"Suri",opentypeTag:"SUR ",htmlTag:"suq"},{name:"Svan",opentypeTag:"SVA ",htmlTag:"sva"},{name:"Swedish",opentypeTag:"SVE ",htmlTag:"sv"},{name:"Swadaya Aramaic",opentypeTag:"SWA ",htmlTag:"aii"},{name:"Swahili",opentypeTag:"SWK ",htmlTag:"sw"},{name:"Swati",opentypeTag:"SWZ ",htmlTag:"ss"},{name:"Sutu",opentypeTag:"SXT ",htmlTag:"ngo"},{name:"Upper Saxon",opentypeTag:"SXU ",htmlTag:"sxu"},{name:"Sylheti",opentypeTag:"SYL ",htmlTag:"syl"},{name:"Syriac",opentypeTag:"SYR ",htmlTag:"aii"},{name:"Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')",opentypeTag:"SYRE",htmlTag:"syc"},{name:"Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')",opentypeTag:"SYRJ",htmlTag:"syc"},{name:"Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')",opentypeTag:"SYRN",htmlTag:"syc"},{name:"Silesian",opentypeTag:"SZL ",htmlTag:"szl"},{name:"Tabasaran",opentypeTag:"TAB ",htmlTag:"tab"},{name:"Tajiki",opentypeTag:"TAJ ",htmlTag:"tg"},{name:"Tamil",opentypeTag:"TAM ",htmlTag:"ta"},{name:"Tatar",opentypeTag:"TAT ",htmlTag:"tt"},{name:"TH-Cree",opentypeTag:"TCR ",htmlTag:"cwd"},{name:"Dehong Dai",opentypeTag:"TDD ",htmlTag:"tdd"},{name:"Telugu",opentypeTag:"TEL ",htmlTag:"te"},{name:"Tetum",opentypeTag:"TET ",htmlTag:"tet"},{name:"Tagalog",opentypeTag:"TGL ",htmlTag:"tl"},{name:"Tongan",opentypeTag:"TGN ",htmlTag:"to"},{name:"Tigre",opentypeTag:"TGR ",htmlTag:"tig"},{name:"Tigrinya",opentypeTag:"TGY ",htmlTag:"ti"},{name:"Thai",opentypeTag:"THA ",htmlTag:"th"},{name:"Tahitian",opentypeTag:"THT ",htmlTag:"ty"},{name:"Tibetan",opentypeTag:"TIB ",htmlTag:"bo"},{name:"Tiv",opentypeTag:"TIV ",htmlTag:"tiv"},{name:"Turkmen",opentypeTag:"TKM ",htmlTag:"tk"},{name:"Tamashek",opentypeTag:"TMH ",htmlTag:"tmh"},{name:"Temne",opentypeTag:"TMN ",htmlTag:"tem"},{name:"Tswana",opentypeTag:"TNA ",htmlTag:"tn"},{name:"Tundra Nenets",opentypeTag:"TNE ",htmlTag:"enh"},{name:"Tonga",opentypeTag:"TNG ",htmlTag:"toi"},{name:"Todo",opentypeTag:"TOD ",htmlTag:"xal"},{name:"Toma",opentypeTag:"TOD0",htmlTag:"tod"},{name:"Tok Pisin",opentypeTag:"TPI ",htmlTag:"tpi"},{name:"Turkish",opentypeTag:"TRK ",htmlTag:"tr"},{name:"Tsonga",opentypeTag:"TSG ",htmlTag:"ts"},{name:"Tshangla",opentypeTag:"TSJ ",htmlTag:"tsj"},{name:"Turoyo Aramaic",opentypeTag:"TUA ",htmlTag:"tru"},{name:"Tulu",opentypeTag:"TUM ",htmlTag:"tum"},{name:"Tumbuka",opentypeTag:"TUL ",htmlTag:"tcy"},{name:"Tuvin",opentypeTag:"TUV ",htmlTag:"tyv"},{name:"Tuvalu",opentypeTag:"TVL ",htmlTag:"tvl"},{name:"Twi",opentypeTag:"TWI ",htmlTag:"ak"},{name:"Tày",opentypeTag:"TYZ ",htmlTag:"tyz"},{name:"Tamazight",opentypeTag:"TZM ",htmlTag:"tzm"},{name:"Tzotzil",opentypeTag:"TZO ",htmlTag:"tzo"},{name:"Udmurt",opentypeTag:"UDM ",htmlTag:"udm"},{name:"Ukrainian",opentypeTag:"UKR ",htmlTag:"uk"},{name:"Umbundu",opentypeTag:"UMB ",htmlTag:"umb"},{name:"Urdu",opentypeTag:"URD ",htmlTag:"ur"},{name:"Upper Sorbian",opentypeTag:"USB ",htmlTag:"hsb"},{name:"Uyghur",opentypeTag:"UYG ",htmlTag:"ug"},{name:"Uzbek",opentypeTag:"UZB ",htmlTag:"uz"},{name:"Venetian",opentypeTag:"VEC ",htmlTag:"vec"},{name:"Venda",opentypeTag:"VEN ",htmlTag:"ve"},{name:"Vietnamese",opentypeTag:"VIT ",htmlTag:"vi"},{name:"Volapük",opentypeTag:"VOL ",htmlTag:"vo"},{name:"Võro",opentypeTag:"VRO ",htmlTag:"vro"},{name:"Wa",opentypeTag:"WA",htmlTag:"wbm"},{name:"Wagdi",opentypeTag:"WAG ",htmlTag:"wbr"},{name:"Waray-Waray",opentypeTag:"WAR ",htmlTag:"war"},{name:"West-Cree",opentypeTag:"WCR ",htmlTag:"crk"},{name:"Welsh",opentypeTag:"WEL ",htmlTag:"cy"},{name:"Walloon",opentypeTag:"WLN ",htmlTag:"wa"},{name:"Wolof",opentypeTag:"WLF ",htmlTag:"wo"},{name:"Mewati",opentypeTag:"WTM ",htmlTag:"wtm"},{name:"Lü",opentypeTag:"XBD ",htmlTag:"khb"},{name:"Khengkha",opentypeTag:"XKF ",htmlTag:"xkf"},{name:"Xhosa",opentypeTag:"XHS ",htmlTag:"xh"},{name:"Minjangbal",opentypeTag:"XJB ",htmlTag:"xjb"},{name:"Soga",opentypeTag:"XOG ",htmlTag:"xog"},{name:"Kpelle (Liberia)",opentypeTag:"XPE ",htmlTag:"xpe"},{name:"Sakha",opentypeTag:"YAK ",htmlTag:"sah"},{name:"Yao",opentypeTag:"YAO ",htmlTag:"yao"},{name:"Yapese",opentypeTag:"YAP ",htmlTag:"yap"},{name:"Yoruba",opentypeTag:"YBA ",htmlTag:"yo"},{name:"Y-Cree",opentypeTag:"YCR ",htmlTag:"cr"},{name:"Yi Classic",opentypeTag:"YIC "},{name:"Yi Modern",opentypeTag:"YIM ",htmlTag:"ii"},{name:"Zealandic",opentypeTag:"ZEA ",htmlTag:"zea"},{name:"Standard Moroccan Tamazight",opentypeTag:"ZGH ",htmlTag:"zgh"},{name:"Zhuang",opentypeTag:"ZHA ",htmlTag:"za"},{name:"Chinese, Hong Kong SAR",opentypeTag:"ZHH ",htmlTag:"zh"},{name:"Chinese Phonetic",opentypeTag:"ZHP ",htmlTag:"zh"},{name:"Chinese Simplified",opentypeTag:"ZHS ",htmlTag:"zh"},{name:"Chinese Traditional",opentypeTag:"ZHT ",htmlTag:"zh"},{name:"Zande",opentypeTag:"ZND ",htmlTag:"zne"},{name:"Zulu",opentypeTag:"ZUL ",htmlTag:"zu"},{name:"Zazaki",opentypeTag:"ZZA ",htmlTag:"zza"}]},c9d8:function(e,t,n){},cbe7:function(e,t,n){},cc03:function(e,t,n){"use strict";var a=n("d7fe"),i=n.n(a);i.a},cee9:function(e,t,n){},d7fe:function(e,t,n){},db8b:function(e,t,n){},e486:function(e,t,n){"use strict";var a=n("db8b"),i=n.n(a);i.a},e4e9:function(e,t,n){},e5da:function(e,t,n){},e70b:function(e,t,n){},e7e6:function(e,t,n){"use strict";var a=n("14b8"),i=n.n(a);i.a},e89a:function(e,t,n){},efdc:function(e,t,n){"use strict";var a=n("2d80"),i=n.n(a);i.a},f389:function(e,t,n){},f5b2:function(e,t,n){"use strict";var a=n("09ec"),i=n.n(a);i.a},f717:function(e,t,n){"use strict";var a=n("026e"),i=n.n(a);i.a},f89b:function(e,t,n){"use strict";var a=n("acd7"),i=n.n(a);i.a},fa94:function(e,t,n){},fc32:function(e,t,n){}}); -//# sourceMappingURL=app.3d31cc32.js.map \ No newline at end of file diff --git a/js/app.3d31cc32.js.map b/js/app.3d31cc32.js.map deleted file mode 100644 index aabd727..0000000 --- a/js/app.3d31cc32.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/layout/FitMe.vue?9e9b","webpack:///./src/components/UiColorPicker.vue?bba8","webpack:///./src/models/opentypeFeatureDefaults.js","webpack:///./src/viewparts/SiteHeader.vue?49e7","webpack:///./src/components/LanguageList.vue?9997","webpack:///./src/components/TesterBody.vue?785e","webpack:///./src/views/KerningHelp.vue?e4e0","webpack:///./src/views/Welcome.vue?cd0f","webpack:///./src/components/FontLoader.vue?6d01","webpack:///./src/components/LanguageSupportSummary.vue?8e44","webpack:///./src/components/EditableList.vue?d46a","webpack:///./src/components/CharacterInfo.vue?bae0","webpack:///./src/components/Firework.vue?9e58","webpack:///./src/components/Settings.vue?b5fe","webpack:///./src/App.vue?ced9","webpack:///src/App.vue","webpack:///./src/App.vue?2f9b","webpack:///./src/App.vue","webpack:///./src/viewparts/SiteHeader.vue?c80c","webpack:///./src/utils/viewport.js","webpack:///./src/components/FontLoader.vue?46a2","webpack:///./src/components/FontSelect.vue?7e9c","webpack:///./src/components/UiSelect.vue?929b","webpack:///src/components/UiSelect.vue","webpack:///./src/components/UiSelect.vue?7326","webpack:///./src/components/UiSelect.vue","webpack:///./src/components/UiTooltip.vue?c0c9","webpack:///src/components/UiTooltip.vue","webpack:///./src/components/UiTooltip.vue?987d","webpack:///./src/components/UiTooltip.vue","webpack:///./src/components/layout/FitMe.vue?ebf2","webpack:///src/components/layout/FitMe.vue","webpack:///./src/components/layout/FitMe.vue?8138","webpack:///./src/components/layout/FitMe.vue","webpack:///src/components/FontSelect.vue","webpack:///./src/components/FontSelect.vue?5a7d","webpack:///./src/components/FontSelect.vue","webpack:///./src/components/FileDrop.vue?bdef","webpack:///src/components/FileDrop.vue","webpack:///./src/components/FileDrop.vue?064e","webpack:///./src/components/FileDrop.vue","webpack:///./src/components/Fireworks.vue?a465","webpack:///./src/utils/mousePosition.js","webpack:///./src/components/Firework.vue?c526","webpack:///src/components/Firework.vue","webpack:///./src/components/Firework.vue?f999","webpack:///./src/components/Firework.vue","webpack:///src/components/Fireworks.vue","webpack:///./src/components/Fireworks.vue?904d","webpack:///./src/components/Fireworks.vue","webpack:///./src/models/opentypeFeatureNames.js","webpack:///./src/models/Font.js","webpack:///./src/utils/id.js","webpack:///./src/utils/styles.js","webpack:///./src/models/DEFAULT_FONTS.js","webpack:///src/components/FontLoader.vue","webpack:///./src/components/FontLoader.vue?c901","webpack:///./src/components/FontLoader.vue","webpack:///./src/components/EditorNav.vue?3002","webpack:///./src/components/EditorNavLink.vue?4068","webpack:///src/components/EditorNavLink.vue","webpack:///./src/components/EditorNavLink.vue?03cb","webpack:///./src/components/EditorNavLink.vue","webpack:///src/components/EditorNav.vue","webpack:///./src/components/EditorNav.vue?a403","webpack:///./src/components/EditorNav.vue","webpack:///./src/components/SiteLogo.vue?fed4","webpack:///./src/components/SiteLogo.vue","webpack:///./src/components/layout/SigmoidContainer.vue?6355","webpack:///src/components/layout/SigmoidContainer.vue","webpack:///./src/components/layout/SigmoidContainer.vue?7190","webpack:///./src/components/layout/SigmoidContainer.vue","webpack:///./src/models/textKinds.js","webpack:///./src/models/textKindTitle.js","webpack:///src/viewparts/SiteHeader.vue","webpack:///./src/viewparts/SiteHeader.vue?f311","webpack:///./src/viewparts/SiteHeader.vue","webpack:///./src/viewparts/SiteFooter.vue?1125","webpack:///src/viewparts/SiteFooter.vue","webpack:///./src/viewparts/SiteFooter.vue?6854","webpack:///./src/viewparts/SiteFooter.vue","webpack:///./src/views/Home.vue?d4dd","webpack:///./src/models/shuffle.js","webpack:///./src/views/Welcome.vue?9e3a","webpack:///./src/views/Welcome.md?caad","webpack:///./src/views/Welcome.md","webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?3962","webpack:///./src/views/Welcome.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?af46","webpack:///./src/views/Home.vue","webpack:///./src/views/Help.vue?237d","webpack:///./src/views/Help.vue","webpack:///./src/views/KerningHelp.vue?e54e","webpack:///./src/utils/characterRange.js","webpack:///./src/utils/cartesianProduct.js","webpack:///./src/models/KerningGenerator.js","webpack:///./src/components/KerningEditor.vue?7643","webpack:///./src/models/kerningSegments.js","webpack:///src/components/KerningEditor.vue","webpack:///./src/components/KerningEditor.vue?f5ca","webpack:///./src/components/KerningEditor.vue","webpack:///./src/views/Kerning.md?9783","webpack:///./src/views/Kerning.md","webpack:///src/views/KerningHelp.vue","webpack:///./src/views/KerningHelp.vue?53a5","webpack:///./src/views/KerningHelp.vue","webpack:///./src/views/AnimationHelp.vue?cdda","webpack:///./src/views/Animation.md?4038","webpack:///./src/views/Animation.md","webpack:///src/views/AnimationHelp.vue","webpack:///./src/views/AnimationHelp.vue?88f5","webpack:///./src/views/AnimationHelp.vue","webpack:///./src/views/FontTester.vue?b119","webpack:///./src/components/layout/Pinnable.vue?820a","webpack:///src/components/layout/Pinnable.vue","webpack:///./src/components/layout/Pinnable.vue?c9a5","webpack:///./src/components/layout/Pinnable.vue","webpack:///./src/components/Settings.vue?52e3","webpack:///./src/components/UiNumber.vue?ed7f","webpack:///src/components/UiNumber.vue","webpack:///./src/components/UiNumber.vue?00f1","webpack:///./src/components/UiNumber.vue","webpack:///./src/components/UiColorPicker.vue?ea6a","webpack:///src/components/UiColorPicker.vue","webpack:///./src/components/UiColorPicker.vue?1061","webpack:///./src/components/UiColorPicker.vue","webpack:///src/components/Settings.vue","webpack:///./src/utils/DomSelection.js","webpack:///./src/components/Settings.vue?26f0","webpack:///./src/components/Settings.vue","webpack:///./src/components/TesterBody.vue?0a9e","webpack:///./src/components/FontSample.vue?e336","webpack:///src/components/FontSample.vue","webpack:///./src/components/FontSample.vue?dab9","webpack:///./src/components/FontSample.vue","webpack:///./src/components/SampleHeader.vue?b00a","webpack:///./src/utils/printNumber.js","webpack:///src/components/SampleHeader.vue","webpack:///./src/components/SampleHeader.vue?93f3","webpack:///./src/components/SampleHeader.vue","webpack:///./src/components/GotchaHeader.vue?597b","webpack:///src/components/GotchaHeader.vue","webpack:///./src/components/GotchaHeader.vue?3c59","webpack:///./src/components/GotchaHeader.vue","webpack:///src/components/TesterBody.vue","webpack:///./src/components/TesterBody.vue?6b98","webpack:///./src/components/TesterBody.vue","webpack:///./src/components/LanguageNav.vue?955a","webpack:///./src/utils/fireEvent.js","webpack:///src/components/LanguageNav.vue","webpack:///./src/components/LanguageNav.vue?bc95","webpack:///./src/components/LanguageNav.vue","webpack:///./src/components/KerningNav.vue?c08c","webpack:///./src/utils/scrollToHash.js","webpack:///src/components/KerningNav.vue","webpack:///./src/components/KerningNav.vue?bc14","webpack:///./src/components/KerningNav.vue","webpack:///./src/components/LanguageSupportSummary.vue?9211","webpack:///./src/components/layout/ScrollPanel.vue?266e","webpack:///./src/components/layout/ScrollPanel.vue","webpack:///./src/components/LanguagePanel.vue?9331","webpack:///src/components/LanguagePanel.vue","webpack:///./src/components/LanguagePanel.vue?9f06","webpack:///./src/components/LanguagePanel.vue","webpack:///./src/components/LanguageList.vue?24f2","webpack:///src/components/LanguageList.vue","webpack:///./src/components/LanguageList.vue?b831","webpack:///./src/components/LanguageList.vue","webpack:///./src/components/CharacterPanel.vue?16c1","webpack:///./src/components/CharacterInfo.vue?cd05","webpack:///src/components/CharacterInfo.vue","webpack:///./src/components/CharacterInfo.vue?041f","webpack:///./src/components/CharacterInfo.vue","webpack:///src/components/CharacterPanel.vue","webpack:///./src/components/CharacterPanel.vue?4f7f","webpack:///./src/components/CharacterPanel.vue","webpack:///src/components/LanguageSupportSummary.vue","webpack:///./src/components/LanguageSupportSummary.vue?c62b","webpack:///./src/components/LanguageSupportSummary.vue","webpack:///./src/components/FontSampleNav.vue?a3f3","webpack:///./src/components/AnimationEditor.vue?7792","webpack:///./src/components/EditableList.vue?4d96","webpack:///src/components/EditableList.vue","webpack:///./src/components/EditableList.vue?0d9d","webpack:///./src/components/EditableList.vue","webpack:///src/components/AnimationEditor.vue","webpack:///./src/components/AnimationEditor.vue?8d32","webpack:///./src/components/AnimationEditor.vue","webpack:///src/components/FontSampleNav.vue","webpack:///./src/components/FontSampleNav.vue?50f2","webpack:///./src/components/FontSampleNav.vue","webpack:///src/views/FontTester.vue","webpack:///./src/views/FontTester.vue?125c","webpack:///./src/views/FontTester.vue","webpack:///./src/router.js","webpack:///./src/models/kerningPatterns.js","webpack:///./src/models/kerningPatternName.js","webpack:///./src/models/textKindLanguageDataField.js","webpack:///./src/utils/escapeHtmlId.js","webpack:///./src/utils/escapeHtml.js","webpack:///./src/store.text.js","webpack:///./src/models/Settings.js","webpack:///./src/store.animation.js","webpack:///./src/store.layout.js","webpack:///./src/store-mediator.js","webpack:///./src/models/convertLength.js","webpack:///./src/models/computedParams.js","webpack:///./src/store.js","webpack:///./src/main.js","webpack:///./src/App.vue?9ca0","webpack:///./src/components/LanguagePanel.vue?1944","webpack:///./src/components/layout/Pinnable.vue?aaf1","webpack:///./src/models/loadFont.worker.js","webpack:///./src/components/KerningEditor.vue?4c49","webpack:///./src/components/SiteLogo.vue?0c80","webpack:///./src/viewparts/SiteFooter.vue?e7a3","webpack:///./src/components/EditorNavLink.vue?efc7","webpack:///./src/components/LanguageNav.vue?421f","webpack:///./src/components/FontSample.vue?ad81","webpack:///./src/components/FontSelect.vue?766f","webpack:///./src/components/UiSelect.vue?1c83","webpack:///./src/components/FontSampleNav.vue?a773","webpack:///./src/components/GotchaHeader.vue?6297","webpack:///./src/components/UiNumber.vue?5917","webpack:///./src/components/UiTooltip.vue?dc55","webpack:///./src/components/AnimationEditor.vue?9d8d","webpack:///./src/models/opentypeLanguageTags.js","webpack:///./src/components/EditorNav.vue?0b06","webpack:///./src/components/KerningNav.vue?7493","webpack:///./src/views/FontTester.vue?26a9","webpack:///./src/views/Home.vue?649e","webpack:///./src/components/layout/SigmoidContainer.vue?cf31","webpack:///./src/components/FileDrop.vue?8fb3","webpack:///./src/components/CharacterPanel.vue?3dd5"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","directives","rawName","staticClass","attrs","staticRenderFns","watch","$route","val","oldVal","$store","commit","mounted","addEventListener","someMethod","beforeDestroy","removeEventListener","methods","component","class","footerVisible","sticky","aboveHeaderTransition","textKind","on","toggleSettingsPanel","_e","nativeOn","$event","scrollToTop","showFontLoader","_l","kind","_v","_s","navlinkText","toggleContextualPanel","staticStyle","stopPropagation","Math","max","document","documentElement","clientWidth","innerWidth","clientHeight","innerHeight","onFilesDropped","fontOptions","selectedFont","fontLoading","selectFont","setLastFont","setPreviousFont","setNextFont","ref","$refs","button1","selectedBoldFont","selectBoldFont","selectedItalicFont","selectItalicFont","selectedBoldItalicFont","selectBoldItalicFont","selectedHeaderFont","selectHeaderFont","expression","fontLoadingProgress","errorMessage","log","family","fonts","fontOptionKeys","label","loading","v","$emit","scopedSlots","_u","fn","props","style","optionSampleStyle","option","sampleText","originalFamily","version","shortFileName","fileName","keys","$slots","slot","_t","classes","domProps","submittedValue","icon","disabled","isAutocomplete","tabindex","onFocus","type","indexOf","_k","keyCode","preventDefault","openDropdown","onBlur","default","labelClasses","hasDisplayText","placeholder","e","setCustomValue","target","highlightOption","highlightedIndex","onInputEnter","closeDropdown","isFocused","displayText","hasFloatingLabel","isLabelInline","dropdownClass","dropdownPosition","onClose","onOpen","onReveal","selectHighlighted","searchPlaceholder","composing","query","sortedOptions","filteredOptions","index","refInFor","multiple","isOptionSelected","selectOption","autoScroll","error","help","callback","visibilityChanged","once","fontSize","localText","text","String","cutText","Number","runFit","fit","components","UiSelect","UiTooltip","FitMe","Array","Boolean","image","visible","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","computed","scrolledParent","querySelector","scrolledParentSelector","handleBodyDragEnter","destroyed","preventScroll","showDrop","console","toggleBodyScroll","hideDrop","files","dataTransfer","types","scrollTop","scrolledParentTop","disableScroll","setTimeout","enableScroll","f","position","trackMouse","element","mouseEvent","handler","x","pageX","y","pageY","$vnode","font","letter","genCharArray","charA","charZ","a","fromCharCode","getLetters","letterSoup","firework","$el","left","top","opacity","duration","animationDuration","timeline","add","forEach","id","transform","disable","fireworks","keyCount","$on","getOpenTypeFeatureName","tag","match","opentypeFeatureNames","find","test","replace","Font","url","processFont","obj","getNames","getFeatures","getGlyphs","generateFontFace","names","preferredFamily","en","fontFamily","preferredSubfamily","fontSubfamily","cssFamily","cssStyle","cssWeight","tables","os2","usWeightClass","displayName","glyphs","map","k","filter","g","unicode","characters","gpos","gsub","languageSet","Set","scripts","flatMap","script","langSysRecords","lsr","loclLanguages","from","language","opentypeLanguageTags","opentypeTag","htmlTag","toLowerCase","sort","b","getOwnPropertyNames","gposFeatures","features","duplicate","ff","feature","gsubFeatures","languages","selectedLanguage","uiName","variationAxes","fvar","axes","weight","fontFace","proposal","getElementById","random","hex","toString","css","getId","newStyle","createElement","appendChild","createTextNode","head","existing","parentNode","removeChild","setProperty","prop","FontSelect","UiModal","UiButton","UiPopover","UiProgressLinear","UiFileupload","FileDrop","Fireworks","gui","progressVisible","selectedSampleKey","errorLogs","openedWithoutFonts","defaultFontsLoaded","previousFont","init","loadDefaultFonts","loadFonts","path","$router","urls","dispatch","worker","onmessage","duplicates","bumpVersion","highest","errors","postMessage","printFontLoadingError","results","extraError","modal","open","getFont","lastFont","waterfallFilter","array","selectedFontIndex","matchingBold","matchingItalic","matchingBoldItalic","min","customTextIds","removeCustomText","UiIconButton","EditorNavLink","boundary","len","lessCustomTextIds","moreCustomTextIds","_m","svgLeftId","svgRightId","sigmoidWrapperStyle","sigmoidStyle","waviness","sides","width","marginAdjust","background","control","sidesArray","split","right","rootStyle","containerStyle","contentStyle","backgroundImage","backgroundColor","toUpperCase","substr","FontLoader","EditorNav","SiteLogo","SigmoidContainer","hideHeaderOnScroll","textKinds","stickyShowDelta","stickyHideDelta","lastTop","params","setAboveHeaderTransition","setSticky","viewport","height","textKindTitle","scrollTo","measureTop","hasScrolled","delta","initStickyHeader","setInterval","didScroll","initObserver","observer","disconnect","entries","IntersectionObserver","options","observe","sentinel","updateHeight","webkit","parallaxClasses","getParallaxText","overlayClasses","shuffle","floor","Welcome","loaded","parallaxTexts","maybeSetupParallax","cleanupParallax","browser","setupParallax","parallaxes","parallax","moveParallax","segments","addKerningSegment","removeKerningSegment","line","characterRange","charCodeAt","cartesianProductOf","reduce","arguments","ret","concat","escapeRegExp","string","splitWithEscape","separator","escape","endsWithEscape","RegExp","fragments","current","char","escapedSeparator","KerningGenerator","sets","closures","segmentClosures","special","escaped","join","closureSide","compoundClosure","parseSequences","parseClosure","matchAll","ranges","start","end","singleCharacters","pattern","JSON","parse","stringify","product","cartesianProduct","lines","commitLine","sub","fragment","openings","set","closure","closings","openingSequences","reverse","closingSequences","segment","builtInSegmentCharacters","model","$$v","$set","segmentSelects","focus","updated","Kerning","KerningEditor","kerningStringLines","getKey","Animation","settingsPanelVisible","fontSampleTexts","selectedTextKind","modifyText","navElementTitle","contextualPanelVisible","navElement","forceInvisible","isVisible","pinned","footerNear","footerNearer","triggerHover","scrolled","title","togglePinPanel","disableOverscroll","onWheel","closestLike","el","predicate","node","depth","isPinned","side","trigger","scrollSyncStartEvent","scrollSyncEndEvent","storedScrollPosition","lastHeight","vb","cleanup","getTriggerElement","onTriggerMouseEnter","onTriggerMouseLeave","toggle","hide","mysteriousClick","contains","event","isNavigationAnchor","initScrollSync","settings","minFontSize","maxFontSize","fontSizeStep","fontSizeClickStep","updateSetting","fontSizeUnit","fontSizeUnitOptions","waterfallSizes","enableWaterfall","lineHeight","minLineHeight","maxLineHeight","lineHeightStep","lineHeightClickStep","defaultLineHeight","tracking","minTracking","maxTracking","trackingStep","trackingClickStep","defaultTracking","textAlign","textAlignOptions","textColor","textTransform","textTransformOptions","wrapLines","capFeatures","localizationLanguage","localizationLanguages","loclSelectKeys","isLocalizationInvalid","onGotchasTab","localization","numberFeatures","pnum","tnum","figureWidths","figureWidth","lnum","onum","figureHeights","figureHeight","stylisticSets","otherGsub","activeGpos","axis","enabled","minValue","maxValue","autocomplete","enforceMaxlength","maxlength","minlength","readonly","required","stepValue","displayedText","onBlur2","updateValue","onKeydownEnter","onKeydown","startIncrement","endIncrementDecrement","startDecrement","hasFeedback","valueLength","extends","UiTextbox","step","clickStep","clickStepFunction","Function","tryValue","incrementTimeout","stringValue","tempValue","toLocaleString","_clickStep","coerceValue","roundedToStep","isNaN","abs","corrected","EPSILON","correctValue","Decimal","toNearest","toNumber","roundedToClickStep","getSteps","iteration","getDelay","increment","by","decrement","steps","clearTimeout","updateFromInput","textValue","input","colorValue","updateFromPicker","openPopover","popover","tiny","isValid","formatText","update","TinyColor","updateText","updateProgrammatically","toHex8","toHex8String","toHexString","getFormat","saveSelection","restoreSelection","getSelectionRange","UiCheckbox","UiSlider","UiRadioGroup","UiNumber","UiColorPicker","capTags","figureTags","numberTags","stylisticSetTags","loclTags","activeGsub","getGsubSubset","getGsubFeature","selected","setFigureVariant","beforeUpdate","$parent","animating","mutation","payload","isGotchas","isCustom","size","fontSizes","onPaste","onInput","item","header","isContentEditable","onSelectStart","onSelectEnd","getSelection","createRange","sel","rangeCount","getRangeAt","containerEl","doc","ownerDocument","win","defaultView","range","preSelectionRange","cloneRange","selectNodeContents","setEnd","startContainer","startOffset","savedSel","charIndex","setStart","collapse","nodeStack","foundStart","stop","pop","nodeType","nextCharIndex","childNodes","removeAllRanges","addRange","selection","selectedTextRange","preSelectionTextRange","body","createTextRange","moveToElementText","setEndPoint","textRange","moveEnd","moveStart","select","DomSelection","container","ancestor","commonAncestorContainer","Node","TEXT_NODE","cloneContents","existentTags","querySelectorAll","closestTag","closest","isParagraph","parent","tmp","surroundContents","newContent","createDocumentFragment","nodeValue","innerText","newEl","cloneNode","replaceChild","fr","cc","deleteContents","insertNode","empty","newParent","extractContents","clean","child","fontFeatureSettings","fontVariationSettings","selectedLoclLanguage","langId","padEnd","printNumber","speakers","fNum","topic","description","SampleHeader","GotchaHeader","FontSample","texts","formatRequested","wrap","saveText","syncSamples","$watch","configureAnchors","deleteFromDocument","paste","elements","notifyWindow","dispatchEvent","Event","nextAnchor","previousAnchor","goToAnchor","languageFilter","clearFilter","isSelected","values","selectScripts","anySelected","checked","selectDeselectAllLanguages","preventParentScroll","hasText","toggleLanguage","highlightAnchor","fireEvent","eventName","createEvent","initEvent","filteredLanguages","highlightedAnchor","anchors","highlightedAnchorIndex","some","selectedScripts","$nextTick","filterTextbox","scrollAnchorIntoView","padding","margin","updateKerningPattern","addKerningPattern","selectedPatternId","toggleKerningPattern","selectPattern","formatPatternId","removeKerningPattern","revertKerningPatterns","kerningPatterns","clearKerningPatterns","scrollToHash","hash","getAttribute","selector","offsetTop","activeElement","inputInvalid","emptySegment","noSegments","requestVuebarFreeze","$vuebar","freezeScrollbar","languageSupport","supportedLanguages","supportedLanguagesSortingOptions","supportedLanguagesSorting","selectLanguage","unsupportedLanguagesSortingOptions","unsupportedLanguagesSorting","ceil","missingCharacters","missingCharacterSortingOptions","missingCharacterSorting","character","limit","selectCharacter","selectedCharacter","isMissing","languageInfo","includedCharacters","specialLetters","requiredCharacters","gotchas","tags","htmlCode","fields","copyList","list","execCommand","characterInfo","obligatoryLanguages","wordFinderUrl","optionalLanguages","characterRepresentation","unicodes","glyphnames","codepoints","CharacterInfo","LanguageList","render","LanguagePanel","CharacterPanel","Pinnable","ScrollPanel","sortLanguages","langs","unsupportedLanguages","chars","sorting","isHeadingActive","makeHeading","isBoldActive","makeBold","isItalicActive","makeItalic","heading","animationKeyframes","removeAnimationKeyframe","activeKeyframeId","activateKeyframe","keyframeProgress","addAnimationKeyframe","playing","canAnimate","play","proxy","keyframesText","importAnimationKeyframes","animatedProperties","animatableProperties","properties","setAnimatedProperties","EditableList","progress","updateKeyframeProgress","frame","keyframes","discreteFrame","continuousFrame","discreteKeyframes","continuousKeyframes","targets","sample","easing","autoplay","delay","endDelay","elapsed","begin","complete","restart","AnimationEditor","onSelection","containsTag","Settings","TesterBody","LanguageNav","KerningNav","FontSampleNav","LanguageSupportSummary","selectedCustomTextId","selectSample","beforeMount","Vue","use","Router","base","process","routes","SiteHeader","main","Home","footer","SiteFooter","redirect","FontTester","KerningHelp","AnimationHelp","Help","kerningPatternName","lettering","pangrams","sentences","ABCs","kerning","escapeHtml","unsafe","customTextId","SCRIPTS","Latn","Cyrl","Armn","Grek","IPA","SCRIPT_TAGS","LanguageData","LANGUAGES","localeCompare","state","textHeadings","defaultKerningPatterns","fontCharacters","mutations","setText","sampleKey","html","headings","languageDataFields","addCustomText","route","router","currentRoute","format","initKerningPatterns","toEnd","copy","kerningString","unshift","kp","findIndex","updateKerning","patterns","escapeHtmlId","updateFontCharacters","actions","matching","getters","squish","str","fieldKey","selectedSampleTextKey","selectedLanguages","mappedData","tests","AaBbCc","ABC","every","abc","Accents","accents","padStart","visibleLanguages","alphabet","otherLanguages","ll","uniqueCharacterFilter","testableLanguages","specialCharacters","acc","cur","optionalCharacters","ch","missingCharactersByScript","groupCharactersByScript","includedCharactersByScript","missingCharacterCombinationsByScript","characterCombinations","includedCharacterCombinationsByScript","charactersByScript","caseFirst","isAccent","definitions","definition","dflt","color","mapCompoundProp","to","parseInt","parseFloat","fallbackFontFamily","validate","enableVariationAxis","clone","maxId","snapshot","updateKeyframe","getStyleFromSettings","finishAnimateSettings","animateSettings","context","mergeStyleOntoSettings","$scrollToTop","footerSentinelVisibleRatio","updateFooter","ratio","configureMediator","store","subscribe","animation","UnitConverter","formulas","dpi","units","round","decimals","number","convertLength","converter","convert","Vuex","Store","textModule","animationModule","layout","layoutModule","getDefaults","displayedSettings","fontLoadStart","fontLoadEnd","boldFont","italicFont","boldItalicFont","headerFont","mapFontFeatureSettings","mergeFeatures","active","opentypeFeatureDefaults","updateGposFeature","updateGsubFeature","updateLoclFeature","mapFontVariationSettings","aa","defaultValue","updateVariationAxis","resetSettings","computeParams","computedParams","paramFunction","newValue","updateSettings","newUnit","restoreSettings","convertFontSize","newSize","config","productionTip","Vuebar","VueObserveVisibility","VueWorker","h","App","$mount","Worker"],"mappings":"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D,QAAyB,GAAhByC,EAAQza,MACjB,QAAyB,WAAhBya,EAAQza,MACjB,QAAyB,IAAhBya,EAAQza,MACjB,QAAyB,SAAhBya,EAAQza,MACjB,QAAyB,WAAhBya,EAAQza,MACjB,QAAyB,IAAhBya,EAAQza,MACjB,QAAyB,UAAhBya,EAAQza,MACjB,OAAwB,GAAhBya,EAAQza,MAChB,QAASya,EAAQza,MAAQya,EAAQuhB,KAAO,IAExC,QAASvhB,EAAQza,MAAQ,QACzB,QAAyB,KAAhBya,EAAQza,MACjB,QAASya,EAAQza,MAAQ,QACzB,QAASya,EAAQza,MAAQ,SACzB,QAAyB,KAAhBya,EAAQza,MAAe,GAChC,QAASya,EAAQza,MAAQ,QACzB,QAASya,EAAQza,MAAQ,cACzB,OAASya,EAAQza,MAAQya,EAAQuhB,KAAQ,IAAMvhB,EAAQopB,IACvD,QAASppB,EAAQza,MAAQya,EAAQopB,IAEjC,QAASppB,EAAQza,MAAQ,UACzB,QAASya,EAAQza,MAAQ,GACzB,QAAyB,cAAhBya,EAAQza,MACjB,QAASya,EAAQza,MAAQ,WACzB,QAA0B,IAAhBya,EAAQza,MAAgB,GAClC,QAASya,EAAQza,MAAQ,WACzB,QAASya,EAAQza,MAAQ,cACzB,OAAYya,EAAQza,MAAQya,EAAQuhB,KAAQ,IAAO,KAAQvhB,EAAQopB,IAAO,GAC1E,QAAWppB,EAAQza,MAAQ,KAAQya,EAAQopB,IAAO,GAElD,QAASppB,EAAQza,MAAQ,GACzB,QAAyB,UAAhBya,EAAQza,MACjB,QAASya,EAAQza,MACjB,QAASya,EAAQza,MAAQ,IACzB,QAAyB,QAAhBya,EAAQza,MACjB,QAAyB,WAAhBya,EAAQza,MACjB,QAASya,EAAQza,MAAQ,eACzB,OAAwB,IAAhBya,EAAQza,MAChB,QAASya,EAAQza,MAAQya,EAAQuhB,KAEjC,QAASvhB,EAAQza,MAAQ,SACzB,QAASya,EAAQza,MAAQ,cACzB,QAASya,EAAQza,MAAQ,UACzB,QAASya,EAAQza,MAAQ,UACzB,QAAyB,cAAhBya,EAAQza,MACjB,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","file":"js/app.3d31cc32.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=style&index=0&id=1f5793db&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=style&index=0&id=1f5793db&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=style&index=0&id=50a2c3f2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=style&index=0&id=50a2c3f2&lang=scss&scoped=true&\"","// included features are enabled by default\n\nmodule.exports = [\n 'mark',\n 'mkmk',\n 'kern',\n 'ccmp',\n 'locl',\n 'liga',\n 'calt',\n 'rclt',\n 'rlig',\n 'rvrn',\n]\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=style&index=0&id=50601dbf&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=style&index=0&id=50601dbf&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=style&index=0&id=6123afb8&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=style&index=0&id=6123afb8&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=style&index=0&id=7273fa36&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=style&index=0&id=7273fa36&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=style&index=0&id=4602ce0c&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=style&index=0&id=4602ce0c&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=style&index=1&id=69007cc0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=style&index=1&id=69007cc0&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=style&index=0&id=42b34de5&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=style&index=0&id=42b34de5&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=style&index=0&id=237c7d63&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=style&index=0&id=237c7d63&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=style&index=0&id=e1627b64&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=style&index=0&id=e1627b64&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"bar\",rawName:\"v-bar\"}],staticClass:\"app\"},[_c('div',{staticClass:\"app-content\"},[_c('router-view',{attrs:{\"name\":\"header\"}}),_c('div',{staticClass:\"site-content\"},[_c('keep-alive',[_c('router-view',{attrs:{\"name\":\"main\"}})],1)],1),_c('router-view',{attrs:{\"name\":\"footer\"}})],1),_c('div',{staticClass:\"shade\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=b5ee82d6&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"site-header \" + (!_vm.footerVisible && _vm.sticky ? 'sticky' : ''))},[_c('transition-group',{staticClass:\"above-sidebar slide-left-wrapper\",attrs:{\"tag\":\"div\",\"name\":_vm.aboveHeaderTransition}},[(!!_vm.textKind)?_c('div',{key:\"button\",staticClass:\"settings-aside-wrap\"},[_c('SigmoidContainer',{staticClass:\"settings-aside light\",attrs:{\"id\":\"settings-trigger\",\"sides\":\"right top\"}},[_c('nav',{staticClass:\"nav nav-aside\",on:{\"click\":_vm.toggleSettingsPanel}},[_c('div',{staticClass:\"transition-wrapper\"},[_c('UiIconButton',[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}})])])],1)])])],1):_vm._e(),_c('div',{key:\"logo\",staticClass:\"logo\"},[_c('router-link',{staticClass:\"home\",attrs:{\"to\":\"/\"},nativeOn:{\"click\":function($event){return _vm.scrollToTop($event)}}},[_c('SiteLogo')],1)],1)]),_c('div',{staticClass:\"dark main\"},[_c('FontLoader',{attrs:{\"gui\":_vm.showFontLoader}}),_c('nav',{staticClass:\"nav nav-text-kinds\"},[_c('EditorNav'),_vm._l((_vm.textKinds),function(kind){return _c('span',{key:kind,staticClass:\"nav-link\"},[_c('router-link',{attrs:{\"to\":(\"/\" + kind)}},[_vm._v(_vm._s(_vm.navlinkText(kind)))])],1)})],2)],1),_c('SigmoidContainer',{staticClass:\"light aside\",attrs:{\"id\":\"nav-trigger\",\"sides\":\"left top\"}},[_c('nav',{staticClass:\"nav nav-aside\",on:{\"click\":_vm.toggleContextualPanel}},[_c('div',{staticClass:\"transition-wrapper\"},[_c('transition',{attrs:{\"name\":\"swap\"}},[(!_vm.textKind)?_c('div',{key:\"0\",staticClass:\"ui-icon-button github-icon-link-wrapper\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('a',{staticClass:\"github-icon-link\",attrs:{\"href\":\"https://github.com/hyvyys/Bulletproof\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}})])])]):(_vm.textKind === 'custom')?_c('UiIconButton',{key:\"1\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}})])]):(_vm.textKind === 'kerning')?_c('UiIconButton',{key:\"2\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.01 17V8.97h-3V7.03H13v1.94h-3V17zM18 19v2h-7v2.4L7 19zM6 5V3h7V.6L17 5z\"}}),_c('path',{staticStyle:{\"line-height\":\"0\",\"-inkscape-font-specification\":\"'arial Bold'\"},attrs:{\"d\":\"M15.53 15.44c-.86 0-1.62-.76-1.62-1.93 0-1.16.76-1.93 1.62-1.93.85 0 1.62.77 1.62 1.93 0 1.17-.77 1.93-1.62 1.93zm0-5.54c-2.06 0-3.72 1.4-3.72 3.61 0 2.22 1.66 3.61 3.72 3.61 2.07 0 3.7-1.4 3.7-3.6 0-2.23-1.7-3.62-3.7-3.62z\"}})])]):_c('UiIconButton',{key:\"3\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M0 0h24v24H0V0z\"}})]),_c('clipPath',{attrs:{\"id\":\"b\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\",\"overflow\":\"visible\"}})]),_c('path',{attrs:{\"clip-path\":\"url(#b)\",\"d\":\"M14 10H2v2h12v-2zm0-4H2v2h12V6zM2 16h8v-2H2v2zm19.5-4.5L23 13l-6.99 7-4.51-4.5L13 14l3.01 3 5.49-5.5z\"}})])])],1)],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n get width() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n },\n get height() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-loader\"},[(_vm.gui)?_c('span',{staticClass:\"font-loader-item\"},[_c('UiFileupload',{staticClass:\"dark\",attrs:{\"label\":\" \",\"name\":\"font-file-input\",\"accept\":\".ttf,.otf,.woff,.woff2\",\"multiple\":true,\"size\":\"small\"},on:{\"change\":_vm.onFilesDropped}}),_c('UiTooltip',{attrs:{\"openDelay\":500}},[_vm._v(\"\\n Open fonts (you can also drag and drop font files anywhere on the page)\\n \")])],1):_vm._e(),(_vm.gui)?_c('FontSelect',{staticClass:\"dark font-select-main font-loader-item\",attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedFont,\"loading\":_vm.fontLoading},on:{\"input\":_vm.selectFont}}):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Set last font\"},on:{\"click\":_vm.setLastFont}},[_c('b',[_vm._v(\"⮀\")])])],1):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Set previous font\"},on:{\"click\":_vm.setPreviousFont}},[_c('b',[_vm._v(\"⇐\")])])],1):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Set next font\"},on:{\"click\":_vm.setNextFont}},[_c('b',[_vm._v(\"⇒\")])])],1):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{ref:\"button1\",staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Emphasis fonts\"}},[_c('b',[_vm._v(\"B\")]),_c('i',[_vm._v(\"I\")])]),_c('UiPopover',{staticClass:\"font-select-popover\",attrs:{\"trigger\":_vm.$refs.button1,\"zIndex\":58}},[_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedBoldFont,\"label\":\"Bold (strong emphasis)\",\"loading\":_vm.fontLoading},on:{\"input\":_vm.selectBoldFont}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedItalicFont,\"label\":\"Italic (emphasis)\",\"loading\":_vm.fontLoading},on:{\"input\":_vm.selectItalicFont}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedBoldItalicFont,\"label\":\"Bold italic\",\"loading\":_vm.fontLoading},on:{\"input\":_vm.selectBoldItalicFont}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedHeaderFont,\"label\":\"Header\",\"loading\":_vm.fontLoading},on:{\"input\":_vm.selectHeaderFont}})],1)],1):_vm._e(),_c('FileDrop',{ref:\"fileDrop\",on:{\"filesDropped\":_vm.onFilesDropped}}),_c('transition',{attrs:{\"name\":\"fade-slow-reverse\"}},[_c('UiProgressLinear',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.progressVisible),expression:\"progressVisible\"}],staticClass:\"font-loading-progress\",attrs:{\"type\":\"determinate\",\"progress\":_vm.fontLoadingProgress}})],1),_c('UiModal',{ref:\"modal\",attrs:{\"title\":\"Error opening fonts.\"}},[_c('div',[_c('div',[_vm._v(_vm._s(_vm.errorMessage))]),_vm._l((_vm.errorLogs),function(log,i){return _c('code',{key:i},[_vm._v(_vm._s(log))])})],2)]),_c('Fireworks',{ref:\"fireworks\",attrs:{\"font\":_vm.selectedFont.family}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('UiSelect',{staticClass:\"font-select\",attrs:{\"value\":_vm.value,\"options\":_vm.fonts,\"keys\":_vm.fontOptionKeys,\"dropdownClass\":\"font-select__dropdown\",\"label\":_vm.label,\"loading\":_vm.loading,\"disabled\":_vm.loading},on:{\"input\":function (v) { return _vm.$emit('input', v); }},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return _c('div',{},[_c('div',{staticClass:\"col col-sample\",style:(_vm.optionSampleStyle(props.option))},[_c('FitMe',{attrs:{\"text\":props.option && _vm.sampleText,\"cutText\":2}})],1),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"font-family\"},[_vm._v(_vm._s(props.option && props.option.originalFamily))]),_c('div',{staticClass:\"font-style\"},[_vm._v(_vm._s(props.option && props.option.style))]),_c('div',{staticClass:\"font-version\"},[_vm._v(\"\\n \"+_vm._s(props.option && props.option.version\n ? (\"(\" + (props.option.version) + \")\") : \"\")+\"\\n \")])]),_c('UiTooltip',{attrs:{\"position\":\"left\",\"appendToBody\":false,\"openDelay\":380}},[_vm._v(\"\\n \"+_vm._s(_vm.shortFileName(props.option.fileName))+\"\\n \")])],1)}}])},[_vm._l((Object.keys(_vm.$slots)),function(slot){return _vm._t(slot,null,{\"slot\":slot})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-select\",class:_vm.classes},[(_vm.name)?_c('input',{staticClass:\"ui-select__hidden-input\",attrs:{\"type\":\"hidden\",\"name\":_vm.name},domProps:{\"value\":_vm.submittedValue}}):_vm._e(),(_vm.icon || _vm.$slots.icon)?_c('div',{staticClass:\"ui-select__icon-wrapper\"},[_vm._t(\"icon\",[_c('ui-icon',{attrs:{\"icon\":_vm.icon}})])],2):_vm._e(),_c('div',{staticClass:\"ui-select__content\"},[_c('div',{ref:\"label\",staticClass:\"ui-select__label\",attrs:{\"tabindex\":_vm.disabled || _vm.isAutocomplete ? null : (_vm.tabindex || '0')},on:{\"focus\":_vm.onFocus,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.openDropdown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();return _vm.openDropdown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.onBlur($event)}]}},[(_vm.label || _vm.$slots.default)?_c('div',{staticClass:\"ui-select__label-text\",class:_vm.labelClasses},[_vm._t(\"default\",[_vm._v(_vm._s(_vm.label))])],2):_vm._e(),_c('div',{staticClass:\"ui-select__display\"},[(_vm.isAutocomplete)?_c('input',{ref:\"input\",staticClass:\"ui-select__display-value\",class:{ 'is-placeholder': !_vm.hasDisplayText },attrs:{\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value},on:{\"input\":function (e) { return _vm.setCustomValue(e.target.value); },\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.stopPropagation();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex + 1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex - 1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.onInputEnter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.onBlur($event)}],\"focus\":_vm.onFocus,\"blur\":function($event){_vm.isFocused = false}}}):_c('div',{staticClass:\"ui-select__display-value\",class:{ 'is-placeholder': !_vm.hasDisplayText }},[_vm._v(\"\\n \"+_vm._s(_vm.hasDisplayText ? _vm.displayText : (_vm.hasFloatingLabel && _vm.isLabelInline) ? null : _vm.placeholder)+\"\\n \")]),_c('ui-icon',{ref:\"dropdownButton\",staticClass:\"ui-select__dropdown-button\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M6.984 9.984h10.03L12 15z\"}})])])],1),_c('ui-popover',{ref:\"dropdown\",class:(\"ui-select__dropdown \" + _vm.dropdownClass),attrs:{\"close-on-scroll\":false,\"constrain-to-scroll-parent\":false,\"disabled\":_vm.disabled,\"position\":_vm.dropdownPosition},on:{\"close\":_vm.onClose,\"open\":_vm.onOpen,\"reveal\":_vm.onReveal}},[_c('keep-alive',[_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\"}],ref:\"dropdownContent\",staticClass:\"ui-select__dropdown-content\",attrs:{\"tabindex\":\"-1\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex + 1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.selectHighlighted($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.onBlur($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex - 1)}]}},[(_vm.hasSearch)?_c('div',{staticClass:\"ui-select__search\",on:{\"click\":function($event){$event.stopPropagation();},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.stopPropagation();}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],ref:\"searchInput\",staticClass:\"ui-select__search-input\",attrs:{\"autocomplete\":\"off\",\"type\":\"text\",\"placeholder\":_vm.searchPlaceholder},domProps:{\"value\":(_vm.query)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.query=$event.target.value}}}),_c('ui-icon',{staticClass:\"ui-select__search-icon\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zm6 0l4.97 4.97-1.5 1.5-4.97-4.97v-.797l-.28-.282c-1.126.984-2.626 1.547-4.22 1.547-3.61 0-6.516-2.86-6.516-6.47S5.906 3 9.516 3s6.47 2.906 6.47 6.516c0 1.594-.564 3.094-1.548 4.22l.28.28h.798z\"}})])]),(_vm.loading)?_c('ui-progress-circular',{staticClass:\"ui-select__search-progress\",attrs:{\"size\":20,\"stroke\":4}}):_vm._e()],1):_vm._e(),_c('ul',{ref:\"optionsList\",staticClass:\"ui-select__options\"},[_vm._l(((_vm.isAutocomplete ? _vm.sortedOptions : _vm.filteredOptions)),function(option,index){return _c('ui-select-option',{key:_vm.keys.key ? option[_vm.keys.key] : index,ref:\"options\",refInFor:true,attrs:{\"highlighted\":_vm.highlightedIndex === index,\"keys\":_vm.keys,\"multiple\":_vm.multiple,\"option\":option,\"selected\":_vm.isOptionSelected(option),\"type\":_vm.type},nativeOn:{\"click\":function($event){$event.stopPropagation();return _vm.selectOption(option, index)},\"mouseover\":function($event){$event.stopPropagation();return _vm.highlightOption(index, { autoScroll: false })}}},[_vm._t(\"option\",null,{\"highlighted\":_vm.highlightedIndex === index,\"index\":index,\"option\":option,\"selected\":_vm.isOptionSelected(option)})],2)}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNoResults),expression:\"hasNoResults\"}],staticClass:\"ui-select__no-results\"},[_vm._t(\"no-results\",[_vm._v(\"No results found\")])],2)],2)])])],1)],1),(_vm.hasFeedback)?_c('div',{staticClass:\"ui-select__feedback\"},[(_vm.showError)?_c('div',{staticClass:\"ui-select__feedback-text\"},[_vm._t(\"error\",[_vm._v(_vm._s(_vm.error))])],2):(_vm.showHelp)?_c('div',{staticClass:\"ui-select__feedback-text\"},[_vm._t(\"help\",[_vm._v(_vm._s(_vm.help))])],2):_vm._e()]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiSelect.vue?vue&type=template&id=244b9b87&\"\nimport script from \"./UiSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./UiSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiSelect.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-tooltip\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiTooltip.vue?vue&type=template&id=5d592866&\"\nimport script from \"./UiTooltip.vue?vue&type=script&lang=js&\"\nexport * from \"./UiTooltip.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:({\n callback: _vm.visibilityChanged,\n once: true,\n }),expression:\"{\\n callback: visibilityChanged,\\n once: true,\\n }\"}],staticClass:\"fit-me\"},[_c('div',{ref:\"fitted\",staticClass:\"fitted\",style:((\"font-size: \" + _vm.fontSize + \"px;\"))},[_vm._v(\"\\n \"+_vm._s(_vm.localText)+\"\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FitMe.vue?vue&type=template&id=1f5793db&scoped=true&\"\nimport script from \"./FitMe.vue?vue&type=script&lang=js&\"\nexport * from \"./FitMe.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FitMe.vue?vue&type=style&index=0&id=1f5793db&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f5793db\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontSelect.vue?vue&type=template&id=60b0ffce&\"\nimport script from \"./FontSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./FontSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontSelect.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"file-drop \" + (this.visible ? '' : 'hidden')),on:{\"dragenter\":_vm.handleDragEnter,\"dragleave\":_vm.handleDragLeave,\"dragover\":_vm.handleDragOver,\"drop\":_vm.handleDrop}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileDrop.vue?vue&type=template&id=5882b3e7&scoped=true&\"\nimport script from \"./FileDrop.vue?vue&type=script&lang=js&\"\nexport * from \"./FileDrop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileDrop.vue?vue&type=style&index=0&id=5882b3e7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5882b3e7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fireworks\"},_vm._l((_vm.fireworks),function(f){return _c('Firework',{key:f.key,attrs:{\"position\":f.position}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function trackMouse(element, mouseEvent, callback) {\n function handler(e) {\n var x = e.pageX;\n var y = e.pageY;\n callback({ x, y });\n }\n element.addEventListener(mouseEvent, handler);\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"firework firework-\" + (_vm.$vnode.key)),style:((\"font-family: \" + _vm.font + \";\"))},_vm._l((_vm.letterSoup),function(letter,i){return _c('div',{key:i,class:(\"letter letter-\" + i),style:((\"font-size: \" + (3 + 0.5 * (i % 6)) + \"em\"))},[_vm._v(_vm._s(letter))])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Firework.vue?vue&type=template&id=237c7d63&scoped=true&\"\nimport script from \"./Firework.vue?vue&type=script&lang=js&\"\nexport * from \"./Firework.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Firework.vue?vue&type=style&index=0&id=237c7d63&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"237c7d63\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Fireworks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Fireworks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Fireworks.vue?vue&type=template&id=191242f4&\"\nimport script from \"./Fireworks.vue?vue&type=script&lang=js&\"\nexport * from \"./Fireworks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export function getOpenTypeFeatureName(tag) {\n const match = opentypeFeatureNames.find(f => f.tag.test(tag));\n return match ? tag.replace(match.tag, match.name) : tag;\n}\n\nconst opentypeFeatureNames = [\n { tag: /aalt/, name: \"Access All Alternates\" },\n { tag: /abvf/, name: \"Above-base Forms\" },\n { tag: /abvm/, name: \"Above-base Mark Positioning\" },\n { tag: /abvs/, name: \"Above-base Substitutions\" },\n { tag: /afrc/, name: \"Alternative Fractions\" },\n { tag: /akhn/, name: \"Akhands\" },\n { tag: /blwf/, name: \"Below-base Forms\" },\n { tag: /blwm/, name: \"Below-base Mark Positioning\" },\n { tag: /blws/, name: \"Below-base Substitutions\" },\n { tag: /calt/, name: \"Contextual Alternates\" },\n { tag: /case/, name: \"Case-Sensitive Forms\" },\n { tag: /ccmp/, name: \"Glyph Composition / Decomposition\" },\n { tag: /cfar/, name: \"Conjunct Form After Ro\" },\n { tag: /cjct/, name: \"Conjunct Forms\" },\n { tag: /clig/, name: \"Contextual Ligatures\" },\n { tag: /cpct/, name: \"Centered CJK Punctuation\" },\n { tag: /cpsp/, name: \"Capital Spacing\" },\n { tag: /cswh/, name: \"Contextual Swash\" },\n { tag: /curs/, name: \"Cursive Positioning\" },\n { tag: /cv(\\d{2})/, name: \"Character Variants $1\" },\n { tag: /c2pc/, name: \"Petite Capitals From Capitals\" },\n { tag: /c2sc/, name: \"Small Capitals From Capitals\" },\n { tag: /dist/, name: \"Distances\" },\n { tag: /dlig/, name: \"Discretionary Ligatures\" },\n { tag: /dnom/, name: \"Denominators\" },\n { tag: /dtls/, name: \"Dotless Forms\" },\n { tag: /expt/, name: \"Expert Forms\" },\n { tag: /falt/, name: \"Final Glyph on Line Alternates\" },\n { tag: /fin2/, name: \"Terminal Forms #2\" },\n { tag: /fin3/, name: \"Terminal Forms #3\" },\n { tag: /fina/, name: \"Terminal Forms\" },\n { tag: /flac/, name: \"Flattened accent forms\" },\n { tag: /frac/, name: \"Fractions\" },\n { tag: /fwid/, name: \"Full Widths\" },\n { tag: /half/, name: \"Half Forms\" },\n { tag: /haln/, name: \"Halant Forms\" },\n { tag: /halt/, name: \"Alternate Half Widths\" },\n { tag: /hist/, name: \"Historical Forms\" },\n { tag: /hkna/, name: \"Horizontal Kana Alternates\" },\n { tag: /hlig/, name: \"Historical Ligatures\" },\n { tag: /hngl/, name: \"Hangul\" },\n { tag: /hojo/, name: \"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms)\" },\n { tag: /hwid/, name: \"Half Widths\" },\n { tag: /init/, name: \"Initial Forms\" },\n { tag: /isol/, name: \"Isolated Forms\" },\n { tag: /ital/, name: \"Italics\" },\n { tag: /jalt/, name: \"Justification Alternates\" },\n { tag: /jp78/, name: \"JIS78 Forms\" },\n { tag: /jp83/, name: \"JIS83 Forms\" },\n { tag: /jp90/, name: \"JIS90 Forms\" },\n { tag: /jp04/, name: \"JIS2004 Forms\" },\n { tag: /kern/, name: \"Kerning\" },\n { tag: /lfbd/, name: \"Left Bounds\" },\n { tag: /liga/, name: \"Standard Ligatures\" },\n { tag: /ljmo/, name: \"Leading Jamo Forms\" },\n { tag: /lnum/, name: \"Lining Figures\" },\n { tag: /locl/, name: \"Localized Forms\" },\n { tag: /ltra/, name: \"Left-to-right alternates\" },\n { tag: /ltrm/, name: \"Left-to-right mirrored forms\" },\n { tag: /mark/, name: \"Mark Positioning\" },\n { tag: /med2/, name: \"Medial Forms #2\" },\n { tag: /medi/, name: \"Medial Forms\" },\n { tag: /mgrk/, name: \"Mathematical Greek\" },\n { tag: /mkmk/, name: \"Mark to Mark Positioning\" },\n { tag: /mset/, name: \"Mark Positioning via Substitution\" },\n { tag: /nalt/, name: \"Alternate Annotation Forms\" },\n { tag: /nlck/, name: \"NLC Kanji Forms\" },\n { tag: /nukt/, name: \"Nukta Forms\" },\n { tag: /numr/, name: \"Numerators\" },\n { tag: /onum/, name: \"Oldstyle Figures\" },\n { tag: /opbd/, name: \"Optical Bounds\" },\n { tag: /ordn/, name: \"Ordinals\" },\n { tag: /ornm/, name: \"Ornaments\" },\n { tag: /palt/, name: \"Proportional Alternate Widths\" },\n { tag: /pcap/, name: \"Petite Capitals\" },\n { tag: /pkna/, name: \"Proportional Kana\" },\n { tag: /pnum/, name: \"Proportional Figures\" },\n { tag: /pref/, name: \"Pre-Base Forms\" },\n { tag: /pres/, name: \"Pre-base Substitutions\" },\n { tag: /pstf/, name: \"Post-base Forms\" },\n { tag: /psts/, name: \"Post-base Substitutions\" },\n { tag: /pwid/, name: \"Proportional Widths\" },\n { tag: /qwid/, name: \"Quarter Widths\" },\n { tag: /rand/, name: \"Randomize\" },\n { tag: /rclt/, name: \"Required Contextual Alternates\" },\n { tag: /rkrf/, name: \"Rakar Forms\" },\n { tag: /rlig/, name: \"Required Ligatures\" },\n { tag: /rphf/, name: \"Reph Forms\" },\n { tag: /rtbd/, name: \"Right Bounds\" },\n { tag: /rtla/, name: \"Right-to-left alternates\" },\n { tag: /rtlm/, name: \"Right-to-left mirrored forms\" },\n { tag: /ruby/, name: \"Ruby Notation Forms\" },\n { tag: /rvrn/, name: \"Required Variation Alternates\" },\n { tag: /salt/, name: \"Stylistic Alternates\" },\n { tag: /sinf/, name: \"Scientific Inferiors\" },\n { tag: /size/, name: \"Optical size\" },\n { tag: /smcp/, name: \"Small Capitals\" },\n { tag: /smpl/, name: \"Simplified Forms\" },\n { tag: /ss01/, name: \"Stylistic Set 1\" },\n { tag: /ss02/, name: \"Stylistic Set 2\" },\n { tag: /ss03/, name: \"Stylistic Set 3\" },\n { tag: /ss04/, name: \"Stylistic Set 4\" },\n { tag: /ss05/, name: \"Stylistic Set 5\" },\n { tag: /ss06/, name: \"Stylistic Set 6\" },\n { tag: /ss07/, name: \"Stylistic Set 7\" },\n { tag: /ss08/, name: \"Stylistic Set 8\" },\n { tag: /ss09/, name: \"Stylistic Set 9\" },\n { tag: /ss10/, name: \"Stylistic Set 10\" },\n { tag: /ss11/, name: \"Stylistic Set 11\" },\n { tag: /ss12/, name: \"Stylistic Set 12\" },\n { tag: /ss13/, name: \"Stylistic Set 13\" },\n { tag: /ss14/, name: \"Stylistic Set 14\" },\n { tag: /ss15/, name: \"Stylistic Set 15\" },\n { tag: /ss16/, name: \"Stylistic Set 16\" },\n { tag: /ss17/, name: \"Stylistic Set 17\" },\n { tag: /ss18/, name: \"Stylistic Set 18\" },\n { tag: /ss19/, name: \"Stylistic Set 19\" },\n { tag: /ss20/, name: \"Stylistic Set 20\" },\n { tag: /ssty/, name: \"Math script style alternates\" },\n { tag: /stch/, name: \"Stretching Glyph Decomposition\" },\n { tag: /subs/, name: \"Subscript\" },\n { tag: /sups/, name: \"Superscript\" },\n { tag: /swsh/, name: \"Swash\" },\n { tag: /titl/, name: \"Titling\" },\n { tag: /tjmo/, name: \"Trailing Jamo Forms\" },\n { tag: /tnam/, name: \"Traditional Name Forms\" },\n { tag: /tnum/, name: \"Tabular Figures\" },\n { tag: /trad/, name: \"Traditional Forms\" },\n { tag: /twid/, name: \"Third Widths\" },\n { tag: /unic/, name: \"Unicase\" },\n { tag: /valt/, name: \"Alternate Vertical Metrics\" },\n { tag: /vatu/, name: \"Vattu Variants\" },\n { tag: /vert/, name: \"Vertical Writing\" },\n { tag: /vhal/, name: \"Alternate Vertical Half Metrics\" },\n { tag: /vjmo/, name: \"Vowel Jamo Forms\" },\n { tag: /vkna/, name: \"Vertical Kana Alternates\" },\n { tag: /vkrn/, name: \"Vertical Kerning\" },\n { tag: /vpal/, name: \"Proportional Alternate Vertical Metrics\" },\n { tag: /vrt2/, name: \"Vertical Alternates and Rotation\" },\n { tag: /vrtr/, name: \"Vertical Alternates for Rotation\" },\n { tag: /zero/, name: \"Slashed Zero\" },\n];\n","import opentypeLanguageTags from \"./opentypeLanguageTags\";\nimport { getOpenTypeFeatureName } from \"./opentypeFeatureNames\";\n\nexport default class Font {\n constructor(font, url, fileName) {\n this.version = 0;\n this.url = url;\n this.fileName = fileName;\n this.font = font;\n this.processFont();\n }\n\n serialize() {\n // eslint-disable-next-line no-unused-vars\n const { font, ...obj } = this;\n return obj;\n }\n\n processFont() {\n this.getNames();\n this.getFeatures();\n this.getGlyphs();\n this.generateFontFace();\n }\n\n getNames() {\n const font = this.font;\n const names = font.names;\n this.family = (names.preferredFamily && names.preferredFamily.en) || names.fontFamily.en;\n this.originalFamily = this.family;\n if (this.version) {\n this.family += `-${this.version}`;\n }\n this.style =\n (names.preferredSubfamily && names.preferredSubfamily.en) || names.fontSubfamily.en;\n\n this.cssFamily = this.family + '-' + this.style;\n this.cssStyle = /(italic|oblique)/gi.test(this.style) ? \"italic\" : \"normal\";\n this.cssWeight = font.tables.os2.usWeightClass;\n\n this.displayName = `${this.originalFamily} ${this.style} ${this.version ? `(${this.version})` : ''}`;\n }\n\n getGlyphs() {\n const font = this.font;\n // this.characters = Object.keys(font.tables.cmap.glyphIndexMap).map(unicode => String.fromCharCode(unicode));\n const glyphs = Object.keys(font.glyphs.glyphs)\n .map(k => font.glyphs.glyphs[k])\n .filter(g => g.unicode)\n .map(g => String.fromCharCode(g.unicode));\n this.characters = glyphs;\n }\n\n getFeatures() {\n const font = this.font;\n const names = font.names;\n const gpos = font.tables.gpos || {};\n const gsub = font.tables.gsub || {};\n\n const languageSet = new Set(\n [...(gpos.scripts || []), ...(gsub.scripts || [])]\n .flatMap(s => s.script.langSysRecords).map(lsr => lsr.tag)\n );\n const loclLanguages = Array.from(languageSet)\n .map(tag => {\n // tags are four characters, last most commonly space\n const language = opentypeLanguageTags.find(l => l.opentypeTag === tag);\n const name = language ? language.name : tag;\n const htmlTag = language ? language.htmlTag : tag.toLowerCase();\n return ({ tag, name, htmlTag });\n })\n .sort((a, b) => a.name > b.name);\n\n const stylisticSetNames = Object.getOwnPropertyNames(names)\n .filter(p => /\\d+/.test(p))\n .map(p => names[p].en);\n let i = 0;\n const getStylisticSetName = function () {\n return stylisticSetNames[i++];\n };\n\n this.gposFeatures = [];\n (gpos.features || []).forEach(f => {\n const duplicate = this.gposFeatures.find(ff => ff.tag == f.tag);\n if (!duplicate) {\n const feature = {\n tag: f.tag,\n name: getOpenTypeFeatureName(f.tag),\n };\n this.gposFeatures.push(feature);\n }\n });\n\n this.gsubFeatures = [];\n (gsub.features || []).forEach(f => {\n const duplicate = this.gsubFeatures.find(ff => ff.tag == f.tag);\n if (!duplicate) {\n const feature = {\n tag: f.tag,\n name: getOpenTypeFeatureName(f.tag),\n // uiName: f.feature.uiName,\n };\n\n if (f.tag == \"locl\") {\n feature.languages = loclLanguages;\n feature.selectedLanguage = \"\";\n } else if (/ss\\d\\d/.test(f.tag)) {\n const uiName = f.feature.uiName;\n feature.uiName = uiName && uiName['en']; //getStylisticSetName();\n }\n this.gsubFeatures.push(feature);\n }\n });\n\n this.variationAxes = [];\n if (font && font.tables.fvar && font.tables.fvar.axes) {\n this.variationAxes = font && font.tables.fvar && font.tables.fvar.axes;\n }\n }\n\n generateFontFace({ family, style, weight } = {}) {\n this.fontFace = `\n @font-face {\n font-family: \"${family || this.cssFamily}\";\n // font-style: ${style || this.cssStyle}; // disabling helps work with variable fonts\n // font-weight: ${weight || this.cssWeight};\n src: url('${this.url}');\n }\n `;\n return this.fontFace;\n }\n\n bumpVersion(value) {\n if (value) {\n this.version = value;\n }\n else {\n this.version++;\n }\n this.processFont();\n }\n}\n","export default function(proposal) {\n if (!proposal) {\n let id = '';\n do {\n let val = Math.random() * (2 ** 8);\n let hex = val.toString(16);\n id = 'b' + hex;\n } while (document.getElementById(id));\n return id;\n }\n else {\n let id = proposal;\n let i = 1;\n while (document.getElementById(id)) {\n id = `${proposal}-${i++}`;\n }\n return id;\n }\n}\n","import getId from \"./id\";\n\nexport default {\n add(css, id = \"\") {\n if (!id) {\n id = getId();\n }\n\n var newStyle = document.createElement(\"style\");\n newStyle.appendChild(document.createTextNode(css));\n\n document.head.appendChild(newStyle);\n\n if (id) {\n const existing = document.getElementById(id);\n if (existing) {\n existing.parentNode.removeChild(existing);\n }\n }\n newStyle.id = id;\n },\n\n setProperty(prop, val) {\n document.documentElement.style.setProperty(prop, val);\n },\n};\n","export default [\n \"AlegreyaSans/AlegreyaSans-Regular.ttf\",\n \"AlegreyaSans/AlegreyaSans-Italic.ttf\",\n \"AlegreyaSans/AlegreyaSans-Bold.ttf\",\n \"AlegreyaSans/AlegreyaSans-BoldItalic.ttf\",\n \"Rywalka-Regular.ttf\",\n \"Graduate.ttf\",\n];\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontLoader.vue?vue&type=template&id=08b3bad0&\"\nimport script from \"./FontLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./FontLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontLoader.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"editor-nav\"},[_c('div',{staticClass:\"links-wrapper\"},[_c('transition-group',{staticClass:\"links\",attrs:{\"name\":\"fade\"}},_vm._l((_vm.lessCustomTextIds),function(id){return _c('EditorNavLink',{key:id,attrs:{\"id\":id}})}),1),_c('transition-group',{staticClass:\"links\",attrs:{\"name\":\"fade\"}},_vm._l((_vm.moreCustomTextIds),function(id){return _c('EditorNavLink',{key:id,attrs:{\"id\":id}})}),1)],1),_c('span',{key:\"-1\",staticClass:\"nav-link new\"},[_c('router-link',{attrs:{\"to\":\"/custom/-1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.customTextIds.length > 0 ? '+ New' : 'Editor')+\"\\n \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"editor-nav-link nav-link\"},[_c('router-link',{attrs:{\"to\":(\"/custom/\" + _vm.id)}},[_c('div',{staticClass:\"middle-ellipsis\"},[_c('div',{staticClass:\"start\"},[_vm._v(\"Custom \")]),_c('div',{staticClass:\"end\"},[_vm._v(_vm._s(_vm.id))])])]),_c('UiIconButton',{staticStyle:{\"color\":\"white\"},attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.removeCustomText(_vm.id)}}},[_c('svg',{key:'1',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditorNavLink.vue?vue&type=template&id=00f8f142&scoped=true&\"\nimport script from \"./EditorNavLink.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorNavLink.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorNavLink.vue?vue&type=style&index=0&id=00f8f142&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00f8f142\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditorNav.vue?vue&type=template&id=24ad2e06&scoped=true&\"\nimport script from \"./EditorNav.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorNav.vue?vue&type=style&index=0&id=24ad2e06&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24ad2e06\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',{staticClass:\"site-logo\"},[_c('svg',{class:'logo',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 256 256\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('g',{attrs:{\"data-name\":\"Warstwa 3\"}},[_c('g',{attrs:{\"data-name\":\"Icon Big\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M207.6 192.9c.28-1.46 3.45-3.78 7.05-5.15l14.81-5.64c3.6-1.37 3.41-2.88-.41-3.36L214.5 177c-3.82-.47-7.66-3.06-8.52-5.74s-3.21-12-1.77-15.53l8.73-21.56c1.45-3.57.13-4.58-2.93-2.24l-17.33 13.25c-3.06 2.34-6.82 3.65-8.36 2.91l-2.13-.73-4.5-1.53c-2.8-.25-7.48-2.51-10.41-5a19.57 19.57 0 00-4-3.9c-2.67-2-2.9-1.21-.51 1.81l.91 1.15c2.39 3 3.6 5.73 2.68 6s-7.33-.86-11-2.1l-9.55-3.24c-3.64-1.24-6 .83-5.22 4.6l.59 2.88c.77 3.77.48 7.7-.65 8.74s-6.83 4.88-10.55 5.85l-.71.19c-3.72 1-4.51 2.43-1.75 3.23a4.66 4.66 0 013.25 6.15c-1 2.58-4.53 12-7.49 14.49l-7.53 6.28c-3 2.46-2.26 4.89 1.56 5.4l7.42 1c3.82.5 8.17 3.13 9.67 5.85s6.81 11.9 6.81 15.75v2.87c0 3.85 2.27 4.81 5 2.14l.18-.17c2.78-2.67 6.79-4.19 8.93-3.37s10.3 4.29 13 7.08l6.5 6.85c2.65 2.8 5.59 2 6.54-1.7l1.68-6.58a20.76 20.76 0 017.6-10.6l7.81-7c2.45-3 6.94-5.9 10-6.5s10.13-3.17 6.37-4l-1.78-.39c-3.75-.86-5.72-5.23-5.44-6.69zm-21.25-16.6a2.91 2.91 0 00-.15 5.44c.86.54.87 1.24 0 1.55a3.82 3.82 0 00-1.73 2.13c-.07.42.74 1.24 1.82 1.82s1 .92-.21.76a3.51 3.51 0 00-2.82 1.42 2.61 2.61 0 00.53 2.12c.5.72.18 1.23-.71 1.15s-2.6 1.06-3 1.48 0 2.79.93 5.27.09 3.07-1.85 1.29-5.88-2.23-6.85-2a2.67 2.67 0 00-1.75 2.58c0 1.18-.52 1.22-1.16.09l-.64-1.13a4.1 4.1 0 00-.76-.92c-2.16 0-4.14-.15-6.57-.32l-.53 1c-.53 1-1 .83-1-.45a5.37 5.37 0 00-1.3-3.14c-.35-.24-1.91.67-3.46 2s-2 .94-1-.91a7.68 7.68 0 00-.07-5.74c-.44-.7-1.93-.88-3.29-.39s-1.6 0-.52-1.17 1.42-3.93 1.3-4.67-1.13-1.35-2.24-1.35-1.13-.56 0-1.23 2.23-3.38 2.43-4.16-1.17-2.17-3-3.07-1.6-1.54.6-1.41 5.77-2.38 6.63-3.22a3.77 3.77 0 001-3.32c-.3-1 .2-1.33 1.1-.76s3.18.24 3.8 0a2.8 2.8 0 001.13-2.5c0-1.15.47-1.26 1-.26a4.05 4.05 0 002.64 1.63c.45 0 1.28-1.16 1.86-2.51s1.47-1.27 2 .17 3.77 3.48 4.75 4 2.7-.2 3.84-1.58 1.66-1 1.15.89 1.22 5.77 1.84 6.83a4.35 4.35 0 003.9 1.66c1.54-.1 1.7.3.36.93z\",\"data-name\":\"Hole 1\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M185.51 76.49l-10.72-7a2.71 2.71 0 01-.65-4l6.59-8.32c1-1.3.52-2.21-1.12-2l-9.77 1c-1.64.17-2-.56-.68-1.61l6-4.91A1 1 0 00174 48.1L163.6 53a2.15 2.15 0 01-3.2-1.69l-1.75-10.9c-.27-1.63-1.5-2.07-2.74-1l-8.51 7.45a2.31 2.31 0 01-3.7-.66l-.38-.7c-.79-1.45-2-2.76-2.79-2.91s-2.17.81-3.16 2.13l-1.28 1.72a2.12 2.12 0 01-3.59 0l-5.66-7.66a2.11 2.11 0 00-3.58 0l-12.68 16.87a1.89 1.89 0 01-3.36-.16L94.59 34.57c-.86-1.41-1.26-1.25-.89.36l6.3 27.8a5.36 5.36 0 01-1.64 4.84l-5.16 4.3a10.64 10.64 0 01-4.75 2.19c-1.34.15-1.58 1.31-.52 2.58l1.59 1.9a14.9 14.9 0 012.57 5.24l2 8.8a12.19 12.19 0 002.78 5l.09.09a3 3 0 010 4.25l-4.44 4.44c-1.16 1.17-.8 2.43.8 2.81l5.68 1.39a7.07 7.07 0 014.29 10.76l-1.52 2.32a2.63 2.63 0 002.61 4l13-2.07a2.82 2.82 0 013 3.89l-3 7a1.68 1.68 0 002.69 1.89l7.71-7.17a12.37 12.37 0 015.14-2.61l10.93-2.12a5 5 0 014.64 1.91l3.67 5.36c.93 1.36 1.87 1.13 2.08-.5l.86-6.54a16.5 16.5 0 012-5.52l3.9-6.3a3.36 3.36 0 014.26-1.21l3.32 1.66c1.48.74 2.48 0 2.24-1.62l-2.37-15.78a2 2 0 012.51-2.42l11.47 2.15c1.62.31 1.93-.33.69-1.42l-9.06-8c-1.24-1.09-1-2.35.63-2.81l1.83-.52c1.59-.45 1.58-1.18 0-1.61 0 0-3.07-.84-3.62-1.39-1.21-1.21 12.24-3.33 12.24-3.33 1.55-.21 1.75-1.16.37-2.07zm-28.21 8.93c-1.86.94-3.74 5.11-4.14 6.37a4.68 4.68 0 001.46 4.3c1.21 1.11 1 1.53-.46.92a4.41 4.41 0 00-4 .87 4.34 4.34 0 00-.44 2.91c.18 1.07-.37 1.59-1.22 1.13a4.09 4.09 0 00-2.94.15c-.39.24-.46 1.48-.15 2.75s0 1.45-.76.39a3.74 3.74 0 00-3.15-1.24 2.78 2.78 0 00-1.32 2c-.21.91-.86 1-1.43.25s-2.71-1.31-3.34-1.34-2.22 2-3.55 4.52-2.38 2.28-2.35-.55-2.43-6.3-3.31-6.9a2.86 2.86 0 00-3.32.44c-1 .85-1.35.46-.91-.86a12.61 12.61 0 00.7-2.52l-.06-.07-1.55-1.73c-1.06-2.2-2.07-4.5-2.25-5.1s-.56-2.27-.62-2.71-1.89-1-4.08-1.32-2.2-.94 0-1.48 4.29-3.3 4.53-4.17-.68-2.17-2.05-2.91-1.11-1.3.57-1.26 4.15-1.68 4.66-2.31a25.14 25.14 0 011.88-2.05 31.32 31.32 0 013.62-2.65c.77-.41.89-2.49.27-4.64s.08-2.38 1.56-.52 6 2.9 7.32 3a4 4 0 003.39-1.57c.57-.94 2-.43 3.16 1.13s2.85 2.18 3.77 1.36 1.34-.53.95.65a4.29 4.29 0 00.59 3.28c.34.33 1.84.19 3.33-.32s2.08.26 1.3 1.72-.07 5.51.22 6.65 2.1 2 4 1.94 1.97.55.12 1.49z\",\"data-name\":\"Hole 2\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M117.52 172.68c.06-.47-4-4.94-4-4.94-3.69-4.07-3.74-7.23-.11-7s6.52 0 6.42-.4-3-1.6-6.42-2.61-5.84-5.6-4-8.14a6 6 0 00-4-9.18s-12.45-2.53-13.3-3.17-5.77-15.21-7.21-15-11.77 8.46-16.18 10l-4.11 1.39c-2.61 1.29-6.05.86-7.64-1s-2.91-3.28-3.2-1.75-3 3.46-4.86 1.09l-.57-2.75-.56-2.75c-2.16-2.09-4.25.69-4.66 6.18a103.16 103.16 0 01-2.55 15.23c-.53 2.11-2 4.76-4.11 4a4.11 4.11 0 01-1.77-1.62l-1.51-2.07c-2.29-4-4.36-7.14-4.59-7.06s.57 4.54 1.8 9.91c0 0 .34 1.51-1.64 6.83l-.89 2.4c-2.59.65-4.31 2.77-3.82 4.69l1.45 1.09c1.46 1.09 3.18 1.87 4.33 3.28s1.44 3.79 0 4.86c-2.38 1.74-2.17 5.59-.35 7.91s4.71 3.47 7.46 4.53c1 .37.79 1.76.44 2.73l-1.23 3.44c-1.36 3.78-.41 7 2.1 7.11s8.36 4.21 7.72 7.3 1 10.27 4.66 9 16.28-4.79 20.81-3.28l3.07-2.52c1.82-1.49 1.94-5.48 4-6.5 3.09-1.5 7.81 1.64 9.85 4.4s2.65 6.32 3.28 9.69c.32 1.81 3 2.28 4.46 1.21S99.3 212 99.3 212c1.48-5.3 3.94-8.68 5.46-7.53s4.08-.06 2.31-5.27a42.23 42.23 0 01-2-13.69c.29-5.36 12.35-12.09 12.45-12.83zM85.84 178c.62 1.17.13 1.89-1.08 1.61a4.37 4.37 0 00-3.61.84c-.77.74-2.73 3.42-2.29 4.83s-.3 1.52-1.64.22-3.21-2-4.17-1.55-4.37 1.74-5 3.09-1 1.3-.91-.12-.31-2.69-.89-2.83a26.72 26.72 0 01-3.37-1.38c-.73-.38-1.6-.9-2-1.14a3.68 3.68 0 00-3 .22c-1 .63-1.24.4-.55-.53s1-2 .67-2.34a4.46 4.46 0 00-2.58-1.24c-.84.09-1.12-.42-.64-1.13a2.85 2.85 0 00.5-2.25 8.73 8.73 0 00-2.72-3.09c-1.15-.62-1.25-1.59-.22-2.15a4.21 4.21 0 002-2.72 27.69 27.69 0 011.27-4.41c.27-.59.49-1.09.51-1.12s-.06-1.82-.19-3.91l-.05-.33 3.35-.72c1.83-.38 3.45-1.29 3.59-2s1.25-1.12 2.46-.88a4.66 4.66 0 003-.2c.46-.35 2.3-1.43 2.53-2.81s.77-1.32 1.23.11 1.39 2.75 2.08 2.9a27.51 27.51 0 013.53 1.37 21.37 21.37 0 012.22 1.39 5.7 5.7 0 005.1-.24c1.63-1.15 2-.63.9 1.16s-1.79 3.79-1.44 4.42 1.8 3.38 2.77 3.59 1.18 1.44.47 2.73-.72 3.94.24 4.47.84 1-.27 1-2.18.55-2.38 1.19a7.1 7.1 0 00.58 3.95z\",\"data-name\":\"Hole 3\"}})])])]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"logotype\"},[_c('span',{staticClass:\"strong\"},[_vm._v(\"Bulletproof\")]),_c('span',{staticClass:\"weak\"},[_vm._v(\"Font Tester\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SiteLogo.vue?vue&type=template&id=33837896&scoped=true&\"\nvar script = {}\nimport style0 from \"./SiteLogo.vue?vue&type=style&index=0&id=33837896&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33837896\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sigmoid-container\",style:(_vm.rootStyle)},[_c('svg',{staticStyle:{\"display\":\"block\"},attrs:{\"height\":\"0\",\"width\":\"0\",\"preserveAspectRatio\":\"none\"}},[_c('defs',[_c('clipPath',{attrs:{\"id\":_vm.svgLeftId,\"clipPathUnits\":\"objectBoundingBox\"}},[_c('path',{attrs:{\"d\":_vm.path('left')}})]),_c('clipPath',{attrs:{\"id\":_vm.svgRightId,\"clipPathUnits\":\"objectBoundingBox\"}},[_c('path',{attrs:{\"d\":_vm.path('right')}})])])]),(_vm.left)?_c('div',{staticClass:\"sigmoid left\",style:(_vm.sigmoidWrapperStyle('left'))},[_c('div',{style:(_vm.sigmoidStyle('left'))})]):_vm._e(),_c('div',{staticClass:\"container\",style:(_vm.containerStyle)},[_c('div',{staticClass:\"content\",style:(_vm.contentStyle)},[_vm._t(\"default\")],2)]),(_vm.right)?_c('div',{staticClass:\"sigmoid right\",style:(_vm.sigmoidWrapperStyle('right'))},[_c('div',{style:(_vm.sigmoidStyle('right'))})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SigmoidContainer.vue?vue&type=template&id=c62ebfe4&scoped=true&\"\nimport script from \"./SigmoidContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./SigmoidContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SigmoidContainer.vue?vue&type=style&index=0&id=c62ebfe4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c62ebfe4\",\n null\n \n)\n\nexport default component.exports","export default [\"lettering\", \"pangrams\", \"sentences\", \"gotchas\", \"ABCs\", \"glyphs\", \"kerning\", \"languages\"];\n","export default function(kind) {\n return kind[0].toUpperCase() + kind.substr(1);\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SiteHeader.vue?vue&type=template&id=50601dbf&scoped=true&\"\nimport script from \"./SiteHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./SiteHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SiteHeader.vue?vue&type=style&index=0&id=50601dbf&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50601dbf\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"site-footer\"},[_c('div',{ref:\"sentinel\",staticClass:\"sentinel\"}),_vm._m(0),_c('SigmoidContainer',{staticClass:\"large light aside\",attrs:{\"sides\":\"left bottom\",\"width\":\"65\",\"idSeed\":\"footer\"}},[_c('a',{staticClass:\"github-link\",attrs:{\"href\":\"https://github.com/hyvyys/Bulletproof\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('div',[_vm._v(\"\\n Bulletproof\\n \"),_c('br'),_vm._v(\"\\n on Github\\n \")]),_c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"svg-inline\":'',\"height\":'32',\"width\":'32',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}})])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"main u-dark\"},[_c('div',[_c('div',[_vm._v(\"\\n Sample texts from\\n \"),_c('a',{attrs:{\"href\":\"https://github.com/hyvyys/language-data\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"\\n Language-Data\\n \")]),_vm._v(\".\\n Visit link to contribute.\\n \")]),_c('div',[_c('a',{attrs:{\"href\":\"https://github.com/huertatipografica/Alegreya-Sans\"}},[_vm._v(\"Alegreya Sans\")]),_vm._v(\" font by Juan Pablo del Peral.\\n \")]),_c('div',[_c('a',{attrs:{\"href\":\"https://github.com/etunni/Graduate-Variable-Font\"}},[_vm._v(\"Graduate\")]),_vm._v(\" Variable Font by Eduardo Tunni.\\n \")]),_c('div',[_vm._v(\"\\n Rywalka font by Adam Jagosz.\\n \")])]),_c('div',{staticClass:\"bulletproof-info\"},[_c('div',[_vm._v(\"\\n Bulletproof Font Tester\\n \")]),_c('div',[_vm._v(\"\\n Copyright 2020 Adam Jagosz.\\n \")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SiteFooter.vue?vue&type=template&id=a8ebd28a&scoped=true&\"\nimport script from \"./SiteFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./SiteFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SiteFooter.vue?vue&type=style&index=0&id=a8ebd28a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a8ebd28a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"home \" + (_vm.webkit ? 'webkit' : ''))},[_c('div',{class:_vm.parallaxClasses},[_c('div',{staticClass:\"pane\"},[_c('div',{ref:\"parallax\",staticClass:\"parallax-content\",attrs:{\"data-parallax\":\"0.3 0\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getParallaxText())+\"\\n \")])])]),_c('div',{ref:\"overlay\",class:_vm.overlayClasses}),_c('Welcome',{attrs:{\"msg\":\"Welcome to Your Vue.js App\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Shuffles array in place.\n * @param {Array} a items An array containing the items.\n */\nexport default function shuffle(a) {\n var j, x, i;\n for (i = a.length - 1; i > 0; i--) {\n j = Math.floor(Math.random() * (i + 1));\n x = a[i];\n a[i] = a[j];\n a[j] = x;\n }\n return a;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"welcome reading\"},[_c('div',{staticClass:\"fold\"},[_c('figure',{staticClass:\"banner\"},[_c('svg',{class:'logo',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 256 256\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('g',{attrs:{\"data-name\":\"Warstwa 3\"}},[_c('g',{attrs:{\"data-name\":\"Icon Big\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M207.6 192.9c.28-1.46 3.45-3.78 7.05-5.15l14.81-5.64c3.6-1.37 3.41-2.88-.41-3.36L214.5 177c-3.82-.47-7.66-3.06-8.52-5.74s-3.21-12-1.77-15.53l8.73-21.56c1.45-3.57.13-4.58-2.93-2.24l-17.33 13.25c-3.06 2.34-6.82 3.65-8.36 2.91l-2.13-.73-4.5-1.53c-2.8-.25-7.48-2.51-10.41-5a19.57 19.57 0 00-4-3.9c-2.67-2-2.9-1.21-.51 1.81l.91 1.15c2.39 3 3.6 5.73 2.68 6s-7.33-.86-11-2.1l-9.55-3.24c-3.64-1.24-6 .83-5.22 4.6l.59 2.88c.77 3.77.48 7.7-.65 8.74s-6.83 4.88-10.55 5.85l-.71.19c-3.72 1-4.51 2.43-1.75 3.23a4.66 4.66 0 013.25 6.15c-1 2.58-4.53 12-7.49 14.49l-7.53 6.28c-3 2.46-2.26 4.89 1.56 5.4l7.42 1c3.82.5 8.17 3.13 9.67 5.85s6.81 11.9 6.81 15.75v2.87c0 3.85 2.27 4.81 5 2.14l.18-.17c2.78-2.67 6.79-4.19 8.93-3.37s10.3 4.29 13 7.08l6.5 6.85c2.65 2.8 5.59 2 6.54-1.7l1.68-6.58a20.76 20.76 0 017.6-10.6l7.81-7c2.45-3 6.94-5.9 10-6.5s10.13-3.17 6.37-4l-1.78-.39c-3.75-.86-5.72-5.23-5.44-6.69zm-21.25-16.6a2.91 2.91 0 00-.15 5.44c.86.54.87 1.24 0 1.55a3.82 3.82 0 00-1.73 2.13c-.07.42.74 1.24 1.82 1.82s1 .92-.21.76a3.51 3.51 0 00-2.82 1.42 2.61 2.61 0 00.53 2.12c.5.72.18 1.23-.71 1.15s-2.6 1.06-3 1.48 0 2.79.93 5.27.09 3.07-1.85 1.29-5.88-2.23-6.85-2a2.67 2.67 0 00-1.75 2.58c0 1.18-.52 1.22-1.16.09l-.64-1.13a4.1 4.1 0 00-.76-.92c-2.16 0-4.14-.15-6.57-.32l-.53 1c-.53 1-1 .83-1-.45a5.37 5.37 0 00-1.3-3.14c-.35-.24-1.91.67-3.46 2s-2 .94-1-.91a7.68 7.68 0 00-.07-5.74c-.44-.7-1.93-.88-3.29-.39s-1.6 0-.52-1.17 1.42-3.93 1.3-4.67-1.13-1.35-2.24-1.35-1.13-.56 0-1.23 2.23-3.38 2.43-4.16-1.17-2.17-3-3.07-1.6-1.54.6-1.41 5.77-2.38 6.63-3.22a3.77 3.77 0 001-3.32c-.3-1 .2-1.33 1.1-.76s3.18.24 3.8 0a2.8 2.8 0 001.13-2.5c0-1.15.47-1.26 1-.26a4.05 4.05 0 002.64 1.63c.45 0 1.28-1.16 1.86-2.51s1.47-1.27 2 .17 3.77 3.48 4.75 4 2.7-.2 3.84-1.58 1.66-1 1.15.89 1.22 5.77 1.84 6.83a4.35 4.35 0 003.9 1.66c1.54-.1 1.7.3.36.93z\",\"data-name\":\"Hole 1\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M185.51 76.49l-10.72-7a2.71 2.71 0 01-.65-4l6.59-8.32c1-1.3.52-2.21-1.12-2l-9.77 1c-1.64.17-2-.56-.68-1.61l6-4.91A1 1 0 00174 48.1L163.6 53a2.15 2.15 0 01-3.2-1.69l-1.75-10.9c-.27-1.63-1.5-2.07-2.74-1l-8.51 7.45a2.31 2.31 0 01-3.7-.66l-.38-.7c-.79-1.45-2-2.76-2.79-2.91s-2.17.81-3.16 2.13l-1.28 1.72a2.12 2.12 0 01-3.59 0l-5.66-7.66a2.11 2.11 0 00-3.58 0l-12.68 16.87a1.89 1.89 0 01-3.36-.16L94.59 34.57c-.86-1.41-1.26-1.25-.89.36l6.3 27.8a5.36 5.36 0 01-1.64 4.84l-5.16 4.3a10.64 10.64 0 01-4.75 2.19c-1.34.15-1.58 1.31-.52 2.58l1.59 1.9a14.9 14.9 0 012.57 5.24l2 8.8a12.19 12.19 0 002.78 5l.09.09a3 3 0 010 4.25l-4.44 4.44c-1.16 1.17-.8 2.43.8 2.81l5.68 1.39a7.07 7.07 0 014.29 10.76l-1.52 2.32a2.63 2.63 0 002.61 4l13-2.07a2.82 2.82 0 013 3.89l-3 7a1.68 1.68 0 002.69 1.89l7.71-7.17a12.37 12.37 0 015.14-2.61l10.93-2.12a5 5 0 014.64 1.91l3.67 5.36c.93 1.36 1.87 1.13 2.08-.5l.86-6.54a16.5 16.5 0 012-5.52l3.9-6.3a3.36 3.36 0 014.26-1.21l3.32 1.66c1.48.74 2.48 0 2.24-1.62l-2.37-15.78a2 2 0 012.51-2.42l11.47 2.15c1.62.31 1.93-.33.69-1.42l-9.06-8c-1.24-1.09-1-2.35.63-2.81l1.83-.52c1.59-.45 1.58-1.18 0-1.61 0 0-3.07-.84-3.62-1.39-1.21-1.21 12.24-3.33 12.24-3.33 1.55-.21 1.75-1.16.37-2.07zm-28.21 8.93c-1.86.94-3.74 5.11-4.14 6.37a4.68 4.68 0 001.46 4.3c1.21 1.11 1 1.53-.46.92a4.41 4.41 0 00-4 .87 4.34 4.34 0 00-.44 2.91c.18 1.07-.37 1.59-1.22 1.13a4.09 4.09 0 00-2.94.15c-.39.24-.46 1.48-.15 2.75s0 1.45-.76.39a3.74 3.74 0 00-3.15-1.24 2.78 2.78 0 00-1.32 2c-.21.91-.86 1-1.43.25s-2.71-1.31-3.34-1.34-2.22 2-3.55 4.52-2.38 2.28-2.35-.55-2.43-6.3-3.31-6.9a2.86 2.86 0 00-3.32.44c-1 .85-1.35.46-.91-.86a12.61 12.61 0 00.7-2.52l-.06-.07-1.55-1.73c-1.06-2.2-2.07-4.5-2.25-5.1s-.56-2.27-.62-2.71-1.89-1-4.08-1.32-2.2-.94 0-1.48 4.29-3.3 4.53-4.17-.68-2.17-2.05-2.91-1.11-1.3.57-1.26 4.15-1.68 4.66-2.31a25.14 25.14 0 011.88-2.05 31.32 31.32 0 013.62-2.65c.77-.41.89-2.49.27-4.64s.08-2.38 1.56-.52 6 2.9 7.32 3a4 4 0 003.39-1.57c.57-.94 2-.43 3.16 1.13s2.85 2.18 3.77 1.36 1.34-.53.95.65a4.29 4.29 0 00.59 3.28c.34.33 1.84.19 3.33-.32s2.08.26 1.3 1.72-.07 5.51.22 6.65 2.1 2 4 1.94 1.97.55.12 1.49z\",\"data-name\":\"Hole 2\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M117.52 172.68c.06-.47-4-4.94-4-4.94-3.69-4.07-3.74-7.23-.11-7s6.52 0 6.42-.4-3-1.6-6.42-2.61-5.84-5.6-4-8.14a6 6 0 00-4-9.18s-12.45-2.53-13.3-3.17-5.77-15.21-7.21-15-11.77 8.46-16.18 10l-4.11 1.39c-2.61 1.29-6.05.86-7.64-1s-2.91-3.28-3.2-1.75-3 3.46-4.86 1.09l-.57-2.75-.56-2.75c-2.16-2.09-4.25.69-4.66 6.18a103.16 103.16 0 01-2.55 15.23c-.53 2.11-2 4.76-4.11 4a4.11 4.11 0 01-1.77-1.62l-1.51-2.07c-2.29-4-4.36-7.14-4.59-7.06s.57 4.54 1.8 9.91c0 0 .34 1.51-1.64 6.83l-.89 2.4c-2.59.65-4.31 2.77-3.82 4.69l1.45 1.09c1.46 1.09 3.18 1.87 4.33 3.28s1.44 3.79 0 4.86c-2.38 1.74-2.17 5.59-.35 7.91s4.71 3.47 7.46 4.53c1 .37.79 1.76.44 2.73l-1.23 3.44c-1.36 3.78-.41 7 2.1 7.11s8.36 4.21 7.72 7.3 1 10.27 4.66 9 16.28-4.79 20.81-3.28l3.07-2.52c1.82-1.49 1.94-5.48 4-6.5 3.09-1.5 7.81 1.64 9.85 4.4s2.65 6.32 3.28 9.69c.32 1.81 3 2.28 4.46 1.21S99.3 212 99.3 212c1.48-5.3 3.94-8.68 5.46-7.53s4.08-.06 2.31-5.27a42.23 42.23 0 01-2-13.69c.29-5.36 12.35-12.09 12.45-12.83zM85.84 178c.62 1.17.13 1.89-1.08 1.61a4.37 4.37 0 00-3.61.84c-.77.74-2.73 3.42-2.29 4.83s-.3 1.52-1.64.22-3.21-2-4.17-1.55-4.37 1.74-5 3.09-1 1.3-.91-.12-.31-2.69-.89-2.83a26.72 26.72 0 01-3.37-1.38c-.73-.38-1.6-.9-2-1.14a3.68 3.68 0 00-3 .22c-1 .63-1.24.4-.55-.53s1-2 .67-2.34a4.46 4.46 0 00-2.58-1.24c-.84.09-1.12-.42-.64-1.13a2.85 2.85 0 00.5-2.25 8.73 8.73 0 00-2.72-3.09c-1.15-.62-1.25-1.59-.22-2.15a4.21 4.21 0 002-2.72 27.69 27.69 0 011.27-4.41c.27-.59.49-1.09.51-1.12s-.06-1.82-.19-3.91l-.05-.33 3.35-.72c1.83-.38 3.45-1.29 3.59-2s1.25-1.12 2.46-.88a4.66 4.66 0 003-.2c.46-.35 2.3-1.43 2.53-2.81s.77-1.32 1.23.11 1.39 2.75 2.08 2.9a27.51 27.51 0 013.53 1.37 21.37 21.37 0 012.22 1.39 5.7 5.7 0 005.1-.24c1.63-1.15 2-.63.9 1.16s-1.79 3.79-1.44 4.42 1.8 3.38 2.77 3.59 1.18 1.44.47 2.73-.72 3.94.24 4.47.84 1-.27 1-2.18.55-2.38 1.19a7.1 7.1 0 00.58 3.95z\",\"data-name\":\"Hole 3\"}})])])]),_c('h1',[_vm._v(\"Bulletproof\")]),_c('div',{staticClass:\"subtitle\"},[_vm._v(\"I Wish I Was...\")])]),_c('div',{staticClass:\"invitation\"},[_vm._v(\"\\n Drop font files anywhere to start\\n \")])]),_c('WelcomeText',{staticClass:\"readme\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"Test your local fonts with the proofing tool developed by a type designer, for type designers. Check out kerning, OpenType features, and language coverage. Explore and animate variation axes in variable fonts.\")]),_vm._m(0),_vm._m(1),_c('h2',[_vm._v(\"Available formatting options\")]),_vm._m(2),_c('h2',[_vm._v(\"Text collection\")]),_vm._m(3),_vm._m(4),_c('p',[_vm._v(\"The selection of languages and texts is arbitrary and limited, but contributions are welcome. Currently the focus is on languages written with Latin and Cyrillic.\")]),_c('h2',[_vm._v(\"Kerning tester\")]),_c('p',[_vm._v(\"The app is equipped with a \"),_c('router-link',{attrs:{\"to\":\"/kerning\"}},[_vm._v(\"kerning string generator\")]),_vm._v(\", along with a couple of predefined kerning patterns. \"),_c('router-link',{attrs:{\"to\":\"/help/kerning\"}},[_vm._v(\"[See kerning generator help]\")])],1),_c('h2',[_vm._v(\"Playground & Animation\")]),_c('p',[_vm._v(\"Any open text sample can be edited. In the \"),_c('router-link',{attrs:{\"to\":\"/editor\"}},[_vm._v(\"editor tab\")]),_vm._v(\" some more options are available: setting bold and italic (with separately selectable fonts), as well as taking snapshots of the settings and using them as animation keyframes — can be useful for recording gifs or videos, or toggling multiple features on and off more quickly. \"),_c('router-link',{attrs:{\"to\":\"/help/animation\"}},[_vm._v(\"[See animation editor help]\")])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"To begin, load selected local font files (you can drag'n'drop them right here). Their OpenType features and variation axes will be automatically detected. Everything is processed locally in the browser, using \"),_c('a',{attrs:{\"href\":\"https://github.com/opentypejs/opentype.js\"}},[_vm._v(\"OpenType.js\")]),_vm._v(\".\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"Or if you don't have any font files handy, look around and test the included fonts: \"),_c('a',{attrs:{\"href\":\"https://github.com/huertatipografica/Alegreya-Sans\"}},[_vm._v(\"Alegreya Sans\")]),_vm._v(\" by Juan Pablo del Peral, \"),_c('a',{attrs:{\"href\":\"https://github.com/etunni/Graduate-Variable-Font\"}},[_vm._v(\"Graduate\")]),_vm._v(\" Variable Font by Eduardo Tunni, and my own Rywalka (work-in-progress).\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_vm._v(\"Changing font size, line height, text alignment, text case transform, text and background colors.\")]),_c('li',[_vm._v(\"Toggling OpenType features on and off.\")]),_c('li',[_vm._v(\"Choosing localization language from the list of languages built into the font.\")]),_c('li',[_vm._v(\"Manipulating OpenType Variation axes.\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"A set of multilingual texts is collected in a separate project \"),_c('a',{attrs:{\"href\":\"https://github.com/hyvyys/language-data\"}},[_vm._v(\"Language-Data\")]),_vm._v(\". It includes a few kinds of texts:\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_vm._v(\"ordinary sentences,\")]),_c('li',[_vm._v(\"pangrams,\")]),_c('li',[_vm._v(\"lettering samples — defined as sets of A-Z words preferably repeating the initial letter within),\")]),_c('li',[_c('em',[_vm._v(\"gotchas\")]),_vm._v(\" — edge cases characteristic to the given language, things to look out for when desigining a typeface.\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Welcome.md?vue&type=template&id=3d560beb&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=4602ce0c&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=js&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=4602ce0c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4602ce0c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=674df807&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=674df807&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674df807\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-topic\"},[_c('div',{staticClass:\"help\"},[_c('div',{staticClass:\"reading\"},[_c('h2',[_vm._v(\"Help pages\")]),_c('ol',[_c('li',[_c('router-link',{attrs:{\"to\":\"/help/animation\"}},[_vm._v(\"Animation editor\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/help/kerning\"}},[_vm._v(\"Kerning string editor\")])],1)])])]),_c('div',{staticClass:\"example\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Help.vue?vue&type=template&id=969f47b6&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-topic\"},[_c('div',{staticClass:\"help\"},[_c('div',{staticClass:\"reading\"},[_c('h2',{staticClass:\"help-heading\"},[_c('router-link',{attrs:{\"to\":\"/help\"}},[_vm._v(\"Help / \")]),_vm._v(\"Kerning string generator\\n \")],1),_c('Kerning')],1)]),_c('div',{staticClass:\"example\"},[_c('h2',[_vm._v(\"Try it out\")]),_c('transition-group',{attrs:{\"name\":\"fade\"}},[_c('KerningEditor',{key:\"editor\",attrs:{\"segments\":_vm.segments},on:{\"addKerningSegment\":_vm.addKerningSegment,\"removeKerningSegment\":function (i) { return _vm.removeKerningSegment(i); }}}),_c('div',{key:\"title\",staticClass:\"row\"},[_c('h3',[_vm._v(\"\\n Output\\n \")])]),_c('div',{key:\"string\"},_vm._l((_vm.kerningStringLines),function(line,i){return _c('div',{key:i},[_vm._v(\"\\n \"+_vm._s(line)+\"\\n \")])}),0)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function characterRange(charA, charZ) {\n var a = [], i = charA.charCodeAt(0), j = charZ.charCodeAt(0);\n for (; i <= j; ++i) {\n a.push(String.fromCharCode(i));\n }\n return a;\n}\n","export default function cartesianProductOf() {\n return Array.prototype.reduce.call(arguments, function(a, b) {\n var ret = [];\n a.forEach(function(a) {\n b.forEach(function(b) {\n ret.push(a.concat([b]));\n });\n });\n return ret;\n }, [[]]);\n}\n","import characterRange from \"@/utils/characterRange\";\nimport cartesianProduct from \"@/utils/cartesianProduct\";\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\nfunction splitWithEscape(s, separator, escape = \"\\\\\") {\n\n const endsWithEscape = new RegExp(escapeRegExp(escape) + \"$\");\n let fragments = [];\n let options = [];\n let current = \"\";\n\n s.split(\"\").forEach(char => {\n if (char === separator && !endsWithEscape.test(current)) {\n options.push(current);\n current = \"\";\n }\n else { // separator was escaped e.g. \\|\n current += char;\n }\n });\n options.push(current);\n\n const escapedSeparator = new RegExp(escapeRegExp(escape) + escapeRegExp(separator), \"g\");\n options = options.map(o => o.replace(escapedSeparator, separator));\n [].push.apply(fragments, options);\n return fragments;\n}\n\nexport default class KerningGenerator {\n /**\n * Split string of alternatives terminated and separated by pipe character.\n * @param {String} s String to parse, e.g. `|fi|fj|fl|ff|`. Pipe escaped with leading backslash, e.g. `|\\|:|\\:|/:|`.\n */\n static parseSequences(s) {\n s = s.replace(/^\\|/, \"\").replace(/\\|$/, \"\"); // trim group delimiters | ... |\n let fragments = splitWithEscape(s, \"|\");\n\n return fragments;\n }\n\n /**\n * Split closure on the underscore character _, unless escaped \\_.\n * @param {String} s String to parse, e.g. `\"_\",`. Pipe escaped with leading backslash, e.g. |\\|:|\\:|/:|.\n */\n static parseClosure(s) {\n let fragments = splitWithEscape(s, \"_\");\n return fragments;\n }\n\n static sets(segments) {\n const sets = [];\n let closures = [];\n\n segments.forEach(s => {\n if (/^@/.test(s)) {\n s = s.replace(/^@/, \"\");\n s = s.replace(/\\\\@/g, \"@\");\n\n let segmentClosures = [];\n const special = \"_|\\\\\";\n const escaped = special.split(\"\").map(c => escapeRegExp(\"\\\\\" + c)).join(\"|\");\n const closureSide = `([^${escapeRegExp(special)}]*|${escaped})*`;\n const compoundClosure = new RegExp(`^\\\\|(${closureSide}_${closureSide}\\\\|)+$`);\n\n if (compoundClosure.test(s)) {\n segmentClosures = this.parseSequences(s).map(c => this.parseClosure(c));\n }\n else {\n segmentClosures = Array.from(s.matchAll(/(.)(.)/g)).map(m => [m[1], m[2]])\n }\n\n closures.push(segmentClosures);\n }\n\n // words etc.\n else {\n s = s.replace(/\\\\@/g, \"@\");\n\n if (/^\\|.+\\|$/.test(s)) {\n sets.push(this.parseSequences(s));\n }\n\n // character sets incl. ranges, only hyphen is escaped as \\-\n else {\n let fragments = [];\n\n const ranges = s.matchAll(/([^\\\\])-(.)/g); // e.g. a-z\n Array.from(ranges).forEach(r => {\n let [, start, end] = r;\n [].push.apply(fragments, characterRange(start, end));\n });\n\n s = s.replace(/([^\\\\])-(.)/g, \"\");\n\n const singleCharacters = s.replace(/\\\\-/g, \"-\").split(\"\");\n [].push.apply(fragments, singleCharacters);\n sets.push(fragments);\n }\n }\n });\n return { sets, closures };\n }\n\n static kerningString(pattern) {\n let sets = pattern.sets.filter(s => s.length);\n // clone\n sets = JSON.parse(JSON.stringify(sets));\n\n let product = cartesianProduct(...sets);\n // [ ['A', 'A'], ['A', 'B'], ['A', 'C'], ... ]\n\n let lines = [];\n let current = product[0][0] || \"\";\n let line = \"\";\n\n function commitLine(line) {\n // add initial character to the end of the line\n if (!pattern.closures.length) {\n // AAABACAD...WAXAYAZ\n // => AAABACAD...WAXAYAZA\n line += current;\n }\n // remove more than two repetitions of any character\n if (!pattern.closures.length) {\n line = line.replace(/(.)\\1{2,}/g, \"$1$1\"); // AAABACA => AABACA\n }\n lines.push(line);\n }\n\n product.filter(sub => sub.length).forEach(sub => {\n // new character on first position, finalize line\n if (sub[0] !== current) {\n commitLine(line);\n line = \"\";\n current = sub[0];\n }\n\n let fragment = sub.join(\"\");\n if (pattern.closures.length) {\n /* [\n [ [\"(\", \")\"], [\"[\", \"]\"], ... ],\n [ [\";\", \".\"], [\":\", \",\"], ... ],\n ... ] */\n\n const openings = pattern.closures.map(set => set.map(closure => closure[0]));\n const closings = pattern.closures.map(set => set.map(closure => closure[1]));\n /* [ [ \"(\", \"[\", ... ], [ \";\", \":\", ... ], ... ] */\n\n const openingSequences = cartesianProduct(...openings).map(sub => sub.reverse().join(\"\"));\n const closingSequences = cartesianProduct(...closings).map(sub => sub.join(\"\"));\n /* [ \";(\", \";[\", \":(\", \":[\", ... ] */\n\n const closures = openingSequences.map((o, i) => [o, closingSequences[i]]);\n\n fragment = closures\n .map(closure => `${closure[0]}${fragment}${closure[1]}`)\n .join(\" \") + \" \";\n }\n line += fragment;\n });\n commitLine(line);\n\n return lines;\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"kerning-editor panel\"},[_c('transition-group',{staticClass:\"fade-transition-group\",attrs:{\"name\":\"fade\",\"tag\":\"div\"}},[_c('div',{key:\"title\",staticClass:\"row\"},[_c('h3',[_vm._v(\"\\n Pattern segments\\n \")]),_c('UiIconButton',{key:\"btnAdd\",attrs:{\"color\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('addKerningSegment')}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1),_vm._l((_vm.segments),function(segment,i){return _c('div',{key:(\"segment-\" + (segment.key)),staticClass:\"row segment-row\"},[_c('UiSelect',{ref:\"segmentSelects\",refInFor:true,attrs:{\"options\":_vm.builtInSegmentCharacters,\"dropdownClass\":\"kerning-segment-select\",\"dropdownPosition\":\"bottom-end\",\"placeholder\":\"type or choose\",\"autocomplete\":true},on:{\"input\":function($event){return _vm.$emit('updateKerningPattern')}},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return [_c('kbd',[_vm._v(_vm._s(props.option || \"\\xa0\"))])]}}],null,true),model:{value:(_vm.segments[i].characters),callback:function ($$v) {_vm.$set(_vm.segments[i], \"characters\", $$v)},expression:\"segments[i].characters\"}}),_c('UiIconButton',{key:\"btnRemove\",staticClass:\"border\",attrs:{\"color\":\"default\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('removeKerningSegment', i)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13H5v-2h14v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default [\n \"A-Z\",\n \"a-z\",\n \"0-9\",\n \"A-Za-z0-9\",\n \"FPTVWYfrvwy\",\n \"aáàâåäãæbcçdðeéèêëfghiíìîïjklmnñoóòôöõøpqrstuúùûüvwxyýÿzþ\",\n \"aáàăâåäãąāæbcćĉčċçdďđðeéèĕêěëėęēfgğĝġģhĥħiíìĭîïĩįīijıjĵkķlĺľļłŀmnńňñņŋoóòŏôöőõøōœpqĸrŕřŗsśŝšştťţŧuúùŭûůüűũųūvwŵxyýŷÿÿzźžżþ\",\n \"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\",\n \"абвгдеёжзийклмнопрстуфхцчшщъыьэюя\",\n \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ\",\n \"αβγδεζηθικλμνξοπρσςτυφχψω\",\n \",.\",\n \";:\",\n \"-–—+\",\n \"|fi|fj|fl|ff|ffi|ffl|fb|fh|fk|ft|\",\n \"@¡!¿?\",\n \"@“”‘’\",\n \"@“”„”„“””\",\n \"@|“_,”|”_”:|„_”,|„_“.|\",\n \"@\\\"\\\"''\",\n \"@()[]{}<>\",\n];\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KerningEditor.vue?vue&type=template&id=76dead88&scoped=true&\"\nimport script from \"./KerningEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./KerningEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KerningEditor.vue?vue&type=style&index=0&id=76dead88&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76dead88\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"Kerning strings can be generated in the \"),_c('a',{attrs:{\"href\":\"/kerning\"}},[_vm._v(\"Kerning tab\")]),_vm._v(\". Each string is defined using a \"),_c('strong',[_vm._v(\"pattern\")]),_vm._v(\" consisting of character sets called \"),_c('strong',[_vm._v(\"segments\")]),_vm._v(\".\")]),_c('p',[_c('strong',[_vm._v(\"Regular segments\")]),_vm._v(\" are sets of letters, characters, or words that will be interpolated to create the kerning string. There are two kinds of regular segments:\")]),_c('ul',[_c('li',[_vm._v(\"Single-character segments, e.g. \"),_c('code',[_vm._v(\"A-Za-ząćę\")]),_vm._v(\".\")]),_c('li',[_vm._v(\"Multi-character segments, e.g. \"),_c('code',[_vm._v(\"|fi|fj|fl|\")]),_vm._v(\".\")])]),_c('p',[_c('strong',[_vm._v(\"Closure segments\")]),_vm._v(\" start with an at \"),_c('code',[_vm._v(\"@\")]),_vm._v(\" and are used to surround the interpolated substrings with extra characters, typically punctuation. These also come in two flavors:\")]),_c('ul',[_c('li',[_vm._v(\"Single character closures, e.g. \"),_c('code',[_vm._v(\"@()[]{}\")]),_vm._v(\". Characters after \"),_c('code',[_vm._v(\"@\")]),_vm._v(\" are treated as opening–closing pairs.\")]),_c('li',[_vm._v(\"Multiple character closures, e.g. \"),_c('code',[_vm._v(\"@|“_”.|“_.”|“_”,|“_,”|\")]),_vm._v(\". Anything before the underscore \"),_c('code',[_vm._v(\"_\")]),_vm._v(\" is treated as prefix, everything after — as suffix. Either can be empty, e.g. \"),_c('code',[_vm._v(\"@|_,|\")]),_vm._v(\" is a suffix-only closure.\")])]),_c('p',[_vm._v(\"Multiple closure segments can be combined. A pattern of the following segments:\")]),_c('blockquote',[_c('p',[_c('code',[_vm._v(\"abc\")]),_c('br'),_c('code',[_vm._v(\"@“”‘’\")]),_c('br'),_c('code',[_vm._v(\"@()\")])])]),_c('p',[_vm._v(\"will yield \"),_c('code',[_vm._v(\"(“a”) (‘a’) (“b”) (‘b’) (“c”) (‘c’)\")]),_vm._v(\".\")]),_c('h2',[_vm._v(\"Summary\")]),_c('p',[_vm._v(\"The segment syntax has just five special characters:\")]),_c('ul',[_c('li',[_vm._v(\"at \"),_c('code',[_vm._v(\"@\")]),_vm._v(\" (only at the beginning of segment) — begins a closure segment,\")]),_c('li',[_vm._v(\"hyphen \"),_c('code',[_vm._v(\"-\")]),_vm._v(\" — signifies character range,\")]),_c('li',[_vm._v(\"pipe \"),_c('code',[_vm._v(\"|\")]),_vm._v(\" — delimits words or closures,\")]),_c('li',[_vm._v(\"underscore \"),_c('code',[_vm._v(\"_\")]),_vm._v(\", — separates closure prefix and suffix,\")]),_c('li',[_vm._v(\"and backslash \"),_c('code',[_vm._v(\"\\\\\")]),_vm._v(\" — escapes the above (and itself), e.g. \"),_c('code',[_vm._v(\"@|\\\\|_\\\\|\\\\_|\")]),_vm._v(\" means a closure segment with a \"),_c('code',[_vm._v(\"|\")]),_vm._v(\" prefix and \"),_c('code',[_vm._v(\"|_\")]),_vm._v(\" suffix.\")])])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Kerning.md?vue&type=template&id=7b3366bf&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KerningHelp.vue?vue&type=template&id=7273fa36&scoped=true&\"\nimport script from \"./KerningHelp.vue?vue&type=script&lang=js&\"\nexport * from \"./KerningHelp.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KerningHelp.vue?vue&type=style&index=0&id=7273fa36&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7273fa36\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-topic\"},[_c('div',{staticClass:\"help\"},[_c('div',{staticClass:\"reading\"},[_c('h2',{staticClass:\"help-heading\"},[_c('router-link',{attrs:{\"to\":\"/help\"}},[_vm._v(\"Help / \")]),_vm._v(\"Animation editor\\n \")],1),_c('Animation')],1)]),_c('div',{staticClass:\"example\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"In the \"),_c('a',{attrs:{\"href\":\"/editor\"}},[_vm._v(\"Editor tab\")]),_vm._v(\", the right side Contextual sidebar provides a simple animation editor. At any time a frame can be added to take a snapshot of the current settings from the left side Settings sidebar. Most settings are animatable, including continuous settings like Variation Axes, font size and color, as well as discrete settings like OpenType features. Currently a few settings remain unanimated: text align and text case transform.\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Animation.md?vue&type=template&id=4b43128c&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationHelp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationHelp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnimationHelp.vue?vue&type=template&id=3498f484&scoped=true&\"\nimport script from \"./AnimationHelp.vue?vue&type=script&lang=js&\"\nexport * from \"./AnimationHelp.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3498f484\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-tester\"},[_c('transition',{attrs:{\"name\":\"fade-slow\",\"mode\":\"in-out\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.fontLoading),expression:\"!fontLoading\"}],staticClass:\"font-tester-content\"},[_c('Pinnable',{staticClass:\"site-sidebar sidebar-settings\",attrs:{\"title\":\"Settings\",\"isPinned\":true,\"isVisible\":_vm.settingsPanelVisible,\"trigger\":\"#settings-trigger\"},on:{\"toggle\":function($event){return _vm.$store.commit('toggleSettingsPanel')},\"hide\":function($event){return _vm.$store.commit('toggleSettingsPanel', {value: false})}}},[_c('Settings')],1),(_vm.selectedSampleKey === 'languages')?_c('LanguageSupportSummary',{attrs:{\"languageSupport\":\"languageSupport\"}}):_c('TesterBody',{staticClass:\"main\",attrs:{\"texts\":_vm.fontSampleTexts,\"isCustom\":_vm.selectedTextKind === 'custom'},on:{\"update\":function (e) { return _vm.modifyText(e); }}}),_c('Pinnable',{staticClass:\"site-sidebar sidebar-nav\",attrs:{\"title\":_vm.navElementTitle,\"isPinned\":true,\"isVisible\":_vm.contextualPanelVisible,\"scrolled\":false,\"trigger\":\"#nav-trigger\"},on:{\"toggle\":function($event){return _vm.$store.commit('toggleContextualPanel')},\"hide\":function($event){return _vm.$store.commit('toggleContextualPanel', {value: false})}}},[_c('div',{staticClass:\"transition-wrapper u-flex-v\",staticStyle:{\"overflow\":\"hidden\"}},[_c('transition',{attrs:{\"name\":\"swap\"}},[_c(_vm.navElement,{key:_vm.navElementTitle,tag:\"component\"})],1)],1)])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.forceInvisible && _vm.isVisible)?_c('div',{class:(\"\\n pinnable \" + (_vm.pinned ? 'pinned' : '') + \"\\n \" + (!_vm.footerVisible && _vm.sticky ? 'sticky' : '') + \"\\n \" + (_vm.footerNear ? 'footer-near' : '') + \"\\n \" + (_vm.footerNearer ? 'footer-nearer' : '') + \"\\n \" + (_vm.triggerHover ? 'trigger-hover' : '') + \"\\n \" + (_vm.scrolled ? 'pinnable-scrolled' : '') + \"\\n \")},[(_vm.title)?_c('div',{staticClass:\"titlebar\"},[_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('UiIconButton',{class:(\"pin \" + (_vm.pinned ? 'active' : '')),attrs:{\"size\":\"small\"},on:{\"click\":_vm.togglePinPanel}},[_c('svg',{staticStyle:{\"width\":\"24px\",\"height\":\"24px\"},attrs:{\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z\"}})])])],1):_vm._e(),(_vm.scrolled)?_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\"}],ref:\"vb\",staticClass:\"content\"},[_c('div',{ref:\"scrolled\",class:(\"scrolled \" + (_vm.disableOverscroll ? 'disable-overscroll' : '')),on:{\"wheel\":_vm.onWheel}},[_vm._t(\"default\")],2)]):_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pinnable.vue?vue&type=template&id=a9235368&scoped=true&\"\nimport script from \"./Pinnable.vue?vue&type=script&lang=js&\"\nexport * from \"./Pinnable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Pinnable.vue?vue&type=style&index=0&id=a9235368&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9235368\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings\"},[_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Font size\")]),_c('UiNumber',{ref:\"settingFontSize\",attrs:{\"value\":_vm.settings.fontSize,\"min\":_vm.settings.minFontSize,\"max\":_vm.settings.maxFontSize,\"step\":_vm.settings.fontSizeStep,\"clickStep\":_vm.settings.fontSizeClickStep},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { fontSize: v }); }}}),_c('UiSelect',{ref:\"settingFontSizeUnit\",staticClass:\"const3ch\",attrs:{\"value\":_vm.settings.fontSizeUnit,\"options\":_vm.settings.fontSizeUnitOptions},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { fontSizeUnit: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('UiTextbox',{ref:\"settingWaterfallSizes\",attrs:{\"value\":_vm.settings.waterfallSizes,\"disabled\":!_vm.settings.enableWaterfall},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { waterfallSizes: v }); }}}),_c('UiCheckbox',{ref:\"settingEnableWaterfall\",staticClass:\"checkbox-small\",attrs:{\"value\":_vm.settings.enableWaterfall},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { enableWaterfall: v }); }}},[_vm._v(\"waterfall\")])],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Line height\")]),_c('UiNumber',{ref:\"settingLineHeight\",attrs:{\"value\":_vm.settings.lineHeight,\"min\":_vm.settings.minLineHeight,\"max\":_vm.settings.maxLineHeight,\"step\":_vm.settings.lineHeightStep,\"clickStep\":_vm.settings.lineHeightClickStep,\"disabled\":_vm.settings.defaultLineHeight},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { lineHeight: v }); }}}),_c('UiCheckbox',{ref:\"settingDefaultLineHeight\",staticClass:\"checkbox-small\",attrs:{\"value\":_vm.settings.defaultLineHeight},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { defaultLineHeight: v }); }}},[_vm._v(\"default\")])],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Tracking\")]),_c('UiNumber',{ref:\"settingTracking\",attrs:{\"value\":_vm.settings.tracking,\"min\":_vm.settings.minTracking,\"max\":_vm.settings.maxTracking,\"step\":_vm.settings.trackingStep,\"clickStep\":_vm.settings.trackingClickStep,\"disabled\":_vm.settings.defaultTracking},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { tracking: v }); }}}),_c('UiCheckbox',{ref:\"settingDefaultTracking\",staticClass:\"checkbox-small\",attrs:{\"value\":_vm.settings.defaultTracking},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { defaultTracking: v }); }}},[_vm._v(\"default\")])],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Text align\")]),_c('UiSelect',{ref:\"settingTextAlign\",attrs:{\"value\":_vm.settings.textAlign,\"options\":_vm.settings.textAlignOptions},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { textAlign: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Text color\")]),_c('UiColorPicker',{ref:\"settingTextColor\",attrs:{\"value\":_vm.settings.textColor},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { textColor: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Back color\")]),_c('UiColorPicker',{ref:\"settingBackgroundColor\",attrs:{\"value\":_vm.settings.backgroundColor},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { backgroundColor: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Case transform\")]),_c('UiSelect',{ref:\"settingTextTransform\",attrs:{\"value\":_vm.settings.textTransform,\"options\":_vm.settings.textTransformOptions},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { textTransform: v }); }}})],1),_c('div',{staticClass:\"row row-check\"},[_c('UiCheckbox',{ref:\"settingWrapLines\",attrs:{\"label\":\"Break-word\",\"value\":_vm.settings.wrapLines},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { wrapLines: v }); }}})],1),(_vm.capFeatures.length > 0)?_c('h3',[_vm._v(\"Caps\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.capFeatures),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)}),0),(_vm.localization)?_c('h3',[_vm._v(\"Localization\")]):_vm._e(),(_vm.localization)?_c('div',{staticClass:\"setting-group\"},[_c('div',{staticClass:\"row\"},[_c('UiSelect',{attrs:{\"value\":_vm.localizationLanguage,\"options\":_vm.localizationLanguages,\"keys\":_vm.loclSelectKeys,\"placeholder\":\"select language\",\"invalid\":_vm.isLocalizationInvalid,\"disabled\":_vm.onGotchasTab},on:{\"input\":function (v) { return _vm.updateSetting('updateLoclFeature', { selectedLanguage: v }); }},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return _c('div',{staticClass:\"locl-select__option\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(props.option.name))]),(props.option.name !== props.option.tag)?_c('div',{staticClass:\"tag\"},[_vm._v(\"(\"+_vm._s(props.option.tag)+\")\")]):_vm._e()])}}],null,false,3090818932)}),_c('UiCheckbox',{staticClass:\"checkbox-small\",attrs:{\"value\":_vm.localization.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: 'locl', value: v }); }}},[_vm._v(\"enable\")])],1)]):_vm._e(),(_vm.numberFeatures.length > 0)?_c('h3',[_vm._v(\"Numbers\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},[_c('div',{staticClass:\"row\"},[(!!(_vm.pnum && _vm.tnum))?_c('UiRadioGroup',{attrs:{\"name\":\"figureWidth\",\"options\":_vm.figureWidths,\"vertical\":true},model:{value:(_vm.figureWidth),callback:function ($$v) {_vm.figureWidth=$$v},expression:\"figureWidth\"}}):_vm._e(),(!!(_vm.lnum && _vm.onum))?_c('UiRadioGroup',{attrs:{\"name\":\"figureHeight\",\"options\":_vm.figureHeights,\"vertical\":true},model:{value:(_vm.figureHeight),callback:function ($$v) {_vm.figureHeight=$$v},expression:\"figureHeight\"}}):_vm._e()],1),_vm._l((_vm.numberFeatures),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)})],2),(_vm.stylisticSets.length > 0)?_c('h3',[_vm._v(\"Stylistic Sets\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.stylisticSets),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[(feature.uiName)?[_c('strong',[_vm._v(_vm._s(feature.tag))]),_vm._v(\" \"+_vm._s(feature.uiName))]:[_vm._v(_vm._s(feature.name))]],2)],1)}),0),(_vm.otherGsub.length > 0)?_c('h3',[_vm._v(\"Other GSUB\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.otherGsub),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)}),0),(_vm.activeGpos.length > 0)?_c('h3',[_vm._v(\"GPOS\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.activeGpos),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGposFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)}),0),_c('h3',[_vm._v(\"Variation axes\")]),_c('div',{staticClass:\"setting-group\"},[(_vm.variationAxes.length === 0)?_c('div',{staticClass:\"notice\"},[_vm._v(\"\\n The selected font is not variable.\\n \")]):_vm._e(),_vm._l((_vm.variationAxes),function(axis,key){return _c('div',{key:key},[_c('div',{staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"label\":axis.displayName,\"value\":axis.enabled},on:{\"input\":function (v) { return _vm.updateSetting('updateVariationAxis', { tag: axis.tag, enabled: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('UiSlider',{staticStyle:{\"margin\":\"0 0.5em\",\"flex\":\"2\"},attrs:{\"value\":axis.value,\"min\":axis.minValue,\"max\":axis.maxValue,\"step\":1,\"snapToStep\":true,\"showMarker\":false},on:{\"input\":function (v) { return _vm.updateSetting('updateVariationAxis', { tag: axis.tag, value: v }); }}}),_c('UiNumber',{attrs:{\"value\":axis.value,\"min\":axis.minValue,\"max\":axis.maxValue,\"step\":1},on:{\"input\":function (v) { return _vm.updateSetting('updateVariationAxis', { tag: axis.tag, value: v }); }}})],1)])})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-textbox ui-number\",class:_vm.classes},[(_vm.icon || _vm.$slots.icon)?_c('div',{staticClass:\"ui-textbox__icon-wrapper\"},[_vm._t(\"icon\",[_c('ui-icon',{attrs:{\"icon\":_vm.icon}})])],2):_vm._e(),_c('div',{staticClass:\"ui-textbox__content\"},[_c('label',{staticClass:\"ui-textbox__label\"},[_c('div',{staticClass:\"ui-textbox__input-wrapper\"},[_c('input',{directives:[{name:\"autofocus\",rawName:\"v-autofocus\",value:(_vm.autofocus),expression:\"autofocus\"}],ref:\"input\",staticClass:\"ui-textbox__input\",attrs:{\"autocomplete\":_vm.autocomplete ? _vm.autocomplete : null,\"disabled\":_vm.disabled,\"inputmode\":\"numeric\",\"max\":_vm.maxValue,\"maxlength\":_vm.enforceMaxlength ? _vm.maxlength : null,\"minlength\":_vm.minlength,\"min\":_vm.minValue,\"name\":_vm.name,\"number\":_vm.type === 'number' ? true : null,\"placeholder\":_vm.hasFloatingLabel ? null : _vm.placeholder,\"readonly\":_vm.readonly,\"required\":_vm.required,\"step\":_vm.stepValue,\"tabindex\":_vm.tabindex,\"type\":_vm.type},domProps:{\"value\":_vm.displayedText != null ? _vm.displayedText : _vm.value},on:{\"blur\":_vm.onBlur2,\"focus\":_vm.onFocus,\"change\":function($event){return _vm.updateValue($event.target.value)},\"input\":function($event){return _vm.updateValue($event.target.value)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onKeydownEnter($event)},_vm.onKeydown]}}),_c('div',{staticClass:\"ui-number-buttons\"},[_c('UiIconButton',{staticClass:\"ui-number__button ui-select__dropdown-button\",attrs:{\"disabled\":_vm.disabled},nativeOn:{\"mousedown\":function($event){return _vm.startIncrement($event)},\"mouseleave\":function($event){return _vm.endIncrementDecrement($event)},\"mouseup\":function($event){return _vm.endIncrementDecrement($event)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"transform\":\"translate(0 24) scale(1 -1) translate(0 -1)\",\"d\":\"M6.984 9.984h10.03L12 15z\"}})])]),_c('UiIconButton',{staticClass:\"ui-number__button ui-select__dropdown-button\",attrs:{\"disabled\":_vm.disabled},nativeOn:{\"mousedown\":function($event){return _vm.startDecrement($event)},\"mouseleave\":function($event){return _vm.endIncrementDecrement($event)},\"mouseup\":function($event){return _vm.endIncrementDecrement($event)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"transform\":\"translate(0 -1)\",\"d\":\"M6.984 9.984h10.03L12 15z\"}})])])],1)]),(_vm.label || _vm.$slots.default)?_c('div',{staticClass:\"ui-textbox__label-text\",class:_vm.labelClasses},[_vm._t(\"default\",[_vm._v(_vm._s(_vm.label))])],2):_vm._e()]),(_vm.hasFeedback || _vm.maxlength)?_c('div',{staticClass:\"ui-textbox__feedback\"},[(_vm.showError)?_c('div',{staticClass:\"ui-textbox__feedback-text\"},[_vm._t(\"error\",[_vm._v(_vm._s(_vm.error))])],2):(_vm.showHelp)?_c('div',{staticClass:\"ui-textbox__feedback-text\"},[_vm._t(\"help\",[_vm._v(_vm._s(_vm.help))])],2):_vm._e(),(_vm.maxlength)?_c('div',{staticClass:\"ui-textbox__counter\"},[_vm._v(_vm._s(_vm.valueLength + \"/\" + _vm.maxlength))]):_vm._e()]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiNumber.vue?vue&type=template&id=4d5c14db&scoped=true&\"\nimport script from \"./UiNumber.vue?vue&type=script&lang=js&\"\nexport * from \"./UiNumber.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiNumber.vue?vue&type=style&index=0&id=4d5c14db&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d5c14db\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-color-picker popover-trigger\"},[_c('div',{staticClass:\"swatch\",style:((\"background-color: \" + _vm.value))},[_vm._v(\" \")]),_c('ui-textbox',{ref:\"input\",attrs:{\"label\":_vm.label,\"icon\":_vm.icon,\"help\":_vm.help},on:{\"input\":_vm.updateFromInput},model:{value:(_vm.textValue),callback:function ($$v) {_vm.textValue=$$v},expression:\"textValue\"}}),_c('ui-popover',{ref:\"popover\",staticClass:\"popover\",attrs:{\"position\":\"bottom-start\",\"constrainToScrollParent\":false},on:{\"reveal\":function($event){return _vm.$refs.input.focus()}}},[_c('sketch-picker',{attrs:{\"value\":_vm.colorValue,\"disableFields\":true},on:{\"input\":_vm.updateFromPicker}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiColorPicker.vue?vue&type=template&id=50a2c3f2&scoped=true&\"\nimport script from \"./UiColorPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./UiColorPicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiColorPicker.vue?vue&type=style&index=0&id=50a2c3f2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50a2c3f2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","// https://stackoverflow.com/a/17694760/6805143\n\nvar saveSelection, restoreSelection, getSelectionRange;\n\nif (window.getSelection && document.createRange) {\n getSelectionRange = function () {\n const sel = window.getSelection();\n return sel.rangeCount >= 1 && sel.getRangeAt(0);\n }\n\n saveSelection = function (containerEl) {\n var doc = containerEl.ownerDocument, win = doc.defaultView;\n var range = win.getSelection().getRangeAt(0);\n var preSelectionRange = range.cloneRange();\n preSelectionRange.selectNodeContents(containerEl);\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\n var start = preSelectionRange.toString().length;\n\n return {\n start: start,\n end: start + range.toString().length,\n };\n };\n\n restoreSelection = function (containerEl, savedSel) {\n var doc = containerEl.ownerDocument, win = doc.defaultView;\n var charIndex = 0, range = doc.createRange();\n range.setStart(containerEl, 0);\n range.collapse(true);\n var nodeStack = [containerEl], node, foundStart = false, stop = false;\n\n while (!stop && (node = nodeStack.pop())) {\n if (node.nodeType == 3) {\n var nextCharIndex = charIndex + node.length;\n if (!foundStart && savedSel.start >= charIndex && savedSel.start <= nextCharIndex) {\n range.setStart(node, savedSel.start - charIndex);\n foundStart = true;\n }\n if (foundStart && savedSel.end >= charIndex && savedSel.end <= nextCharIndex) {\n range.setEnd(node, savedSel.end - charIndex);\n stop = true;\n }\n charIndex = nextCharIndex;\n } else {\n var i = node.childNodes.length;\n while (i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n }\n\n var sel = win.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n };\n} else if (document.selection) {\n saveSelection = function (containerEl) {\n var doc = containerEl.ownerDocument;\n var selectedTextRange = doc.selection.createRange();\n var preSelectionTextRange = doc.body.createTextRange();\n preSelectionTextRange.moveToElementText(containerEl);\n preSelectionTextRange.setEndPoint(\"EndToStart\", selectedTextRange);\n var start = preSelectionTextRange.text.length;\n\n return {\n start: start,\n end: start + selectedTextRange.text.length,\n };\n };\n\n restoreSelection = function (containerEl, savedSel) {\n var doc = containerEl.ownerDocument;\n var textRange = doc.body.createTextRange();\n textRange.moveToElementText(containerEl);\n textRange.collapse(true);\n textRange.moveEnd(\"character\", savedSel.end);\n textRange.moveStart(\"character\", savedSel.start);\n textRange.select();\n };\n}\n\nexport default class DomSelection {\n constructor(container) {\n this.selection = null;\n this.container = container;\n }\n\n get remembered() {\n return this.selection !== null;\n }\n\n save() {\n this.selection = saveSelection(this.container);\n }\n\n restore() {\n if (this.selection) {\n restoreSelection(this.container, this.selection);\n }\n }\n\n forget() {\n this.selection = null;\n }\n\n ancestor() {\n const range = getSelectionRange(this.container);\n let ancestor = range.commonAncestorContainer;\n if (ancestor.nodeType === Node.TEXT_NODE) {\n ancestor = ancestor.parentNode;\n }\n return ancestor;\n }\n\n existentTags(tag) {\n const range = getSelectionRange(this.container);\n const fragment = range.cloneContents();\n let existentTags = fragment.querySelectorAll(tag);\n // existentTags = Array.from(existentTags).filter(t => t.innerText);\n return existentTags;\n }\n\n closestTag(tag) {\n let closestTag = this.ancestor().closest(tag);\n return closestTag;\n }\n\n containsTag(tag) {\n return this.existentTags(tag).length > 0 || this.closestTag(tag) != null;\n }\n\n wrap(tag) {\n const isParagraph = /^h[1-6]$/.test(tag);\n\n let ancestor = this.ancestor();\n // if selection is outside editor; not probable though\n if (!this.container.contains(ancestor)) {\n console.log(\"not contained\")\n return;\n }\n // if (ancestor.tagName === tag.toUpperCase()) {\n // existentTag = ancestor;\n // }\n const range = getSelectionRange(this.container);\n let fragment = range.cloneContents();\n let existentTags = fragment.querySelectorAll(tag);\n const closestTag = this.closestTag(tag);\n\n if (closestTag) {\n // console.log('closest');\n const parent = ancestor === closestTag ? ancestor.parentNode : ancestor;\n const tmp = document.createElement('tmp');\n range.surroundContents(tmp);\n const newContent = document.createDocumentFragment();\n Array.from(closestTag.childNodes).forEach(c => {\n try {\n if (c === tmp) {\n newContent.appendChild(c.childNodes[0]);\n }\n else if (c.nodeValue || c.innerText) {\n const newEl = document.createElement(tag);\n newEl.appendChild(c.cloneNode());\n newContent.appendChild(newEl);\n }\n }\n catch (e) {\n console.log(e);\n }\n });\n parent.replaceChild(newContent, closestTag);\n }\n else if (existentTags.length) {\n // console.log(existentTags.length + ' existent ' + tag + 's')\n existentTags.forEach(c => {\n try {\n const fr = document.createDocumentFragment();\n Array.from(c.childNodes).forEach(cc => fr.appendChild(cc));\n c.parentNode.replaceChild(fr, c);\n }\n catch (e) {\n console.log(e);\n }\n });\n range.deleteContents();\n range.insertNode(fragment);\n }\n else\n try {\n const empty = isParagraph && range.toString() === \"\";\n if (empty) {\n range.insertNode(document.createElement(\"br\"));\n }\n\n const newParent = document.createElement(tag);\n newParent.appendChild(range.extractContents());\n range.insertNode(newParent);\n\n if (empty) {\n range.selectNodeContents(newParent);\n }\n }\n catch (e) {\n console.log(e);\n console.log(ancestor)\n // probably selection is partial\n }\n\n clean(this.container);\n }\n}\n\nfunction clean(node)\n{\n for(var n = 0; n < node.childNodes.length; n ++)\n {\n var child = node.childNodes[n];\n if\n (\n child.nodeType === 8\n ||\n (child.nodeType === 3 && !/\\S/.test(child.nodeValue))\n || child.innerText === \"\"\n )\n {\n // console.log('removing node')\n // console.log(node.toString())\n // console.log(child.toString())\n node.removeChild(child);\n n --;\n }\n else if(child.nodeType === 1)\n {\n clean(child);\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=e1627b64&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=e1627b64&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e1627b64\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"tester-body \" + (_vm.isGotchas ? 'gotchas' : '')),style:((\"background: \" + (_vm.settings.backgroundColor) + \";\"))},[(_vm.selectedSampleKey === 'glyphs')?[_vm._v(\"This page only lists encoded glyphs.\")]:_vm._e(),(!_vm.isCustom)?_vm._l((_vm.texts),function(item,i){return _c('div',{key:i},[(_vm.selectedSampleKey === 'gotchas')?_c('GotchaHeader',{attrs:{\"header\":item.header}}):(item.header.language)?_c('SampleHeader',{attrs:{\"header\":item.header}}):_vm._e(),_vm._l((item.texts),function(text,j){return _c('FontSample',{key:j},_vm._l((_vm.fontSizes),function(size,k){return _c('div',{key:k,staticClass:\"sample-paragraph\"},[(_vm.fontSizes.length > 1)?_c('div',{staticClass:\"font-size-label\"},[_vm._v(_vm._s(size))]):_vm._e(),_c('div',{style:({ 'font-size': (\"\" + size + (_vm.settings.fontSizeUnit)) }),attrs:{\"contenteditable\":_vm.isContentEditable,\"spellcheck\":\"false\"},domProps:{\"innerHTML\":_vm._s(text)},on:{\"selectstart\":_vm.onSelectStart,\"click\":_vm.onSelectEnd}})])}),0)})],2)}):_c('FontSample',_vm._l((_vm.fontSizes),function(size,k){return _c('div',{key:k,staticClass:\"sample-paragraph\"},[(_vm.fontSizes.length > 1)?_c('div',{staticClass:\"font-size-label\"},[_vm._v(_vm._s(size))]):_vm._e(),_c('div',{ref:\"content\",refInFor:true,staticClass:\"font-sample-content-inner\",style:({ 'font-size': (\"\" + size + (_vm.settings.fontSizeUnit)) }),attrs:{\"contenteditable\":\"\",\"spellcheck\":\"false\"},on:{\"paste\":_vm.onPaste,\"input\":_vm.onInput,\"focus\":_vm.onFocus}})])}),0)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-sample\",style:((\"\\n color: \" + (_vm.settings.textColor) + \";\\n background: \" + (_vm.settings.backgroundColor) + \";\\n line-height: \" + (_vm.settings.defaultLineHeight ? '' : _vm.settings.lineHeight) + \";\\n letter-spacing: \" + (_vm.settings.defaultTracking ? '0' : _vm.settings.tracking) + \"em;\\n text-align: \" + (_vm.settings.textAlign) + \";\\n text-transform: \" + (_vm.settings.textTransform) + \";\\n font-feature-settings: \" + _vm.fontFeatureSettings + \";\\n font-variation-settings: \" + _vm.fontVariationSettings + \";\\n \")),attrs:{\"lang\":_vm.selectedLoclLanguage}},[_c('div',{staticClass:\"font-sample-content\",style:({\n 'word-break': _vm.settings.wrapLines ? 'break-all' : 'normal',\n })},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontSample.vue?vue&type=template&id=0323db58&\"\nimport script from \"./FontSample.vue?vue&type=script&lang=js&\"\nexport * from \"./FontSample.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontSample.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-flex\"},[_c('h3',{attrs:{\"id\":_vm.header.langId}},[_vm._v(_vm._s(_vm.header.language))]),(_vm.header.opentypeTag)?_c('div',[_c('span',{staticClass:\"light\"},[_vm._v(\"OT code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.opentypeTag.padEnd(4, ' '))+\" \")]),_c('span',{staticClass:\"light\"},[_vm._v(\"HTML code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.htmlTag))])]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.printNumber(_vm.header.speakers))+\" speakers\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function fNum(n) { return n > 1000000 ? n/1000000 + 'M' : n > 9999 ? n/1000 + 'K' : n; };\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SampleHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SampleHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SampleHeader.vue?vue&type=template&id=52cde21e&scoped=true&\"\nimport script from \"./SampleHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./SampleHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52cde21e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-flex\"},[_c('h3',{attrs:{\"id\":_vm.header.langId}},[_vm._v(_vm._s(_vm.header.topic))]),(_vm.header.description)?_c('UiButton',{staticClass:\"btn\",attrs:{\"color\":\"none\"}},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"height\":'18',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}})]),_c('UiTooltip',{staticClass:\"description-tooltip\",attrs:{\"openOn\":\"click\",\"interactive\":true},domProps:{\"innerHTML\":_vm._s(_vm.header.description || '(no description)')}})],1):_vm._e(),_c('div',{staticClass:\"tags\"},_vm._l((_vm.header.tags),function(t,i){return _c('span',{key:i},[_vm._v(_vm._s(t))])}),0),_c('h3',{attrs:{\"id\":_vm.header.langId}},[_vm._v(_vm._s(_vm.header.language))]),(_vm.header.opentypeTag)?_c('div',[_c('span',{staticClass:\"light\"},[_vm._v(\"OT code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.opentypeTag.padEnd(4, ' '))+\" \")]),_c('span',{staticClass:\"light\"},[_vm._v(\"HTML code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.htmlTag))])]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.printNumber(_vm.header.speakers))+\" speakers\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GotchaHeader.vue?vue&type=template&id=257cc006&scoped=true&\"\nimport script from \"./GotchaHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./GotchaHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GotchaHeader.vue?vue&type=style&index=0&id=257cc006&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"257cc006\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TesterBody.vue?vue&type=template&id=28f8c44e&\"\nimport script from \"./TesterBody.vue?vue&type=script&lang=js&\"\nexport * from \"./TesterBody.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TesterBody.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-sidebar contextual-sidebar\",on:{\"!keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }return _vm.nextAnchor($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }return _vm.previousAnchor($event)}],\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.goToAnchor($event)}}},[_c('div',{staticClass:\"row row-filter\"},[_c('label',{staticClass:\"row-label\",staticStyle:{\"min-width\":\"0\"}},[_vm._v(\"Search\")]),_c('UiTextbox',{ref:\"filterTextbox\",class:_vm.languageFilter ? 'filter-textbox' : '',model:{value:(_vm.languageFilter),callback:function ($$v) {_vm.languageFilter=$$v},expression:\"languageFilter\"}}),_c('UiIconButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.languageFilter),expression:\"languageFilter\"}],staticClass:\"btn-clear\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.clearFilter,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.stopPropagation();}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.2\",\"d\":\"M18.3 5.71a.996.996 0 00-1.41 0L12 10.59 7.11 5.7A.996.996 0 105.7 7.11L10.59 12 5.7 16.89a.996.996 0 101.41 1.41L12 13.41l4.89 4.89a.996.996 0 101.41-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"}})])])],1),_c('div',{staticClass:\"row row-filter\"},[_c('label',{staticClass:\"row-label\",staticStyle:{\"min-width\":\"0\"}},[_vm._v(\"Scripts\")]),_c('UiSelect',{attrs:{\"multiple\":true,\"options\":_vm.scripts,\"keys\":{\n class: 'class', image: 'image', label: 'script'\n },\"value\":_vm.scripts.filter(function (s) { return s.isSelected; })},on:{\"input\":function (values) { return _vm.selectScripts({ values: values }); }}})],1),_c('div',{staticClass:\"row row-filter\"},[_c('UiCheckbox',{attrs:{\"value\":_vm.anySelected,\"label\":_vm.anySelected ? 'clear all' : 'select all'},on:{\"input\":function (checked) { return _vm.selectDeselectAllLanguages({ checked: checked }); }}})],1),_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({\n preventParentScroll: true,\n }),expression:\"{\\n preventParentScroll: true,\\n }\"}],ref:\"vb\",staticClass:\"language-list\"},[_c('div',{ref:\"scrolled\",staticClass:\"scrolled\",attrs:{\"tabindex\":\"-1\"},on:{\"!keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();}]}},_vm._l((_vm.filteredLanguages),function(language,i){return _c('div',{key:i,staticClass:\"language-item\",class:{ 'has-text': language.hasText }},[_c('UiCheckbox',{attrs:{\"value\":language.isSelected,\"tabindex\":\"-1\"},on:{\"input\":function (v) { return _vm.toggleLanguage(language.id, v); }}}),_c('a',{class:(\"language-link \" + (language.isSelected ? '' : 'disabled')),attrs:{\"href\":(\"#\" + (language.language) + \"-\" + (language.id)),\"tabindex\":i > 0 ? -1 : 0},on:{\"focus\":function (e) { return i === 0 ? _vm.highlightAnchor(e) : ''; },\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();return _vm.toggleLanguage(language.id, !language.isSelected)}}},[_vm._v(\"\\n \"+_vm._s(language.language)+\"\\n \")])],1)}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nexport default function fireEvent(element, eventName) {\n var event = document.createEvent(\"HTMLEvents\");\n event.initEvent(eventName, true, false);\n element.dispatchEvent(event);\n}","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageNav.vue?vue&type=template&id=5d55f768&scoped=true&\"\nimport script from \"./LanguageNav.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageNav.vue?vue&type=style&index=0&id=5d55f768&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d55f768\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"kerning-nav contextual-sidebar u-flex-v\"},[_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({\n preventParentScroll: true,\n }),expression:\"{\\n preventParentScroll: true,\\n }\"}],ref:\"vb\"},[_c('div',{staticClass:\"scrolled\"},[_c('transition-group',{staticClass:\"fade-transition-group\",attrs:{\"name\":\"fade\",\"tag\":\"div\"}},[_c('KerningEditor',{key:\"pattern-editor\",attrs:{\"segments\":_vm.segments},on:{\"addKerningSegment\":_vm.addKerningSegment,\"removeKerningSegment\":function (i) { return _vm.removeKerningSegment(i); },\"updateKerningPattern\":_vm.updateKerningPattern}}),_c('div',{key:\"pattern-list\",staticClass:\"nav panel\"},[_c('transition-group',{staticClass:\"fade-transition-group\",attrs:{\"name\":\"fade\",\"tag\":\"div\"}},[_c('div',{key:\"heading\",staticClass:\"row\"},[_c('h3',[_vm._v(\"Patterns\")]),_c('UiIconButton',{attrs:{\"color\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.addKerningPattern}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1),_vm._l((_vm.kerningPatterns),function(pattern){return _c('div',{key:(\"pattern-\" + (pattern.id)),class:(\"kerning-pattern \" + (_vm.selectedPatternId === pattern.id ? 'selected' : ''))},[_c('UiCheckbox',{attrs:{\"value\":pattern.isVisible},on:{\"input\":function (v) { return _vm.toggleKerningPattern(pattern.id, v); }}}),_c('div',{staticClass:\"link\",attrs:{\"href\":(\"#\" + (pattern.id)),\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.selectPattern(pattern.id)}}},[_c('kbd',{attrs:{\"title\":pattern.id},domProps:{\"innerHTML\":_vm._s(_vm.formatPatternId(pattern.name || 'new pattern'))}})]),_c('UiIconButton',{staticClass:\"border\",attrs:{\"color\":\"default\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.removeKerningPattern(pattern.id)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13H5v-2h14v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1)}),_c('div',{key:\"revertBtn\",staticClass:\"btn-group\"},[_c('UiButton',{attrs:{\"color\":\"default\"},on:{\"click\":_vm.revertKerningPatterns}},[_vm._v(\"Revert\")]),_c('UiButton',{attrs:{\"color\":\"default\",\"disabled\":_vm.kerningPatterns.length === 0},on:{\"click\":_vm.clearKerningPatterns}},[_vm._v(\"Clear\")])],1)],2)],1),_c('a',{key:\"help\",staticClass:\"help-link\",attrs:{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"/help/kerning\"}},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}})]),_c('span',[_vm._v(\"\\n Help\\n \")])])],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function scrollToHash(a, scrolled, hash = null) {\n if (hash == null) {\n hash = a.getAttribute(\"href\");\n }\n\n const escaped = hash.slice(1).replace(/\\\\/g, \"\\\\\\\\\");\n const selector = `[id='${ escaped }']`;\n const target = document.querySelector(selector);\n\n if (target) {\n let top = target.offsetTop;\n // let parent = target.parentElement;\n // while (parent != scrolled) {\n // top += parent.offsetTop;\n // console.log(parent, parent.offsetTop)\n // parent = parent.parentElement;\n // }\n scrolled.scrollTop = top;\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KerningNav.vue?vue&type=template&id=1f701b1d&scoped=true&\"\nimport script from \"./KerningNav.vue?vue&type=script&lang=js&\"\nexport * from \"./KerningNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KerningNav.vue?vue&type=style&index=0&id=1f701b1d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f701b1d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-support-summary\"},[_c('v-style',[_vm._v(\"\\n .glyph {\\n font-size: \"+_vm._s(_vm.settings.fontSize)+_vm._s(_vm.settings.fontSizeUnit)+\";\\n }\\n \")]),_c('div',{staticClass:\"main-column\"},[_c('div',[_c('p',[_vm._v(\"\\n Font supports \"),_c('strong',[_vm._v(_vm._s(_vm.languageSupport.supportedLanguages.length))]),_vm._v(\" out of \"),_c('strong',[_vm._v(_vm._s(_vm.languageSupport.languages.length))]),_vm._v(\" listed languages.\\n \")]),_c('h2',[_vm._v(\"\\n Supported languages\\n \"),_c('UiSelect',{staticClass:\"inline\",attrs:{\"options\":_vm.supportedLanguagesSortingOptions},model:{value:(_vm.supportedLanguagesSorting),callback:function ($$v) {_vm.supportedLanguagesSorting=$$v},expression:\"supportedLanguagesSorting\"}})],1),_c('LanguageList',{attrs:{\"languages\":_vm.supportedLanguages},on:{\"select-language\":function (l) { return _vm.selectLanguage(l); }}}),_c('h2',[_vm._v(\"\\n Unsupported languages\\n \"),_c('UiSelect',{staticClass:\"inline\",attrs:{\"options\":_vm.unsupportedLanguagesSortingOptions},model:{value:(_vm.unsupportedLanguagesSorting),callback:function ($$v) {_vm.unsupportedLanguagesSorting=$$v},expression:\"unsupportedLanguagesSorting\"}})],1),_c('div',_vm._l((_vm.unsupportedLanguages),function(l,i){return _c('span',{key:i},[_c('UiButton',{class:(\"support-\" + (Math.min(4, Math.ceil(l.missingCharacters.length / 5)))),on:{\"click\":function($event){return _vm.selectLanguage(l)}}},[_vm._v(\"\\n \"+_vm._s(l.language)+\"\\n \")])],1)}),0),_c('h2',[_vm._v(\"\\n Missing characters\\n \"),_c('UiSelect',{staticClass:\"inline\",attrs:{\"options\":_vm.missingCharacterSortingOptions},model:{value:(_vm.missingCharacterSorting),callback:function ($$v) {_vm.missingCharacterSorting=$$v},expression:\"missingCharacterSorting\"}})],1),_c('div',_vm._l((_vm.missingCharacters),function(script,i){return _c('div',{key:i},[_c('h3',[_vm._v(_vm._s(script.script))]),_vm._l((script.characters.filter(function (c) { return c.character.length === 1; })),function(c,j){return _c('button',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character)+\"\\n \")])})],2)}),0),_c('h2',[_vm._v(\"\\n Missing character combinations by script\\n \")]),_c('div',_vm._l((_vm.languageSupport.missingCharacterCombinationsByScript),function(script,i){return _c('div',{key:i},[_c('h3',[_vm._v(_vm._s(script.script))]),_vm._l((script.characters),function(c,j){return _c('button',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character)+\"\\n \")])})],2)}),0),_c('h2',[_vm._v(\"\\n Included characters by script\\n \")]),_c('FontSample',_vm._l((_vm.languageSupport.includedCharactersByScript),function(script,i){return _c('div',{key:i},[_c('h3',[_vm._v(_vm._s(script.script))]),_vm._l((script.characters.filter(function (c) { return c.character.length === 1; })),function(c,j){return _c('div',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character))])})],2)}),0),_c('h2',[_vm._v(\"\\n Included character combinations by script\\n \")]),_c('FontSample',_vm._l((_vm.languageSupport.includedCharacterCombinationsByScript),function(script,i){return _c('div',{key:i},[_c('h3',[_vm._v(_vm._s(script.script))]),_vm._l((script.characters),function(c,j){return _c('div',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character))])})],2)}),0),_c('h2',[_vm._v(\"\\n All included characters\\n \")]),_c('FontSample',_vm._l((_vm.languageSupport.fontCharacters),function(c,j){return _c('div',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character))])}),0)],1)]),_c('Pinnable',{staticClass:\"sidebar\",attrs:{\"isPinned\":true,\"isVisible\":true,\"scrolled\":false}},[_c('div',{staticClass:\"language-character-sidebar\"},[(_vm.selectedCharacter)?_c('ScrollPanel',[_c('CharacterPanel',{attrs:{\"characterInfo\":_vm.selectedCharacter},on:{\"select-language\":function (l) { return _vm.selectLanguage(l); }}})],1):_c('div',{staticClass:\"placeholder-info\"},[_vm._v(\"\\n \"+_vm._s(_vm.languageSupport.characters.filter(function (c) { return !c.isMissing; }).length)+\" /\\n \"+_vm._s(_vm.languageSupport.characters.length)+\" characters\\n \")]),(_vm.selectedLanguage)?_c('ScrollPanel',[_c('LanguagePanel',{attrs:{\"lang\":_vm.selectedLanguage.htmlTag,\"languageInfo\":_vm.selectedLanguage},on:{\"character-clicked\":function (c) { return _vm.selectCharacter(_vm.languageSupport.characters.find(function (cc) { return cc.character === c; })); }}})],1):_c('div',{staticClass:\"placeholder-info\"},[_vm._v(\"\\n \"+_vm._s(_vm.languageSupport.supportedLanguages.length)+\" /\\n \"+_vm._s(_vm.languageSupport.languages.length)+\" languages\\n \")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"scroll-panel\"},[_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({ preventParentScroll: true }),expression:\"{ preventParentScroll: true }\"}]},[_c('div',{staticClass:\"content\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ScrollPanel.vue?vue&type=template&id=2926fb9c&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-panel\"},[_c('div',{staticClass:\"info-bar\"},[_c('strong',[_vm._v(_vm._s(_vm.languageInfo.language)+\" \")]),_c('div',[_c('label',[_vm._v(\"OpenType: \")]),_c('code',[_vm._v(_vm._s(_vm.languageInfo.opentypeTag))])]),_c('div',[_c('label',[_vm._v(\"HTML: \")]),_c('code',[_vm._v(_vm._s(_vm.languageInfo.htmlTag))])]),_c('a',{attrs:{\"href\":(\"https://en.wikipedia.org/wiki/\" + (_vm.languageInfo.language.replace(/languages?$/,'_language'))),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Wikipedia\")])]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.printNumber(_vm.languageInfo.speakers))+\" speakers\")])]),(_vm.languageInfo.missingCharacters.length)?_c('header',[_vm._v(\"missing characters\")]):_vm._e(),_c('div',{staticClass:\"glyphs\"},_vm._l((_vm.languageInfo.missingCharacters),function(c,j){return _c('button',{key:j,staticClass:\"glyph support-4\",on:{\"click\":function($event){return _vm.$emit('character-clicked', c)}}},[_vm._v(_vm._s(c)+\"\\n \")])}),0),(_vm.languageInfo.includedCharacters.length)?_c('header',[_vm._v(\"supported characters\")]):_vm._e(),_c('div',{staticClass:\"glyphs\"},_vm._l((_vm.languageInfo.includedCharacters),function(c,j){return _c('button',{key:j,staticClass:\"glyph support-0\",on:{\"click\":function($event){return _vm.$emit('character-clicked', c)}}},[_vm._v(_vm._s(c)+\"\\n \")])}),0),(_vm.languageInfo.specialLetters.length != _vm.languageInfo.requiredCharacters.length)?_c('div',[_c('header',[_vm._v(\"letter units\")]),_c('div',{staticClass:\"glyphs\"},_vm._l((_vm.languageInfo.specialLetters),function(c,j){return _c('button',{key:j,staticClass:\"glyph\",on:{\"click\":function($event){return _vm.$emit('character-clicked', c)}}},[_vm._v(_vm._s(c)+\"\\n \")])}),0)]):_vm._e(),(_vm.languageInfo.gotchas.length)?_c('div',[_c('header',[_vm._v(\"gotchas\")]),_c('div',{staticClass:\"gotchas\"},[_vm._l((_vm.languageInfo.gotchas),function(g,i){return _c('p',{key:i,domProps:{\"innerHTML\":_vm._s(\"\" + (g.topic) + \": \" + (g.description || g.tags.join(', ')))}})}),_c('p',[_c('router-link',{attrs:{\"to\":(\"/gotchas#\" + (_vm.languageInfo.language) + \"-\" + (_vm.languageInfo.id))}},[_vm._v(\"\\n go to tests\\n \")])],1)],2)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguagePanel.vue?vue&type=template&id=78d0fe3c&scoped=true&\"\nimport script from \"./LanguagePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguagePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguagePanel.vue?vue&type=style&index=0&id=78d0fe3c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78d0fe3c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-list\"},[_vm._l((_vm.languages),function(l){return _c('span',{key:l.language +'-'+ l.script,attrs:{\"lang\":l.htmlCode}},[_c('UiButton',{class:(\"language-button support-\" + (Math.min(4, Math.ceil((l.missingCharacters || []).length / 5)))),on:{\"click\":function($event){return _vm.$emit('select-language', l)}}},[_c('div',[_vm._v(\"\\n \"+_vm._s(l.language)+\"\\n \")]),(_vm.fields.indexOf('coverage') > -1)?_c('div',{staticClass:\"goals\"},[_vm._v(\"\\n \"+_vm._s(l.includedCharacters.length)+\"/\"+_vm._s(l.requiredCharacters.length)+\"\\n \")]):_vm._e(),(l.gotchas.length)?_c('div',{staticClass:\"gotcha-warning-icon\"},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"width\":\"18\",\"height\":\"18\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\"}})])]):_vm._e()])],1)}),_c('UiButton',{on:{\"click\":_vm.copyList}},[_vm._v(\"copy list\")]),_c('textarea',{ref:\"list\",staticStyle:{\"position\":\"absolute\",\"left\":\"-9999px\"},domProps:{\"value\":_vm.languages.map(function (l) { return l.language; }).join(', ')}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageList.vue?vue&type=template&id=6123afb8&scoped=true&\"\nimport script from \"./LanguageList.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageList.vue?vue&type=style&index=0&id=6123afb8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6123afb8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"character-panel\"},[_c('CharacterInfo',{attrs:{\"character\":_vm.characterInfo.character}}),_c('div',[_c('strong',[_vm._v(_vm._s(_vm.printNumber(_vm.characterInfo.speakers)))]),_vm._v(\" speakers total\")]),(_vm.characterInfo.obligatoryLanguages)?_c('div',[_c('h4',[_vm._v(\"obligatory in \"+_vm._s(_vm.characterInfo.obligatoryLanguages.length)+\" languages\")]),_c('div',[_c('LanguageList',{attrs:{\"languages\":_vm.characterInfo.obligatoryLanguages,\"fields\":['coverage']},on:{\"select-language\":function (l) { return _vm.$emit('select-language', l); }}})],1),_c('br'),_c('div',[_c('a',{attrs:{\"href\":_vm.wordFinderUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"find words\")])])]):_vm._e(),(_vm.characterInfo.optionalLanguages)?_c('div',[(_vm.characterInfo.optionalLanguages.length)?_c('div',[_c('strong',[_vm._v(\"optional in \"+_vm._s(_vm.characterInfo.optionalLanguages.length)+\" languages\")])]):_vm._e(),_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.characterInfo.optionalLanguages.map(function (l) { return l.language + \" (\" + (l.optionalCharactersNote) + \")\"; }).join(', '))+\"\\n \")])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"character-info\"},[_c('div',{staticClass:\"character-font-preview\"},[_vm._v(_vm._s(_vm.character)+\" \")]),_c('div',{staticClass:\"info-bar\"},[_c('div',{staticStyle:{\"font-size\":\"2.5rem\"}},[_vm._v(_vm._s(_vm.characterRepresentation)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.unicodes))]),_c('div',[_vm._v(_vm._s(_vm.glyphnames))]),_c('a',{attrs:{\"href\":(\"https://en.wikipedia.org/wiki/\" + _vm.character),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Wikipedia\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CharacterInfo.vue?vue&type=template&id=42b34de5&scoped=true&\"\nimport script from \"./CharacterInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./CharacterInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CharacterInfo.vue?vue&type=style&index=0&id=42b34de5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42b34de5\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CharacterPanel.vue?vue&type=template&id=886201ec&scoped=true&\"\nimport script from \"./CharacterPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./CharacterPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CharacterPanel.vue?vue&type=style&index=0&id=886201ec&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"886201ec\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageSupportSummary.vue?vue&type=template&id=7ddd8dad&\"\nimport script from \"./LanguageSupportSummary.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageSupportSummary.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageSupportSummary.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-sample-nav contextual-sidebar\"},[_c('div',{staticClass:\"toolbar panel btn-group\"},[_c('UiIconButton',{attrs:{\"tooltip\":\"Heading\",\"color\":_vm.isHeadingActive ? 'primary' : 'default'},on:{\"click\":_vm.makeHeading}},[_vm._v(\"\\n H\\n \")]),_c('UiIconButton',{attrs:{\"tooltip\":\"Bold\",\"color\":_vm.isBoldActive ? 'primary' : 'default'},on:{\"click\":_vm.makeBold}},[_vm._v(\"\\n B\\n \")]),_c('UiIconButton',{attrs:{\"tooltip\":\"Italic\",\"color\":_vm.isItalicActive ? 'primary' : 'default'},on:{\"click\":_vm.makeItalic}},[_vm._v(\"\\n I\\n \")])],1),_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({\n preventParentScroll: true,\n }),expression:\"{\\n preventParentScroll: true,\\n }\"}],ref:\"vb\",staticClass:\"nav-links\"},[_c('div',{staticClass:\"scrolled\"},[_c('div',{staticClass:\"nav panel\"},_vm._l((_vm.textHeadings),function(heading,i){return _c('div',{key:i},[_c('a',{staticClass:\"heading-link\",attrs:{\"href\":(\"#\" + (heading.id))}},[_vm._v(\"\\n \"+_vm._s(heading.text)+\"\\n \")])])}),0),_c('AnimationEditor')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"animation-editor panel\"},[_c('h3',[_vm._v(\"Animation editor\")]),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Duration\")]),_c('UiTextbox',{model:{value:(_vm.duration),callback:function ($$v) {_vm.duration=$$v},expression:\"duration\"}})],1),_c('EditableList',{staticClass:\"keyframes\",attrs:{\"options\":_vm.animationKeyframes,\"keys\":{key: 'id'}},on:{\"remove\":function (key) { return _vm.removeAnimationKeyframe({ id: key }); }},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar k = ref.option;\nvar i = ref.index;\nreturn [_c('UiButton',{class:'keyframe border' + (k.id === _vm.activeKeyframeId ? ' active' : ''),attrs:{\"id\":(\"keyframe-btn-\" + (k.id))},on:{\"click\":function($event){return _vm.activateKeyframe({ id: k.id })}}},[_c('div',{staticClass:\"label\"},[_vm._v(\"\\n Keyframe \"+_vm._s(k.id)+\"\\n \")]),_c('UiProgressLinear',{attrs:{\"progress\":_vm.keyframeProgress[i],\"type\":\"determinate\"}})],1)]}},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"btn-group\"},[_c('UiButton',{on:{\"click\":_vm.addAnimationKeyframe}},[_vm._v(\"\\n Add\\n \")]),_c('UiButton',{attrs:{\"loading\":_vm.playing,\"disabled\":!_vm.canAnimate},on:{\"click\":_vm.play}},[_vm._v(\"\\n Play\\n \")])],1)]},proxy:true}])}),_c('div',{staticClass:\"row-v\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Code\")]),_c('UiTextbox',{attrs:{\"value\":_vm.keyframesText,\"multiLine\":true,\"rows\":5,\"autosize\":false},on:{\"input\":function (v) { return _vm.importAnimationKeyframes(v); }}})],1),_c('div',{staticClass:\"row-v\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Animated\")]),_c('UiSelect',{attrs:{\"value\":_vm.animatedProperties,\"options\":_vm.animatableProperties,\"multiple\":true},on:{\"input\":function (properties) { return _vm.setAnimatedProperties({ properties: properties }); }}})],1),_c('a',{key:\"help\",staticClass:\"help-link\",attrs:{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"/help/animation\"}},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}})]),_c('span',[_vm._v(\"\\n Help\\n \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editable-list\"},[_c('transition-group',{attrs:{\"name\":\"fade\"}},[_c('div',{key:\"header\",staticClass:\"row\"},[_vm._t(\"header\")],2),_vm._l((_vm.options),function(o,i){return _c('div',{key:_vm.keys.key ? o[_vm.keys.key] : i,staticClass:\"editable-list-item\"},[(_vm.keys.checked)?_c('UiCheckbox',{attrs:{\"value\":o[_vm.keys.checked]},on:{\"input\":function (value) { return _vm.$emit('check', { key: o[_vm.keys.key], value: value }); }}}):_vm._e(),_vm._t(\"option\",[_vm._v(\"\\n \"+_vm._s(_vm.keys.label ? o[_vm.keys.label] : o)+\"\\n \")],{\"option\":o,\"index\":i}),_c('UiIconButton',{staticClass:\"border\",attrs:{\"color\":\"default\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('remove', _vm.keys.key ? o[_vm.keys.key] : o)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13H5v-2h14v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],2)}),_c('div',{key:\"footer\",staticClass:\"row\"},[_vm._t(\"footer\")],2)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditableList.vue?vue&type=template&id=69007cc0&scoped=true&\"\nimport script from \"./EditableList.vue?vue&type=script&lang=js&\"\nexport * from \"./EditableList.vue?vue&type=script&lang=js&\"\nimport style1 from \"./EditableList.vue?vue&type=style&index=1&id=69007cc0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69007cc0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnimationEditor.vue?vue&type=template&id=0dcbafa4&scoped=true&\"\nimport script from \"./AnimationEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./AnimationEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AnimationEditor.vue?vue&type=style&index=0&id=0dcbafa4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0dcbafa4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontSampleNav.vue?vue&type=template&id=abb3f344&scoped=true&\"\nimport script from \"./FontSampleNav.vue?vue&type=script&lang=js&\"\nexport * from \"./FontSampleNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontSampleNav.vue?vue&type=style&index=0&id=abb3f344&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"abb3f344\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontTester.vue?vue&type=template&id=33941e68&scoped=true&\"\nimport script from \"./FontTester.vue?vue&type=script&lang=js&\"\nexport * from \"./FontTester.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontTester.vue?vue&type=style&index=0&id=33941e68&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33941e68\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport Router from \"vue-router\";\n\nimport SiteHeader from \"@/viewparts/SiteHeader.vue\";\nimport SiteFooter from \"@/viewparts/SiteFooter.vue\";\nimport Home from \"@/views/Home.vue\";\nimport Help from \"@/views/Help.vue\";\nimport KerningHelp from \"@/views/KerningHelp.vue\";\nimport AnimationHelp from \"@/views/AnimationHelp.vue\";\nimport FontTester from \"@/views/FontTester.vue\";\n\nimport textKinds from \"@/models/textKinds\";\n\nVue.use(Router);\n\nexport default new Router({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes: [\n {\n path: \"/\",\n name: \"Home\",\n components: {\n header: SiteHeader,\n main: Home,\n footer: SiteFooter,\n },\n },\n { path: '/editor', redirect: '/custom' },\n {\n // parentheses enclose text kind RegExp\n path: `/:text(${textKinds.join(\"|\")}|custom)/:id?`,\n name: \"FontTester\",\n components: {\n header: SiteHeader,\n main: FontTester,\n footer: SiteFooter,\n },\n },\n {\n path: \"/help/kerning\",\n name: \"KerningHelp\",\n components: {\n header: SiteHeader,\n main: KerningHelp,\n footer: SiteFooter,\n },\n },\n {\n path: \"/help/animation\",\n name: \"AnimationHelp\",\n components: {\n header: SiteHeader,\n main: AnimationHelp,\n footer: SiteFooter,\n },\n },\n {\n path: \"/help\",\n name: \"Help\",\n components: {\n header: SiteHeader,\n main: Help,\n footer: SiteFooter,\n },\n },\n ],\n});\n","export default [\n { segments: [\"A-Z\", \"A-Z\"] },\n { segments: [\"A-Z\", \"a-z\"] },\n { segments: [\"a-z\", \"a-z\"] },\n { segments: [\"0-9\", \"0-9\"] },\n { segments: [\".,\\\\-/\", \"0-9\"] },\n { segments: [\"@()[]{}\", \"0-9A-Za-z\"] },\n { segments: [\".,-\", \"A-Za-z\"] },\n { segments: [\"@“”„”„“””\\\"\\\"\", \"A-Za-z\"] },\n];\n","export default function kerningPatternName(pattern) {\n // let id = pattern.segments\n // .filter(s => s.length)\n // .map(s => s\n // .replace(/ /g, \"_\")\n // )\n // .join(\" × \");\n // return id;\n return pattern.lines[0];\n}\n","export default {\n lettering: \"letterings\",\n pangrams: \"pangrams\",\n sentences: \"paragraphs\",\n gotchas: \"gotchas\",\n ABCs: \"alphabet\",\n glyphs: null,\n kerning: null,\n languages: null,\n};\n","export default function (id) {\n return id\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n","export default function escapeHtml(unsafe) {\n return unsafe\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n","import Vue from \"vue\";\nimport router from \"@/router\";\n\nimport getId from \"@/utils/id\";\nimport kerningPatterns from \"@/models/kerningPatterns\";\nimport kerningPatternName from \"@/models/kerningPatternName\";\nimport languageDataFields from \"@/models/textKindLanguageDataField\";\nimport LanguageData from \"language-data\";\nimport escapeHtmlId from \"./utils/escapeHtmlId\";\nimport escapeHtml from \"./utils/escapeHtml\";\nimport KerningGenerator from \"./models/KerningGenerator\";\n\nlet id = 0;\nlet customTextId = 1;\n\nconst SCRIPTS = {\n Latn: { name: 'Latin' },\n Cyrl: { name: 'Cyrillic' },\n Armn: { name: 'Armenian' },\n Grek: { name: 'Greek' },\n IPA: { name: 'IPA', isSelected: false },\n};\n\nconst SCRIPT_TAGS = LanguageData.map(l => l.script).filter((v, i, a) => a.indexOf(v) === i);\nconst LANGUAGES = LanguageData.sort((a,b) => a.language.localeCompare(b.language));\n\nexport default {\n state: {\n selectedSampleKey: \"\",\n texts: [],\n customTextIds: [],\n languages: LANGUAGES.map(l => ({ ...l, id: id++, isSelected: true })),\n scripts: SCRIPT_TAGS.map(s => ({ script: s, id: id++, isSelected: true, ...SCRIPTS[s] })),\n textHeadings: [],\n formatRequested: false,\n kerningPatterns: [],\n defaultKerningPatterns: kerningPatterns,\n fontCharacters: 'xyz'.split(),\n },\n\n mutations: {\n setText(state, { sampleKey, html }) {\n Vue.set(state.texts, sampleKey, html)\n },\n\n modifyText(state, { html, headings = [] }) {\n if (state.selectedSampleKey in languageDataFields) {\n this.commit(\"addCustomText\", { html });\n }\n else {\n Vue.set(state.texts, state.selectedSampleKey, [{ html }]);\n // state.texts[state.selectedSampleKey] = html;\n }\n state.textHeadings = headings;\n },\n\n addCustomText(state, { html }) {\n state.customTextIds.push(customTextId);\n state.texts[customTextId] = [{ html }];\n this.commit(\"selectSample\", { kind: \"custom\", id: customTextId });\n const route = `/custom/${state.selectedSampleKey}`;\n if (router.currentRoute.path !== route) {\n router.push(route);\n }\n customTextId++;\n },\n\n removeCustomText(state, { id }) {\n const i = state.customTextIds.indexOf(id);\n state.customTextIds.splice(i, 1);\n delete state.texts[id];\n if (router.currentRoute.path === `/custom/${id}`) {\n let path = '/lettering';\n if (i < state.customTextIds.length) {\n id = state.customTextIds[i];\n path = `/custom/${id}`;\n } else if (i - 1 >= 0 && i - 1 < state.customTextIds.length) {\n id = state.customTextIds[i - 1];\n path = `/custom/${id}`;\n }\n router.push(path);\n }\n },\n\n format(state, { tag }) {\n state.formatRequested = tag;\n },\n\n selectSample(state, { kind, id }) {\n if (kind in languageDataFields) {\n state.selectedSampleKey = kind;\n } else if (kind === \"custom\") {\n if (id in state.texts) {\n state.selectedSampleKey = id;\n }\n else {\n const html = \"Type here\";\n this.commit(\"addCustomText\", { html });\n }\n }\n },\n\n selectLanguage(state, { id, checked }) {\n state.languages.find(l => l.id === id).isSelected = checked;\n },\n\n selectDeselectAllLanguages(state, { checked }) {\n state.languages.forEach(l => l.isSelected = checked);\n },\n\n selectScripts(state, { values }) {\n state.scripts.forEach(s => {\n if (values.indexOf(s) > -1) {\n s.isSelected = true;\n }\n else {\n s.isSelected = false;\n }\n });\n },\n\n clearKerningPatterns(state) {\n state.kerningPatterns.splice(0);\n this.commit(\"setText\", { sampleKey: \"kerning\", html: \"\" });\n },\n\n initKerningPatterns(state) {\n state.defaultKerningPatterns.forEach(({ segments, isVisible = true }) => {\n this.commit(\"addKerningPattern\", { segments, isVisible, toEnd: true });\n });\n },\n\n addKerningPattern(state, { segments, isVisible, toEnd }) {\n const { sets, closures } = KerningGenerator.sets(segments);\n const copy = state.kerningPatterns.slice();\n const pattern = { segments, sets, closures, isVisible };\n pattern.lines = KerningGenerator.kerningString(pattern);\n pattern.name = kerningPatternName(pattern);\n pattern.id = getId('kerning-pattern-' + pattern.name);\n if (toEnd) {\n copy.push(pattern);\n } else {\n copy.unshift(pattern);\n }\n state.kerningPatterns = copy;\n },\n\n updateKerningPattern(state, { id, segments }) {\n const { sets, closures } = KerningGenerator.sets(segments);\n let copy = state.kerningPatterns.slice();\n let pattern = copy.find(kp => kp.id === id);\n if (!pattern) {\n this.commit(\"addKerningPattern\", { segments, isVisible: true });\n copy = state.kerningPatterns.slice();\n pattern = copy[0];\n pattern.id = id;\n }\n pattern.segments = segments;\n pattern.sets = sets;\n pattern.closures = closures;\n pattern.lines = KerningGenerator.kerningString(pattern);\n pattern.name = kerningPatternName(pattern);\n state.kerningPatterns = copy;\n },\n\n removeKerningPattern(state, { id }) {\n const index = state.kerningPatterns.findIndex(p => p.id === id);\n state.kerningPatterns.splice(index, 1);\n },\n\n toggleKerningPattern(state, { id, on }) {\n const index = state.kerningPatterns.findIndex(p => p.id === id);\n state.kerningPatterns[index].isVisible = on;\n },\n\n updateKerning(state) {\n let patterns = state.kerningPatterns\n .filter(pattern => pattern.isVisible);\n let html = patterns\n .map(pattern => {\n const lines = pattern.lines;\n const text = lines[0].length > 50\n ? lines.join(\"\\n\")\n : lines.join(\" \").replace(/ +/g, \" \");\n return {\n header: `

`,\n texts: [`

${escapeHtml(text)}

`],\n };\n });\n this.commit(\"setText\", { sampleKey: \"kerning\", html });\n },\n\n updateFontCharacters(state, { characters }) {\n state.fontCharacters = characters;\n },\n },\n\n actions: {\n selectScripts({ state, commit, dispatch }, { values }) {\n commit(\"selectScripts\", { values });\n dispatch(\"updateText\");\n },\n\n selectLanguage({ state, commit, dispatch }, { id, checked }) {\n const matching = state.languages.find(l => l.id === id);\n if (matching.isSelected !== checked) {\n commit(\"selectLanguage\", { id, checked });\n dispatch(\"updateText\");\n }\n },\n\n selectSample({ state, commit, dispatch }, { kind, id }) {\n commit(\"selectSample\", { kind, id });\n if (kind === \"kerning\") {\n if (state.kerningPatterns.length === 0) {\n this.commit(\"initKerningPatterns\");\n }\n }\n dispatch(\"updateText\");\n },\n\n updateFontCharacters({ dispatch }, { font }) {\n const characters = font.characters;\n this.commit(\"updateFontCharacters\", { characters });\n dispatch(\"updateText\");\n },\n\n updateText({ state, commit, getters }) {\n\n function squish(str) { return str.replace(/\\s\\s+/g, \"\") }\n function fNum(n) { return n > 1000000 ? n/1000000 + 'M' : n/1000 + 'K'; }\n\n const fieldKey = getters.selectedSampleTextKey;\n if (!fieldKey) {\n if (state.selectedSampleKey === \"kerning\") {\n commit(\"updateKerning\");\n }\n else if (state.selectedSampleKey === \"glyphs\") {\n let texts = [\n `

${\n state.fontCharacters.map(c => `${c}`).join('')\n }

`,\n ];\n commit(\"setText\", {\n sampleKey: state.selectedSampleKey,\n html: [{ header: '', texts }],\n });\n }\n return;\n }\n\n let data = getters.selectedLanguages\n .map(l => ({\n ...l,\n id: `${l.language}-${l.id}`,\n texts: l[fieldKey],\n }));\n\n let mappedData = []; // one to many\n\n if (getters.selectedSampleKey === 'gotchas') {\n data.forEach(({ id: langId, language, speakers, htmlTag, opentypeTag, texts }) => {\n let tests = texts.map(({ topic, tags, tests, description }) => {\n // let header = squish(\n // `

\n //

${l.language} — ${topic}

\n //
${tags.map(t => `${t}`).join(\"\")}
\n // ${l.opentypeTag ? `
OT code: ${l.opentypeTag.padEnd(4, ' ')}
` : ''}\n //
${fNum(l.speakers)} speakers
\n //
${description || ''}
\n //
\n // `\n // );\n let header = {\n id: langId + '-' + topic.replace(/[^a-z0-9]/ig, '_'),\n langId,\n language, speakers, htmlTag, opentypeTag,\n topic, tags, tests, description,\n }\n let fragments = [squish(\n `
\n ${tests.map(t => `

${t}

`).join(\"\")}\n
`\n )];\n return {\n header,\n texts: fragments,\n };\n });\n mappedData = [ ...mappedData, ...tests ];\n });\n } else {\n mappedData = data\n .map(({ id: langId, language, script, speakers, htmlTag, opentypeTag, texts }) => {\n let header = { langId, language, script, speakers, htmlTag, opentypeTag };\n let fragments;\n\n switch (getters.selectedSampleKey) {\n case \"ABCs\": {\n const AaBbCc = texts;\n const ABC = AaBbCc.split(' ').filter(l => l.split('').every(g=> g.toUpperCase() === g));\n const abc = AaBbCc.split(' ').filter(l => l.split('').every(g=> g.toLowerCase() === g));\n fragments = [\n AaBbCc,\n ABC.join(' '),\n abc.join(' '),\n ];\n if (script == 'Latn') {\n const Accents = ABC.filter(g => !/^[A-Z ]+$/.test(g));\n const accents = abc.filter(g => !/^[a-z ]+$/.test(g));\n fragments.push(Accents.join(''));\n fragments.push(accents.join(''));\n }\n\n fragments = fragments.map(t => `

${t}

`);\n break;\n }\n default:\n if (texts instanceof Array)\n fragments = texts.map(t => `

${t}

`);\n else\n fragments = [texts].map(t => `

${t}

`);\n }\n return {\n header,\n texts: fragments,\n };\n });\n }\n\n commit(\"setText\", { sampleKey: state.selectedSampleKey, html: mappedData });\n },\n\n addKerningPattern({ commit }, { segments, toEnd }) {\n commit(\"addKerningPattern\", { segments, isVisible: true, toEnd });\n commit(\"updateKerning\");\n },\n\n updateKerningPattern({ commit }, { id, segments }) {\n commit(\"updateKerningPattern\", { id, segments });\n commit(\"updateKerning\");\n },\n\n removeKerningPattern({ commit }, { id }) {\n commit(\"removeKerningPattern\", { id });\n commit(\"updateKerning\");\n },\n\n toggleKerningPattern({ commit }, { id, on }) {\n commit(\"toggleKerningPattern\", { id, on });\n commit(\"updateKerning\");\n },\n\n clearKerningPatterns({ dispatch, commit }) {\n commit(\"clearKerningPatterns\");\n setTimeout(() => {\n dispatch(\"updateText\");\n }, 50);\n },\n\n revertKerningPatterns({ dispatch, commit }) {\n commit(\"clearKerningPatterns\");\n commit(\"initKerningPatterns\");\n dispatch(\"updateText\");\n },\n },\n\n\n getters: {\n texts: state => state.texts,\n textHeadings: state => state.textHeadings,\n formatRequested: state => state.formatRequested,\n customTextIds: state => state.customTextIds,\n selectedSampleKey: state => state.selectedSampleKey,\n selectedSampleTextKey: state => languageDataFields[state.selectedSampleKey],\n scripts: state => state.scripts,\n selectedScripts: state => state.scripts.filter(s => s.isSelected),\n filteredLanguages: (state, getters) => state.languages.filter(l => getters.selectedScripts.find(s => s.script === l.script)),\n visibleLanguages: (state, getters) => {\n if (getters.selectedSampleKey === 'languages') {\n return getters.filteredLanguages.filter(l => l.alphabet);\n }\n else if (getters.selectedSampleTextKey) {\n return getters.filteredLanguages\n .filter(l => l[getters.selectedSampleTextKey].length);\n }\n else {\n return [];\n }\n },\n otherLanguages: (state, getters) => {\n return getters.filteredLanguages.filter(l => getters.visibleLanguages.find(ll => ll.id === l.id) == null);\n },\n selectedLanguages: (state, getters) => getters.visibleLanguages.filter(l => l.isSelected),\n languages: (state, getters) => [\n ...getters.visibleLanguages.map(l => ({ ...l, hasText: true })),\n ...getters.otherLanguages.map(l => ({ ...l, hasText: false })),\n ],\n kerningPatterns: (state) => state.kerningPatterns,\n\n languageSupport: (state, getters) => {\n function uniqueCharacterFilter(c,i, a) {\n return !/^[A-Za-z ]+$/.test(c) && a.indexOf(c) === i;\n }\n\n const testableLanguages = getters.selectedLanguages; //.filter(l => l.specialCharacters);\n\n const languages = testableLanguages.map(l => {\n const specialLetters = (l.script === 'Latn' ? l.specialCharacters : l.alphabet).split(' ')\n .filter((e, i, a) => a.indexOf(e) === i && e)\n // .filter((c) => c.length < 2 || Array(c.length - 1).fill(0).every((_,i) => isAccent(c, i + 1)));\n // .filter((c) => !/^[A-Za-z ]+$/.test(c));\n\n const requiredCharacters = specialLetters.join('').split('')\n .filter(uniqueCharacterFilter);\n\n const includedCharacters = requiredCharacters.filter(g => g.split('').every(c => state.fontCharacters.indexOf(c) > -1));\n const missingCharacters = requiredCharacters.filter(g => includedCharacters.indexOf(g) === -1);\n\n return {\n ...l,\n specialLetters,\n requiredCharacters,\n includedCharacters,\n missingCharacters,\n };\n });\n\n const supportedLanguages = languages.filter(l => l.requiredCharacters.length === l.includedCharacters.length);\n const unsupportedLanguages = languages.filter(l => supportedLanguages.indexOf(l) === -1);\n\n const missingCharacters = languages\n .reduce((acc, cur) => [...cur.missingCharacters, ...acc], []);\n\n const characters = [\n ...languages.reduce((acc, cur) => [...cur.specialLetters, ...acc], []),\n ...languages.reduce((acc, cur) => [...cur.requiredCharacters, ...acc], [])\n ]\n .filter((v, i, a) => a.indexOf(v) === i)\n .map(c => ({\n character: c,\n unicode: c.charCodeAt(0),\n obligatoryLanguages: languages.filter(l => l.alphabet.indexOf(c) > -1),\n optionalLanguages: languages.filter(l => l.optionalCharacters.indexOf(c) > -1),\n script: (LANGUAGES.find(l => l.alphabet.indexOf(c) > -1) || {script: 'Latn'}).script,\n isMissing: missingCharacters.indexOf(c) > -1,\n }))\n .map(ch => ({\n ...ch,\n speakers: [... ch.obligatoryLanguages, ...ch.optionalLanguages ].reduce((acc, cur) => acc + cur.speakers, 0),\n }));\n\n const missingCharactersByScript = groupCharactersByScript(characters, true);\n const includedCharactersByScript = groupCharactersByScript(characters, false);\n const missingCharacterCombinationsByScript = characterCombinations(missingCharactersByScript);\n const includedCharacterCombinationsByScript = characterCombinations(includedCharactersByScript);\n\n const fontCharacters = state.fontCharacters.map(c => ({\n character: c,\n unicode: c.charCodeAt(0),\n obligatoryLanguages: languages.filter(l => l.alphabet.indexOf(c) > -1),\n optionalLanguages: languages.filter(l => l.optionalCharacters.indexOf(c) > -1),\n }))\n .map(ch => ({\n ...ch,\n speakers: [... ch.obligatoryLanguages, ...ch.optionalLanguages ].reduce((acc, cur) => acc + cur.speakers, 0),\n }));\n\n return {\n languages,\n supportedLanguages,\n unsupportedLanguages,\n characters,\n missingCharactersByScript,\n includedCharactersByScript,\n missingCharacterCombinationsByScript,\n includedCharacterCombinationsByScript,\n fontCharacters,\n };\n },\n },\n}\n\n\nfunction groupCharactersByScript(characters, isMissing) {\n const charactersByScript = [];\n characters\n .filter(c => c.isMissing === isMissing)\n .forEach(c => {\n let script = charactersByScript.find(s => s.script === c.script);\n if (!script) {\n script = { script: c.script, characters: [] }\n charactersByScript.push(script);\n }\n script.characters.push(c);\n });\n\n charactersByScript.forEach(script => {\n script.characters.sort((a, b) => a.character.localeCompare(b.character, 'en', { caseFirst: 'upper' }));\n });\n\n return charactersByScript;\n}\n\n\nfunction isAccent(c, i) {\n return c.charCodeAt(i) > 0x0300 && c.charCodeAt(i) < 0x037E;\n}\n\nfunction characterCombinations(charactersByScript) {\n return charactersByScript.map(s =>\n ({\n ...s,\n characters: s.characters.filter(c => c.character.length > 1 && isAccent(c.character, 1))\n })\n ).filter(s => s.characters.length);\n}\n","export default class Settings {\n static get definitions() {\n return {\n fontFamily: {\n type: String,\n default: \"\",\n },\n fallbackFontFamily: {\n type: String,\n default: \"sans-serif\",\n },\n\n fontSize: {\n type: Number,\n default: 24,\n validate: (value, settings) => value >= settings.minFontSize && value <= settings.maxFontSize,\n },\n fontSizeUnit: {\n type: String,\n default: \"pt\",\n kind: \"select\",\n },\n fontSizeUnitOptions: {\n type: Array,\n default: () => [\"pt\", \"px\", \"em\", \"vw\", \"vh\"],\n },\n enableWaterfall: {\n type: Boolean,\n default: false,\n },\n waterfallSizes: {\n type: String,\n // default: '10,12,16,24,26,36,45',\n default: '10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,34,36,38,44,64',\n },\n\n defaultLineHeight: {\n type: Boolean,\n default: true,\n },\n lineHeight: {\n type: Number,\n default: 1,\n validate: (value, settings) => value >= settings.minLineHeight && value <= settings.maxLineHeight,\n },\n minLineHeight: {\n type: Number,\n default: 0.5,\n },\n maxLineHeight: {\n type: Number,\n default: 3,\n },\n lineHeightStep: {\n type: Number,\n default: 0.01,\n },\n lineHeightClickStep: {\n type: Number,\n default: 0.01,\n },\n\n defaultTracking: {\n type: Boolean,\n default: true,\n },\n tracking: {\n type: Number,\n default: 0,\n validate: (value, settings) => value >= settings.minTracking && value <= settings.maxTracking,\n },\n minTracking: {\n type: Number,\n default: -0.5,\n },\n maxTracking: {\n type: Number,\n default: 2,\n },\n trackingStep: {\n type: Number,\n default: 0.001,\n },\n trackingClickStep: {\n type: Number,\n default: 0.01,\n },\n\n textAlign: {\n type: String,\n default: \"left\",\n kind: \"select\",\n },\n textAlignOptions: {\n type: Array,\n default: () => [\"left\", \"center\", \"right\", \"justify\"],\n },\n\n textColor: {\n type: String,\n // default: \"#222\",\n default: \"#000\",\n },\n backgroundColor: {\n type: String,\n // default: \"#ddd\",\n default: \"#fff\",\n },\n\n textTransform: {\n type: String,\n default: \"none\",\n kind: \"select\",\n },\n textTransformOptions: {\n type: Array,\n default: () => [\"none\", \"uppercase\", \"capitalize\", \"lowercase\"],\n },\n wrapLines: {\n type: Boolean,\n default: false,\n },\n\n gposFeatures: {\n type: Object,\n default: () => ([]),\n },\n gsubFeatures: {\n type: Object,\n default: () => ([]),\n },\n variationAxes: {\n type: Object,\n default: () => ([]),\n },\n enableVariationAxis: {\n type: Object,\n default: () => ([]),\n },\n }\n }\n\n static getDefaults() {\n const data = {};\n Object.keys(this.definitions).forEach(key => {\n const definition = this.definitions[key];\n const dflt = definition.default;\n if (typeof dflt === \"function\" && definition.type !== Function) {\n data[key] = dflt();\n } else {\n data[key] = dflt;\n }\n });\n return data;\n }\n\n static getStyleFromSettings(settings) {\n return {\n fontSize: settings.fontSize,\n lineHeight: settings.lineHeight,\n textAlign: settings.textAlign,\n textTransform: settings.textTransform,\n color: settings.textColor,\n backgroundColor: settings.backgroundColor,\n fontFeatureSettings: settings.gsubFeatures.concat(settings.gposFeatures)\n .map(f => `'${f.tag}' ${f.value ? '1' : '0'} `)\n .join(', '),\n fontVariationSettings: settings.variationAxes\n .filter(a => a.enabled)\n .map(a => `'${a.tag}' ${a.value} `)\n .join(', ')\n || 'unset',\n };\n }\n\n static mergeStyleOntoSettings(settings, style) {\n settings.fontSize = parseFloat(style.fontSize);\n settings.lineHeight = parseFloat(settings.lineHeight);\n // settings.textAlign = style.textAlign\n // settings.textTransform = style.textTransform\n settings.textColor = style.color;\n settings.backgroundColor = style.backgroundColor;\n\n function mapCompoundProp(from, to) {\n const features = {};\n (style[from] || \"\").split(/, ?/g).filter(s => s).map(f => {\n let match = f.match(/[a-z]{4}/i);\n if (match) {\n const tag = match[0];\n match = f.match(/ \\d+/);\n const val = match ? parseInt(match[0]) : 1;\n features[tag] = val;\n }\n });\n settings[to].forEach((f, i) => {\n if (f.tag in features) {\n settings[to][i].value = features[f.tag];\n }\n });\n }\n mapCompoundProp(\"fontFeatureSettings\", \"gsubFeatures\");\n mapCompoundProp(\"fontFeatureSettings\", \"gposFeatures\");\n mapCompoundProp(\"fontVariationSettings\", \"variationAxes\");\n }\n}\n","import Vue from \"vue\";\nimport Settings from \"./models/Settings\";\n\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\nexport default {\n state: {\n animatedProperties: Object.keys(Settings.definitions),\n animatableProperties: Object.keys(Settings.definitions),\n animationKeyframes: [],\n activeKeyframeId: null,\n maxId: 0,\n },\n getters: {\n animatedProperties: state => state.animatedProperties,\n animatableProperties: state => state.animatableProperties,\n animationKeyframes: state => state.animationKeyframes,\n activeKeyframeId: state => state.activeKeyframeId,\n },\n mutations: {\n setAnimatedProperties(state, { properties }) {\n state.animatedProperties = properties;\n },\n importAnimationKeyframes(state, { keyframes }) {\n try {\n state.animationKeyframes = JSON.parse(keyframes);\n }\n catch (e) {\n console.log(e);\n }\n },\n addAnimationKeyframe(state) {\n const id = ++state.maxId;\n state.activeKeyframeId = id;\n state.animationKeyframes.push({ id });\n this.commit(\"updateKeyframe\");\n },\n removeAnimationKeyframe(state, { id }) {\n if (id == null)\n return;\n const index = state.animationKeyframes.findIndex(k => k.id === id);\n state.animationKeyframes.splice(index, 1);\n },\n activateKeyframe(state, { id }) {\n state.activeKeyframeId = id;\n const { snapshot } = state.animationKeyframes.find(k => k.id === id);\n this.commit(\"restoreSettings\", { snapshot });\n },\n updateKeyframe(state) {\n const id = state.activeKeyframeId;\n if (id == null)\n return;\n const snapshot = clone(this.state.settings);\n const frame = Settings.getStyleFromSettings(this.state.settings);\n const index = state.animationKeyframes.findIndex(k => k.id === id);\n Vue.set(state.animationKeyframes, index, { id, snapshot, frame });\n },\n finishAnimateSettings() {\n this.commit(\"animateSettings\", { settings: null });\n },\n },\n actions: {\n animateSettings(context, { style }) {\n const snapshot = clone(this.state.settings);\n Settings.mergeStyleOntoSettings(snapshot, style);\n\n const settings = clone(this.state.settings);\n Object.keys(snapshot).filter(k => context.state.animatedProperties.indexOf(k) > -1).forEach(k => {\n settings[k] = snapshot[k];\n })\n this.commit(\"animateSettings\", { settings });\n },\n },\n}\n","import Vue from \"vue\";\n\nconst scrolledParentSelector = \".app-content\";\nVue.prototype.$scrollToTop = () => scrolledParentSelector.scrollTo(0,0);\n\nexport default {\n state: {\n scrolledParentSelector,\n sticky: true,\n footerVisible: 0,\n footerSentinelVisibleRatio: 0,\n },\n getters: {\n scrolledParentSelector: state => state.scrolledParentSelector,\n },\n mutations: {\n sticky(state, { value }) {\n state.sticky = value;\n },\n\n updateFooter(state, { visible, ratio }) {\n state.footerVisible = visible;\n state.footerSentinelVisibleRatio = ratio;\n },\n scrollToTop(state) {\n this.commit(\"sticky\", { value: true });\n this.commit(\"updateFooter\", { visible: false, ratio: 0 });\n const el = document.querySelector(state.scrolledParentSelector);\n el.scrollTop = 0;\n },\n },\n\n actions: {\n },\n}\n","export default function configureMediator (store) {\n // listen to mutations\n // eslint-disable-next-line no-unused-vars\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case 'updateSetting':\n if (state.animation.activeKeyframeId != null) {\n store.commit('updateKeyframe');\n }\n break;\n case 'selectFont':\n if (payload.font) {\n store.dispatch('updateFontCharacters', { font: payload.font });\n }\n }\n })\n}\n","import viewport from \"@/utils/viewport\";\n\n// https://github.com/jwilsson/CSS-Unit-Converter\n\nexport class UnitConverter {\n convert(options) {\n /* eslint-disable sort-keys */\n const formulas = {\n \"ch-cm\": options.value * 0.21087588,\n \"ch-em\": options.value * 0.5,\n \"ch-ex\": options.value / 0.9,\n \"ch-in\": options.value * 0.083022,\n \"ch-mm\": options.value * 2.1087588,\n \"ch-pc\": options.value * 0.5,\n \"ch-pt\": options.value * 5.977584,\n \"ch-%\": options.value * 50,\n \"ch-px\": options.value * options.base * 0.5,\n\n \"cm-ch\": options.value / 0.21087588,\n \"cm-em\": options.value / 0.42175176,\n \"cm-ex\": options.value / 0.189788292,\n \"cm-in\": options.value * 0.39,\n \"cm-mm\": options.value * 10,\n \"cm-pc\": options.value / 0.42175176,\n \"cm-pt\": options.value * 28.3464566929,\n \"cm-%\": (((options.value / options.base) * 100) / 2.54) * options.dpi,\n \"cm-px\": (options.value / 2.54) * options.dpi,\n\n \"em-ch\": options.value / 0.5,\n \"em-cm\": options.value * 0.42175176,\n \"em-ex\": options.value / 0.45,\n \"em-in\": options.value * 0.166044,\n \"em-mm\": options.value / 0.237106301584,\n \"em-pc\": options.value,\n \"em-pt\": options.value * 11.955168,\n \"em-%\": options.value * 100,\n \"em-px\": options.value * options.base,\n \"em-vh\": (100 * options.value * options.base) / viewport.height,\n \"em-vw\": (100 * options.value * options.base) / viewport.width,\n\n \"ex-ch\": options.value * 0.9,\n \"ex-cm\": options.value * 0.189788292,\n \"ex-em\": options.value * 0.45,\n \"ex-in\": options.value * 0.0747198,\n \"ex-mm\": options.value * 1.89788292,\n \"ex-pc\": options.value * 0.45,\n \"ex-pt\": options.value * 5.3798256,\n \"ex-%\": options.value * 45,\n \"ex-px\": options.value * options.base * 0.45,\n\n \"in-ch\": options.value / 0.083022,\n \"in-cm\": options.value * 2.54,\n \"in-em\": options.value / 0.166044,\n \"in-ex\": options.value / 0.0747198,\n \"in-mm\": options.value * 2.54 * 10,\n \"in-pc\": options.value / 0.166044,\n \"in-pt\": options.value / 0.014842519685,\n \"in-%\": (options.value / options.base) * 100 * options.dpi,\n \"in-px\": options.value * options.dpi,\n\n \"mm-ch\": options.value / 2.1087588,\n \"mm-cm\": options.value / 10,\n \"mm-em\": options.value * 0.237106301584,\n \"mm-ex\": options.value / 1.89788292,\n \"mm-in\": (options.value * 0.39) / 10,\n \"mm-pc\": options.value / 4.42175176,\n \"mm-pt\": options.value / 0.352777777778,\n \"mm-%\": ((((options.value / options.base) * 100) / 2.54) * options.dpi) / 10,\n \"mm-px\": ((options.value / 2.54) * options.dpi) / 10,\n\n \"pc-ch\": options.value / 0.5,\n \"pc-cm\": options.value * 0.42175176,\n \"pc-em\": options.value,\n \"pc-ex\": options.value / 0.45,\n \"pc-in\": options.value * 0.166044,\n \"pc-mm\": options.value * 4.42175176,\n \"pc-pt\": options.value / 0.0836458341698,\n \"pc-%\": options.value * 100,\n \"pc-px\": options.value * options.base,\n\n \"pt-ch\": options.value / 5.977584,\n \"pt-cm\": options.value / 28.3464566929,\n \"pt-em\": options.value / 11.955168,\n \"pt-ex\": options.value / 5.3798256,\n \"pt-in\": options.value * 0.014842519685,\n \"pt-mm\": options.value * 0.352777777778,\n \"pt-pc\": options.value * 0.0836458341698,\n \"pt-%\": (options.value / (options.base - 4)) * 100,\n \"pt-px\": (options.value * 96) / 72,\n \"pt-vh\": (100 * options.value * 96) / 72 / viewport.height,\n \"pt-vw\": (100 * options.value * 96) / 72 / viewport.width,\n\n \"%-ch\": options.value / 50,\n \"%-cm\": (((options.value * options.base) / 100) * 2.54) / options.dpi,\n \"%-em\": options.value / 100,\n \"%-ex\": options.value / 45,\n \"%-in\": (options.value * options.base) / 100 / options.dpi,\n \"%-mm\": ((((options.value * options.base) / 100) * 2.54) / options.dpi) * 10,\n \"%-pc\": options.value / 100,\n \"%-pt\": (options.value * (options.base - 4)) / 100,\n \"%-px\": (options.value * options.base) / 100,\n\n \"px-ch\": options.value / options.base / 0.5,\n \"px-cm\": (options.value * 2.54) / options.dpi,\n \"px-em\": options.value / options.base,\n \"px-ex\": options.value / options.base / 0.45,\n \"px-in\": options.value / options.dpi,\n \"px-mm\": ((options.value * 2.54) / options.dpi) * 10,\n \"px-pc\": options.value / options.base,\n \"px-pt\": (options.value * 72) / 96,\n \"px-%\": (options.value / options.base) * 100,\n \"px-vh\": (options.value / viewport.height) * 100,\n \"px-vw\": (options.value / viewport.width) * 100,\n\n \"vh-px\": (options.value * viewport.height) / 100,\n \"vh-pt\": ((72 / 96) * options.value * viewport.height) / 100,\n \"vh-em\": (options.value * viewport.height) / 100 / options.base,\n \"vh-vw\": (options.value * viewport.height) / viewport.width,\n\n \"vw-px\": (options.value * viewport.width) / 100,\n \"vw-pt\": ((72 / 96) * options.value * viewport.width) / 100,\n \"vw-em\": (options.value * viewport.width) / 100 / options.base,\n \"vw-vh\": (options.value * viewport.width) / viewport.height,\n };\n /* eslint-enable sort-keys */\n\n const units = `${options.from}-${options.to}`;\n const result = formulas[units];\n\n if (isNaN(result)) {\n return false;\n }\n\n return this.round(result, options.decimals) + options.to;\n }\n\n getUnits() {\n return [\"ch\", \"cm\", \"em\", \"ex\", \"in\", \"mm\", \"pc\", \"pt\", \"%\", \"px\"];\n }\n\n round(number, decimals) {\n return Math.round(number * 10 ** decimals) / 10 ** decimals;\n }\n}\n\nexport default function convertLength({ base = 16, decimals = 2, dpi = 72, from, to, value } = {}) {\n const converter = new UnitConverter();\n const result = converter.convert({ base, decimals, dpi, from, to, value });\n return result;\n}\n","import convertLength from \"@/models/convertLength\";\n\n//expects this to be the settings object\n\nexport default {\n minFontSize: function() {\n switch (this.fontSizeUnit) {\n case \"px\":\n return 4;\n default: {\n const value = convertLength({ from: \"px\", value: 4, to: this.fontSizeUnit });\n return parseFloat(value);\n }\n }\n },\n maxFontSize: function() {\n switch (this.fontSizeUnit) {\n case \"px\":\n return 1000;\n default: {\n const value = convertLength({ from: \"px\", value: 1000, to: this.fontSizeUnit });\n return parseFloat(value);\n }\n }\n },\n fontSizeStep: function() {\n switch (this.fontSizeUnit) {\n case \"pt\":\n return 0.5;\n case \"px\":\n return 1;\n case \"vw\":\n case \"vh\":\n case \"em\":\n return 0.01;\n default:\n return 0.01;\n }\n },\n fontSizeClickStep: function() {\n switch (this.fontSizeUnit) {\n case \"px\":\n case \"pt\":\n case \"vw\":\n case \"vh\":\n return 1;\n case \"em\":\n return 0.5;\n default:\n return 1;\n }\n },\n};\n","import Vue from \"vue\";\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\nimport textModule from \"./store.text\";\nimport animationModule from \"./store.animation\";\nimport layoutModule from \"./store.layout\";\nimport configureMediator from \"./store-mediator\";\n\nimport Settings from \"@/models/Settings\";\nimport computedParams from \"@/models/computedParams\";\nimport convertLength from \"@/models/convertLength\";\nimport opentypeFeatureDefaults from \"@/models/opentypeFeatureDefaults\";\n\nconst store = new Vuex.Store({\n modules: {\n text: textModule,\n animation: animationModule,\n layout: layoutModule,\n },\n state: {\n fontLoading: true,\n selectedFont: { family: \"\" },\n selectedBoldFont: { family: \"\" },\n selectedItalicFont: { family: \"\" },\n selectedBoldItalicFont: { family: \"\" },\n selectedHeaderFont: { family: \"\" },\n settings: Settings.getDefaults(),\n animating: false,\n displayedSettings: {},\n settingsPanelVisible: true,\n contextualPanelVisible: false,\n },\n\n getters: {\n selectedFont: state => {\n return state.selectedFont;\n },\n selectedHeaderFont: state => {\n return state.selectedHeaderFont;\n },\n selectedBoldFont: state => {\n return state.selectedBoldFont;\n },\n selectedItalicFont: state => {\n return state.selectedItalicFont;\n },\n selectedBoldItalicFont: state => {\n return state.selectedBoldItalicFont;\n },\n settings: state => {\n return state.settings;\n },\n displayedSettings: state => {\n return state.animating ? state.displayedSettings : state.settings;\n },\n animating: state => state.animating,\n selectedLoclLanguage: state => {\n const features = state.settings.gsubFeatures;\n const matching = features.find(f => f.tag === \"locl\");\n if (matching && matching.value) {\n return matching.selectedLanguage.htmlTag;\n }\n return \"\";\n },\n fontFeatureSettings: state => {\n return Settings.getStyleFromSettings(state.settings).fontFeatureSettings;\n },\n fontVariationSettings: state => {\n return Settings.getStyleFromSettings(state.settings).fontVariationSettings;\n },\n },\n\n mutations: {\n toggleSettingsPanel(state, { value } = { value: null }) {\n const val = value != null ? value : !state.settingsPanelVisible;\n state.settingsPanelVisible = val;\n },\n toggleContextualPanel(state, { value } = { value: null }) {\n const val = value != null ? value : !state.contextualPanelVisible;\n state.contextualPanelVisible = val;\n },\n\n fontLoadStart(state) {\n state.fontLoading = true;\n },\n\n fontLoadEnd(state) {\n state.fontLoading = false;\n },\n\n selectFont(state, { font, boldFont, italicFont, boldItalicFont, headerFont }) {\n if (font) {\n state.selectedFont = font;\n this.commit(\"mapFontFeatureSettings\");\n this.commit(\"mapFontVariationSettings\");\n }\n if (boldFont) {\n state.selectedBoldFont = boldFont;\n }\n if (italicFont) {\n state.selectedItalicFont = italicFont;\n }\n if (boldItalicFont) {\n state.selectedBoldItalicFont = boldItalicFont;\n }\n if (headerFont) {\n state.selectedHeaderFont = headerFont;\n }\n },\n\n mapFontFeatureSettings(state) {\n const font = state.selectedFont;\n function mergeFeatures(key) {\n const from = font[key], to = state.settings[key];\n\n to.forEach(f => {\n f.active = false; // change to getter maybe\n });\n from.forEach(f => {\n const matching = to.find(ff => ff.tag === f.tag);\n if (!matching) {\n to.push({\n ...f,\n value: opentypeFeatureDefaults.indexOf(f.tag) > -1,\n active: true,\n });\n }\n else {\n matching.active = true;\n if (f.tag === \"locl\") {\n matching.languages = f.languages;\n }\n else if (/ss\\d\\d/.test(f.tag)) {\n matching.uiName = f.uiName;\n }\n }\n });\n }\n mergeFeatures(\"gsubFeatures\");\n mergeFeatures(\"gposFeatures\");\n },\n\n updateGposFeature(state, { tag, value }) {\n const features = state.settings.gposFeatures;\n const matching = features.find(f => f.tag === tag);\n if (matching) {\n matching.value = value;\n }\n this.commit(\"updateSetting\");\n },\n\n updateGsubFeature(state, { tag, value }) {\n const features = state.settings.gsubFeatures;\n const matching = features.find(f => f.tag === tag);\n if (matching) {\n matching.value = value;\n }\n this.commit(\"updateSetting\");\n },\n\n updateLoclFeature(state, { selectedLanguage }) {\n const features = state.settings.gsubFeatures;\n const matching = features.find(f => f.tag === \"locl\");\n if (matching) {\n matching.selectedLanguage = selectedLanguage;\n }\n this.commit(\"updateSetting\");\n },\n\n mapFontVariationSettings(state) {\n const font = state.selectedFont;\n state.settings.variationAxes = font.variationAxes.map(a => {\n const matching = state.settings.variationAxes.find(aa => aa.tag === a.tag);\n return {\n ...a,\n value: matching ? matching.value : a.defaultValue,\n enabled: matching ? matching.enabled : true,\n displayName: a.name.en,\n };\n });\n },\n\n updateVariationAxis(state, { tag, value, enabled }) {\n const axis = state.settings.variationAxes.find(a => a.tag === tag);\n if (axis) {\n if (value != null) {\n axis.value = value;\n }\n if (enabled != null) {\n axis.enabled = enabled;\n }\n }\n this.commit(\"updateSetting\");\n },\n\n resetSettings(state) {\n //todo add font-specific settings\n const settings = Settings.getDefaults();\n Object.keys(settings).forEach(key => state.settings[key] = settings[key]);\n this.commit(\"computeParams\");\n this.commit(\"updateSetting\");\n },\n\n computeParams(state) {\n Object.keys(computedParams).forEach(key => {\n const paramFunction = computedParams[key];\n const newValue = paramFunction.call(state.settings);\n if (newValue !== state.settings[key]) {\n state.settings[key] = newValue;\n }\n });\n },\n\n updateSettings(state, options) {\n Object.keys(options).forEach(key => {\n const settings = state.settings;\n const definition = Settings.definitions[key];\n const value = options[key];\n if (true || !definition.validate || definition.validate(value, settings)) {\n if (key == \"fontSizeUnit\") {\n this.commit(\"convertFontSize\", { newUnit: value });\n }\n state.settings[key] = value;\n this.commit(\"updateSetting\");\n }\n else {\n // eslint-disable-next-line no-console\n console.log(`${value} is invalid for ${key}`)\n }\n });\n this.commit(\"computeParams\");\n },\n\n restoreSettings(state, { snapshot }) {\n state.settings = snapshot;\n this.commit(\"mapFontFeatureSettings\");\n this.commit(\"mapFontVariationSettings\");\n },\n\n animateSettings(state, { settings }) {\n if (settings) {\n state.animating = true;\n Object.keys(settings).forEach(k => {\n Vue.set(state.displayedSettings, k, settings[k]);\n });\n }\n else {\n state.animating = false;\n }\n },\n\n updateSetting() {\n // signalize update to subscriber\n },\n\n convertFontSize(state, { newUnit }) {\n const settings = state.settings;\n let decimals = String(settings.fontSizeStep).replace(/\\d+\\.?/, \"\").length;\n let newSize = convertLength({\n value: settings.fontSize,\n from: settings.fontSizeUnit,\n to: newUnit,\n decimals,\n });\n settings.fontSize = parseFloat(newSize);\n },\n },\n\n\n actions: {\n fontLoadStart({ commit }) {\n commit(\"fontLoadStart\");\n },\n\n fontLoadEnd({ commit }) {\n commit(\"fontLoadEnd\");\n },\n },\n})\n\nconfigureMediator(store);\n\nexport default store;\n","import Vue from \"vue\";\n\nVue.config.productionTip = false;\n\nimport Vuebar from \"vuebar\";\nVue.use(Vuebar);\n\nimport VueObserveVisibility from 'vue-observe-visibility'\nVue.use(VueObserveVisibility);\n\nimport VueWorker from 'vue-worker';\nVue.use(VueWorker);\n\nimport \"@/scss/styles.scss\";\nimport App from \"@/App.vue\";\n\nimport router from \"@/router\";\nimport store from '@/store';\n\nimport 'keen-ui/src/bootstrap';\n\nnew Vue({\n router,\n store,\n render: h => h(App),\n}).$mount(\"#app\");\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=style&index=0&id=78d0fe3c&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=style&index=0&id=78d0fe3c&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=style&index=0&id=a9235368&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=style&index=0&id=a9235368&lang=scss&scoped=true&\"","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"56d3d284d3b26bb5569a.worker.js\");\n};","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=style&index=0&id=76dead88&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=style&index=0&id=76dead88&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteLogo.vue?vue&type=style&index=0&id=33837896&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteLogo.vue?vue&type=style&index=0&id=33837896&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=style&index=0&id=a8ebd28a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=style&index=0&id=a8ebd28a&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=style&index=0&id=00f8f142&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=style&index=0&id=00f8f142&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=style&index=0&id=5d55f768&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=style&index=0&id=5d55f768&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=style&index=0&id=abb3f344&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=style&index=0&id=abb3f344&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=style&index=0&id=257cc006&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=style&index=0&id=257cc006&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=style&index=0&id=4d5c14db&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=style&index=0&id=4d5c14db&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=style&index=0&id=0dcbafa4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=style&index=0&id=0dcbafa4&lang=scss&scoped=true&\"","module.exports = [\n { name: \"Abaza\", opentypeTag: \"ABA \", htmlTag: \"abq\" },\n { name: \"Abkhazian\", opentypeTag: \"ABK \", htmlTag: \"ab\" },\n { name: \"Acholi\", opentypeTag: \"ACH \", htmlTag: \"ach\" },\n { name: \"Achi\", opentypeTag: \"ACR \", htmlTag: \"acr\" },\n { name: \"Adyghe\", opentypeTag: \"ADY \", htmlTag: \"ady\" },\n { name: \"Afrikaans\", opentypeTag: \"AFK \", htmlTag: \"af\" },\n { name: \"Afar\", opentypeTag: \"AFR \", htmlTag: \"aa\" },\n { name: \"Agaw\", opentypeTag: \"AGW \", htmlTag: \"ahg\" },\n { name: \"Aiton\", opentypeTag: \"AIO \", htmlTag: \"aio\" },\n { name: \"Akan\", opentypeTag: \"AKA \", htmlTag: \"ak\" },\n { name: \"Alsatian\", opentypeTag: \"ALS \", htmlTag: \"gsw\" },\n { name: \"Altai\", opentypeTag: \"ALT \", htmlTag: \"atv\" },\n { name: \"Amharic\", opentypeTag: \"AMH \", htmlTag: \"am\" },\n { name: \"Anglo-Saxon\", opentypeTag: \"ANG \", htmlTag: \"ang\" },\n { name: \"Phonetic transcription—Americanist conventions\", opentypeTag: \"APPH\" },\n { name: \"Arabic\", opentypeTag: \"ARA \", htmlTag: \"ar\" },\n { name: \"Aragonese\", opentypeTag: \"ARG \", htmlTag: \"an\" },\n { name: \"Aari\", opentypeTag: \"ARI \", htmlTag: \"aiw\" },\n { name: \"Rakhine\", opentypeTag: \"ARK \", htmlTag: \"mhv\" },\n { name: \"Assamese\", opentypeTag: \"ASM \", htmlTag: \"as\" },\n { name: \"Asturian\", opentypeTag: \"AST \", htmlTag: \"ast\" },\n { name: \"Athapaskan\", opentypeTag: \"ATH \", htmlTag: \"apk\" },\n { name: \"Avar\", opentypeTag: \"AVR \", htmlTag: \"av\" },\n { name: \"Awadhi\", opentypeTag: \"AWA \", htmlTag: \"awa\" },\n { name: \"Aymara\", opentypeTag: \"AYM \", htmlTag: \"ay\" },\n { name: \"Torki\", opentypeTag: \"AZB \", htmlTag: \"azb\" },\n { name: \"Azerbaijani\", opentypeTag: \"AZE \", htmlTag: \"az\" },\n { name: \"Badaga\", opentypeTag: \"BAD \", htmlTag: \"bfq\" },\n { name: \"Banda\", opentypeTag: \"BAD0\", htmlTag: \"bad\" },\n { name: \"Baghelkhandi\", opentypeTag: \"BAG \", htmlTag: \"bfy\" },\n { name: \"Balkar\", opentypeTag: \"BAL \", htmlTag: \"krc\" },\n { name: \"Balinese\", opentypeTag: \"BAN \", htmlTag: \"ban\" },\n { name: \"Bavarian\", opentypeTag: \"BAR \", htmlTag: \"bar\" },\n { name: \"Baulé\", opentypeTag: \"BAU \", htmlTag: \"bci\" },\n { name: \"Batak Toba\", opentypeTag: \"BBC \", htmlTag: \"bbc\" },\n { name: \"Berber\", opentypeTag: \"BBR \", htmlTag: \"ber\" },\n { name: \"Bench\", opentypeTag: \"BCH \", htmlTag: \"bcq\" },\n { name: \"Bible Cree\", opentypeTag: \"BCR \" },\n { name: \"Bandjalang\", opentypeTag: \"BDY \", htmlTag: \"bdy\" },\n { name: \"Belarussian\", opentypeTag: \"BEL \", htmlTag: \"be\" },\n { name: \"Bemba\", opentypeTag: \"BEM \", htmlTag: \"bem\" },\n { name: \"Bengali\", opentypeTag: \"BEN \", htmlTag: \"bn\" },\n { name: \"Haryanvi\", opentypeTag: \"BGC \", htmlTag: \"bgc\" },\n { name: \"Bagri\", opentypeTag: \"BGQ \", htmlTag: \"bgq\" },\n { name: \"Bulgarian\", opentypeTag: \"BGR \", htmlTag: \"bg\" },\n { name: \"Bhili\", opentypeTag: \"BHI \", htmlTag: \"bhi\" },\n { name: \"Bhojpuri\", opentypeTag: \"BHO \", htmlTag: \"bho\" },\n { name: \"Bikol\", opentypeTag: \"BIK \", htmlTag: \"bik\" },\n { name: \"Bilen\", opentypeTag: \"BIL \", htmlTag: \"byn\" },\n { name: \"Bislama\", opentypeTag: \"BIS \", htmlTag: \"bi\" },\n { name: \"Kanauji\", opentypeTag: \"BJJ \", htmlTag: \"bjj\" },\n { name: \"Blackfoot\", opentypeTag: \"BKF \", htmlTag: \"bla\" },\n { name: \"Baluchi\", opentypeTag: \"BLI \", htmlTag: \"bal\" },\n { name: \"Pa’o Karen\", opentypeTag: \"BLK \", htmlTag: \"blk\" },\n { name: \"Balante\", opentypeTag: \"BLN \", htmlTag: \"bjt\" },\n { name: \"Balti\", opentypeTag: \"BLT \", htmlTag: \"bft\" },\n { name: \"Bambara (Bamanankan)\", opentypeTag: \"BMB \", htmlTag: \"bm\" },\n { name: \"Bamileke\", opentypeTag: \"BML \" },\n { name: \"Bosnian\", opentypeTag: \"BOS \", htmlTag: \"bs\" },\n { name: \"Bishnupriya Manipuri\", opentypeTag: \"BPY \", htmlTag: \"bpy\" },\n { name: \"Breton\", opentypeTag: \"BRE \", htmlTag: \"br\" },\n { name: \"Brahui\", opentypeTag: \"BRH \", htmlTag: \"brh\" },\n { name: \"Braj Bhasha\", opentypeTag: \"BRI \", htmlTag: \"bra\" },\n { name: \"Burmese\", opentypeTag: \"BRM \", htmlTag: \"my\" },\n { name: \"Bodo\", opentypeTag: \"BRX \", htmlTag: \"brx\" },\n { name: \"Bashkir\", opentypeTag: \"BSH \", htmlTag: \"ba\" },\n { name: \"Burushaski\", opentypeTag: \"BSK \", htmlTag: \"bsk\" },\n { name: \"Beti\", opentypeTag: \"BTI \", htmlTag: \"btb\" },\n { name: \"Batak Simalungun\", opentypeTag: \"BTS \", htmlTag: \"bts\" },\n { name: \"Bugis\", opentypeTag: \"BUG \", htmlTag: \"bug\" },\n { name: \"Medumba\", opentypeTag: \"BYV \", htmlTag: \"byv\" },\n { name: \"Kaqchikel\", opentypeTag: \"CAK \", htmlTag: \"cak\" },\n { name: \"Catalan\", opentypeTag: \"CAT \", htmlTag: \"ca\" },\n { name: \"Zamboanga Chavacano\", opentypeTag: \"CBK \", htmlTag: \"cbk\" },\n { name: \"Chinantec\", opentypeTag: \"CCHN\", htmlTag: \"cco\" },\n { name: \"Cebuano\", opentypeTag: \"CEB \", htmlTag: \"ceb\" },\n { name: \"Chechen\", opentypeTag: \"CHE \", htmlTag: \"ce\" },\n { name: \"Chaha Gurage\", opentypeTag: \"CHG \", htmlTag: \"sgw\" },\n { name: \"Chattisgarhi\", opentypeTag: \"CHH \", htmlTag: \"hne\" },\n { name: \"Chichewa (Chewa, Nyanja)\", opentypeTag: \"CHI \", htmlTag: \"ny\" },\n { name: \"Chukchi\", opentypeTag: \"CHK \", htmlTag: \"ckt\" },\n { name: \"Chuukese\", opentypeTag: \"CHK0\", htmlTag: \"chk\" },\n { name: \"Choctaw\", opentypeTag: \"CHO \", htmlTag: \"cho\" },\n { name: \"Chipewyan\", opentypeTag: \"CHP \", htmlTag: \"chp\" },\n { name: \"Cherokee\", opentypeTag: \"CHR \", htmlTag: \"chr\" },\n { name: \"Chamorro\", opentypeTag: \"CHA \", htmlTag: \"ch\" },\n { name: \"Chuvash\", opentypeTag: \"CHU \", htmlTag: \"cv\" },\n { name: \"Cheyenne\", opentypeTag: \"CHY \", htmlTag: \"chy\" },\n { name: \"Chiga\", opentypeTag: \"CGG \", htmlTag: \"cgg\" },\n { name: \"Western Cham\", opentypeTag: \"CJA \", htmlTag: \"cja\" },\n { name: \"Eastern Cham\", opentypeTag: \"CJM \", htmlTag: \"cjm\" },\n { name: \"Comorian\", opentypeTag: \"CMR \", htmlTag: \"swb\" },\n { name: \"Coptic\", opentypeTag: \"COP \", htmlTag: \"cop\" },\n { name: \"Cornish\", opentypeTag: \"COR \", htmlTag: \"kw\" },\n { name: \"Corsican\", opentypeTag: \"COS \", htmlTag: \"co\" },\n { name: \"Creoles\", opentypeTag: \"CPP \", htmlTag: \"crp\" },\n { name: \"Cree\", opentypeTag: \"CRE \", htmlTag: \"cr\" },\n { name: \"Carrier\", opentypeTag: \"CRR \", htmlTag: \"crx\" },\n { name: \"Crimean Tatar\", opentypeTag: \"CRT \", htmlTag: \"crh\" },\n { name: \"Kashubian\", opentypeTag: \"CSB \", htmlTag: \"csb\" },\n { name: \"Church Slavonic\", opentypeTag: \"CSL \", htmlTag: \"cu\" },\n { name: \"Czech\", opentypeTag: \"CSY \", htmlTag: \"cs\" },\n { name: \"Chittagonian\", opentypeTag: \"CTG \", htmlTag: \"ctg\" },\n { name: \"San Blas Kuna\", opentypeTag: \"CUK \", htmlTag: \"cuk\" },\n { name: \"Danish\", opentypeTag: \"DAN \", htmlTag: \"da\" },\n { name: \"Dargwa\", opentypeTag: \"DAR \", htmlTag: \"dar\" },\n { name: \"Dayi\", opentypeTag: \"DAX \", htmlTag: \"dax\" },\n { name: \"Woods Cree\", opentypeTag: \"DCR \", htmlTag: \"cwd\" },\n { name: \"German\", opentypeTag: \"DEU \", htmlTag: \"de\" },\n { name: \"Dogri\", opentypeTag: \"DGO \", htmlTag: \"dgo\" },\n { name: \"Dogri\", opentypeTag: \"DGR \", htmlTag: \"doi\" },\n { name: \"Dhangu\", opentypeTag: \"DHG \", htmlTag: \"dhg\" },\n { name: \"Divehi (Dhivehi, Maldivian)\", opentypeTag: \"DHV (deprecated)\", htmlTag: \"dv\" },\n { name: \"Dimli\", opentypeTag: \"DIQ \", htmlTag: \"diq\" },\n { name: \"Divehi (Dhivehi, Maldivian)\", opentypeTag: \"DIV \", htmlTag: \"dv\" },\n { name: \"Zarma\", opentypeTag: \"DJR \", htmlTag: \"dje\" },\n { name: \"Djambarrpuyngu\", opentypeTag: \"DJR0\", htmlTag: \"djr\" },\n { name: \"Dangme\", opentypeTag: \"DNG \", htmlTag: \"ada\" },\n { name: \"Dan\", opentypeTag: \"DNJ \", htmlTag: \"dnj\" },\n { name: \"Dinka\", opentypeTag: \"DNK \", htmlTag: \"din\" },\n { name: \"Dari\", opentypeTag: \"DRI \", htmlTag: \"prs\" },\n { name: \"Dhuwal\", opentypeTag: \"DUJ \", htmlTag: \"duj\" },\n { name: \"Dungan\", opentypeTag: \"DUN \", htmlTag: \"dng\" },\n { name: \"Dzongkha\", opentypeTag: \"DZN \", htmlTag: \"dz\" },\n { name: \"Ebira\", opentypeTag: \"EBI \", htmlTag: \"igb\" },\n { name: \"Eastern Cree\", opentypeTag: \"ECR \", htmlTag: \"crj\" },\n { name: \"Edo\", opentypeTag: \"EDO \", htmlTag: \"bin\" },\n { name: \"Efik\", opentypeTag: \"EFI \", htmlTag: \"efi\" },\n { name: \"Greek\", opentypeTag: \"ELL \", htmlTag: \"el\" },\n { name: \"Eastern Maninkakan\", opentypeTag: \"EMK \", htmlTag: \"emk\" },\n { name: \"English\", opentypeTag: \"ENG \", htmlTag: \"en\" },\n { name: \"Erzya\", opentypeTag: \"ERZ \", htmlTag: \"myv\" },\n { name: \"Spanish\", opentypeTag: \"ESP \", htmlTag: \"es\" },\n { name: \"Central Yupik\", opentypeTag: \"ESU \", htmlTag: \"esu\" },\n { name: \"Estonian\", opentypeTag: \"ETI \", htmlTag: \"et\" },\n { name: \"Basque\", opentypeTag: \"EUQ \", htmlTag: \"eu\" },\n { name: \"Evenki\", opentypeTag: \"EVK \", htmlTag: \"evn\" },\n { name: \"Even\", opentypeTag: \"EVN \", htmlTag: \"eve\" },\n { name: \"Ewe\", opentypeTag: \"EWE \", htmlTag: \"ee\" },\n { name: \"French Antillean\", opentypeTag: \"FAN \", htmlTag: \"acf\" },\n { name: \"Fang\", opentypeTag: \"FAN0\", htmlTag: \"fan\" },\n { name: \"Persian\", opentypeTag: \"FAR \", htmlTag: \"fa\" },\n { name: \"Fanti\", opentypeTag: \"FAT \", htmlTag: \"fat\" },\n { name: \"Finnish\", opentypeTag: \"FIN \", htmlTag: \"fi\" },\n { name: \"Fijian\", opentypeTag: \"FJI \", htmlTag: \"fj\" },\n { name: \"Dutch (Flemish)\", opentypeTag: \"FLE \", htmlTag: \"vls\" },\n { name: \"Fe’fe’\", opentypeTag: \"FMP \", htmlTag: \"fmp\" },\n { name: \"Forest Nenets\", opentypeTag: \"FNE \", htmlTag: \"enf\" },\n { name: \"Fon\", opentypeTag: \"FON \", htmlTag: \"fon\" },\n { name: \"Faroese\", opentypeTag: \"FOS \", htmlTag: \"fo\" },\n { name: \"French\", opentypeTag: \"FRA \", htmlTag: \"fr\" },\n { name: \"Cajun French\", opentypeTag: \"FRC \", htmlTag: \"frc\" },\n { name: \"Frisian\", opentypeTag: \"FRI \", htmlTag: \"fy\" },\n { name: \"Friulian\", opentypeTag: \"FRL \", htmlTag: \"fur\" },\n { name: \"Arpitan\", opentypeTag: \"FRP \", htmlTag: \"frp\" },\n { name: \"Futa\", opentypeTag: \"FTA \", htmlTag: \"fuf\" },\n { name: \"Fulah\", opentypeTag: \"FUL \", htmlTag: \"ff\" },\n { name: \"Nigerian Fulfulde\", opentypeTag: \"FUV \", htmlTag: \"fuv\" },\n { name: \"Ga\", opentypeTag: \"GAD \", htmlTag: \"gaa\" },\n { name: \"Scottish Gaelic (Gaelic)\", opentypeTag: \"GAE \", htmlTag: \"gd\" },\n { name: \"Gagauz\", opentypeTag: \"GAG \", htmlTag: \"gag\" },\n { name: \"Galician\", opentypeTag: \"GAL \", htmlTag: \"gl\" },\n { name: \"Garshuni\", opentypeTag: \"GAR \" },\n { name: \"Garhwali\", opentypeTag: \"GAW \", htmlTag: \"gbm\" },\n { name: \"Geez\", opentypeTag: \"GEZ \", htmlTag: \"gez\" },\n { name: \"Githabul\", opentypeTag: \"GIH \", htmlTag: \"gih\" },\n { name: \"Gilyak\", opentypeTag: \"GIL \", htmlTag: \"niv\" },\n { name: \"Kiribati (Gilbertese)\", opentypeTag: \"GIL0\", htmlTag: \"gil\" },\n { name: \"Kpelle (Guinea)\", opentypeTag: \"GKP \", htmlTag: \"gkp\" },\n { name: \"Gilaki\", opentypeTag: \"GLK \", htmlTag: \"glk\" },\n { name: \"Gumuz\", opentypeTag: \"GMZ \", htmlTag: \"guk\" },\n { name: \"Gumatj\", opentypeTag: \"GNN \", htmlTag: \"gnn\" },\n { name: \"Gogo\", opentypeTag: \"GOG \", htmlTag: \"gog\" },\n { name: \"Gondi\", opentypeTag: \"GON \", htmlTag: \"gon\" },\n { name: \"Greenlandic\", opentypeTag: \"GRN \", htmlTag: \"kl\" },\n { name: \"Garo\", opentypeTag: \"GRO \", htmlTag: \"grt\" },\n { name: \"Guarani\", opentypeTag: \"GUA \", htmlTag: \"gn\" },\n { name: \"Wayuu\", opentypeTag: \"GUC \", htmlTag: \"guc\" },\n { name: \"Gupapuyngu\", opentypeTag: \"GUF \", htmlTag: \"guf\" },\n { name: \"Gujarati\", opentypeTag: \"GUJ \", htmlTag: \"gu\" },\n { name: \"Gusii\", opentypeTag: \"GUZ \", htmlTag: \"guz\" },\n { name: \"Haitian (Haitian Creole)\", opentypeTag: \"HAI \", htmlTag: \"ht\" },\n { name: \"Halam (Falam Chin)\", opentypeTag: \"HAL \", htmlTag: \"flm\" },\n { name: \"Harauti\", opentypeTag: \"HAR \", htmlTag: \"hoj\" },\n { name: \"Hausa\", opentypeTag: \"HAU \", htmlTag: \"ha\" },\n { name: \"Hawaiian\", opentypeTag: \"HAW \", htmlTag: \"haw\" },\n { name: \"Haya\", opentypeTag: \"HAY \", htmlTag: \"hay\" },\n { name: \"Hazaragi\", opentypeTag: \"HAZ \", htmlTag: \"haz\" },\n { name: \"Hammer-Banna\", opentypeTag: \"HBN \", htmlTag: \"amf\" },\n { name: \"Herero\", opentypeTag: \"HER \", htmlTag: \"hz\" },\n { name: \"Hiligaynon\", opentypeTag: \"HIL \", htmlTag: \"hil\" },\n { name: \"Hindi\", opentypeTag: \"HIN \", htmlTag: \"hi\" },\n { name: \"High Mari\", opentypeTag: \"HMA \", htmlTag: \"mrj\" },\n { name: \"Hmong\", opentypeTag: \"HMN \", htmlTag: \"hmn\" },\n { name: \"Hiri Motu\", opentypeTag: \"HMO \", htmlTag: \"ho\" },\n { name: \"Hindko\", opentypeTag: \"HND \", htmlTag: \"hno\" },\n { name: \"Ho\", opentypeTag: \"HO\", htmlTag: \"hoc\" },\n { name: \"Harari\", opentypeTag: \"HRI \", htmlTag: \"har\" },\n { name: \"Croatian\", opentypeTag: \"HRV \", htmlTag: \"hr\" },\n { name: \"Hungarian\", opentypeTag: \"HUN \", htmlTag: \"hu\" },\n { name: \"Armenian\", opentypeTag: \"HYE \", htmlTag: \"hy\" },\n { name: \"Armenian East\", opentypeTag: \"HYE0\", htmlTag: \"hy\" },\n { name: \"Iban\", opentypeTag: \"IBA \", htmlTag: \"iba\" },\n { name: \"Ibibio\", opentypeTag: \"IBB \", htmlTag: \"ibb\" },\n { name: \"Igbo\", opentypeTag: \"IBO \", htmlTag: \"ig\" },\n { name: \"Ijo languages\", opentypeTag: \"IJO \", htmlTag: \"ijc\" },\n { name: \"Ido\", opentypeTag: \"IDO \", htmlTag: \"io\" },\n { name: \"Interlingue\", opentypeTag: \"ILE \", htmlTag: \"ie\" },\n { name: \"Ilokano\", opentypeTag: \"ILO \", htmlTag: \"ilo\" },\n { name: \"Interlingua\", opentypeTag: \"INA \", htmlTag: \"ia\" },\n { name: \"Indonesian\", opentypeTag: \"IND \", htmlTag: \"id\" },\n { name: \"Ingush\", opentypeTag: \"ING \", htmlTag: \"inh\" },\n { name: \"Inuktitut\", opentypeTag: \"INU \", htmlTag: \"iu\" },\n { name: \"Inupiat\", opentypeTag: \"IPK \", htmlTag: \"ik\" },\n { name: \"Phonetic transcription—IPA conventions\", opentypeTag: \"IPPH\" },\n { name: \"Irish\", opentypeTag: \"IRI \", htmlTag: \"ga\" },\n { name: \"Irish Traditional\", opentypeTag: \"IRT \", htmlTag: \"ga\" },\n { name: \"Icelandic\", opentypeTag: \"ISL \", htmlTag: \"is\" },\n { name: \"Inari Sami\", opentypeTag: \"ISM \", htmlTag: \"smn\" },\n { name: \"Italian\", opentypeTag: \"ITA \", htmlTag: \"it\" },\n { name: \"Hebrew\", opentypeTag: \"IWR \", htmlTag: \"he\" },\n { name: \"Jamaican Creole\", opentypeTag: \"JAM \", htmlTag: \"jam\" },\n { name: \"Japanese\", opentypeTag: \"JAN \", htmlTag: \"ja\" },\n { name: \"Javanese\", opentypeTag: \"JAV \", htmlTag: \"jv\" },\n { name: \"Lojban\", opentypeTag: \"JBO \", htmlTag: \"jbo\" },\n { name: \"Krymchak\", opentypeTag: \"JCT \", htmlTag: \"jct\" },\n { name: \"Yiddish\", opentypeTag: \"JII \", htmlTag: \"yi\" },\n { name: \"Ladino\", opentypeTag: \"JUD \", htmlTag: \"lad\" },\n { name: \"Jula\", opentypeTag: \"JUL \", htmlTag: \"dyu\" },\n { name: \"Kabardian\", opentypeTag: \"KAB \", htmlTag: \"kbd\" },\n { name: \"Kabyle\", opentypeTag: \"KAB0\", htmlTag: \"kab\" },\n { name: \"Kachchi\", opentypeTag: \"KAC \", htmlTag: \"kfr\" },\n { name: \"Kalenjin\", opentypeTag: \"KAL \", htmlTag: \"kln\" },\n { name: \"Kannada\", opentypeTag: \"KAN \", htmlTag: \"kn\" },\n { name: \"Karachay\", opentypeTag: \"KAR \", htmlTag: \"krc\" },\n { name: \"Georgian\", opentypeTag: \"KAT \", htmlTag: \"ka\" },\n { name: \"Kazakh\", opentypeTag: \"KAZ \", htmlTag: \"kk\" },\n { name: \"Makonde\", opentypeTag: \"KDE \", htmlTag: \"kde\" },\n { name: \"Kabuverdianu (Crioulo)\", opentypeTag: \"KEA \", htmlTag: \"kea\" },\n { name: \"Kebena\", opentypeTag: \"KEB \", htmlTag: \"ktb\" },\n { name: \"Kekchi\", opentypeTag: \"KEK \", htmlTag: \"kek\" },\n { name: \"Khutsuri Georgian\", opentypeTag: \"KGE \", htmlTag: \"ka\" },\n { name: \"Khakass\", opentypeTag: \"KHA \", htmlTag: \"kjh\" },\n { name: \"Khanty-Kazim\", opentypeTag: \"KHK \", htmlTag: \"kca\" },\n { name: \"Khmer\", opentypeTag: \"KHM \", htmlTag: \"km\" },\n { name: \"Khanty-Shurishkar\", opentypeTag: \"KHS \", htmlTag: \"kca\" },\n { name: \"Khamti Shan\", opentypeTag: \"KHT \", htmlTag: \"kht\" },\n { name: \"Khanty-Vakhi\", opentypeTag: \"KHV \", htmlTag: \"kca\" },\n { name: \"Khowar\", opentypeTag: \"KHW \", htmlTag: \"khw\" },\n { name: \"Kikuyu (Gikuyu)\", opentypeTag: \"KIK \", htmlTag: \"ki\" },\n { name: \"Kirghiz (Kyrgyz)\", opentypeTag: \"KIR \", htmlTag: \"ky\" },\n { name: \"Kisii\", opentypeTag: \"KIS \", htmlTag: \"kqs\" },\n { name: \"Kirmanjki\", opentypeTag: \"KIU \", htmlTag: \"kiu\" },\n { name: \"Southern Kiwai\", opentypeTag: \"KJD \", htmlTag: \"kjd\" },\n { name: \"Eastern Pwo Karen\", opentypeTag: \"KJP \", htmlTag: \"kjp\" },\n { name: \"Bumthangkha\", opentypeTag: \"KJZ \", htmlTag: \"kjz\" },\n { name: \"Kokni\", opentypeTag: \"KKN \", htmlTag: \"kex\" },\n { name: \"Kalmyk\", opentypeTag: \"KLM \", htmlTag: \"xal\" },\n { name: \"Kamba\", opentypeTag: \"KMB \", htmlTag: \"kam\" },\n { name: \"Kumaoni\", opentypeTag: \"KMN \", htmlTag: \"kfy\" },\n { name: \"Komo\", opentypeTag: \"KMO \", htmlTag: \"kmw\" },\n { name: \"Komso\", opentypeTag: \"KMS \", htmlTag: \"kxc\" },\n { name: \"Khorasani Turkic\", opentypeTag: \"KMZ \", htmlTag: \"kmz\" },\n { name: \"Kanuri\", opentypeTag: \"KNR \", htmlTag: \"kr\" },\n { name: \"Kodagu\", opentypeTag: \"KOD \", htmlTag: \"kfa\" },\n { name: \"Korean Old Hangul\", opentypeTag: \"KOH \", htmlTag: \"okm\" },\n { name: \"Konkani\", opentypeTag: \"KOK \", htmlTag: \"kok\" },\n { name: \"Kikongo\", opentypeTag: \"KON \", htmlTag: \"ktu\" },\n { name: \"Komi\", opentypeTag: \"KOM \", htmlTag: \"kv\" },\n { name: \"Kongo\", opentypeTag: \"KON0\", htmlTag: \"kg\" },\n { name: \"Komi-Permyak\", opentypeTag: \"KOP \", htmlTag: \"koi\" },\n { name: \"Korean\", opentypeTag: \"KOR \", htmlTag: \"ko\" },\n { name: \"Kosraean\", opentypeTag: \"KOS \", htmlTag: \"kos\" },\n { name: \"Komi-Zyrian\", opentypeTag: \"KOZ \", htmlTag: \"kpv\" },\n { name: \"Kpelle\", opentypeTag: \"KPL \", htmlTag: \"kpe\" },\n { name: \"Krio\", opentypeTag: \"KRI \", htmlTag: \"kri\" },\n { name: \"Karakalpak\", opentypeTag: \"KRK \", htmlTag: \"kaa\" },\n { name: \"Karelian\", opentypeTag: \"KRL \", htmlTag: \"krl\" },\n { name: \"Karaim\", opentypeTag: \"KRM \", htmlTag: \"kdr\" },\n { name: \"Karen\", opentypeTag: \"KRN \", htmlTag: \"kar\" },\n { name: \"Koorete\", opentypeTag: \"KRT \", htmlTag: \"kqy\" },\n { name: \"Kashmiri\", opentypeTag: \"KSH \", htmlTag: \"ks\" },\n { name: \"Ripuarian\", opentypeTag: \"KSH0\", htmlTag: \"ksh\" },\n { name: \"Khasi\", opentypeTag: \"KSI \", htmlTag: \"kha\" },\n { name: \"Kildin Sami\", opentypeTag: \"KSM \", htmlTag: \"sjd\" },\n { name: \"S’gaw Karen\", opentypeTag: \"KSW \", htmlTag: \"ksw\" },\n { name: \"Kuanyama\", opentypeTag: \"KUA \", htmlTag: \"kj\" },\n { name: \"Kui\", opentypeTag: \"KUI \", htmlTag: \"kxu\" },\n { name: \"Kulvi\", opentypeTag: \"KUL \", htmlTag: \"kfx\" },\n { name: \"Kumyk\", opentypeTag: \"KUM \", htmlTag: \"kum\" },\n { name: \"Kurdish\", opentypeTag: \"KUR \", htmlTag: \"ku\" },\n { name: \"Kurukh\", opentypeTag: \"KUU \", htmlTag: \"kru\" },\n { name: \"Kuy\", opentypeTag: \"KUY \", htmlTag: \"kdt\" },\n { name: \"Koryak\", opentypeTag: \"KYK \", htmlTag: \"kpy\" },\n { name: \"Western Kayah\", opentypeTag: \"KYU \", htmlTag: \"kyu\" },\n { name: \"Ladin\", opentypeTag: \"LAD \", htmlTag: \"lld\" },\n { name: \"Lahuli\", opentypeTag: \"LAH \", htmlTag: \"bfu\" },\n { name: \"Lak\", opentypeTag: \"LAK \", htmlTag: \"lbe\" },\n { name: \"Lambani\", opentypeTag: \"LAM \", htmlTag: \"lmn\" },\n { name: \"Lao\", opentypeTag: \"LAO \", htmlTag: \"lo\" },\n { name: \"Latin\", opentypeTag: \"LAT \", htmlTag: \"la\" },\n { name: \"Laz\", opentypeTag: \"LAZ \", htmlTag: \"lzz\" },\n { name: \"L-Cree\", opentypeTag: \"LCR \", htmlTag: \"crm\" },\n { name: \"Ladakhi\", opentypeTag: \"LDK \", htmlTag: \"lbj\" },\n { name: \"Lezgi\", opentypeTag: \"LEZ \", htmlTag: \"lez\" },\n { name: \"Ligurian\", opentypeTag: \"LIJ \", htmlTag: \"lij\" },\n { name: \"Limburgish\", opentypeTag: \"LIM \", htmlTag: \"li\" },\n { name: \"Lingala\", opentypeTag: \"LIN \", htmlTag: \"ln\" },\n { name: \"Lisu\", opentypeTag: \"LIS \", htmlTag: \"lis\" },\n { name: \"Lampung\", opentypeTag: \"LJP \", htmlTag: \"ljp\" },\n { name: \"Laki\", opentypeTag: \"LKI \", htmlTag: \"lki\" },\n { name: \"Low Mari\", opentypeTag: \"LMA \", htmlTag: \"mhr\" },\n { name: \"Limbu\", opentypeTag: \"LMB \", htmlTag: \"lif\" },\n { name: \"Lombard\", opentypeTag: \"LMO \", htmlTag: \"lmo\" },\n { name: \"Lomwe\", opentypeTag: \"LMW \", htmlTag: \"ngl\" },\n { name: \"Loma\", opentypeTag: \"LOM \", htmlTag: \"lom\" },\n { name: \"Luri\", opentypeTag: \"LRC \", htmlTag: \"lrc\" },\n { name: \"Lower Sorbian\", opentypeTag: \"LSB \", htmlTag: \"dsb\" },\n { name: \"Lule Sami\", opentypeTag: \"LSM \", htmlTag: \"smj\" },\n { name: \"Lithuanian\", opentypeTag: \"LTH \", htmlTag: \"lt\" },\n { name: \"Luxembourgish\", opentypeTag: \"LTZ \", htmlTag: \"lb\" },\n { name: \"Luba-Lulua\", opentypeTag: \"LUA \", htmlTag: \"lua\" },\n { name: \"Luba-Katanga\", opentypeTag: \"LUB \", htmlTag: \"lu\" },\n { name: \"Ganda\", opentypeTag: \"LUG \", htmlTag: \"lg\" },\n { name: \"Luyia\", opentypeTag: \"LUH \", htmlTag: \"luy\" },\n { name: \"Luo\", opentypeTag: \"LUO \", htmlTag: \"luo\" },\n { name: \"Latvian\", opentypeTag: \"LVI \", htmlTag: \"lv\" },\n { name: \"Madura\", opentypeTag: \"MAD \", htmlTag: \"mad\" },\n { name: \"Magahi\", opentypeTag: \"MAG \", htmlTag: \"mag\" },\n { name: \"Marshallese\", opentypeTag: \"MAH \", htmlTag: \"mh\" },\n { name: \"Majang\", opentypeTag: \"MAJ \", htmlTag: \"mpe\" },\n { name: \"Makhuwa\", opentypeTag: \"MAK \", htmlTag: \"vmw\" },\n { name: \"Malayalam\", opentypeTag: \"MAL \", htmlTag: \"ml\" },\n { name: \"Mam\", opentypeTag: \"MAM \", htmlTag: \"mam\" },\n { name: \"Mansi\", opentypeTag: \"MAN \", htmlTag: \"mns\" },\n { name: \"Mapudungun\", opentypeTag: \"MAP \", htmlTag: \"arn\" },\n { name: \"Marathi\", opentypeTag: \"MAR \", htmlTag: \"mr\" },\n { name: \"Marwari\", opentypeTag: \"MAW \", htmlTag: \"mwr\" },\n { name: \"Mbundu\", opentypeTag: \"MBN \", htmlTag: \"kmb\" },\n { name: \"Mbo\", opentypeTag: \"MBO \", htmlTag: \"mbo\" },\n { name: \"Manchu\", opentypeTag: \"MCH \", htmlTag: \"mnc\" },\n { name: \"Moose Cree\", opentypeTag: \"MCR \", htmlTag: \"crm\" },\n { name: \"Mende\", opentypeTag: \"MDE \", htmlTag: \"men\" },\n { name: \"Mandar\", opentypeTag: \"MDR \", htmlTag: \"mdr\" },\n { name: \"Me’en\", opentypeTag: \"MEN \", htmlTag: \"mym\" },\n { name: \"Meru\", opentypeTag: \"MER \", htmlTag: \"mer\" },\n { name: \"Pattani Malay\", opentypeTag: \"MFA \", htmlTag: \"mfa\" },\n { name: \"Morisyen\", opentypeTag: \"MFE \", htmlTag: \"mfe\" },\n { name: \"Minangkabau\", opentypeTag: \"MIN \", htmlTag: \"min\" },\n { name: \"Mizo\", opentypeTag: \"MIZ \", htmlTag: \"lus\" },\n { name: \"Macedonian\", opentypeTag: \"MKD \", htmlTag: \"mk\" },\n { name: \"Makasar\", opentypeTag: \"MKR \", htmlTag: \"mak\" },\n { name: \"Kituba\", opentypeTag: \"MKW \", htmlTag: \"mkw\" },\n { name: \"Male\", opentypeTag: \"MLE \", htmlTag: \"mdy\" },\n { name: \"Malagasy\", opentypeTag: \"MLG \", htmlTag: \"mg\" },\n { name: \"Malinke\", opentypeTag: \"MLN \", htmlTag: \"mlq\" },\n { name: \"Malayalam Reformed\", opentypeTag: \"MLR \", htmlTag: \"ml\" },\n { name: \"Malay\", opentypeTag: \"MLY \", htmlTag: \"ms\" },\n { name: \"Mandinka\", opentypeTag: \"MND \", htmlTag: \"mnk\" },\n { name: \"Mongolian\", opentypeTag: \"MNG \", htmlTag: \"mn\" },\n { name: \"Manipuri\", opentypeTag: \"MNI \", htmlTag: \"mni\" },\n { name: \"Maninka\", opentypeTag: \"MNK \", htmlTag: \"man\" },\n { name: \"Manx\", opentypeTag: \"MNX \", htmlTag: \"gv\" },\n { name: \"Mohawk\", opentypeTag: \"MOH \", htmlTag: \"moh\" },\n { name: \"Moksha\", opentypeTag: \"MOK \", htmlTag: \"mdf\" },\n { name: \"Moldavian\", opentypeTag: \"MOL \", htmlTag: \"mol\" },\n { name: \"Mon\", opentypeTag: \"MON \", htmlTag: \"mnw\" },\n { name: \"Moroccan\", opentypeTag: \"MOR \" },\n { name: \"Mossi\", opentypeTag: \"MOS \", htmlTag: \"mos\" },\n { name: \"Maori\", opentypeTag: \"MRI \", htmlTag: \"mi\" },\n { name: \"Maithili\", opentypeTag: \"MTH \", htmlTag: \"mai\" },\n { name: \"Maltese\", opentypeTag: \"MTS \", htmlTag: \"mt\" },\n { name: \"Mundari\", opentypeTag: \"MUN \", htmlTag: \"unr\" },\n { name: \"Muscogee\", opentypeTag: \"MUS \", htmlTag: \"mus\" },\n { name: \"Mirandese\", opentypeTag: \"MWL \", htmlTag: \"mwl\" },\n { name: \"Hmong Daw\", opentypeTag: \"MWW \", htmlTag: \"mww\" },\n { name: \"Mayan\", opentypeTag: \"MYN \", htmlTag: \"myn\" },\n { name: \"Mazanderani\", opentypeTag: \"MZN \", htmlTag: \"mzn\" },\n { name: \"Naga-Assamese\", opentypeTag: \"NAG \", htmlTag: \"nag\" },\n { name: \"Nahuatl\", opentypeTag: \"NAH \", htmlTag: \"nah\" },\n { name: \"Nanai\", opentypeTag: \"NAN \", htmlTag: \"gld\" },\n { name: \"Neapolitan\", opentypeTag: \"NAP \", htmlTag: \"nap\" },\n { name: \"Naskapi\", opentypeTag: \"NAS \", htmlTag: \"nsk\" },\n { name: \"Nauruan\", opentypeTag: \"NAU \", htmlTag: \"na\" },\n { name: \"Navajo\", opentypeTag: \"NAV \", htmlTag: \"nv\" },\n { name: \"N-Cree\", opentypeTag: \"NCR \", htmlTag: \"csw\" },\n { name: \"Ndebele\", opentypeTag: \"NDB \", htmlTag: \"nr\" },\n { name: \"Ndau\", opentypeTag: \"NDC \", htmlTag: \"ndc\" },\n { name: \"Ndonga\", opentypeTag: \"NDG \", htmlTag: \"ng\" },\n { name: \"Low Saxon\", opentypeTag: \"NDS \", htmlTag: \"nds\" },\n { name: \"Nepali\", opentypeTag: \"NEP \", htmlTag: \"ne\" },\n { name: \"Newari\", opentypeTag: \"NEW \", htmlTag: \"new\" },\n { name: \"Ngbaka\", opentypeTag: \"NGA \", htmlTag: \"nga\" },\n { name: \"Nagari\", opentypeTag: \"NGR \" },\n { name: \"Norway House Cree\", opentypeTag: \"NHC \", htmlTag: \"csw\" },\n { name: \"Nisi\", opentypeTag: \"NIS \", htmlTag: \"dap\" },\n { name: \"Niuean\", opentypeTag: \"NIU \", htmlTag: \"niu\" },\n { name: \"Nyankole\", opentypeTag: \"NKL \", htmlTag: \"nyn\" },\n { name: \"N’Ko\", opentypeTag: \"NKO \", htmlTag: \"nqo\" },\n { name: \"Dutch\", opentypeTag: \"NLD \", htmlTag: \"nl\" },\n { name: \"Nimadi\", opentypeTag: \"NOE \", htmlTag: \"noe\" },\n { name: \"Nogai\", opentypeTag: \"NOG \", htmlTag: \"nog\" },\n { name: \"Norwegian\", opentypeTag: \"NOR \", htmlTag: \"nb\" },\n { name: \"Novial\", opentypeTag: \"NOV \", htmlTag: \"nov\" },\n { name: \"Northern Sami\", opentypeTag: \"NSM \", htmlTag: \"se\" },\n { name: \"Sotho, Northern\", opentypeTag: \"NSO \", htmlTag: \"nso\" },\n { name: \"Northern Tai\", opentypeTag: \"NTA \", htmlTag: \"nod\" },\n { name: \"Esperanto\", opentypeTag: \"NTO \", htmlTag: \"eo\" },\n { name: \"Nyamwezi\", opentypeTag: \"NYM \", htmlTag: \"nym\" },\n { name: \"Norwegian Nynorsk (Nynorsk, Norwegian)\", opentypeTag: \"NYN \", htmlTag: \"nn\" },\n { name: \"Mbembe Tigon\", opentypeTag: \"NZA \", htmlTag: \"nza\" },\n { name: \"Occitan\", opentypeTag: \"OCI \", htmlTag: \"oc\" },\n { name: \"Oji-Cree\", opentypeTag: \"OCR \", htmlTag: \"ojs\" },\n { name: \"Ojibway\", opentypeTag: \"OJB \", htmlTag: \"oj\" },\n { name: \"Odia (formerly Oriya)\", opentypeTag: \"ORI \", htmlTag: \"or\" },\n { name: \"Oromo\", opentypeTag: \"ORO \", htmlTag: \"om\" },\n { name: \"Ossetian\", opentypeTag: \"OSS \", htmlTag: \"os\" },\n { name: \"Palestinian Aramaic\", opentypeTag: \"PAA \", htmlTag: \"sam\" },\n { name: \"Pangasinan\", opentypeTag: \"PAG \", htmlTag: \"pag\" },\n { name: \"Pali\", opentypeTag: \"PAL \", htmlTag: \"pi\" },\n { name: \"Pampangan\", opentypeTag: \"PAM \", htmlTag: \"pam\" },\n { name: \"Punjabi\", opentypeTag: \"PAN \", htmlTag: \"pa\" },\n { name: \"Palpa\", opentypeTag: \"PAP \", htmlTag: \"plp\" },\n { name: \"Papiamentu\", opentypeTag: \"PAP0\", htmlTag: \"pap\" },\n { name: \"Pashto\", opentypeTag: \"PAS \", htmlTag: \"ps\" },\n { name: \"Palauan\", opentypeTag: \"PAU \", htmlTag: \"pau\" },\n { name: \"Bouyei\", opentypeTag: \"PCC \", htmlTag: \"pcc\" },\n { name: \"Picard\", opentypeTag: \"PCD \", htmlTag: \"pcd\" },\n { name: \"Pennsylvania German\", opentypeTag: \"PDC \", htmlTag: \"pdc\" },\n { name: \"Polytonic Greek\", opentypeTag: \"PGR \", htmlTag: \"el\" },\n { name: \"Phake\", opentypeTag: \"PHK \", htmlTag: \"phk\" },\n { name: \"Norfolk\", opentypeTag: \"PIH \", htmlTag: \"pih\" },\n { name: \"Filipino\", opentypeTag: \"PIL \", htmlTag: \"fil\" },\n { name: \"Palaung\", opentypeTag: \"PLG \", htmlTag: \"pce\" },\n { name: \"Polish\", opentypeTag: \"PLK \", htmlTag: \"pl\" },\n { name: \"Piemontese\", opentypeTag: \"PMS \", htmlTag: \"pms\" },\n { name: \"Western Panjabi\", opentypeTag: \"PNB \", htmlTag: \"pnb\" },\n { name: \"Pocomchi\", opentypeTag: \"POH \", htmlTag: \"poh\" },\n { name: \"Pohnpeian\", opentypeTag: \"PON \", htmlTag: \"pon\" },\n { name: \"Provençal / Old Provençal\", opentypeTag: \"PRO \", htmlTag: \"pro\" },\n { name: \"Portuguese\", opentypeTag: \"PTG \", htmlTag: \"pt\" },\n { name: \"Western Pwo Karen\", opentypeTag: \"PWO \", htmlTag: \"pwo\" },\n { name: \"Chin\", opentypeTag: \"QIN \", htmlTag: \"bgr\" },\n { name: \"K’iche’\", opentypeTag: \"QUC \", htmlTag: \"quc\" },\n { name: \"Quechua (Bolivia)\", opentypeTag: \"QUH \", htmlTag: \"quh\" },\n { name: \"Quechua\", opentypeTag: \"QUZ \", htmlTag: \"quz\" },\n { name: \"Quechua (Ecuador)\", opentypeTag: \"QVI \", htmlTag: \"qvi\" },\n { name: \"Quechua (Peru)\", opentypeTag: \"QWH \", htmlTag: \"qwh\" },\n { name: \"Rajasthani\", opentypeTag: \"RAJ \", htmlTag: \"raj\" },\n { name: \"Rarotongan\", opentypeTag: \"RAR \", htmlTag: \"rar\" },\n { name: \"Russian Buriat\", opentypeTag: \"RBU \", htmlTag: \"bxr\" },\n { name: \"R-Cree\", opentypeTag: \"RCR \", htmlTag: \"atj\" },\n { name: \"Rejang\", opentypeTag: \"REJ \", htmlTag: \"rej\" },\n { name: \"Riang\", opentypeTag: \"RIA \", htmlTag: \"ria\" },\n { name: \"Tarifit\", opentypeTag: \"RIF \", htmlTag: \"rif\" },\n { name: \"Ritarungo\", opentypeTag: \"RIT \", htmlTag: \"rit\" },\n { name: \"Arakwal\", opentypeTag: \"RKW \", htmlTag: \"rkw\" },\n { name: \"Romansh\", opentypeTag: \"RMS \", htmlTag: \"rm\" },\n { name: \"Vlax Romani\", opentypeTag: \"RMY \", htmlTag: \"rmy\" },\n { name: \"Romanian\", opentypeTag: \"ROM \", htmlTag: \"ro\" },\n { name: \"Romany\", opentypeTag: \"ROY \", htmlTag: \"rom\" },\n { name: \"Rusyn\", opentypeTag: \"RSY \", htmlTag: \"rue\" },\n { name: \"Rotuman\", opentypeTag: \"RTM \", htmlTag: \"rtm\" },\n { name: \"Kinyarwanda\", opentypeTag: \"RUA \", htmlTag: \"rw\" },\n { name: \"Rundi\", opentypeTag: \"RUN \", htmlTag: \"rn\" },\n { name: \"Aromanian\", opentypeTag: \"RUP \", htmlTag: \"rup\" },\n { name: \"Russian\", opentypeTag: \"RUS \", htmlTag: \"ru\" },\n { name: \"Sadri\", opentypeTag: \"SAD \", htmlTag: \"sck\" },\n { name: \"Sanskrit\", opentypeTag: \"SAN \", htmlTag: \"sa\" },\n { name: \"Sasak\", opentypeTag: \"SAS \", htmlTag: \"sas\" },\n { name: \"Santali\", opentypeTag: \"SAT \", htmlTag: \"sat\" },\n { name: \"Sayisi\", opentypeTag: \"SAY \", htmlTag: \"chp\" },\n { name: \"Sicilian\", opentypeTag: \"SCN \", htmlTag: \"scn\" },\n { name: \"Scots\", opentypeTag: \"SCO \", htmlTag: \"sco\" },\n { name: \"Sekota\", opentypeTag: \"SEK \", htmlTag: \"xan\" },\n { name: \"Selkup\", opentypeTag: \"SEL \", htmlTag: \"sel\" },\n { name: \"Old Irish\", opentypeTag: \"SGA \", htmlTag: \"sga\" },\n { name: \"Sango\", opentypeTag: \"SGO \", htmlTag: \"sg\" },\n { name: \"Samogitian\", opentypeTag: \"SGS \", htmlTag: \"sgs\" },\n { name: \"Tachelhit\", opentypeTag: \"SHI \", htmlTag: \"shi\" },\n { name: \"Shan\", opentypeTag: \"SHN \", htmlTag: \"shn\" },\n { name: \"Sibe\", opentypeTag: \"SIB \", htmlTag: \"sjo\" },\n { name: \"Sidamo\", opentypeTag: \"SID \", htmlTag: \"sid\" },\n { name: \"Silte Gurage\", opentypeTag: \"SIG \", htmlTag: \"xst\" },\n { name: \"Skolt Sami\", opentypeTag: \"SKS \", htmlTag: \"sms\" },\n { name: \"Slovak\", opentypeTag: \"SKY \", htmlTag: \"sk\" },\n { name: \"North Slavey\", opentypeTag: \"SCS \", htmlTag: \"scs\" },\n { name: \"Slavey\", opentypeTag: \"SLA \", htmlTag: \"scs\" },\n { name: \"Slovenian\", opentypeTag: \"SLV \", htmlTag: \"sl\" },\n { name: \"Somali\", opentypeTag: \"SML \", htmlTag: \"so\" },\n { name: \"Samoan\", opentypeTag: \"SMO \", htmlTag: \"sm\" },\n { name: \"Sena\", opentypeTag: \"SNA \", htmlTag: \"seh\" },\n { name: \"Shona\", opentypeTag: \"SNA0\", htmlTag: \"sn\" },\n { name: \"Sindhi\", opentypeTag: \"SND \", htmlTag: \"sd\" },\n { name: \"Sinhala (Sinhalese)\", opentypeTag: \"SNH \", htmlTag: \"si\" },\n { name: \"Soninke\", opentypeTag: \"SNK \", htmlTag: \"snk\" },\n { name: \"Sodo Gurage\", opentypeTag: \"SOG \", htmlTag: \"gru\" },\n { name: \"Songe\", opentypeTag: \"SOP \", htmlTag: \"sop\" },\n { name: \"Sotho, Southern\", opentypeTag: \"SOT \", htmlTag: \"st\" },\n { name: \"Albanian\", opentypeTag: \"SQI \", htmlTag: \"sq\" },\n { name: \"Serbian\", opentypeTag: \"SRB \", htmlTag: \"sr\" },\n { name: \"Sardinian\", opentypeTag: \"SRD \", htmlTag: \"sc\" },\n { name: \"Saraiki\", opentypeTag: \"SRK \", htmlTag: \"skr\" },\n { name: \"Serer\", opentypeTag: \"SRR \", htmlTag: \"srr\" },\n { name: \"South Slavey\", opentypeTag: \"SSL \", htmlTag: \"xsl\" },\n { name: \"Southern Sami\", opentypeTag: \"SSM \", htmlTag: \"sma\" },\n { name: \"Saterland Frisian\", opentypeTag: \"STQ \", htmlTag: \"stq\" },\n { name: \"Sukuma\", opentypeTag: \"SUK \", htmlTag: \"suk\" },\n { name: \"Sundanese\", opentypeTag: \"SUN \", htmlTag: \"su\" },\n { name: \"Suri\", opentypeTag: \"SUR \", htmlTag: \"suq\" },\n { name: \"Svan\", opentypeTag: \"SVA \", htmlTag: \"sva\" },\n { name: \"Swedish\", opentypeTag: \"SVE \", htmlTag: \"sv\" },\n { name: \"Swadaya Aramaic\", opentypeTag: \"SWA \", htmlTag: \"aii\" },\n { name: \"Swahili\", opentypeTag: \"SWK \", htmlTag: \"sw\" },\n { name: \"Swati\", opentypeTag: \"SWZ \", htmlTag: \"ss\" },\n { name: \"Sutu\", opentypeTag: \"SXT \", htmlTag: \"ngo\" },\n { name: \"Upper Saxon\", opentypeTag: \"SXU \", htmlTag: \"sxu\" },\n { name: \"Sylheti\", opentypeTag: \"SYL \", htmlTag: \"syl\" },\n { name: \"Syriac\", opentypeTag: \"SYR \", htmlTag: \"aii\" },\n { name: \"Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')\", opentypeTag: \"SYRE\", htmlTag: \"syc\" },\n { name: \"Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')\", opentypeTag: \"SYRJ\", htmlTag: \"syc\" },\n { name: \"Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')\", opentypeTag: \"SYRN\", htmlTag: \"syc\" },\n { name: \"Silesian\", opentypeTag: \"SZL \", htmlTag: \"szl\" },\n { name: \"Tabasaran\", opentypeTag: \"TAB \", htmlTag: \"tab\" },\n { name: \"Tajiki\", opentypeTag: \"TAJ \", htmlTag: \"tg\" },\n { name: \"Tamil\", opentypeTag: \"TAM \", htmlTag: \"ta\" },\n { name: \"Tatar\", opentypeTag: \"TAT \", htmlTag: \"tt\" },\n { name: \"TH-Cree\", opentypeTag: \"TCR \", htmlTag: \"cwd\" },\n { name: \"Dehong Dai\", opentypeTag: \"TDD \", htmlTag: \"tdd\" },\n { name: \"Telugu\", opentypeTag: \"TEL \", htmlTag: \"te\" },\n { name: \"Tetum\", opentypeTag: \"TET \", htmlTag: \"tet\" },\n { name: \"Tagalog\", opentypeTag: \"TGL \", htmlTag: \"tl\" },\n { name: \"Tongan\", opentypeTag: \"TGN \", htmlTag: \"to\" },\n { name: \"Tigre\", opentypeTag: \"TGR \", htmlTag: \"tig\" },\n { name: \"Tigrinya\", opentypeTag: \"TGY \", htmlTag: \"ti\" },\n { name: \"Thai\", opentypeTag: \"THA \", htmlTag: \"th\" },\n { name: \"Tahitian\", opentypeTag: \"THT \", htmlTag: \"ty\" },\n { name: \"Tibetan\", opentypeTag: \"TIB \", htmlTag: \"bo\" },\n { name: \"Tiv\", opentypeTag: \"TIV \", htmlTag: \"tiv\" },\n { name: \"Turkmen\", opentypeTag: \"TKM \", htmlTag: \"tk\" },\n { name: \"Tamashek\", opentypeTag: \"TMH \", htmlTag: \"tmh\" },\n { name: \"Temne\", opentypeTag: \"TMN \", htmlTag: \"tem\" },\n { name: \"Tswana\", opentypeTag: \"TNA \", htmlTag: \"tn\" },\n { name: \"Tundra Nenets\", opentypeTag: \"TNE \", htmlTag: \"enh\" },\n { name: \"Tonga\", opentypeTag: \"TNG \", htmlTag: \"toi\" },\n { name: \"Todo\", opentypeTag: \"TOD \", htmlTag: \"xal\" },\n { name: \"Toma\", opentypeTag: \"TOD0\", htmlTag: \"tod\" },\n { name: \"Tok Pisin\", opentypeTag: \"TPI \", htmlTag: \"tpi\" },\n { name: \"Turkish\", opentypeTag: \"TRK \", htmlTag: \"tr\" },\n { name: \"Tsonga\", opentypeTag: \"TSG \", htmlTag: \"ts\" },\n { name: \"Tshangla\", opentypeTag: \"TSJ \", htmlTag: \"tsj\" },\n { name: \"Turoyo Aramaic\", opentypeTag: \"TUA \", htmlTag: \"tru\" },\n { name: \"Tulu\", opentypeTag: \"TUM \", htmlTag: \"tum\" },\n { name: \"Tumbuka\", opentypeTag: \"TUL \", htmlTag: \"tcy\" },\n { name: \"Tuvin\", opentypeTag: \"TUV \", htmlTag: \"tyv\" },\n { name: \"Tuvalu\", opentypeTag: \"TVL \", htmlTag: \"tvl\" },\n { name: \"Twi\", opentypeTag: \"TWI \", htmlTag: \"ak\" },\n { name: \"Tày\", opentypeTag: \"TYZ \", htmlTag: \"tyz\" },\n { name: \"Tamazight\", opentypeTag: \"TZM \", htmlTag: \"tzm\" },\n { name: \"Tzotzil\", opentypeTag: \"TZO \", htmlTag: \"tzo\" },\n { name: \"Udmurt\", opentypeTag: \"UDM \", htmlTag: \"udm\" },\n { name: \"Ukrainian\", opentypeTag: \"UKR \", htmlTag: \"uk\" },\n { name: \"Umbundu\", opentypeTag: \"UMB \", htmlTag: \"umb\" },\n { name: \"Urdu\", opentypeTag: \"URD \", htmlTag: \"ur\" },\n { name: \"Upper Sorbian\", opentypeTag: \"USB \", htmlTag: \"hsb\" },\n { name: \"Uyghur\", opentypeTag: \"UYG \", htmlTag: \"ug\" },\n { name: \"Uzbek\", opentypeTag: \"UZB \", htmlTag: \"uz\" },\n { name: \"Venetian\", opentypeTag: \"VEC \", htmlTag: \"vec\" },\n { name: \"Venda\", opentypeTag: \"VEN \", htmlTag: \"ve\" },\n { name: \"Vietnamese\", opentypeTag: \"VIT \", htmlTag: \"vi\" },\n { name: \"Volapük\", opentypeTag: \"VOL \", htmlTag: \"vo\" },\n { name: \"Võro\", opentypeTag: \"VRO \", htmlTag: \"vro\" },\n { name: \"Wa\", opentypeTag: \"WA\", htmlTag: \"wbm\" },\n { name: \"Wagdi\", opentypeTag: \"WAG \", htmlTag: \"wbr\" },\n { name: \"Waray-Waray\", opentypeTag: \"WAR \", htmlTag: \"war\" },\n { name: \"West-Cree\", opentypeTag: \"WCR \", htmlTag: \"crk\" },\n { name: \"Welsh\", opentypeTag: \"WEL \", htmlTag: \"cy\" },\n { name: \"Walloon\", opentypeTag: \"WLN \", htmlTag: \"wa\" },\n { name: \"Wolof\", opentypeTag: \"WLF \", htmlTag: \"wo\" },\n { name: \"Mewati\", opentypeTag: \"WTM \", htmlTag: \"wtm\" },\n { name: \"Lü\", opentypeTag: \"XBD \", htmlTag: \"khb\" },\n { name: \"Khengkha\", opentypeTag: \"XKF \", htmlTag: \"xkf\" },\n { name: \"Xhosa\", opentypeTag: \"XHS \", htmlTag: \"xh\" },\n { name: \"Minjangbal\", opentypeTag: \"XJB \", htmlTag: \"xjb\" },\n { name: \"Soga\", opentypeTag: \"XOG \", htmlTag: \"xog\" },\n { name: \"Kpelle (Liberia)\", opentypeTag: \"XPE \", htmlTag: \"xpe\" },\n { name: \"Sakha\", opentypeTag: \"YAK \", htmlTag: \"sah\" },\n { name: \"Yao\", opentypeTag: \"YAO \", htmlTag: \"yao\" },\n { name: \"Yapese\", opentypeTag: \"YAP \", htmlTag: \"yap\" },\n { name: \"Yoruba\", opentypeTag: \"YBA \", htmlTag: \"yo\" },\n { name: \"Y-Cree\", opentypeTag: \"YCR \", htmlTag: \"cr\" },\n { name: \"Yi Classic\", opentypeTag: \"YIC \" },\n { name: \"Yi Modern\", opentypeTag: \"YIM \", htmlTag: \"ii\" },\n { name: \"Zealandic\", opentypeTag: \"ZEA \", htmlTag: \"zea\" },\n { name: \"Standard Moroccan Tamazight\", opentypeTag: \"ZGH \", htmlTag: \"zgh\" },\n { name: \"Zhuang\", opentypeTag: \"ZHA \", htmlTag: \"za\" },\n { name: \"Chinese, Hong Kong SAR\", opentypeTag: \"ZHH \", htmlTag: \"zh\" },\n { name: \"Chinese Phonetic\", opentypeTag: \"ZHP \", htmlTag: \"zh\" },\n { name: \"Chinese Simplified\", opentypeTag: \"ZHS \", htmlTag: \"zh\" },\n { name: \"Chinese Traditional\", opentypeTag: \"ZHT \", htmlTag: \"zh\" },\n { name: \"Zande\", opentypeTag: \"ZND \", htmlTag: \"zne\" },\n { name: \"Zulu\", opentypeTag: \"ZUL \", htmlTag: \"zu\" },\n { name: \"Zazaki\", opentypeTag: \"ZZA \", htmlTag: \"zza\" },\n];\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=style&index=0&id=24ad2e06&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=style&index=0&id=24ad2e06&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=style&index=0&id=1f701b1d&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=style&index=0&id=1f701b1d&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=style&index=0&id=33941e68&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=style&index=0&id=33941e68&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=style&index=0&id=674df807&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=style&index=0&id=674df807&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=style&index=0&id=c62ebfe4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=style&index=0&id=c62ebfe4&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=style&index=0&id=5882b3e7&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=style&index=0&id=5882b3e7&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=style&index=0&id=886201ec&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=style&index=0&id=886201ec&lang=scss&scoped=true&\""],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.75bd29db.js b/js/app.75bd29db.js new file mode 100644 index 0000000..6e1b0ea --- /dev/null +++ b/js/app.75bd29db.js @@ -0,0 +1,2 @@ +(function(e){function t(t){for(var a,o,s=t[0],l=t[1],c=t[2],g=0,p=[];g0?this.value.map((function(t){return t[e.keys.label]||t})).join(this.multipleDelimiter):"":this.value?this.value[this.keys.label]||this.value:""},hasDisplayText:function(){return Boolean(this.displayText.length)},hasNoResults:function(){return!this.loading&&0!==this.query.length&&(this.disableFilter?this.noResults:0===this.filteredOptions.length)},submittedValue:function(){var e=this;if(this.name&&this.value)return Array.isArray(this.value)?this.value.map((function(t){return t[e.keys.value]||t})).join(","):this.value[this.keys.value]||this.value}},watch:{filteredOptions:function(){this.highlightedIndex=0,Object(z["a"])(this.$refs.optionsList)},query:function(){this.$emit("query-change",this.query)},isActive:function(e){e?this.addExternalClickListener(this.$el,this.onExternalClick):this.removeExternalClickListener()}},created:function(){this.value&&""!==this.value||this.setValue(null)},mounted:function(){this.refreshScrollbar()}},Object(T["a"])(a,"watch",{options:function(e,t){e.length!==t.length&&this.refreshScrollbar()}}),Object(T["a"])(a,"methods",{refreshScrollbar:function(){this.openDropdown(),this.closeDropdown()},setValue:function(e){e=e||(this.multiple?[]:""),this.$emit("input",e),this.$emit("change",e)},setCustomValue:function(e){e?this.setValue(e):this.selectOption(this.options[0],0,{autoClose:!1})},highlightOption:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{autoScroll:!0};if(this.highlightedIndex!==e&&0!==this.$refs.options.length){var n=0,a=this.$refs.options.length-1;ea&&(e=n),this.$refs.options[e]||(e=0),this.highlightedIndex=e,t.autoScroll&&this.scrollOptionIntoView(this.$refs.options[e].$el)}},selectHighlighted:function(e){var t=this.$refs.options;t[this.highlightedIndex]&&(e&&e.preventDefault(),this.selectOption(t[this.highlightedIndex].option,this.highlightedIndex))},selectOption:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{autoClose:!0},a=this.multiple&&!this.isOptionSelected(e);this.multiple?this.updateOption(e,{select:a}):(this.setValue(e),this.selectedIndex=t),this.$emit("select",e,{selected:!this.multiple||a}),this.highlightedIndex=t,this.multiple||this.clearQuery(),!this.multiple&&n.autoClose&&this.closeDropdown()},isOptionSelected:function(e){return this.multiple?Object(H["b"])(this.value,e)>-1:Object(H["a"])(this.value,e)},updateOption:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{select:!0},n=[],a=!1,i=Object(H["b"])(this.value,e);t.select&&i<0&&(n=this.value.concat(e),a=!0),!t.select&&i>-1&&(n=this.value.slice(0,i).concat(this.value.slice(i+1)),a=!0),a&&this.setValue(n)},defaultFilter:function(e,t){var n=e[this.keys.label]||e;return"string"===typeof n&&(n=n.toLowerCase()),U()(t.toLowerCase(),n)},clearSelection:function(){this.setValue(null)},clearQuery:function(){this.query=""},focus:function(){this.isAutocomplete&&this.$refs.input?this.$refs.input.focus():this.$refs.label.focus()},toggleDropdown:function(){this.$refs.dropdown.toggle()},openDropdown:function(){this.disabled||this.$refs.dropdown.open()},closeDropdown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{blurAfterClose:!1};this.$refs.dropdown.close(),this.isTouched||(this.isTouched=!0,this.$emit("touch")),e.blurAfterClose?this.isActive=!1:this.focus()},onFocus:function(e){this.isAutocomplete&&(this.$refs.input&&this.$refs.input.focus(),this.isFocused=!0),this.isActive||(this.isActive=!0,this.$emit("focus",e))},onBlur:function(e){this.isActive=!1,this.$emit("blur",e),this.$refs.dropdown.isOpen()&&this.closeDropdown({blurAfterClose:!0})},onOpen:function(){var e=this;this.isActive=!0,this.$refs.dropdown.$el.style.width=this.$refs.label.getBoundingClientRect().width+"px",this.$nextTick((function(){e.scrollOptionIntoView(e.$refs.optionsList.querySelector(".is-selected"))})),this.$emit("dropdown-open")},onReveal:function(){var e=this;this.autocomplete?this.$nextTick((function(){e.focus()})):this.$refs[this.hasSearch?"searchInput":"dropdownContent"].focus()},onClose:function(){this.highlightedIndex=this.multiple?-1:this.selectedIndex,this.$emit("dropdown-close")},onExternalClick:function(){this.$refs.dropdown.isOpen()?this.closeDropdown({blurAfterClose:!0}):this.isActive&&(this.isActive=!1)},scrollOptionIntoView:function(e){Object(z["b"])(e,{container:this.$refs.optionsList,marginTop:180})},reset:function(){this.setValue(JSON.parse(this.initialValue)),this.clearQuery(),this.resetTouched(),this.selectedIndex=-1,this.highlightedIndex=-1},resetTouched:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{touched:!1};this.isTouched=e.touched},onInputEnter:function(){this.$refs.dropdown.isOpen()&&this.$refs.options[this.highlightedIndex]?this.selectHighlighted():this.toggleDropdown()}}),Object(T["a"])(a,"components",{UiIcon:B["a"],UiPopover:P["a"],UiProgressCircular:M["a"],UiSelectOption:N["a"]}),Object(T["a"])(a,"mixins",[D["a"]]),a),R=V,G=(n("a01f"),Object(h["a"])(R,K,E,!1,null,null,null)),W=G.exports,q=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ui-tooltip"},[e._t("default")],2)},J=[],Z=n("a5c9"),Y=n("1513"),Q={name:"ui-tooltip",props:{animation:{type:String,default:"fade"},appendToBody:{type:Boolean,default:!0},openDelay:{type:Number,default:0},openOn:{type:String,default:"mouseenter focus"},position:{type:String,default:"bottom"},trigger:{validator:function(e){return Y["a"].validate(e,'[UiTooltip]: Invalid prop: "trigger". Expected Element, VueComponent or CSS selector string.')}},zIndex:Number,interactive:{type:Boolean,default:!1}},mounted:function(){if(this.triggerEl=Y["a"].resolve(this.trigger,this.$el.parentElement),this.triggerEl){var e={animateFill:"fade"!==this.animation,animation:"none"===this.animation?"fade":this.animation,arrow:!1,content:this.$el,delay:[this.openDelay,0],distance:4,duration:"none"===this.animation?0:[250,200],ignoreAttributes:!0,lazy:!0,multiple:!0,placement:this.position,theme:"ui-tooltip",trigger:this.openOn.replace("hover","mouseenter"),zIndex:this.zIndex,popperOptions:{modifiers:{computeStyle:{gpuAcceleration:!(window.devicePixelRatio<1.5&&/Win/.test(navigator.platform))}}},interactive:this.interactive};this.appendToBody||(e.appendTo=this.triggerEl.parentElement),this.tip=Object(Z["a"])(this.triggerEl,e)}else console.error("[UiTooltip]: Trigger element not found.")},beforeDestroy:function(){this.tip&&(this.tip.destroy(),this.tip=null)}},X=Q,ee=(n("b92e"),Object(h["a"])(X,q,J,!1,null,null,null)),te=ee.exports,ne=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:{callback:e.visibilityChanged,once:!0},expression:"{\n callback: visibilityChanged,\n once: true,\n }"}],staticClass:"fit-me"},[n("div",{ref:"fitted",staticClass:"fitted",style:"font-size: "+e.fontSize+"px;"},[e._v("\n "+e._s(e.localText)+"\n ")])])},ae=[],ie=(n("96cf"),n("3b8d")),re={props:{text:String,cutText:Number},data:function(){return{localText:this.text,fontSize:16}},methods:{visibilityChanged:function(){this.runFit()},fit:function(){var e=Object(ie["a"])(regeneratorRuntime.mark((function e(t){var n,a,i,r,o,s,l,c,u,g,p=this,h=arguments;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n=h.length>1&&void 0!==h[1]?h[1]:0,this.localText=this.text.slice(0,this.text.length-t),e.next=4,this.$nextTick();case 4:if(a=this.$refs.fitted,i=this.$el,r=i.clientWidth,o=a.clientWidth,o&&r){e.next=10;break}return e.abrupt("return");case 10:if(!(o===r&&n<5)){e.next=13;break}return setTimeout((function(){p.fit(0,n+1)}),100),e.abrupt("return");case 13:return s=r/o,l=parseFloat(getComputedStyle(a).fontSize),c=Math.round(l*s),this.fontSize=c,e.next=19,this.$nextTick();case 19:if(u=i.clientHeight,g=a.clientHeight,!(g/u<.69&&t22?e.slice(0,8)+"..."+e.slice(-10):e).replace(/\.(ttf|otf)$/,(function(e){return e.toUpperCase()}))}}},ue=ce,ge=(n("9fee"),Object(h["a"])(ue,L,I,!1,null,null,null)),pe=ge.exports,he=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:"file-drop "+(this.visible?"":"hidden"),on:{dragenter:e.handleDragEnter,dragleave:e.handleDragLeave,dragover:e.handleDragOver,drop:e.handleDrop}})},me=[];function de(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function fe(e){for(var t=1;t-1&&(e.preventDefault(),console.log("handleBodyDragEnter"),this.showDrop())},preventScroll:function(){this.scrolledParent.scrollTop=this.scrolledParentTop,console.log("prevented scroll")},disableScroll:function(){this.scrolledParent.addEventListener("scroll",this.preventScroll),setTimeout(this.enableScroll,500)},enableScroll:function(){this.scrolledParent.removeEventListener("scroll",this.preventScroll)},toggleBodyScroll:function(e){this.scrolledParentTop=this.scrolledParent.scrollTop,e?this.enableScroll():this.disableScroll()}}},ye=ve,Te=(n("f717"),Object(h["a"])(ye,he,me,!1,null,"5882b3e7",null)),be=Te.exports,Se=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"fireworks"},e._l(e.fireworks,(function(e){return n("Firework",{key:e.key,attrs:{position:e.position}})})),1)},ke=[];function xe(e,t,n){function a(e){var t=e.pageX,a=e.pageY;n({x:t,y:a})}e.addEventListener(t,a)}var we=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:"firework firework-"+e.$vnode.key,style:"font-family: "+e.font+";"},e._l(e.letterSoup,(function(t,a){return n("div",{key:a,class:"letter letter-"+a,style:"font-size: "+(3+a%6*.5)+"em"},[e._v(e._s(t))])})),0)},Ce=[],Oe=n("1209");function _e(e,t){for(var n=[],a=e.charCodeAt(0),i=t.charCodeAt(0);a<=i;++a)n.push(String.fromCharCode(a));return n}function Pe(){return[].concat(Object(w["a"])(_e("a","z")),Object(w["a"])(_e("A","Z")),Object(w["a"])(_e("0","9")))}var je={props:{font:{type:String,default:""},position:{type:Object,default:function(){return{x:700,y:300}}}},data:function(){return{letterSoup:Pe()}},mounted:function(){this.firework()},methods:{firework:function(){var e=this;this.$el.style.left=this.position.x+"px",this.$el.style.top=this.position.y+"px",this.$el.style.opacity=0;var t=1500,n=1800,a=Oe["a"].timeline({duration:n});a.add({targets:this.$el,scale:[{value:.1,duration:0},{value:1,duration:t}],opacity:[{value:.85,duration:200},{value:0,duration:n}],easing:"linear"},0),this.letterSoup.forEach((function(t,i){var r=".firework-".concat(e.$vnode.key," .letter-").concat(i);document.querySelector(r).style.transform="translate(-50%, -50%)";var o=2*Math.random()*Math.PI,s=100*(1+Math.random()),l=Math.cos(o)*s+"vw",c=Math.sin(o)*s+"vw";a.add({targets:r,translateX:"+=".concat(l),translateY:"+=".concat(c),duration:n,easing:"easeInSine",delay:300*Math.random()},0)}))}}},Fe=je,Ae=(n("3d3d"),Object(h["a"])(Fe,we,Ce,!1,null,"237c7d63",null)),Le=Ae.exports,Ie={components:{Firework:Le},props:{font:{type:String,default:""},disable:{type:Boolean,default:!0}},data:function(){return{fireworks:[],position:{x:0,y:0},keyCount:0}},mounted:function(){var e=this;xe(document,"dragover",(function(t){return e.position=t})),this.$on("event",this.add)},methods:{add:function(){this.fireworks.push({position:this.position,key:this.keyCount++})}}},Ke=Ie,Ee=Object(h["a"])(Ke,Se,ke,!1,null,null,null),Be=Ee.exports,Me=n("6c59"),Ne=n.n(Me),De=(n("4f7f"),n("a8db")),He=n("d225"),ze=n("b0b4"),$e=n("bf45"),Ue=n.n($e);function Ve(e){var t=Re.find((function(t){return t.tag.test(e)}));return t?e.replace(t.tag,t.name):e}var Re=[{tag:/aalt/,name:"Access All Alternates"},{tag:/abvf/,name:"Above-base Forms"},{tag:/abvm/,name:"Above-base Mark Positioning"},{tag:/abvs/,name:"Above-base Substitutions"},{tag:/afrc/,name:"Alternative Fractions"},{tag:/akhn/,name:"Akhands"},{tag:/blwf/,name:"Below-base Forms"},{tag:/blwm/,name:"Below-base Mark Positioning"},{tag:/blws/,name:"Below-base Substitutions"},{tag:/calt/,name:"Contextual Alternates"},{tag:/case/,name:"Case-Sensitive Forms"},{tag:/ccmp/,name:"Glyph Composition / Decomposition"},{tag:/cfar/,name:"Conjunct Form After Ro"},{tag:/cjct/,name:"Conjunct Forms"},{tag:/clig/,name:"Contextual Ligatures"},{tag:/cpct/,name:"Centered CJK Punctuation"},{tag:/cpsp/,name:"Capital Spacing"},{tag:/cswh/,name:"Contextual Swash"},{tag:/curs/,name:"Cursive Positioning"},{tag:/cv(\d{2})/,name:"Character Variants $1"},{tag:/c2pc/,name:"Petite Capitals From Capitals"},{tag:/c2sc/,name:"Small Capitals From Capitals"},{tag:/dist/,name:"Distances"},{tag:/dlig/,name:"Discretionary Ligatures"},{tag:/dnom/,name:"Denominators"},{tag:/dtls/,name:"Dotless Forms"},{tag:/expt/,name:"Expert Forms"},{tag:/falt/,name:"Final Glyph on Line Alternates"},{tag:/fin2/,name:"Terminal Forms #2"},{tag:/fin3/,name:"Terminal Forms #3"},{tag:/fina/,name:"Terminal Forms"},{tag:/flac/,name:"Flattened accent forms"},{tag:/frac/,name:"Fractions"},{tag:/fwid/,name:"Full Widths"},{tag:/half/,name:"Half Forms"},{tag:/haln/,name:"Halant Forms"},{tag:/halt/,name:"Alternate Half Widths"},{tag:/hist/,name:"Historical Forms"},{tag:/hkna/,name:"Horizontal Kana Alternates"},{tag:/hlig/,name:"Historical Ligatures"},{tag:/hngl/,name:"Hangul"},{tag:/hojo/,name:"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms)"},{tag:/hwid/,name:"Half Widths"},{tag:/init/,name:"Initial Forms"},{tag:/isol/,name:"Isolated Forms"},{tag:/ital/,name:"Italics"},{tag:/jalt/,name:"Justification Alternates"},{tag:/jp78/,name:"JIS78 Forms"},{tag:/jp83/,name:"JIS83 Forms"},{tag:/jp90/,name:"JIS90 Forms"},{tag:/jp04/,name:"JIS2004 Forms"},{tag:/kern/,name:"Kerning"},{tag:/lfbd/,name:"Left Bounds"},{tag:/liga/,name:"Standard Ligatures"},{tag:/ljmo/,name:"Leading Jamo Forms"},{tag:/lnum/,name:"Lining Figures"},{tag:/locl/,name:"Localized Forms"},{tag:/ltra/,name:"Left-to-right alternates"},{tag:/ltrm/,name:"Left-to-right mirrored forms"},{tag:/mark/,name:"Mark Positioning"},{tag:/med2/,name:"Medial Forms #2"},{tag:/medi/,name:"Medial Forms"},{tag:/mgrk/,name:"Mathematical Greek"},{tag:/mkmk/,name:"Mark to Mark Positioning"},{tag:/mset/,name:"Mark Positioning via Substitution"},{tag:/nalt/,name:"Alternate Annotation Forms"},{tag:/nlck/,name:"NLC Kanji Forms"},{tag:/nukt/,name:"Nukta Forms"},{tag:/numr/,name:"Numerators"},{tag:/onum/,name:"Oldstyle Figures"},{tag:/opbd/,name:"Optical Bounds"},{tag:/ordn/,name:"Ordinals"},{tag:/ornm/,name:"Ornaments"},{tag:/palt/,name:"Proportional Alternate Widths"},{tag:/pcap/,name:"Petite Capitals"},{tag:/pkna/,name:"Proportional Kana"},{tag:/pnum/,name:"Proportional Figures"},{tag:/pref/,name:"Pre-Base Forms"},{tag:/pres/,name:"Pre-base Substitutions"},{tag:/pstf/,name:"Post-base Forms"},{tag:/psts/,name:"Post-base Substitutions"},{tag:/pwid/,name:"Proportional Widths"},{tag:/qwid/,name:"Quarter Widths"},{tag:/rand/,name:"Randomize"},{tag:/rclt/,name:"Required Contextual Alternates"},{tag:/rkrf/,name:"Rakar Forms"},{tag:/rlig/,name:"Required Ligatures"},{tag:/rphf/,name:"Reph Forms"},{tag:/rtbd/,name:"Right Bounds"},{tag:/rtla/,name:"Right-to-left alternates"},{tag:/rtlm/,name:"Right-to-left mirrored forms"},{tag:/ruby/,name:"Ruby Notation Forms"},{tag:/rvrn/,name:"Required Variation Alternates"},{tag:/salt/,name:"Stylistic Alternates"},{tag:/sinf/,name:"Scientific Inferiors"},{tag:/size/,name:"Optical size"},{tag:/smcp/,name:"Small Capitals"},{tag:/smpl/,name:"Simplified Forms"},{tag:/ss01/,name:"Stylistic Set 1"},{tag:/ss02/,name:"Stylistic Set 2"},{tag:/ss03/,name:"Stylistic Set 3"},{tag:/ss04/,name:"Stylistic Set 4"},{tag:/ss05/,name:"Stylistic Set 5"},{tag:/ss06/,name:"Stylistic Set 6"},{tag:/ss07/,name:"Stylistic Set 7"},{tag:/ss08/,name:"Stylistic Set 8"},{tag:/ss09/,name:"Stylistic Set 9"},{tag:/ss10/,name:"Stylistic Set 10"},{tag:/ss11/,name:"Stylistic Set 11"},{tag:/ss12/,name:"Stylistic Set 12"},{tag:/ss13/,name:"Stylistic Set 13"},{tag:/ss14/,name:"Stylistic Set 14"},{tag:/ss15/,name:"Stylistic Set 15"},{tag:/ss16/,name:"Stylistic Set 16"},{tag:/ss17/,name:"Stylistic Set 17"},{tag:/ss18/,name:"Stylistic Set 18"},{tag:/ss19/,name:"Stylistic Set 19"},{tag:/ss20/,name:"Stylistic Set 20"},{tag:/ssty/,name:"Math script style alternates"},{tag:/stch/,name:"Stretching Glyph Decomposition"},{tag:/subs/,name:"Subscript"},{tag:/sups/,name:"Superscript"},{tag:/swsh/,name:"Swash"},{tag:/titl/,name:"Titling"},{tag:/tjmo/,name:"Trailing Jamo Forms"},{tag:/tnam/,name:"Traditional Name Forms"},{tag:/tnum/,name:"Tabular Figures"},{tag:/trad/,name:"Traditional Forms"},{tag:/twid/,name:"Third Widths"},{tag:/unic/,name:"Unicase"},{tag:/valt/,name:"Alternate Vertical Metrics"},{tag:/vatu/,name:"Vattu Variants"},{tag:/vert/,name:"Vertical Writing"},{tag:/vhal/,name:"Alternate Vertical Half Metrics"},{tag:/vjmo/,name:"Vowel Jamo Forms"},{tag:/vkna/,name:"Vertical Kana Alternates"},{tag:/vkrn/,name:"Vertical Kerning"},{tag:/vpal/,name:"Proportional Alternate Vertical Metrics"},{tag:/vrt2/,name:"Vertical Alternates and Rotation"},{tag:/vrtr/,name:"Vertical Alternates for Rotation"},{tag:/zero/,name:"Slashed Zero"}],Ge=function(){function e(t,n,a){Object(He["a"])(this,e),this.version=0,this.url=n,this.fileName=a,this.font=t,this.processFont()}return Object(ze["a"])(e,[{key:"serialize",value:function(){this.font;var e=Object(De["a"])(this,["font"]);return e}},{key:"processFont",value:function(){this.getNames(),this.getFeatures(),this.getGlyphs(),this.generateFontFace()}},{key:"getNames",value:function(){var e=this.font,t=e.names;this.family=t.preferredFamily&&t.preferredFamily.en||t.fontFamily.en,this.originalFamily=this.family,this.version&&(this.family+="-".concat(this.version)),this.style=t.preferredSubfamily&&t.preferredSubfamily.en||t.fontSubfamily.en,this.cssFamily=this.family+"-"+this.style,this.cssStyle=/(italic|oblique)/gi.test(this.style)?"italic":"normal",this.cssWeight=e.tables.os2.usWeightClass,this.displayName="".concat(this.originalFamily," ").concat(this.style," ").concat(this.version?"(".concat(this.version,")"):"")}},{key:"getGlyphs",value:function(){var e=this.font,t=Object.keys(e.glyphs.glyphs).map((function(t){return e.glyphs.glyphs[t]})).filter((function(e){return e.unicode})).map((function(e){return String.fromCharCode(e.unicode)}));this.characters=t}},{key:"getFeatures",value:function(){var e=this,t=this.font,n=t.names,a=t.tables.gpos||{},i=t.tables.gsub||{},r=new Set([].concat(Object(w["a"])(a.scripts||[]),Object(w["a"])(i.scripts||[])).flatMap((function(e){return e.script.langSysRecords})).map((function(e){return e.tag}))),o=Array.from(r).map((function(e){var t=Ue.a.find((function(t){return t.opentypeTag===e})),n=t?t.name:e,a=t?t.htmlTag:e.toLowerCase();return{tag:e,name:n,htmlTag:a}})).sort((function(e,t){return e.name>t.name}));Object.getOwnPropertyNames(n).filter((function(e){return/\d+/.test(e)})).map((function(e){return n[e].en}));this.gposFeatures=[],(a.features||[]).forEach((function(t){var n=e.gposFeatures.find((function(e){return e.tag==t.tag}));if(!n){var a={tag:t.tag,name:Ve(t.tag)};e.gposFeatures.push(a)}})),this.gsubFeatures=[],(i.features||[]).forEach((function(t){var n=e.gsubFeatures.find((function(e){return e.tag==t.tag}));if(!n){var a={tag:t.tag,name:Ve(t.tag)};if("locl"==t.tag)a.languages=o,a.selectedLanguage="";else if(/ss\d\d/.test(t.tag)){var i=t.feature.uiName;a.uiName=i&&i["en"]}else if(/cv\d\d/.test(t.tag)){var r=t.feature.featUiLabelName;a.uiName=r&&r["en"],console.log(a.uiName)}e.gsubFeatures.push(a)}})),this.variationAxes=[],t&&t.tables.fvar&&t.tables.fvar.axes&&(this.variationAxes=t&&t.tables.fvar&&t.tables.fvar.axes)}},{key:"generateFontFace",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.family,n=e.style,a=e.weight;return this.fontFace='\n @font-face {\n font-family: "'.concat(t||this.cssFamily,'";\n // font-style: ').concat(n||this.cssStyle,"; // disabling helps work with variable fonts\n // font-weight: ").concat(a||this.cssWeight,";\n src: url('").concat(this.url,"');\n }\n "),this.fontFace}},{key:"bumpVersion",value:function(e){e?this.version=e:this.version++,this.processFont()}}]),e}(),We=(n("6b54"),function(e){if(e){var t=e,n=1;while(document.getElementById(t))t="".concat(e,"-").concat(n++);return t}var a="";do{var i=Math.random()*Math.pow(2,8),r=i.toString(16);a="b"+r}while(document.getElementById(a));return a}),qe={add:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";t||(t=We());var n=document.createElement("style");if(n.appendChild(document.createTextNode(e)),document.head.appendChild(n),t){var a=document.getElementById(t);a&&a.parentNode.removeChild(a)}n.id=t},setProperty:function(e,t){document.documentElement.style.setProperty(e,t)}},Je=["AlegreyaSans/AlegreyaSans-Regular.ttf","AlegreyaSans/AlegreyaSans-Italic.ttf","AlegreyaSans/AlegreyaSans-Bold.ttf","AlegreyaSans/AlegreyaSans-BoldItalic.ttf","Rywalka-Regular.ttf","Graduate.ttf"];function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Ye(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=t.files,a=void 0===n?[]:n,i=t.urls,r=void 0===i?[]:i;a.map((function(e){return Ye({},e)}));if(r.length||(r=a.map((function(e){return URL.createObjectURL(e)}))),r.length){this.fontLoadingProgress=0,this.$store.dispatch("fontLoadStart");var o=a.length?a.map((function(e){return e.name})):r.map((function(e){return e.replace(/.*\//,"")})),s=[],l=[],c=new Ne.a;c.onmessage=function(t){if(u++,t.data.font){var n=t.data,a=n.font,i=n.url,o=n.fileName,c=new Ge(a,i,o),g=e.fonts.concat(s).filter((function(e){return e.originalFamily===c.originalFamily&&e.style===c.style})).map((function(e){return e.version}));if(g.length>0){var p=Math.max.apply(Math,Object(w["a"])(g));c.bumpVersion(p+1)}qe.add(c.fontFace),s.push(c),e.fontLoadingProgress=100*u/r.length}else if(t.data.error){var h=t.data,m=h.error,d=h.fileName;l.push({error:m,fileName:d})}u===r.length&&(s.length&&(s.sort((function(e,t){return e.family.localeCompare(t.family)||e.cssWeight-t.cssWeight||t.cssStyle.localeCompare(e.cssStyle)})),e.fonts=Object.freeze([].concat(s,Object(w["a"])(e.fonts))),e.selectFont(s[0])),l.length&&e.printFontLoadingError(l),e.$store.dispatch("fontLoadEnd"))};var u=0;r.forEach((function(e,t){c.postMessage({url:e,fileName:o[t]})}))}},printFontLoadingError:function(e,t){if(e.length){var n=e.filter((function(e){return e.error}));this.errorMessage="".concat(n.length," out of ").concat(e.length," files were not loaded."),this.errorLogs=n.map((function(e){return"".concat(e.fileName,": ").concat(e.error)}))}else this.errorMessage="An unexpected error occurred.",this.errorLogs=[t];this.$refs.modal.open()},getFont:function(e){var t=this.fonts.findIndex((function(t){return t.displayName===e.displayName})),n=this.fonts[t],a=n.serialize();return{index:t,font:a}},selectFont:function(e){this.lastFont=this.selectedFont;var t=this.getFont(e),n=t.index,a=t.font;function i(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;at.cssWeight})),o=i(r,(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight===300}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight>=200}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight>0}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight===0}))[0],s=i(this.fonts.slice(),(function(t){return t.family===e.family&&t.cssWeight===e.cssWeight&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight=200&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight>0&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight-e.cssWeight===0&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&"italic"===t.cssStyle}),(function(t){return t.family===e.family&&t.cssWeight<=e.cssWeight}))[0];this.selectBoldFont(o),this.selectHeaderFont(o),this.selectItalicFont(s),this.selectBoldItalicFont(l)},setFont:function(e,t){var n=this.getFont(t),a=n.font;this.setCssFont(e,a.cssFamily),e="regular"===e?"font":e+"Font",this.$store.commit("selectFont",Object(T["a"])({},e,a))},setCssFont:function(e,t){var n={regular:"selectedFont",italic:"selectedItalicFont",bold:"selectedBoldFont",boldItalic:"selectedBoldItalicFont",header:"selectedHeaderFont"}[e],a="--"+n+"Family";t?qe.setProperty(a,t):qe.setProperty(a,this[n].cssFamily)},overrideCssFont:function(e,t){var n={regular:"selectedFont",italic:"selectedItalicFont",bold:"selectedBoldFont",boldItalic:"selectedBoldItalicFont",header:"selectedHeaderFont"}[e],a="--"+n+"Family",i="--"+n+"CssWeight";if(t){var r=/((Light|Semi-?bold|Bold|Heavy|Extra-?bold|Black|\d{1,3})? ?(Italic)?)$/i,o=t.match(r);if(o&&o[0].length){var s=t.replace(r,""),l=o[1];qe.setProperty(a,s),qe.setProperty(i,l),console.log(a,s),console.log(i,l)}else qe.setProperty(a,t)}else qe.setProperty(a,this[n].cssFamily),qe.setProperty(i,"");this.fontOverrides[e]=t},selectBoldFont:function(e){var t=this.getFont(e),n=t.font;qe.setProperty("--selectedBoldFontFamily",n.cssFamily),this.$store.commit("selectFont",{boldFont:n})},selectItalicFont:function(e){var t=this.getFont(e),n=t.font;qe.setProperty("--selectedItalicFontFamily",n.cssFamily),this.$store.commit("selectFont",{italicFont:n})},selectBoldItalicFont:function(e){var t=this.getFont(e),n=t.font;qe.setProperty("--selectedBoldItalicFontFamily",n.cssFamily),this.$store.commit("selectFont",{boldItalicFont:n})},selectHeaderFont:function(e){var t=this.getFont(e),n=t.font;qe.setProperty("--selectedHeaderFontFamily",n.cssFamily),this.$store.commit("selectFont",{headerFont:n})},setLastFont:function(){this.selectFont(this.lastFont)},setPreviousFont:function(){this.selectFont(this.fonts[Math.max(0,this.selectedFontIndex-1)])},setNextFont:function(){this.selectFont(this.fonts[Math.min(this.fonts.length-1,this.selectedFontIndex+1)])}}},Xe=Qe,et=(n("3743"),Object(h["a"])(Xe,k,x,!1,null,null,null)),tt=et.exports,nt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"editor-nav"},[n("div",{staticClass:"links-wrapper"},[n("transition-group",{staticClass:"links",attrs:{name:"fade"}},e._l(e.lessCustomTextIds,(function(e){return n("EditorNavLink",{key:e,attrs:{id:e}})})),1),n("transition-group",{staticClass:"links",attrs:{name:"fade"}},e._l(e.moreCustomTextIds,(function(e){return n("EditorNavLink",{key:e,attrs:{id:e}})})),1)],1),n("span",{key:"-1",staticClass:"nav-link new"},[n("router-link",{attrs:{to:"/custom/-1"}},[e._v("\n "+e._s(e.customTextIds.length>0?"+ New":"Editor")+"\n ")])],1)])},at=[],it=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{staticClass:"editor-nav-link nav-link"},[n("router-link",{attrs:{to:"/custom/"+e.id}},[n("div",{staticClass:"middle-ellipsis"},[n("div",{staticClass:"start"},[e._v("Custom ")]),n("div",{staticClass:"end"},[e._v(e._s(e.id))])])]),n("UiIconButton",{staticStyle:{color:"white"},attrs:{color:"secondary"},on:{click:function(t){return e.removeCustomText(e.id)}}},[n("svg",{key:"1",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"currentColor",d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}}),n("path",{attrs:{d:"M0 0h24v24H0z",fill:"none"}})])])],1)},rt=[],ot=n("6904"),st={components:{UiIconButton:ot["a"]},props:{id:Number},methods:{removeCustomText:function(e){this.$store.commit("removeCustomText",{id:e})}}},lt=st,ct=(n("774c"),Object(h["a"])(lt,it,rt,!1,null,"00f8f142",null)),ut=ct.exports;function gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function pt(e){for(var t=1;t=1&&e.getRangeAt(0)},ht=function(e){var t=e.ownerDocument,n=t.defaultView,a=n.getSelection().getRangeAt(0),i=a.cloneRange();i.selectNodeContents(e),i.setEnd(a.startContainer,a.startOffset);var r=i.toString().length;return{start:r,end:r+a.toString().length}},mt=function(e,t){var n=e.ownerDocument,a=n.defaultView,i=0,r=n.createRange();r.setStart(e,0),r.collapse(!0);var o,s=[e],l=!1,c=!1;while(!c&&(o=s.pop()))if(3==o.nodeType){var u=i+o.length;!l&&t.start>=i&&t.start<=u&&(r.setStart(o,t.start-i),l=!0),l&&t.end>=i&&t.end<=u&&(r.setEnd(o,t.end-i),c=!0),i=u}else{var g=o.childNodes.length;while(g--)s.push(o.childNodes[g])}var p=a.getSelection();p.removeAllRanges(),p.addRange(r)}):document.selection&&(ht=function(e){var t=e.ownerDocument,n=t.selection.createRange(),a=t.body.createTextRange();a.moveToElementText(e),a.setEndPoint("EndToStart",n);var i=a.text.length;return{start:i,end:i+n.text.length}},mt=function(e,t){var n=e.ownerDocument,a=n.body.createTextRange();a.moveToElementText(e),a.collapse(!0),a.moveEnd("character",t.end),a.moveStart("character",t.start),a.select()});var kt=function(){function e(t){Object(He["a"])(this,e),this.selection=null,this.container=t}return Object(ze["a"])(e,[{key:"save",value:function(){this.selection=ht(this.container)}},{key:"restore",value:function(){this.selection&&mt(this.container,this.selection)}},{key:"forget",value:function(){this.selection=null}},{key:"ancestor",value:function(){var e=dt(this.container),t=e.commonAncestorContainer;return t.nodeType===Node.TEXT_NODE&&(t=t.parentNode),t}},{key:"existentTags",value:function(e){var t=dt(this.container),n=t.cloneContents(),a=n.querySelectorAll(e);return a}},{key:"closestTag",value:function(e){var t=this.ancestor().closest(e);return t}},{key:"containsTag",value:function(e){return this.existentTags(e).length>0||null!=this.closestTag(e)}},{key:"wrap",value:function(e){var t=/^h[1-6]$/.test(e),n=this.ancestor();if(this.container.contains(n)){var a=dt(this.container),i=a.cloneContents(),r=i.querySelectorAll(e),o=this.closestTag(e);if(o){var s=n===o?n.parentNode:n,l=document.createElement("tmp");a.surroundContents(l);var c=document.createDocumentFragment();Array.from(o.childNodes).forEach((function(t){try{if(t===l)c.appendChild(t.childNodes[0]);else if(t.nodeValue||t.innerText){var n=document.createElement(e);n.appendChild(t.cloneNode()),c.appendChild(n)}}catch(a){console.log(a)}})),s.replaceChild(c,o)}else if(r.length)r.forEach((function(e){try{var t=document.createDocumentFragment();Array.from(e.childNodes).forEach((function(e){return t.appendChild(e)})),e.parentNode.replaceChild(t,e)}catch(n){console.log(n)}})),a.deleteContents(),a.insertNode(i);else try{var u=t&&""===a.toString();u&&a.insertNode(document.createElement("br"));var g=document.createElement(e);g.appendChild(a.extractContents()),a.insertNode(g),u&&a.selectNodeContents(g)}catch(p){console.log(p),console.log(n)}xt(this.container)}else console.log("not contained")}},{key:"remembered",get:function(){return null!==this.selection}}]),e}();function xt(e){for(var t=0;t=2},keyframesText:function(){return JSON.stringify(this.animationKeyframes)}}),methods:Et({},Object(b["d"])(["addAnimationKeyframe","removeAnimationKeyframe","activateKeyframe","importAnimationKeyframes","setAnimatedProperties"]),{updateKeyframeProgress:function(){var e=this;this.animationKeyframes.forEach((function(t,n,a){var i=100/a.length,r=i*n,o=i*(n+1),s=(e.progress-r)/(o-r)*100;e.$set(e.keyframeProgress,n,Math.max(0,Math.min(100,s)))}))},play:function(){var e=this;if(this.canAnimate){var t=this.animationKeyframes.map((function(t){var n={};return Object.keys(t.frame).forEach((function(a){e.animationKeyframes.some((function(e){return e.frame[a]!==t.frame[a]}))&&(n[a]=t.frame[a])})),n})),n=[],a=[];t.forEach((function(e,t){var i=e.fontFeatureSettings,r=Object(De["a"])(e,["fontFeatureSettings"]);i&&(i=i.replace(/['"](ss\d\d|aalt)['"]( (0|1))* *,* */g,""));var o=Et({},r),s={fontFeatureSettings:i};0===t&&(s.duration=0,o.duration=0),n.push(s),a.push(o)}));var i=document.querySelector(".font-sample"),r=Oe["a"].timeline({targets:i,duration:this.duration,easing:"easeOutQuad",autoplay:!1,delay:100,endDelay:0});r.add({keyframes:n,easing:"steps(1)"},0),r.add({keyframes:a,update:function(t){var n=i.style,a=(t.progress-e.progress)/100*e.duration;a>48&&(e.$store.dispatch("animateSettings",{style:n}),e.progress=t.progress)},begin:function(){e.playing=!0},complete:function(){e.$store.commit("finishAnimateSettings"),e.playing=!1,e.progress=0,e.activateKeyframe({id:e.animationKeyframes.slice(-1)[0].id})}},0),this.activateKeyframe({id:this.animationKeyframes[0].id}),r.restart()}}})},Mt=Bt,Nt=(n("bcca"),Object(h["a"])(Mt,wt,Ct,!1,null,"0dcbafa4",null)),Dt=Nt.exports;function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function zt(e){for(var t=1;t-1},left:function(){return this.sidesArray.indexOf("both")>-1||this.sidesArray.indexOf("left")>-1},right:function(){return this.sidesArray.indexOf("both")>-1||this.sidesArray.indexOf("right")>-1},rootStyle:function(){return"\n ".concat(this.left?"margin-left: ".concat(this.width-this.marginAdjust,"px;"):"","\n ").concat(this.right?"margin-right: ".concat(this.width-this.marginAdjust,"px;"):"","\n position: relative;\n ")},containerStyle:function(){return"\n height: 100%;\n display: flex;\n align-items: center;\n "},contentStyle:function(){return"\n ".concat(this.left?"margin-left: -".concat(this.marginAdjust,"px;"):"","\n ").concat(this.right?"margin-right: -".concat(this.marginAdjust,"px;"):"","\n // opacity: 0.9999;\n z-index: 1;\n ")}},mounted:function(){var e=getComputedStyle(this.$el);this.background=this.$el.style.background||e.backgroundImage+" "+e.backgroundColor},methods:{path:function(e){return this.top?"left"===e?"M0,1 C".concat(1*this.control,",1 ").concat(1*(1-this.control),",0 1,0 L1,1 0,1"):"M0,0 C".concat(1*this.control,",0 ").concat(1*(1-this.control),",1 1,1 L0,1 0,0"):"left"===e?"M0,0 C".concat(1*this.control,",0 ").concat(1*(1-this.control),",1 1,1 L1,0 0,0"):"M0,1 C".concat(1*this.control,",1 ").concat(1*(1-this.control),",0 1,0 L0,0 0,1")},sigmoidWrapperStyle:function(e){return"\n position: absolute;\n top: 0;\n bottom: 0;\n width: ".concat(this.width,"px;\n ").concat("left"===e?"\n right: 100%;\n ":"\n left: 100%;\n ","\n overflow: hidden;\n ")},sigmoidStyle:function(e){return"\n background: ".concat(this.background,";\n height: calc(100% + 1px) /* fixes gap left by imprecise clip-path */;\n width: calc(100% + 1px) /* fixes gap left by imprecise clip-path */;\n ").concat(this.top?"":"transform: translateY(-1px);","\n ").concat("\n clip-path: url('#".concat("left"===e?this.svgLeftId:this.svgRightId,"');\n "),"\n ")}}}),en=Xt,tn=(n("f5b2"),Object(h["a"])(en,Yt,Qt,!1,null,"c62ebfe4",null)),nn=tn.exports,an=["lettering","pangrams","sentences","gotchas","ABCs","glyphs","kerning","languages"],rn=function(e){return e[0].toUpperCase()+e.substr(1)};function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function sn(e){for(var t=1;tthis.stickyShowDelta||e<100?(this.setSticky(!0),this.lastTop=e):t>this.stickyHideDelta&&(this.setSticky(!1),this.lastTop=e)},initStickyHeader:function(){var e=this,t=!1;this.scrolledParent.addEventListener("wheel",(function(){return t=!0})),this.scrolledParent.addEventListener("click",(function(){return e.lastTop=e.measureTop()})),setInterval((function(){t&&(e.hasScrolled(),t=!1)}),250)}}},cn=ln,un=(n("8203"),Object(h["a"])(cn,v,y,!1,null,"1d84f2a8",null)),gn=un.exports,pn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"site-footer"},[n("div",{ref:"sentinel",staticClass:"sentinel"}),e._m(0),n("SigmoidContainer",{staticClass:"large light aside",attrs:{sides:"left bottom",width:"65",idSeed:"footer"}},[n("a",{staticClass:"github-link",attrs:{href:"https://github.com/hyvyys/Bulletproof",target:"_blank",rel:"noopener noreferrer"}},[n("div",[e._v("\n Bulletproof\n "),n("br"),e._v("\n on Github\n ")]),n("svg",{attrs:{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","svg-inline":"",height:"32",width:"32",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"currentColor",d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"}})])])])],1)},hn=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"main u-dark"},[n("div",[n("div",[e._v("\n Sample texts from\n "),n("a",{attrs:{href:"https://github.com/hyvyys/language-data",target:"_blank",rel:"noopener noreferrer"}},[e._v("\n Language-Data\n ")]),e._v(".\n Visit link to contribute.\n ")]),n("div",[n("a",{attrs:{href:"https://github.com/huertatipografica/Alegreya-Sans"}},[e._v("Alegreya Sans")]),e._v(" font by Juan Pablo del Peral.\n ")]),n("div",[n("a",{attrs:{href:"https://github.com/etunni/Graduate-Variable-Font"}},[e._v("Graduate")]),e._v(" Variable Font by Eduardo Tunni.\n ")]),n("div",[e._v("\n Rywalka font by Adam Jagosz.\n ")])]),n("div",{staticClass:"bulletproof-info"},[n("div",[e._v("\n Bulletproof Font Tester\n ")]),n("div",[e._v("\n Copyright 2020 Adam Jagosz.\n ")])])])}],mn=n("9224").version,dn={components:{SigmoidContainer:nn},data:function(){return{version:mn}},mounted:function(){},destroyed:function(){this.observer.disconnect()},methods:{initObserver:function(){var e=this,t={threshold:[0,.25,.5,.75,1]},n=function(t,n){t.forEach((function(t){e.updateHeight(t)}))};this.observer=new IntersectionObserver(n,t),this.observer.observe(this.$refs.sentinel)},updateHeight:function(e){var t=e.intersectionRatio;this.$store.commit("updateFooter",{visible:t>.75,ratio:t})}}},fn=dn,vn=(n("2058"),Object(h["a"])(fn,pn,hn,!1,null,"18509e57",null)),yn=vn.exports,Tn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:"home "+(e.webkit?"webkit":"")},[n("div",{class:e.parallaxClasses},[n("div",{staticClass:"pane"},[n("div",{ref:"parallax",staticClass:"parallax-content",attrs:{"data-parallax":"0.3 0"}},[e._v("\n "+e._s(e.getParallaxText())+"\n ")])])]),n("div",{ref:"overlay",class:e.overlayClasses}),n("Welcome",{attrs:{msg:"Welcome to Your Vue.js App"}})],1)},bn=[];n("14b9");function Sn(e){var t,n,a;for(a=e.length-1;a>0;a--)t=Math.floor(Math.random()*(a+1)),n=e[a],e[a]=e[t],e[t]=n;return e}var kn=n("72c1"),xn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"welcome reading"},[n("div",{staticClass:"fold"},[n("figure",{staticClass:"banner"},[n("svg",{class:"logo",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("g",{attrs:{"data-name":"Warstwa 3"}},[n("g",{attrs:{"data-name":"Icon Big"}},[n("path",{attrs:{fill:"currentColor",d:"M207.6 192.9c.28-1.46 3.45-3.78 7.05-5.15l14.81-5.64c3.6-1.37 3.41-2.88-.41-3.36L214.5 177c-3.82-.47-7.66-3.06-8.52-5.74s-3.21-12-1.77-15.53l8.73-21.56c1.45-3.57.13-4.58-2.93-2.24l-17.33 13.25c-3.06 2.34-6.82 3.65-8.36 2.91l-2.13-.73-4.5-1.53c-2.8-.25-7.48-2.51-10.41-5a19.57 19.57 0 00-4-3.9c-2.67-2-2.9-1.21-.51 1.81l.91 1.15c2.39 3 3.6 5.73 2.68 6s-7.33-.86-11-2.1l-9.55-3.24c-3.64-1.24-6 .83-5.22 4.6l.59 2.88c.77 3.77.48 7.7-.65 8.74s-6.83 4.88-10.55 5.85l-.71.19c-3.72 1-4.51 2.43-1.75 3.23a4.66 4.66 0 013.25 6.15c-1 2.58-4.53 12-7.49 14.49l-7.53 6.28c-3 2.46-2.26 4.89 1.56 5.4l7.42 1c3.82.5 8.17 3.13 9.67 5.85s6.81 11.9 6.81 15.75v2.87c0 3.85 2.27 4.81 5 2.14l.18-.17c2.78-2.67 6.79-4.19 8.93-3.37s10.3 4.29 13 7.08l6.5 6.85c2.65 2.8 5.59 2 6.54-1.7l1.68-6.58a20.76 20.76 0 017.6-10.6l7.81-7c2.45-3 6.94-5.9 10-6.5s10.13-3.17 6.37-4l-1.78-.39c-3.75-.86-5.72-5.23-5.44-6.69zm-21.25-16.6a2.91 2.91 0 00-.15 5.44c.86.54.87 1.24 0 1.55a3.82 3.82 0 00-1.73 2.13c-.07.42.74 1.24 1.82 1.82s1 .92-.21.76a3.51 3.51 0 00-2.82 1.42 2.61 2.61 0 00.53 2.12c.5.72.18 1.23-.71 1.15s-2.6 1.06-3 1.48 0 2.79.93 5.27.09 3.07-1.85 1.29-5.88-2.23-6.85-2a2.67 2.67 0 00-1.75 2.58c0 1.18-.52 1.22-1.16.09l-.64-1.13a4.1 4.1 0 00-.76-.92c-2.16 0-4.14-.15-6.57-.32l-.53 1c-.53 1-1 .83-1-.45a5.37 5.37 0 00-1.3-3.14c-.35-.24-1.91.67-3.46 2s-2 .94-1-.91a7.68 7.68 0 00-.07-5.74c-.44-.7-1.93-.88-3.29-.39s-1.6 0-.52-1.17 1.42-3.93 1.3-4.67-1.13-1.35-2.24-1.35-1.13-.56 0-1.23 2.23-3.38 2.43-4.16-1.17-2.17-3-3.07-1.6-1.54.6-1.41 5.77-2.38 6.63-3.22a3.77 3.77 0 001-3.32c-.3-1 .2-1.33 1.1-.76s3.18.24 3.8 0a2.8 2.8 0 001.13-2.5c0-1.15.47-1.26 1-.26a4.05 4.05 0 002.64 1.63c.45 0 1.28-1.16 1.86-2.51s1.47-1.27 2 .17 3.77 3.48 4.75 4 2.7-.2 3.84-1.58 1.66-1 1.15.89 1.22 5.77 1.84 6.83a4.35 4.35 0 003.9 1.66c1.54-.1 1.7.3.36.93z","data-name":"Hole 1"}}),n("path",{attrs:{fill:"currentColor",d:"M185.51 76.49l-10.72-7a2.71 2.71 0 01-.65-4l6.59-8.32c1-1.3.52-2.21-1.12-2l-9.77 1c-1.64.17-2-.56-.68-1.61l6-4.91A1 1 0 00174 48.1L163.6 53a2.15 2.15 0 01-3.2-1.69l-1.75-10.9c-.27-1.63-1.5-2.07-2.74-1l-8.51 7.45a2.31 2.31 0 01-3.7-.66l-.38-.7c-.79-1.45-2-2.76-2.79-2.91s-2.17.81-3.16 2.13l-1.28 1.72a2.12 2.12 0 01-3.59 0l-5.66-7.66a2.11 2.11 0 00-3.58 0l-12.68 16.87a1.89 1.89 0 01-3.36-.16L94.59 34.57c-.86-1.41-1.26-1.25-.89.36l6.3 27.8a5.36 5.36 0 01-1.64 4.84l-5.16 4.3a10.64 10.64 0 01-4.75 2.19c-1.34.15-1.58 1.31-.52 2.58l1.59 1.9a14.9 14.9 0 012.57 5.24l2 8.8a12.19 12.19 0 002.78 5l.09.09a3 3 0 010 4.25l-4.44 4.44c-1.16 1.17-.8 2.43.8 2.81l5.68 1.39a7.07 7.07 0 014.29 10.76l-1.52 2.32a2.63 2.63 0 002.61 4l13-2.07a2.82 2.82 0 013 3.89l-3 7a1.68 1.68 0 002.69 1.89l7.71-7.17a12.37 12.37 0 015.14-2.61l10.93-2.12a5 5 0 014.64 1.91l3.67 5.36c.93 1.36 1.87 1.13 2.08-.5l.86-6.54a16.5 16.5 0 012-5.52l3.9-6.3a3.36 3.36 0 014.26-1.21l3.32 1.66c1.48.74 2.48 0 2.24-1.62l-2.37-15.78a2 2 0 012.51-2.42l11.47 2.15c1.62.31 1.93-.33.69-1.42l-9.06-8c-1.24-1.09-1-2.35.63-2.81l1.83-.52c1.59-.45 1.58-1.18 0-1.61 0 0-3.07-.84-3.62-1.39-1.21-1.21 12.24-3.33 12.24-3.33 1.55-.21 1.75-1.16.37-2.07zm-28.21 8.93c-1.86.94-3.74 5.11-4.14 6.37a4.68 4.68 0 001.46 4.3c1.21 1.11 1 1.53-.46.92a4.41 4.41 0 00-4 .87 4.34 4.34 0 00-.44 2.91c.18 1.07-.37 1.59-1.22 1.13a4.09 4.09 0 00-2.94.15c-.39.24-.46 1.48-.15 2.75s0 1.45-.76.39a3.74 3.74 0 00-3.15-1.24 2.78 2.78 0 00-1.32 2c-.21.91-.86 1-1.43.25s-2.71-1.31-3.34-1.34-2.22 2-3.55 4.52-2.38 2.28-2.35-.55-2.43-6.3-3.31-6.9a2.86 2.86 0 00-3.32.44c-1 .85-1.35.46-.91-.86a12.61 12.61 0 00.7-2.52l-.06-.07-1.55-1.73c-1.06-2.2-2.07-4.5-2.25-5.1s-.56-2.27-.62-2.71-1.89-1-4.08-1.32-2.2-.94 0-1.48 4.29-3.3 4.53-4.17-.68-2.17-2.05-2.91-1.11-1.3.57-1.26 4.15-1.68 4.66-2.31a25.14 25.14 0 011.88-2.05 31.32 31.32 0 013.62-2.65c.77-.41.89-2.49.27-4.64s.08-2.38 1.56-.52 6 2.9 7.32 3a4 4 0 003.39-1.57c.57-.94 2-.43 3.16 1.13s2.85 2.18 3.77 1.36 1.34-.53.95.65a4.29 4.29 0 00.59 3.28c.34.33 1.84.19 3.33-.32s2.08.26 1.3 1.72-.07 5.51.22 6.65 2.1 2 4 1.94 1.97.55.12 1.49z","data-name":"Hole 2"}}),n("path",{attrs:{fill:"currentColor",d:"M117.52 172.68c.06-.47-4-4.94-4-4.94-3.69-4.07-3.74-7.23-.11-7s6.52 0 6.42-.4-3-1.6-6.42-2.61-5.84-5.6-4-8.14a6 6 0 00-4-9.18s-12.45-2.53-13.3-3.17-5.77-15.21-7.21-15-11.77 8.46-16.18 10l-4.11 1.39c-2.61 1.29-6.05.86-7.64-1s-2.91-3.28-3.2-1.75-3 3.46-4.86 1.09l-.57-2.75-.56-2.75c-2.16-2.09-4.25.69-4.66 6.18a103.16 103.16 0 01-2.55 15.23c-.53 2.11-2 4.76-4.11 4a4.11 4.11 0 01-1.77-1.62l-1.51-2.07c-2.29-4-4.36-7.14-4.59-7.06s.57 4.54 1.8 9.91c0 0 .34 1.51-1.64 6.83l-.89 2.4c-2.59.65-4.31 2.77-3.82 4.69l1.45 1.09c1.46 1.09 3.18 1.87 4.33 3.28s1.44 3.79 0 4.86c-2.38 1.74-2.17 5.59-.35 7.91s4.71 3.47 7.46 4.53c1 .37.79 1.76.44 2.73l-1.23 3.44c-1.36 3.78-.41 7 2.1 7.11s8.36 4.21 7.72 7.3 1 10.27 4.66 9 16.28-4.79 20.81-3.28l3.07-2.52c1.82-1.49 1.94-5.48 4-6.5 3.09-1.5 7.81 1.64 9.85 4.4s2.65 6.32 3.28 9.69c.32 1.81 3 2.28 4.46 1.21S99.3 212 99.3 212c1.48-5.3 3.94-8.68 5.46-7.53s4.08-.06 2.31-5.27a42.23 42.23 0 01-2-13.69c.29-5.36 12.35-12.09 12.45-12.83zM85.84 178c.62 1.17.13 1.89-1.08 1.61a4.37 4.37 0 00-3.61.84c-.77.74-2.73 3.42-2.29 4.83s-.3 1.52-1.64.22-3.21-2-4.17-1.55-4.37 1.74-5 3.09-1 1.3-.91-.12-.31-2.69-.89-2.83a26.72 26.72 0 01-3.37-1.38c-.73-.38-1.6-.9-2-1.14a3.68 3.68 0 00-3 .22c-1 .63-1.24.4-.55-.53s1-2 .67-2.34a4.46 4.46 0 00-2.58-1.24c-.84.09-1.12-.42-.64-1.13a2.85 2.85 0 00.5-2.25 8.73 8.73 0 00-2.72-3.09c-1.15-.62-1.25-1.59-.22-2.15a4.21 4.21 0 002-2.72 27.69 27.69 0 011.27-4.41c.27-.59.49-1.09.51-1.12s-.06-1.82-.19-3.91l-.05-.33 3.35-.72c1.83-.38 3.45-1.29 3.59-2s1.25-1.12 2.46-.88a4.66 4.66 0 003-.2c.46-.35 2.3-1.43 2.53-2.81s.77-1.32 1.23.11 1.39 2.75 2.08 2.9a27.51 27.51 0 013.53 1.37 21.37 21.37 0 012.22 1.39 5.7 5.7 0 005.1-.24c1.63-1.15 2-.63.9 1.16s-1.79 3.79-1.44 4.42 1.8 3.38 2.77 3.59 1.18 1.44.47 2.73-.72 3.94.24 4.47.84 1-.27 1-2.18.55-2.38 1.19a7.1 7.1 0 00.58 3.95z","data-name":"Hole 3"}})])])]),n("h1",[e._v("Bulletproof")]),n("div",{staticClass:"subtitle"},[e._v("I Wish I Was...")])]),n("div",{staticClass:"invitation"},[e._v("\n Drop font files anywhere to start\n ")])]),n("WelcomeText",{staticClass:"readme"})],1)},wn=[],Cn=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("p",[e._v("Test your local fonts with the proofing tool developed by a type designer, for type designers. Check out kerning, OpenType features, and language coverage. Explore and animate variation axes in variable fonts.")]),e._m(0),e._m(1),n("h2",[e._v("Available formatting options")]),e._m(2),n("h2",[e._v("Text collection")]),e._m(3),e._m(4),n("p",[e._v("The selection of languages and texts is arbitrary and limited, but contributions are welcome. Currently the focus is on languages written with Latin and Cyrillic.")]),n("h2",[e._v("Kerning tester")]),n("p",[e._v("The app is equipped with a "),n("router-link",{attrs:{to:"/kerning"}},[e._v("kerning string generator")]),e._v(", along with a couple of predefined kerning patterns. "),n("router-link",{attrs:{to:"/help/kerning"}},[e._v("[See kerning generator help]")])],1),n("h2",[e._v("Playground & Animation")]),n("p",[e._v("Any open text sample can be edited. In the "),n("router-link",{attrs:{to:"/editor"}},[e._v("editor tab")]),e._v(" some more options are available: setting bold and italic (with separately selectable fonts), as well as taking snapshots of the settings and using them as animation keyframes — can be useful for recording gifs or videos, or toggling multiple features on and off more quickly. "),n("router-link",{attrs:{to:"/help/animation"}},[e._v("[See animation editor help]")])],1)])},On=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[e._v("To begin, load selected local font files (you can drag'n'drop them right here). Their OpenType features and variation axes will be automatically detected. Everything is processed locally in the browser, using "),n("a",{attrs:{href:"https://github.com/opentypejs/opentype.js"}},[e._v("OpenType.js")]),e._v(".")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[e._v("Or if you don't have any font files handy, look around and test the included fonts: "),n("a",{attrs:{href:"https://github.com/huertatipografica/Alegreya-Sans"}},[e._v("Alegreya Sans")]),e._v(" by Juan Pablo del Peral, "),n("a",{attrs:{href:"https://github.com/etunni/Graduate-Variable-Font"}},[e._v("Graduate")]),e._v(" Variable Font by Eduardo Tunni, and my own Rywalka (work-in-progress).")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",[n("li",[e._v("Changing font size, line height, text alignment, text case transform, text and background colors.")]),n("li",[e._v("Toggling OpenType features on and off.")]),n("li",[e._v("Choosing localization language from the list of languages built into the font.")]),n("li",[e._v("Manipulating OpenType Variation axes.")])])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("p",[e._v("A set of multilingual texts is collected in a separate project "),n("a",{attrs:{href:"https://github.com/hyvyys/language-data"}},[e._v("Language-Data")]),e._v(". It includes a few kinds of texts:")])},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",[n("li",[e._v("ordinary sentences,")]),n("li",[e._v("pangrams,")]),n("li",[e._v("lettering samples — defined as sets of A-Z words preferably repeating the initial letter within),")]),n("li",[n("em",[e._v("gotchas")]),e._v(" — edge cases characteristic to the given language, things to look out for when desigining a typeface.")])])}],_n={},Pn=Object(h["a"])(_n,Cn,On,!1,null,null,null),jn=Pn.exports,Fn={name:"Welcome",components:{WelcomeText:jn},props:{},mounted:function(){this.$store.commit("scrollToTop")}},An=Fn,Ln=(n("2f93"),Object(h["a"])(An,xn,wn,!1,null,"4602ce0c",null)),In=Ln.exports;function Kn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function En(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"\\",a=new RegExp(Xn(n)+"$"),i=[],r=[],o="";e.split("").forEach((function(e){e!==t||a.test(o)?o+=e:(r.push(o),o="")})),r.push(o);var s=new RegExp(Xn(n)+Xn(t),"g");return r=r.map((function(e){return e.replace(s,t)})),[].push.apply(i,r),i}var ta=function(){function e(){Object(He["a"])(this,e)}return Object(ze["a"])(e,null,[{key:"parseSequences",value:function(e){e=e.replace(/^\|/,"").replace(/\|$/,"");var t=ea(e,"|");return t}},{key:"parseClosure",value:function(e){var t=ea(e,"_");return t}},{key:"sets",value:function(e){var t=this,n=[],a=[];return e.forEach((function(e){if(/^@/.test(e)){e=e.replace(/^@/,""),e=e.replace(/\\@/g,"@");var i=[],r="_|\\",o=r.split("").map((function(e){return Xn("\\"+e)})).join("|"),s="([^".concat(Xn(r),"]*|").concat(o,")*"),l=new RegExp("^\\|(".concat(s,"_").concat(s,"\\|)+$"));i=l.test(e)?t.parseSequences(e).map((function(e){return t.parseClosure(e)})):Array.from(e.matchAll(/(.)(.)/g)).map((function(e){return[e[1],e[2]]})),a.push(i)}else if(e=e.replace(/\\@/g,"@"),/^\|.+\|$/.test(e))n.push(t.parseSequences(e));else{var c=[],u=e.matchAll(/([^\\])-(.)/g);Array.from(u).forEach((function(e){var t=Object(Zn["a"])(e,3),n=t[1],a=t[2];[].push.apply(c,Yn(n,a))})),e=e.replace(/([^\\])-(.)/g,"");var g=e.replace(/\\-/g,"-").split("");[].push.apply(c,g),n.push(c)}})),{sets:n,closures:a}}},{key:"kerningString",value:function(e){var t=e.sets.filter((function(e){return e.length}));t=JSON.parse(JSON.stringify(t));var n=Qn.apply(void 0,Object(w["a"])(t)),a=[],i=n[0][0]||"",r="";function o(t){e.closures.length||(t+=i),e.closures.length||(t=t.replace(/(.)\1{2,}/g,"$1$1")),a.push(t)}return n.filter((function(e){return e.length})).forEach((function(t){t[0]!==i&&(o(r),r="",i=t[0]);var n=t.join("");if(e.closures.length){var a=e.closures.map((function(e){return e.map((function(e){return e[0]}))})),s=e.closures.map((function(e){return e.map((function(e){return e[1]}))})),l=Qn.apply(void 0,Object(w["a"])(a)).map((function(e){return e.reverse().join("")})),c=Qn.apply(void 0,Object(w["a"])(s)).map((function(e){return e.join("")})),u=l.map((function(e,t){return[e,c[t]]}));n=u.map((function(e){return"".concat(e[0]).concat(n).concat(e[1])})).join(" ")+" "}r+=n})),o(r),a}}]),e}(),na=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"kerning-editor panel"},[n("transition-group",{staticClass:"fade-transition-group",attrs:{name:"fade",tag:"div"}},[n("div",{key:"title",staticClass:"row"},[n("h3",[e._v("\n Pattern segments\n ")]),n("UiIconButton",{key:"btnAdd",attrs:{color:"primary",size:"small"},on:{click:function(t){return e.$emit("addKerningSegment")}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",fill:"currentColor"}}),n("path",{attrs:{d:"M0 0h24v24H0z",fill:"none"}})])])],1),e._l(e.segments,(function(t,a){return n("div",{key:"segment-"+t.key,staticClass:"row segment-row"},[n("UiSelect",{ref:"segmentSelects",refInFor:!0,attrs:{options:e.builtInSegmentCharacters,dropdownClass:"kerning-segment-select",dropdownPosition:"bottom-end",placeholder:"type or choose",autocomplete:!0},on:{input:function(t){return e.$emit("updateKerningPattern")}},scopedSlots:e._u([{key:"option",fn:function(t){return[n("kbd",[e._v(e._s(t.option||" "))])]}}],null,!0),model:{value:e.segments[a].characters,callback:function(t){e.$set(e.segments[a],"characters",t)},expression:"segments[i].characters"}}),n("UiIconButton",{key:"btnRemove",staticClass:"border",attrs:{color:"default",size:"small"},on:{click:function(t){return e.$emit("removeKerningSegment",a)}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{d:"M19 13H5v-2h14v2z",fill:"currentColor"}}),n("path",{attrs:{d:"M0 0h24v24H0z",fill:"none"}})])])],1)}))],2)],1)},aa=[],ia=["A-Z","a-z","0-9","A-Za-z0-9","FPTVWYfrvwy","aáàâåäãæbcçdðeéèêëfghiíìîïjklmnñoóòôöõøpqrstuúùûüvwxyýÿzþ","aáàăâåäãąāæbcćĉčċçdďđðeéèĕêěëėęēfgğĝġģhĥħiíìĭîïĩįīijıjĵkķlĺľļłŀmnńňñņŋoóòŏôöőõøōœpqĸrŕřŗsśŝšştťţŧuúùŭûůüűũųūvwŵxyýŷÿÿzźžżþ","АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ","абвгдеёжзийклмнопрстуфхцчшщъыьэюя","ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ","αβγδεζηθικλμνξοπρσςτυφχψω",",.",";:","-–—+","|fi|fj|fl|ff|ffi|ffl|fb|fh|fk|ft|","@¡!¿?","@“”‘’","@“”„”„“””","@|“_,”|”_”:|„_”,|„_“.|","@\"\"''","@()[]{}<>"],ra={components:{UiIconButton:ot["a"],UiSelect:W},props:{segments:{type:Array,default:function(){return[]}}},data:function(){return{builtInSegmentCharacters:[""].concat(Object(w["a"])(ia))}},watch:{segments:function(e,t){if(this.$refs.segmentSelects&&this.$refs.segmentSelects.length){var n=0;t.length>0&&(n=this.$refs.segmentSelects.length-1),this.$refs.segmentSelects[n].focus()}}},mounted:function(){this.$refs.segmentSelects&&this.$refs.segmentSelects.length&&this.$refs.segmentSelects[0].focus()},updated:function(){}},oa=ra,sa=(n("6fa0"),Object(h["a"])(oa,na,aa,!1,null,"76dead88",null)),la=sa.exports,ca=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},ua=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("p",[e._v("Kerning strings can be generated in the "),n("a",{attrs:{href:"/kerning"}},[e._v("Kerning tab")]),e._v(". Each string is defined using a "),n("strong",[e._v("pattern")]),e._v(" consisting of character sets called "),n("strong",[e._v("segments")]),e._v(".")]),n("p",[n("strong",[e._v("Regular segments")]),e._v(" are sets of letters, characters, or words that will be interpolated to create the kerning string. There are two kinds of regular segments:")]),n("ul",[n("li",[e._v("Single-character segments, e.g. "),n("code",[e._v("A-Za-ząćę")]),e._v(".")]),n("li",[e._v("Multi-character segments, e.g. "),n("code",[e._v("|fi|fj|fl|")]),e._v(".")])]),n("p",[n("strong",[e._v("Closure segments")]),e._v(" start with an at "),n("code",[e._v("@")]),e._v(" and are used to surround the interpolated substrings with extra characters, typically punctuation. These also come in two flavors:")]),n("ul",[n("li",[e._v("Single character closures, e.g. "),n("code",[e._v("@()[]{}")]),e._v(". Characters after "),n("code",[e._v("@")]),e._v(" are treated as opening–closing pairs.")]),n("li",[e._v("Multiple character closures, e.g. "),n("code",[e._v("@|“_”.|“_.”|“_”,|“_,”|")]),e._v(". Anything before the underscore "),n("code",[e._v("_")]),e._v(" is treated as prefix, everything after — as suffix. Either can be empty, e.g. "),n("code",[e._v("@|_,|")]),e._v(" is a suffix-only closure.")])]),n("p",[e._v("Multiple closure segments can be combined. A pattern of the following segments:")]),n("blockquote",[n("p",[n("code",[e._v("abc")]),n("br"),n("code",[e._v("@“”‘’")]),n("br"),n("code",[e._v("@()")])])]),n("p",[e._v("will yield "),n("code",[e._v("(“a”) (‘a’) (“b”) (‘b’) (“c”) (‘c’)")]),e._v(".")]),n("h2",[e._v("Summary")]),n("p",[e._v("The segment syntax has just five special characters:")]),n("ul",[n("li",[e._v("at "),n("code",[e._v("@")]),e._v(" (only at the beginning of segment) — begins a closure segment,")]),n("li",[e._v("hyphen "),n("code",[e._v("-")]),e._v(" — signifies character range,")]),n("li",[e._v("pipe "),n("code",[e._v("|")]),e._v(" — delimits words or closures,")]),n("li",[e._v("underscore "),n("code",[e._v("_")]),e._v(", — separates closure prefix and suffix,")]),n("li",[e._v("and backslash "),n("code",[e._v("\\")]),e._v(" — escapes the above (and itself), e.g. "),n("code",[e._v("@|\\|_\\|\\_|")]),e._v(" means a closure segment with a "),n("code",[e._v("|")]),e._v(" prefix and "),n("code",[e._v("|_")]),e._v(" suffix.")])])])}],ga={},pa=Object(h["a"])(ga,ca,ua,!1,null,null,null),ha=pa.exports,ma={components:{Kerning:ha,KerningEditor:la},data:function(){return{segments:[],key:0}},computed:{kerningStringLines:function(){var e=this.segments.map((function(e){return e.characters})),t=ta.sets(e),n=t.sets,a=t.closures,i={segments:e,sets:n,closures:a};return ta.kerningString(i)}},mounted:function(){this.addKerningSegment(null,"A-Z"),this.addKerningSegment(null,"aeiou")},methods:{addKerningSegment:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.segments.push({key:this.getKey(),characters:t})},getKey:function(){return++this.key},removeKerningSegment:function(e){this.segments.splice(e,1)}}},da=ma,fa=(n("2d2b"),Object(h["a"])(da,qn,Jn,!1,null,"7273fa36",null)),va=fa.exports,ya=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"help-topic"},[n("div",{staticClass:"help"},[n("div",{staticClass:"reading"},[n("h2",{staticClass:"help-heading"},[n("router-link",{attrs:{to:"/help"}},[e._v("Help / ")]),e._v("Animation editor\n ")],1),n("Animation")],1)]),n("div",{staticClass:"example"})])},Ta=[],ba=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},Sa=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("p",[e._v("In the "),n("a",{attrs:{href:"/editor"}},[e._v("Editor tab")]),e._v(", the right side Contextual sidebar provides a simple animation editor. At any time a frame can be added to take a snapshot of the current settings from the left side Settings sidebar. Most settings are animatable, including continuous settings like Variation Axes, font size and color, as well as discrete settings like OpenType features. Currently a few settings remain unanimated: text align and text case transform.")])])}],ka={},xa=Object(h["a"])(ka,ba,Sa,!1,null,null,null),wa=xa.exports,Ca={components:{Animation:wa}},Oa=Ca,_a=Object(h["a"])(Oa,ya,Ta,!1,null,"3498f484",null),Pa=_a.exports,ja=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"font-tester"},[n("transition",{attrs:{name:"fade-slow",mode:"in-out"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.fontLoading,expression:"!fontLoading"}],staticClass:"font-tester-content"},[n("Pinnable",{staticClass:"site-sidebar sidebar-settings",attrs:{title:"Settings",isPinned:!0,isVisible:e.settingsPanelVisible,trigger:"#settings-trigger"},on:{toggle:function(t){return e.$store.commit("toggleSettingsPanel")},hide:function(t){return e.$store.commit("toggleSettingsPanel",{value:!1})}}},[n("Settings")],1),"languages"===e.selectedSampleKey?n("LanguageSupportSummary",{attrs:{languageSupport:"languageSupport"}}):n("TesterBody",{staticClass:"main",attrs:{texts:e.fontSampleTexts,isCustom:"custom"===e.selectedTextKind},on:{update:function(t){return e.modifyText(t)}}}),n("Pinnable",{staticClass:"site-sidebar sidebar-nav",attrs:{title:e.navElementTitle,isPinned:!0,isVisible:e.contextualPanelVisible,scrolled:!1,trigger:"#nav-trigger"},on:{toggle:function(t){return e.$store.commit("toggleContextualPanel")},hide:function(t){return e.$store.commit("toggleContextualPanel",{value:!1})}}},[n("div",{staticClass:"transition-wrapper u-flex-v",staticStyle:{overflow:"hidden"}},[n("transition",{attrs:{name:"swap"}},[n(e.navElement,{key:e.navElementTitle,tag:"component"})],1)],1)])],1)])],1)},Fa=[],Aa=function(){var e=this,t=e.$createElement,n=e._self._c||t;return!e.forceInvisible&&e.isVisible?n("div",{class:"\n pinnable "+(e.pinned?"pinned":"")+"\n "+(!e.footerVisible&&e.sticky?"sticky":"")+"\n "+(e.footerNear?"footer-near":"")+"\n "+(e.footerNearer?"footer-nearer":"")+"\n "+(e.triggerHover?"trigger-hover":"")+"\n "+(e.scrolled?"pinnable-scrolled":"")+"\n "},[e.title?n("div",{staticClass:"titlebar"},[n("h2",[e._v(e._s(e.title))]),n("UiIconButton",{class:"pin "+(e.pinned?"active":""),attrs:{size:"small"},on:{click:e.togglePinPanel}},[n("svg",{staticStyle:{width:"24px",height:"24px"},attrs:{viewBox:"0 0 24 24","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"currentColor",d:"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z"}})])])],1):e._e(),e.scrolled?n("div",{directives:[{name:"bar",rawName:"v-bar"}],ref:"vb",staticClass:"content"},[n("div",{ref:"scrolled",class:"scrolled "+(e.disableOverscroll?"disable-overscroll":""),on:{wheel:e.onWheel}},[e._t("default")],2)]):e._t("default")],2):e._e()},La=[];function Ia(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Ka(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:3,a=0,i=e;while(null!=i&&a<=n){if(t(i))return i;i=i.parentNode,a++}return null}var Ba={name:"Pinnable",components:{UiIconButton:ot["a"]},props:{title:{type:String},isPinned:{type:Boolean,default:!0},scrolled:{type:Boolean,default:!0},side:{type:String,default:"left"},isVisible:{type:Boolean,default:!0},disableOverscroll:{type:Boolean,default:!0},trigger:String,forceInvisible:{type:Boolean,default:!1},scrollSyncStartEvent:{type:String,default:"scrollSyncStart"},scrollSyncEndEvent:{type:String,default:"scrollSyncEnd"}},data:function(){return{storedScrollPosition:0,pinned:this.isPinned,lastHeight:0,width:null,triggerHover:!1}},computed:Ka({},Object(b["e"])({sticky:function(e){return e.layout.sticky},footerVisible:function(e){return e.layout.footerVisible},footerSentinelVisibleRatio:function(e){return e.layout.footerSentinelVisibleRatio}}),{footerNear:function(){return this.footerSentinelVisibleRatio>0},footerNearer:function(){return this.footerSentinelVisibleRatio>.5}}),watch:{sticky:function(){var e=this;this.$refs.vb&&(setTimeout((function(){return e.$vuebar.refreshScrollbar(e.$refs.vb)}),50),setTimeout((function(){return e.$vuebar.refreshScrollbar(e.$refs.vb)}),100),setTimeout((function(){return e.$vuebar.refreshScrollbar(e.$refs.vb)}),250))}},mounted:function(){this.init()},destroyed:function(){this.cleanup()},methods:{init:function(){this.trigger&&(this.getTriggerElement().addEventListener("mouseenter",this.onTriggerMouseEnter),this.getTriggerElement().addEventListener("mouseleave",this.onTriggerMouseLeave))},cleanup:function(){this.trigger&&(this.getTriggerElement().removeEventListener("mouseenter",this.onTriggerMouseEnter),this.getTriggerElement().removeEventListener("mouseleave",this.onTriggerMouseLeave))},onTriggerMouseEnter:function(){this.triggerHover=!0},onTriggerMouseLeave:function(){this.triggerHover=!1},onWheel:function(e){this.disableOverscroll&&e.stopPropagation()},toggle:function(){this.$emit("toggle")},hide:function(){this.$emit("hide")},getTriggerElement:function(){return document.querySelector(this.trigger)},mysteriousClick:function(e){var t=this.getTriggerElement().contains(e.target);if(!this.pinned&&this.isVisible&&!t){var n=e.target,a=Ea(n,(function(e){return"A"===e.tagName}),3),i=!!a&&a.getAttribute("href").startsWith("#");this.$el.contains(e.target)&&!i||this.hide()}},initScrollSync:function(){var e=this;this.$on(this.scrollSyncStartEvent,(function(){e.storedScrollPosition=e.$refs.scrolled.scrollTop})),this.$on(this.scrollSyncEndEvent,(function(){e.$refs.scrolled.scrollTop=e.storedScrollPosition}))},togglePinPanel:function(){this.pinned=!this.pinned}}},Ma=Ba,Na=(n("692a"),Object(h["a"])(Ma,Aa,La,!1,null,"a9235368",null)),Da=Na.exports,Ha=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"settings"},[n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Font size")]),n("UiNumber",{ref:"settingFontSize",attrs:{value:e.settings.fontSize,min:e.settings.minFontSize,max:e.settings.maxFontSize,step:e.settings.fontSizeStep,clickStep:e.settings.fontSizeClickStep},on:{input:function(t){return e.updateSetting("updateSettings",{fontSize:t})}}}),n("UiSelect",{ref:"settingFontSizeUnit",staticClass:"const3ch",attrs:{value:e.settings.fontSizeUnit,options:e.settings.fontSizeUnitOptions},on:{input:function(t){return e.updateSetting("updateSettings",{fontSizeUnit:t})}}})],1),n("div",{staticClass:"row"},[n("UiTextbox",{ref:"settingWaterfallSizes",attrs:{value:e.settings.waterfallSizes,disabled:!e.settings.enableWaterfall},on:{input:function(t){return e.updateSetting("updateSettings",{waterfallSizes:t})}}}),n("UiCheckbox",{ref:"settingEnableWaterfall",staticClass:"checkbox-small",attrs:{value:e.settings.enableWaterfall},on:{input:function(t){return e.updateSetting("updateSettings",{enableWaterfall:t})}}},[e._v("waterfall")])],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Line height")]),n("UiNumber",{ref:"settingLineHeight",attrs:{value:e.settings.lineHeight,min:e.settings.minLineHeight,max:e.settings.maxLineHeight,step:e.settings.lineHeightStep,clickStep:e.settings.lineHeightClickStep,disabled:e.settings.defaultLineHeight},on:{input:function(t){return e.updateSetting("updateSettings",{lineHeight:t})}}}),n("UiCheckbox",{ref:"settingDefaultLineHeight",staticClass:"checkbox-small",attrs:{value:e.settings.defaultLineHeight},on:{input:function(t){return e.updateSetting("updateSettings",{defaultLineHeight:t})}}},[e._v("default")])],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Tracking")]),n("UiNumber",{ref:"settingTracking",attrs:{value:e.settings.tracking,min:e.settings.minTracking,max:e.settings.maxTracking,step:e.settings.trackingStep,clickStep:e.settings.trackingClickStep,disabled:e.settings.defaultTracking},on:{input:function(t){return e.updateSetting("updateSettings",{tracking:t})}}}),n("UiCheckbox",{ref:"settingDefaultTracking",staticClass:"checkbox-small",attrs:{value:e.settings.defaultTracking},on:{input:function(t){return e.updateSetting("updateSettings",{defaultTracking:t})}}},[e._v("default")])],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Text align")]),n("UiSelect",{ref:"settingTextAlign",attrs:{value:e.settings.textAlign,options:e.settings.textAlignOptions},on:{input:function(t){return e.updateSetting("updateSettings",{textAlign:t})}}})],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Text color")]),n("UiColorPicker",{ref:"settingTextColor",attrs:{value:e.settings.textColor},on:{input:function(t){return e.updateSetting("updateSettings",{textColor:t})}}})],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Back color")]),n("UiColorPicker",{ref:"settingBackgroundColor",attrs:{value:e.settings.backgroundColor},on:{input:function(t){return e.updateSetting("updateSettings",{backgroundColor:t})}}})],1),n("div",{staticClass:"row"},[n("label",{staticClass:"row-label"},[e._v("Case transform")]),n("UiSelect",{ref:"settingTextTransform",attrs:{value:e.settings.textTransform,options:e.settings.textTransformOptions},on:{input:function(t){return e.updateSetting("updateSettings",{textTransform:t})}}})],1),n("div",{staticClass:"row row-check"},[n("UiCheckbox",{ref:"settingWrapLines",attrs:{label:"Break-word",value:e.settings.wrapLines},on:{input:function(t){return e.updateSetting("updateSettings",{wrapLines:t})}}})],1),e.capFeatures.length>0?n("h3",[e._v("Caps")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.capFeatures,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)})),0),e.localization?n("h3",[e._v("Localization")]):e._e(),e.localization?n("div",{staticClass:"setting-group"},[n("div",{staticClass:"row"},[n("UiSelect",{attrs:{value:e.localizationLanguage,options:e.localizationLanguages,keys:e.loclSelectKeys,placeholder:"select language",invalid:e.isLocalizationInvalid,disabled:e.onGotchasTab},on:{input:function(t){return e.updateSetting("updateLoclFeature",{selectedLanguage:t})}},scopedSlots:e._u([{key:"option",fn:function(t){return n("div",{staticClass:"locl-select__option"},[n("div",{staticClass:"name"},[e._v(e._s(t.option.name))]),t.option.name!==t.option.tag?n("div",{staticClass:"tag"},[e._v("("+e._s(t.option.tag)+")")]):e._e()])}}],null,!1,3090818932)}),n("UiCheckbox",{staticClass:"checkbox-small",attrs:{value:e.localization.value},on:{input:function(t){return e.updateSetting("updateGsubFeature",{tag:"locl",value:t})}}},[e._v("enable")])],1)]):e._e(),e.numberFeatures.length>0?n("h3",[e._v("Numbers")]):e._e(),n("div",{staticClass:"setting-group"},[n("div",{staticClass:"row"},[e.pnum&&e.tnum?n("UiRadioGroup",{attrs:{name:"figureWidth",options:e.figureWidths,vertical:!0},model:{value:e.figureWidth,callback:function(t){e.figureWidth=t},expression:"figureWidth"}}):e._e(),e.lnum&&e.onum?n("UiRadioGroup",{attrs:{name:"figureHeight",options:e.figureHeights,vertical:!0},model:{value:e.figureHeight,callback:function(t){e.figureHeight=t},expression:"figureHeight"}}):e._e()],1),e._l(e.numberFeatures,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)}))],2),e.stylisticSets.length>0?n("h3",[e._v("Stylistic Sets")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.stylisticSets,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[t.uiName?[n("strong",[e._v(e._s(t.tag))]),e._v(" "+e._s(t.uiName))]:[e._v(e._s(t.name))]],2)],1)})),0),e.characterVariants.length>0?n("h3",[e._v("Character Variants")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.characterVariants,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[t.uiName?[n("strong",[e._v(e._s(t.tag))]),e._v(" "+e._s(t.uiName))]:[e._v(e._s(t.name))]],2)],1)})),0),e.otherGsub.length>0?n("h3",[e._v("Other GSUB")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.otherGsub,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGsubFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)})),0),e.activeGpos.length>0?n("h3",[e._v("GPOS")]):e._e(),n("div",{staticClass:"setting-group"},e._l(e.activeGpos,(function(t,a){return n("div",{key:a,staticClass:"row"},[n("UiCheckbox",{attrs:{value:t.value},on:{input:function(n){return e.updateSetting("updateGposFeature",{tag:t.tag,value:n})}}},[e._v(e._s(t.name))])],1)})),0),n("h3",[e._v("Variation axes")]),n("div",{staticClass:"setting-group"},[0===e.variationAxes.length?n("div",{staticClass:"notice"},[e._v("\n The selected font is not variable.\n ")]):e._e(),e._l(e.variationAxes,(function(t,a){return n("div",{key:a},[n("div",{staticClass:"row"},[n("UiCheckbox",{attrs:{label:t.displayName,value:t.enabled},on:{input:function(n){return e.updateSetting("updateVariationAxis",{tag:t.tag,enabled:n})}}})],1),n("div",{staticClass:"row"},[n("UiSlider",{staticStyle:{margin:"0 0.5em",flex:"2"},attrs:{value:t.value,min:t.minValue,max:t.maxValue,step:1,snapToStep:!0,showMarker:!1},on:{input:function(n){return e.updateSetting("updateVariationAxis",{tag:t.tag,value:n})}}}),n("UiNumber",{attrs:{value:t.value,min:t.minValue,max:t.maxValue,step:1},on:{input:function(n){return e.updateSetting("updateVariationAxis",{tag:t.tag,value:n})}}})],1)])}))],2)])},za=[],$a=(n("6762"),n("2fdb"),n("f576"),n("6c7b"),n("40c39")),Ua=n("cc32"),Va=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ui-textbox ui-number",class:e.classes},[e.icon||e.$slots.icon?n("div",{staticClass:"ui-textbox__icon-wrapper"},[e._t("icon",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),n("div",{staticClass:"ui-textbox__content"},[n("label",{staticClass:"ui-textbox__label"},[n("div",{staticClass:"ui-textbox__input-wrapper"},[n("input",{directives:[{name:"autofocus",rawName:"v-autofocus",value:e.autofocus,expression:"autofocus"}],ref:"input",staticClass:"ui-textbox__input",attrs:{autocomplete:e.autocomplete?e.autocomplete:null,disabled:e.disabled,inputmode:"numeric",max:e.maxValue,maxlength:e.enforceMaxlength?e.maxlength:null,minlength:e.minlength,min:e.minValue,name:e.name,number:"number"===e.type||null,placeholder:e.hasFloatingLabel?null:e.placeholder,readonly:e.readonly,required:e.required,step:e.stepValue,tabindex:e.tabindex,type:e.type},domProps:{value:null!=e.displayedText?e.displayedText:e.value},on:{blur:e.onBlur2,focus:e.onFocus,change:function(t){return e.updateValue(t.target.value)},input:function(t){return e.updateValue(t.target.value)},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.onKeydownEnter(t)},e.onKeydown]}}),n("div",{staticClass:"ui-number-buttons"},[n("UiIconButton",{staticClass:"ui-number__button ui-select__dropdown-button",attrs:{disabled:e.disabled},nativeOn:{mousedown:function(t){return e.startIncrement(t)},mouseleave:function(t){return e.endIncrementDecrement(t)},mouseup:function(t){return e.endIncrementDecrement(t)}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{transform:"translate(0 24) scale(1 -1) translate(0 -1)",d:"M6.984 9.984h10.03L12 15z"}})])]),n("UiIconButton",{staticClass:"ui-number__button ui-select__dropdown-button",attrs:{disabled:e.disabled},nativeOn:{mousedown:function(t){return e.startDecrement(t)},mouseleave:function(t){return e.endIncrementDecrement(t)},mouseup:function(t){return e.endIncrementDecrement(t)}}},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{transform:"translate(0 -1)",d:"M6.984 9.984h10.03L12 15z"}})])])],1)]),e.label||e.$slots.default?n("div",{staticClass:"ui-textbox__label-text",class:e.labelClasses},[e._t("default",[e._v(e._s(e.label))])],2):e._e()]),e.hasFeedback||e.maxlength?n("div",{staticClass:"ui-textbox__feedback"},[e.showError?n("div",{staticClass:"ui-textbox__feedback-text"},[e._t("error",[e._v(e._s(e.error))])],2):e.showHelp?n("div",{staticClass:"ui-textbox__feedback-text"},[e._t("help",[e._v(e._s(e.help))])],2):e._e(),e.maxlength?n("div",{staticClass:"ui-textbox__counter"},[e._v(e._s(e.valueLength+"/"+e.maxlength))]):e._e()]):e._e()])])},Ra=[],Ga=(n("2e37"),n("4128")),Wa={name:"UiNumber",components:{UiIconButton:ot["a"]},extends:F["a"],props:{value:{type:Number,default:1},step:{type:Number,default:1},clickStep:{type:Number,default:1},clickStepFunction:{type:Function,default:null},minlength:{type:Number,default:-1}},data:function(){return{displayedText:null,tryValue:null,incrementTimeout:null}},computed:{stringValue:function(){return this.tempValue.toLocaleString()},_clickStep:function(){return this.clickStepFunction?this.clickStepFunction(this.value):this.clickStep}},watch:{value:function(e){this.coerceValue(e)},min:function(e){this.valuee&&this.updateValue(e)},step:function(){this.roundedToStep()!==this.value&&this.updateValue(this.roundedToStep())}},methods:{updateValue:function(e){var t=String(e),n=Number(t.replace(",","."));if(!isNaN(n)&&!/[.,]$/.test(t)){var a=this.correctValue(n);Math.abs(n-a)0&&void 0!==arguments[0]?arguments[0]:this.value;return new Ga(e).toNearest(this.step).toNumber()},roundedToClickStep:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.value;return new Ga(e).toNearest(this._clickStep).toNumber()},getSteps:function(e){return e<2?1:Math.ceil(.1*this.value/this._clickStep)},getDelay:function(e){return e<2?200:100},increment:function(e){this.updateValue(this.roundedToClickStep()+e*this._clickStep)},decrement:function(e){this.updateValue(this.roundedToClickStep()-e*this._clickStep)},startIncrement:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.getSteps(n);this.increment(a),this.incrementTimeout=setTimeout((function(){return t.startIncrement(e,n+1)}),this.getDelay(n))},startDecrement:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=this.getSteps(n);this.decrement(a),this.incrementTimeout=setTimeout((function(){return t.startDecrement(e,n+1)}),this.getDelay(n))},endIncrementDecrement:function(){clearTimeout(this.incrementTimeout)}}},qa=Wa,Ja=(n("b47f"),Object(h["a"])(qa,Va,Ra,!1,null,"4d5c14db",null)),Za=Ja.exports,Ya=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"ui-color-picker popover-trigger"},[n("div",{staticClass:"swatch",style:"background-color: "+e.value},[e._v(" ")]),n("ui-textbox",{ref:"input",attrs:{label:e.label,icon:e.icon,help:e.help},on:{input:e.updateFromInput},model:{value:e.textValue,callback:function(t){e.textValue=t},expression:"textValue"}}),n("ui-popover",{ref:"popover",staticClass:"popover",attrs:{position:"bottom-start",constrainToScrollParent:!1},on:{reveal:function(t){return e.$refs.input.focus()}}},[n("sketch-picker",{attrs:{value:e.colorValue,disableFields:!0},on:{input:e.updateFromPicker}})],1)],1)},Qa=[],Xa=n("ecb1");function ei(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ti(e){for(var t=1;t1?n("div",{staticClass:"font-size-label"},[e._v(e._s(t))]):e._e(),n("div",{ref:"content",refInFor:!0,staticClass:"font-sample-content-inner",style:{"font-size":""+t+e.settings.fontSizeUnit},attrs:{contenteditable:"",spellcheck:"false"},on:{paste:e.onPaste,input:e.onInput,focus:e.onFocus}})])})),0):e._l(e.texts,(function(t,a){return n("div",{key:a},["gotchas"===e.selectedSampleKey?n("GotchaHeader",{attrs:{header:t.header}}):t.header.language?n("SampleHeader",{attrs:{header:t.header}}):e._e(),e._l(t.texts,(function(t,a){return n("FontSample",{key:a},e._l(e.fontSizes,(function(a,i){return n("div",{key:i,staticClass:"sample-paragraph"},[e.fontSizes.length>1?n("div",{staticClass:"font-size-label"},[e._v(e._s(a))]):e._e(),n("div",{style:{"font-size":""+a+e.settings.fontSizeUnit},attrs:{contenteditable:e.isContentEditable,spellcheck:"false"},domProps:{innerHTML:e._s(t)},on:{paste:e.onPaste,input:e.onInput,focus:e.onFocus,selectstart:e.onSelectStart,click:e.onSelectEnd}})])})),0)}))],2)}))],2)},mi=[],di=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"font-sample",style:"\n color: "+e.settings.textColor+";\n background: "+e.settings.backgroundColor+";\n line-height: "+(e.settings.defaultLineHeight?"":e.settings.lineHeight)+";\n letter-spacing: "+(e.settings.defaultTracking?"0":e.settings.tracking)+"em;\n text-align: "+e.settings.textAlign+";\n text-transform: "+e.settings.textTransform+";\n font-feature-settings: "+e.fontFeatureSettings+";\n font-variation-settings: "+e.fontVariationSettings+";\n ",attrs:{lang:e.selectedLoclLanguage}},[n("div",{staticClass:"font-sample-content",style:{"word-break":e.settings.wrapLines?"break-all":"normal"}},[e._t("default")],2)])},fi=[];function vi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function yi(e){for(var t=1;t1e6?e/1e6+"M":e>9999?e/1e3+"K":e}var Oi={props:{header:{type:Object,default:function(){}}},methods:{printNumber:Ci}},_i=Oi,Pi=Object(h["a"])(_i,xi,wi,!1,null,"52cde21e",null),ji=Pi.exports,Fi=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"header-flex"},[n("h3",{attrs:{id:e.header.langId}},[e._v(e._s(e.header.topic))]),e.header.description?n("UiButton",{staticClass:"btn",attrs:{color:"none"}},[n("svg",{class:"help-icon",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","svg-inline":"",height:"18",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{fill:"none",d:"M0 0h24v24H0V0z"}}),n("path",{attrs:{fill:"currentColor",d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}})]),n("UiTooltip",{staticClass:"description-tooltip",attrs:{openOn:"click",interactive:!0},domProps:{innerHTML:e._s(e.header.description||"(no description)")}})],1):e._e(),n("div",{staticClass:"tags"},e._l(e.header.tags,(function(t,a){return n("span",{key:a},[e._v(e._s(t))])})),0),n("h3",{attrs:{id:e.header.langId}},[e._v(e._s(e.header.language))]),e.header.opentypeTag?n("div",[n("span",{staticClass:"light"},[e._v("OT code: ")]),n("code",[e._v(e._s(e.header.opentypeTag.padEnd(4," "))+" ")]),n("span",{staticClass:"light"},[e._v("HTML code: ")]),n("code",[e._v(e._s(e.header.htmlTag))])]):e._e(),n("div",[e._v(e._s(e.printNumber(e.header.speakers))+" speakers")])],1)},Ai=[],Li={components:{UiTooltip:te,UiButton:_["a"]},props:{header:{type:Object,default:function(){}}},methods:{printNumber:Ci}},Ii=Li,Ki=(n("a5f5"),Object(h["a"])(Ii,Fi,Ai,!1,null,"257cc006",null)),Ei=Ki.exports;function Bi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Mi(e){for(var t=1;t0?-1:0},on:{focus:function(t){return 0===a?e.highlightAnchor(t):""},keydown:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"space",32,n.key,[" ","Spacebar"])?null:(n.preventDefault(),e.toggleLanguage(t.id,!t.isSelected))}}},[e._v("\n "+e._s(t.language)+"\n ")])],1)})),0)])])},Ui=[];function Vi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!1),e.dispatchEvent(n)}function Ri(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Gi(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:null;null==n&&(n=e.getAttribute("href"));var a=n.slice(1).replace(/\\/g,"\\\\"),i="[id='".concat(a,"']"),r=document.querySelector(i);if(r){var o=r.offsetTop;t.scrollTop=o}}function er(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function tr(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"";this.segments.push({key:this.getKey(),characters:t})},removeKerningSegment:function(e){var t=this;this.requestVuebarFreeze((function(){t.segments.splice(e,1),t.updateKerningPattern()}))},addKerningPattern:function(){var e=this;this.$store.dispatch("addKerningPattern",{segments:["",""]}),this.$nextTick((function(){var t=e.kerningPatterns[0];e.selectPattern(t.id)}))},updateKerningPattern:function(){null!=this.selectedPatternId&&(this.activeElement=document.activeElement,this.$store.dispatch("updateKerningPattern",{id:this.selectedPatternId,segments:this.segments.map((function(e){return e.characters}))}))},removeKerningPattern:function(e){var t=this;this.requestVuebarFreeze((function(){return t.$store.dispatch("removeKerningPattern",{id:e})}))},toggleKerningPattern:function(e,t){this.$store.dispatch("toggleKerningPattern",{id:e,on:t})},clearKerningPatterns:function(){var e=this;this.requestVuebarFreeze((function(){e.$store.dispatch("clearKerningPatterns"),document.querySelector(e.scrolledParentSelector).scrollTop=0}))},revertKerningPatterns:function(){this.$store.dispatch("revertKerningPatterns")},formatPatternId:function(e){return e.replace(/×/g,"×").replace(/-/g,"‑")},requestVuebarFreeze:function(e){var t=this;this.$vuebar.freezeScrollbar(this.$refs.vb),this.$nextTick((function(){e()})),setTimeout((function(){return t.$vuebar.unfreezeScrollbar(t.$refs.vb)}),250)}}},ar=nr,ir=(n("e486"),Object(h["a"])(ar,Yi,Qi,!1,null,"1f701b1d",null)),rr=ir.exports,or=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"language-support-summary"},[n("v-style",[e._v("\n .glyph {\n font-size: "+e._s(e.settings.fontSize)+e._s(e.settings.fontSizeUnit)+";\n }\n ")]),n("div",{staticClass:"main-column"},[n("div",[n("p",[e._v("\n Font supports "),n("strong",[e._v(e._s(e.languageSupport.supportedLanguages.length))]),e._v(" out of "),n("strong",[e._v(e._s(e.languageSupport.languages.length))]),e._v(" listed languages.\n ")]),n("h2",[e._v("\n Supported languages\n "),n("UiSelect",{staticClass:"inline",attrs:{options:e.supportedLanguagesSortingOptions},model:{value:e.supportedLanguagesSorting,callback:function(t){e.supportedLanguagesSorting=t},expression:"supportedLanguagesSorting"}})],1),n("LanguageList",{attrs:{languages:e.supportedLanguages},on:{"select-language":function(t){return e.selectLanguage(t)}}}),n("h2",[e._v("\n Unsupported languages\n "),n("UiSelect",{staticClass:"inline",attrs:{options:e.unsupportedLanguagesSortingOptions},model:{value:e.unsupportedLanguagesSorting,callback:function(t){e.unsupportedLanguagesSorting=t},expression:"unsupportedLanguagesSorting"}})],1),n("LanguageList",{attrs:{languages:e.unsupportedLanguages},on:{"select-language":function(t){return e.selectLanguage(t)}}}),n("h2",[e._v("\n Missing characters\n "),n("UiSelect",{staticClass:"inline",attrs:{options:e.missingCharacterSortingOptions},model:{value:e.missingCharacterSorting,callback:function(t){e.missingCharacterSorting=t},expression:"missingCharacterSorting"}})],1),n("div",e._l(e.missingCharacters,(function(t){return n("div",{key:t.script},[n("h3",[e._v(e._s(t.script))]),e._l(t.characters.filter((function(e){return 1===e.character.length})),(function(t,a){return n("button",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character)+"\n ")])}))],2)})),0),n("h2",[e._v("\n Missing character combinations by script\n ")]),n("div",e._l(e.languageSupport.missingCharacterCombinationsByScript,(function(t){return n("div",{key:t.script},[n("h3",[e._v(e._s(t.script))]),e._l(t.characters,(function(t,a){return n("button",{key:a,class:"glyph support-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character)+"\n ")])}))],2)})),0),n("h2",[e._v("\n Included characters by script\n ")]),n("div",e._l(e.languageSupport.includedCharactersByScript,(function(t){return n("div",{key:t.script},[n("h3",[e._v(e._s(t.script))]),n("FontSample",e._l(t.characters.filter((function(e){return 1===e.character.length})),(function(t,a){return n("div",{key:a,class:"glyph needed-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character))])})),0)],1)})),0),n("h2",[e._v("\n Included character combinations by script\n ")]),n("div",e._l(e.languageSupport.includedCharacterCombinationsByScript,(function(t){return n("div",{key:t.script},[n("h3",[e._v(e._s(t.script))]),n("FontSample",e._l(t.characters,(function(t,a){return n("div",{key:a,class:"glyph needed-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character))])})),0)],1)})),0),n("h2",[e._v("\n All included characters\n ")]),n("FontSample",e._l(e.languageSupport.fontCharacters,(function(t,a){return n("div",{key:a,class:"glyph needed-"+(5-[0,2e4,6e5,2e6,8e6].filter((function(e){return t.speakers>e})).length),on:{click:function(n){return e.selectCharacter(t)}}},[e._v(e._s(t.character))])})),0)],1)]),n("Pinnable",{staticClass:"sidebar",attrs:{isPinned:!0,isVisible:!0,scrolled:!1}},[n("div",{staticClass:"language-character-sidebar"},[e.selectedCharacter?n("ScrollPanel",[n("CharacterPanel",{attrs:{characterInfo:e.selectedCharacter},on:{"select-language":function(t){return e.selectLanguage(t)}}})],1):n("div",{staticClass:"placeholder-info"},[e._v("\n "+e._s(e.languageSupport.characters.filter((function(e){return!e.isMissing})).length)+" /\n "+e._s(e.languageSupport.characters.length)+" characters\n ")]),e.selectedLanguage?n("ScrollPanel",[n("LanguagePanel",{attrs:{lang:e.selectedLanguage.htmlTag,languageInfo:e.selectedLanguage},on:{"character-clicked":function(t){return e.selectCharacter(e.languageSupport.characters.find((function(e){return e.character===t})))}}})],1):n("div",{staticClass:"placeholder-info"},[e._v("\n "+e._s(e.languageSupport.supportedLanguages.length)+" /\n "+e._s(e.languageSupport.languages.length)+" languages\n ")])],1)])],1)},sr=[],lr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"scroll-panel"},[n("div",{directives:[{name:"bar",rawName:"v-bar",value:{preventParentScroll:!0},expression:"{ preventParentScroll: true }"}]},[n("div",{staticClass:"content"},[e._t("default")],2)])])},cr=[],ur={},gr=Object(h["a"])(ur,lr,cr,!1,null,null,null),pr=gr.exports,hr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"language-panel"},[n("div",{staticClass:"info-bar"},[n("strong",[e._v(e._s(e.languageInfo.language)+" ")]),n("div",[n("label",[e._v("OpenType: ")]),n("code",[e._v(e._s(e.languageInfo.opentypeTag))])]),n("div",[n("label",[e._v("HTML: ")]),n("code",[e._v(e._s(e.languageInfo.htmlTag))])]),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/"+e.languageInfo.language.replace(/languages?$/,"_language"),target:"_blank",rel:"noopener noreferrer"}},[e._v("Wikipedia")])]),n("p",[n("strong",[e._v(e._s(e.printNumber(e.languageInfo.speakers))+" speakers")])]),e.languageInfo.missingCharacters.length?n("header",[e._v("missing characters")]):e._e(),n("div",{staticClass:"glyphs"},e._l(e.languageInfo.missingCharacters,(function(t,a){return n("button",{key:a,staticClass:"glyph support-4",on:{click:function(n){return e.$emit("character-clicked",t)}}},[e._v(e._s(t)+"\n ")])})),0),e.languageInfo.includedCharacters.length?n("header",[e._v("supported characters")]):e._e(),n("FontSample",e._l(e.languageInfo.includedCharacters,(function(t,a){return n("div",{key:a,staticClass:"glyph support-full",on:{click:function(n){return e.$emit("character-clicked",t)}}},[e._v(e._s(t))])})),0),e.languageInfo.specialLetters.length!=e.languageInfo.requiredCharacters.length?n("div",[n("header",[e._v("letter units")]),n("FontSample",e._l(e.languageInfo.specialLetters,(function(t,a){return n("div",{key:a,staticClass:"glyph",on:{click:function(n){return e.$emit("character-clicked",t)}}},[e._v(e._s(t))])})),0)],1):e._e(),e.languageInfo.gotchas.length?n("div",[n("header",[e._v("gotchas")]),n("div",{staticClass:"gotchas"},[e._l(e.languageInfo.gotchas,(function(t,a){return n("p",{key:a,domProps:{innerHTML:e._s(""+t.topic+": "+(t.description||t.tags.join(", ")))}})})),n("p",[n("router-link",{attrs:{to:"/gotchas#"+e.languageInfo.language+"-"+e.languageInfo.id}},[e._v("\n go to tests\n ")])],1)],2)]):e._e()],1)},mr=[],dr={components:{FontSample:ki},props:{languageInfo:{type:Object,required:!0}},methods:{printNumber:Ci}},fr=dr,vr=(n("202c"),Object(h["a"])(fr,hr,mr,!1,null,"176280e4",null)),yr=vr.exports,Tr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"language-list"},[e._l(e.languages,(function(t){return n("span",{key:t.language+"-"+t.script,attrs:{lang:t.htmlCode}},[n("UiButton",{class:"language-button support-"+(Math.min(4,Math.ceil((t.missingCharacters||[]).length/5))||"full"),on:{click:function(n){return e.$emit("select-language",t)}}},[n("div",[e._v("\n "+e._s(t.language)+"\n ")]),e.fields.indexOf("coverage")>-1?n("div",{staticClass:"goals"},[e._v("\n "+e._s(t.includedCharacters.length)+"/"+e._s(t.requiredCharacters.length)+"\n ")]):e._e(),t.gotchas.length?n("div",{staticClass:"gotcha-warning-icon"},[n("svg",{class:"help-icon",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",width:"18",height:"18","svg-inline":"",role:"presentation",focusable:"false",tabindex:"-1"}},[n("path",{attrs:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z"}})])]):e._e()])],1)})),n("UiButton",{on:{click:e.copyList}},[e._v("copy list")]),n("textarea",{ref:"list",staticStyle:{position:"absolute",left:"-9999px"},domProps:{value:e.languages.map((function(e){return e.language})).join(", ")}})],2)},br=[],Sr={components:{UiButton:_["a"]},props:{languages:Array,fields:{type:Array,default:function(){return[]}}},methods:{copyList:function(){this.$refs.list.select(),document.execCommand("copy"),window.getSelection().removeAllRanges()}}},kr=Sr,xr=(n("7b88"),Object(h["a"])(kr,Tr,br,!1,null,"6cd5e034",null)),wr=xr.exports,Cr=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"character-panel"},[n("CharacterInfo",{attrs:{character:e.characterInfo.character}}),n("div",[n("strong",[e._v(e._s(e.printNumber(e.characterInfo.speakers)))]),e._v(" speakers total")]),e.characterInfo.obligatoryLanguages?n("div",[n("h4",[e._v("obligatory in "+e._s(e.characterInfo.obligatoryLanguages.length)+" languages")]),n("div",[n("LanguageList",{attrs:{languages:e.characterInfo.obligatoryLanguages,fields:["coverage"]},on:{"select-language":function(t){return e.$emit("select-language",t)}}})],1),n("br"),n("div",[n("a",{attrs:{href:e.wordFinderUrl,target:"_blank",rel:"noopener noreferrer"}},[e._v("find words")])])]):e._e(),e.characterInfo.optionalLanguages?n("div",[e.characterInfo.optionalLanguages.length?n("div",[n("strong",[e._v("optional in "+e._s(e.characterInfo.optionalLanguages.length)+" languages")])]):e._e(),n("div",[e._v("\n "+e._s(e.characterInfo.optionalLanguages.map((function(e){return e.language+" ("+e.optionalCharactersNote+")"})).join(", "))+"\n ")])]):e._e()],1)},Or=[],_r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"character-info"},[n("div",{staticClass:"character-font-preview"},[e._v(e._s(e.character)+" ")]),n("div",{staticClass:"info-bar"},[n("div",{staticStyle:{"font-size":"2.5rem"}},[e._v(e._s(e.characterRepresentation)+" ")]),n("div",[e._v(e._s(e.unicodes))]),n("div",[e._v(e._s(e.glyphnames))]),n("a",{attrs:{href:"https://en.wikipedia.org/wiki/"+e.character,target:"_blank",rel:"noopener noreferrer"}},[e._v("Wikipedia")])])])},Pr=[],jr={props:{character:{type:String,required:!0}},computed:{characterRepresentation:function(){var e=this.character.charCodeAt(0);return(e>767&&e<807?"◌":"")+this.character},codepoints:function(){return this.character.split("").map((function(e){return e.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0")}))},glyphnames:function(){return this.codepoints.map((function(e){return"uni"+e})).join(" + ")},unicodes:function(){return this.codepoints.map((function(e){return"U+"+e})).join(" ")}}},Fr=jr,Ar=(n("3cae"),Object(h["a"])(Fr,_r,Pr,!1,null,"42b34de5",null)),Lr=Ar.exports,Ir={components:{CharacterInfo:Lr,LanguageList:wr},props:{characterInfo:{type:Object,required:!0}},computed:{wordFinderUrl:function(){return"https://wordfinder.italic.space/search"+"?i=".concat(this.characterInfo.character)+"&l=".concat(this.characterInfo.obligatoryLanguages.map((function(e){return e.htmlTag})).join(","))}},methods:{printNumber:Ci}},Kr=Ir,Er=(n("f89b"),Object(h["a"])(Kr,Cr,Or,!1,null,"886201ec",null)),Br=Er.exports;function Mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Nr(e){for(var t=1;t/g,">").replace(/"/g,""").replace(/'/g,"'")}function po(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ho(e){for(var t=1;t-1})).map((function(e){return ho({id:mo++,isSelected:!0},e)})),textHeadings:[],formatRequested:!1,kerningPatterns:[],defaultKerningPatterns:so,fontCharacters:"xyz".split()},mutations:{setText:function(e,t){var n=t.sampleKey,a=t.html;i["a"].set(e.texts,n,a)},modifyText:function(e,t){var n=t.html,a=t.headings,r=void 0===a?[]:a;e.selectedSampleKey in co?this.commit("addCustomText",{html:n}):i["a"].set(e.texts,e.selectedSampleKey,[{html:n}]),e.textHeadings=r},addCustomText:function(e,t){var n=t.html;e.customTextIds.push(fo),e.texts[fo]=[{html:n}],this.commit("selectSample",{kind:"custom",id:fo});var a="/custom/".concat(e.selectedSampleKey);oo.currentRoute.path!==a&&oo.push(a),fo++},removeCustomText:function(e,t){var n=t.id,a=e.customTextIds.indexOf(n);if(e.customTextIds.splice(a,1),delete e.texts[n],oo.currentRoute.path==="/custom/".concat(n)){var i="/lettering";a=0&&a-1-1?e.isSelected=!0:e.isSelected=!1}))},clearKerningPatterns:function(e){e.kerningPatterns.splice(0),this.commit("setText",{sampleKey:"kerning",html:""})},initKerningPatterns:function(e){var t=this;e.defaultKerningPatterns.forEach((function(e){var n=e.segments,a=e.isVisible,i=void 0===a||a;t.commit("addKerningPattern",{segments:n,isVisible:i,toEnd:!0})}))},addKerningPattern:function(e,t){var n=t.segments,a=t.isVisible,i=t.toEnd,r=ta.sets(n),o=r.sets,s=r.closures,l=e.kerningPatterns.slice(),c={segments:n,sets:o,closures:s,isVisible:a};c.lines=ta.kerningString(c),c.name=lo(c),c.id=We("kerning-pattern-"+c.name),i?l.push(c):l.unshift(c),e.kerningPatterns=l},updateKerningPattern:function(e,t){var n=t.id,a=t.segments,i=ta.sets(a),r=i.sets,o=i.closures,s=e.kerningPatterns.slice(),l=s.find((function(e){return e.id===n}));l||(this.commit("addKerningPattern",{segments:a,isVisible:!0}),s=e.kerningPatterns.slice(),l=s[0],l.id=n),l.segments=a,l.sets=r,l.closures=o,l.lines=ta.kerningString(l),l.name=lo(l),e.kerningPatterns=s},removeKerningPattern:function(e,t){var n=t.id,a=e.kerningPatterns.findIndex((function(e){return e.id===n}));e.kerningPatterns.splice(a,1)},toggleKerningPattern:function(e,t){var n=t.id,a=t.on,i=e.kerningPatterns.findIndex((function(e){return e.id===n}));e.kerningPatterns[i].isVisible=a},updateKerning:function(e){var t=e.kerningPatterns.filter((function(e){return e.isVisible})),n=t.map((function(e){var t=e.lines,n=t[0].length>50?t.join("\n"):t.join(" ").replace(/ +/g," ");return{header:'
'),texts:["

".concat(go(n),"

")]}}));this.commit("setText",{sampleKey:"kerning",html:n})},updateFontCharacters:function(e,t){var n=t.characters;e.fontCharacters=n}},actions:{selectScripts:function(e,t){e.state;var n=e.commit,a=e.dispatch,i=t.values;n("selectScripts",{values:i}),a("updateText")},selectLanguage:function(e,t){var n=e.state,a=e.commit,i=e.dispatch,r=t.id,o=t.checked,s=n.languages.find((function(e){return e.id===r}));s.isSelected!==o&&(a("selectLanguage",{id:r,checked:o}),i("updateText"))},selectSample:function(e,t){var n=e.state,a=e.commit,i=e.dispatch,r=t.kind,o=t.id;a("selectSample",{kind:r,id:o}),"kerning"===r&&0===n.kerningPatterns.length&&this.commit("initKerningPatterns"),i("updateText")},updateFontCharacters:function(e,t){var n=e.dispatch,a=t.font,i=a.characters;this.commit("updateFontCharacters",{characters:i}),n("updateText")},updateText:function(e){var t=e.state,n=e.commit,a=e.getters;function i(e){return e.replace(/\s\s+/g,"")}var r=a.selectedSampleTextKey;if(r){var o=a.selectedLanguages.map((function(e){return ho({},e,{id:"".concat(e.language,"-").concat(e.id),texts:e[r]})})),s=[];"gotchas"===a.selectedSampleKey?o.forEach((function(e){var t=e.id,n=e.language,a=e.speakers,r=e.htmlTag,o=e.opentypeTag,l=e.texts,c=l.map((function(e){var s=e.topic,l=e.tags,c=e.tests,u=e.description,g={id:t+"-"+s.replace(/[^a-z0-9]/gi,"_"),langId:t,language:n,speakers:a,htmlTag:r,opentypeTag:o,topic:s,tags:l,tests:c,description:u},p=[i('
\n ').concat(c.map((function(e){return"

".concat(e,"

")})).join(""),"\n
"))];return{header:g,texts:p}}));s=[].concat(Object(w["a"])(s),Object(w["a"])(c))})):s=o.map((function(e){var t,n=e.id,i=e.language,r=e.script,o=e.speakers,s=e.htmlTag,l=e.opentypeTag,c=e.texts,u={langId:n,language:i,script:r,speakers:o,htmlTag:s,opentypeTag:l};switch(a.selectedSampleKey){case"ABCs":var g=c,p=g.split(" ").filter((function(e){return e.split("").every((function(e){return e.toUpperCase()===e}))})),h=g.split(" ").filter((function(e){return e.split("").every((function(e){return e.toLowerCase()===e}))}));if(t=[g,p.join(" "),h.join(" ")],"Latn"==r){var m=p.filter((function(e){return!/^[A-Z ]+$/.test(e)})),d=h.filter((function(e){return!/^[a-z ]+$/.test(e)}));t.push(m.join("")),t.push(d.join(""))}t=t.map((function(e){return"

".concat(e,"

")}));break;default:t=c instanceof Array?c.map((function(e){return"

".concat(e,"

")})):[c].map((function(e){return"

".concat(e,"

")}))}return{header:u,texts:t}})),n("setText",{sampleKey:t.selectedSampleKey,html:s})}else if("kerning"===t.selectedSampleKey)n("updateKerning");else if("glyphs"===t.selectedSampleKey){var l=['

'.concat(t.fontCharacters.map((function(e){return"").concat(e,"")})).join(""),"

")];n("setText",{sampleKey:t.selectedSampleKey,html:[{header:"",texts:l}]})}},addKerningPattern:function(e,t){var n=e.commit,a=t.segments,i=t.toEnd;n("addKerningPattern",{segments:a,isVisible:!0,toEnd:i}),n("updateKerning")},updateKerningPattern:function(e,t){var n=e.commit,a=t.id,i=t.segments;n("updateKerningPattern",{id:a,segments:i}),n("updateKerning")},removeKerningPattern:function(e,t){var n=e.commit,a=t.id;n("removeKerningPattern",{id:a}),n("updateKerning")},toggleKerningPattern:function(e,t){var n=e.commit,a=t.id,i=t.on;n("toggleKerningPattern",{id:a,on:i}),n("updateKerning")},clearKerningPatterns:function(e){var t=e.dispatch,n=e.commit;n("clearKerningPatterns"),setTimeout((function(){t("updateText")}),50)},revertKerningPatterns:function(e){var t=e.dispatch,n=e.commit;n("clearKerningPatterns"),n("initKerningPatterns"),t("updateText")}},getters:{texts:function(e){return e.texts},textHeadings:function(e){return e.textHeadings},formatRequested:function(e){return e.formatRequested},customTextIds:function(e){return e.customTextIds},selectedSampleKey:function(e){return e.selectedSampleKey},selectedSampleTextKey:function(e){return co[e.selectedSampleKey]},scripts:function(e){return e.scripts},selectedScripts:function(e){return e.scripts.filter((function(e){return e.isSelected}))},filteredLanguages:function(e,t){return e.languages.filter((function(e){return t.selectedScripts.find((function(t){return t.script===e.script}))}))},visibleLanguages:function(e,t){return"languages"===t.selectedSampleKey?t.filteredLanguages.filter((function(e){return e.alphabet})):t.selectedSampleTextKey?t.filteredLanguages.filter((function(e){return e[t.selectedSampleTextKey].length})):[]},otherLanguages:function(e,t){return t.filteredLanguages.filter((function(e){return null==t.visibleLanguages.find((function(t){return t.id===e.id}))}))},selectedLanguages:function(e,t){return t.visibleLanguages.filter((function(e){return e.isSelected}))},languages:function(e,t){return[].concat(Object(w["a"])(t.visibleLanguages.map((function(e){return ho({},e,{hasText:!0})}))),Object(w["a"])(t.otherLanguages.map((function(e){return ho({},e,{hasText:!1})}))))},kerningPatterns:function(e){return e.kerningPatterns},languageSupport:function(e,t){function n(e,t,n){return!/^[A-Za-z ]+$/.test(e)&&n.indexOf(e)===t}var a=t.selectedLanguages,i=a.map((function(t){var a=("Latn"===t.script?t.specialCharacters:t.alphabet).split(" ").filter((function(e,t,n){return n.indexOf(e)===t&&e})),i=a.join("").split("").filter(n),r=i.filter((function(t){return t.split("").every((function(t){return e.fontCharacters.indexOf(t)>-1}))})),o=i.filter((function(e){return-1===r.indexOf(e)}));return ho({},t,{specialLetters:a,requiredCharacters:i,includedCharacters:r,missingCharacters:o})})),r=i.filter((function(e){return e.requiredCharacters.length===e.includedCharacters.length})),o=i.filter((function(e){return-1===r.indexOf(e)})),s=i.reduce((function(e,t){return[].concat(Object(w["a"])(t.missingCharacters),Object(w["a"])(e))}),[]),l=[].concat(Object(w["a"])(i.reduce((function(e,t){return[].concat(Object(w["a"])(t.specialLetters),Object(w["a"])(e))}),[])),Object(w["a"])(i.reduce((function(e,t){return[].concat(Object(w["a"])(t.requiredCharacters),Object(w["a"])(e))}),[]))).filter((function(e,t,n){return n.indexOf(e)===t})).map((function(e){return{character:e,unicode:e.charCodeAt(0),obligatoryLanguages:i.filter((function(t){return t.alphabet.indexOf(e)>-1})),optionalLanguages:i.filter((function(t){return t.optionalCharacters.indexOf(e)>-1})),script:(To.find((function(t){return t.alphabet.indexOf(e)>-1}))||{script:"Latn"}).script,isMissing:s.indexOf(e)>-1}})).map((function(e){return ho({},e,{speakers:[].concat(Object(w["a"])(e.obligatoryLanguages),Object(w["a"])(e.optionalLanguages)).reduce((function(e,t){return e+t.speakers}),0)})})),c=So(l,!0),u=So(l,!1),g=xo(c),p=xo(u),h=e.fontCharacters.map((function(e){return{character:e,unicode:e.charCodeAt(0),obligatoryLanguages:i.filter((function(t){return t.alphabet.indexOf(e)>-1})),optionalLanguages:i.filter((function(t){return t.optionalCharacters.indexOf(e)>-1}))}})).map((function(e){return ho({},e,{speakers:[].concat(Object(w["a"])(e.obligatoryLanguages),Object(w["a"])(e.optionalLanguages)).reduce((function(e,t){return e+t.speakers}),0)})}));return{languages:i,supportedLanguages:r,unsupportedLanguages:o,characters:l,missingCharactersByScript:c,includedCharactersByScript:u,missingCharacterCombinationsByScript:g,includedCharacterCombinationsByScript:p,fontCharacters:h}}}};function So(e,t){var n=[];return e.filter((function(e){return e.isMissing===t})).forEach((function(e){var t=n.find((function(t){return t.script===e.script}));t||(t={script:e.script,characters:[]},n.push(t)),t.characters.push(e)})),n.forEach((function(e){e.characters.sort((function(e,t){return e.character.localeCompare(t.character,"en",{caseFirst:"upper"})}))})),n}function ko(e,t){return e.charCodeAt(t)>768&&e.charCodeAt(t)<894}function xo(e){return e.map((function(e){return ho({},e,{characters:e.characters.filter((function(e){return e.character.length>1&&ko(e.character,1)}))})})).filter((function(e){return e.characters.length}))}var wo=function(){function e(){Object(He["a"])(this,e)}return Object(ze["a"])(e,null,[{key:"getDefaults",value:function(){var e=this,t={};return Object.keys(this.definitions).forEach((function(n){var a=e.definitions[n],i=a.default;"function"===typeof i&&a.type!==Function?t[n]=i():t[n]=i})),t}},{key:"getStyleFromSettings",value:function(e){return{fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:e.textAlign,textTransform:e.textTransform,color:e.textColor,backgroundColor:e.backgroundColor,fontFeatureSettings:e.gsubFeatures.concat(e.gposFeatures).map((function(e){return"'".concat(e.tag,"' ").concat(e.value?"1":"0"," ")})).join(", "),fontVariationSettings:e.variationAxes.filter((function(e){return e.enabled})).map((function(e){return"'".concat(e.tag,"' ").concat(e.value," ")})).join(", ")||"unset"}}},{key:"mergeStyleOntoSettings",value:function(e,t){function n(n,a){var i={};(t[n]||"").split(/, ?/g).filter((function(e){return e})).map((function(e){var t=e.match(/[a-z]{4}/i);if(t){var n=t[0];t=e.match(/ \d+/);var a=t?parseInt(t[0]):1;i[n]=a}})),e[a].forEach((function(t,n){t.tag in i&&(e[a][n].value=i[t.tag])}))}e.fontSize=parseFloat(t.fontSize),e.lineHeight=parseFloat(e.lineHeight),e.textColor=t.color,e.backgroundColor=t.backgroundColor,n("fontFeatureSettings","gsubFeatures"),n("fontFeatureSettings","gposFeatures"),n("fontVariationSettings","variationAxes")}},{key:"definitions",get:function(){return{fontFamily:{type:String,default:""},fallbackFontFamily:{type:String,default:"sans-serif"},fontSize:{type:Number,default:24,validate:function(e,t){return e>=t.minFontSize&&e<=t.maxFontSize}},fontSizeUnit:{type:String,default:"pt",kind:"select"},fontSizeUnitOptions:{type:Array,default:function(){return["pt","px","em","vw","vh"]}},enableWaterfall:{type:Boolean,default:!1},waterfallSizes:{type:String,default:"10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,34,36,38,44,64"},defaultLineHeight:{type:Boolean,default:!0},lineHeight:{type:Number,default:1,validate:function(e,t){return e>=t.minLineHeight&&e<=t.maxLineHeight}},minLineHeight:{type:Number,default:.5},maxLineHeight:{type:Number,default:3},lineHeightStep:{type:Number,default:.01},lineHeightClickStep:{type:Number,default:.01},defaultTracking:{type:Boolean,default:!0},tracking:{type:Number,default:0,validate:function(e,t){return e>=t.minTracking&&e<=t.maxTracking}},minTracking:{type:Number,default:-.5},maxTracking:{type:Number,default:2},trackingStep:{type:Number,default:.001},trackingClickStep:{type:Number,default:.01},textAlign:{type:String,default:"left",kind:"select"},textAlignOptions:{type:Array,default:function(){return["left","center","right","justify"]}},textColor:{type:String,default:"#000"},backgroundColor:{type:String,default:"#fff"},textTransform:{type:String,default:"none",kind:"select"},textTransformOptions:{type:Array,default:function(){return["none","uppercase","capitalize","lowercase"]}},wrapLines:{type:Boolean,default:!1},gposFeatures:{type:Object,default:function(){return[]}},gsubFeatures:{type:Object,default:function(){return[]}},variationAxes:{type:Object,default:function(){return[]}},enableVariationAxis:{type:Object,default:function(){return[]}}}}}]),e}();function Co(e){return JSON.parse(JSON.stringify(e))}var Oo={state:{animatedProperties:Object.keys(wo.definitions),animatableProperties:Object.keys(wo.definitions),animationKeyframes:[],activeKeyframeId:null,maxId:0},getters:{animatedProperties:function(e){return e.animatedProperties},animatableProperties:function(e){return e.animatableProperties},animationKeyframes:function(e){return e.animationKeyframes},activeKeyframeId:function(e){return e.activeKeyframeId}},mutations:{setAnimatedProperties:function(e,t){var n=t.properties;e.animatedProperties=n},importAnimationKeyframes:function(e,t){var n=t.keyframes;try{e.animationKeyframes=JSON.parse(n)}catch(a){console.log(a)}},addAnimationKeyframe:function(e){var t=++e.maxId;e.activeKeyframeId=t,e.animationKeyframes.push({id:t}),this.commit("updateKeyframe")},removeAnimationKeyframe:function(e,t){var n=t.id;if(null!=n){var a=e.animationKeyframes.findIndex((function(e){return e.id===n}));e.animationKeyframes.splice(a,1)}},activateKeyframe:function(e,t){var n=t.id;e.activeKeyframeId=n;var a=e.animationKeyframes.find((function(e){return e.id===n})),i=a.snapshot;this.commit("restoreSettings",{snapshot:i})},updateKeyframe:function(e){var t=e.activeKeyframeId;if(null!=t){var n=Co(this.state.settings),a=wo.getStyleFromSettings(this.state.settings),r=e.animationKeyframes.findIndex((function(e){return e.id===t}));i["a"].set(e.animationKeyframes,r,{id:t,snapshot:n,frame:a})}},finishAnimateSettings:function(){this.commit("animateSettings",{settings:null})}},actions:{animateSettings:function(e,t){var n=t.style,a=Co(this.state.settings);wo.mergeStyleOntoSettings(a,n);var i=Co(this.state.settings);Object.keys(a).filter((function(t){return e.state.animatedProperties.indexOf(t)>-1})).forEach((function(e){i[e]=a[e]})),this.commit("animateSettings",{settings:i})}}},_o=".app-content";i["a"].prototype.$scrollToTop=function(){return _o.scrollTo(0,0)};var Po={state:{scrolledParentSelector:_o,sticky:!0,footerVisible:0,footerSentinelVisibleRatio:0},getters:{scrolledParentSelector:function(e){return e.scrolledParentSelector}},mutations:{sticky:function(e,t){var n=t.value;e.sticky=n},updateFooter:function(e,t){var n=t.visible,a=t.ratio;e.footerVisible=n,e.footerSentinelVisibleRatio=a},scrollToTop:function(e){this.commit("sticky",{value:!0}),this.commit("updateFooter",{visible:!1,ratio:0});var t=document.querySelector(e.scrolledParentSelector);t.scrollTop=0}},actions:{}};function jo(e){e.subscribe((function(t,n){var a=t.type,i=t.payload;switch(a){case"updateSetting":null!=n.animation.activeKeyframeId&&e.commit("updateKeyframe");break;case"selectFont":i.font&&e.dispatch("updateFontCharacters",{font:i.font})}}))}var Fo=function(){function e(){Object(He["a"])(this,e)}return Object(ze["a"])(e,[{key:"convert",value:function(e){var t={"ch-cm":.21087588*e.value,"ch-em":.5*e.value,"ch-ex":e.value/.9,"ch-in":.083022*e.value,"ch-mm":2.1087588*e.value,"ch-pc":.5*e.value,"ch-pt":5.977584*e.value,"ch-%":50*e.value,"ch-px":e.value*e.base*.5,"cm-ch":e.value/.21087588,"cm-em":e.value/.42175176,"cm-ex":e.value/.189788292,"cm-in":.39*e.value,"cm-mm":10*e.value,"cm-pc":e.value/.42175176,"cm-pt":28.3464566929*e.value,"cm-%":e.value/e.base*100/2.54*e.dpi,"cm-px":e.value/2.54*e.dpi,"em-ch":e.value/.5,"em-cm":.42175176*e.value,"em-ex":e.value/.45,"em-in":.166044*e.value,"em-mm":e.value/.237106301584,"em-pc":e.value,"em-pt":11.955168*e.value,"em-%":100*e.value,"em-px":e.value*e.base,"em-vh":100*e.value*e.base/S.height,"em-vw":100*e.value*e.base/S.width,"ex-ch":.9*e.value,"ex-cm":.189788292*e.value,"ex-em":.45*e.value,"ex-in":.0747198*e.value,"ex-mm":1.89788292*e.value,"ex-pc":.45*e.value,"ex-pt":5.3798256*e.value,"ex-%":45*e.value,"ex-px":e.value*e.base*.45,"in-ch":e.value/.083022,"in-cm":2.54*e.value,"in-em":e.value/.166044,"in-ex":e.value/.0747198,"in-mm":2.54*e.value*10,"in-pc":e.value/.166044,"in-pt":e.value/.014842519685,"in-%":e.value/e.base*100*e.dpi,"in-px":e.value*e.dpi,"mm-ch":e.value/2.1087588,"mm-cm":e.value/10,"mm-em":.237106301584*e.value,"mm-ex":e.value/1.89788292,"mm-in":.39*e.value/10,"mm-pc":e.value/4.42175176,"mm-pt":e.value/.352777777778,"mm-%":e.value/e.base*100/2.54*e.dpi/10,"mm-px":e.value/2.54*e.dpi/10,"pc-ch":e.value/.5,"pc-cm":.42175176*e.value,"pc-em":e.value,"pc-ex":e.value/.45,"pc-in":.166044*e.value,"pc-mm":4.42175176*e.value,"pc-pt":e.value/.0836458341698,"pc-%":100*e.value,"pc-px":e.value*e.base,"pt-ch":e.value/5.977584,"pt-cm":e.value/28.3464566929,"pt-em":e.value/11.955168,"pt-ex":e.value/5.3798256,"pt-in":.014842519685*e.value,"pt-mm":.352777777778*e.value,"pt-pc":.0836458341698*e.value,"pt-%":e.value/(e.base-4)*100,"pt-px":96*e.value/72,"pt-vh":100*e.value*96/72/S.height,"pt-vw":100*e.value*96/72/S.width,"%-ch":e.value/50,"%-cm":e.value*e.base/100*2.54/e.dpi,"%-em":e.value/100,"%-ex":e.value/45,"%-in":e.value*e.base/100/e.dpi,"%-mm":e.value*e.base/100*2.54/e.dpi*10,"%-pc":e.value/100,"%-pt":e.value*(e.base-4)/100,"%-px":e.value*e.base/100,"px-ch":e.value/e.base/.5,"px-cm":2.54*e.value/e.dpi,"px-em":e.value/e.base,"px-ex":e.value/e.base/.45,"px-in":e.value/e.dpi,"px-mm":2.54*e.value/e.dpi*10,"px-pc":e.value/e.base,"px-pt":72*e.value/96,"px-%":e.value/e.base*100,"px-vh":e.value/S.height*100,"px-vw":e.value/S.width*100,"vh-px":e.value*S.height/100,"vh-pt":.75*e.value*S.height/100,"vh-em":e.value*S.height/100/e.base,"vh-vw":e.value*S.height/S.width,"vw-px":e.value*S.width/100,"vw-pt":.75*e.value*S.width/100,"vw-em":e.value*S.width/100/e.base,"vw-vh":e.value*S.width/S.height},n="".concat(e.from,"-").concat(e.to),a=t[n];return!isNaN(a)&&this.round(a,e.decimals)+e.to}},{key:"getUnits",value:function(){return["ch","cm","em","ex","in","mm","pc","pt","%","px"]}},{key:"round",value:function(e,t){return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}}]),e}();function Ao(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.base,n=void 0===t?16:t,a=e.decimals,i=void 0===a?2:a,r=e.dpi,o=void 0===r?72:r,s=e.from,l=e.to,c=e.value,u=new Fo,g=u.convert({base:n,decimals:i,dpi:o,from:s,to:l,value:c});return g}var Lo={minFontSize:function(){switch(this.fontSizeUnit){case"px":return 4;default:var e=Ao({from:"px",value:4,to:this.fontSizeUnit});return parseFloat(e)}},maxFontSize:function(){switch(this.fontSizeUnit){case"px":return 1e3;default:var e=Ao({from:"px",value:1e3,to:this.fontSizeUnit});return parseFloat(e)}},fontSizeStep:function(){switch(this.fontSizeUnit){case"pt":return.5;case"px":return 1;case"vw":case"vh":case"em":return.01;default:return.01}},fontSizeClickStep:function(){switch(this.fontSizeUnit){case"px":case"pt":case"vw":case"vh":return 1;case"em":return.5;default:return 1}}},Io=n("14fe"),Ko=n.n(Io);function Eo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Bo(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{value:null},n=t.value,a=null!=n?n:!e.settingsPanelVisible;e.settingsPanelVisible=a},toggleContextualPanel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{value:null},n=t.value,a=null!=n?n:!e.contextualPanelVisible;e.contextualPanelVisible=a},fontLoadStart:function(e){e.fontLoading=!0},fontLoadEnd:function(e){e.fontLoading=!1},selectFont:function(e,t){var n=t.font,a=t.boldFont,i=t.italicFont,r=t.boldItalicFont,o=t.headerFont;n&&(e.selectedFont=n,this.commit("mapFontFeatureSettings"),this.commit("mapFontVariationSettings")),a&&(e.selectedBoldFont=a),i&&(e.selectedItalicFont=i),r&&(e.selectedBoldItalicFont=r),o&&(e.selectedHeaderFont=o)},mapFontFeatureSettings:function(e){var t=e.selectedFont;function n(n){var a=t[n],i=e.settings[n];i.forEach((function(e){e.active=!1})),a.forEach((function(e){var t=i.find((function(t){return t.tag===e.tag}));t?(t.active=!0,t.uiName=e.uiName,"locl"===e.tag&&(t.languages=e.languages)):i.push(Bo({},e,{value:Ko.a.indexOf(e.tag)>-1,active:!0}))}))}n("gsubFeatures"),n("gposFeatures")},updateGposFeature:function(e,t){var n=t.tag,a=t.value,i=e.settings.gposFeatures,r=i.find((function(e){return e.tag===n}));r&&(r.value=a),this.commit("updateSetting")},updateGsubFeature:function(e,t){var n=t.tag,a=t.value,i=e.settings.gsubFeatures,r=i.find((function(e){return e.tag===n}));r&&(r.value=a),this.commit("updateSetting")},updateLoclFeature:function(e,t){var n=t.selectedLanguage,a=e.settings.gsubFeatures,i=a.find((function(e){return"locl"===e.tag}));i&&(i.selectedLanguage=n),this.commit("updateSetting")},mapFontVariationSettings:function(e){var t=e.selectedFont;e.settings.variationAxes=t.variationAxes.map((function(t){var n=e.settings.variationAxes.find((function(e){return e.tag===t.tag}));return Bo({},t,{value:n?n.value:t.defaultValue,enabled:!n||n.enabled,displayName:t.name.en})}))},updateVariationAxis:function(e,t){var n=t.tag,a=t.value,i=t.enabled,r=e.settings.variationAxes.find((function(e){return e.tag===n}));r&&(null!=a&&(r.value=a),null!=i&&(r.enabled=i)),this.commit("updateSetting")},resetSettings:function(e){var t=wo.getDefaults();Object.keys(t).forEach((function(n){return e.settings[n]=t[n]})),this.commit("computeParams"),this.commit("updateSetting")},computeParams:function(e){Object.keys(Lo).forEach((function(t){var n=Lo[t],a=n.call(e.settings);a!==e.settings[t]&&(e.settings[t]=a)}))},updateSettings:function(e,t){var n=this;Object.keys(t).forEach((function(a){e.settings,wo.definitions[a];var i=t[a];"fontSizeUnit"==a&&n.commit("convertFontSize",{newUnit:i}),e.settings[a]=i,n.commit("updateSetting")})),this.commit("computeParams")},restoreSettings:function(e,t){var n=t.snapshot;e.settings=n,this.commit("mapFontFeatureSettings"),this.commit("mapFontVariationSettings")},animateSettings:function(e,t){var n=t.settings;n?(e.animating=!0,Object.keys(n).forEach((function(t){i["a"].set(e.displayedSettings,t,n[t])}))):e.animating=!1},updateSetting:function(){},convertFontSize:function(e,t){var n=t.newUnit,a=e.settings,i=String(a.fontSizeStep).replace(/\d+\.?/,"").length,r=Ao({value:a.fontSize,from:a.fontSizeUnit,to:n,decimals:i});a.fontSize=parseFloat(r)}},actions:{fontLoadStart:function(e){var t=e.commit;t("fontLoadStart")},fontLoadEnd:function(e){var t=e.commit;t("fontLoadEnd")}}});jo(Mo);var No=Mo;n("4cf1");i["a"].config.productionTip=!1,i["a"].use(o.a),i["a"].use(s["a"]),i["a"].use(l["a"]),new i["a"]({router:oo,store:No,render:function(e){return e(d)}}).$mount("#app")},"5c0b":function(e,t,n){"use strict";var a=n("fc32"),i=n.n(a);i.a},"5c5b":function(e,t,n){},"692a":function(e,t,n){"use strict";var a=n("fa94"),i=n.n(a);i.a},"6aa9":function(e,t,n){},"6c59":function(e,t,n){e.exports=function(){return new Worker(n.p+"2a3936b6d597c3ad52f0.worker.js")}},"6fa0":function(e,t,n){"use strict";var a=n("c9d8"),i=n.n(a);i.a},"70d6":function(e,t,n){},"71c9":function(e,t,n){"use strict";var a=n("0e25"),i=n.n(a);i.a},"774c":function(e,t,n){"use strict";var a=n("e4e9"),i=n.n(a);i.a},"77c8":function(e,t,n){},"7b88":function(e,t,n){"use strict";var a=n("2c7a"),i=n.n(a);i.a},8203:function(e,t,n){"use strict";var a=n("2785"),i=n.n(a);i.a},"851c":function(e,t,n){},8698:function(e,t,n){},"8cc4":function(e,t,n){"use strict";var a=n("3473"),i=n.n(a);i.a},"911e":function(e,t,n){},9224:function(e){e.exports=JSON.parse('{"name":"bulletproof","version":"1.0.0","private":true,"scripts":{"serve":"vue-cli-service serve","build":"vue-cli-service build","lint":"vue-cli-service lint","test:e2e":"vue-cli-service test:e2e","test:unit":"vue-cli-service test:unit","deploy":"node .\\\\scripts\\\\publish.js"},"dependencies":{"animejs":"^3.2.1","convert-css-length":"^2.0.1","core-js":"^2.6.11","decimal.js":"^10.2.1","detect-browser":"^4.8.0","grapheme-splitter":"^1.0.4","hamsterjs":"^1.1.3","keen-ui":"^1.3.1","language-data":"file:../language-data","lodash.debounce":"^4.0.8","lodash.throttle":"^4.1.1","opentype.js":"github:hyvyys/opentype.js#stylistic-set-names","vue":"^2.6.12","vue-closable":"0.0.3","vue-color":"^2.7.1","vue-observe-visibility":"^0.4.6","vue-router":"^3.4.6","vue-worker":"^1.2.1","vuebar":"github:hyvyys/vuebar","vuex":"^3.5.1"},"devDependencies":{"@vue/cli-plugin-babel":"^3.12.1","@vue/cli-plugin-eslint":"^3.12.1","@vue/cli-plugin-unit-jest":"^3.12.1","@vue/cli-service":"^3.12.1","@vue/test-utils":"1.0.0-beta.29","babel-core":"7.0.0-bridge.0","babel-eslint":"^10.1.0","babel-jest":"^25.5.1","eslint":"^5.16.0","eslint-plugin-vue":"^5.0.0","gh-pages":"^2.2.0","markdown-it":"^9.1.0","node-sass":"^4.14.1","sass-loader":"^7.1.0","vue-svg-inline-loader":"^1.5.0","vue-template-compiler":"^2.6.12","ware-loader":"^0.2.4","worker-loader":"^2.0.0"},"postcss":{"plugins":{"autoprefixer":{}}},"browserslist":["> 1%","last 2 versions"],"jest":{"moduleFileExtensions":["js","jsx","json","vue"],"transform":{"^.+\\\\.vue$":"vue-jest",".+\\\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$":"jest-transform-stub","^.+\\\\.jsx?$":"babel-jest"},"transformIgnorePatterns":["node_modules/(?!(keen-ui|tippy\\\\.js|popper\\\\.js|vue-color)/)"],"moduleNameMapper":{"^@/(.*)$":"/src/$1"},"snapshotSerializers":["jest-serializer-vue"],"testMatch":["**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)"],"testURL":"http://localhost/","watchPlugins":["jest-watch-typeahead/filename","jest-watch-typeahead/testname"]}}')},"9a52":function(e,t,n){},"9bea":function(e,t,n){"use strict";var a=n("4761"),i=n.n(a);i.a},"9cbb":function(e,t,n){},"9fee":function(e,t,n){"use strict";var a=n("e89a"),i=n.n(a);i.a},a01f:function(e,t,n){"use strict";var a=n("cee9"),i=n.n(a);i.a},a11f:function(e,t,n){"use strict";var a=n("4ecf"),i=n.n(a);i.a},a53d:function(e,t,n){},a5f5:function(e,t,n){"use strict";var a=n("e5da"),i=n.n(a);i.a},acd7:function(e,t,n){},b10e:function(e,t,n){"use strict";var a=n("6aa9"),i=n.n(a);i.a},b3be:function(e,t,n){},b47f:function(e,t,n){"use strict";var a=n("9a52"),i=n.n(a);i.a},b68e:function(e,t,n){},b92e:function(e,t,n){"use strict";var a=n("a53d"),i=n.n(a);i.a},bcca:function(e,t,n){"use strict";var a=n("9cbb"),i=n.n(a);i.a},bf45:function(e,t){e.exports=[{name:"Abaza",opentypeTag:"ABA ",htmlTag:"abq"},{name:"Abkhazian",opentypeTag:"ABK ",htmlTag:"ab"},{name:"Acholi",opentypeTag:"ACH ",htmlTag:"ach"},{name:"Achi",opentypeTag:"ACR ",htmlTag:"acr"},{name:"Adyghe",opentypeTag:"ADY ",htmlTag:"ady"},{name:"Afrikaans",opentypeTag:"AFK ",htmlTag:"af"},{name:"Afar",opentypeTag:"AFR ",htmlTag:"aa"},{name:"Agaw",opentypeTag:"AGW ",htmlTag:"ahg"},{name:"Aiton",opentypeTag:"AIO ",htmlTag:"aio"},{name:"Akan",opentypeTag:"AKA ",htmlTag:"ak"},{name:"Alsatian",opentypeTag:"ALS ",htmlTag:"gsw"},{name:"Altai",opentypeTag:"ALT ",htmlTag:"atv"},{name:"Amharic",opentypeTag:"AMH ",htmlTag:"am"},{name:"Anglo-Saxon",opentypeTag:"ANG ",htmlTag:"ang"},{name:"Phonetic transcription—Americanist conventions",opentypeTag:"APPH"},{name:"Arabic",opentypeTag:"ARA ",htmlTag:"ar"},{name:"Aragonese",opentypeTag:"ARG ",htmlTag:"an"},{name:"Aari",opentypeTag:"ARI ",htmlTag:"aiw"},{name:"Rakhine",opentypeTag:"ARK ",htmlTag:"mhv"},{name:"Assamese",opentypeTag:"ASM ",htmlTag:"as"},{name:"Asturian",opentypeTag:"AST ",htmlTag:"ast"},{name:"Athapaskan",opentypeTag:"ATH ",htmlTag:"apk"},{name:"Avar",opentypeTag:"AVR ",htmlTag:"av"},{name:"Awadhi",opentypeTag:"AWA ",htmlTag:"awa"},{name:"Aymara",opentypeTag:"AYM ",htmlTag:"ay"},{name:"Torki",opentypeTag:"AZB ",htmlTag:"azb"},{name:"Azerbaijani",opentypeTag:"AZE ",htmlTag:"az"},{name:"Badaga",opentypeTag:"BAD ",htmlTag:"bfq"},{name:"Banda",opentypeTag:"BAD0",htmlTag:"bad"},{name:"Baghelkhandi",opentypeTag:"BAG ",htmlTag:"bfy"},{name:"Balkar",opentypeTag:"BAL ",htmlTag:"krc"},{name:"Balinese",opentypeTag:"BAN ",htmlTag:"ban"},{name:"Bavarian",opentypeTag:"BAR ",htmlTag:"bar"},{name:"Baulé",opentypeTag:"BAU ",htmlTag:"bci"},{name:"Batak Toba",opentypeTag:"BBC ",htmlTag:"bbc"},{name:"Berber",opentypeTag:"BBR ",htmlTag:"ber"},{name:"Bench",opentypeTag:"BCH ",htmlTag:"bcq"},{name:"Bible Cree",opentypeTag:"BCR "},{name:"Bandjalang",opentypeTag:"BDY ",htmlTag:"bdy"},{name:"Belarussian",opentypeTag:"BEL ",htmlTag:"be"},{name:"Bemba",opentypeTag:"BEM ",htmlTag:"bem"},{name:"Bengali",opentypeTag:"BEN ",htmlTag:"bn"},{name:"Haryanvi",opentypeTag:"BGC ",htmlTag:"bgc"},{name:"Bagri",opentypeTag:"BGQ ",htmlTag:"bgq"},{name:"Bulgarian",opentypeTag:"BGR ",htmlTag:"bg"},{name:"Bhili",opentypeTag:"BHI ",htmlTag:"bhi"},{name:"Bhojpuri",opentypeTag:"BHO ",htmlTag:"bho"},{name:"Bikol",opentypeTag:"BIK ",htmlTag:"bik"},{name:"Bilen",opentypeTag:"BIL ",htmlTag:"byn"},{name:"Bislama",opentypeTag:"BIS ",htmlTag:"bi"},{name:"Kanauji",opentypeTag:"BJJ ",htmlTag:"bjj"},{name:"Blackfoot",opentypeTag:"BKF ",htmlTag:"bla"},{name:"Baluchi",opentypeTag:"BLI ",htmlTag:"bal"},{name:"Pa’o Karen",opentypeTag:"BLK ",htmlTag:"blk"},{name:"Balante",opentypeTag:"BLN ",htmlTag:"bjt"},{name:"Balti",opentypeTag:"BLT ",htmlTag:"bft"},{name:"Bambara (Bamanankan)",opentypeTag:"BMB ",htmlTag:"bm"},{name:"Bamileke",opentypeTag:"BML "},{name:"Bosnian",opentypeTag:"BOS ",htmlTag:"bs"},{name:"Bishnupriya Manipuri",opentypeTag:"BPY ",htmlTag:"bpy"},{name:"Breton",opentypeTag:"BRE ",htmlTag:"br"},{name:"Brahui",opentypeTag:"BRH ",htmlTag:"brh"},{name:"Braj Bhasha",opentypeTag:"BRI ",htmlTag:"bra"},{name:"Burmese",opentypeTag:"BRM ",htmlTag:"my"},{name:"Bodo",opentypeTag:"BRX ",htmlTag:"brx"},{name:"Bashkir",opentypeTag:"BSH ",htmlTag:"ba"},{name:"Burushaski",opentypeTag:"BSK ",htmlTag:"bsk"},{name:"Beti",opentypeTag:"BTI ",htmlTag:"btb"},{name:"Batak Simalungun",opentypeTag:"BTS ",htmlTag:"bts"},{name:"Bugis",opentypeTag:"BUG ",htmlTag:"bug"},{name:"Medumba",opentypeTag:"BYV ",htmlTag:"byv"},{name:"Kaqchikel",opentypeTag:"CAK ",htmlTag:"cak"},{name:"Catalan",opentypeTag:"CAT ",htmlTag:"ca"},{name:"Zamboanga Chavacano",opentypeTag:"CBK ",htmlTag:"cbk"},{name:"Chinantec",opentypeTag:"CCHN",htmlTag:"cco"},{name:"Cebuano",opentypeTag:"CEB ",htmlTag:"ceb"},{name:"Chechen",opentypeTag:"CHE ",htmlTag:"ce"},{name:"Chaha Gurage",opentypeTag:"CHG ",htmlTag:"sgw"},{name:"Chattisgarhi",opentypeTag:"CHH ",htmlTag:"hne"},{name:"Chichewa (Chewa, Nyanja)",opentypeTag:"CHI ",htmlTag:"ny"},{name:"Chukchi",opentypeTag:"CHK ",htmlTag:"ckt"},{name:"Chuukese",opentypeTag:"CHK0",htmlTag:"chk"},{name:"Choctaw",opentypeTag:"CHO ",htmlTag:"cho"},{name:"Chipewyan",opentypeTag:"CHP ",htmlTag:"chp"},{name:"Cherokee",opentypeTag:"CHR ",htmlTag:"chr"},{name:"Chamorro",opentypeTag:"CHA ",htmlTag:"ch"},{name:"Chuvash",opentypeTag:"CHU ",htmlTag:"cv"},{name:"Cheyenne",opentypeTag:"CHY ",htmlTag:"chy"},{name:"Chiga",opentypeTag:"CGG ",htmlTag:"cgg"},{name:"Western Cham",opentypeTag:"CJA ",htmlTag:"cja"},{name:"Eastern Cham",opentypeTag:"CJM ",htmlTag:"cjm"},{name:"Comorian",opentypeTag:"CMR ",htmlTag:"swb"},{name:"Coptic",opentypeTag:"COP ",htmlTag:"cop"},{name:"Cornish",opentypeTag:"COR ",htmlTag:"kw"},{name:"Corsican",opentypeTag:"COS ",htmlTag:"co"},{name:"Creoles",opentypeTag:"CPP ",htmlTag:"crp"},{name:"Cree",opentypeTag:"CRE ",htmlTag:"cr"},{name:"Carrier",opentypeTag:"CRR ",htmlTag:"crx"},{name:"Crimean Tatar",opentypeTag:"CRT ",htmlTag:"crh"},{name:"Kashubian",opentypeTag:"CSB ",htmlTag:"csb"},{name:"Church Slavonic",opentypeTag:"CSL ",htmlTag:"cu"},{name:"Czech",opentypeTag:"CSY ",htmlTag:"cs"},{name:"Chittagonian",opentypeTag:"CTG ",htmlTag:"ctg"},{name:"San Blas Kuna",opentypeTag:"CUK ",htmlTag:"cuk"},{name:"Danish",opentypeTag:"DAN ",htmlTag:"da"},{name:"Dargwa",opentypeTag:"DAR ",htmlTag:"dar"},{name:"Dayi",opentypeTag:"DAX ",htmlTag:"dax"},{name:"Woods Cree",opentypeTag:"DCR ",htmlTag:"cwd"},{name:"German",opentypeTag:"DEU ",htmlTag:"de"},{name:"Dogri",opentypeTag:"DGO ",htmlTag:"dgo"},{name:"Dogri",opentypeTag:"DGR ",htmlTag:"doi"},{name:"Dhangu",opentypeTag:"DHG ",htmlTag:"dhg"},{name:"Divehi (Dhivehi, Maldivian)",opentypeTag:"DHV (deprecated)",htmlTag:"dv"},{name:"Dimli",opentypeTag:"DIQ ",htmlTag:"diq"},{name:"Divehi (Dhivehi, Maldivian)",opentypeTag:"DIV ",htmlTag:"dv"},{name:"Zarma",opentypeTag:"DJR ",htmlTag:"dje"},{name:"Djambarrpuyngu",opentypeTag:"DJR0",htmlTag:"djr"},{name:"Dangme",opentypeTag:"DNG ",htmlTag:"ada"},{name:"Dan",opentypeTag:"DNJ ",htmlTag:"dnj"},{name:"Dinka",opentypeTag:"DNK ",htmlTag:"din"},{name:"Dari",opentypeTag:"DRI ",htmlTag:"prs"},{name:"Dhuwal",opentypeTag:"DUJ ",htmlTag:"duj"},{name:"Dungan",opentypeTag:"DUN ",htmlTag:"dng"},{name:"Dzongkha",opentypeTag:"DZN ",htmlTag:"dz"},{name:"Ebira",opentypeTag:"EBI ",htmlTag:"igb"},{name:"Eastern Cree",opentypeTag:"ECR ",htmlTag:"crj"},{name:"Edo",opentypeTag:"EDO ",htmlTag:"bin"},{name:"Efik",opentypeTag:"EFI ",htmlTag:"efi"},{name:"Greek",opentypeTag:"ELL ",htmlTag:"el"},{name:"Eastern Maninkakan",opentypeTag:"EMK ",htmlTag:"emk"},{name:"English",opentypeTag:"ENG ",htmlTag:"en"},{name:"Erzya",opentypeTag:"ERZ ",htmlTag:"myv"},{name:"Spanish",opentypeTag:"ESP ",htmlTag:"es"},{name:"Central Yupik",opentypeTag:"ESU ",htmlTag:"esu"},{name:"Estonian",opentypeTag:"ETI ",htmlTag:"et"},{name:"Basque",opentypeTag:"EUQ ",htmlTag:"eu"},{name:"Evenki",opentypeTag:"EVK ",htmlTag:"evn"},{name:"Even",opentypeTag:"EVN ",htmlTag:"eve"},{name:"Ewe",opentypeTag:"EWE ",htmlTag:"ee"},{name:"French Antillean",opentypeTag:"FAN ",htmlTag:"acf"},{name:"Fang",opentypeTag:"FAN0",htmlTag:"fan"},{name:"Persian",opentypeTag:"FAR ",htmlTag:"fa"},{name:"Fanti",opentypeTag:"FAT ",htmlTag:"fat"},{name:"Finnish",opentypeTag:"FIN ",htmlTag:"fi"},{name:"Fijian",opentypeTag:"FJI ",htmlTag:"fj"},{name:"Dutch (Flemish)",opentypeTag:"FLE ",htmlTag:"vls"},{name:"Fe’fe’",opentypeTag:"FMP ",htmlTag:"fmp"},{name:"Forest Nenets",opentypeTag:"FNE ",htmlTag:"enf"},{name:"Fon",opentypeTag:"FON ",htmlTag:"fon"},{name:"Faroese",opentypeTag:"FOS ",htmlTag:"fo"},{name:"French",opentypeTag:"FRA ",htmlTag:"fr"},{name:"Cajun French",opentypeTag:"FRC ",htmlTag:"frc"},{name:"Frisian",opentypeTag:"FRI ",htmlTag:"fy"},{name:"Friulian",opentypeTag:"FRL ",htmlTag:"fur"},{name:"Arpitan",opentypeTag:"FRP ",htmlTag:"frp"},{name:"Futa",opentypeTag:"FTA ",htmlTag:"fuf"},{name:"Fulah",opentypeTag:"FUL ",htmlTag:"ff"},{name:"Nigerian Fulfulde",opentypeTag:"FUV ",htmlTag:"fuv"},{name:"Ga",opentypeTag:"GAD ",htmlTag:"gaa"},{name:"Scottish Gaelic (Gaelic)",opentypeTag:"GAE ",htmlTag:"gd"},{name:"Gagauz",opentypeTag:"GAG ",htmlTag:"gag"},{name:"Galician",opentypeTag:"GAL ",htmlTag:"gl"},{name:"Garshuni",opentypeTag:"GAR "},{name:"Garhwali",opentypeTag:"GAW ",htmlTag:"gbm"},{name:"Geez",opentypeTag:"GEZ ",htmlTag:"gez"},{name:"Githabul",opentypeTag:"GIH ",htmlTag:"gih"},{name:"Gilyak",opentypeTag:"GIL ",htmlTag:"niv"},{name:"Kiribati (Gilbertese)",opentypeTag:"GIL0",htmlTag:"gil"},{name:"Kpelle (Guinea)",opentypeTag:"GKP ",htmlTag:"gkp"},{name:"Gilaki",opentypeTag:"GLK ",htmlTag:"glk"},{name:"Gumuz",opentypeTag:"GMZ ",htmlTag:"guk"},{name:"Gumatj",opentypeTag:"GNN ",htmlTag:"gnn"},{name:"Gogo",opentypeTag:"GOG ",htmlTag:"gog"},{name:"Gondi",opentypeTag:"GON ",htmlTag:"gon"},{name:"Greenlandic",opentypeTag:"GRN ",htmlTag:"kl"},{name:"Garo",opentypeTag:"GRO ",htmlTag:"grt"},{name:"Guarani",opentypeTag:"GUA ",htmlTag:"gn"},{name:"Wayuu",opentypeTag:"GUC ",htmlTag:"guc"},{name:"Gupapuyngu",opentypeTag:"GUF ",htmlTag:"guf"},{name:"Gujarati",opentypeTag:"GUJ ",htmlTag:"gu"},{name:"Gusii",opentypeTag:"GUZ ",htmlTag:"guz"},{name:"Haitian (Haitian Creole)",opentypeTag:"HAI ",htmlTag:"ht"},{name:"Halam (Falam Chin)",opentypeTag:"HAL ",htmlTag:"flm"},{name:"Harauti",opentypeTag:"HAR ",htmlTag:"hoj"},{name:"Hausa",opentypeTag:"HAU ",htmlTag:"ha"},{name:"Hawaiian",opentypeTag:"HAW ",htmlTag:"haw"},{name:"Haya",opentypeTag:"HAY ",htmlTag:"hay"},{name:"Hazaragi",opentypeTag:"HAZ ",htmlTag:"haz"},{name:"Hammer-Banna",opentypeTag:"HBN ",htmlTag:"amf"},{name:"Herero",opentypeTag:"HER ",htmlTag:"hz"},{name:"Hiligaynon",opentypeTag:"HIL ",htmlTag:"hil"},{name:"Hindi",opentypeTag:"HIN ",htmlTag:"hi"},{name:"High Mari",opentypeTag:"HMA ",htmlTag:"mrj"},{name:"Hmong",opentypeTag:"HMN ",htmlTag:"hmn"},{name:"Hiri Motu",opentypeTag:"HMO ",htmlTag:"ho"},{name:"Hindko",opentypeTag:"HND ",htmlTag:"hno"},{name:"Ho",opentypeTag:"HO",htmlTag:"hoc"},{name:"Harari",opentypeTag:"HRI ",htmlTag:"har"},{name:"Croatian",opentypeTag:"HRV ",htmlTag:"hr"},{name:"Hungarian",opentypeTag:"HUN ",htmlTag:"hu"},{name:"Armenian",opentypeTag:"HYE ",htmlTag:"hy"},{name:"Armenian East",opentypeTag:"HYE0",htmlTag:"hy"},{name:"Iban",opentypeTag:"IBA ",htmlTag:"iba"},{name:"Ibibio",opentypeTag:"IBB ",htmlTag:"ibb"},{name:"Igbo",opentypeTag:"IBO ",htmlTag:"ig"},{name:"Ijo languages",opentypeTag:"IJO ",htmlTag:"ijc"},{name:"Ido",opentypeTag:"IDO ",htmlTag:"io"},{name:"Interlingue",opentypeTag:"ILE ",htmlTag:"ie"},{name:"Ilokano",opentypeTag:"ILO ",htmlTag:"ilo"},{name:"Interlingua",opentypeTag:"INA ",htmlTag:"ia"},{name:"Indonesian",opentypeTag:"IND ",htmlTag:"id"},{name:"Ingush",opentypeTag:"ING ",htmlTag:"inh"},{name:"Inuktitut",opentypeTag:"INU ",htmlTag:"iu"},{name:"Inupiat",opentypeTag:"IPK ",htmlTag:"ik"},{name:"Phonetic transcription—IPA conventions",opentypeTag:"IPPH"},{name:"Irish",opentypeTag:"IRI ",htmlTag:"ga"},{name:"Irish Traditional",opentypeTag:"IRT ",htmlTag:"ga"},{name:"Icelandic",opentypeTag:"ISL ",htmlTag:"is"},{name:"Inari Sami",opentypeTag:"ISM ",htmlTag:"smn"},{name:"Italian",opentypeTag:"ITA ",htmlTag:"it"},{name:"Hebrew",opentypeTag:"IWR ",htmlTag:"he"},{name:"Jamaican Creole",opentypeTag:"JAM ",htmlTag:"jam"},{name:"Japanese",opentypeTag:"JAN ",htmlTag:"ja"},{name:"Javanese",opentypeTag:"JAV ",htmlTag:"jv"},{name:"Lojban",opentypeTag:"JBO ",htmlTag:"jbo"},{name:"Krymchak",opentypeTag:"JCT ",htmlTag:"jct"},{name:"Yiddish",opentypeTag:"JII ",htmlTag:"yi"},{name:"Ladino",opentypeTag:"JUD ",htmlTag:"lad"},{name:"Jula",opentypeTag:"JUL ",htmlTag:"dyu"},{name:"Kabardian",opentypeTag:"KAB ",htmlTag:"kbd"},{name:"Kabyle",opentypeTag:"KAB0",htmlTag:"kab"},{name:"Kachchi",opentypeTag:"KAC ",htmlTag:"kfr"},{name:"Kalenjin",opentypeTag:"KAL ",htmlTag:"kln"},{name:"Kannada",opentypeTag:"KAN ",htmlTag:"kn"},{name:"Karachay",opentypeTag:"KAR ",htmlTag:"krc"},{name:"Georgian",opentypeTag:"KAT ",htmlTag:"ka"},{name:"Kazakh",opentypeTag:"KAZ ",htmlTag:"kk"},{name:"Makonde",opentypeTag:"KDE ",htmlTag:"kde"},{name:"Kabuverdianu (Crioulo)",opentypeTag:"KEA ",htmlTag:"kea"},{name:"Kebena",opentypeTag:"KEB ",htmlTag:"ktb"},{name:"Kekchi",opentypeTag:"KEK ",htmlTag:"kek"},{name:"Khutsuri Georgian",opentypeTag:"KGE ",htmlTag:"ka"},{name:"Khakass",opentypeTag:"KHA ",htmlTag:"kjh"},{name:"Khanty-Kazim",opentypeTag:"KHK ",htmlTag:"kca"},{name:"Khmer",opentypeTag:"KHM ",htmlTag:"km"},{name:"Khanty-Shurishkar",opentypeTag:"KHS ",htmlTag:"kca"},{name:"Khamti Shan",opentypeTag:"KHT ",htmlTag:"kht"},{name:"Khanty-Vakhi",opentypeTag:"KHV ",htmlTag:"kca"},{name:"Khowar",opentypeTag:"KHW ",htmlTag:"khw"},{name:"Kikuyu (Gikuyu)",opentypeTag:"KIK ",htmlTag:"ki"},{name:"Kirghiz (Kyrgyz)",opentypeTag:"KIR ",htmlTag:"ky"},{name:"Kisii",opentypeTag:"KIS ",htmlTag:"kqs"},{name:"Kirmanjki",opentypeTag:"KIU ",htmlTag:"kiu"},{name:"Southern Kiwai",opentypeTag:"KJD ",htmlTag:"kjd"},{name:"Eastern Pwo Karen",opentypeTag:"KJP ",htmlTag:"kjp"},{name:"Bumthangkha",opentypeTag:"KJZ ",htmlTag:"kjz"},{name:"Kokni",opentypeTag:"KKN ",htmlTag:"kex"},{name:"Kalmyk",opentypeTag:"KLM ",htmlTag:"xal"},{name:"Kamba",opentypeTag:"KMB ",htmlTag:"kam"},{name:"Kumaoni",opentypeTag:"KMN ",htmlTag:"kfy"},{name:"Komo",opentypeTag:"KMO ",htmlTag:"kmw"},{name:"Komso",opentypeTag:"KMS ",htmlTag:"kxc"},{name:"Khorasani Turkic",opentypeTag:"KMZ ",htmlTag:"kmz"},{name:"Kanuri",opentypeTag:"KNR ",htmlTag:"kr"},{name:"Kodagu",opentypeTag:"KOD ",htmlTag:"kfa"},{name:"Korean Old Hangul",opentypeTag:"KOH ",htmlTag:"okm"},{name:"Konkani",opentypeTag:"KOK ",htmlTag:"kok"},{name:"Kikongo",opentypeTag:"KON ",htmlTag:"ktu"},{name:"Komi",opentypeTag:"KOM ",htmlTag:"kv"},{name:"Kongo",opentypeTag:"KON0",htmlTag:"kg"},{name:"Komi-Permyak",opentypeTag:"KOP ",htmlTag:"koi"},{name:"Korean",opentypeTag:"KOR ",htmlTag:"ko"},{name:"Kosraean",opentypeTag:"KOS ",htmlTag:"kos"},{name:"Komi-Zyrian",opentypeTag:"KOZ ",htmlTag:"kpv"},{name:"Kpelle",opentypeTag:"KPL ",htmlTag:"kpe"},{name:"Krio",opentypeTag:"KRI ",htmlTag:"kri"},{name:"Karakalpak",opentypeTag:"KRK ",htmlTag:"kaa"},{name:"Karelian",opentypeTag:"KRL ",htmlTag:"krl"},{name:"Karaim",opentypeTag:"KRM ",htmlTag:"kdr"},{name:"Karen",opentypeTag:"KRN ",htmlTag:"kar"},{name:"Koorete",opentypeTag:"KRT ",htmlTag:"kqy"},{name:"Kashmiri",opentypeTag:"KSH ",htmlTag:"ks"},{name:"Ripuarian",opentypeTag:"KSH0",htmlTag:"ksh"},{name:"Khasi",opentypeTag:"KSI ",htmlTag:"kha"},{name:"Kildin Sami",opentypeTag:"KSM ",htmlTag:"sjd"},{name:"S’gaw Karen",opentypeTag:"KSW ",htmlTag:"ksw"},{name:"Kuanyama",opentypeTag:"KUA ",htmlTag:"kj"},{name:"Kui",opentypeTag:"KUI ",htmlTag:"kxu"},{name:"Kulvi",opentypeTag:"KUL ",htmlTag:"kfx"},{name:"Kumyk",opentypeTag:"KUM ",htmlTag:"kum"},{name:"Kurdish",opentypeTag:"KUR ",htmlTag:"ku"},{name:"Kurukh",opentypeTag:"KUU ",htmlTag:"kru"},{name:"Kuy",opentypeTag:"KUY ",htmlTag:"kdt"},{name:"Koryak",opentypeTag:"KYK ",htmlTag:"kpy"},{name:"Western Kayah",opentypeTag:"KYU ",htmlTag:"kyu"},{name:"Ladin",opentypeTag:"LAD ",htmlTag:"lld"},{name:"Lahuli",opentypeTag:"LAH ",htmlTag:"bfu"},{name:"Lak",opentypeTag:"LAK ",htmlTag:"lbe"},{name:"Lambani",opentypeTag:"LAM ",htmlTag:"lmn"},{name:"Lao",opentypeTag:"LAO ",htmlTag:"lo"},{name:"Latin",opentypeTag:"LAT ",htmlTag:"la"},{name:"Laz",opentypeTag:"LAZ ",htmlTag:"lzz"},{name:"L-Cree",opentypeTag:"LCR ",htmlTag:"crm"},{name:"Ladakhi",opentypeTag:"LDK ",htmlTag:"lbj"},{name:"Lezgi",opentypeTag:"LEZ ",htmlTag:"lez"},{name:"Ligurian",opentypeTag:"LIJ ",htmlTag:"lij"},{name:"Limburgish",opentypeTag:"LIM ",htmlTag:"li"},{name:"Lingala",opentypeTag:"LIN ",htmlTag:"ln"},{name:"Lisu",opentypeTag:"LIS ",htmlTag:"lis"},{name:"Lampung",opentypeTag:"LJP ",htmlTag:"ljp"},{name:"Laki",opentypeTag:"LKI ",htmlTag:"lki"},{name:"Low Mari",opentypeTag:"LMA ",htmlTag:"mhr"},{name:"Limbu",opentypeTag:"LMB ",htmlTag:"lif"},{name:"Lombard",opentypeTag:"LMO ",htmlTag:"lmo"},{name:"Lomwe",opentypeTag:"LMW ",htmlTag:"ngl"},{name:"Loma",opentypeTag:"LOM ",htmlTag:"lom"},{name:"Luri",opentypeTag:"LRC ",htmlTag:"lrc"},{name:"Lower Sorbian",opentypeTag:"LSB ",htmlTag:"dsb"},{name:"Lule Sami",opentypeTag:"LSM ",htmlTag:"smj"},{name:"Lithuanian",opentypeTag:"LTH ",htmlTag:"lt"},{name:"Luxembourgish",opentypeTag:"LTZ ",htmlTag:"lb"},{name:"Luba-Lulua",opentypeTag:"LUA ",htmlTag:"lua"},{name:"Luba-Katanga",opentypeTag:"LUB ",htmlTag:"lu"},{name:"Ganda",opentypeTag:"LUG ",htmlTag:"lg"},{name:"Luyia",opentypeTag:"LUH ",htmlTag:"luy"},{name:"Luo",opentypeTag:"LUO ",htmlTag:"luo"},{name:"Latvian",opentypeTag:"LVI ",htmlTag:"lv"},{name:"Madura",opentypeTag:"MAD ",htmlTag:"mad"},{name:"Magahi",opentypeTag:"MAG ",htmlTag:"mag"},{name:"Marshallese",opentypeTag:"MAH ",htmlTag:"mh"},{name:"Majang",opentypeTag:"MAJ ",htmlTag:"mpe"},{name:"Makhuwa",opentypeTag:"MAK ",htmlTag:"vmw"},{name:"Malayalam",opentypeTag:"MAL ",htmlTag:"ml"},{name:"Mam",opentypeTag:"MAM ",htmlTag:"mam"},{name:"Mansi",opentypeTag:"MAN ",htmlTag:"mns"},{name:"Mapudungun",opentypeTag:"MAP ",htmlTag:"arn"},{name:"Marathi",opentypeTag:"MAR ",htmlTag:"mr"},{name:"Marwari",opentypeTag:"MAW ",htmlTag:"mwr"},{name:"Mbundu",opentypeTag:"MBN ",htmlTag:"kmb"},{name:"Mbo",opentypeTag:"MBO ",htmlTag:"mbo"},{name:"Manchu",opentypeTag:"MCH ",htmlTag:"mnc"},{name:"Moose Cree",opentypeTag:"MCR ",htmlTag:"crm"},{name:"Mende",opentypeTag:"MDE ",htmlTag:"men"},{name:"Mandar",opentypeTag:"MDR ",htmlTag:"mdr"},{name:"Me’en",opentypeTag:"MEN ",htmlTag:"mym"},{name:"Meru",opentypeTag:"MER ",htmlTag:"mer"},{name:"Pattani Malay",opentypeTag:"MFA ",htmlTag:"mfa"},{name:"Morisyen",opentypeTag:"MFE ",htmlTag:"mfe"},{name:"Minangkabau",opentypeTag:"MIN ",htmlTag:"min"},{name:"Mizo",opentypeTag:"MIZ ",htmlTag:"lus"},{name:"Macedonian",opentypeTag:"MKD ",htmlTag:"mk"},{name:"Makasar",opentypeTag:"MKR ",htmlTag:"mak"},{name:"Kituba",opentypeTag:"MKW ",htmlTag:"mkw"},{name:"Male",opentypeTag:"MLE ",htmlTag:"mdy"},{name:"Malagasy",opentypeTag:"MLG ",htmlTag:"mg"},{name:"Malinke",opentypeTag:"MLN ",htmlTag:"mlq"},{name:"Malayalam Reformed",opentypeTag:"MLR ",htmlTag:"ml"},{name:"Malay",opentypeTag:"MLY ",htmlTag:"ms"},{name:"Mandinka",opentypeTag:"MND ",htmlTag:"mnk"},{name:"Mongolian",opentypeTag:"MNG ",htmlTag:"mn"},{name:"Manipuri",opentypeTag:"MNI ",htmlTag:"mni"},{name:"Maninka",opentypeTag:"MNK ",htmlTag:"man"},{name:"Manx",opentypeTag:"MNX ",htmlTag:"gv"},{name:"Mohawk",opentypeTag:"MOH ",htmlTag:"moh"},{name:"Moksha",opentypeTag:"MOK ",htmlTag:"mdf"},{name:"Moldavian",opentypeTag:"MOL ",htmlTag:"mol"},{name:"Mon",opentypeTag:"MON ",htmlTag:"mnw"},{name:"Moroccan",opentypeTag:"MOR "},{name:"Mossi",opentypeTag:"MOS ",htmlTag:"mos"},{name:"Maori",opentypeTag:"MRI ",htmlTag:"mi"},{name:"Maithili",opentypeTag:"MTH ",htmlTag:"mai"},{name:"Maltese",opentypeTag:"MTS ",htmlTag:"mt"},{name:"Mundari",opentypeTag:"MUN ",htmlTag:"unr"},{name:"Muscogee",opentypeTag:"MUS ",htmlTag:"mus"},{name:"Mirandese",opentypeTag:"MWL ",htmlTag:"mwl"},{name:"Hmong Daw",opentypeTag:"MWW ",htmlTag:"mww"},{name:"Mayan",opentypeTag:"MYN ",htmlTag:"myn"},{name:"Mazanderani",opentypeTag:"MZN ",htmlTag:"mzn"},{name:"Naga-Assamese",opentypeTag:"NAG ",htmlTag:"nag"},{name:"Nahuatl",opentypeTag:"NAH ",htmlTag:"nah"},{name:"Nanai",opentypeTag:"NAN ",htmlTag:"gld"},{name:"Neapolitan",opentypeTag:"NAP ",htmlTag:"nap"},{name:"Naskapi",opentypeTag:"NAS ",htmlTag:"nsk"},{name:"Nauruan",opentypeTag:"NAU ",htmlTag:"na"},{name:"Navajo",opentypeTag:"NAV ",htmlTag:"nv"},{name:"N-Cree",opentypeTag:"NCR ",htmlTag:"csw"},{name:"Ndebele",opentypeTag:"NDB ",htmlTag:"nr"},{name:"Ndau",opentypeTag:"NDC ",htmlTag:"ndc"},{name:"Ndonga",opentypeTag:"NDG ",htmlTag:"ng"},{name:"Low Saxon",opentypeTag:"NDS ",htmlTag:"nds"},{name:"Nepali",opentypeTag:"NEP ",htmlTag:"ne"},{name:"Newari",opentypeTag:"NEW ",htmlTag:"new"},{name:"Ngbaka",opentypeTag:"NGA ",htmlTag:"nga"},{name:"Nagari",opentypeTag:"NGR "},{name:"Norway House Cree",opentypeTag:"NHC ",htmlTag:"csw"},{name:"Nisi",opentypeTag:"NIS ",htmlTag:"dap"},{name:"Niuean",opentypeTag:"NIU ",htmlTag:"niu"},{name:"Nyankole",opentypeTag:"NKL ",htmlTag:"nyn"},{name:"N’Ko",opentypeTag:"NKO ",htmlTag:"nqo"},{name:"Dutch",opentypeTag:"NLD ",htmlTag:"nl"},{name:"Nimadi",opentypeTag:"NOE ",htmlTag:"noe"},{name:"Nogai",opentypeTag:"NOG ",htmlTag:"nog"},{name:"Norwegian",opentypeTag:"NOR ",htmlTag:"nb"},{name:"Novial",opentypeTag:"NOV ",htmlTag:"nov"},{name:"Northern Sami",opentypeTag:"NSM ",htmlTag:"se"},{name:"Sotho, Northern",opentypeTag:"NSO ",htmlTag:"nso"},{name:"Northern Tai",opentypeTag:"NTA ",htmlTag:"nod"},{name:"Esperanto",opentypeTag:"NTO ",htmlTag:"eo"},{name:"Nyamwezi",opentypeTag:"NYM ",htmlTag:"nym"},{name:"Norwegian Nynorsk (Nynorsk, Norwegian)",opentypeTag:"NYN ",htmlTag:"nn"},{name:"Mbembe Tigon",opentypeTag:"NZA ",htmlTag:"nza"},{name:"Occitan",opentypeTag:"OCI ",htmlTag:"oc"},{name:"Oji-Cree",opentypeTag:"OCR ",htmlTag:"ojs"},{name:"Ojibway",opentypeTag:"OJB ",htmlTag:"oj"},{name:"Odia (formerly Oriya)",opentypeTag:"ORI ",htmlTag:"or"},{name:"Oromo",opentypeTag:"ORO ",htmlTag:"om"},{name:"Ossetian",opentypeTag:"OSS ",htmlTag:"os"},{name:"Palestinian Aramaic",opentypeTag:"PAA ",htmlTag:"sam"},{name:"Pangasinan",opentypeTag:"PAG ",htmlTag:"pag"},{name:"Pali",opentypeTag:"PAL ",htmlTag:"pi"},{name:"Pampangan",opentypeTag:"PAM ",htmlTag:"pam"},{name:"Punjabi",opentypeTag:"PAN ",htmlTag:"pa"},{name:"Palpa",opentypeTag:"PAP ",htmlTag:"plp"},{name:"Papiamentu",opentypeTag:"PAP0",htmlTag:"pap"},{name:"Pashto",opentypeTag:"PAS ",htmlTag:"ps"},{name:"Palauan",opentypeTag:"PAU ",htmlTag:"pau"},{name:"Bouyei",opentypeTag:"PCC ",htmlTag:"pcc"},{name:"Picard",opentypeTag:"PCD ",htmlTag:"pcd"},{name:"Pennsylvania German",opentypeTag:"PDC ",htmlTag:"pdc"},{name:"Polytonic Greek",opentypeTag:"PGR ",htmlTag:"el"},{name:"Phake",opentypeTag:"PHK ",htmlTag:"phk"},{name:"Norfolk",opentypeTag:"PIH ",htmlTag:"pih"},{name:"Filipino",opentypeTag:"PIL ",htmlTag:"fil"},{name:"Palaung",opentypeTag:"PLG ",htmlTag:"pce"},{name:"Polish",opentypeTag:"PLK ",htmlTag:"pl"},{name:"Piemontese",opentypeTag:"PMS ",htmlTag:"pms"},{name:"Western Panjabi",opentypeTag:"PNB ",htmlTag:"pnb"},{name:"Pocomchi",opentypeTag:"POH ",htmlTag:"poh"},{name:"Pohnpeian",opentypeTag:"PON ",htmlTag:"pon"},{name:"Provençal / Old Provençal",opentypeTag:"PRO ",htmlTag:"pro"},{name:"Portuguese",opentypeTag:"PTG ",htmlTag:"pt"},{name:"Western Pwo Karen",opentypeTag:"PWO ",htmlTag:"pwo"},{name:"Chin",opentypeTag:"QIN ",htmlTag:"bgr"},{name:"K’iche’",opentypeTag:"QUC ",htmlTag:"quc"},{name:"Quechua (Bolivia)",opentypeTag:"QUH ",htmlTag:"quh"},{name:"Quechua",opentypeTag:"QUZ ",htmlTag:"quz"},{name:"Quechua (Ecuador)",opentypeTag:"QVI ",htmlTag:"qvi"},{name:"Quechua (Peru)",opentypeTag:"QWH ",htmlTag:"qwh"},{name:"Rajasthani",opentypeTag:"RAJ ",htmlTag:"raj"},{name:"Rarotongan",opentypeTag:"RAR ",htmlTag:"rar"},{name:"Russian Buriat",opentypeTag:"RBU ",htmlTag:"bxr"},{name:"R-Cree",opentypeTag:"RCR ",htmlTag:"atj"},{name:"Rejang",opentypeTag:"REJ ",htmlTag:"rej"},{name:"Riang",opentypeTag:"RIA ",htmlTag:"ria"},{name:"Tarifit",opentypeTag:"RIF ",htmlTag:"rif"},{name:"Ritarungo",opentypeTag:"RIT ",htmlTag:"rit"},{name:"Arakwal",opentypeTag:"RKW ",htmlTag:"rkw"},{name:"Romansh",opentypeTag:"RMS ",htmlTag:"rm"},{name:"Vlax Romani",opentypeTag:"RMY ",htmlTag:"rmy"},{name:"Romanian",opentypeTag:"ROM ",htmlTag:"ro"},{name:"Romany",opentypeTag:"ROY ",htmlTag:"rom"},{name:"Rusyn",opentypeTag:"RSY ",htmlTag:"rue"},{name:"Rotuman",opentypeTag:"RTM ",htmlTag:"rtm"},{name:"Kinyarwanda",opentypeTag:"RUA ",htmlTag:"rw"},{name:"Rundi",opentypeTag:"RUN ",htmlTag:"rn"},{name:"Aromanian",opentypeTag:"RUP ",htmlTag:"rup"},{name:"Russian",opentypeTag:"RUS ",htmlTag:"ru"},{name:"Sadri",opentypeTag:"SAD ",htmlTag:"sck"},{name:"Sanskrit",opentypeTag:"SAN ",htmlTag:"sa"},{name:"Sasak",opentypeTag:"SAS ",htmlTag:"sas"},{name:"Santali",opentypeTag:"SAT ",htmlTag:"sat"},{name:"Sayisi",opentypeTag:"SAY ",htmlTag:"chp"},{name:"Sicilian",opentypeTag:"SCN ",htmlTag:"scn"},{name:"Scots",opentypeTag:"SCO ",htmlTag:"sco"},{name:"Sekota",opentypeTag:"SEK ",htmlTag:"xan"},{name:"Selkup",opentypeTag:"SEL ",htmlTag:"sel"},{name:"Old Irish",opentypeTag:"SGA ",htmlTag:"sga"},{name:"Sango",opentypeTag:"SGO ",htmlTag:"sg"},{name:"Samogitian",opentypeTag:"SGS ",htmlTag:"sgs"},{name:"Tachelhit",opentypeTag:"SHI ",htmlTag:"shi"},{name:"Shan",opentypeTag:"SHN ",htmlTag:"shn"},{name:"Sibe",opentypeTag:"SIB ",htmlTag:"sjo"},{name:"Sidamo",opentypeTag:"SID ",htmlTag:"sid"},{name:"Silte Gurage",opentypeTag:"SIG ",htmlTag:"xst"},{name:"Skolt Sami",opentypeTag:"SKS ",htmlTag:"sms"},{name:"Slovak",opentypeTag:"SKY ",htmlTag:"sk"},{name:"North Slavey",opentypeTag:"SCS ",htmlTag:"scs"},{name:"Slavey",opentypeTag:"SLA ",htmlTag:"scs"},{name:"Slovenian",opentypeTag:"SLV ",htmlTag:"sl"},{name:"Somali",opentypeTag:"SML ",htmlTag:"so"},{name:"Samoan",opentypeTag:"SMO ",htmlTag:"sm"},{name:"Sena",opentypeTag:"SNA ",htmlTag:"seh"},{name:"Shona",opentypeTag:"SNA0",htmlTag:"sn"},{name:"Sindhi",opentypeTag:"SND ",htmlTag:"sd"},{name:"Sinhala (Sinhalese)",opentypeTag:"SNH ",htmlTag:"si"},{name:"Soninke",opentypeTag:"SNK ",htmlTag:"snk"},{name:"Sodo Gurage",opentypeTag:"SOG ",htmlTag:"gru"},{name:"Songe",opentypeTag:"SOP ",htmlTag:"sop"},{name:"Sotho, Southern",opentypeTag:"SOT ",htmlTag:"st"},{name:"Albanian",opentypeTag:"SQI ",htmlTag:"sq"},{name:"Serbian",opentypeTag:"SRB ",htmlTag:"sr"},{name:"Sardinian",opentypeTag:"SRD ",htmlTag:"sc"},{name:"Saraiki",opentypeTag:"SRK ",htmlTag:"skr"},{name:"Serer",opentypeTag:"SRR ",htmlTag:"srr"},{name:"South Slavey",opentypeTag:"SSL ",htmlTag:"xsl"},{name:"Southern Sami",opentypeTag:"SSM ",htmlTag:"sma"},{name:"Saterland Frisian",opentypeTag:"STQ ",htmlTag:"stq"},{name:"Sukuma",opentypeTag:"SUK ",htmlTag:"suk"},{name:"Sundanese",opentypeTag:"SUN ",htmlTag:"su"},{name:"Suri",opentypeTag:"SUR ",htmlTag:"suq"},{name:"Svan",opentypeTag:"SVA ",htmlTag:"sva"},{name:"Swedish",opentypeTag:"SVE ",htmlTag:"sv"},{name:"Swadaya Aramaic",opentypeTag:"SWA ",htmlTag:"aii"},{name:"Swahili",opentypeTag:"SWK ",htmlTag:"sw"},{name:"Swati",opentypeTag:"SWZ ",htmlTag:"ss"},{name:"Sutu",opentypeTag:"SXT ",htmlTag:"ngo"},{name:"Upper Saxon",opentypeTag:"SXU ",htmlTag:"sxu"},{name:"Sylheti",opentypeTag:"SYL ",htmlTag:"syl"},{name:"Syriac",opentypeTag:"SYR ",htmlTag:"aii"},{name:"Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')",opentypeTag:"SYRE",htmlTag:"syc"},{name:"Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')",opentypeTag:"SYRJ",htmlTag:"syc"},{name:"Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')",opentypeTag:"SYRN",htmlTag:"syc"},{name:"Silesian",opentypeTag:"SZL ",htmlTag:"szl"},{name:"Tabasaran",opentypeTag:"TAB ",htmlTag:"tab"},{name:"Tajiki",opentypeTag:"TAJ ",htmlTag:"tg"},{name:"Tamil",opentypeTag:"TAM ",htmlTag:"ta"},{name:"Tatar",opentypeTag:"TAT ",htmlTag:"tt"},{name:"TH-Cree",opentypeTag:"TCR ",htmlTag:"cwd"},{name:"Dehong Dai",opentypeTag:"TDD ",htmlTag:"tdd"},{name:"Telugu",opentypeTag:"TEL ",htmlTag:"te"},{name:"Tetum",opentypeTag:"TET ",htmlTag:"tet"},{name:"Tagalog",opentypeTag:"TGL ",htmlTag:"tl"},{name:"Tongan",opentypeTag:"TGN ",htmlTag:"to"},{name:"Tigre",opentypeTag:"TGR ",htmlTag:"tig"},{name:"Tigrinya",opentypeTag:"TGY ",htmlTag:"ti"},{name:"Thai",opentypeTag:"THA ",htmlTag:"th"},{name:"Tahitian",opentypeTag:"THT ",htmlTag:"ty"},{name:"Tibetan",opentypeTag:"TIB ",htmlTag:"bo"},{name:"Tiv",opentypeTag:"TIV ",htmlTag:"tiv"},{name:"Turkmen",opentypeTag:"TKM ",htmlTag:"tk"},{name:"Tamashek",opentypeTag:"TMH ",htmlTag:"tmh"},{name:"Temne",opentypeTag:"TMN ",htmlTag:"tem"},{name:"Tswana",opentypeTag:"TNA ",htmlTag:"tn"},{name:"Tundra Nenets",opentypeTag:"TNE ",htmlTag:"enh"},{name:"Tonga",opentypeTag:"TNG ",htmlTag:"toi"},{name:"Todo",opentypeTag:"TOD ",htmlTag:"xal"},{name:"Toma",opentypeTag:"TOD0",htmlTag:"tod"},{name:"Tok Pisin",opentypeTag:"TPI ",htmlTag:"tpi"},{name:"Turkish",opentypeTag:"TRK ",htmlTag:"tr"},{name:"Tsonga",opentypeTag:"TSG ",htmlTag:"ts"},{name:"Tshangla",opentypeTag:"TSJ ",htmlTag:"tsj"},{name:"Turoyo Aramaic",opentypeTag:"TUA ",htmlTag:"tru"},{name:"Tulu",opentypeTag:"TUM ",htmlTag:"tum"},{name:"Tumbuka",opentypeTag:"TUL ",htmlTag:"tcy"},{name:"Tuvin",opentypeTag:"TUV ",htmlTag:"tyv"},{name:"Tuvalu",opentypeTag:"TVL ",htmlTag:"tvl"},{name:"Twi",opentypeTag:"TWI ",htmlTag:"ak"},{name:"Tày",opentypeTag:"TYZ ",htmlTag:"tyz"},{name:"Tamazight",opentypeTag:"TZM ",htmlTag:"tzm"},{name:"Tzotzil",opentypeTag:"TZO ",htmlTag:"tzo"},{name:"Udmurt",opentypeTag:"UDM ",htmlTag:"udm"},{name:"Ukrainian",opentypeTag:"UKR ",htmlTag:"uk"},{name:"Umbundu",opentypeTag:"UMB ",htmlTag:"umb"},{name:"Urdu",opentypeTag:"URD ",htmlTag:"ur"},{name:"Upper Sorbian",opentypeTag:"USB ",htmlTag:"hsb"},{name:"Uyghur",opentypeTag:"UYG ",htmlTag:"ug"},{name:"Uzbek",opentypeTag:"UZB ",htmlTag:"uz"},{name:"Venetian",opentypeTag:"VEC ",htmlTag:"vec"},{name:"Venda",opentypeTag:"VEN ",htmlTag:"ve"},{name:"Vietnamese",opentypeTag:"VIT ",htmlTag:"vi"},{name:"Volapük",opentypeTag:"VOL ",htmlTag:"vo"},{name:"Võro",opentypeTag:"VRO ",htmlTag:"vro"},{name:"Wa",opentypeTag:"WA",htmlTag:"wbm"},{name:"Wagdi",opentypeTag:"WAG ",htmlTag:"wbr"},{name:"Waray-Waray",opentypeTag:"WAR ",htmlTag:"war"},{name:"West-Cree",opentypeTag:"WCR ",htmlTag:"crk"},{name:"Welsh",opentypeTag:"WEL ",htmlTag:"cy"},{name:"Walloon",opentypeTag:"WLN ",htmlTag:"wa"},{name:"Wolof",opentypeTag:"WLF ",htmlTag:"wo"},{name:"Mewati",opentypeTag:"WTM ",htmlTag:"wtm"},{name:"Lü",opentypeTag:"XBD ",htmlTag:"khb"},{name:"Khengkha",opentypeTag:"XKF ",htmlTag:"xkf"},{name:"Xhosa",opentypeTag:"XHS ",htmlTag:"xh"},{name:"Minjangbal",opentypeTag:"XJB ",htmlTag:"xjb"},{name:"Soga",opentypeTag:"XOG ",htmlTag:"xog"},{name:"Kpelle (Liberia)",opentypeTag:"XPE ",htmlTag:"xpe"},{name:"Sakha",opentypeTag:"YAK ",htmlTag:"sah"},{name:"Yao",opentypeTag:"YAO ",htmlTag:"yao"},{name:"Yapese",opentypeTag:"YAP ",htmlTag:"yap"},{name:"Yoruba",opentypeTag:"YBA ",htmlTag:"yo"},{name:"Y-Cree",opentypeTag:"YCR ",htmlTag:"cr"},{name:"Yi Classic",opentypeTag:"YIC "},{name:"Yi Modern",opentypeTag:"YIM ",htmlTag:"ii"},{name:"Zealandic",opentypeTag:"ZEA ",htmlTag:"zea"},{name:"Standard Moroccan Tamazight",opentypeTag:"ZGH ",htmlTag:"zgh"},{name:"Zhuang",opentypeTag:"ZHA ",htmlTag:"za"},{name:"Chinese, Hong Kong SAR",opentypeTag:"ZHH ",htmlTag:"zh"},{name:"Chinese Phonetic",opentypeTag:"ZHP ",htmlTag:"zh"},{name:"Chinese Simplified",opentypeTag:"ZHS ",htmlTag:"zh"},{name:"Chinese Traditional",opentypeTag:"ZHT ",htmlTag:"zh"},{name:"Zande",opentypeTag:"ZND ",htmlTag:"zne"},{name:"Zulu",opentypeTag:"ZUL ",htmlTag:"zu"},{name:"Zazaki",opentypeTag:"ZZA ",htmlTag:"zza"}]},c0e2:function(e,t,n){"use strict";var a=n("195b"),i=n.n(a);i.a},c9d8:function(e,t,n){},cbe7:function(e,t,n){},cc03:function(e,t,n){"use strict";var a=n("d7fe"),i=n.n(a);i.a},cee9:function(e,t,n){},d7fe:function(e,t,n){},db8b:function(e,t,n){},e486:function(e,t,n){"use strict";var a=n("db8b"),i=n.n(a);i.a},e4e9:function(e,t,n){},e5da:function(e,t,n){},e89a:function(e,t,n){},efdc:function(e,t,n){"use strict";var a=n("2d80"),i=n.n(a);i.a},f19e:function(e,t,n){"use strict";var a=n("851c"),i=n.n(a);i.a},f5b2:function(e,t,n){"use strict";var a=n("09ec"),i=n.n(a);i.a},f717:function(e,t,n){"use strict";var a=n("026e"),i=n.n(a);i.a},f89b:function(e,t,n){"use strict";var a=n("acd7"),i=n.n(a);i.a},fa94:function(e,t,n){},fc32:function(e,t,n){},ffc3:function(e,t,n){}}); +//# sourceMappingURL=app.75bd29db.js.map \ No newline at end of file diff --git a/js/app.75bd29db.js.map b/js/app.75bd29db.js.map new file mode 100644 index 0000000..ba1a35d --- /dev/null +++ b/js/app.75bd29db.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/layout/FitMe.vue?9e9b","webpack:///./src/components/UiColorPicker.vue?bba8","webpack:///./src/models/opentypeFeatureDefaults.js","webpack:///./src/components/LanguagePanel.vue?8851","webpack:///./src/viewparts/SiteFooter.vue?ffcb","webpack:///./src/components/TesterBody.vue?785e","webpack:///./src/views/KerningHelp.vue?e4e0","webpack:///./src/views/Welcome.vue?cd0f","webpack:///./src/components/FontLoader.vue?6d01","webpack:///./src/components/LanguageSupportSummary.vue?8e44","webpack:///./src/components/EditableList.vue?d46a","webpack:///./src/components/CharacterInfo.vue?bae0","webpack:///./src/components/Firework.vue?9e58","webpack:///./src/App.vue?b38b","webpack:///src/App.vue","webpack:///./src/App.vue?2f9b","webpack:///./src/App.vue","webpack:///./src/viewparts/SiteHeader.vue?6b89","webpack:///./src/utils/viewport.js","webpack:///./src/components/FontLoader.vue?65fb","webpack:///./src/components/FontSelect.vue?3fdb","webpack:///./src/components/UiSelect.vue?467a","webpack:///src/components/UiSelect.vue","webpack:///./src/components/UiSelect.vue?7326","webpack:///./src/components/UiSelect.vue","webpack:///./src/components/UiTooltip.vue?b764","webpack:///src/components/UiTooltip.vue","webpack:///./src/components/UiTooltip.vue?987d","webpack:///./src/components/UiTooltip.vue","webpack:///./src/components/layout/FitMe.vue?14f2","webpack:///src/components/layout/FitMe.vue","webpack:///./src/components/layout/FitMe.vue?8138","webpack:///./src/components/layout/FitMe.vue","webpack:///src/components/FontSelect.vue","webpack:///./src/components/FontSelect.vue?5a7d","webpack:///./src/components/FontSelect.vue","webpack:///./src/components/FileDrop.vue?4453","webpack:///src/components/FileDrop.vue","webpack:///./src/components/FileDrop.vue?064e","webpack:///./src/components/FileDrop.vue","webpack:///./src/components/Fireworks.vue?0c20","webpack:///./src/utils/mousePosition.js","webpack:///./src/components/Firework.vue?64d5","webpack:///src/components/Firework.vue","webpack:///./src/components/Firework.vue?f999","webpack:///./src/components/Firework.vue","webpack:///src/components/Fireworks.vue","webpack:///./src/components/Fireworks.vue?904d","webpack:///./src/components/Fireworks.vue","webpack:///./src/models/opentypeFeatureNames.js","webpack:///./src/models/Font.js","webpack:///./src/utils/id.js","webpack:///./src/utils/styles.js","webpack:///./src/models/DEFAULT_FONTS.js","webpack:///src/components/FontLoader.vue","webpack:///./src/components/FontLoader.vue?c901","webpack:///./src/components/FontLoader.vue","webpack:///./src/components/EditorNav.vue?2e94","webpack:///./src/components/EditorNavLink.vue?d91e","webpack:///src/components/EditorNavLink.vue","webpack:///./src/components/EditorNavLink.vue?03cb","webpack:///./src/components/EditorNavLink.vue","webpack:///src/components/EditorNav.vue","webpack:///./src/utils/DomSelection.js","webpack:///./src/components/EditorNav.vue?a403","webpack:///./src/components/EditorNav.vue","webpack:///./src/components/TextTools.vue?5201","webpack:///./src/components/AnimationEditor.vue?3d8e","webpack:///./src/components/EditableList.vue?be53","webpack:///src/components/EditableList.vue","webpack:///./src/components/EditableList.vue?0d9d","webpack:///./src/components/EditableList.vue","webpack:///src/components/AnimationEditor.vue","webpack:///./src/components/AnimationEditor.vue?8d32","webpack:///./src/components/AnimationEditor.vue","webpack:///src/components/TextTools.vue","webpack:///./src/components/TextTools.vue?786b","webpack:///./src/components/TextTools.vue","webpack:///./src/components/SiteLogo.vue?3df0","webpack:///./src/components/SiteLogo.vue","webpack:///./src/components/layout/SigmoidContainer.vue?df51","webpack:///src/components/layout/SigmoidContainer.vue","webpack:///./src/components/layout/SigmoidContainer.vue?7190","webpack:///./src/components/layout/SigmoidContainer.vue","webpack:///./src/models/textKinds.js","webpack:///./src/models/textKindTitle.js","webpack:///src/viewparts/SiteHeader.vue","webpack:///./src/viewparts/SiteHeader.vue?f311","webpack:///./src/viewparts/SiteHeader.vue","webpack:///./src/viewparts/SiteFooter.vue?08ed","webpack:///src/viewparts/SiteFooter.vue","webpack:///./src/viewparts/SiteFooter.vue?6854","webpack:///./src/viewparts/SiteFooter.vue","webpack:///./src/views/Home.vue?35e6","webpack:///./src/models/shuffle.js","webpack:///./src/views/Welcome.vue?4f78","webpack:///./src/views/Welcome.md?eb17","webpack:///./src/views/Welcome.md","webpack:///src/views/Welcome.vue","webpack:///./src/views/Welcome.vue?3962","webpack:///./src/views/Welcome.vue","webpack:///src/views/Home.vue","webpack:///./src/views/Home.vue?af46","webpack:///./src/views/Home.vue","webpack:///./src/views/Help.vue?0f20","webpack:///./src/views/Help.vue","webpack:///./src/views/KerningHelp.vue?e921","webpack:///./src/utils/characterRange.js","webpack:///./src/utils/cartesianProduct.js","webpack:///./src/models/KerningGenerator.js","webpack:///./src/components/KerningEditor.vue?ec93","webpack:///./src/models/kerningSegments.js","webpack:///src/components/KerningEditor.vue","webpack:///./src/components/KerningEditor.vue?f5ca","webpack:///./src/components/KerningEditor.vue","webpack:///./src/views/Kerning.md?f6ae","webpack:///./src/views/Kerning.md","webpack:///src/views/KerningHelp.vue","webpack:///./src/views/KerningHelp.vue?53a5","webpack:///./src/views/KerningHelp.vue","webpack:///./src/views/AnimationHelp.vue?efe7","webpack:///./src/views/Animation.md?e46d","webpack:///./src/views/Animation.md","webpack:///src/views/AnimationHelp.vue","webpack:///./src/views/AnimationHelp.vue?88f5","webpack:///./src/views/AnimationHelp.vue","webpack:///./src/views/FontTester.vue?e342","webpack:///./src/components/layout/Pinnable.vue?6b4f","webpack:///src/components/layout/Pinnable.vue","webpack:///./src/components/layout/Pinnable.vue?c9a5","webpack:///./src/components/layout/Pinnable.vue","webpack:///./src/components/Settings.vue?4daa","webpack:///./src/components/UiNumber.vue?23aa","webpack:///src/components/UiNumber.vue","webpack:///./src/components/UiNumber.vue?00f1","webpack:///./src/components/UiNumber.vue","webpack:///./src/components/UiColorPicker.vue?f26d","webpack:///src/components/UiColorPicker.vue","webpack:///./src/components/UiColorPicker.vue?1061","webpack:///./src/components/UiColorPicker.vue","webpack:///src/components/Settings.vue","webpack:///./src/components/Settings.vue?26f0","webpack:///./src/components/Settings.vue","webpack:///./src/components/TesterBody.vue?4288","webpack:///./src/components/FontSample.vue?6490","webpack:///src/components/FontSample.vue","webpack:///./src/components/FontSample.vue?dab9","webpack:///./src/components/FontSample.vue","webpack:///./src/components/SampleHeader.vue?2bc8","webpack:///./src/utils/printNumber.js","webpack:///src/components/SampleHeader.vue","webpack:///./src/components/SampleHeader.vue?93f3","webpack:///./src/components/SampleHeader.vue","webpack:///./src/components/GotchaHeader.vue?1901","webpack:///src/components/GotchaHeader.vue","webpack:///./src/components/GotchaHeader.vue?3c59","webpack:///./src/components/GotchaHeader.vue","webpack:///src/components/TesterBody.vue","webpack:///./src/components/TesterBody.vue?6b98","webpack:///./src/components/TesterBody.vue","webpack:///./src/components/LanguageNav.vue?9f45","webpack:///./src/utils/fireEvent.js","webpack:///src/components/LanguageNav.vue","webpack:///./src/components/LanguageNav.vue?bc95","webpack:///./src/components/LanguageNav.vue","webpack:///./src/components/KerningNav.vue?4d51","webpack:///./src/utils/scrollToHash.js","webpack:///src/components/KerningNav.vue","webpack:///./src/components/KerningNav.vue?bc14","webpack:///./src/components/KerningNav.vue","webpack:///./src/components/LanguageSupportSummary.vue?a335","webpack:///./src/components/layout/ScrollPanel.vue?631c","webpack:///./src/components/layout/ScrollPanel.vue","webpack:///./src/components/LanguagePanel.vue?311b","webpack:///src/components/LanguagePanel.vue","webpack:///./src/components/LanguagePanel.vue?9f06","webpack:///./src/components/LanguagePanel.vue","webpack:///./src/components/LanguageList.vue?29e3","webpack:///src/components/LanguageList.vue","webpack:///./src/components/LanguageList.vue?b831","webpack:///./src/components/LanguageList.vue","webpack:///./src/components/CharacterPanel.vue?9d66","webpack:///./src/components/CharacterInfo.vue?9e43","webpack:///src/components/CharacterInfo.vue","webpack:///./src/components/CharacterInfo.vue?041f","webpack:///./src/components/CharacterInfo.vue","webpack:///src/components/CharacterPanel.vue","webpack:///./src/components/CharacterPanel.vue?4f7f","webpack:///./src/components/CharacterPanel.vue","webpack:///src/components/LanguageSupportSummary.vue","webpack:///./src/components/LanguageSupportSummary.vue?c62b","webpack:///./src/components/LanguageSupportSummary.vue","webpack:///./src/components/FontSampleNav.vue?42c0","webpack:///src/components/FontSampleNav.vue","webpack:///./src/components/FontSampleNav.vue?50f2","webpack:///./src/components/FontSampleNav.vue","webpack:///src/views/FontTester.vue","webpack:///./src/views/FontTester.vue?125c","webpack:///./src/views/FontTester.vue","webpack:///./src/router.js","webpack:///./src/models/kerningPatterns.js","webpack:///./src/models/kerningPatternName.js","webpack:///./src/models/textKindLanguageDataField.js","webpack:///./src/utils/escapeHtmlId.js","webpack:///./src/utils/escapeHtml.js","webpack:///./src/store.text.js","webpack:///./src/models/Settings.js","webpack:///./src/store.animation.js","webpack:///./src/store.layout.js","webpack:///./src/store-mediator.js","webpack:///./src/models/convertLength.js","webpack:///./src/models/computedParams.js","webpack:///./src/store.js","webpack:///./src/main.js","webpack:///./src/App.vue?9ca0","webpack:///./src/components/layout/Pinnable.vue?aaf1","webpack:///./src/models/loadFont.worker.js","webpack:///./src/components/KerningEditor.vue?4c49","webpack:///./src/components/SiteLogo.vue?0c80","webpack:///./src/components/EditorNavLink.vue?efc7","webpack:///./src/components/LanguageList.vue?4425","webpack:///./src/viewparts/SiteHeader.vue?14e4","webpack:///./src/components/LanguageNav.vue?421f","webpack:///./src/components/FontSample.vue?ad81","webpack:///./src/components/FontSelect.vue?766f","webpack:///./src/components/UiSelect.vue?1c83","webpack:///./src/components/FontSampleNav.vue?a773","webpack:///./src/components/GotchaHeader.vue?6297","webpack:///./src/views/FontTester.vue?e318","webpack:///./src/components/UiNumber.vue?5917","webpack:///./src/components/UiTooltip.vue?dc55","webpack:///./src/components/AnimationEditor.vue?9d8d","webpack:///./src/models/opentypeLanguageTags.js","webpack:///./src/components/Settings.vue?d40a","webpack:///./src/components/EditorNav.vue?0b06","webpack:///./src/components/KerningNav.vue?7493","webpack:///./src/views/Home.vue?649e","webpack:///./src/components/TextTools.vue?278d","webpack:///./src/components/layout/SigmoidContainer.vue?cf31","webpack:///./src/components/FileDrop.vue?8fb3","webpack:///./src/components/CharacterPanel.vue?3dd5"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","directives","rawName","staticClass","attrs","staticRenderFns","watch","$route","val","oldVal","$store","commit","mounted","addEventListener","someMethod","beforeDestroy","removeEventListener","methods","component","class","footerVisible","sticky","aboveHeaderTransition","textKind","on","toggleSettingsPanel","_e","nativeOn","$event","scrollToTop","isTesterPage","_l","kind","_v","_s","navlinkText","toggleContextualPanel","staticStyle","stopPropagation","Math","max","document","documentElement","clientWidth","innerWidth","clientHeight","innerHeight","onFilesDropped","fontOptions","selectedFont","fontLoading","selectFont","setLastFont","setPreviousFont","setNextFont","ref","$refs","button1","v","setFont","fontOverrides","regular","overrideCssFont","selectedItalicFont","italic","selectedBoldFont","bold","selectedBoldItalicFont","boldItalic","selectedHeaderFont","header","expression","fontLoadingProgress","errorMessage","log","family","fonts","fontOptionKeys","label","loading","$emit","scopedSlots","_u","fn","props","style","optionSampleStyle","option","sampleText","originalFamily","version","shortFileName","fileName","keys","$slots","slot","_t","classes","domProps","submittedValue","icon","disabled","isAutocomplete","tabindex","onFocus","type","indexOf","_k","keyCode","preventDefault","openDropdown","onBlur","default","labelClasses","hasDisplayText","placeholder","e","setCustomValue","target","highlightOption","highlightedIndex","onInputEnter","closeDropdown","isFocused","displayText","hasFloatingLabel","isLabelInline","dropdownClass","dropdownPosition","onClose","onOpen","onReveal","selectHighlighted","searchPlaceholder","composing","query","sortedOptions","filteredOptions","index","refInFor","multiple","isOptionSelected","selectOption","autoScroll","error","help","callback","visibilityChanged","once","fontSize","localText","text","String","cutText","Number","runFit","fit","components","UiSelect","UiTooltip","FitMe","Array","Boolean","image","visible","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","computed","scrolledParent","querySelector","scrolledParentSelector","handleBodyDragEnter","destroyed","preventScroll","showDrop","console","toggleBodyScroll","hideDrop","files","dataTransfer","types","scrollTop","scrolledParentTop","disableScroll","setTimeout","enableScroll","f","position","trackMouse","element","mouseEvent","handler","x","pageX","y","pageY","$vnode","font","letter","genCharArray","charA","charZ","a","fromCharCode","getLetters","letterSoup","firework","$el","left","top","opacity","duration","animationDuration","timeline","add","forEach","id","transform","disable","fireworks","keyCount","$on","getOpenTypeFeatureName","tag","match","opentypeFeatureNames","find","test","replace","Font","url","processFont","obj","getNames","getFeatures","getGlyphs","generateFontFace","names","preferredFamily","en","fontFamily","preferredSubfamily","fontSubfamily","cssFamily","cssStyle","cssWeight","tables","os2","usWeightClass","displayName","glyphs","map","k","filter","g","unicode","characters","gpos","gsub","languageSet","Set","scripts","flatMap","script","langSysRecords","lsr","loclLanguages","from","language","opentypeLanguageTags","opentypeTag","htmlTag","toLowerCase","sort","b","getOwnPropertyNames","gposFeatures","features","duplicate","ff","feature","gsubFeatures","languages","selectedLanguage","uiName","featUiLabelName","variationAxes","fvar","axes","weight","fontFace","proposal","getElementById","random","hex","toString","css","getId","newStyle","createElement","appendChild","createTextNode","head","existing","parentNode","removeChild","setProperty","prop","FontSelect","UiModal","UiButton","UiPopover","UiProgressLinear","UiFileupload","FileDrop","UiTextbox","Fireworks","gui","progressVisible","selectedSampleKey","errorLogs","openedWithoutFonts","defaultFontsLoaded","previousFont","init","loadDefaultFonts","loadFonts","path","$router","urls","dispatch","worker","onmessage","duplicates","bumpVersion","highest","errors","postMessage","printFontLoadingError","results","extraError","modal","open","getFont","lastFont","waterfallFilter","array","selectedFontIndex","selectBoldFont","matchingBold","selectHeaderFont","selectItalicFont","matchingItalic","selectBoldItalicFont","matchingBoldItalic","setCssFont","styleMatch","cssFontVariable","cssWeightVariable","min","customTextIds","removeCustomText","UiIconButton","saveSelection","restoreSelection","getSelectionRange","EditorNavLink","boundary","len","lessCustomTextIds","moreCustomTextIds","isHeadingActive","makeHeading","isBoldActive","makeBold","isItalicActive","makeItalic","getSelection","createRange","sel","rangeCount","getRangeAt","containerEl","doc","ownerDocument","win","defaultView","range","preSelectionRange","cloneRange","selectNodeContents","setEnd","startContainer","startOffset","start","end","savedSel","charIndex","setStart","collapse","node","nodeStack","foundStart","stop","pop","nodeType","nextCharIndex","childNodes","removeAllRanges","addRange","selection","selectedTextRange","preSelectionTextRange","body","createTextRange","moveToElementText","setEndPoint","textRange","moveEnd","moveStart","select","DomSelection","container","ancestor","commonAncestorContainer","Node","TEXT_NODE","fragment","cloneContents","existentTags","querySelectorAll","closestTag","closest","isParagraph","contains","parent","tmp","surroundContents","newContent","createDocumentFragment","nodeValue","innerText","newEl","cloneNode","replaceChild","fr","cc","deleteContents","insertNode","empty","newParent","extractContents","clean","child","model","$$v","animationKeyframes","removeAnimationKeyframe","activeKeyframeId","activateKeyframe","keyframeProgress","addAnimationKeyframe","playing","canAnimate","play","proxy","keyframesText","importAnimationKeyframes","animatedProperties","animatableProperties","properties","setAnimatedProperties","checked","UiCheckbox","options","EditableList","progress","updateKeyframeProgress","frame","keyframes","fontFeatureSettings","discreteFrame","continuousFrame","discreteKeyframes","continuousKeyframes","targets","sample","easing","autoplay","delay","endDelay","update","elapsed","begin","complete","restart","AnimationEditor","onSelection","activeElement","containsTag","_m","svgLeftId","svgRightId","sigmoidWrapperStyle","sigmoidStyle","waviness","sides","width","marginAdjust","background","control","sidesArray","split","right","rootStyle","containerStyle","contentStyle","backgroundImage","backgroundColor","toUpperCase","substr","FontLoader","EditorNav","TextTools","SiteLogo","SigmoidContainer","hideHeaderOnScroll","textKinds","stickyShowDelta","stickyHideDelta","lastTop","params","setAboveHeaderTransition","setSticky","viewport","height","textKindTitle","scrollTo","measureTop","hasScrolled","delta","initStickyHeader","setInterval","didScroll","observer","disconnect","initObserver","entries","IntersectionObserver","observe","sentinel","updateHeight","webkit","parallaxClasses","getParallaxText","overlayClasses","shuffle","floor","Welcome","loaded","parallaxTexts","maybeSetupParallax","cleanupParallax","browser","setupParallax","parallaxes","parallax","moveParallax","segments","addKerningSegment","removeKerningSegment","line","characterRange","charCodeAt","cartesianProductOf","reduce","arguments","ret","concat","escapeRegExp","string","splitWithEscape","separator","escape","endsWithEscape","RegExp","fragments","current","char","escapedSeparator","KerningGenerator","sets","closures","segmentClosures","special","escaped","join","closureSide","compoundClosure","parseSequences","parseClosure","matchAll","ranges","singleCharacters","pattern","JSON","parse","stringify","product","cartesianProduct","lines","commitLine","sub","openings","set","closure","closings","openingSequences","reverse","closingSequences","segment","builtInSegmentCharacters","$set","segmentSelects","focus","updated","Kerning","KerningEditor","kerningStringLines","getKey","Animation","settingsPanelVisible","fontSampleTexts","selectedTextKind","modifyText","navElementTitle","contextualPanelVisible","navElement","forceInvisible","isVisible","pinned","footerNear","footerNearer","triggerHover","scrolled","title","togglePinPanel","disableOverscroll","onWheel","closestLike","el","predicate","depth","isPinned","side","trigger","scrollSyncStartEvent","scrollSyncEndEvent","storedScrollPosition","lastHeight","vb","cleanup","getTriggerElement","onTriggerMouseEnter","onTriggerMouseLeave","toggle","hide","mysteriousClick","event","isNavigationAnchor","initScrollSync","settings","minFontSize","maxFontSize","fontSizeStep","fontSizeClickStep","updateSetting","fontSizeUnit","fontSizeUnitOptions","waterfallSizes","enableWaterfall","lineHeight","minLineHeight","maxLineHeight","lineHeightStep","lineHeightClickStep","defaultLineHeight","tracking","minTracking","maxTracking","trackingStep","trackingClickStep","defaultTracking","textAlign","textAlignOptions","textColor","textTransform","textTransformOptions","wrapLines","capFeatures","localizationLanguage","localizationLanguages","loclSelectKeys","isLocalizationInvalid","onGotchasTab","localization","numberFeatures","pnum","tnum","figureWidths","figureWidth","lnum","onum","figureHeights","figureHeight","stylisticSets","characterVariants","otherGsub","activeGpos","axis","enabled","minValue","maxValue","autocomplete","enforceMaxlength","maxlength","minlength","readonly","required","stepValue","displayedText","onBlur2","updateValue","onKeydownEnter","onKeydown","startIncrement","endIncrementDecrement","startDecrement","hasFeedback","valueLength","extends","step","clickStep","clickStepFunction","Function","tryValue","incrementTimeout","stringValue","tempValue","toLocaleString","_clickStep","coerceValue","roundedToStep","isNaN","abs","corrected","EPSILON","correctValue","Decimal","toNearest","toNumber","roundedToClickStep","getSteps","iteration","getDelay","increment","by","decrement","steps","clearTimeout","updateFromInput","textValue","input","colorValue","updateFromPicker","openPopover","popover","tiny","isValid","formatText","TinyColor","updateText","updateProgrammatically","toHex8","toHex8String","toHexString","getFormat","UiSlider","UiRadioGroup","UiNumber","UiColorPicker","capTags","figureTags","numberTags","stylisticSetTags","characterVariantsTags","loclTags","activeGsub","getGsubSubset","getGsubFeature","selected","setFigureVariant","beforeUpdate","$parent","animating","mutation","payload","isGotchas","isCustom","size","fontSizes","onPaste","onInput","item","isContentEditable","onSelectStart","onSelectEnd","fontVariationSettings","selectedLoclLanguage","langId","padEnd","printNumber","speakers","fNum","topic","description","SampleHeader","GotchaHeader","FontSample","texts","formatRequested","wrap","saveText","syncSamples","$watch","configureAnchors","deleteFromDocument","paste","elements","notifyWindow","dispatchEvent","Event","nextAnchor","previousAnchor","goToAnchor","languageFilter","clearFilter","isSelected","values","selectScripts","anySelected","selectDeselectAllLanguages","preventParentScroll","hasText","toggleLanguage","highlightAnchor","fireEvent","eventName","createEvent","initEvent","filteredLanguages","highlightedAnchor","anchors","highlightedAnchorIndex","some","selectedScripts","$nextTick","filterTextbox","scrollAnchorIntoView","padding","margin","updateKerningPattern","addKerningPattern","selectedPatternId","toggleKerningPattern","selectPattern","formatPatternId","removeKerningPattern","revertKerningPatterns","kerningPatterns","clearKerningPatterns","scrollToHash","hash","getAttribute","selector","offsetTop","inputInvalid","emptySegment","noSegments","requestVuebarFreeze","$vuebar","freezeScrollbar","languageSupport","supportedLanguages","supportedLanguagesSortingOptions","supportedLanguagesSorting","selectLanguage","unsupportedLanguagesSortingOptions","unsupportedLanguagesSorting","unsupportedLanguages","missingCharacterSortingOptions","missingCharacterSorting","character","limit","selectCharacter","selectedCharacter","isMissing","languageInfo","missingCharacters","includedCharacters","specialLetters","requiredCharacters","gotchas","tags","htmlCode","ceil","fields","copyList","list","execCommand","characterInfo","obligatoryLanguages","wordFinderUrl","optionalLanguages","characterRepresentation","unicodes","glyphnames","codepoints","CharacterInfo","LanguageList","render","LanguagePanel","CharacterPanel","Pinnable","ScrollPanel","sortLanguages","langs","chars","sorting","heading","Settings","TesterBody","LanguageNav","KerningNav","FontSampleNav","LanguageSupportSummary","selectedCustomTextId","selectSample","beforeMount","Vue","use","Router","base","process","routes","SiteHeader","main","Home","footer","SiteFooter","redirect","FontTester","KerningHelp","AnimationHelp","Help","kerningPatternName","lettering","pangrams","sentences","ABCs","kerning","escapeHtml","unsafe","customTextId","SCRIPTS","SCRIPT_TAGS","LanguageData","LANGUAGES","localeCompare","state","textHeadings","defaultKerningPatterns","fontCharacters","mutations","setText","sampleKey","html","headings","languageDataFields","addCustomText","route","router","currentRoute","format","initKerningPatterns","toEnd","copy","kerningString","unshift","kp","findIndex","updateKerning","patterns","escapeHtmlId","updateFontCharacters","actions","matching","getters","squish","str","fieldKey","selectedSampleTextKey","selectedLanguages","mappedData","tests","AaBbCc","ABC","every","abc","Accents","accents","padStart","visibleLanguages","alphabet","otherLanguages","ll","uniqueCharacterFilter","testableLanguages","specialCharacters","acc","cur","optionalCharacters","ch","missingCharactersByScript","groupCharactersByScript","includedCharactersByScript","missingCharacterCombinationsByScript","characterCombinations","includedCharacterCombinationsByScript","charactersByScript","caseFirst","isAccent","definitions","definition","dflt","color","mapCompoundProp","to","parseInt","parseFloat","fallbackFontFamily","validate","enableVariationAxis","clone","maxId","snapshot","updateKeyframe","getStyleFromSettings","finishAnimateSettings","animateSettings","context","mergeStyleOntoSettings","$scrollToTop","footerSentinelVisibleRatio","updateFooter","ratio","configureMediator","store","subscribe","animation","UnitConverter","formulas","dpi","units","round","decimals","number","convertLength","converter","convert","Vuex","Store","textModule","animationModule","layout","layoutModule","getDefaults","displayedSettings","fontLoadStart","fontLoadEnd","boldFont","italicFont","boldItalicFont","headerFont","mapFontFeatureSettings","mergeFeatures","active","opentypeFeatureDefaults","updateGposFeature","updateGsubFeature","updateLoclFeature","mapFontVariationSettings","aa","defaultValue","updateVariationAxis","resetSettings","computeParams","computedParams","paramFunction","newValue","updateSettings","newUnit","restoreSettings","convertFontSize","newSize","config","productionTip","Vuebar","VueObserveVisibility","VueWorker","h","App","$mount","Worker"],"mappings":"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","file":"js/app.75bd29db.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=style&index=0&id=1f5793db&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=style&index=0&id=1f5793db&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=style&index=0&id=50a2c3f2&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=style&index=0&id=50a2c3f2&lang=scss&scoped=true&\"","// included features are enabled by default\n\nmodule.exports = [\n 'mark',\n 'mkmk',\n 'kern',\n 'ccmp',\n 'locl',\n 'liga',\n 'calt',\n 'rclt',\n 'rlig',\n 'rvrn',\n]\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=style&index=0&id=176280e4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=style&index=0&id=176280e4&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=style&index=0&id=18509e57&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=style&index=0&id=18509e57&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=style&index=0&id=7273fa36&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=style&index=0&id=7273fa36&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=style&index=0&id=4602ce0c&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=style&index=0&id=4602ce0c&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=style&index=1&id=69007cc0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=style&index=1&id=69007cc0&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=style&index=0&id=42b34de5&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=style&index=0&id=42b34de5&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=style&index=0&id=237c7d63&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=style&index=0&id=237c7d63&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"bar\",rawName:\"v-bar\"}],staticClass:\"app\"},[_c('div',{staticClass:\"app-content\"},[_c('router-view',{attrs:{\"name\":\"header\"}}),_c('div',{staticClass:\"site-content\"},[_c('keep-alive',[_c('router-view',{attrs:{\"name\":\"main\"}})],1)],1),_c('router-view',{attrs:{\"name\":\"footer\"}})],1),_c('div',{staticClass:\"shade\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=b5ee82d6&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"site-header \" + (!_vm.footerVisible && _vm.sticky ? 'sticky' : ''))},[_c('transition-group',{staticClass:\"above-sidebar slide-left-wrapper\",attrs:{\"tag\":\"div\",\"name\":_vm.aboveHeaderTransition}},[(!!_vm.textKind)?_c('div',{key:\"button\",staticClass:\"settings-aside-wrap\"},[_c('SigmoidContainer',{staticClass:\"settings-aside light\",attrs:{\"id\":\"settings-trigger\",\"sides\":\"right top\"}},[_c('nav',{staticClass:\"nav nav-aside\",on:{\"click\":_vm.toggleSettingsPanel}},[_c('div',{staticClass:\"transition-wrapper\"},[_c('UiIconButton',[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}})])])],1)])])],1):_vm._e(),_c('div',{key:\"logo\",staticClass:\"logo\"},[_c('router-link',{staticClass:\"home\",attrs:{\"to\":\"/\"},nativeOn:{\"click\":function($event){return _vm.scrollToTop($event)}}},[_c('SiteLogo')],1)],1)]),_c('div',{staticClass:\"dark main\"},[_c('FontLoader',{attrs:{\"gui\":_vm.isTesterPage}}),(_vm.isTesterPage)?_c('TextTools'):_vm._e(),_c('nav',{staticClass:\"nav nav-text-kinds\"},[_c('EditorNav'),_vm._l((_vm.textKinds),function(kind){return _c('span',{key:kind,staticClass:\"nav-link\"},[_c('router-link',{attrs:{\"to\":(\"/\" + kind)}},[_vm._v(_vm._s(_vm.navlinkText(kind)))])],1)})],2)],1),_c('SigmoidContainer',{staticClass:\"light aside\",attrs:{\"id\":\"nav-trigger\",\"sides\":\"left top\"}},[_c('nav',{staticClass:\"nav nav-aside\",on:{\"click\":_vm.toggleContextualPanel}},[_c('div',{staticClass:\"transition-wrapper\"},[_c('transition',{attrs:{\"name\":\"swap\"}},[(!_vm.textKind)?_c('div',{key:\"0\",staticClass:\"ui-icon-button github-icon-link-wrapper\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('a',{staticClass:\"github-icon-link\",attrs:{\"href\":\"https://github.com/hyvyys/Bulletproof\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}})])])]):(_vm.textKind === 'custom')?_c('UiIconButton',{key:\"1\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}})])]):(_vm.textKind === 'kerning')?_c('UiIconButton',{key:\"2\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.01 17V8.97h-3V7.03H13v1.94h-3V17zM18 19v2h-7v2.4L7 19zM6 5V3h7V.6L17 5z\"}}),_c('path',{staticStyle:{\"line-height\":\"0\",\"-inkscape-font-specification\":\"'arial Bold'\"},attrs:{\"d\":\"M15.53 15.44c-.86 0-1.62-.76-1.62-1.93 0-1.16.76-1.93 1.62-1.93.85 0 1.62.77 1.62 1.93 0 1.17-.77 1.93-1.62 1.93zm0-5.54c-2.06 0-3.72 1.4-3.72 3.61 0 2.22 1.66 3.61 3.72 3.61 2.07 0 3.7-1.4 3.7-3.6 0-2.23-1.7-3.62-3.7-3.62z\"}})])]):_c('UiIconButton',{key:\"3\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('defs',[_c('path',{attrs:{\"id\":\"a\",\"d\":\"M0 0h24v24H0V0z\"}})]),_c('clipPath',{attrs:{\"id\":\"b\"}},[_c('use',{attrs:{\"xlink:href\":\"#a\",\"overflow\":\"visible\"}})]),_c('path',{attrs:{\"clip-path\":\"url(#b)\",\"d\":\"M14 10H2v2h12v-2zm0-4H2v2h12V6zM2 16h8v-2H2v2zm19.5-4.5L23 13l-6.99 7-4.51-4.5L13 14l3.01 3 5.49-5.5z\"}})])])],1)],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n get width() {\n return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n },\n get height() {\n return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-loader\"},[(_vm.gui)?_c('span',{staticClass:\"font-loader-item\"},[_c('UiFileupload',{staticClass:\"dark\",attrs:{\"label\":\" \",\"name\":\"font-file-input\",\"accept\":\".ttf,.otf,.woff,.woff2\",\"multiple\":true,\"size\":\"small\"},on:{\"change\":_vm.onFilesDropped}}),_c('UiTooltip',{attrs:{\"openDelay\":500}},[_vm._v(\"\\n Open fonts (you can also drag and drop font files anywhere on the page)\\n \")])],1):_vm._e(),(_vm.gui)?_c('FontSelect',{staticClass:\"dark font-select-main font-loader-item\",attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedFont,\"loading\":_vm.fontLoading},on:{\"input\":_vm.selectFont}}):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Set last font\"},on:{\"click\":_vm.setLastFont}},[_c('b',[_vm._v(\"⮀\")])])],1):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Set previous font\"},on:{\"click\":_vm.setPreviousFont}},[_c('b',[_vm._v(\"⇐\")])])],1):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Set next font\"},on:{\"click\":_vm.setNextFont}},[_c('b',[_vm._v(\"⇒\")])])],1):_vm._e(),(_vm.gui)?_c('div',{staticClass:\"font-loader-item\"},[_c('UiButton',{ref:\"button1\",staticClass:\"dark bi-button\",attrs:{\"tooltip\":\"Emphasis fonts\"}},[_c('b',[_vm._v(\"B\")]),_c('i',[_vm._v(\"I\")])]),_c('UiPopover',{staticClass:\"font-select-popover\",attrs:{\"trigger\":_vm.$refs.button1,\"zIndex\":58}},[_c('div',{staticClass:\"font-select-menu\"},[_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedFont,\"label\":\"Regular\",\"loading\":_vm.fontLoading},on:{\"input\":function (v) { return _vm.setFont('regular', v); }}}),_c('UiTextbox',{attrs:{\"label\":\"Override\",\"value\":_vm.fontOverrides.regular},on:{\"input\":function (v) { return _vm.overrideCssFont('regular', v); }}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedItalicFont,\"label\":\"Italic (emphasis)\",\"loading\":_vm.fontLoading},on:{\"input\":function (v) { return _vm.setFont('italic', v); }}}),_c('UiTextbox',{attrs:{\"label\":\"Override\",\"value\":_vm.fontOverrides.italic},on:{\"input\":function (v) { return _vm.overrideCssFont('italic', v); }}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedBoldFont,\"label\":\"Bold (strong emphasis)\",\"loading\":_vm.fontLoading},on:{\"input\":function (v) { return _vm.setFont('bold', v); }}}),_c('UiTextbox',{attrs:{\"label\":\"Override\",\"value\":_vm.fontOverrides.bold},on:{\"input\":function (v) { return _vm.overrideCssFont('bold', v); }}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedBoldItalicFont,\"label\":\"Bold italic\",\"loading\":_vm.fontLoading},on:{\"input\":function (v) { return _vm.setFont('boldItalic', v); }}}),_c('UiTextbox',{attrs:{\"label\":\"Override\",\"value\":_vm.fontOverrides.boldItalic},on:{\"input\":function (v) { return _vm.overrideCssFont('boldItalic', v); }}}),_c('FontSelect',{attrs:{\"fonts\":_vm.fontOptions,\"value\":_vm.selectedHeaderFont,\"label\":\"Header\",\"loading\":_vm.fontLoading},on:{\"input\":function (v) { return _vm.setFont('header', v); }}}),_c('UiTextbox',{attrs:{\"label\":\"Override\",\"value\":_vm.fontOverrides.header},on:{\"input\":function (v) { return _vm.overrideCssFont('header', v); }}})],1)])],1):_vm._e(),_c('FileDrop',{ref:\"fileDrop\",on:{\"filesDropped\":_vm.onFilesDropped}}),_c('transition',{attrs:{\"name\":\"fade-slow-reverse\"}},[_c('UiProgressLinear',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.progressVisible),expression:\"progressVisible\"}],staticClass:\"font-loading-progress\",attrs:{\"type\":\"determinate\",\"progress\":_vm.fontLoadingProgress}})],1),_c('UiModal',{ref:\"modal\",attrs:{\"title\":\"Error opening fonts.\"}},[_c('div',[_c('div',[_vm._v(_vm._s(_vm.errorMessage))]),_vm._l((_vm.errorLogs),function(log,i){return _c('code',{key:i},[_vm._v(_vm._s(log))])})],2)]),_c('Fireworks',{ref:\"fireworks\",attrs:{\"font\":_vm.selectedFont.family}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('UiSelect',{staticClass:\"font-select\",attrs:{\"value\":_vm.value,\"options\":_vm.fonts,\"keys\":_vm.fontOptionKeys,\"dropdownClass\":\"font-select__dropdown\",\"label\":_vm.label,\"loading\":_vm.loading,\"disabled\":_vm.loading},on:{\"input\":function (v) { return _vm.$emit('input', v); }},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return _c('div',{},[_c('div',{staticClass:\"col col-sample\",style:(_vm.optionSampleStyle(props.option))},[_c('FitMe',{attrs:{\"text\":props.option && _vm.sampleText,\"cutText\":2}})],1),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"font-family\"},[_vm._v(_vm._s(props.option && props.option.originalFamily))]),_c('div',{staticClass:\"font-style\"},[_vm._v(_vm._s(props.option && props.option.style))]),_c('div',{staticClass:\"font-version\"},[_vm._v(\"\\n \"+_vm._s(props.option && props.option.version\n ? (\"(\" + (props.option.version) + \")\") : \"\")+\"\\n \")])]),_c('UiTooltip',{attrs:{\"position\":\"left\",\"appendToBody\":false,\"openDelay\":380}},[_vm._v(\"\\n \"+_vm._s(_vm.shortFileName(props.option.fileName))+\"\\n \")])],1)}}])},[_vm._l((Object.keys(_vm.$slots)),function(slot){return _vm._t(slot,null,{\"slot\":slot})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-select\",class:_vm.classes},[(_vm.name)?_c('input',{staticClass:\"ui-select__hidden-input\",attrs:{\"type\":\"hidden\",\"name\":_vm.name},domProps:{\"value\":_vm.submittedValue}}):_vm._e(),(_vm.icon || _vm.$slots.icon)?_c('div',{staticClass:\"ui-select__icon-wrapper\"},[_vm._t(\"icon\",[_c('ui-icon',{attrs:{\"icon\":_vm.icon}})])],2):_vm._e(),_c('div',{staticClass:\"ui-select__content\"},[_c('div',{ref:\"label\",staticClass:\"ui-select__label\",attrs:{\"tabindex\":_vm.disabled || _vm.isAutocomplete ? null : (_vm.tabindex || '0')},on:{\"focus\":_vm.onFocus,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.openDropdown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();return _vm.openDropdown($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.onBlur($event)}]}},[(_vm.label || _vm.$slots.default)?_c('div',{staticClass:\"ui-select__label-text\",class:_vm.labelClasses},[_vm._t(\"default\",[_vm._v(_vm._s(_vm.label))])],2):_vm._e(),_c('div',{staticClass:\"ui-select__display\"},[(_vm.isAutocomplete)?_c('input',{ref:\"input\",staticClass:\"ui-select__display-value\",class:{ 'is-placeholder': !_vm.hasDisplayText },attrs:{\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value},on:{\"input\":function (e) { return _vm.setCustomValue(e.target.value); },\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.stopPropagation();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex + 1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex - 1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.onInputEnter($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.onBlur($event)}],\"focus\":_vm.onFocus,\"blur\":function($event){_vm.isFocused = false}}}):_c('div',{staticClass:\"ui-select__display-value\",class:{ 'is-placeholder': !_vm.hasDisplayText }},[_vm._v(\"\\n \"+_vm._s(_vm.hasDisplayText ? _vm.displayText : (_vm.hasFloatingLabel && _vm.isLabelInline) ? null : _vm.placeholder)+\"\\n \")]),_c('ui-icon',{ref:\"dropdownButton\",staticClass:\"ui-select__dropdown-button\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M6.984 9.984h10.03L12 15z\"}})])])],1),_c('ui-popover',{ref:\"dropdown\",class:(\"ui-select__dropdown \" + _vm.dropdownClass),attrs:{\"close-on-scroll\":false,\"constrain-to-scroll-parent\":false,\"disabled\":_vm.disabled,\"position\":_vm.dropdownPosition},on:{\"close\":_vm.onClose,\"open\":_vm.onOpen,\"reveal\":_vm.onReveal}},[_c('keep-alive',[_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\"}],ref:\"dropdownContent\",staticClass:\"ui-select__dropdown-content\",attrs:{\"tabindex\":\"-1\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex + 1)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();$event.stopPropagation();return _vm.selectHighlighted($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.onBlur($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.highlightOption(_vm.highlightedIndex - 1)}]}},[(_vm.hasSearch)?_c('div',{staticClass:\"ui-select__search\",on:{\"click\":function($event){$event.stopPropagation();},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.stopPropagation();}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],ref:\"searchInput\",staticClass:\"ui-select__search-input\",attrs:{\"autocomplete\":\"off\",\"type\":\"text\",\"placeholder\":_vm.searchPlaceholder},domProps:{\"value\":(_vm.query)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.query=$event.target.value}}}),_c('ui-icon',{staticClass:\"ui-select__search-icon\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zm6 0l4.97 4.97-1.5 1.5-4.97-4.97v-.797l-.28-.282c-1.126.984-2.626 1.547-4.22 1.547-3.61 0-6.516-2.86-6.516-6.47S5.906 3 9.516 3s6.47 2.906 6.47 6.516c0 1.594-.564 3.094-1.548 4.22l.28.28h.798z\"}})])]),(_vm.loading)?_c('ui-progress-circular',{staticClass:\"ui-select__search-progress\",attrs:{\"size\":20,\"stroke\":4}}):_vm._e()],1):_vm._e(),_c('ul',{ref:\"optionsList\",staticClass:\"ui-select__options\"},[_vm._l(((_vm.isAutocomplete ? _vm.sortedOptions : _vm.filteredOptions)),function(option,index){return _c('ui-select-option',{key:_vm.keys.key ? option[_vm.keys.key] : index,ref:\"options\",refInFor:true,attrs:{\"highlighted\":_vm.highlightedIndex === index,\"keys\":_vm.keys,\"multiple\":_vm.multiple,\"option\":option,\"selected\":_vm.isOptionSelected(option),\"type\":_vm.type},nativeOn:{\"click\":function($event){$event.stopPropagation();return _vm.selectOption(option, index)},\"mouseover\":function($event){$event.stopPropagation();return _vm.highlightOption(index, { autoScroll: false })}}},[_vm._t(\"option\",null,{\"highlighted\":_vm.highlightedIndex === index,\"index\":index,\"option\":option,\"selected\":_vm.isOptionSelected(option)})],2)}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNoResults),expression:\"hasNoResults\"}],staticClass:\"ui-select__no-results\"},[_vm._t(\"no-results\",[_vm._v(\"No results found\")])],2)],2)])])],1)],1),(_vm.hasFeedback)?_c('div',{staticClass:\"ui-select__feedback\"},[(_vm.showError)?_c('div',{staticClass:\"ui-select__feedback-text\"},[_vm._t(\"error\",[_vm._v(_vm._s(_vm.error))])],2):(_vm.showHelp)?_c('div',{staticClass:\"ui-select__feedback-text\"},[_vm._t(\"help\",[_vm._v(_vm._s(_vm.help))])],2):_vm._e()]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiSelect.vue?vue&type=template&id=244b9b87&\"\nimport script from \"./UiSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./UiSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiSelect.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-tooltip\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiTooltip.vue?vue&type=template&id=5d592866&\"\nimport script from \"./UiTooltip.vue?vue&type=script&lang=js&\"\nexport * from \"./UiTooltip.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"observe-visibility\",rawName:\"v-observe-visibility\",value:({\n callback: _vm.visibilityChanged,\n once: true,\n }),expression:\"{\\n callback: visibilityChanged,\\n once: true,\\n }\"}],staticClass:\"fit-me\"},[_c('div',{ref:\"fitted\",staticClass:\"fitted\",style:((\"font-size: \" + _vm.fontSize + \"px;\"))},[_vm._v(\"\\n \"+_vm._s(_vm.localText)+\"\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FitMe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FitMe.vue?vue&type=template&id=1f5793db&scoped=true&\"\nimport script from \"./FitMe.vue?vue&type=script&lang=js&\"\nexport * from \"./FitMe.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FitMe.vue?vue&type=style&index=0&id=1f5793db&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f5793db\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontSelect.vue?vue&type=template&id=60b0ffce&\"\nimport script from \"./FontSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./FontSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontSelect.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"file-drop \" + (this.visible ? '' : 'hidden')),on:{\"dragenter\":_vm.handleDragEnter,\"dragleave\":_vm.handleDragLeave,\"dragover\":_vm.handleDragOver,\"drop\":_vm.handleDrop}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileDrop.vue?vue&type=template&id=5882b3e7&scoped=true&\"\nimport script from \"./FileDrop.vue?vue&type=script&lang=js&\"\nexport * from \"./FileDrop.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileDrop.vue?vue&type=style&index=0&id=5882b3e7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5882b3e7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"fireworks\"},_vm._l((_vm.fireworks),function(f){return _c('Firework',{key:f.key,attrs:{\"position\":f.position}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function trackMouse(element, mouseEvent, callback) {\n function handler(e) {\n var x = e.pageX;\n var y = e.pageY;\n callback({ x, y });\n }\n element.addEventListener(mouseEvent, handler);\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"firework firework-\" + (_vm.$vnode.key)),style:((\"font-family: \" + _vm.font + \";\"))},_vm._l((_vm.letterSoup),function(letter,i){return _c('div',{key:i,class:(\"letter letter-\" + i),style:((\"font-size: \" + (3 + 0.5 * (i % 6)) + \"em\"))},[_vm._v(_vm._s(letter))])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Firework.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Firework.vue?vue&type=template&id=237c7d63&scoped=true&\"\nimport script from \"./Firework.vue?vue&type=script&lang=js&\"\nexport * from \"./Firework.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Firework.vue?vue&type=style&index=0&id=237c7d63&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"237c7d63\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Fireworks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Fireworks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Fireworks.vue?vue&type=template&id=191242f4&\"\nimport script from \"./Fireworks.vue?vue&type=script&lang=js&\"\nexport * from \"./Fireworks.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export function getOpenTypeFeatureName(tag) {\n const match = opentypeFeatureNames.find(f => f.tag.test(tag));\n return match ? tag.replace(match.tag, match.name) : tag;\n}\n\nconst opentypeFeatureNames = [\n { tag: /aalt/, name: \"Access All Alternates\" },\n { tag: /abvf/, name: \"Above-base Forms\" },\n { tag: /abvm/, name: \"Above-base Mark Positioning\" },\n { tag: /abvs/, name: \"Above-base Substitutions\" },\n { tag: /afrc/, name: \"Alternative Fractions\" },\n { tag: /akhn/, name: \"Akhands\" },\n { tag: /blwf/, name: \"Below-base Forms\" },\n { tag: /blwm/, name: \"Below-base Mark Positioning\" },\n { tag: /blws/, name: \"Below-base Substitutions\" },\n { tag: /calt/, name: \"Contextual Alternates\" },\n { tag: /case/, name: \"Case-Sensitive Forms\" },\n { tag: /ccmp/, name: \"Glyph Composition / Decomposition\" },\n { tag: /cfar/, name: \"Conjunct Form After Ro\" },\n { tag: /cjct/, name: \"Conjunct Forms\" },\n { tag: /clig/, name: \"Contextual Ligatures\" },\n { tag: /cpct/, name: \"Centered CJK Punctuation\" },\n { tag: /cpsp/, name: \"Capital Spacing\" },\n { tag: /cswh/, name: \"Contextual Swash\" },\n { tag: /curs/, name: \"Cursive Positioning\" },\n { tag: /cv(\\d{2})/, name: \"Character Variants $1\" },\n { tag: /c2pc/, name: \"Petite Capitals From Capitals\" },\n { tag: /c2sc/, name: \"Small Capitals From Capitals\" },\n { tag: /dist/, name: \"Distances\" },\n { tag: /dlig/, name: \"Discretionary Ligatures\" },\n { tag: /dnom/, name: \"Denominators\" },\n { tag: /dtls/, name: \"Dotless Forms\" },\n { tag: /expt/, name: \"Expert Forms\" },\n { tag: /falt/, name: \"Final Glyph on Line Alternates\" },\n { tag: /fin2/, name: \"Terminal Forms #2\" },\n { tag: /fin3/, name: \"Terminal Forms #3\" },\n { tag: /fina/, name: \"Terminal Forms\" },\n { tag: /flac/, name: \"Flattened accent forms\" },\n { tag: /frac/, name: \"Fractions\" },\n { tag: /fwid/, name: \"Full Widths\" },\n { tag: /half/, name: \"Half Forms\" },\n { tag: /haln/, name: \"Halant Forms\" },\n { tag: /halt/, name: \"Alternate Half Widths\" },\n { tag: /hist/, name: \"Historical Forms\" },\n { tag: /hkna/, name: \"Horizontal Kana Alternates\" },\n { tag: /hlig/, name: \"Historical Ligatures\" },\n { tag: /hngl/, name: \"Hangul\" },\n { tag: /hojo/, name: \"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms)\" },\n { tag: /hwid/, name: \"Half Widths\" },\n { tag: /init/, name: \"Initial Forms\" },\n { tag: /isol/, name: \"Isolated Forms\" },\n { tag: /ital/, name: \"Italics\" },\n { tag: /jalt/, name: \"Justification Alternates\" },\n { tag: /jp78/, name: \"JIS78 Forms\" },\n { tag: /jp83/, name: \"JIS83 Forms\" },\n { tag: /jp90/, name: \"JIS90 Forms\" },\n { tag: /jp04/, name: \"JIS2004 Forms\" },\n { tag: /kern/, name: \"Kerning\" },\n { tag: /lfbd/, name: \"Left Bounds\" },\n { tag: /liga/, name: \"Standard Ligatures\" },\n { tag: /ljmo/, name: \"Leading Jamo Forms\" },\n { tag: /lnum/, name: \"Lining Figures\" },\n { tag: /locl/, name: \"Localized Forms\" },\n { tag: /ltra/, name: \"Left-to-right alternates\" },\n { tag: /ltrm/, name: \"Left-to-right mirrored forms\" },\n { tag: /mark/, name: \"Mark Positioning\" },\n { tag: /med2/, name: \"Medial Forms #2\" },\n { tag: /medi/, name: \"Medial Forms\" },\n { tag: /mgrk/, name: \"Mathematical Greek\" },\n { tag: /mkmk/, name: \"Mark to Mark Positioning\" },\n { tag: /mset/, name: \"Mark Positioning via Substitution\" },\n { tag: /nalt/, name: \"Alternate Annotation Forms\" },\n { tag: /nlck/, name: \"NLC Kanji Forms\" },\n { tag: /nukt/, name: \"Nukta Forms\" },\n { tag: /numr/, name: \"Numerators\" },\n { tag: /onum/, name: \"Oldstyle Figures\" },\n { tag: /opbd/, name: \"Optical Bounds\" },\n { tag: /ordn/, name: \"Ordinals\" },\n { tag: /ornm/, name: \"Ornaments\" },\n { tag: /palt/, name: \"Proportional Alternate Widths\" },\n { tag: /pcap/, name: \"Petite Capitals\" },\n { tag: /pkna/, name: \"Proportional Kana\" },\n { tag: /pnum/, name: \"Proportional Figures\" },\n { tag: /pref/, name: \"Pre-Base Forms\" },\n { tag: /pres/, name: \"Pre-base Substitutions\" },\n { tag: /pstf/, name: \"Post-base Forms\" },\n { tag: /psts/, name: \"Post-base Substitutions\" },\n { tag: /pwid/, name: \"Proportional Widths\" },\n { tag: /qwid/, name: \"Quarter Widths\" },\n { tag: /rand/, name: \"Randomize\" },\n { tag: /rclt/, name: \"Required Contextual Alternates\" },\n { tag: /rkrf/, name: \"Rakar Forms\" },\n { tag: /rlig/, name: \"Required Ligatures\" },\n { tag: /rphf/, name: \"Reph Forms\" },\n { tag: /rtbd/, name: \"Right Bounds\" },\n { tag: /rtla/, name: \"Right-to-left alternates\" },\n { tag: /rtlm/, name: \"Right-to-left mirrored forms\" },\n { tag: /ruby/, name: \"Ruby Notation Forms\" },\n { tag: /rvrn/, name: \"Required Variation Alternates\" },\n { tag: /salt/, name: \"Stylistic Alternates\" },\n { tag: /sinf/, name: \"Scientific Inferiors\" },\n { tag: /size/, name: \"Optical size\" },\n { tag: /smcp/, name: \"Small Capitals\" },\n { tag: /smpl/, name: \"Simplified Forms\" },\n { tag: /ss01/, name: \"Stylistic Set 1\" },\n { tag: /ss02/, name: \"Stylistic Set 2\" },\n { tag: /ss03/, name: \"Stylistic Set 3\" },\n { tag: /ss04/, name: \"Stylistic Set 4\" },\n { tag: /ss05/, name: \"Stylistic Set 5\" },\n { tag: /ss06/, name: \"Stylistic Set 6\" },\n { tag: /ss07/, name: \"Stylistic Set 7\" },\n { tag: /ss08/, name: \"Stylistic Set 8\" },\n { tag: /ss09/, name: \"Stylistic Set 9\" },\n { tag: /ss10/, name: \"Stylistic Set 10\" },\n { tag: /ss11/, name: \"Stylistic Set 11\" },\n { tag: /ss12/, name: \"Stylistic Set 12\" },\n { tag: /ss13/, name: \"Stylistic Set 13\" },\n { tag: /ss14/, name: \"Stylistic Set 14\" },\n { tag: /ss15/, name: \"Stylistic Set 15\" },\n { tag: /ss16/, name: \"Stylistic Set 16\" },\n { tag: /ss17/, name: \"Stylistic Set 17\" },\n { tag: /ss18/, name: \"Stylistic Set 18\" },\n { tag: /ss19/, name: \"Stylistic Set 19\" },\n { tag: /ss20/, name: \"Stylistic Set 20\" },\n { tag: /ssty/, name: \"Math script style alternates\" },\n { tag: /stch/, name: \"Stretching Glyph Decomposition\" },\n { tag: /subs/, name: \"Subscript\" },\n { tag: /sups/, name: \"Superscript\" },\n { tag: /swsh/, name: \"Swash\" },\n { tag: /titl/, name: \"Titling\" },\n { tag: /tjmo/, name: \"Trailing Jamo Forms\" },\n { tag: /tnam/, name: \"Traditional Name Forms\" },\n { tag: /tnum/, name: \"Tabular Figures\" },\n { tag: /trad/, name: \"Traditional Forms\" },\n { tag: /twid/, name: \"Third Widths\" },\n { tag: /unic/, name: \"Unicase\" },\n { tag: /valt/, name: \"Alternate Vertical Metrics\" },\n { tag: /vatu/, name: \"Vattu Variants\" },\n { tag: /vert/, name: \"Vertical Writing\" },\n { tag: /vhal/, name: \"Alternate Vertical Half Metrics\" },\n { tag: /vjmo/, name: \"Vowel Jamo Forms\" },\n { tag: /vkna/, name: \"Vertical Kana Alternates\" },\n { tag: /vkrn/, name: \"Vertical Kerning\" },\n { tag: /vpal/, name: \"Proportional Alternate Vertical Metrics\" },\n { tag: /vrt2/, name: \"Vertical Alternates and Rotation\" },\n { tag: /vrtr/, name: \"Vertical Alternates for Rotation\" },\n { tag: /zero/, name: \"Slashed Zero\" },\n];\n","import opentypeLanguageTags from \"./opentypeLanguageTags\";\nimport { getOpenTypeFeatureName } from \"./opentypeFeatureNames\";\n\nexport default class Font {\n constructor(font, url, fileName) {\n this.version = 0;\n this.url = url;\n this.fileName = fileName;\n this.font = font;\n this.processFont();\n }\n\n serialize() {\n // eslint-disable-next-line no-unused-vars\n const { font, ...obj } = this;\n return obj;\n }\n\n processFont() {\n this.getNames();\n this.getFeatures();\n this.getGlyphs();\n this.generateFontFace();\n }\n\n getNames() {\n const font = this.font;\n const names = font.names;\n this.family = (names.preferredFamily && names.preferredFamily.en) || names.fontFamily.en;\n this.originalFamily = this.family;\n if (this.version) {\n this.family += `-${this.version}`;\n }\n this.style =\n (names.preferredSubfamily && names.preferredSubfamily.en) || names.fontSubfamily.en;\n\n this.cssFamily = this.family + '-' + this.style;\n this.cssStyle = /(italic|oblique)/gi.test(this.style) ? \"italic\" : \"normal\";\n this.cssWeight = font.tables.os2.usWeightClass;\n\n this.displayName = `${this.originalFamily} ${this.style} ${this.version ? `(${this.version})` : ''}`;\n }\n\n getGlyphs() {\n const font = this.font;\n // this.characters = Object.keys(font.tables.cmap.glyphIndexMap).map(unicode => String.fromCharCode(unicode));\n const glyphs = Object.keys(font.glyphs.glyphs)\n .map(k => font.glyphs.glyphs[k])\n .filter(g => g.unicode)\n .map(g => String.fromCharCode(g.unicode));\n this.characters = glyphs;\n }\n\n getFeatures() {\n const font = this.font;\n const names = font.names;\n const gpos = font.tables.gpos || {};\n const gsub = font.tables.gsub || {};\n\n const languageSet = new Set(\n [...(gpos.scripts || []), ...(gsub.scripts || [])]\n .flatMap(s => s.script.langSysRecords).map(lsr => lsr.tag)\n );\n const loclLanguages = Array.from(languageSet)\n .map(tag => {\n // tags are four characters, last most commonly space\n const language = opentypeLanguageTags.find(l => l.opentypeTag === tag);\n const name = language ? language.name : tag;\n const htmlTag = language ? language.htmlTag : tag.toLowerCase();\n return ({ tag, name, htmlTag });\n })\n .sort((a, b) => a.name > b.name);\n\n const stylisticSetNames = Object.getOwnPropertyNames(names)\n .filter(p => /\\d+/.test(p))\n .map(p => names[p].en);\n let i = 0;\n const getStylisticSetName = function () {\n return stylisticSetNames[i++];\n };\n\n this.gposFeatures = [];\n (gpos.features || []).forEach(f => {\n const duplicate = this.gposFeatures.find(ff => ff.tag == f.tag);\n if (!duplicate) {\n const feature = {\n tag: f.tag,\n name: getOpenTypeFeatureName(f.tag),\n };\n this.gposFeatures.push(feature);\n }\n });\n\n this.gsubFeatures = [];\n (gsub.features || []).forEach(f => {\n const duplicate = this.gsubFeatures.find(ff => ff.tag == f.tag);\n if (!duplicate) {\n const feature = {\n tag: f.tag,\n name: getOpenTypeFeatureName(f.tag),\n // uiName: f.feature.uiName,\n };\n\n if (f.tag == \"locl\") {\n feature.languages = loclLanguages;\n feature.selectedLanguage = \"\";\n } else if (/ss\\d\\d/.test(f.tag)) {\n const uiName = f.feature.uiName;\n feature.uiName = uiName && uiName['en'];\n } else if (/cv\\d\\d/.test(f.tag)) {\n const uiName = f.feature.featUiLabelName;\n feature.uiName = uiName && uiName['en'];\n console.log(feature.uiName)\n }\n this.gsubFeatures.push(feature);\n }\n });\n\n this.variationAxes = [];\n if (font && font.tables.fvar && font.tables.fvar.axes) {\n this.variationAxes = font && font.tables.fvar && font.tables.fvar.axes;\n }\n }\n\n generateFontFace({ family, style, weight } = {}) {\n this.fontFace = `\n @font-face {\n font-family: \"${family || this.cssFamily}\";\n // font-style: ${style || this.cssStyle}; // disabling helps work with variable fonts\n // font-weight: ${weight || this.cssWeight};\n src: url('${this.url}');\n }\n `;\n return this.fontFace;\n }\n\n bumpVersion(value) {\n if (value) {\n this.version = value;\n }\n else {\n this.version++;\n }\n this.processFont();\n }\n}\n","export default function(proposal) {\n if (!proposal) {\n let id = '';\n do {\n let val = Math.random() * (2 ** 8);\n let hex = val.toString(16);\n id = 'b' + hex;\n } while (document.getElementById(id));\n return id;\n }\n else {\n let id = proposal;\n let i = 1;\n while (document.getElementById(id)) {\n id = `${proposal}-${i++}`;\n }\n return id;\n }\n}\n","import getId from \"./id\";\n\nexport default {\n add(css, id = \"\") {\n if (!id) {\n id = getId();\n }\n\n var newStyle = document.createElement(\"style\");\n newStyle.appendChild(document.createTextNode(css));\n\n document.head.appendChild(newStyle);\n\n if (id) {\n const existing = document.getElementById(id);\n if (existing) {\n existing.parentNode.removeChild(existing);\n }\n }\n newStyle.id = id;\n },\n\n setProperty(prop, val) {\n document.documentElement.style.setProperty(prop, val);\n },\n};\n","export default [\n \"AlegreyaSans/AlegreyaSans-Regular.ttf\",\n \"AlegreyaSans/AlegreyaSans-Italic.ttf\",\n \"AlegreyaSans/AlegreyaSans-Bold.ttf\",\n \"AlegreyaSans/AlegreyaSans-BoldItalic.ttf\",\n \"Rywalka-Regular.ttf\",\n \"Graduate.ttf\",\n];\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontLoader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontLoader.vue?vue&type=template&id=ca4f0d16&\"\nimport script from \"./FontLoader.vue?vue&type=script&lang=js&\"\nexport * from \"./FontLoader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontLoader.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"editor-nav\"},[_c('div',{staticClass:\"links-wrapper\"},[_c('transition-group',{staticClass:\"links\",attrs:{\"name\":\"fade\"}},_vm._l((_vm.lessCustomTextIds),function(id){return _c('EditorNavLink',{key:id,attrs:{\"id\":id}})}),1),_c('transition-group',{staticClass:\"links\",attrs:{\"name\":\"fade\"}},_vm._l((_vm.moreCustomTextIds),function(id){return _c('EditorNavLink',{key:id,attrs:{\"id\":id}})}),1)],1),_c('span',{key:\"-1\",staticClass:\"nav-link new\"},[_c('router-link',{attrs:{\"to\":\"/custom/-1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.customTextIds.length > 0 ? '+ New' : 'Editor')+\"\\n \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"editor-nav-link nav-link\"},[_c('router-link',{attrs:{\"to\":(\"/custom/\" + _vm.id)}},[_c('div',{staticClass:\"middle-ellipsis\"},[_c('div',{staticClass:\"start\"},[_vm._v(\"Custom \")]),_c('div',{staticClass:\"end\"},[_vm._v(_vm._s(_vm.id))])])]),_c('UiIconButton',{staticStyle:{\"color\":\"white\"},attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.removeCustomText(_vm.id)}}},[_c('svg',{key:'1',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditorNavLink.vue?vue&type=template&id=00f8f142&scoped=true&\"\nimport script from \"./EditorNavLink.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorNavLink.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorNavLink.vue?vue&type=style&index=0&id=00f8f142&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00f8f142\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","// https://stackoverflow.com/a/17694760/6805143\n\nvar saveSelection, restoreSelection, getSelectionRange;\n\nif (window.getSelection && document.createRange) {\n getSelectionRange = function () {\n const sel = window.getSelection();\n return sel.rangeCount >= 1 && sel.getRangeAt(0);\n }\n\n saveSelection = function (containerEl) {\n var doc = containerEl.ownerDocument, win = doc.defaultView;\n var range = win.getSelection().getRangeAt(0);\n var preSelectionRange = range.cloneRange();\n preSelectionRange.selectNodeContents(containerEl);\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\n var start = preSelectionRange.toString().length;\n\n return {\n start: start,\n end: start + range.toString().length,\n };\n };\n\n restoreSelection = function (containerEl, savedSel) {\n var doc = containerEl.ownerDocument, win = doc.defaultView;\n var charIndex = 0, range = doc.createRange();\n range.setStart(containerEl, 0);\n range.collapse(true);\n var nodeStack = [containerEl], node, foundStart = false, stop = false;\n\n while (!stop && (node = nodeStack.pop())) {\n if (node.nodeType == 3) {\n var nextCharIndex = charIndex + node.length;\n if (!foundStart && savedSel.start >= charIndex && savedSel.start <= nextCharIndex) {\n range.setStart(node, savedSel.start - charIndex);\n foundStart = true;\n }\n if (foundStart && savedSel.end >= charIndex && savedSel.end <= nextCharIndex) {\n range.setEnd(node, savedSel.end - charIndex);\n stop = true;\n }\n charIndex = nextCharIndex;\n } else {\n var i = node.childNodes.length;\n while (i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n }\n\n var sel = win.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n };\n} else if (document.selection) {\n saveSelection = function (containerEl) {\n var doc = containerEl.ownerDocument;\n var selectedTextRange = doc.selection.createRange();\n var preSelectionTextRange = doc.body.createTextRange();\n preSelectionTextRange.moveToElementText(containerEl);\n preSelectionTextRange.setEndPoint(\"EndToStart\", selectedTextRange);\n var start = preSelectionTextRange.text.length;\n\n return {\n start: start,\n end: start + selectedTextRange.text.length,\n };\n };\n\n restoreSelection = function (containerEl, savedSel) {\n var doc = containerEl.ownerDocument;\n var textRange = doc.body.createTextRange();\n textRange.moveToElementText(containerEl);\n textRange.collapse(true);\n textRange.moveEnd(\"character\", savedSel.end);\n textRange.moveStart(\"character\", savedSel.start);\n textRange.select();\n };\n}\n\nexport default class DomSelection {\n constructor(container) {\n this.selection = null;\n this.container = container;\n }\n\n get remembered() {\n return this.selection !== null;\n }\n\n save() {\n this.selection = saveSelection(this.container);\n }\n\n restore() {\n if (this.selection) {\n restoreSelection(this.container, this.selection);\n }\n }\n\n forget() {\n this.selection = null;\n }\n\n ancestor() {\n const range = getSelectionRange(this.container);\n let ancestor = range.commonAncestorContainer;\n if (ancestor.nodeType === Node.TEXT_NODE) {\n ancestor = ancestor.parentNode;\n }\n return ancestor;\n }\n\n existentTags(tag) {\n const range = getSelectionRange(this.container);\n const fragment = range.cloneContents();\n let existentTags = fragment.querySelectorAll(tag);\n // existentTags = Array.from(existentTags).filter(t => t.innerText);\n return existentTags;\n }\n\n closestTag(tag) {\n let closestTag = this.ancestor().closest(tag);\n return closestTag;\n }\n\n containsTag(tag) {\n return this.existentTags(tag).length > 0 || this.closestTag(tag) != null;\n }\n\n wrap(tag) {\n const isParagraph = /^h[1-6]$/.test(tag);\n\n let ancestor = this.ancestor();\n // if selection is outside editor; not probable though\n if (!this.container.contains(ancestor)) {\n console.log(\"not contained\")\n return;\n }\n // if (ancestor.tagName === tag.toUpperCase()) {\n // existentTag = ancestor;\n // }\n const range = getSelectionRange(this.container);\n let fragment = range.cloneContents();\n let existentTags = fragment.querySelectorAll(tag);\n const closestTag = this.closestTag(tag);\n\n if (closestTag) {\n // console.log('closest');\n const parent = ancestor === closestTag ? ancestor.parentNode : ancestor;\n const tmp = document.createElement('tmp');\n range.surroundContents(tmp);\n const newContent = document.createDocumentFragment();\n Array.from(closestTag.childNodes).forEach(c => {\n try {\n if (c === tmp) {\n newContent.appendChild(c.childNodes[0]);\n }\n else if (c.nodeValue || c.innerText) {\n const newEl = document.createElement(tag);\n newEl.appendChild(c.cloneNode());\n newContent.appendChild(newEl);\n }\n }\n catch (e) {\n console.log(e);\n }\n });\n parent.replaceChild(newContent, closestTag);\n }\n else if (existentTags.length) {\n // console.log(existentTags.length + ' existent ' + tag + 's')\n existentTags.forEach(c => {\n try {\n const fr = document.createDocumentFragment();\n Array.from(c.childNodes).forEach(cc => fr.appendChild(cc));\n c.parentNode.replaceChild(fr, c);\n }\n catch (e) {\n console.log(e);\n }\n });\n range.deleteContents();\n range.insertNode(fragment);\n }\n else\n try {\n const empty = isParagraph && range.toString() === \"\";\n if (empty) {\n range.insertNode(document.createElement(\"br\"));\n }\n\n const newParent = document.createElement(tag);\n newParent.appendChild(range.extractContents());\n range.insertNode(newParent);\n\n if (empty) {\n range.selectNodeContents(newParent);\n }\n }\n catch (e) {\n console.log(e);\n console.log(ancestor)\n // probably selection is partial\n }\n\n clean(this.container);\n }\n}\n\nfunction clean(node)\n{\n for(var n = 0; n < node.childNodes.length; n ++)\n {\n var child = node.childNodes[n];\n if\n (\n child.nodeType === 8\n ||\n (child.nodeType === 3 && !/\\S/.test(child.nodeValue))\n || child.innerText === \"\"\n )\n {\n // console.log('removing node')\n // console.log(node.toString())\n // console.log(child.toString())\n node.removeChild(child);\n n --;\n }\n else if(child.nodeType === 1)\n {\n clean(child);\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditorNav.vue?vue&type=template&id=24ad2e06&scoped=true&\"\nimport script from \"./EditorNav.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorNav.vue?vue&type=style&index=0&id=24ad2e06&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24ad2e06\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-tools font-sample-nav contextual-sidebar\"},[_c('div',{staticClass:\"toolbar panel btn-group\"},[_c('UiIconButton',{attrs:{\"tooltip\":\"Heading\",\"color\":_vm.isHeadingActive ? 'primary' : 'default'},on:{\"click\":_vm.makeHeading}},[_vm._v(\"\\n H\\n \")]),_c('UiIconButton',{attrs:{\"tooltip\":\"Bold\",\"color\":_vm.isBoldActive ? 'primary' : 'default'},on:{\"click\":_vm.makeBold}},[_vm._v(\"\\n B\\n \")]),_c('UiIconButton',{attrs:{\"tooltip\":\"Italic\",\"color\":_vm.isItalicActive ? 'primary' : 'default'},on:{\"click\":_vm.makeItalic}},[_vm._v(\"\\n I\\n \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"animation-editor panel\"},[_c('h3',[_vm._v(\"Animation editor\")]),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Duration\")]),_c('UiTextbox',{model:{value:(_vm.duration),callback:function ($$v) {_vm.duration=$$v},expression:\"duration\"}})],1),_c('EditableList',{staticClass:\"keyframes\",attrs:{\"options\":_vm.animationKeyframes,\"keys\":{key: 'id'}},on:{\"remove\":function (key) { return _vm.removeAnimationKeyframe({ id: key }); }},scopedSlots:_vm._u([{key:\"option\",fn:function(ref){\nvar k = ref.option;\nvar i = ref.index;\nreturn [_c('UiButton',{class:'keyframe border' + (k.id === _vm.activeKeyframeId ? ' active' : ''),attrs:{\"id\":(\"keyframe-btn-\" + (k.id))},on:{\"click\":function($event){return _vm.activateKeyframe({ id: k.id })}}},[_c('div',{staticClass:\"label\"},[_vm._v(\"\\n Keyframe \"+_vm._s(k.id)+\"\\n \")]),_c('UiProgressLinear',{attrs:{\"progress\":_vm.keyframeProgress[i],\"type\":\"determinate\"}})],1)]}},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"btn-group\"},[_c('UiButton',{on:{\"click\":_vm.addAnimationKeyframe}},[_vm._v(\"\\n Add\\n \")]),_c('UiButton',{attrs:{\"loading\":_vm.playing,\"disabled\":!_vm.canAnimate},on:{\"click\":_vm.play}},[_vm._v(\"\\n Play\\n \")])],1)]},proxy:true}])}),_c('div',{staticClass:\"row-v\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Code\")]),_c('UiTextbox',{attrs:{\"value\":_vm.keyframesText,\"multiLine\":true,\"rows\":5,\"autosize\":false},on:{\"input\":function (v) { return _vm.importAnimationKeyframes(v); }}})],1),_c('div',{staticClass:\"row-v\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Animated\")]),_c('UiSelect',{attrs:{\"value\":_vm.animatedProperties,\"options\":_vm.animatableProperties,\"multiple\":true},on:{\"input\":function (properties) { return _vm.setAnimatedProperties({ properties: properties }); }}})],1),_c('a',{key:\"help\",staticClass:\"help-link\",attrs:{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"/help/animation\"}},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}})]),_c('span',[_vm._v(\"\\n Help\\n \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editable-list\"},[_c('transition-group',{attrs:{\"name\":\"fade\"}},[_c('div',{key:\"header\",staticClass:\"row\"},[_vm._t(\"header\")],2),_vm._l((_vm.options),function(o,i){return _c('div',{key:_vm.keys.key ? o[_vm.keys.key] : i,staticClass:\"editable-list-item\"},[(_vm.keys.checked)?_c('UiCheckbox',{attrs:{\"value\":o[_vm.keys.checked]},on:{\"input\":function (value) { return _vm.$emit('check', { key: o[_vm.keys.key], value: value }); }}}):_vm._e(),_vm._t(\"option\",[_vm._v(\"\\n \"+_vm._s(_vm.keys.label ? o[_vm.keys.label] : o)+\"\\n \")],{\"option\":o,\"index\":i}),_c('UiIconButton',{staticClass:\"border\",attrs:{\"color\":\"default\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('remove', _vm.keys.key ? o[_vm.keys.key] : o)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13H5v-2h14v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],2)}),_c('div',{key:\"footer\",staticClass:\"row\"},[_vm._t(\"footer\")],2)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditableList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditableList.vue?vue&type=template&id=69007cc0&scoped=true&\"\nimport script from \"./EditableList.vue?vue&type=script&lang=js&\"\nexport * from \"./EditableList.vue?vue&type=script&lang=js&\"\nimport style1 from \"./EditableList.vue?vue&type=style&index=1&id=69007cc0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69007cc0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnimationEditor.vue?vue&type=template&id=0dcbafa4&scoped=true&\"\nimport script from \"./AnimationEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./AnimationEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AnimationEditor.vue?vue&type=style&index=0&id=0dcbafa4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0dcbafa4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TextTools.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TextTools.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextTools.vue?vue&type=template&id=3e10b63a&scoped=true&\"\nimport script from \"./TextTools.vue?vue&type=script&lang=js&\"\nexport * from \"./TextTools.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextTools.vue?vue&type=style&index=0&id=3e10b63a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e10b63a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',{staticClass:\"site-logo\"},[_c('svg',{class:'logo',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 256 256\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('g',{attrs:{\"data-name\":\"Warstwa 3\"}},[_c('g',{attrs:{\"data-name\":\"Icon Big\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M207.6 192.9c.28-1.46 3.45-3.78 7.05-5.15l14.81-5.64c3.6-1.37 3.41-2.88-.41-3.36L214.5 177c-3.82-.47-7.66-3.06-8.52-5.74s-3.21-12-1.77-15.53l8.73-21.56c1.45-3.57.13-4.58-2.93-2.24l-17.33 13.25c-3.06 2.34-6.82 3.65-8.36 2.91l-2.13-.73-4.5-1.53c-2.8-.25-7.48-2.51-10.41-5a19.57 19.57 0 00-4-3.9c-2.67-2-2.9-1.21-.51 1.81l.91 1.15c2.39 3 3.6 5.73 2.68 6s-7.33-.86-11-2.1l-9.55-3.24c-3.64-1.24-6 .83-5.22 4.6l.59 2.88c.77 3.77.48 7.7-.65 8.74s-6.83 4.88-10.55 5.85l-.71.19c-3.72 1-4.51 2.43-1.75 3.23a4.66 4.66 0 013.25 6.15c-1 2.58-4.53 12-7.49 14.49l-7.53 6.28c-3 2.46-2.26 4.89 1.56 5.4l7.42 1c3.82.5 8.17 3.13 9.67 5.85s6.81 11.9 6.81 15.75v2.87c0 3.85 2.27 4.81 5 2.14l.18-.17c2.78-2.67 6.79-4.19 8.93-3.37s10.3 4.29 13 7.08l6.5 6.85c2.65 2.8 5.59 2 6.54-1.7l1.68-6.58a20.76 20.76 0 017.6-10.6l7.81-7c2.45-3 6.94-5.9 10-6.5s10.13-3.17 6.37-4l-1.78-.39c-3.75-.86-5.72-5.23-5.44-6.69zm-21.25-16.6a2.91 2.91 0 00-.15 5.44c.86.54.87 1.24 0 1.55a3.82 3.82 0 00-1.73 2.13c-.07.42.74 1.24 1.82 1.82s1 .92-.21.76a3.51 3.51 0 00-2.82 1.42 2.61 2.61 0 00.53 2.12c.5.72.18 1.23-.71 1.15s-2.6 1.06-3 1.48 0 2.79.93 5.27.09 3.07-1.85 1.29-5.88-2.23-6.85-2a2.67 2.67 0 00-1.75 2.58c0 1.18-.52 1.22-1.16.09l-.64-1.13a4.1 4.1 0 00-.76-.92c-2.16 0-4.14-.15-6.57-.32l-.53 1c-.53 1-1 .83-1-.45a5.37 5.37 0 00-1.3-3.14c-.35-.24-1.91.67-3.46 2s-2 .94-1-.91a7.68 7.68 0 00-.07-5.74c-.44-.7-1.93-.88-3.29-.39s-1.6 0-.52-1.17 1.42-3.93 1.3-4.67-1.13-1.35-2.24-1.35-1.13-.56 0-1.23 2.23-3.38 2.43-4.16-1.17-2.17-3-3.07-1.6-1.54.6-1.41 5.77-2.38 6.63-3.22a3.77 3.77 0 001-3.32c-.3-1 .2-1.33 1.1-.76s3.18.24 3.8 0a2.8 2.8 0 001.13-2.5c0-1.15.47-1.26 1-.26a4.05 4.05 0 002.64 1.63c.45 0 1.28-1.16 1.86-2.51s1.47-1.27 2 .17 3.77 3.48 4.75 4 2.7-.2 3.84-1.58 1.66-1 1.15.89 1.22 5.77 1.84 6.83a4.35 4.35 0 003.9 1.66c1.54-.1 1.7.3.36.93z\",\"data-name\":\"Hole 1\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M185.51 76.49l-10.72-7a2.71 2.71 0 01-.65-4l6.59-8.32c1-1.3.52-2.21-1.12-2l-9.77 1c-1.64.17-2-.56-.68-1.61l6-4.91A1 1 0 00174 48.1L163.6 53a2.15 2.15 0 01-3.2-1.69l-1.75-10.9c-.27-1.63-1.5-2.07-2.74-1l-8.51 7.45a2.31 2.31 0 01-3.7-.66l-.38-.7c-.79-1.45-2-2.76-2.79-2.91s-2.17.81-3.16 2.13l-1.28 1.72a2.12 2.12 0 01-3.59 0l-5.66-7.66a2.11 2.11 0 00-3.58 0l-12.68 16.87a1.89 1.89 0 01-3.36-.16L94.59 34.57c-.86-1.41-1.26-1.25-.89.36l6.3 27.8a5.36 5.36 0 01-1.64 4.84l-5.16 4.3a10.64 10.64 0 01-4.75 2.19c-1.34.15-1.58 1.31-.52 2.58l1.59 1.9a14.9 14.9 0 012.57 5.24l2 8.8a12.19 12.19 0 002.78 5l.09.09a3 3 0 010 4.25l-4.44 4.44c-1.16 1.17-.8 2.43.8 2.81l5.68 1.39a7.07 7.07 0 014.29 10.76l-1.52 2.32a2.63 2.63 0 002.61 4l13-2.07a2.82 2.82 0 013 3.89l-3 7a1.68 1.68 0 002.69 1.89l7.71-7.17a12.37 12.37 0 015.14-2.61l10.93-2.12a5 5 0 014.64 1.91l3.67 5.36c.93 1.36 1.87 1.13 2.08-.5l.86-6.54a16.5 16.5 0 012-5.52l3.9-6.3a3.36 3.36 0 014.26-1.21l3.32 1.66c1.48.74 2.48 0 2.24-1.62l-2.37-15.78a2 2 0 012.51-2.42l11.47 2.15c1.62.31 1.93-.33.69-1.42l-9.06-8c-1.24-1.09-1-2.35.63-2.81l1.83-.52c1.59-.45 1.58-1.18 0-1.61 0 0-3.07-.84-3.62-1.39-1.21-1.21 12.24-3.33 12.24-3.33 1.55-.21 1.75-1.16.37-2.07zm-28.21 8.93c-1.86.94-3.74 5.11-4.14 6.37a4.68 4.68 0 001.46 4.3c1.21 1.11 1 1.53-.46.92a4.41 4.41 0 00-4 .87 4.34 4.34 0 00-.44 2.91c.18 1.07-.37 1.59-1.22 1.13a4.09 4.09 0 00-2.94.15c-.39.24-.46 1.48-.15 2.75s0 1.45-.76.39a3.74 3.74 0 00-3.15-1.24 2.78 2.78 0 00-1.32 2c-.21.91-.86 1-1.43.25s-2.71-1.31-3.34-1.34-2.22 2-3.55 4.52-2.38 2.28-2.35-.55-2.43-6.3-3.31-6.9a2.86 2.86 0 00-3.32.44c-1 .85-1.35.46-.91-.86a12.61 12.61 0 00.7-2.52l-.06-.07-1.55-1.73c-1.06-2.2-2.07-4.5-2.25-5.1s-.56-2.27-.62-2.71-1.89-1-4.08-1.32-2.2-.94 0-1.48 4.29-3.3 4.53-4.17-.68-2.17-2.05-2.91-1.11-1.3.57-1.26 4.15-1.68 4.66-2.31a25.14 25.14 0 011.88-2.05 31.32 31.32 0 013.62-2.65c.77-.41.89-2.49.27-4.64s.08-2.38 1.56-.52 6 2.9 7.32 3a4 4 0 003.39-1.57c.57-.94 2-.43 3.16 1.13s2.85 2.18 3.77 1.36 1.34-.53.95.65a4.29 4.29 0 00.59 3.28c.34.33 1.84.19 3.33-.32s2.08.26 1.3 1.72-.07 5.51.22 6.65 2.1 2 4 1.94 1.97.55.12 1.49z\",\"data-name\":\"Hole 2\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M117.52 172.68c.06-.47-4-4.94-4-4.94-3.69-4.07-3.74-7.23-.11-7s6.52 0 6.42-.4-3-1.6-6.42-2.61-5.84-5.6-4-8.14a6 6 0 00-4-9.18s-12.45-2.53-13.3-3.17-5.77-15.21-7.21-15-11.77 8.46-16.18 10l-4.11 1.39c-2.61 1.29-6.05.86-7.64-1s-2.91-3.28-3.2-1.75-3 3.46-4.86 1.09l-.57-2.75-.56-2.75c-2.16-2.09-4.25.69-4.66 6.18a103.16 103.16 0 01-2.55 15.23c-.53 2.11-2 4.76-4.11 4a4.11 4.11 0 01-1.77-1.62l-1.51-2.07c-2.29-4-4.36-7.14-4.59-7.06s.57 4.54 1.8 9.91c0 0 .34 1.51-1.64 6.83l-.89 2.4c-2.59.65-4.31 2.77-3.82 4.69l1.45 1.09c1.46 1.09 3.18 1.87 4.33 3.28s1.44 3.79 0 4.86c-2.38 1.74-2.17 5.59-.35 7.91s4.71 3.47 7.46 4.53c1 .37.79 1.76.44 2.73l-1.23 3.44c-1.36 3.78-.41 7 2.1 7.11s8.36 4.21 7.72 7.3 1 10.27 4.66 9 16.28-4.79 20.81-3.28l3.07-2.52c1.82-1.49 1.94-5.48 4-6.5 3.09-1.5 7.81 1.64 9.85 4.4s2.65 6.32 3.28 9.69c.32 1.81 3 2.28 4.46 1.21S99.3 212 99.3 212c1.48-5.3 3.94-8.68 5.46-7.53s4.08-.06 2.31-5.27a42.23 42.23 0 01-2-13.69c.29-5.36 12.35-12.09 12.45-12.83zM85.84 178c.62 1.17.13 1.89-1.08 1.61a4.37 4.37 0 00-3.61.84c-.77.74-2.73 3.42-2.29 4.83s-.3 1.52-1.64.22-3.21-2-4.17-1.55-4.37 1.74-5 3.09-1 1.3-.91-.12-.31-2.69-.89-2.83a26.72 26.72 0 01-3.37-1.38c-.73-.38-1.6-.9-2-1.14a3.68 3.68 0 00-3 .22c-1 .63-1.24.4-.55-.53s1-2 .67-2.34a4.46 4.46 0 00-2.58-1.24c-.84.09-1.12-.42-.64-1.13a2.85 2.85 0 00.5-2.25 8.73 8.73 0 00-2.72-3.09c-1.15-.62-1.25-1.59-.22-2.15a4.21 4.21 0 002-2.72 27.69 27.69 0 011.27-4.41c.27-.59.49-1.09.51-1.12s-.06-1.82-.19-3.91l-.05-.33 3.35-.72c1.83-.38 3.45-1.29 3.59-2s1.25-1.12 2.46-.88a4.66 4.66 0 003-.2c.46-.35 2.3-1.43 2.53-2.81s.77-1.32 1.23.11 1.39 2.75 2.08 2.9a27.51 27.51 0 013.53 1.37 21.37 21.37 0 012.22 1.39 5.7 5.7 0 005.1-.24c1.63-1.15 2-.63.9 1.16s-1.79 3.79-1.44 4.42 1.8 3.38 2.77 3.59 1.18 1.44.47 2.73-.72 3.94.24 4.47.84 1-.27 1-2.18.55-2.38 1.19a7.1 7.1 0 00.58 3.95z\",\"data-name\":\"Hole 3\"}})])])]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"logotype\"},[_c('span',{staticClass:\"strong\"},[_vm._v(\"Bulletproof\")]),_c('span',{staticClass:\"weak\"},[_vm._v(\"Font Tester\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SiteLogo.vue?vue&type=template&id=33837896&scoped=true&\"\nvar script = {}\nimport style0 from \"./SiteLogo.vue?vue&type=style&index=0&id=33837896&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33837896\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sigmoid-container\",style:(_vm.rootStyle)},[_c('svg',{staticStyle:{\"display\":\"block\"},attrs:{\"height\":\"0\",\"width\":\"0\",\"preserveAspectRatio\":\"none\"}},[_c('defs',[_c('clipPath',{attrs:{\"id\":_vm.svgLeftId,\"clipPathUnits\":\"objectBoundingBox\"}},[_c('path',{attrs:{\"d\":_vm.path('left')}})]),_c('clipPath',{attrs:{\"id\":_vm.svgRightId,\"clipPathUnits\":\"objectBoundingBox\"}},[_c('path',{attrs:{\"d\":_vm.path('right')}})])])]),(_vm.left)?_c('div',{staticClass:\"sigmoid left\",style:(_vm.sigmoidWrapperStyle('left'))},[_c('div',{style:(_vm.sigmoidStyle('left'))})]):_vm._e(),_c('div',{staticClass:\"container\",style:(_vm.containerStyle)},[_c('div',{staticClass:\"content\",style:(_vm.contentStyle)},[_vm._t(\"default\")],2)]),(_vm.right)?_c('div',{staticClass:\"sigmoid right\",style:(_vm.sigmoidWrapperStyle('right'))},[_c('div',{style:(_vm.sigmoidStyle('right'))})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SigmoidContainer.vue?vue&type=template&id=c62ebfe4&scoped=true&\"\nimport script from \"./SigmoidContainer.vue?vue&type=script&lang=js&\"\nexport * from \"./SigmoidContainer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SigmoidContainer.vue?vue&type=style&index=0&id=c62ebfe4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c62ebfe4\",\n null\n \n)\n\nexport default component.exports","export default [\"lettering\", \"pangrams\", \"sentences\", \"gotchas\", \"ABCs\", \"glyphs\", \"kerning\", \"languages\"];\n","export default function(kind) {\n return kind[0].toUpperCase() + kind.substr(1);\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SiteHeader.vue?vue&type=template&id=1d84f2a8&scoped=true&\"\nimport script from \"./SiteHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./SiteHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SiteHeader.vue?vue&type=style&index=0&id=1d84f2a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d84f2a8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"site-footer\"},[_c('div',{ref:\"sentinel\",staticClass:\"sentinel\"}),_vm._m(0),_c('SigmoidContainer',{staticClass:\"large light aside\",attrs:{\"sides\":\"left bottom\",\"width\":\"65\",\"idSeed\":\"footer\"}},[_c('a',{staticClass:\"github-link\",attrs:{\"href\":\"https://github.com/hyvyys/Bulletproof\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('div',[_vm._v(\"\\n Bulletproof\\n \"),_c('br'),_vm._v(\"\\n on Github\\n \")]),_c('svg',{attrs:{\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"svg-inline\":'',\"height\":'32',\"width\":'32',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}})])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"main u-dark\"},[_c('div',[_c('div',[_vm._v(\"\\n Sample texts from\\n \"),_c('a',{attrs:{\"href\":\"https://github.com/hyvyys/language-data\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"\\n Language-Data\\n \")]),_vm._v(\".\\n Visit link to contribute.\\n \")]),_c('div',[_c('a',{attrs:{\"href\":\"https://github.com/huertatipografica/Alegreya-Sans\"}},[_vm._v(\"Alegreya Sans\")]),_vm._v(\" font by Juan Pablo del Peral.\\n \")]),_c('div',[_c('a',{attrs:{\"href\":\"https://github.com/etunni/Graduate-Variable-Font\"}},[_vm._v(\"Graduate\")]),_vm._v(\" Variable Font by Eduardo Tunni.\\n \")]),_c('div',[_vm._v(\"\\n Rywalka font by Adam Jagosz.\\n \")])]),_c('div',{staticClass:\"bulletproof-info\"},[_c('div',[_vm._v(\"\\n Bulletproof Font Tester\\n \")]),_c('div',[_vm._v(\"\\n Copyright 2020 Adam Jagosz.\\n \")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SiteFooter.vue?vue&type=template&id=18509e57&scoped=true&\"\nimport script from \"./SiteFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./SiteFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SiteFooter.vue?vue&type=style&index=0&id=18509e57&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18509e57\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"home \" + (_vm.webkit ? 'webkit' : ''))},[_c('div',{class:_vm.parallaxClasses},[_c('div',{staticClass:\"pane\"},[_c('div',{ref:\"parallax\",staticClass:\"parallax-content\",attrs:{\"data-parallax\":\"0.3 0\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getParallaxText())+\"\\n \")])])]),_c('div',{ref:\"overlay\",class:_vm.overlayClasses}),_c('Welcome',{attrs:{\"msg\":\"Welcome to Your Vue.js App\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Shuffles array in place.\n * @param {Array} a items An array containing the items.\n */\nexport default function shuffle(a) {\n var j, x, i;\n for (i = a.length - 1; i > 0; i--) {\n j = Math.floor(Math.random() * (i + 1));\n x = a[i];\n a[i] = a[j];\n a[j] = x;\n }\n return a;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"welcome reading\"},[_c('div',{staticClass:\"fold\"},[_c('figure',{staticClass:\"banner\"},[_c('svg',{class:'logo',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 256 256\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('g',{attrs:{\"data-name\":\"Warstwa 3\"}},[_c('g',{attrs:{\"data-name\":\"Icon Big\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M207.6 192.9c.28-1.46 3.45-3.78 7.05-5.15l14.81-5.64c3.6-1.37 3.41-2.88-.41-3.36L214.5 177c-3.82-.47-7.66-3.06-8.52-5.74s-3.21-12-1.77-15.53l8.73-21.56c1.45-3.57.13-4.58-2.93-2.24l-17.33 13.25c-3.06 2.34-6.82 3.65-8.36 2.91l-2.13-.73-4.5-1.53c-2.8-.25-7.48-2.51-10.41-5a19.57 19.57 0 00-4-3.9c-2.67-2-2.9-1.21-.51 1.81l.91 1.15c2.39 3 3.6 5.73 2.68 6s-7.33-.86-11-2.1l-9.55-3.24c-3.64-1.24-6 .83-5.22 4.6l.59 2.88c.77 3.77.48 7.7-.65 8.74s-6.83 4.88-10.55 5.85l-.71.19c-3.72 1-4.51 2.43-1.75 3.23a4.66 4.66 0 013.25 6.15c-1 2.58-4.53 12-7.49 14.49l-7.53 6.28c-3 2.46-2.26 4.89 1.56 5.4l7.42 1c3.82.5 8.17 3.13 9.67 5.85s6.81 11.9 6.81 15.75v2.87c0 3.85 2.27 4.81 5 2.14l.18-.17c2.78-2.67 6.79-4.19 8.93-3.37s10.3 4.29 13 7.08l6.5 6.85c2.65 2.8 5.59 2 6.54-1.7l1.68-6.58a20.76 20.76 0 017.6-10.6l7.81-7c2.45-3 6.94-5.9 10-6.5s10.13-3.17 6.37-4l-1.78-.39c-3.75-.86-5.72-5.23-5.44-6.69zm-21.25-16.6a2.91 2.91 0 00-.15 5.44c.86.54.87 1.24 0 1.55a3.82 3.82 0 00-1.73 2.13c-.07.42.74 1.24 1.82 1.82s1 .92-.21.76a3.51 3.51 0 00-2.82 1.42 2.61 2.61 0 00.53 2.12c.5.72.18 1.23-.71 1.15s-2.6 1.06-3 1.48 0 2.79.93 5.27.09 3.07-1.85 1.29-5.88-2.23-6.85-2a2.67 2.67 0 00-1.75 2.58c0 1.18-.52 1.22-1.16.09l-.64-1.13a4.1 4.1 0 00-.76-.92c-2.16 0-4.14-.15-6.57-.32l-.53 1c-.53 1-1 .83-1-.45a5.37 5.37 0 00-1.3-3.14c-.35-.24-1.91.67-3.46 2s-2 .94-1-.91a7.68 7.68 0 00-.07-5.74c-.44-.7-1.93-.88-3.29-.39s-1.6 0-.52-1.17 1.42-3.93 1.3-4.67-1.13-1.35-2.24-1.35-1.13-.56 0-1.23 2.23-3.38 2.43-4.16-1.17-2.17-3-3.07-1.6-1.54.6-1.41 5.77-2.38 6.63-3.22a3.77 3.77 0 001-3.32c-.3-1 .2-1.33 1.1-.76s3.18.24 3.8 0a2.8 2.8 0 001.13-2.5c0-1.15.47-1.26 1-.26a4.05 4.05 0 002.64 1.63c.45 0 1.28-1.16 1.86-2.51s1.47-1.27 2 .17 3.77 3.48 4.75 4 2.7-.2 3.84-1.58 1.66-1 1.15.89 1.22 5.77 1.84 6.83a4.35 4.35 0 003.9 1.66c1.54-.1 1.7.3.36.93z\",\"data-name\":\"Hole 1\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M185.51 76.49l-10.72-7a2.71 2.71 0 01-.65-4l6.59-8.32c1-1.3.52-2.21-1.12-2l-9.77 1c-1.64.17-2-.56-.68-1.61l6-4.91A1 1 0 00174 48.1L163.6 53a2.15 2.15 0 01-3.2-1.69l-1.75-10.9c-.27-1.63-1.5-2.07-2.74-1l-8.51 7.45a2.31 2.31 0 01-3.7-.66l-.38-.7c-.79-1.45-2-2.76-2.79-2.91s-2.17.81-3.16 2.13l-1.28 1.72a2.12 2.12 0 01-3.59 0l-5.66-7.66a2.11 2.11 0 00-3.58 0l-12.68 16.87a1.89 1.89 0 01-3.36-.16L94.59 34.57c-.86-1.41-1.26-1.25-.89.36l6.3 27.8a5.36 5.36 0 01-1.64 4.84l-5.16 4.3a10.64 10.64 0 01-4.75 2.19c-1.34.15-1.58 1.31-.52 2.58l1.59 1.9a14.9 14.9 0 012.57 5.24l2 8.8a12.19 12.19 0 002.78 5l.09.09a3 3 0 010 4.25l-4.44 4.44c-1.16 1.17-.8 2.43.8 2.81l5.68 1.39a7.07 7.07 0 014.29 10.76l-1.52 2.32a2.63 2.63 0 002.61 4l13-2.07a2.82 2.82 0 013 3.89l-3 7a1.68 1.68 0 002.69 1.89l7.71-7.17a12.37 12.37 0 015.14-2.61l10.93-2.12a5 5 0 014.64 1.91l3.67 5.36c.93 1.36 1.87 1.13 2.08-.5l.86-6.54a16.5 16.5 0 012-5.52l3.9-6.3a3.36 3.36 0 014.26-1.21l3.32 1.66c1.48.74 2.48 0 2.24-1.62l-2.37-15.78a2 2 0 012.51-2.42l11.47 2.15c1.62.31 1.93-.33.69-1.42l-9.06-8c-1.24-1.09-1-2.35.63-2.81l1.83-.52c1.59-.45 1.58-1.18 0-1.61 0 0-3.07-.84-3.62-1.39-1.21-1.21 12.24-3.33 12.24-3.33 1.55-.21 1.75-1.16.37-2.07zm-28.21 8.93c-1.86.94-3.74 5.11-4.14 6.37a4.68 4.68 0 001.46 4.3c1.21 1.11 1 1.53-.46.92a4.41 4.41 0 00-4 .87 4.34 4.34 0 00-.44 2.91c.18 1.07-.37 1.59-1.22 1.13a4.09 4.09 0 00-2.94.15c-.39.24-.46 1.48-.15 2.75s0 1.45-.76.39a3.74 3.74 0 00-3.15-1.24 2.78 2.78 0 00-1.32 2c-.21.91-.86 1-1.43.25s-2.71-1.31-3.34-1.34-2.22 2-3.55 4.52-2.38 2.28-2.35-.55-2.43-6.3-3.31-6.9a2.86 2.86 0 00-3.32.44c-1 .85-1.35.46-.91-.86a12.61 12.61 0 00.7-2.52l-.06-.07-1.55-1.73c-1.06-2.2-2.07-4.5-2.25-5.1s-.56-2.27-.62-2.71-1.89-1-4.08-1.32-2.2-.94 0-1.48 4.29-3.3 4.53-4.17-.68-2.17-2.05-2.91-1.11-1.3.57-1.26 4.15-1.68 4.66-2.31a25.14 25.14 0 011.88-2.05 31.32 31.32 0 013.62-2.65c.77-.41.89-2.49.27-4.64s.08-2.38 1.56-.52 6 2.9 7.32 3a4 4 0 003.39-1.57c.57-.94 2-.43 3.16 1.13s2.85 2.18 3.77 1.36 1.34-.53.95.65a4.29 4.29 0 00.59 3.28c.34.33 1.84.19 3.33-.32s2.08.26 1.3 1.72-.07 5.51.22 6.65 2.1 2 4 1.94 1.97.55.12 1.49z\",\"data-name\":\"Hole 2\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M117.52 172.68c.06-.47-4-4.94-4-4.94-3.69-4.07-3.74-7.23-.11-7s6.52 0 6.42-.4-3-1.6-6.42-2.61-5.84-5.6-4-8.14a6 6 0 00-4-9.18s-12.45-2.53-13.3-3.17-5.77-15.21-7.21-15-11.77 8.46-16.18 10l-4.11 1.39c-2.61 1.29-6.05.86-7.64-1s-2.91-3.28-3.2-1.75-3 3.46-4.86 1.09l-.57-2.75-.56-2.75c-2.16-2.09-4.25.69-4.66 6.18a103.16 103.16 0 01-2.55 15.23c-.53 2.11-2 4.76-4.11 4a4.11 4.11 0 01-1.77-1.62l-1.51-2.07c-2.29-4-4.36-7.14-4.59-7.06s.57 4.54 1.8 9.91c0 0 .34 1.51-1.64 6.83l-.89 2.4c-2.59.65-4.31 2.77-3.82 4.69l1.45 1.09c1.46 1.09 3.18 1.87 4.33 3.28s1.44 3.79 0 4.86c-2.38 1.74-2.17 5.59-.35 7.91s4.71 3.47 7.46 4.53c1 .37.79 1.76.44 2.73l-1.23 3.44c-1.36 3.78-.41 7 2.1 7.11s8.36 4.21 7.72 7.3 1 10.27 4.66 9 16.28-4.79 20.81-3.28l3.07-2.52c1.82-1.49 1.94-5.48 4-6.5 3.09-1.5 7.81 1.64 9.85 4.4s2.65 6.32 3.28 9.69c.32 1.81 3 2.28 4.46 1.21S99.3 212 99.3 212c1.48-5.3 3.94-8.68 5.46-7.53s4.08-.06 2.31-5.27a42.23 42.23 0 01-2-13.69c.29-5.36 12.35-12.09 12.45-12.83zM85.84 178c.62 1.17.13 1.89-1.08 1.61a4.37 4.37 0 00-3.61.84c-.77.74-2.73 3.42-2.29 4.83s-.3 1.52-1.64.22-3.21-2-4.17-1.55-4.37 1.74-5 3.09-1 1.3-.91-.12-.31-2.69-.89-2.83a26.72 26.72 0 01-3.37-1.38c-.73-.38-1.6-.9-2-1.14a3.68 3.68 0 00-3 .22c-1 .63-1.24.4-.55-.53s1-2 .67-2.34a4.46 4.46 0 00-2.58-1.24c-.84.09-1.12-.42-.64-1.13a2.85 2.85 0 00.5-2.25 8.73 8.73 0 00-2.72-3.09c-1.15-.62-1.25-1.59-.22-2.15a4.21 4.21 0 002-2.72 27.69 27.69 0 011.27-4.41c.27-.59.49-1.09.51-1.12s-.06-1.82-.19-3.91l-.05-.33 3.35-.72c1.83-.38 3.45-1.29 3.59-2s1.25-1.12 2.46-.88a4.66 4.66 0 003-.2c.46-.35 2.3-1.43 2.53-2.81s.77-1.32 1.23.11 1.39 2.75 2.08 2.9a27.51 27.51 0 013.53 1.37 21.37 21.37 0 012.22 1.39 5.7 5.7 0 005.1-.24c1.63-1.15 2-.63.9 1.16s-1.79 3.79-1.44 4.42 1.8 3.38 2.77 3.59 1.18 1.44.47 2.73-.72 3.94.24 4.47.84 1-.27 1-2.18.55-2.38 1.19a7.1 7.1 0 00.58 3.95z\",\"data-name\":\"Hole 3\"}})])])]),_c('h1',[_vm._v(\"Bulletproof\")]),_c('div',{staticClass:\"subtitle\"},[_vm._v(\"I Wish I Was...\")])]),_c('div',{staticClass:\"invitation\"},[_vm._v(\"\\n Drop font files anywhere to start\\n \")])]),_c('WelcomeText',{staticClass:\"readme\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"Test your local fonts with the proofing tool developed by a type designer, for type designers. Check out kerning, OpenType features, and language coverage. Explore and animate variation axes in variable fonts.\")]),_vm._m(0),_vm._m(1),_c('h2',[_vm._v(\"Available formatting options\")]),_vm._m(2),_c('h2',[_vm._v(\"Text collection\")]),_vm._m(3),_vm._m(4),_c('p',[_vm._v(\"The selection of languages and texts is arbitrary and limited, but contributions are welcome. Currently the focus is on languages written with Latin and Cyrillic.\")]),_c('h2',[_vm._v(\"Kerning tester\")]),_c('p',[_vm._v(\"The app is equipped with a \"),_c('router-link',{attrs:{\"to\":\"/kerning\"}},[_vm._v(\"kerning string generator\")]),_vm._v(\", along with a couple of predefined kerning patterns. \"),_c('router-link',{attrs:{\"to\":\"/help/kerning\"}},[_vm._v(\"[See kerning generator help]\")])],1),_c('h2',[_vm._v(\"Playground & Animation\")]),_c('p',[_vm._v(\"Any open text sample can be edited. In the \"),_c('router-link',{attrs:{\"to\":\"/editor\"}},[_vm._v(\"editor tab\")]),_vm._v(\" some more options are available: setting bold and italic (with separately selectable fonts), as well as taking snapshots of the settings and using them as animation keyframes — can be useful for recording gifs or videos, or toggling multiple features on and off more quickly. \"),_c('router-link',{attrs:{\"to\":\"/help/animation\"}},[_vm._v(\"[See animation editor help]\")])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"To begin, load selected local font files (you can drag'n'drop them right here). Their OpenType features and variation axes will be automatically detected. Everything is processed locally in the browser, using \"),_c('a',{attrs:{\"href\":\"https://github.com/opentypejs/opentype.js\"}},[_vm._v(\"OpenType.js\")]),_vm._v(\".\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"Or if you don't have any font files handy, look around and test the included fonts: \"),_c('a',{attrs:{\"href\":\"https://github.com/huertatipografica/Alegreya-Sans\"}},[_vm._v(\"Alegreya Sans\")]),_vm._v(\" by Juan Pablo del Peral, \"),_c('a',{attrs:{\"href\":\"https://github.com/etunni/Graduate-Variable-Font\"}},[_vm._v(\"Graduate\")]),_vm._v(\" Variable Font by Eduardo Tunni, and my own Rywalka (work-in-progress).\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_vm._v(\"Changing font size, line height, text alignment, text case transform, text and background colors.\")]),_c('li',[_vm._v(\"Toggling OpenType features on and off.\")]),_c('li',[_vm._v(\"Choosing localization language from the list of languages built into the font.\")]),_c('li',[_vm._v(\"Manipulating OpenType Variation axes.\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"A set of multilingual texts is collected in a separate project \"),_c('a',{attrs:{\"href\":\"https://github.com/hyvyys/language-data\"}},[_vm._v(\"Language-Data\")]),_vm._v(\". It includes a few kinds of texts:\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',[_c('li',[_vm._v(\"ordinary sentences,\")]),_c('li',[_vm._v(\"pangrams,\")]),_c('li',[_vm._v(\"lettering samples — defined as sets of A-Z words preferably repeating the initial letter within),\")]),_c('li',[_c('em',[_vm._v(\"gotchas\")]),_vm._v(\" — edge cases characteristic to the given language, things to look out for when desigining a typeface.\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Welcome.md?vue&type=template&id=3d560beb&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Welcome.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Welcome.vue?vue&type=template&id=4602ce0c&scoped=true&\"\nimport script from \"./Welcome.vue?vue&type=script&lang=js&\"\nexport * from \"./Welcome.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Welcome.vue?vue&type=style&index=0&id=4602ce0c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4602ce0c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=674df807&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=674df807&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674df807\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-topic\"},[_c('div',{staticClass:\"help\"},[_c('div',{staticClass:\"reading\"},[_c('h2',[_vm._v(\"Help pages\")]),_c('ol',[_c('li',[_c('router-link',{attrs:{\"to\":\"/help/animation\"}},[_vm._v(\"Animation editor\")])],1),_c('li',[_c('router-link',{attrs:{\"to\":\"/help/kerning\"}},[_vm._v(\"Kerning string editor\")])],1)])])]),_c('div',{staticClass:\"example\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Help.vue?vue&type=template&id=969f47b6&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-topic\"},[_c('div',{staticClass:\"help\"},[_c('div',{staticClass:\"reading\"},[_c('h2',{staticClass:\"help-heading\"},[_c('router-link',{attrs:{\"to\":\"/help\"}},[_vm._v(\"Help / \")]),_vm._v(\"Kerning string generator\\n \")],1),_c('Kerning')],1)]),_c('div',{staticClass:\"example\"},[_c('h2',[_vm._v(\"Try it out\")]),_c('transition-group',{attrs:{\"name\":\"fade\"}},[_c('KerningEditor',{key:\"editor\",attrs:{\"segments\":_vm.segments},on:{\"addKerningSegment\":_vm.addKerningSegment,\"removeKerningSegment\":function (i) { return _vm.removeKerningSegment(i); }}}),_c('div',{key:\"title\",staticClass:\"row\"},[_c('h3',[_vm._v(\"\\n Output\\n \")])]),_c('div',{key:\"string\"},_vm._l((_vm.kerningStringLines),function(line,i){return _c('div',{key:i},[_vm._v(\"\\n \"+_vm._s(line)+\"\\n \")])}),0)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function characterRange(charA, charZ) {\n var a = [], i = charA.charCodeAt(0), j = charZ.charCodeAt(0);\n for (; i <= j; ++i) {\n a.push(String.fromCharCode(i));\n }\n return a;\n}\n","export default function cartesianProductOf() {\n return Array.prototype.reduce.call(arguments, function(a, b) {\n var ret = [];\n a.forEach(function(a) {\n b.forEach(function(b) {\n ret.push(a.concat([b]));\n });\n });\n return ret;\n }, [[]]);\n}\n","import characterRange from \"@/utils/characterRange\";\nimport cartesianProduct from \"@/utils/cartesianProduct\";\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\nfunction splitWithEscape(s, separator, escape = \"\\\\\") {\n\n const endsWithEscape = new RegExp(escapeRegExp(escape) + \"$\");\n let fragments = [];\n let options = [];\n let current = \"\";\n\n s.split(\"\").forEach(char => {\n if (char === separator && !endsWithEscape.test(current)) {\n options.push(current);\n current = \"\";\n }\n else { // separator was escaped e.g. \\|\n current += char;\n }\n });\n options.push(current);\n\n const escapedSeparator = new RegExp(escapeRegExp(escape) + escapeRegExp(separator), \"g\");\n options = options.map(o => o.replace(escapedSeparator, separator));\n [].push.apply(fragments, options);\n return fragments;\n}\n\nexport default class KerningGenerator {\n /**\n * Split string of alternatives terminated and separated by pipe character.\n * @param {String} s String to parse, e.g. `|fi|fj|fl|ff|`. Pipe escaped with leading backslash, e.g. `|\\|:|\\:|/:|`.\n */\n static parseSequences(s) {\n s = s.replace(/^\\|/, \"\").replace(/\\|$/, \"\"); // trim group delimiters | ... |\n let fragments = splitWithEscape(s, \"|\");\n\n return fragments;\n }\n\n /**\n * Split closure on the underscore character _, unless escaped \\_.\n * @param {String} s String to parse, e.g. `\"_\",`. Pipe escaped with leading backslash, e.g. |\\|:|\\:|/:|.\n */\n static parseClosure(s) {\n let fragments = splitWithEscape(s, \"_\");\n return fragments;\n }\n\n static sets(segments) {\n const sets = [];\n let closures = [];\n\n segments.forEach(s => {\n if (/^@/.test(s)) {\n s = s.replace(/^@/, \"\");\n s = s.replace(/\\\\@/g, \"@\");\n\n let segmentClosures = [];\n const special = \"_|\\\\\";\n const escaped = special.split(\"\").map(c => escapeRegExp(\"\\\\\" + c)).join(\"|\");\n const closureSide = `([^${escapeRegExp(special)}]*|${escaped})*`;\n const compoundClosure = new RegExp(`^\\\\|(${closureSide}_${closureSide}\\\\|)+$`);\n\n if (compoundClosure.test(s)) {\n segmentClosures = this.parseSequences(s).map(c => this.parseClosure(c));\n }\n else {\n segmentClosures = Array.from(s.matchAll(/(.)(.)/g)).map(m => [m[1], m[2]])\n }\n\n closures.push(segmentClosures);\n }\n\n // words etc.\n else {\n s = s.replace(/\\\\@/g, \"@\");\n\n if (/^\\|.+\\|$/.test(s)) {\n sets.push(this.parseSequences(s));\n }\n\n // character sets incl. ranges, only hyphen is escaped as \\-\n else {\n let fragments = [];\n\n const ranges = s.matchAll(/([^\\\\])-(.)/g); // e.g. a-z\n Array.from(ranges).forEach(r => {\n let [, start, end] = r;\n [].push.apply(fragments, characterRange(start, end));\n });\n\n s = s.replace(/([^\\\\])-(.)/g, \"\");\n\n const singleCharacters = s.replace(/\\\\-/g, \"-\").split(\"\");\n [].push.apply(fragments, singleCharacters);\n sets.push(fragments);\n }\n }\n });\n return { sets, closures };\n }\n\n static kerningString(pattern) {\n let sets = pattern.sets.filter(s => s.length);\n // clone\n sets = JSON.parse(JSON.stringify(sets));\n\n let product = cartesianProduct(...sets);\n // [ ['A', 'A'], ['A', 'B'], ['A', 'C'], ... ]\n\n let lines = [];\n let current = product[0][0] || \"\";\n let line = \"\";\n\n function commitLine(line) {\n // add initial character to the end of the line\n if (!pattern.closures.length) {\n // AAABACAD...WAXAYAZ\n // => AAABACAD...WAXAYAZA\n line += current;\n }\n // remove more than two repetitions of any character\n if (!pattern.closures.length) {\n line = line.replace(/(.)\\1{2,}/g, \"$1$1\"); // AAABACA => AABACA\n }\n lines.push(line);\n }\n\n product.filter(sub => sub.length).forEach(sub => {\n // new character on first position, finalize line\n if (sub[0] !== current) {\n commitLine(line);\n line = \"\";\n current = sub[0];\n }\n\n let fragment = sub.join(\"\");\n if (pattern.closures.length) {\n /* [\n [ [\"(\", \")\"], [\"[\", \"]\"], ... ],\n [ [\";\", \".\"], [\":\", \",\"], ... ],\n ... ] */\n\n const openings = pattern.closures.map(set => set.map(closure => closure[0]));\n const closings = pattern.closures.map(set => set.map(closure => closure[1]));\n /* [ [ \"(\", \"[\", ... ], [ \";\", \":\", ... ], ... ] */\n\n const openingSequences = cartesianProduct(...openings).map(sub => sub.reverse().join(\"\"));\n const closingSequences = cartesianProduct(...closings).map(sub => sub.join(\"\"));\n /* [ \";(\", \";[\", \":(\", \":[\", ... ] */\n\n const closures = openingSequences.map((o, i) => [o, closingSequences[i]]);\n\n fragment = closures\n .map(closure => `${closure[0]}${fragment}${closure[1]}`)\n .join(\" \") + \" \";\n }\n line += fragment;\n });\n commitLine(line);\n\n return lines;\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"kerning-editor panel\"},[_c('transition-group',{staticClass:\"fade-transition-group\",attrs:{\"name\":\"fade\",\"tag\":\"div\"}},[_c('div',{key:\"title\",staticClass:\"row\"},[_c('h3',[_vm._v(\"\\n Pattern segments\\n \")]),_c('UiIconButton',{key:\"btnAdd\",attrs:{\"color\":\"primary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('addKerningSegment')}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1),_vm._l((_vm.segments),function(segment,i){return _c('div',{key:(\"segment-\" + (segment.key)),staticClass:\"row segment-row\"},[_c('UiSelect',{ref:\"segmentSelects\",refInFor:true,attrs:{\"options\":_vm.builtInSegmentCharacters,\"dropdownClass\":\"kerning-segment-select\",\"dropdownPosition\":\"bottom-end\",\"placeholder\":\"type or choose\",\"autocomplete\":true},on:{\"input\":function($event){return _vm.$emit('updateKerningPattern')}},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return [_c('kbd',[_vm._v(_vm._s(props.option || \"\\xa0\"))])]}}],null,true),model:{value:(_vm.segments[i].characters),callback:function ($$v) {_vm.$set(_vm.segments[i], \"characters\", $$v)},expression:\"segments[i].characters\"}}),_c('UiIconButton',{key:\"btnRemove\",staticClass:\"border\",attrs:{\"color\":\"default\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.$emit('removeKerningSegment', i)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13H5v-2h14v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1)})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default [\n \"A-Z\",\n \"a-z\",\n \"0-9\",\n \"A-Za-z0-9\",\n \"FPTVWYfrvwy\",\n \"aáàâåäãæbcçdðeéèêëfghiíìîïjklmnñoóòôöõøpqrstuúùûüvwxyýÿzþ\",\n \"aáàăâåäãąāæbcćĉčċçdďđðeéèĕêěëėęēfgğĝġģhĥħiíìĭîïĩįīijıjĵkķlĺľļłŀmnńňñņŋoóòŏôöőõøōœpqĸrŕřŗsśŝšştťţŧuúùŭûůüűũųūvwŵxyýŷÿÿzźžżþ\",\n \"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\",\n \"абвгдеёжзийклмнопрстуфхцчшщъыьэюя\",\n \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ\",\n \"αβγδεζηθικλμνξοπρσςτυφχψω\",\n \",.\",\n \";:\",\n \"-–—+\",\n \"|fi|fj|fl|ff|ffi|ffl|fb|fh|fk|ft|\",\n \"@¡!¿?\",\n \"@“”‘’\",\n \"@“”„”„“””\",\n \"@|“_,”|”_”:|„_”,|„_“.|\",\n \"@\\\"\\\"''\",\n \"@()[]{}<>\",\n];\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KerningEditor.vue?vue&type=template&id=76dead88&scoped=true&\"\nimport script from \"./KerningEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./KerningEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KerningEditor.vue?vue&type=style&index=0&id=76dead88&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76dead88\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"Kerning strings can be generated in the \"),_c('a',{attrs:{\"href\":\"/kerning\"}},[_vm._v(\"Kerning tab\")]),_vm._v(\". Each string is defined using a \"),_c('strong',[_vm._v(\"pattern\")]),_vm._v(\" consisting of character sets called \"),_c('strong',[_vm._v(\"segments\")]),_vm._v(\".\")]),_c('p',[_c('strong',[_vm._v(\"Regular segments\")]),_vm._v(\" are sets of letters, characters, or words that will be interpolated to create the kerning string. There are two kinds of regular segments:\")]),_c('ul',[_c('li',[_vm._v(\"Single-character segments, e.g. \"),_c('code',[_vm._v(\"A-Za-ząćę\")]),_vm._v(\".\")]),_c('li',[_vm._v(\"Multi-character segments, e.g. \"),_c('code',[_vm._v(\"|fi|fj|fl|\")]),_vm._v(\".\")])]),_c('p',[_c('strong',[_vm._v(\"Closure segments\")]),_vm._v(\" start with an at \"),_c('code',[_vm._v(\"@\")]),_vm._v(\" and are used to surround the interpolated substrings with extra characters, typically punctuation. These also come in two flavors:\")]),_c('ul',[_c('li',[_vm._v(\"Single character closures, e.g. \"),_c('code',[_vm._v(\"@()[]{}\")]),_vm._v(\". Characters after \"),_c('code',[_vm._v(\"@\")]),_vm._v(\" are treated as opening–closing pairs.\")]),_c('li',[_vm._v(\"Multiple character closures, e.g. \"),_c('code',[_vm._v(\"@|“_”.|“_.”|“_”,|“_,”|\")]),_vm._v(\". Anything before the underscore \"),_c('code',[_vm._v(\"_\")]),_vm._v(\" is treated as prefix, everything after — as suffix. Either can be empty, e.g. \"),_c('code',[_vm._v(\"@|_,|\")]),_vm._v(\" is a suffix-only closure.\")])]),_c('p',[_vm._v(\"Multiple closure segments can be combined. A pattern of the following segments:\")]),_c('blockquote',[_c('p',[_c('code',[_vm._v(\"abc\")]),_c('br'),_c('code',[_vm._v(\"@“”‘’\")]),_c('br'),_c('code',[_vm._v(\"@()\")])])]),_c('p',[_vm._v(\"will yield \"),_c('code',[_vm._v(\"(“a”) (‘a’) (“b”) (‘b’) (“c”) (‘c’)\")]),_vm._v(\".\")]),_c('h2',[_vm._v(\"Summary\")]),_c('p',[_vm._v(\"The segment syntax has just five special characters:\")]),_c('ul',[_c('li',[_vm._v(\"at \"),_c('code',[_vm._v(\"@\")]),_vm._v(\" (only at the beginning of segment) — begins a closure segment,\")]),_c('li',[_vm._v(\"hyphen \"),_c('code',[_vm._v(\"-\")]),_vm._v(\" — signifies character range,\")]),_c('li',[_vm._v(\"pipe \"),_c('code',[_vm._v(\"|\")]),_vm._v(\" — delimits words or closures,\")]),_c('li',[_vm._v(\"underscore \"),_c('code',[_vm._v(\"_\")]),_vm._v(\", — separates closure prefix and suffix,\")]),_c('li',[_vm._v(\"and backslash \"),_c('code',[_vm._v(\"\\\\\")]),_vm._v(\" — escapes the above (and itself), e.g. \"),_c('code',[_vm._v(\"@|\\\\|_\\\\|\\\\_|\")]),_vm._v(\" means a closure segment with a \"),_c('code',[_vm._v(\"|\")]),_vm._v(\" prefix and \"),_c('code',[_vm._v(\"|_\")]),_vm._v(\" suffix.\")])])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Kerning.md?vue&type=template&id=7b3366bf&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningHelp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KerningHelp.vue?vue&type=template&id=7273fa36&scoped=true&\"\nimport script from \"./KerningHelp.vue?vue&type=script&lang=js&\"\nexport * from \"./KerningHelp.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KerningHelp.vue?vue&type=style&index=0&id=7273fa36&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7273fa36\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"help-topic\"},[_c('div',{staticClass:\"help\"},[_c('div',{staticClass:\"reading\"},[_c('h2',{staticClass:\"help-heading\"},[_c('router-link',{attrs:{\"to\":\"/help\"}},[_vm._v(\"Help / \")]),_vm._v(\"Animation editor\\n \")],1),_c('Animation')],1)]),_c('div',{staticClass:\"example\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',[_vm._v(\"In the \"),_c('a',{attrs:{\"href\":\"/editor\"}},[_vm._v(\"Editor tab\")]),_vm._v(\", the right side Contextual sidebar provides a simple animation editor. At any time a frame can be added to take a snapshot of the current settings from the left side Settings sidebar. Most settings are animatable, including continuous settings like Variation Axes, font size and color, as well as discrete settings like OpenType features. Currently a few settings remain unanimated: text align and text case transform.\")])])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Animation.md?vue&type=template&id=4b43128c&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationHelp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationHelp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AnimationHelp.vue?vue&type=template&id=3498f484&scoped=true&\"\nimport script from \"./AnimationHelp.vue?vue&type=script&lang=js&\"\nexport * from \"./AnimationHelp.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3498f484\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-tester\"},[_c('transition',{attrs:{\"name\":\"fade-slow\",\"mode\":\"in-out\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.fontLoading),expression:\"!fontLoading\"}],staticClass:\"font-tester-content\"},[_c('Pinnable',{staticClass:\"site-sidebar sidebar-settings\",attrs:{\"title\":\"Settings\",\"isPinned\":true,\"isVisible\":_vm.settingsPanelVisible,\"trigger\":\"#settings-trigger\"},on:{\"toggle\":function($event){return _vm.$store.commit('toggleSettingsPanel')},\"hide\":function($event){return _vm.$store.commit('toggleSettingsPanel', {value: false})}}},[_c('Settings')],1),(_vm.selectedSampleKey === 'languages')?_c('LanguageSupportSummary',{attrs:{\"languageSupport\":\"languageSupport\"}}):_c('TesterBody',{staticClass:\"main\",attrs:{\"texts\":_vm.fontSampleTexts,\"isCustom\":_vm.selectedTextKind === 'custom'},on:{\"update\":function (e) { return _vm.modifyText(e); }}}),_c('Pinnable',{staticClass:\"site-sidebar sidebar-nav\",attrs:{\"title\":_vm.navElementTitle,\"isPinned\":true,\"isVisible\":_vm.contextualPanelVisible,\"scrolled\":false,\"trigger\":\"#nav-trigger\"},on:{\"toggle\":function($event){return _vm.$store.commit('toggleContextualPanel')},\"hide\":function($event){return _vm.$store.commit('toggleContextualPanel', {value: false})}}},[_c('div',{staticClass:\"transition-wrapper u-flex-v\",staticStyle:{\"overflow\":\"hidden\"}},[_c('transition',{attrs:{\"name\":\"swap\"}},[_c(_vm.navElement,{key:_vm.navElementTitle,tag:\"component\"})],1)],1)])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.forceInvisible && _vm.isVisible)?_c('div',{class:(\"\\n pinnable \" + (_vm.pinned ? 'pinned' : '') + \"\\n \" + (!_vm.footerVisible && _vm.sticky ? 'sticky' : '') + \"\\n \" + (_vm.footerNear ? 'footer-near' : '') + \"\\n \" + (_vm.footerNearer ? 'footer-nearer' : '') + \"\\n \" + (_vm.triggerHover ? 'trigger-hover' : '') + \"\\n \" + (_vm.scrolled ? 'pinnable-scrolled' : '') + \"\\n \")},[(_vm.title)?_c('div',{staticClass:\"titlebar\"},[_c('h2',[_vm._v(_vm._s(_vm.title))]),_c('UiIconButton',{class:(\"pin \" + (_vm.pinned ? 'active' : '')),attrs:{\"size\":\"small\"},on:{\"click\":_vm.togglePinPanel}},[_c('svg',{staticStyle:{\"width\":\"24px\",\"height\":\"24px\"},attrs:{\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2l-2-2z\"}})])])],1):_vm._e(),(_vm.scrolled)?_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\"}],ref:\"vb\",staticClass:\"content\"},[_c('div',{ref:\"scrolled\",class:(\"scrolled \" + (_vm.disableOverscroll ? 'disable-overscroll' : '')),on:{\"wheel\":_vm.onWheel}},[_vm._t(\"default\")],2)]):_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Pinnable.vue?vue&type=template&id=a9235368&scoped=true&\"\nimport script from \"./Pinnable.vue?vue&type=script&lang=js&\"\nexport * from \"./Pinnable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Pinnable.vue?vue&type=style&index=0&id=a9235368&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9235368\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings\"},[_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Font size\")]),_c('UiNumber',{ref:\"settingFontSize\",attrs:{\"value\":_vm.settings.fontSize,\"min\":_vm.settings.minFontSize,\"max\":_vm.settings.maxFontSize,\"step\":_vm.settings.fontSizeStep,\"clickStep\":_vm.settings.fontSizeClickStep},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { fontSize: v }); }}}),_c('UiSelect',{ref:\"settingFontSizeUnit\",staticClass:\"const3ch\",attrs:{\"value\":_vm.settings.fontSizeUnit,\"options\":_vm.settings.fontSizeUnitOptions},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { fontSizeUnit: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('UiTextbox',{ref:\"settingWaterfallSizes\",attrs:{\"value\":_vm.settings.waterfallSizes,\"disabled\":!_vm.settings.enableWaterfall},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { waterfallSizes: v }); }}}),_c('UiCheckbox',{ref:\"settingEnableWaterfall\",staticClass:\"checkbox-small\",attrs:{\"value\":_vm.settings.enableWaterfall},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { enableWaterfall: v }); }}},[_vm._v(\"waterfall\")])],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Line height\")]),_c('UiNumber',{ref:\"settingLineHeight\",attrs:{\"value\":_vm.settings.lineHeight,\"min\":_vm.settings.minLineHeight,\"max\":_vm.settings.maxLineHeight,\"step\":_vm.settings.lineHeightStep,\"clickStep\":_vm.settings.lineHeightClickStep,\"disabled\":_vm.settings.defaultLineHeight},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { lineHeight: v }); }}}),_c('UiCheckbox',{ref:\"settingDefaultLineHeight\",staticClass:\"checkbox-small\",attrs:{\"value\":_vm.settings.defaultLineHeight},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { defaultLineHeight: v }); }}},[_vm._v(\"default\")])],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Tracking\")]),_c('UiNumber',{ref:\"settingTracking\",attrs:{\"value\":_vm.settings.tracking,\"min\":_vm.settings.minTracking,\"max\":_vm.settings.maxTracking,\"step\":_vm.settings.trackingStep,\"clickStep\":_vm.settings.trackingClickStep,\"disabled\":_vm.settings.defaultTracking},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { tracking: v }); }}}),_c('UiCheckbox',{ref:\"settingDefaultTracking\",staticClass:\"checkbox-small\",attrs:{\"value\":_vm.settings.defaultTracking},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { defaultTracking: v }); }}},[_vm._v(\"default\")])],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Text align\")]),_c('UiSelect',{ref:\"settingTextAlign\",attrs:{\"value\":_vm.settings.textAlign,\"options\":_vm.settings.textAlignOptions},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { textAlign: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Text color\")]),_c('UiColorPicker',{ref:\"settingTextColor\",attrs:{\"value\":_vm.settings.textColor},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { textColor: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Back color\")]),_c('UiColorPicker',{ref:\"settingBackgroundColor\",attrs:{\"value\":_vm.settings.backgroundColor},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { backgroundColor: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('label',{staticClass:\"row-label\"},[_vm._v(\"Case transform\")]),_c('UiSelect',{ref:\"settingTextTransform\",attrs:{\"value\":_vm.settings.textTransform,\"options\":_vm.settings.textTransformOptions},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { textTransform: v }); }}})],1),_c('div',{staticClass:\"row row-check\"},[_c('UiCheckbox',{ref:\"settingWrapLines\",attrs:{\"label\":\"Break-word\",\"value\":_vm.settings.wrapLines},on:{\"input\":function (v) { return _vm.updateSetting('updateSettings', { wrapLines: v }); }}})],1),(_vm.capFeatures.length > 0)?_c('h3',[_vm._v(\"Caps\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.capFeatures),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)}),0),(_vm.localization)?_c('h3',[_vm._v(\"Localization\")]):_vm._e(),(_vm.localization)?_c('div',{staticClass:\"setting-group\"},[_c('div',{staticClass:\"row\"},[_c('UiSelect',{attrs:{\"value\":_vm.localizationLanguage,\"options\":_vm.localizationLanguages,\"keys\":_vm.loclSelectKeys,\"placeholder\":\"select language\",\"invalid\":_vm.isLocalizationInvalid,\"disabled\":_vm.onGotchasTab},on:{\"input\":function (v) { return _vm.updateSetting('updateLoclFeature', { selectedLanguage: v }); }},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return _c('div',{staticClass:\"locl-select__option\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(props.option.name))]),(props.option.name !== props.option.tag)?_c('div',{staticClass:\"tag\"},[_vm._v(\"(\"+_vm._s(props.option.tag)+\")\")]):_vm._e()])}}],null,false,3090818932)}),_c('UiCheckbox',{staticClass:\"checkbox-small\",attrs:{\"value\":_vm.localization.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: 'locl', value: v }); }}},[_vm._v(\"enable\")])],1)]):_vm._e(),(_vm.numberFeatures.length > 0)?_c('h3',[_vm._v(\"Numbers\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},[_c('div',{staticClass:\"row\"},[(!!(_vm.pnum && _vm.tnum))?_c('UiRadioGroup',{attrs:{\"name\":\"figureWidth\",\"options\":_vm.figureWidths,\"vertical\":true},model:{value:(_vm.figureWidth),callback:function ($$v) {_vm.figureWidth=$$v},expression:\"figureWidth\"}}):_vm._e(),(!!(_vm.lnum && _vm.onum))?_c('UiRadioGroup',{attrs:{\"name\":\"figureHeight\",\"options\":_vm.figureHeights,\"vertical\":true},model:{value:(_vm.figureHeight),callback:function ($$v) {_vm.figureHeight=$$v},expression:\"figureHeight\"}}):_vm._e()],1),_vm._l((_vm.numberFeatures),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)})],2),(_vm.stylisticSets.length > 0)?_c('h3',[_vm._v(\"Stylistic Sets\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.stylisticSets),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[(feature.uiName)?[_c('strong',[_vm._v(_vm._s(feature.tag))]),_vm._v(\" \"+_vm._s(feature.uiName))]:[_vm._v(_vm._s(feature.name))]],2)],1)}),0),(_vm.characterVariants.length > 0)?_c('h3',[_vm._v(\"Character Variants\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.characterVariants),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[(feature.uiName)?[_c('strong',[_vm._v(_vm._s(feature.tag))]),_vm._v(\" \"+_vm._s(feature.uiName))]:[_vm._v(_vm._s(feature.name))]],2)],1)}),0),(_vm.otherGsub.length > 0)?_c('h3',[_vm._v(\"Other GSUB\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.otherGsub),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGsubFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)}),0),(_vm.activeGpos.length > 0)?_c('h3',[_vm._v(\"GPOS\")]):_vm._e(),_c('div',{staticClass:\"setting-group\"},_vm._l((_vm.activeGpos),function(feature,key){return _c('div',{key:key,staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"value\":feature.value},on:{\"input\":function (v) { return _vm.updateSetting('updateGposFeature', { tag: feature.tag, value: v }); }}},[_vm._v(_vm._s(feature.name))])],1)}),0),_c('h3',[_vm._v(\"Variation axes\")]),_c('div',{staticClass:\"setting-group\"},[(_vm.variationAxes.length === 0)?_c('div',{staticClass:\"notice\"},[_vm._v(\"\\n The selected font is not variable.\\n \")]):_vm._e(),_vm._l((_vm.variationAxes),function(axis,key){return _c('div',{key:key},[_c('div',{staticClass:\"row\"},[_c('UiCheckbox',{attrs:{\"label\":axis.displayName,\"value\":axis.enabled},on:{\"input\":function (v) { return _vm.updateSetting('updateVariationAxis', { tag: axis.tag, enabled: v }); }}})],1),_c('div',{staticClass:\"row\"},[_c('UiSlider',{staticStyle:{\"margin\":\"0 0.5em\",\"flex\":\"2\"},attrs:{\"value\":axis.value,\"min\":axis.minValue,\"max\":axis.maxValue,\"step\":1,\"snapToStep\":true,\"showMarker\":false},on:{\"input\":function (v) { return _vm.updateSetting('updateVariationAxis', { tag: axis.tag, value: v }); }}}),_c('UiNumber',{attrs:{\"value\":axis.value,\"min\":axis.minValue,\"max\":axis.maxValue,\"step\":1},on:{\"input\":function (v) { return _vm.updateSetting('updateVariationAxis', { tag: axis.tag, value: v }); }}})],1)])})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-textbox ui-number\",class:_vm.classes},[(_vm.icon || _vm.$slots.icon)?_c('div',{staticClass:\"ui-textbox__icon-wrapper\"},[_vm._t(\"icon\",[_c('ui-icon',{attrs:{\"icon\":_vm.icon}})])],2):_vm._e(),_c('div',{staticClass:\"ui-textbox__content\"},[_c('label',{staticClass:\"ui-textbox__label\"},[_c('div',{staticClass:\"ui-textbox__input-wrapper\"},[_c('input',{directives:[{name:\"autofocus\",rawName:\"v-autofocus\",value:(_vm.autofocus),expression:\"autofocus\"}],ref:\"input\",staticClass:\"ui-textbox__input\",attrs:{\"autocomplete\":_vm.autocomplete ? _vm.autocomplete : null,\"disabled\":_vm.disabled,\"inputmode\":\"numeric\",\"max\":_vm.maxValue,\"maxlength\":_vm.enforceMaxlength ? _vm.maxlength : null,\"minlength\":_vm.minlength,\"min\":_vm.minValue,\"name\":_vm.name,\"number\":_vm.type === 'number' ? true : null,\"placeholder\":_vm.hasFloatingLabel ? null : _vm.placeholder,\"readonly\":_vm.readonly,\"required\":_vm.required,\"step\":_vm.stepValue,\"tabindex\":_vm.tabindex,\"type\":_vm.type},domProps:{\"value\":_vm.displayedText != null ? _vm.displayedText : _vm.value},on:{\"blur\":_vm.onBlur2,\"focus\":_vm.onFocus,\"change\":function($event){return _vm.updateValue($event.target.value)},\"input\":function($event){return _vm.updateValue($event.target.value)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onKeydownEnter($event)},_vm.onKeydown]}}),_c('div',{staticClass:\"ui-number-buttons\"},[_c('UiIconButton',{staticClass:\"ui-number__button ui-select__dropdown-button\",attrs:{\"disabled\":_vm.disabled},nativeOn:{\"mousedown\":function($event){return _vm.startIncrement($event)},\"mouseleave\":function($event){return _vm.endIncrementDecrement($event)},\"mouseup\":function($event){return _vm.endIncrementDecrement($event)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"transform\":\"translate(0 24) scale(1 -1) translate(0 -1)\",\"d\":\"M6.984 9.984h10.03L12 15z\"}})])]),_c('UiIconButton',{staticClass:\"ui-number__button ui-select__dropdown-button\",attrs:{\"disabled\":_vm.disabled},nativeOn:{\"mousedown\":function($event){return _vm.startDecrement($event)},\"mouseleave\":function($event){return _vm.endIncrementDecrement($event)},\"mouseup\":function($event){return _vm.endIncrementDecrement($event)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"transform\":\"translate(0 -1)\",\"d\":\"M6.984 9.984h10.03L12 15z\"}})])])],1)]),(_vm.label || _vm.$slots.default)?_c('div',{staticClass:\"ui-textbox__label-text\",class:_vm.labelClasses},[_vm._t(\"default\",[_vm._v(_vm._s(_vm.label))])],2):_vm._e()]),(_vm.hasFeedback || _vm.maxlength)?_c('div',{staticClass:\"ui-textbox__feedback\"},[(_vm.showError)?_c('div',{staticClass:\"ui-textbox__feedback-text\"},[_vm._t(\"error\",[_vm._v(_vm._s(_vm.error))])],2):(_vm.showHelp)?_c('div',{staticClass:\"ui-textbox__feedback-text\"},[_vm._t(\"help\",[_vm._v(_vm._s(_vm.help))])],2):_vm._e(),(_vm.maxlength)?_c('div',{staticClass:\"ui-textbox__counter\"},[_vm._v(_vm._s(_vm.valueLength + \"/\" + _vm.maxlength))]):_vm._e()]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiNumber.vue?vue&type=template&id=4d5c14db&scoped=true&\"\nimport script from \"./UiNumber.vue?vue&type=script&lang=js&\"\nexport * from \"./UiNumber.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiNumber.vue?vue&type=style&index=0&id=4d5c14db&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d5c14db\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ui-color-picker popover-trigger\"},[_c('div',{staticClass:\"swatch\",style:((\"background-color: \" + _vm.value))},[_vm._v(\" \")]),_c('ui-textbox',{ref:\"input\",attrs:{\"label\":_vm.label,\"icon\":_vm.icon,\"help\":_vm.help},on:{\"input\":_vm.updateFromInput},model:{value:(_vm.textValue),callback:function ($$v) {_vm.textValue=$$v},expression:\"textValue\"}}),_c('ui-popover',{ref:\"popover\",staticClass:\"popover\",attrs:{\"position\":\"bottom-start\",\"constrainToScrollParent\":false},on:{\"reveal\":function($event){return _vm.$refs.input.focus()}}},[_c('sketch-picker',{attrs:{\"value\":_vm.colorValue,\"disableFields\":true},on:{\"input\":_vm.updateFromPicker}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiColorPicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiColorPicker.vue?vue&type=template&id=50a2c3f2&scoped=true&\"\nimport script from \"./UiColorPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./UiColorPicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiColorPicker.vue?vue&type=style&index=0&id=50a2c3f2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50a2c3f2\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=d9925bc8&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=js&\"\nexport * from \"./Settings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=d9925bc8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d9925bc8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:(\"tester-body \" + (_vm.isGotchas ? 'gotchas' : '')),style:((\"background: \" + (_vm.settings.backgroundColor) + \";\"))},[(_vm.selectedSampleKey === 'glyphs')?[_vm._v(\"This page only lists encoded glyphs.\")]:_vm._e(),(!_vm.isCustom)?_vm._l((_vm.texts),function(item,i){return _c('div',{key:i},[(_vm.selectedSampleKey === 'gotchas')?_c('GotchaHeader',{attrs:{\"header\":item.header}}):(item.header.language)?_c('SampleHeader',{attrs:{\"header\":item.header}}):_vm._e(),_vm._l((item.texts),function(text,j){return _c('FontSample',{key:j},_vm._l((_vm.fontSizes),function(size,k){return _c('div',{key:k,staticClass:\"sample-paragraph\"},[(_vm.fontSizes.length > 1)?_c('div',{staticClass:\"font-size-label\"},[_vm._v(_vm._s(size))]):_vm._e(),_c('div',{style:({ 'font-size': (\"\" + size + (_vm.settings.fontSizeUnit)) }),attrs:{\"contenteditable\":_vm.isContentEditable,\"spellcheck\":\"false\"},domProps:{\"innerHTML\":_vm._s(text)},on:{\"paste\":_vm.onPaste,\"input\":_vm.onInput,\"focus\":_vm.onFocus,\"selectstart\":_vm.onSelectStart,\"click\":_vm.onSelectEnd}})])}),0)})],2)}):_c('FontSample',_vm._l((_vm.fontSizes),function(size,k){return _c('div',{key:k,staticClass:\"sample-paragraph\"},[(_vm.fontSizes.length > 1)?_c('div',{staticClass:\"font-size-label\"},[_vm._v(_vm._s(size))]):_vm._e(),_c('div',{ref:\"content\",refInFor:true,staticClass:\"font-sample-content-inner\",style:({ 'font-size': (\"\" + size + (_vm.settings.fontSizeUnit)) }),attrs:{\"contenteditable\":\"\",\"spellcheck\":\"false\"},on:{\"paste\":_vm.onPaste,\"input\":_vm.onInput,\"focus\":_vm.onFocus}})])}),0)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-sample\",style:((\"\\n color: \" + (_vm.settings.textColor) + \";\\n background: \" + (_vm.settings.backgroundColor) + \";\\n line-height: \" + (_vm.settings.defaultLineHeight ? '' : _vm.settings.lineHeight) + \";\\n letter-spacing: \" + (_vm.settings.defaultTracking ? '0' : _vm.settings.tracking) + \"em;\\n text-align: \" + (_vm.settings.textAlign) + \";\\n text-transform: \" + (_vm.settings.textTransform) + \";\\n font-feature-settings: \" + _vm.fontFeatureSettings + \";\\n font-variation-settings: \" + _vm.fontVariationSettings + \";\\n \")),attrs:{\"lang\":_vm.selectedLoclLanguage}},[_c('div',{staticClass:\"font-sample-content\",style:({\n 'word-break': _vm.settings.wrapLines ? 'break-all' : 'normal',\n })},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontSample.vue?vue&type=template&id=1d721b6b&\"\nimport script from \"./FontSample.vue?vue&type=script&lang=js&\"\nexport * from \"./FontSample.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontSample.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-flex\"},[_c('h3',{attrs:{\"id\":_vm.header.langId}},[_vm._v(_vm._s(_vm.header.language))]),(_vm.header.opentypeTag)?_c('div',[_c('span',{staticClass:\"light\"},[_vm._v(\"OT code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.opentypeTag.padEnd(4, ' '))+\" \")]),_c('span',{staticClass:\"light\"},[_vm._v(\"HTML code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.htmlTag))])]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.printNumber(_vm.header.speakers))+\" speakers\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function fNum(n) { return n > 1000000 ? n/1000000 + 'M' : n > 9999 ? n/1000 + 'K' : n; };\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SampleHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SampleHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SampleHeader.vue?vue&type=template&id=52cde21e&scoped=true&\"\nimport script from \"./SampleHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./SampleHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52cde21e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-flex\"},[_c('h3',{attrs:{\"id\":_vm.header.langId}},[_vm._v(_vm._s(_vm.header.topic))]),(_vm.header.description)?_c('UiButton',{staticClass:\"btn\",attrs:{\"color\":\"none\"}},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"height\":'18',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}})]),_c('UiTooltip',{staticClass:\"description-tooltip\",attrs:{\"openOn\":\"click\",\"interactive\":true},domProps:{\"innerHTML\":_vm._s(_vm.header.description || '(no description)')}})],1):_vm._e(),_c('div',{staticClass:\"tags\"},_vm._l((_vm.header.tags),function(t,i){return _c('span',{key:i},[_vm._v(_vm._s(t))])}),0),_c('h3',{attrs:{\"id\":_vm.header.langId}},[_vm._v(_vm._s(_vm.header.language))]),(_vm.header.opentypeTag)?_c('div',[_c('span',{staticClass:\"light\"},[_vm._v(\"OT code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.opentypeTag.padEnd(4, ' '))+\" \")]),_c('span',{staticClass:\"light\"},[_vm._v(\"HTML code: \")]),_c('code',[_vm._v(_vm._s(_vm.header.htmlTag))])]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.printNumber(_vm.header.speakers))+\" speakers\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GotchaHeader.vue?vue&type=template&id=257cc006&scoped=true&\"\nimport script from \"./GotchaHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./GotchaHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GotchaHeader.vue?vue&type=style&index=0&id=257cc006&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"257cc006\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TesterBody.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TesterBody.vue?vue&type=template&id=c78bcbf0&\"\nimport script from \"./TesterBody.vue?vue&type=script&lang=js&\"\nexport * from \"./TesterBody.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TesterBody.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-sidebar contextual-sidebar\",on:{\"!keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }return _vm.nextAnchor($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }return _vm.previousAnchor($event)}],\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.goToAnchor($event)}}},[_c('div',{staticClass:\"row row-filter\"},[_c('label',{staticClass:\"row-label\",staticStyle:{\"min-width\":\"0\"}},[_vm._v(\"Search\")]),_c('UiTextbox',{ref:\"filterTextbox\",class:_vm.languageFilter ? 'filter-textbox' : '',model:{value:(_vm.languageFilter),callback:function ($$v) {_vm.languageFilter=$$v},expression:\"languageFilter\"}}),_c('UiIconButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.languageFilter),expression:\"languageFilter\"}],staticClass:\"btn-clear\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.clearFilter,\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.stopPropagation();}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.2\",\"d\":\"M18.3 5.71a.996.996 0 00-1.41 0L12 10.59 7.11 5.7A.996.996 0 105.7 7.11L10.59 12 5.7 16.89a.996.996 0 101.41 1.41L12 13.41l4.89 4.89a.996.996 0 101.41-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"}})])])],1),_c('div',{staticClass:\"row row-filter\"},[_c('label',{staticClass:\"row-label\",staticStyle:{\"min-width\":\"0\"}},[_vm._v(\"Scripts\")]),_c('UiSelect',{attrs:{\"multiple\":true,\"options\":_vm.scripts,\"keys\":{\n class: 'class', image: 'image', label: 'script'\n },\"value\":_vm.scripts.filter(function (s) { return s.isSelected; })},on:{\"input\":function (values) { return _vm.selectScripts({ values: values }); }}})],1),_c('div',{staticClass:\"row row-filter\"},[_c('UiCheckbox',{attrs:{\"value\":_vm.anySelected,\"label\":_vm.anySelected ? 'clear all' : 'select all'},on:{\"input\":function (checked) { return _vm.selectDeselectAllLanguages({ checked: checked }); }}})],1),_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({\n preventParentScroll: true,\n }),expression:\"{\\n preventParentScroll: true,\\n }\"}],ref:\"vb\",staticClass:\"language-list\"},[_c('div',{ref:\"scrolled\",staticClass:\"scrolled\",attrs:{\"tabindex\":\"-1\"},on:{\"!keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();}]}},_vm._l((_vm.filteredLanguages),function(language,i){return _c('div',{key:i,staticClass:\"language-item\",class:{ 'has-text': language.hasText }},[_c('UiCheckbox',{attrs:{\"value\":language.isSelected,\"tabindex\":\"-1\"},on:{\"input\":function (v) { return _vm.toggleLanguage(language.id, v); }}}),_c('a',{class:(\"language-link \" + (language.isSelected ? '' : 'disabled')),attrs:{\"href\":(\"#\" + (language.language) + \"-\" + (language.id)),\"tabindex\":i > 0 ? -1 : 0},on:{\"focus\":function (e) { return i === 0 ? _vm.highlightAnchor(e) : ''; },\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"])){ return null; }$event.preventDefault();return _vm.toggleLanguage(language.id, !language.isSelected)}}},[_vm._v(\"\\n \"+_vm._s(language.language)+\"\\n \")])],1)}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nexport default function fireEvent(element, eventName) {\n var event = document.createEvent(\"HTMLEvents\");\n event.initEvent(eventName, true, false);\n element.dispatchEvent(event);\n}","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageNav.vue?vue&type=template&id=5d55f768&scoped=true&\"\nimport script from \"./LanguageNav.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageNav.vue?vue&type=style&index=0&id=5d55f768&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d55f768\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"kerning-nav contextual-sidebar u-flex-v\"},[_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({\n preventParentScroll: true,\n }),expression:\"{\\n preventParentScroll: true,\\n }\"}],ref:\"vb\"},[_c('div',{staticClass:\"scrolled\"},[_c('transition-group',{staticClass:\"fade-transition-group\",attrs:{\"name\":\"fade\",\"tag\":\"div\"}},[_c('KerningEditor',{key:\"pattern-editor\",attrs:{\"segments\":_vm.segments},on:{\"addKerningSegment\":_vm.addKerningSegment,\"removeKerningSegment\":function (i) { return _vm.removeKerningSegment(i); },\"updateKerningPattern\":_vm.updateKerningPattern}}),_c('div',{key:\"pattern-list\",staticClass:\"nav panel\"},[_c('transition-group',{staticClass:\"fade-transition-group\",attrs:{\"name\":\"fade\",\"tag\":\"div\"}},[_c('div',{key:\"heading\",staticClass:\"row\"},[_c('h3',[_vm._v(\"Patterns\")]),_c('UiIconButton',{attrs:{\"color\":\"primary\",\"size\":\"small\"},on:{\"click\":_vm.addKerningPattern}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1),_vm._l((_vm.kerningPatterns),function(pattern){return _c('div',{key:(\"pattern-\" + (pattern.id)),class:(\"kerning-pattern \" + (_vm.selectedPatternId === pattern.id ? 'selected' : ''))},[_c('UiCheckbox',{attrs:{\"value\":pattern.isVisible},on:{\"input\":function (v) { return _vm.toggleKerningPattern(pattern.id, v); }}}),_c('div',{staticClass:\"link\",attrs:{\"href\":(\"#\" + (pattern.id)),\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.selectPattern(pattern.id)}}},[_c('kbd',{attrs:{\"title\":pattern.id},domProps:{\"innerHTML\":_vm._s(_vm.formatPatternId(pattern.name || 'new pattern'))}})]),_c('UiIconButton',{staticClass:\"border\",attrs:{\"color\":\"default\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.removeKerningPattern(pattern.id)}}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M19 13H5v-2h14v2z\",\"fill\":\"currentColor\"}}),_c('path',{attrs:{\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}})])])],1)}),_c('div',{key:\"revertBtn\",staticClass:\"btn-group\"},[_c('UiButton',{attrs:{\"color\":\"default\"},on:{\"click\":_vm.revertKerningPatterns}},[_vm._v(\"Revert\")]),_c('UiButton',{attrs:{\"color\":\"default\",\"disabled\":_vm.kerningPatterns.length === 0},on:{\"click\":_vm.clearKerningPatterns}},[_vm._v(\"Clear\")])],1)],2)],1),_c('a',{key:\"help\",staticClass:\"help-link\",attrs:{\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"href\":\"/help/kerning\"}},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M0 0h24v24H0V0z\"}}),_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"}})]),_c('span',[_vm._v(\"\\n Help\\n \")])])],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function scrollToHash(a, scrolled, hash = null) {\n if (hash == null) {\n hash = a.getAttribute(\"href\");\n }\n\n const escaped = hash.slice(1).replace(/\\\\/g, \"\\\\\\\\\");\n const selector = `[id='${ escaped }']`;\n const target = document.querySelector(selector);\n\n if (target) {\n let top = target.offsetTop;\n // let parent = target.parentElement;\n // while (parent != scrolled) {\n // top += parent.offsetTop;\n // console.log(parent, parent.offsetTop)\n // parent = parent.parentElement;\n // }\n scrolled.scrollTop = top;\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KerningNav.vue?vue&type=template&id=1f701b1d&scoped=true&\"\nimport script from \"./KerningNav.vue?vue&type=script&lang=js&\"\nexport * from \"./KerningNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./KerningNav.vue?vue&type=style&index=0&id=1f701b1d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f701b1d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-support-summary\"},[_c('v-style',[_vm._v(\"\\n .glyph {\\n font-size: \"+_vm._s(_vm.settings.fontSize)+_vm._s(_vm.settings.fontSizeUnit)+\";\\n }\\n \")]),_c('div',{staticClass:\"main-column\"},[_c('div',[_c('p',[_vm._v(\"\\n Font supports \"),_c('strong',[_vm._v(_vm._s(_vm.languageSupport.supportedLanguages.length))]),_vm._v(\" out of \"),_c('strong',[_vm._v(_vm._s(_vm.languageSupport.languages.length))]),_vm._v(\" listed languages.\\n \")]),_c('h2',[_vm._v(\"\\n Supported languages\\n \"),_c('UiSelect',{staticClass:\"inline\",attrs:{\"options\":_vm.supportedLanguagesSortingOptions},model:{value:(_vm.supportedLanguagesSorting),callback:function ($$v) {_vm.supportedLanguagesSorting=$$v},expression:\"supportedLanguagesSorting\"}})],1),_c('LanguageList',{attrs:{\"languages\":_vm.supportedLanguages},on:{\"select-language\":function (l) { return _vm.selectLanguage(l); }}}),_c('h2',[_vm._v(\"\\n Unsupported languages\\n \"),_c('UiSelect',{staticClass:\"inline\",attrs:{\"options\":_vm.unsupportedLanguagesSortingOptions},model:{value:(_vm.unsupportedLanguagesSorting),callback:function ($$v) {_vm.unsupportedLanguagesSorting=$$v},expression:\"unsupportedLanguagesSorting\"}})],1),_c('LanguageList',{attrs:{\"languages\":_vm.unsupportedLanguages},on:{\"select-language\":function (l) { return _vm.selectLanguage(l); }}}),_c('h2',[_vm._v(\"\\n Missing characters\\n \"),_c('UiSelect',{staticClass:\"inline\",attrs:{\"options\":_vm.missingCharacterSortingOptions},model:{value:(_vm.missingCharacterSorting),callback:function ($$v) {_vm.missingCharacterSorting=$$v},expression:\"missingCharacterSorting\"}})],1),_c('div',_vm._l((_vm.missingCharacters),function(script){return _c('div',{key:script.script},[_c('h3',[_vm._v(_vm._s(script.script))]),_vm._l((script.characters.filter(function (c) { return c.character.length === 1; })),function(c,j){return _c('button',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character)+\"\\n \")])})],2)}),0),_c('h2',[_vm._v(\"\\n Missing character combinations by script\\n \")]),_c('div',_vm._l((_vm.languageSupport.missingCharacterCombinationsByScript),function(script){return _c('div',{key:script.script},[_c('h3',[_vm._v(_vm._s(script.script))]),_vm._l((script.characters),function(c,j){return _c('button',{key:j,class:(\"glyph support-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character)+\"\\n \")])})],2)}),0),_c('h2',[_vm._v(\"\\n Included characters by script\\n \")]),_c('div',_vm._l((_vm.languageSupport.includedCharactersByScript),function(script){return _c('div',{key:script.script},[_c('h3',[_vm._v(_vm._s(script.script))]),_c('FontSample',_vm._l((script.characters.filter(function (c) { return c.character.length === 1; })),function(c,j){return _c('div',{key:j,class:(\"glyph needed-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character))])}),0)],1)}),0),_c('h2',[_vm._v(\"\\n Included character combinations by script\\n \")]),_c('div',_vm._l((_vm.languageSupport.includedCharacterCombinationsByScript),function(script){return _c('div',{key:script.script},[_c('h3',[_vm._v(_vm._s(script.script))]),_c('FontSample',_vm._l((script.characters),function(c,j){return _c('div',{key:j,class:(\"glyph needed-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character))])}),0)],1)}),0),_c('h2',[_vm._v(\"\\n All included characters\\n \")]),_c('FontSample',_vm._l((_vm.languageSupport.fontCharacters),function(c,j){return _c('div',{key:j,class:(\"glyph needed-\" + (5 - [ 0, 20000, 600000, 2000000, 8000000 ].filter(function (limit) { return c.speakers > limit; }).length)),on:{\"click\":function($event){return _vm.selectCharacter(c)}}},[_vm._v(_vm._s(c.character))])}),0)],1)]),_c('Pinnable',{staticClass:\"sidebar\",attrs:{\"isPinned\":true,\"isVisible\":true,\"scrolled\":false}},[_c('div',{staticClass:\"language-character-sidebar\"},[(_vm.selectedCharacter)?_c('ScrollPanel',[_c('CharacterPanel',{attrs:{\"characterInfo\":_vm.selectedCharacter},on:{\"select-language\":function (l) { return _vm.selectLanguage(l); }}})],1):_c('div',{staticClass:\"placeholder-info\"},[_vm._v(\"\\n \"+_vm._s(_vm.languageSupport.characters.filter(function (c) { return !c.isMissing; }).length)+\" /\\n \"+_vm._s(_vm.languageSupport.characters.length)+\" characters\\n \")]),(_vm.selectedLanguage)?_c('ScrollPanel',[_c('LanguagePanel',{attrs:{\"lang\":_vm.selectedLanguage.htmlTag,\"languageInfo\":_vm.selectedLanguage},on:{\"character-clicked\":function (c) { return _vm.selectCharacter(_vm.languageSupport.characters.find(function (cc) { return cc.character === c; })); }}})],1):_c('div',{staticClass:\"placeholder-info\"},[_vm._v(\"\\n \"+_vm._s(_vm.languageSupport.supportedLanguages.length)+\" /\\n \"+_vm._s(_vm.languageSupport.languages.length)+\" languages\\n \")])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"scroll-panel\"},[_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({ preventParentScroll: true }),expression:\"{ preventParentScroll: true }\"}]},[_c('div',{staticClass:\"content\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ScrollPanel.vue?vue&type=template&id=2926fb9c&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-panel\"},[_c('div',{staticClass:\"info-bar\"},[_c('strong',[_vm._v(_vm._s(_vm.languageInfo.language)+\" \")]),_c('div',[_c('label',[_vm._v(\"OpenType: \")]),_c('code',[_vm._v(_vm._s(_vm.languageInfo.opentypeTag))])]),_c('div',[_c('label',[_vm._v(\"HTML: \")]),_c('code',[_vm._v(_vm._s(_vm.languageInfo.htmlTag))])]),_c('a',{attrs:{\"href\":(\"https://en.wikipedia.org/wiki/\" + (_vm.languageInfo.language.replace(/languages?$/,'_language'))),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Wikipedia\")])]),_c('p',[_c('strong',[_vm._v(_vm._s(_vm.printNumber(_vm.languageInfo.speakers))+\" speakers\")])]),(_vm.languageInfo.missingCharacters.length)?_c('header',[_vm._v(\"missing characters\")]):_vm._e(),_c('div',{staticClass:\"glyphs\"},_vm._l((_vm.languageInfo.missingCharacters),function(c,j){return _c('button',{key:j,staticClass:\"glyph support-4\",on:{\"click\":function($event){return _vm.$emit('character-clicked', c)}}},[_vm._v(_vm._s(c)+\"\\n \")])}),0),(_vm.languageInfo.includedCharacters.length)?_c('header',[_vm._v(\"supported characters\")]):_vm._e(),_c('FontSample',_vm._l((_vm.languageInfo.includedCharacters),function(c,j){return _c('div',{key:j,staticClass:\"glyph support-full\",on:{\"click\":function($event){return _vm.$emit('character-clicked', c)}}},[_vm._v(_vm._s(c))])}),0),(_vm.languageInfo.specialLetters.length != _vm.languageInfo.requiredCharacters.length)?_c('div',[_c('header',[_vm._v(\"letter units\")]),_c('FontSample',_vm._l((_vm.languageInfo.specialLetters),function(c,j){return _c('div',{key:j,staticClass:\"glyph\",on:{\"click\":function($event){return _vm.$emit('character-clicked', c)}}},[_vm._v(_vm._s(c))])}),0)],1):_vm._e(),(_vm.languageInfo.gotchas.length)?_c('div',[_c('header',[_vm._v(\"gotchas\")]),_c('div',{staticClass:\"gotchas\"},[_vm._l((_vm.languageInfo.gotchas),function(g,i){return _c('p',{key:i,domProps:{\"innerHTML\":_vm._s(\"\" + (g.topic) + \": \" + (g.description || g.tags.join(', ')))}})}),_c('p',[_c('router-link',{attrs:{\"to\":(\"/gotchas#\" + (_vm.languageInfo.language) + \"-\" + (_vm.languageInfo.id))}},[_vm._v(\"\\n go to tests\\n \")])],1)],2)]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguagePanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguagePanel.vue?vue&type=template&id=176280e4&scoped=true&\"\nimport script from \"./LanguagePanel.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguagePanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguagePanel.vue?vue&type=style&index=0&id=176280e4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"176280e4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"language-list\"},[_vm._l((_vm.languages),function(l){return _c('span',{key:l.language +'-'+ l.script,attrs:{\"lang\":l.htmlCode}},[_c('UiButton',{class:(\"language-button support-\" + (Math.min(4, Math.ceil((l.missingCharacters || []).length / 5)) || 'full')),on:{\"click\":function($event){return _vm.$emit('select-language', l)}}},[_c('div',[_vm._v(\"\\n \"+_vm._s(l.language)+\"\\n \")]),(_vm.fields.indexOf('coverage') > -1)?_c('div',{staticClass:\"goals\"},[_vm._v(\"\\n \"+_vm._s(l.includedCharacters.length)+\"/\"+_vm._s(l.requiredCharacters.length)+\"\\n \")]):_vm._e(),(l.gotchas.length)?_c('div',{staticClass:\"gotcha-warning-icon\"},[_c('svg',{class:'help-icon',attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"width\":\"18\",\"height\":\"18\",\"svg-inline\":'',\"role\":'presentation',\"focusable\":'false',\"tabindex\":'-1'}},[_c('path',{attrs:{\"d\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\"}})])]):_vm._e()])],1)}),_c('UiButton',{on:{\"click\":_vm.copyList}},[_vm._v(\"copy list\")]),_c('textarea',{ref:\"list\",staticStyle:{\"position\":\"absolute\",\"left\":\"-9999px\"},domProps:{\"value\":_vm.languages.map(function (l) { return l.language; }).join(', ')}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageList.vue?vue&type=template&id=6cd5e034&scoped=true&\"\nimport script from \"./LanguageList.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageList.vue?vue&type=style&index=0&id=6cd5e034&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6cd5e034\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"character-panel\"},[_c('CharacterInfo',{attrs:{\"character\":_vm.characterInfo.character}}),_c('div',[_c('strong',[_vm._v(_vm._s(_vm.printNumber(_vm.characterInfo.speakers)))]),_vm._v(\" speakers total\")]),(_vm.characterInfo.obligatoryLanguages)?_c('div',[_c('h4',[_vm._v(\"obligatory in \"+_vm._s(_vm.characterInfo.obligatoryLanguages.length)+\" languages\")]),_c('div',[_c('LanguageList',{attrs:{\"languages\":_vm.characterInfo.obligatoryLanguages,\"fields\":['coverage']},on:{\"select-language\":function (l) { return _vm.$emit('select-language', l); }}})],1),_c('br'),_c('div',[_c('a',{attrs:{\"href\":_vm.wordFinderUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"find words\")])])]):_vm._e(),(_vm.characterInfo.optionalLanguages)?_c('div',[(_vm.characterInfo.optionalLanguages.length)?_c('div',[_c('strong',[_vm._v(\"optional in \"+_vm._s(_vm.characterInfo.optionalLanguages.length)+\" languages\")])]):_vm._e(),_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.characterInfo.optionalLanguages.map(function (l) { return l.language + \" (\" + (l.optionalCharactersNote) + \")\"; }).join(', '))+\"\\n \")])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"character-info\"},[_c('div',{staticClass:\"character-font-preview\"},[_vm._v(_vm._s(_vm.character)+\" \")]),_c('div',{staticClass:\"info-bar\"},[_c('div',{staticStyle:{\"font-size\":\"2.5rem\"}},[_vm._v(_vm._s(_vm.characterRepresentation)+\" \")]),_c('div',[_vm._v(_vm._s(_vm.unicodes))]),_c('div',[_vm._v(_vm._s(_vm.glyphnames))]),_c('a',{attrs:{\"href\":(\"https://en.wikipedia.org/wiki/\" + _vm.character),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Wikipedia\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CharacterInfo.vue?vue&type=template&id=42b34de5&scoped=true&\"\nimport script from \"./CharacterInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./CharacterInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CharacterInfo.vue?vue&type=style&index=0&id=42b34de5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42b34de5\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CharacterPanel.vue?vue&type=template&id=886201ec&scoped=true&\"\nimport script from \"./CharacterPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./CharacterPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CharacterPanel.vue?vue&type=style&index=0&id=886201ec&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"886201ec\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageSupportSummary.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LanguageSupportSummary.vue?vue&type=template&id=4456cae4&\"\nimport script from \"./LanguageSupportSummary.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageSupportSummary.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageSupportSummary.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-sample-nav contextual-sidebar\"},[_c('div',{staticClass:\"toolbar panel btn-group\"},[_c('UiIconButton',{attrs:{\"tooltip\":\"Heading\",\"color\":_vm.isHeadingActive ? 'primary' : 'default'},on:{\"click\":_vm.makeHeading}},[_vm._v(\"\\n H\\n \")]),_c('UiIconButton',{attrs:{\"tooltip\":\"Bold\",\"color\":_vm.isBoldActive ? 'primary' : 'default'},on:{\"click\":_vm.makeBold}},[_vm._v(\"\\n B\\n \")]),_c('UiIconButton',{attrs:{\"tooltip\":\"Italic\",\"color\":_vm.isItalicActive ? 'primary' : 'default'},on:{\"click\":_vm.makeItalic}},[_vm._v(\"\\n I\\n \")])],1),_c('div',{directives:[{name:\"bar\",rawName:\"v-bar\",value:({\n preventParentScroll: true,\n }),expression:\"{\\n preventParentScroll: true,\\n }\"}],ref:\"vb\",staticClass:\"nav-links\"},[_c('div',{staticClass:\"scrolled\"},[_c('div',{staticClass:\"nav panel\"},_vm._l((_vm.textHeadings),function(heading,i){return _c('div',{key:i},[_c('a',{staticClass:\"heading-link\",attrs:{\"href\":(\"#\" + (heading.id))}},[_vm._v(\"\\n \"+_vm._s(heading.text)+\"\\n \")])])}),0),_c('AnimationEditor')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontSampleNav.vue?vue&type=template&id=abb3f344&scoped=true&\"\nimport script from \"./FontSampleNav.vue?vue&type=script&lang=js&\"\nexport * from \"./FontSampleNav.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontSampleNav.vue?vue&type=style&index=0&id=abb3f344&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"abb3f344\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FontTester.vue?vue&type=template&id=6e453623&scoped=true&\"\nimport script from \"./FontTester.vue?vue&type=script&lang=js&\"\nexport * from \"./FontTester.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FontTester.vue?vue&type=style&index=0&id=6e453623&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e453623\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\nimport Router from \"vue-router\";\n\nimport SiteHeader from \"@/viewparts/SiteHeader.vue\";\nimport SiteFooter from \"@/viewparts/SiteFooter.vue\";\nimport Home from \"@/views/Home.vue\";\nimport Help from \"@/views/Help.vue\";\nimport KerningHelp from \"@/views/KerningHelp.vue\";\nimport AnimationHelp from \"@/views/AnimationHelp.vue\";\nimport FontTester from \"@/views/FontTester.vue\";\n\nimport textKinds from \"@/models/textKinds\";\n\nVue.use(Router);\n\nexport default new Router({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes: [\n {\n path: \"/\",\n name: \"Home\",\n components: {\n header: SiteHeader,\n main: Home,\n footer: SiteFooter,\n },\n },\n { path: '/editor', redirect: '/custom' },\n {\n // parentheses enclose text kind RegExp\n path: `/:text(${textKinds.join(\"|\")}|custom)/:id?`,\n name: \"FontTester\",\n components: {\n header: SiteHeader,\n main: FontTester,\n footer: SiteFooter,\n },\n },\n {\n path: \"/help/kerning\",\n name: \"KerningHelp\",\n components: {\n header: SiteHeader,\n main: KerningHelp,\n footer: SiteFooter,\n },\n },\n {\n path: \"/help/animation\",\n name: \"AnimationHelp\",\n components: {\n header: SiteHeader,\n main: AnimationHelp,\n footer: SiteFooter,\n },\n },\n {\n path: \"/help\",\n name: \"Help\",\n components: {\n header: SiteHeader,\n main: Help,\n footer: SiteFooter,\n },\n },\n ],\n});\n","export default [\n { segments: [\"A-Z\", \"A-Z\"] },\n { segments: [\"A-Z\", \"a-z\"] },\n { segments: [\"a-z\", \"a-z\"] },\n { segments: [\"0-9\", \"0-9\"] },\n { segments: [\".,\\\\-/\", \"0-9\"] },\n { segments: [\"@()[]{}\", \"0-9A-Za-z\"] },\n { segments: [\".,-\", \"A-Za-z\"] },\n { segments: [\"@“”„”„“””\\\"\\\"\", \"A-Za-z\"] },\n];\n","export default function kerningPatternName(pattern) {\n // let id = pattern.segments\n // .filter(s => s.length)\n // .map(s => s\n // .replace(/ /g, \"_\")\n // )\n // .join(\" × \");\n // return id;\n return pattern.lines[0];\n}\n","export default {\n lettering: \"letterings\",\n pangrams: \"pangrams\",\n sentences: \"paragraphs\",\n gotchas: \"gotchas\",\n ABCs: \"alphabet\",\n glyphs: null,\n kerning: null,\n languages: null,\n};\n","export default function (id) {\n return id\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n","export default function escapeHtml(unsafe) {\n return unsafe\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\");\n}\n","import Vue from \"vue\";\nimport router from \"@/router\";\n\nimport getId from \"@/utils/id\";\nimport kerningPatterns from \"@/models/kerningPatterns\";\nimport kerningPatternName from \"@/models/kerningPatternName\";\nimport languageDataFields from \"@/models/textKindLanguageDataField\";\nimport LanguageData from \"language-data\";\nimport escapeHtmlId from \"./utils/escapeHtmlId\";\nimport escapeHtml from \"./utils/escapeHtml\";\nimport KerningGenerator from \"./models/KerningGenerator\";\n\nlet id = 0;\nlet customTextId = 1;\n\nconst SCRIPTS = [\n { script: 'Latn', name: 'Latin' },\n { script: 'Grek', name: 'Greek' },\n { script: 'Cyrl', name: 'Cyrillic' },\n { script: 'Arab', name: 'Arabic' },\n { script: 'Armn', name: 'Armenian' },\n { script: 'IPA ', name: 'IPA', isSelected: false },\n];\n\nconst SCRIPT_TAGS = LanguageData.map(l => l.script).filter((v, i, a) => a.indexOf(v) === i);\nconst LANGUAGES = LanguageData.sort((a,b) => a.language.localeCompare(b.language));\n\nexport default {\n state: {\n selectedSampleKey: \"\",\n texts: [],\n customTextIds: [],\n languages: LANGUAGES.map(l => ({ ...l, id: id++, isSelected: true })),\n scripts: SCRIPTS.filter(s => SCRIPT_TAGS.indexOf(s.script) > -1).map(s => ({ id: id++, isSelected: true, ...s })),\n textHeadings: [],\n formatRequested: false,\n kerningPatterns: [],\n defaultKerningPatterns: kerningPatterns,\n fontCharacters: 'xyz'.split(),\n },\n\n mutations: {\n setText(state, { sampleKey, html }) {\n Vue.set(state.texts, sampleKey, html)\n },\n\n modifyText(state, { html, headings = [] }) {\n if (state.selectedSampleKey in languageDataFields) {\n this.commit(\"addCustomText\", { html });\n }\n else {\n Vue.set(state.texts, state.selectedSampleKey, [{ html }]);\n // state.texts[state.selectedSampleKey] = html;\n }\n state.textHeadings = headings;\n },\n\n addCustomText(state, { html }) {\n state.customTextIds.push(customTextId);\n state.texts[customTextId] = [{ html }];\n this.commit(\"selectSample\", { kind: \"custom\", id: customTextId });\n const route = `/custom/${state.selectedSampleKey}`;\n if (router.currentRoute.path !== route) {\n router.push(route);\n }\n customTextId++;\n },\n\n removeCustomText(state, { id }) {\n const i = state.customTextIds.indexOf(id);\n state.customTextIds.splice(i, 1);\n delete state.texts[id];\n if (router.currentRoute.path === `/custom/${id}`) {\n let path = '/lettering';\n if (i < state.customTextIds.length) {\n id = state.customTextIds[i];\n path = `/custom/${id}`;\n } else if (i - 1 >= 0 && i - 1 < state.customTextIds.length) {\n id = state.customTextIds[i - 1];\n path = `/custom/${id}`;\n }\n router.push(path);\n }\n },\n\n format(state, { tag }) {\n state.formatRequested = tag;\n },\n\n selectSample(state, { kind, id }) {\n if (kind in languageDataFields) {\n state.selectedSampleKey = kind;\n } else if (kind === \"custom\") {\n if (id in state.texts) {\n state.selectedSampleKey = id;\n }\n else {\n const html = \"Type here\";\n this.commit(\"addCustomText\", { html });\n }\n }\n },\n\n selectLanguage(state, { id, checked }) {\n state.languages.find(l => l.id === id).isSelected = checked;\n },\n\n selectDeselectAllLanguages(state, { checked }) {\n state.languages.forEach(l => l.isSelected = checked);\n },\n\n selectScripts(state, { values }) {\n state.scripts.forEach(s => {\n if (values.indexOf(s) > -1) {\n s.isSelected = true;\n }\n else {\n s.isSelected = false;\n }\n });\n },\n\n clearKerningPatterns(state) {\n state.kerningPatterns.splice(0);\n this.commit(\"setText\", { sampleKey: \"kerning\", html: \"\" });\n },\n\n initKerningPatterns(state) {\n state.defaultKerningPatterns.forEach(({ segments, isVisible = true }) => {\n this.commit(\"addKerningPattern\", { segments, isVisible, toEnd: true });\n });\n },\n\n addKerningPattern(state, { segments, isVisible, toEnd }) {\n const { sets, closures } = KerningGenerator.sets(segments);\n const copy = state.kerningPatterns.slice();\n const pattern = { segments, sets, closures, isVisible };\n pattern.lines = KerningGenerator.kerningString(pattern);\n pattern.name = kerningPatternName(pattern);\n pattern.id = getId('kerning-pattern-' + pattern.name);\n if (toEnd) {\n copy.push(pattern);\n } else {\n copy.unshift(pattern);\n }\n state.kerningPatterns = copy;\n },\n\n updateKerningPattern(state, { id, segments }) {\n const { sets, closures } = KerningGenerator.sets(segments);\n let copy = state.kerningPatterns.slice();\n let pattern = copy.find(kp => kp.id === id);\n if (!pattern) {\n this.commit(\"addKerningPattern\", { segments, isVisible: true });\n copy = state.kerningPatterns.slice();\n pattern = copy[0];\n pattern.id = id;\n }\n pattern.segments = segments;\n pattern.sets = sets;\n pattern.closures = closures;\n pattern.lines = KerningGenerator.kerningString(pattern);\n pattern.name = kerningPatternName(pattern);\n state.kerningPatterns = copy;\n },\n\n removeKerningPattern(state, { id }) {\n const index = state.kerningPatterns.findIndex(p => p.id === id);\n state.kerningPatterns.splice(index, 1);\n },\n\n toggleKerningPattern(state, { id, on }) {\n const index = state.kerningPatterns.findIndex(p => p.id === id);\n state.kerningPatterns[index].isVisible = on;\n },\n\n updateKerning(state) {\n let patterns = state.kerningPatterns\n .filter(pattern => pattern.isVisible);\n let html = patterns\n .map(pattern => {\n const lines = pattern.lines;\n const text = lines[0].length > 50\n ? lines.join(\"\\n\")\n : lines.join(\" \").replace(/ +/g, \" \");\n return {\n header: `

`,\n texts: [`

${escapeHtml(text)}

`],\n };\n });\n this.commit(\"setText\", { sampleKey: \"kerning\", html });\n },\n\n updateFontCharacters(state, { characters }) {\n state.fontCharacters = characters;\n },\n },\n\n actions: {\n selectScripts({ state, commit, dispatch }, { values }) {\n commit(\"selectScripts\", { values });\n dispatch(\"updateText\");\n },\n\n selectLanguage({ state, commit, dispatch }, { id, checked }) {\n const matching = state.languages.find(l => l.id === id);\n if (matching.isSelected !== checked) {\n commit(\"selectLanguage\", { id, checked });\n dispatch(\"updateText\");\n }\n },\n\n selectSample({ state, commit, dispatch }, { kind, id }) {\n commit(\"selectSample\", { kind, id });\n if (kind === \"kerning\") {\n if (state.kerningPatterns.length === 0) {\n this.commit(\"initKerningPatterns\");\n }\n }\n dispatch(\"updateText\");\n },\n\n updateFontCharacters({ dispatch }, { font }) {\n const characters = font.characters;\n this.commit(\"updateFontCharacters\", { characters });\n dispatch(\"updateText\");\n },\n\n updateText({ state, commit, getters }) {\n\n function squish(str) { return str.replace(/\\s\\s+/g, \"\") }\n function fNum(n) { return n > 1000000 ? n/1000000 + 'M' : n/1000 + 'K'; }\n\n const fieldKey = getters.selectedSampleTextKey;\n if (!fieldKey) {\n if (state.selectedSampleKey === \"kerning\") {\n commit(\"updateKerning\");\n }\n else if (state.selectedSampleKey === \"glyphs\") {\n let texts = [\n `

${\n state.fontCharacters.map(c => `${c}`).join('')\n }

`,\n ];\n commit(\"setText\", {\n sampleKey: state.selectedSampleKey,\n html: [{ header: '', texts }],\n });\n }\n return;\n }\n\n let data = getters.selectedLanguages\n .map(l => ({\n ...l,\n id: `${l.language}-${l.id}`,\n texts: l[fieldKey],\n }));\n\n let mappedData = []; // one to many\n\n if (getters.selectedSampleKey === 'gotchas') {\n data.forEach(({ id: langId, language, speakers, htmlTag, opentypeTag, texts }) => {\n let tests = texts.map(({ topic, tags, tests, description }) => {\n // let header = squish(\n // `

\n //

${l.language} — ${topic}

\n //
${tags.map(t => `${t}`).join(\"\")}
\n // ${l.opentypeTag ? `
OT code: ${l.opentypeTag.padEnd(4, ' ')}
` : ''}\n //
${fNum(l.speakers)} speakers
\n //
${description || ''}
\n //
\n // `\n // );\n let header = {\n id: langId + '-' + topic.replace(/[^a-z0-9]/ig, '_'),\n langId,\n language, speakers, htmlTag, opentypeTag,\n topic, tags, tests, description,\n }\n let fragments = [squish(\n `
\n ${tests.map(t => `

${t}

`).join(\"\")}\n
`\n )];\n return {\n header,\n texts: fragments,\n };\n });\n mappedData = [ ...mappedData, ...tests ];\n });\n } else {\n mappedData = data\n .map(({ id: langId, language, script, speakers, htmlTag, opentypeTag, texts }) => {\n let header = { langId, language, script, speakers, htmlTag, opentypeTag };\n let fragments;\n\n switch (getters.selectedSampleKey) {\n case \"ABCs\": {\n const AaBbCc = texts;\n const ABC = AaBbCc.split(' ').filter(l => l.split('').every(g=> g.toUpperCase() === g));\n const abc = AaBbCc.split(' ').filter(l => l.split('').every(g=> g.toLowerCase() === g));\n fragments = [\n AaBbCc,\n ABC.join(' '),\n abc.join(' '),\n ];\n if (script == 'Latn') {\n const Accents = ABC.filter(g => !/^[A-Z ]+$/.test(g));\n const accents = abc.filter(g => !/^[a-z ]+$/.test(g));\n fragments.push(Accents.join(''));\n fragments.push(accents.join(''));\n }\n\n fragments = fragments.map(t => `

${t}

`);\n break;\n }\n default:\n if (texts instanceof Array)\n fragments = texts.map(t => `

${t}

`);\n else\n fragments = [texts].map(t => `

${t}

`);\n }\n return {\n header,\n texts: fragments,\n };\n });\n }\n\n commit(\"setText\", { sampleKey: state.selectedSampleKey, html: mappedData });\n },\n\n addKerningPattern({ commit }, { segments, toEnd }) {\n commit(\"addKerningPattern\", { segments, isVisible: true, toEnd });\n commit(\"updateKerning\");\n },\n\n updateKerningPattern({ commit }, { id, segments }) {\n commit(\"updateKerningPattern\", { id, segments });\n commit(\"updateKerning\");\n },\n\n removeKerningPattern({ commit }, { id }) {\n commit(\"removeKerningPattern\", { id });\n commit(\"updateKerning\");\n },\n\n toggleKerningPattern({ commit }, { id, on }) {\n commit(\"toggleKerningPattern\", { id, on });\n commit(\"updateKerning\");\n },\n\n clearKerningPatterns({ dispatch, commit }) {\n commit(\"clearKerningPatterns\");\n setTimeout(() => {\n dispatch(\"updateText\");\n }, 50);\n },\n\n revertKerningPatterns({ dispatch, commit }) {\n commit(\"clearKerningPatterns\");\n commit(\"initKerningPatterns\");\n dispatch(\"updateText\");\n },\n },\n\n\n getters: {\n texts: state => state.texts,\n textHeadings: state => state.textHeadings,\n formatRequested: state => state.formatRequested,\n customTextIds: state => state.customTextIds,\n selectedSampleKey: state => state.selectedSampleKey,\n selectedSampleTextKey: state => languageDataFields[state.selectedSampleKey],\n scripts: state => state.scripts,\n selectedScripts: state => state.scripts.filter(s => s.isSelected),\n filteredLanguages: (state, getters) => state.languages.filter(l => getters.selectedScripts.find(s => s.script === l.script)),\n visibleLanguages: (state, getters) => {\n if (getters.selectedSampleKey === 'languages') {\n return getters.filteredLanguages.filter(l => l.alphabet);\n }\n else if (getters.selectedSampleTextKey) {\n return getters.filteredLanguages\n .filter(l => l[getters.selectedSampleTextKey].length);\n }\n else {\n return [];\n }\n },\n otherLanguages: (state, getters) => {\n return getters.filteredLanguages.filter(l => getters.visibleLanguages.find(ll => ll.id === l.id) == null);\n },\n selectedLanguages: (state, getters) => getters.visibleLanguages.filter(l => l.isSelected),\n languages: (state, getters) => [\n ...getters.visibleLanguages.map(l => ({ ...l, hasText: true })),\n ...getters.otherLanguages.map(l => ({ ...l, hasText: false })),\n ],\n kerningPatterns: (state) => state.kerningPatterns,\n\n languageSupport: (state, getters) => {\n function uniqueCharacterFilter(c,i, a) {\n return !/^[A-Za-z ]+$/.test(c) && a.indexOf(c) === i;\n }\n\n const testableLanguages = getters.selectedLanguages; //.filter(l => l.specialCharacters);\n\n const languages = testableLanguages.map(l => {\n const specialLetters = (l.script === 'Latn' ? l.specialCharacters : l.alphabet).split(' ')\n .filter((e, i, a) => a.indexOf(e) === i && e)\n // .filter((c) => c.length < 2 || Array(c.length - 1).fill(0).every((_,i) => isAccent(c, i + 1)));\n // .filter((c) => !/^[A-Za-z ]+$/.test(c));\n\n const requiredCharacters = specialLetters.join('').split('')\n .filter(uniqueCharacterFilter);\n\n const includedCharacters = requiredCharacters.filter(g => g.split('').every(c => state.fontCharacters.indexOf(c) > -1));\n const missingCharacters = requiredCharacters.filter(g => includedCharacters.indexOf(g) === -1);\n\n return {\n ...l,\n specialLetters,\n requiredCharacters,\n includedCharacters,\n missingCharacters,\n };\n });\n\n const supportedLanguages = languages.filter(l => l.requiredCharacters.length === l.includedCharacters.length);\n const unsupportedLanguages = languages.filter(l => supportedLanguages.indexOf(l) === -1);\n\n const missingCharacters = languages\n .reduce((acc, cur) => [...cur.missingCharacters, ...acc], []);\n\n const characters = [\n ...languages.reduce((acc, cur) => [...cur.specialLetters, ...acc], []),\n ...languages.reduce((acc, cur) => [...cur.requiredCharacters, ...acc], [])\n ]\n .filter((v, i, a) => a.indexOf(v) === i)\n .map(c => ({\n character: c,\n unicode: c.charCodeAt(0),\n obligatoryLanguages: languages.filter(l => l.alphabet.indexOf(c) > -1),\n optionalLanguages: languages.filter(l => l.optionalCharacters.indexOf(c) > -1),\n script: (LANGUAGES.find(l => l.alphabet.indexOf(c) > -1) || {script: 'Latn'}).script,\n isMissing: missingCharacters.indexOf(c) > -1,\n }))\n .map(ch => ({\n ...ch,\n speakers: [... ch.obligatoryLanguages, ...ch.optionalLanguages ].reduce((acc, cur) => acc + cur.speakers, 0),\n }));\n\n const missingCharactersByScript = groupCharactersByScript(characters, true);\n const includedCharactersByScript = groupCharactersByScript(characters, false);\n const missingCharacterCombinationsByScript = characterCombinations(missingCharactersByScript);\n const includedCharacterCombinationsByScript = characterCombinations(includedCharactersByScript);\n\n const fontCharacters = state.fontCharacters.map(c => ({\n character: c,\n unicode: c.charCodeAt(0),\n obligatoryLanguages: languages.filter(l => l.alphabet.indexOf(c) > -1),\n optionalLanguages: languages.filter(l => l.optionalCharacters.indexOf(c) > -1),\n }))\n .map(ch => ({\n ...ch,\n speakers: [... ch.obligatoryLanguages, ...ch.optionalLanguages ].reduce((acc, cur) => acc + cur.speakers, 0),\n }));\n\n return {\n languages,\n supportedLanguages,\n unsupportedLanguages,\n characters,\n missingCharactersByScript,\n includedCharactersByScript,\n missingCharacterCombinationsByScript,\n includedCharacterCombinationsByScript,\n fontCharacters,\n };\n },\n },\n}\n\n\nfunction groupCharactersByScript(characters, isMissing) {\n const charactersByScript = [];\n characters\n .filter(c => c.isMissing === isMissing)\n .forEach(c => {\n let script = charactersByScript.find(s => s.script === c.script);\n if (!script) {\n script = { script: c.script, characters: [] }\n charactersByScript.push(script);\n }\n script.characters.push(c);\n });\n\n charactersByScript.forEach(script => {\n script.characters.sort((a, b) => a.character.localeCompare(b.character, 'en', { caseFirst: 'upper' }));\n });\n\n return charactersByScript;\n}\n\n\nfunction isAccent(c, i) {\n return c.charCodeAt(i) > 0x0300 && c.charCodeAt(i) < 0x037E;\n}\n\nfunction characterCombinations(charactersByScript) {\n return charactersByScript.map(s =>\n ({\n ...s,\n characters: s.characters.filter(c => c.character.length > 1 && isAccent(c.character, 1))\n })\n ).filter(s => s.characters.length);\n}\n","export default class Settings {\n static get definitions() {\n return {\n fontFamily: {\n type: String,\n default: \"\",\n },\n fallbackFontFamily: {\n type: String,\n default: \"sans-serif\",\n },\n\n fontSize: {\n type: Number,\n default: 24,\n validate: (value, settings) => value >= settings.minFontSize && value <= settings.maxFontSize,\n },\n fontSizeUnit: {\n type: String,\n default: \"pt\",\n kind: \"select\",\n },\n fontSizeUnitOptions: {\n type: Array,\n default: () => [\"pt\", \"px\", \"em\", \"vw\", \"vh\"],\n },\n enableWaterfall: {\n type: Boolean,\n default: false,\n },\n waterfallSizes: {\n type: String,\n // default: '10,12,16,24,26,36,45',\n default: '10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,34,36,38,44,64',\n },\n\n defaultLineHeight: {\n type: Boolean,\n default: true,\n },\n lineHeight: {\n type: Number,\n default: 1,\n validate: (value, settings) => value >= settings.minLineHeight && value <= settings.maxLineHeight,\n },\n minLineHeight: {\n type: Number,\n default: 0.5,\n },\n maxLineHeight: {\n type: Number,\n default: 3,\n },\n lineHeightStep: {\n type: Number,\n default: 0.01,\n },\n lineHeightClickStep: {\n type: Number,\n default: 0.01,\n },\n\n defaultTracking: {\n type: Boolean,\n default: true,\n },\n tracking: {\n type: Number,\n default: 0,\n validate: (value, settings) => value >= settings.minTracking && value <= settings.maxTracking,\n },\n minTracking: {\n type: Number,\n default: -0.5,\n },\n maxTracking: {\n type: Number,\n default: 2,\n },\n trackingStep: {\n type: Number,\n default: 0.001,\n },\n trackingClickStep: {\n type: Number,\n default: 0.01,\n },\n\n textAlign: {\n type: String,\n default: \"left\",\n kind: \"select\",\n },\n textAlignOptions: {\n type: Array,\n default: () => [\"left\", \"center\", \"right\", \"justify\"],\n },\n\n textColor: {\n type: String,\n // default: \"#222\",\n default: \"#000\",\n },\n backgroundColor: {\n type: String,\n // default: \"#ddd\",\n default: \"#fff\",\n },\n\n textTransform: {\n type: String,\n default: \"none\",\n kind: \"select\",\n },\n textTransformOptions: {\n type: Array,\n default: () => [\"none\", \"uppercase\", \"capitalize\", \"lowercase\"],\n },\n wrapLines: {\n type: Boolean,\n default: false,\n },\n\n gposFeatures: {\n type: Object,\n default: () => ([]),\n },\n gsubFeatures: {\n type: Object,\n default: () => ([]),\n },\n variationAxes: {\n type: Object,\n default: () => ([]),\n },\n enableVariationAxis: {\n type: Object,\n default: () => ([]),\n },\n }\n }\n\n static getDefaults() {\n const data = {};\n Object.keys(this.definitions).forEach(key => {\n const definition = this.definitions[key];\n const dflt = definition.default;\n if (typeof dflt === \"function\" && definition.type !== Function) {\n data[key] = dflt();\n } else {\n data[key] = dflt;\n }\n });\n return data;\n }\n\n static getStyleFromSettings(settings) {\n return {\n fontSize: settings.fontSize,\n lineHeight: settings.lineHeight,\n textAlign: settings.textAlign,\n textTransform: settings.textTransform,\n color: settings.textColor,\n backgroundColor: settings.backgroundColor,\n fontFeatureSettings: settings.gsubFeatures.concat(settings.gposFeatures)\n .map(f => `'${f.tag}' ${f.value ? '1' : '0'} `)\n .join(', '),\n fontVariationSettings: settings.variationAxes\n .filter(a => a.enabled)\n .map(a => `'${a.tag}' ${a.value} `)\n .join(', ')\n || 'unset',\n };\n }\n\n static mergeStyleOntoSettings(settings, style) {\n settings.fontSize = parseFloat(style.fontSize);\n settings.lineHeight = parseFloat(settings.lineHeight);\n // settings.textAlign = style.textAlign\n // settings.textTransform = style.textTransform\n settings.textColor = style.color;\n settings.backgroundColor = style.backgroundColor;\n\n function mapCompoundProp(from, to) {\n const features = {};\n (style[from] || \"\").split(/, ?/g).filter(s => s).map(f => {\n let match = f.match(/[a-z]{4}/i);\n if (match) {\n const tag = match[0];\n match = f.match(/ \\d+/);\n const val = match ? parseInt(match[0]) : 1;\n features[tag] = val;\n }\n });\n settings[to].forEach((f, i) => {\n if (f.tag in features) {\n settings[to][i].value = features[f.tag];\n }\n });\n }\n mapCompoundProp(\"fontFeatureSettings\", \"gsubFeatures\");\n mapCompoundProp(\"fontFeatureSettings\", \"gposFeatures\");\n mapCompoundProp(\"fontVariationSettings\", \"variationAxes\");\n }\n}\n","import Vue from \"vue\";\nimport Settings from \"./models/Settings\";\n\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\nexport default {\n state: {\n animatedProperties: Object.keys(Settings.definitions),\n animatableProperties: Object.keys(Settings.definitions),\n animationKeyframes: [],\n activeKeyframeId: null,\n maxId: 0,\n },\n getters: {\n animatedProperties: state => state.animatedProperties,\n animatableProperties: state => state.animatableProperties,\n animationKeyframes: state => state.animationKeyframes,\n activeKeyframeId: state => state.activeKeyframeId,\n },\n mutations: {\n setAnimatedProperties(state, { properties }) {\n state.animatedProperties = properties;\n },\n importAnimationKeyframes(state, { keyframes }) {\n try {\n state.animationKeyframes = JSON.parse(keyframes);\n }\n catch (e) {\n console.log(e);\n }\n },\n addAnimationKeyframe(state) {\n const id = ++state.maxId;\n state.activeKeyframeId = id;\n state.animationKeyframes.push({ id });\n this.commit(\"updateKeyframe\");\n },\n removeAnimationKeyframe(state, { id }) {\n if (id == null)\n return;\n const index = state.animationKeyframes.findIndex(k => k.id === id);\n state.animationKeyframes.splice(index, 1);\n },\n activateKeyframe(state, { id }) {\n state.activeKeyframeId = id;\n const { snapshot } = state.animationKeyframes.find(k => k.id === id);\n this.commit(\"restoreSettings\", { snapshot });\n },\n updateKeyframe(state) {\n const id = state.activeKeyframeId;\n if (id == null)\n return;\n const snapshot = clone(this.state.settings);\n const frame = Settings.getStyleFromSettings(this.state.settings);\n const index = state.animationKeyframes.findIndex(k => k.id === id);\n Vue.set(state.animationKeyframes, index, { id, snapshot, frame });\n },\n finishAnimateSettings() {\n this.commit(\"animateSettings\", { settings: null });\n },\n },\n actions: {\n animateSettings(context, { style }) {\n const snapshot = clone(this.state.settings);\n Settings.mergeStyleOntoSettings(snapshot, style);\n\n const settings = clone(this.state.settings);\n Object.keys(snapshot).filter(k => context.state.animatedProperties.indexOf(k) > -1).forEach(k => {\n settings[k] = snapshot[k];\n })\n this.commit(\"animateSettings\", { settings });\n },\n },\n}\n","import Vue from \"vue\";\n\nconst scrolledParentSelector = \".app-content\";\nVue.prototype.$scrollToTop = () => scrolledParentSelector.scrollTo(0,0);\n\nexport default {\n state: {\n scrolledParentSelector,\n sticky: true,\n footerVisible: 0,\n footerSentinelVisibleRatio: 0,\n },\n getters: {\n scrolledParentSelector: state => state.scrolledParentSelector,\n },\n mutations: {\n sticky(state, { value }) {\n state.sticky = value;\n },\n\n updateFooter(state, { visible, ratio }) {\n state.footerVisible = visible;\n state.footerSentinelVisibleRatio = ratio;\n },\n scrollToTop(state) {\n this.commit(\"sticky\", { value: true });\n this.commit(\"updateFooter\", { visible: false, ratio: 0 });\n const el = document.querySelector(state.scrolledParentSelector);\n el.scrollTop = 0;\n },\n },\n\n actions: {\n },\n}\n","export default function configureMediator (store) {\n // listen to mutations\n // eslint-disable-next-line no-unused-vars\n store.subscribe(({ type, payload }, state) => {\n switch (type) {\n case 'updateSetting':\n if (state.animation.activeKeyframeId != null) {\n store.commit('updateKeyframe');\n }\n break;\n case 'selectFont':\n if (payload.font) {\n store.dispatch('updateFontCharacters', { font: payload.font });\n }\n }\n })\n}\n","import viewport from \"@/utils/viewport\";\n\n// https://github.com/jwilsson/CSS-Unit-Converter\n\nexport class UnitConverter {\n convert(options) {\n /* eslint-disable sort-keys */\n const formulas = {\n \"ch-cm\": options.value * 0.21087588,\n \"ch-em\": options.value * 0.5,\n \"ch-ex\": options.value / 0.9,\n \"ch-in\": options.value * 0.083022,\n \"ch-mm\": options.value * 2.1087588,\n \"ch-pc\": options.value * 0.5,\n \"ch-pt\": options.value * 5.977584,\n \"ch-%\": options.value * 50,\n \"ch-px\": options.value * options.base * 0.5,\n\n \"cm-ch\": options.value / 0.21087588,\n \"cm-em\": options.value / 0.42175176,\n \"cm-ex\": options.value / 0.189788292,\n \"cm-in\": options.value * 0.39,\n \"cm-mm\": options.value * 10,\n \"cm-pc\": options.value / 0.42175176,\n \"cm-pt\": options.value * 28.3464566929,\n \"cm-%\": (((options.value / options.base) * 100) / 2.54) * options.dpi,\n \"cm-px\": (options.value / 2.54) * options.dpi,\n\n \"em-ch\": options.value / 0.5,\n \"em-cm\": options.value * 0.42175176,\n \"em-ex\": options.value / 0.45,\n \"em-in\": options.value * 0.166044,\n \"em-mm\": options.value / 0.237106301584,\n \"em-pc\": options.value,\n \"em-pt\": options.value * 11.955168,\n \"em-%\": options.value * 100,\n \"em-px\": options.value * options.base,\n \"em-vh\": (100 * options.value * options.base) / viewport.height,\n \"em-vw\": (100 * options.value * options.base) / viewport.width,\n\n \"ex-ch\": options.value * 0.9,\n \"ex-cm\": options.value * 0.189788292,\n \"ex-em\": options.value * 0.45,\n \"ex-in\": options.value * 0.0747198,\n \"ex-mm\": options.value * 1.89788292,\n \"ex-pc\": options.value * 0.45,\n \"ex-pt\": options.value * 5.3798256,\n \"ex-%\": options.value * 45,\n \"ex-px\": options.value * options.base * 0.45,\n\n \"in-ch\": options.value / 0.083022,\n \"in-cm\": options.value * 2.54,\n \"in-em\": options.value / 0.166044,\n \"in-ex\": options.value / 0.0747198,\n \"in-mm\": options.value * 2.54 * 10,\n \"in-pc\": options.value / 0.166044,\n \"in-pt\": options.value / 0.014842519685,\n \"in-%\": (options.value / options.base) * 100 * options.dpi,\n \"in-px\": options.value * options.dpi,\n\n \"mm-ch\": options.value / 2.1087588,\n \"mm-cm\": options.value / 10,\n \"mm-em\": options.value * 0.237106301584,\n \"mm-ex\": options.value / 1.89788292,\n \"mm-in\": (options.value * 0.39) / 10,\n \"mm-pc\": options.value / 4.42175176,\n \"mm-pt\": options.value / 0.352777777778,\n \"mm-%\": ((((options.value / options.base) * 100) / 2.54) * options.dpi) / 10,\n \"mm-px\": ((options.value / 2.54) * options.dpi) / 10,\n\n \"pc-ch\": options.value / 0.5,\n \"pc-cm\": options.value * 0.42175176,\n \"pc-em\": options.value,\n \"pc-ex\": options.value / 0.45,\n \"pc-in\": options.value * 0.166044,\n \"pc-mm\": options.value * 4.42175176,\n \"pc-pt\": options.value / 0.0836458341698,\n \"pc-%\": options.value * 100,\n \"pc-px\": options.value * options.base,\n\n \"pt-ch\": options.value / 5.977584,\n \"pt-cm\": options.value / 28.3464566929,\n \"pt-em\": options.value / 11.955168,\n \"pt-ex\": options.value / 5.3798256,\n \"pt-in\": options.value * 0.014842519685,\n \"pt-mm\": options.value * 0.352777777778,\n \"pt-pc\": options.value * 0.0836458341698,\n \"pt-%\": (options.value / (options.base - 4)) * 100,\n \"pt-px\": (options.value * 96) / 72,\n \"pt-vh\": (100 * options.value * 96) / 72 / viewport.height,\n \"pt-vw\": (100 * options.value * 96) / 72 / viewport.width,\n\n \"%-ch\": options.value / 50,\n \"%-cm\": (((options.value * options.base) / 100) * 2.54) / options.dpi,\n \"%-em\": options.value / 100,\n \"%-ex\": options.value / 45,\n \"%-in\": (options.value * options.base) / 100 / options.dpi,\n \"%-mm\": ((((options.value * options.base) / 100) * 2.54) / options.dpi) * 10,\n \"%-pc\": options.value / 100,\n \"%-pt\": (options.value * (options.base - 4)) / 100,\n \"%-px\": (options.value * options.base) / 100,\n\n \"px-ch\": options.value / options.base / 0.5,\n \"px-cm\": (options.value * 2.54) / options.dpi,\n \"px-em\": options.value / options.base,\n \"px-ex\": options.value / options.base / 0.45,\n \"px-in\": options.value / options.dpi,\n \"px-mm\": ((options.value * 2.54) / options.dpi) * 10,\n \"px-pc\": options.value / options.base,\n \"px-pt\": (options.value * 72) / 96,\n \"px-%\": (options.value / options.base) * 100,\n \"px-vh\": (options.value / viewport.height) * 100,\n \"px-vw\": (options.value / viewport.width) * 100,\n\n \"vh-px\": (options.value * viewport.height) / 100,\n \"vh-pt\": ((72 / 96) * options.value * viewport.height) / 100,\n \"vh-em\": (options.value * viewport.height) / 100 / options.base,\n \"vh-vw\": (options.value * viewport.height) / viewport.width,\n\n \"vw-px\": (options.value * viewport.width) / 100,\n \"vw-pt\": ((72 / 96) * options.value * viewport.width) / 100,\n \"vw-em\": (options.value * viewport.width) / 100 / options.base,\n \"vw-vh\": (options.value * viewport.width) / viewport.height,\n };\n /* eslint-enable sort-keys */\n\n const units = `${options.from}-${options.to}`;\n const result = formulas[units];\n\n if (isNaN(result)) {\n return false;\n }\n\n return this.round(result, options.decimals) + options.to;\n }\n\n getUnits() {\n return [\"ch\", \"cm\", \"em\", \"ex\", \"in\", \"mm\", \"pc\", \"pt\", \"%\", \"px\"];\n }\n\n round(number, decimals) {\n return Math.round(number * 10 ** decimals) / 10 ** decimals;\n }\n}\n\nexport default function convertLength({ base = 16, decimals = 2, dpi = 72, from, to, value } = {}) {\n const converter = new UnitConverter();\n const result = converter.convert({ base, decimals, dpi, from, to, value });\n return result;\n}\n","import convertLength from \"@/models/convertLength\";\n\n//expects this to be the settings object\n\nexport default {\n minFontSize: function() {\n switch (this.fontSizeUnit) {\n case \"px\":\n return 4;\n default: {\n const value = convertLength({ from: \"px\", value: 4, to: this.fontSizeUnit });\n return parseFloat(value);\n }\n }\n },\n maxFontSize: function() {\n switch (this.fontSizeUnit) {\n case \"px\":\n return 1000;\n default: {\n const value = convertLength({ from: \"px\", value: 1000, to: this.fontSizeUnit });\n return parseFloat(value);\n }\n }\n },\n fontSizeStep: function() {\n switch (this.fontSizeUnit) {\n case \"pt\":\n return 0.5;\n case \"px\":\n return 1;\n case \"vw\":\n case \"vh\":\n case \"em\":\n return 0.01;\n default:\n return 0.01;\n }\n },\n fontSizeClickStep: function() {\n switch (this.fontSizeUnit) {\n case \"px\":\n case \"pt\":\n case \"vw\":\n case \"vh\":\n return 1;\n case \"em\":\n return 0.5;\n default:\n return 1;\n }\n },\n};\n","import Vue from \"vue\";\nimport Vuex from 'vuex';\nVue.use(Vuex);\n\nimport textModule from \"./store.text\";\nimport animationModule from \"./store.animation\";\nimport layoutModule from \"./store.layout\";\nimport configureMediator from \"./store-mediator\";\n\nimport Settings from \"@/models/Settings\";\nimport computedParams from \"@/models/computedParams\";\nimport convertLength from \"@/models/convertLength\";\nimport opentypeFeatureDefaults from \"@/models/opentypeFeatureDefaults\";\n\nconst store = new Vuex.Store({\n modules: {\n text: textModule,\n animation: animationModule,\n layout: layoutModule,\n },\n state: {\n fontLoading: true,\n selectedFont: { family: \"\" },\n selectedBoldFont: { family: \"\" },\n selectedItalicFont: { family: \"\" },\n selectedBoldItalicFont: { family: \"\" },\n selectedHeaderFont: { family: \"\" },\n settings: Settings.getDefaults(),\n animating: false,\n displayedSettings: {},\n settingsPanelVisible: true,\n contextualPanelVisible: false,\n },\n\n getters: {\n selectedFont: state => {\n return state.selectedFont;\n },\n selectedHeaderFont: state => {\n return state.selectedHeaderFont;\n },\n selectedBoldFont: state => {\n return state.selectedBoldFont;\n },\n selectedItalicFont: state => {\n return state.selectedItalicFont;\n },\n selectedBoldItalicFont: state => {\n return state.selectedBoldItalicFont;\n },\n settings: state => {\n return state.settings;\n },\n displayedSettings: state => {\n return state.animating ? state.displayedSettings : state.settings;\n },\n animating: state => state.animating,\n selectedLoclLanguage: state => {\n const features = state.settings.gsubFeatures;\n const matching = features.find(f => f.tag === \"locl\");\n if (matching && matching.value) {\n return matching.selectedLanguage.htmlTag;\n }\n return \"\";\n },\n fontFeatureSettings: state => {\n return Settings.getStyleFromSettings(state.settings).fontFeatureSettings;\n },\n fontVariationSettings: state => {\n return Settings.getStyleFromSettings(state.settings).fontVariationSettings;\n },\n },\n\n mutations: {\n toggleSettingsPanel(state, { value } = { value: null }) {\n const val = value != null ? value : !state.settingsPanelVisible;\n state.settingsPanelVisible = val;\n },\n toggleContextualPanel(state, { value } = { value: null }) {\n const val = value != null ? value : !state.contextualPanelVisible;\n state.contextualPanelVisible = val;\n },\n\n fontLoadStart(state) {\n state.fontLoading = true;\n },\n\n fontLoadEnd(state) {\n state.fontLoading = false;\n },\n\n selectFont(state, { font, boldFont, italicFont, boldItalicFont, headerFont }) {\n if (font) {\n state.selectedFont = font;\n this.commit(\"mapFontFeatureSettings\");\n this.commit(\"mapFontVariationSettings\");\n }\n if (boldFont) {\n state.selectedBoldFont = boldFont;\n }\n if (italicFont) {\n state.selectedItalicFont = italicFont;\n }\n if (boldItalicFont) {\n state.selectedBoldItalicFont = boldItalicFont;\n }\n if (headerFont) {\n state.selectedHeaderFont = headerFont;\n }\n },\n\n mapFontFeatureSettings(state) {\n const font = state.selectedFont;\n function mergeFeatures(key) {\n const from = font[key], to = state.settings[key];\n\n to.forEach(f => {\n f.active = false; // change to getter maybe\n });\n from.forEach(f => {\n const matching = to.find(ff => ff.tag === f.tag);\n if (!matching) {\n to.push({\n ...f,\n value: opentypeFeatureDefaults.indexOf(f.tag) > -1,\n active: true,\n });\n }\n else {\n matching.active = true;\n matching.uiName = f.uiName;\n if (f.tag === \"locl\") {\n matching.languages = f.languages;\n }\n }\n });\n }\n mergeFeatures(\"gsubFeatures\");\n mergeFeatures(\"gposFeatures\");\n },\n\n updateGposFeature(state, { tag, value }) {\n const features = state.settings.gposFeatures;\n const matching = features.find(f => f.tag === tag);\n if (matching) {\n matching.value = value;\n }\n this.commit(\"updateSetting\");\n },\n\n updateGsubFeature(state, { tag, value }) {\n const features = state.settings.gsubFeatures;\n const matching = features.find(f => f.tag === tag);\n if (matching) {\n matching.value = value;\n }\n this.commit(\"updateSetting\");\n },\n\n updateLoclFeature(state, { selectedLanguage }) {\n const features = state.settings.gsubFeatures;\n const matching = features.find(f => f.tag === \"locl\");\n if (matching) {\n matching.selectedLanguage = selectedLanguage;\n }\n this.commit(\"updateSetting\");\n },\n\n mapFontVariationSettings(state) {\n const font = state.selectedFont;\n state.settings.variationAxes = font.variationAxes.map(a => {\n const matching = state.settings.variationAxes.find(aa => aa.tag === a.tag);\n return {\n ...a,\n value: matching ? matching.value : a.defaultValue,\n enabled: matching ? matching.enabled : true,\n displayName: a.name.en,\n };\n });\n },\n\n updateVariationAxis(state, { tag, value, enabled }) {\n const axis = state.settings.variationAxes.find(a => a.tag === tag);\n if (axis) {\n if (value != null) {\n axis.value = value;\n }\n if (enabled != null) {\n axis.enabled = enabled;\n }\n }\n this.commit(\"updateSetting\");\n },\n\n resetSettings(state) {\n //todo add font-specific settings\n const settings = Settings.getDefaults();\n Object.keys(settings).forEach(key => state.settings[key] = settings[key]);\n this.commit(\"computeParams\");\n this.commit(\"updateSetting\");\n },\n\n computeParams(state) {\n Object.keys(computedParams).forEach(key => {\n const paramFunction = computedParams[key];\n const newValue = paramFunction.call(state.settings);\n if (newValue !== state.settings[key]) {\n state.settings[key] = newValue;\n }\n });\n },\n\n updateSettings(state, options) {\n Object.keys(options).forEach(key => {\n const settings = state.settings;\n const definition = Settings.definitions[key];\n const value = options[key];\n if (true || !definition.validate || definition.validate(value, settings)) {\n if (key == \"fontSizeUnit\") {\n this.commit(\"convertFontSize\", { newUnit: value });\n }\n state.settings[key] = value;\n this.commit(\"updateSetting\");\n }\n else {\n // eslint-disable-next-line no-console\n console.log(`${value} is invalid for ${key}`)\n }\n });\n this.commit(\"computeParams\");\n },\n\n restoreSettings(state, { snapshot }) {\n state.settings = snapshot;\n this.commit(\"mapFontFeatureSettings\");\n this.commit(\"mapFontVariationSettings\");\n },\n\n animateSettings(state, { settings }) {\n if (settings) {\n state.animating = true;\n Object.keys(settings).forEach(k => {\n Vue.set(state.displayedSettings, k, settings[k]);\n });\n }\n else {\n state.animating = false;\n }\n },\n\n updateSetting() {\n // signalize update to subscriber\n },\n\n convertFontSize(state, { newUnit }) {\n const settings = state.settings;\n let decimals = String(settings.fontSizeStep).replace(/\\d+\\.?/, \"\").length;\n let newSize = convertLength({\n value: settings.fontSize,\n from: settings.fontSizeUnit,\n to: newUnit,\n decimals,\n });\n settings.fontSize = parseFloat(newSize);\n },\n },\n\n\n actions: {\n fontLoadStart({ commit }) {\n commit(\"fontLoadStart\");\n },\n\n fontLoadEnd({ commit }) {\n commit(\"fontLoadEnd\");\n },\n },\n})\n\nconfigureMediator(store);\n\nexport default store;\n","import Vue from \"vue\";\n\nVue.config.productionTip = false;\n\nimport Vuebar from \"vuebar\";\nVue.use(Vuebar);\n\nimport VueObserveVisibility from 'vue-observe-visibility'\nVue.use(VueObserveVisibility);\n\nimport VueWorker from 'vue-worker';\nVue.use(VueWorker);\n\nimport \"@/scss/styles.scss\";\nimport App from \"@/App.vue\";\n\nimport router from \"@/router\";\nimport store from '@/store';\n\nimport 'keen-ui/src/bootstrap';\n\nnew Vue({\n router,\n store,\n render: h => h(App),\n}).$mount(\"#app\");\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/vue-svg-inline-loader/dist/index.min.js!./App.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=style&index=0&id=a9235368&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Pinnable.vue?vue&type=style&index=0&id=a9235368&lang=scss&scoped=true&\"","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"2a3936b6d597c3ad52f0.worker.js\");\n};","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=style&index=0&id=76dead88&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningEditor.vue?vue&type=style&index=0&id=76dead88&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteLogo.vue?vue&type=style&index=0&id=33837896&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteLogo.vue?vue&type=style&index=0&id=33837896&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=style&index=0&id=00f8f142&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNavLink.vue?vue&type=style&index=0&id=00f8f142&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=style&index=0&id=6cd5e034&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageList.vue?vue&type=style&index=0&id=6cd5e034&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=style&index=0&id=1d84f2a8&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SiteHeader.vue?vue&type=style&index=0&id=1d84f2a8&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=style&index=0&id=5d55f768&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./LanguageNav.vue?vue&type=style&index=0&id=5d55f768&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSample.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSelect.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiSelect.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=style&index=0&id=abb3f344&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontSampleNav.vue?vue&type=style&index=0&id=abb3f344&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=style&index=0&id=257cc006&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./GotchaHeader.vue?vue&type=style&index=0&id=257cc006&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=style&index=0&id=6e453623&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FontTester.vue?vue&type=style&index=0&id=6e453623&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=style&index=0&id=4d5c14db&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiNumber.vue?vue&type=style&index=0&id=4d5c14db&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=style&index=0&id=0dcbafa4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./AnimationEditor.vue?vue&type=style&index=0&id=0dcbafa4&lang=scss&scoped=true&\"","module.exports = [\n { name: \"Abaza\", opentypeTag: \"ABA \", htmlTag: \"abq\" },\n { name: \"Abkhazian\", opentypeTag: \"ABK \", htmlTag: \"ab\" },\n { name: \"Acholi\", opentypeTag: \"ACH \", htmlTag: \"ach\" },\n { name: \"Achi\", opentypeTag: \"ACR \", htmlTag: \"acr\" },\n { name: \"Adyghe\", opentypeTag: \"ADY \", htmlTag: \"ady\" },\n { name: \"Afrikaans\", opentypeTag: \"AFK \", htmlTag: \"af\" },\n { name: \"Afar\", opentypeTag: \"AFR \", htmlTag: \"aa\" },\n { name: \"Agaw\", opentypeTag: \"AGW \", htmlTag: \"ahg\" },\n { name: \"Aiton\", opentypeTag: \"AIO \", htmlTag: \"aio\" },\n { name: \"Akan\", opentypeTag: \"AKA \", htmlTag: \"ak\" },\n { name: \"Alsatian\", opentypeTag: \"ALS \", htmlTag: \"gsw\" },\n { name: \"Altai\", opentypeTag: \"ALT \", htmlTag: \"atv\" },\n { name: \"Amharic\", opentypeTag: \"AMH \", htmlTag: \"am\" },\n { name: \"Anglo-Saxon\", opentypeTag: \"ANG \", htmlTag: \"ang\" },\n { name: \"Phonetic transcription—Americanist conventions\", opentypeTag: \"APPH\" },\n { name: \"Arabic\", opentypeTag: \"ARA \", htmlTag: \"ar\" },\n { name: \"Aragonese\", opentypeTag: \"ARG \", htmlTag: \"an\" },\n { name: \"Aari\", opentypeTag: \"ARI \", htmlTag: \"aiw\" },\n { name: \"Rakhine\", opentypeTag: \"ARK \", htmlTag: \"mhv\" },\n { name: \"Assamese\", opentypeTag: \"ASM \", htmlTag: \"as\" },\n { name: \"Asturian\", opentypeTag: \"AST \", htmlTag: \"ast\" },\n { name: \"Athapaskan\", opentypeTag: \"ATH \", htmlTag: \"apk\" },\n { name: \"Avar\", opentypeTag: \"AVR \", htmlTag: \"av\" },\n { name: \"Awadhi\", opentypeTag: \"AWA \", htmlTag: \"awa\" },\n { name: \"Aymara\", opentypeTag: \"AYM \", htmlTag: \"ay\" },\n { name: \"Torki\", opentypeTag: \"AZB \", htmlTag: \"azb\" },\n { name: \"Azerbaijani\", opentypeTag: \"AZE \", htmlTag: \"az\" },\n { name: \"Badaga\", opentypeTag: \"BAD \", htmlTag: \"bfq\" },\n { name: \"Banda\", opentypeTag: \"BAD0\", htmlTag: \"bad\" },\n { name: \"Baghelkhandi\", opentypeTag: \"BAG \", htmlTag: \"bfy\" },\n { name: \"Balkar\", opentypeTag: \"BAL \", htmlTag: \"krc\" },\n { name: \"Balinese\", opentypeTag: \"BAN \", htmlTag: \"ban\" },\n { name: \"Bavarian\", opentypeTag: \"BAR \", htmlTag: \"bar\" },\n { name: \"Baulé\", opentypeTag: \"BAU \", htmlTag: \"bci\" },\n { name: \"Batak Toba\", opentypeTag: \"BBC \", htmlTag: \"bbc\" },\n { name: \"Berber\", opentypeTag: \"BBR \", htmlTag: \"ber\" },\n { name: \"Bench\", opentypeTag: \"BCH \", htmlTag: \"bcq\" },\n { name: \"Bible Cree\", opentypeTag: \"BCR \" },\n { name: \"Bandjalang\", opentypeTag: \"BDY \", htmlTag: \"bdy\" },\n { name: \"Belarussian\", opentypeTag: \"BEL \", htmlTag: \"be\" },\n { name: \"Bemba\", opentypeTag: \"BEM \", htmlTag: \"bem\" },\n { name: \"Bengali\", opentypeTag: \"BEN \", htmlTag: \"bn\" },\n { name: \"Haryanvi\", opentypeTag: \"BGC \", htmlTag: \"bgc\" },\n { name: \"Bagri\", opentypeTag: \"BGQ \", htmlTag: \"bgq\" },\n { name: \"Bulgarian\", opentypeTag: \"BGR \", htmlTag: \"bg\" },\n { name: \"Bhili\", opentypeTag: \"BHI \", htmlTag: \"bhi\" },\n { name: \"Bhojpuri\", opentypeTag: \"BHO \", htmlTag: \"bho\" },\n { name: \"Bikol\", opentypeTag: \"BIK \", htmlTag: \"bik\" },\n { name: \"Bilen\", opentypeTag: \"BIL \", htmlTag: \"byn\" },\n { name: \"Bislama\", opentypeTag: \"BIS \", htmlTag: \"bi\" },\n { name: \"Kanauji\", opentypeTag: \"BJJ \", htmlTag: \"bjj\" },\n { name: \"Blackfoot\", opentypeTag: \"BKF \", htmlTag: \"bla\" },\n { name: \"Baluchi\", opentypeTag: \"BLI \", htmlTag: \"bal\" },\n { name: \"Pa’o Karen\", opentypeTag: \"BLK \", htmlTag: \"blk\" },\n { name: \"Balante\", opentypeTag: \"BLN \", htmlTag: \"bjt\" },\n { name: \"Balti\", opentypeTag: \"BLT \", htmlTag: \"bft\" },\n { name: \"Bambara (Bamanankan)\", opentypeTag: \"BMB \", htmlTag: \"bm\" },\n { name: \"Bamileke\", opentypeTag: \"BML \" },\n { name: \"Bosnian\", opentypeTag: \"BOS \", htmlTag: \"bs\" },\n { name: \"Bishnupriya Manipuri\", opentypeTag: \"BPY \", htmlTag: \"bpy\" },\n { name: \"Breton\", opentypeTag: \"BRE \", htmlTag: \"br\" },\n { name: \"Brahui\", opentypeTag: \"BRH \", htmlTag: \"brh\" },\n { name: \"Braj Bhasha\", opentypeTag: \"BRI \", htmlTag: \"bra\" },\n { name: \"Burmese\", opentypeTag: \"BRM \", htmlTag: \"my\" },\n { name: \"Bodo\", opentypeTag: \"BRX \", htmlTag: \"brx\" },\n { name: \"Bashkir\", opentypeTag: \"BSH \", htmlTag: \"ba\" },\n { name: \"Burushaski\", opentypeTag: \"BSK \", htmlTag: \"bsk\" },\n { name: \"Beti\", opentypeTag: \"BTI \", htmlTag: \"btb\" },\n { name: \"Batak Simalungun\", opentypeTag: \"BTS \", htmlTag: \"bts\" },\n { name: \"Bugis\", opentypeTag: \"BUG \", htmlTag: \"bug\" },\n { name: \"Medumba\", opentypeTag: \"BYV \", htmlTag: \"byv\" },\n { name: \"Kaqchikel\", opentypeTag: \"CAK \", htmlTag: \"cak\" },\n { name: \"Catalan\", opentypeTag: \"CAT \", htmlTag: \"ca\" },\n { name: \"Zamboanga Chavacano\", opentypeTag: \"CBK \", htmlTag: \"cbk\" },\n { name: \"Chinantec\", opentypeTag: \"CCHN\", htmlTag: \"cco\" },\n { name: \"Cebuano\", opentypeTag: \"CEB \", htmlTag: \"ceb\" },\n { name: \"Chechen\", opentypeTag: \"CHE \", htmlTag: \"ce\" },\n { name: \"Chaha Gurage\", opentypeTag: \"CHG \", htmlTag: \"sgw\" },\n { name: \"Chattisgarhi\", opentypeTag: \"CHH \", htmlTag: \"hne\" },\n { name: \"Chichewa (Chewa, Nyanja)\", opentypeTag: \"CHI \", htmlTag: \"ny\" },\n { name: \"Chukchi\", opentypeTag: \"CHK \", htmlTag: \"ckt\" },\n { name: \"Chuukese\", opentypeTag: \"CHK0\", htmlTag: \"chk\" },\n { name: \"Choctaw\", opentypeTag: \"CHO \", htmlTag: \"cho\" },\n { name: \"Chipewyan\", opentypeTag: \"CHP \", htmlTag: \"chp\" },\n { name: \"Cherokee\", opentypeTag: \"CHR \", htmlTag: \"chr\" },\n { name: \"Chamorro\", opentypeTag: \"CHA \", htmlTag: \"ch\" },\n { name: \"Chuvash\", opentypeTag: \"CHU \", htmlTag: \"cv\" },\n { name: \"Cheyenne\", opentypeTag: \"CHY \", htmlTag: \"chy\" },\n { name: \"Chiga\", opentypeTag: \"CGG \", htmlTag: \"cgg\" },\n { name: \"Western Cham\", opentypeTag: \"CJA \", htmlTag: \"cja\" },\n { name: \"Eastern Cham\", opentypeTag: \"CJM \", htmlTag: \"cjm\" },\n { name: \"Comorian\", opentypeTag: \"CMR \", htmlTag: \"swb\" },\n { name: \"Coptic\", opentypeTag: \"COP \", htmlTag: \"cop\" },\n { name: \"Cornish\", opentypeTag: \"COR \", htmlTag: \"kw\" },\n { name: \"Corsican\", opentypeTag: \"COS \", htmlTag: \"co\" },\n { name: \"Creoles\", opentypeTag: \"CPP \", htmlTag: \"crp\" },\n { name: \"Cree\", opentypeTag: \"CRE \", htmlTag: \"cr\" },\n { name: \"Carrier\", opentypeTag: \"CRR \", htmlTag: \"crx\" },\n { name: \"Crimean Tatar\", opentypeTag: \"CRT \", htmlTag: \"crh\" },\n { name: \"Kashubian\", opentypeTag: \"CSB \", htmlTag: \"csb\" },\n { name: \"Church Slavonic\", opentypeTag: \"CSL \", htmlTag: \"cu\" },\n { name: \"Czech\", opentypeTag: \"CSY \", htmlTag: \"cs\" },\n { name: \"Chittagonian\", opentypeTag: \"CTG \", htmlTag: \"ctg\" },\n { name: \"San Blas Kuna\", opentypeTag: \"CUK \", htmlTag: \"cuk\" },\n { name: \"Danish\", opentypeTag: \"DAN \", htmlTag: \"da\" },\n { name: \"Dargwa\", opentypeTag: \"DAR \", htmlTag: \"dar\" },\n { name: \"Dayi\", opentypeTag: \"DAX \", htmlTag: \"dax\" },\n { name: \"Woods Cree\", opentypeTag: \"DCR \", htmlTag: \"cwd\" },\n { name: \"German\", opentypeTag: \"DEU \", htmlTag: \"de\" },\n { name: \"Dogri\", opentypeTag: \"DGO \", htmlTag: \"dgo\" },\n { name: \"Dogri\", opentypeTag: \"DGR \", htmlTag: \"doi\" },\n { name: \"Dhangu\", opentypeTag: \"DHG \", htmlTag: \"dhg\" },\n { name: \"Divehi (Dhivehi, Maldivian)\", opentypeTag: \"DHV (deprecated)\", htmlTag: \"dv\" },\n { name: \"Dimli\", opentypeTag: \"DIQ \", htmlTag: \"diq\" },\n { name: \"Divehi (Dhivehi, Maldivian)\", opentypeTag: \"DIV \", htmlTag: \"dv\" },\n { name: \"Zarma\", opentypeTag: \"DJR \", htmlTag: \"dje\" },\n { name: \"Djambarrpuyngu\", opentypeTag: \"DJR0\", htmlTag: \"djr\" },\n { name: \"Dangme\", opentypeTag: \"DNG \", htmlTag: \"ada\" },\n { name: \"Dan\", opentypeTag: \"DNJ \", htmlTag: \"dnj\" },\n { name: \"Dinka\", opentypeTag: \"DNK \", htmlTag: \"din\" },\n { name: \"Dari\", opentypeTag: \"DRI \", htmlTag: \"prs\" },\n { name: \"Dhuwal\", opentypeTag: \"DUJ \", htmlTag: \"duj\" },\n { name: \"Dungan\", opentypeTag: \"DUN \", htmlTag: \"dng\" },\n { name: \"Dzongkha\", opentypeTag: \"DZN \", htmlTag: \"dz\" },\n { name: \"Ebira\", opentypeTag: \"EBI \", htmlTag: \"igb\" },\n { name: \"Eastern Cree\", opentypeTag: \"ECR \", htmlTag: \"crj\" },\n { name: \"Edo\", opentypeTag: \"EDO \", htmlTag: \"bin\" },\n { name: \"Efik\", opentypeTag: \"EFI \", htmlTag: \"efi\" },\n { name: \"Greek\", opentypeTag: \"ELL \", htmlTag: \"el\" },\n { name: \"Eastern Maninkakan\", opentypeTag: \"EMK \", htmlTag: \"emk\" },\n { name: \"English\", opentypeTag: \"ENG \", htmlTag: \"en\" },\n { name: \"Erzya\", opentypeTag: \"ERZ \", htmlTag: \"myv\" },\n { name: \"Spanish\", opentypeTag: \"ESP \", htmlTag: \"es\" },\n { name: \"Central Yupik\", opentypeTag: \"ESU \", htmlTag: \"esu\" },\n { name: \"Estonian\", opentypeTag: \"ETI \", htmlTag: \"et\" },\n { name: \"Basque\", opentypeTag: \"EUQ \", htmlTag: \"eu\" },\n { name: \"Evenki\", opentypeTag: \"EVK \", htmlTag: \"evn\" },\n { name: \"Even\", opentypeTag: \"EVN \", htmlTag: \"eve\" },\n { name: \"Ewe\", opentypeTag: \"EWE \", htmlTag: \"ee\" },\n { name: \"French Antillean\", opentypeTag: \"FAN \", htmlTag: \"acf\" },\n { name: \"Fang\", opentypeTag: \"FAN0\", htmlTag: \"fan\" },\n { name: \"Persian\", opentypeTag: \"FAR \", htmlTag: \"fa\" },\n { name: \"Fanti\", opentypeTag: \"FAT \", htmlTag: \"fat\" },\n { name: \"Finnish\", opentypeTag: \"FIN \", htmlTag: \"fi\" },\n { name: \"Fijian\", opentypeTag: \"FJI \", htmlTag: \"fj\" },\n { name: \"Dutch (Flemish)\", opentypeTag: \"FLE \", htmlTag: \"vls\" },\n { name: \"Fe’fe’\", opentypeTag: \"FMP \", htmlTag: \"fmp\" },\n { name: \"Forest Nenets\", opentypeTag: \"FNE \", htmlTag: \"enf\" },\n { name: \"Fon\", opentypeTag: \"FON \", htmlTag: \"fon\" },\n { name: \"Faroese\", opentypeTag: \"FOS \", htmlTag: \"fo\" },\n { name: \"French\", opentypeTag: \"FRA \", htmlTag: \"fr\" },\n { name: \"Cajun French\", opentypeTag: \"FRC \", htmlTag: \"frc\" },\n { name: \"Frisian\", opentypeTag: \"FRI \", htmlTag: \"fy\" },\n { name: \"Friulian\", opentypeTag: \"FRL \", htmlTag: \"fur\" },\n { name: \"Arpitan\", opentypeTag: \"FRP \", htmlTag: \"frp\" },\n { name: \"Futa\", opentypeTag: \"FTA \", htmlTag: \"fuf\" },\n { name: \"Fulah\", opentypeTag: \"FUL \", htmlTag: \"ff\" },\n { name: \"Nigerian Fulfulde\", opentypeTag: \"FUV \", htmlTag: \"fuv\" },\n { name: \"Ga\", opentypeTag: \"GAD \", htmlTag: \"gaa\" },\n { name: \"Scottish Gaelic (Gaelic)\", opentypeTag: \"GAE \", htmlTag: \"gd\" },\n { name: \"Gagauz\", opentypeTag: \"GAG \", htmlTag: \"gag\" },\n { name: \"Galician\", opentypeTag: \"GAL \", htmlTag: \"gl\" },\n { name: \"Garshuni\", opentypeTag: \"GAR \" },\n { name: \"Garhwali\", opentypeTag: \"GAW \", htmlTag: \"gbm\" },\n { name: \"Geez\", opentypeTag: \"GEZ \", htmlTag: \"gez\" },\n { name: \"Githabul\", opentypeTag: \"GIH \", htmlTag: \"gih\" },\n { name: \"Gilyak\", opentypeTag: \"GIL \", htmlTag: \"niv\" },\n { name: \"Kiribati (Gilbertese)\", opentypeTag: \"GIL0\", htmlTag: \"gil\" },\n { name: \"Kpelle (Guinea)\", opentypeTag: \"GKP \", htmlTag: \"gkp\" },\n { name: \"Gilaki\", opentypeTag: \"GLK \", htmlTag: \"glk\" },\n { name: \"Gumuz\", opentypeTag: \"GMZ \", htmlTag: \"guk\" },\n { name: \"Gumatj\", opentypeTag: \"GNN \", htmlTag: \"gnn\" },\n { name: \"Gogo\", opentypeTag: \"GOG \", htmlTag: \"gog\" },\n { name: \"Gondi\", opentypeTag: \"GON \", htmlTag: \"gon\" },\n { name: \"Greenlandic\", opentypeTag: \"GRN \", htmlTag: \"kl\" },\n { name: \"Garo\", opentypeTag: \"GRO \", htmlTag: \"grt\" },\n { name: \"Guarani\", opentypeTag: \"GUA \", htmlTag: \"gn\" },\n { name: \"Wayuu\", opentypeTag: \"GUC \", htmlTag: \"guc\" },\n { name: \"Gupapuyngu\", opentypeTag: \"GUF \", htmlTag: \"guf\" },\n { name: \"Gujarati\", opentypeTag: \"GUJ \", htmlTag: \"gu\" },\n { name: \"Gusii\", opentypeTag: \"GUZ \", htmlTag: \"guz\" },\n { name: \"Haitian (Haitian Creole)\", opentypeTag: \"HAI \", htmlTag: \"ht\" },\n { name: \"Halam (Falam Chin)\", opentypeTag: \"HAL \", htmlTag: \"flm\" },\n { name: \"Harauti\", opentypeTag: \"HAR \", htmlTag: \"hoj\" },\n { name: \"Hausa\", opentypeTag: \"HAU \", htmlTag: \"ha\" },\n { name: \"Hawaiian\", opentypeTag: \"HAW \", htmlTag: \"haw\" },\n { name: \"Haya\", opentypeTag: \"HAY \", htmlTag: \"hay\" },\n { name: \"Hazaragi\", opentypeTag: \"HAZ \", htmlTag: \"haz\" },\n { name: \"Hammer-Banna\", opentypeTag: \"HBN \", htmlTag: \"amf\" },\n { name: \"Herero\", opentypeTag: \"HER \", htmlTag: \"hz\" },\n { name: \"Hiligaynon\", opentypeTag: \"HIL \", htmlTag: \"hil\" },\n { name: \"Hindi\", opentypeTag: \"HIN \", htmlTag: \"hi\" },\n { name: \"High Mari\", opentypeTag: \"HMA \", htmlTag: \"mrj\" },\n { name: \"Hmong\", opentypeTag: \"HMN \", htmlTag: \"hmn\" },\n { name: \"Hiri Motu\", opentypeTag: \"HMO \", htmlTag: \"ho\" },\n { name: \"Hindko\", opentypeTag: \"HND \", htmlTag: \"hno\" },\n { name: \"Ho\", opentypeTag: \"HO\", htmlTag: \"hoc\" },\n { name: \"Harari\", opentypeTag: \"HRI \", htmlTag: \"har\" },\n { name: \"Croatian\", opentypeTag: \"HRV \", htmlTag: \"hr\" },\n { name: \"Hungarian\", opentypeTag: \"HUN \", htmlTag: \"hu\" },\n { name: \"Armenian\", opentypeTag: \"HYE \", htmlTag: \"hy\" },\n { name: \"Armenian East\", opentypeTag: \"HYE0\", htmlTag: \"hy\" },\n { name: \"Iban\", opentypeTag: \"IBA \", htmlTag: \"iba\" },\n { name: \"Ibibio\", opentypeTag: \"IBB \", htmlTag: \"ibb\" },\n { name: \"Igbo\", opentypeTag: \"IBO \", htmlTag: \"ig\" },\n { name: \"Ijo languages\", opentypeTag: \"IJO \", htmlTag: \"ijc\" },\n { name: \"Ido\", opentypeTag: \"IDO \", htmlTag: \"io\" },\n { name: \"Interlingue\", opentypeTag: \"ILE \", htmlTag: \"ie\" },\n { name: \"Ilokano\", opentypeTag: \"ILO \", htmlTag: \"ilo\" },\n { name: \"Interlingua\", opentypeTag: \"INA \", htmlTag: \"ia\" },\n { name: \"Indonesian\", opentypeTag: \"IND \", htmlTag: \"id\" },\n { name: \"Ingush\", opentypeTag: \"ING \", htmlTag: \"inh\" },\n { name: \"Inuktitut\", opentypeTag: \"INU \", htmlTag: \"iu\" },\n { name: \"Inupiat\", opentypeTag: \"IPK \", htmlTag: \"ik\" },\n { name: \"Phonetic transcription—IPA conventions\", opentypeTag: \"IPPH\" },\n { name: \"Irish\", opentypeTag: \"IRI \", htmlTag: \"ga\" },\n { name: \"Irish Traditional\", opentypeTag: \"IRT \", htmlTag: \"ga\" },\n { name: \"Icelandic\", opentypeTag: \"ISL \", htmlTag: \"is\" },\n { name: \"Inari Sami\", opentypeTag: \"ISM \", htmlTag: \"smn\" },\n { name: \"Italian\", opentypeTag: \"ITA \", htmlTag: \"it\" },\n { name: \"Hebrew\", opentypeTag: \"IWR \", htmlTag: \"he\" },\n { name: \"Jamaican Creole\", opentypeTag: \"JAM \", htmlTag: \"jam\" },\n { name: \"Japanese\", opentypeTag: \"JAN \", htmlTag: \"ja\" },\n { name: \"Javanese\", opentypeTag: \"JAV \", htmlTag: \"jv\" },\n { name: \"Lojban\", opentypeTag: \"JBO \", htmlTag: \"jbo\" },\n { name: \"Krymchak\", opentypeTag: \"JCT \", htmlTag: \"jct\" },\n { name: \"Yiddish\", opentypeTag: \"JII \", htmlTag: \"yi\" },\n { name: \"Ladino\", opentypeTag: \"JUD \", htmlTag: \"lad\" },\n { name: \"Jula\", opentypeTag: \"JUL \", htmlTag: \"dyu\" },\n { name: \"Kabardian\", opentypeTag: \"KAB \", htmlTag: \"kbd\" },\n { name: \"Kabyle\", opentypeTag: \"KAB0\", htmlTag: \"kab\" },\n { name: \"Kachchi\", opentypeTag: \"KAC \", htmlTag: \"kfr\" },\n { name: \"Kalenjin\", opentypeTag: \"KAL \", htmlTag: \"kln\" },\n { name: \"Kannada\", opentypeTag: \"KAN \", htmlTag: \"kn\" },\n { name: \"Karachay\", opentypeTag: \"KAR \", htmlTag: \"krc\" },\n { name: \"Georgian\", opentypeTag: \"KAT \", htmlTag: \"ka\" },\n { name: \"Kazakh\", opentypeTag: \"KAZ \", htmlTag: \"kk\" },\n { name: \"Makonde\", opentypeTag: \"KDE \", htmlTag: \"kde\" },\n { name: \"Kabuverdianu (Crioulo)\", opentypeTag: \"KEA \", htmlTag: \"kea\" },\n { name: \"Kebena\", opentypeTag: \"KEB \", htmlTag: \"ktb\" },\n { name: \"Kekchi\", opentypeTag: \"KEK \", htmlTag: \"kek\" },\n { name: \"Khutsuri Georgian\", opentypeTag: \"KGE \", htmlTag: \"ka\" },\n { name: \"Khakass\", opentypeTag: \"KHA \", htmlTag: \"kjh\" },\n { name: \"Khanty-Kazim\", opentypeTag: \"KHK \", htmlTag: \"kca\" },\n { name: \"Khmer\", opentypeTag: \"KHM \", htmlTag: \"km\" },\n { name: \"Khanty-Shurishkar\", opentypeTag: \"KHS \", htmlTag: \"kca\" },\n { name: \"Khamti Shan\", opentypeTag: \"KHT \", htmlTag: \"kht\" },\n { name: \"Khanty-Vakhi\", opentypeTag: \"KHV \", htmlTag: \"kca\" },\n { name: \"Khowar\", opentypeTag: \"KHW \", htmlTag: \"khw\" },\n { name: \"Kikuyu (Gikuyu)\", opentypeTag: \"KIK \", htmlTag: \"ki\" },\n { name: \"Kirghiz (Kyrgyz)\", opentypeTag: \"KIR \", htmlTag: \"ky\" },\n { name: \"Kisii\", opentypeTag: \"KIS \", htmlTag: \"kqs\" },\n { name: \"Kirmanjki\", opentypeTag: \"KIU \", htmlTag: \"kiu\" },\n { name: \"Southern Kiwai\", opentypeTag: \"KJD \", htmlTag: \"kjd\" },\n { name: \"Eastern Pwo Karen\", opentypeTag: \"KJP \", htmlTag: \"kjp\" },\n { name: \"Bumthangkha\", opentypeTag: \"KJZ \", htmlTag: \"kjz\" },\n { name: \"Kokni\", opentypeTag: \"KKN \", htmlTag: \"kex\" },\n { name: \"Kalmyk\", opentypeTag: \"KLM \", htmlTag: \"xal\" },\n { name: \"Kamba\", opentypeTag: \"KMB \", htmlTag: \"kam\" },\n { name: \"Kumaoni\", opentypeTag: \"KMN \", htmlTag: \"kfy\" },\n { name: \"Komo\", opentypeTag: \"KMO \", htmlTag: \"kmw\" },\n { name: \"Komso\", opentypeTag: \"KMS \", htmlTag: \"kxc\" },\n { name: \"Khorasani Turkic\", opentypeTag: \"KMZ \", htmlTag: \"kmz\" },\n { name: \"Kanuri\", opentypeTag: \"KNR \", htmlTag: \"kr\" },\n { name: \"Kodagu\", opentypeTag: \"KOD \", htmlTag: \"kfa\" },\n { name: \"Korean Old Hangul\", opentypeTag: \"KOH \", htmlTag: \"okm\" },\n { name: \"Konkani\", opentypeTag: \"KOK \", htmlTag: \"kok\" },\n { name: \"Kikongo\", opentypeTag: \"KON \", htmlTag: \"ktu\" },\n { name: \"Komi\", opentypeTag: \"KOM \", htmlTag: \"kv\" },\n { name: \"Kongo\", opentypeTag: \"KON0\", htmlTag: \"kg\" },\n { name: \"Komi-Permyak\", opentypeTag: \"KOP \", htmlTag: \"koi\" },\n { name: \"Korean\", opentypeTag: \"KOR \", htmlTag: \"ko\" },\n { name: \"Kosraean\", opentypeTag: \"KOS \", htmlTag: \"kos\" },\n { name: \"Komi-Zyrian\", opentypeTag: \"KOZ \", htmlTag: \"kpv\" },\n { name: \"Kpelle\", opentypeTag: \"KPL \", htmlTag: \"kpe\" },\n { name: \"Krio\", opentypeTag: \"KRI \", htmlTag: \"kri\" },\n { name: \"Karakalpak\", opentypeTag: \"KRK \", htmlTag: \"kaa\" },\n { name: \"Karelian\", opentypeTag: \"KRL \", htmlTag: \"krl\" },\n { name: \"Karaim\", opentypeTag: \"KRM \", htmlTag: \"kdr\" },\n { name: \"Karen\", opentypeTag: \"KRN \", htmlTag: \"kar\" },\n { name: \"Koorete\", opentypeTag: \"KRT \", htmlTag: \"kqy\" },\n { name: \"Kashmiri\", opentypeTag: \"KSH \", htmlTag: \"ks\" },\n { name: \"Ripuarian\", opentypeTag: \"KSH0\", htmlTag: \"ksh\" },\n { name: \"Khasi\", opentypeTag: \"KSI \", htmlTag: \"kha\" },\n { name: \"Kildin Sami\", opentypeTag: \"KSM \", htmlTag: \"sjd\" },\n { name: \"S’gaw Karen\", opentypeTag: \"KSW \", htmlTag: \"ksw\" },\n { name: \"Kuanyama\", opentypeTag: \"KUA \", htmlTag: \"kj\" },\n { name: \"Kui\", opentypeTag: \"KUI \", htmlTag: \"kxu\" },\n { name: \"Kulvi\", opentypeTag: \"KUL \", htmlTag: \"kfx\" },\n { name: \"Kumyk\", opentypeTag: \"KUM \", htmlTag: \"kum\" },\n { name: \"Kurdish\", opentypeTag: \"KUR \", htmlTag: \"ku\" },\n { name: \"Kurukh\", opentypeTag: \"KUU \", htmlTag: \"kru\" },\n { name: \"Kuy\", opentypeTag: \"KUY \", htmlTag: \"kdt\" },\n { name: \"Koryak\", opentypeTag: \"KYK \", htmlTag: \"kpy\" },\n { name: \"Western Kayah\", opentypeTag: \"KYU \", htmlTag: \"kyu\" },\n { name: \"Ladin\", opentypeTag: \"LAD \", htmlTag: \"lld\" },\n { name: \"Lahuli\", opentypeTag: \"LAH \", htmlTag: \"bfu\" },\n { name: \"Lak\", opentypeTag: \"LAK \", htmlTag: \"lbe\" },\n { name: \"Lambani\", opentypeTag: \"LAM \", htmlTag: \"lmn\" },\n { name: \"Lao\", opentypeTag: \"LAO \", htmlTag: \"lo\" },\n { name: \"Latin\", opentypeTag: \"LAT \", htmlTag: \"la\" },\n { name: \"Laz\", opentypeTag: \"LAZ \", htmlTag: \"lzz\" },\n { name: \"L-Cree\", opentypeTag: \"LCR \", htmlTag: \"crm\" },\n { name: \"Ladakhi\", opentypeTag: \"LDK \", htmlTag: \"lbj\" },\n { name: \"Lezgi\", opentypeTag: \"LEZ \", htmlTag: \"lez\" },\n { name: \"Ligurian\", opentypeTag: \"LIJ \", htmlTag: \"lij\" },\n { name: \"Limburgish\", opentypeTag: \"LIM \", htmlTag: \"li\" },\n { name: \"Lingala\", opentypeTag: \"LIN \", htmlTag: \"ln\" },\n { name: \"Lisu\", opentypeTag: \"LIS \", htmlTag: \"lis\" },\n { name: \"Lampung\", opentypeTag: \"LJP \", htmlTag: \"ljp\" },\n { name: \"Laki\", opentypeTag: \"LKI \", htmlTag: \"lki\" },\n { name: \"Low Mari\", opentypeTag: \"LMA \", htmlTag: \"mhr\" },\n { name: \"Limbu\", opentypeTag: \"LMB \", htmlTag: \"lif\" },\n { name: \"Lombard\", opentypeTag: \"LMO \", htmlTag: \"lmo\" },\n { name: \"Lomwe\", opentypeTag: \"LMW \", htmlTag: \"ngl\" },\n { name: \"Loma\", opentypeTag: \"LOM \", htmlTag: \"lom\" },\n { name: \"Luri\", opentypeTag: \"LRC \", htmlTag: \"lrc\" },\n { name: \"Lower Sorbian\", opentypeTag: \"LSB \", htmlTag: \"dsb\" },\n { name: \"Lule Sami\", opentypeTag: \"LSM \", htmlTag: \"smj\" },\n { name: \"Lithuanian\", opentypeTag: \"LTH \", htmlTag: \"lt\" },\n { name: \"Luxembourgish\", opentypeTag: \"LTZ \", htmlTag: \"lb\" },\n { name: \"Luba-Lulua\", opentypeTag: \"LUA \", htmlTag: \"lua\" },\n { name: \"Luba-Katanga\", opentypeTag: \"LUB \", htmlTag: \"lu\" },\n { name: \"Ganda\", opentypeTag: \"LUG \", htmlTag: \"lg\" },\n { name: \"Luyia\", opentypeTag: \"LUH \", htmlTag: \"luy\" },\n { name: \"Luo\", opentypeTag: \"LUO \", htmlTag: \"luo\" },\n { name: \"Latvian\", opentypeTag: \"LVI \", htmlTag: \"lv\" },\n { name: \"Madura\", opentypeTag: \"MAD \", htmlTag: \"mad\" },\n { name: \"Magahi\", opentypeTag: \"MAG \", htmlTag: \"mag\" },\n { name: \"Marshallese\", opentypeTag: \"MAH \", htmlTag: \"mh\" },\n { name: \"Majang\", opentypeTag: \"MAJ \", htmlTag: \"mpe\" },\n { name: \"Makhuwa\", opentypeTag: \"MAK \", htmlTag: \"vmw\" },\n { name: \"Malayalam\", opentypeTag: \"MAL \", htmlTag: \"ml\" },\n { name: \"Mam\", opentypeTag: \"MAM \", htmlTag: \"mam\" },\n { name: \"Mansi\", opentypeTag: \"MAN \", htmlTag: \"mns\" },\n { name: \"Mapudungun\", opentypeTag: \"MAP \", htmlTag: \"arn\" },\n { name: \"Marathi\", opentypeTag: \"MAR \", htmlTag: \"mr\" },\n { name: \"Marwari\", opentypeTag: \"MAW \", htmlTag: \"mwr\" },\n { name: \"Mbundu\", opentypeTag: \"MBN \", htmlTag: \"kmb\" },\n { name: \"Mbo\", opentypeTag: \"MBO \", htmlTag: \"mbo\" },\n { name: \"Manchu\", opentypeTag: \"MCH \", htmlTag: \"mnc\" },\n { name: \"Moose Cree\", opentypeTag: \"MCR \", htmlTag: \"crm\" },\n { name: \"Mende\", opentypeTag: \"MDE \", htmlTag: \"men\" },\n { name: \"Mandar\", opentypeTag: \"MDR \", htmlTag: \"mdr\" },\n { name: \"Me’en\", opentypeTag: \"MEN \", htmlTag: \"mym\" },\n { name: \"Meru\", opentypeTag: \"MER \", htmlTag: \"mer\" },\n { name: \"Pattani Malay\", opentypeTag: \"MFA \", htmlTag: \"mfa\" },\n { name: \"Morisyen\", opentypeTag: \"MFE \", htmlTag: \"mfe\" },\n { name: \"Minangkabau\", opentypeTag: \"MIN \", htmlTag: \"min\" },\n { name: \"Mizo\", opentypeTag: \"MIZ \", htmlTag: \"lus\" },\n { name: \"Macedonian\", opentypeTag: \"MKD \", htmlTag: \"mk\" },\n { name: \"Makasar\", opentypeTag: \"MKR \", htmlTag: \"mak\" },\n { name: \"Kituba\", opentypeTag: \"MKW \", htmlTag: \"mkw\" },\n { name: \"Male\", opentypeTag: \"MLE \", htmlTag: \"mdy\" },\n { name: \"Malagasy\", opentypeTag: \"MLG \", htmlTag: \"mg\" },\n { name: \"Malinke\", opentypeTag: \"MLN \", htmlTag: \"mlq\" },\n { name: \"Malayalam Reformed\", opentypeTag: \"MLR \", htmlTag: \"ml\" },\n { name: \"Malay\", opentypeTag: \"MLY \", htmlTag: \"ms\" },\n { name: \"Mandinka\", opentypeTag: \"MND \", htmlTag: \"mnk\" },\n { name: \"Mongolian\", opentypeTag: \"MNG \", htmlTag: \"mn\" },\n { name: \"Manipuri\", opentypeTag: \"MNI \", htmlTag: \"mni\" },\n { name: \"Maninka\", opentypeTag: \"MNK \", htmlTag: \"man\" },\n { name: \"Manx\", opentypeTag: \"MNX \", htmlTag: \"gv\" },\n { name: \"Mohawk\", opentypeTag: \"MOH \", htmlTag: \"moh\" },\n { name: \"Moksha\", opentypeTag: \"MOK \", htmlTag: \"mdf\" },\n { name: \"Moldavian\", opentypeTag: \"MOL \", htmlTag: \"mol\" },\n { name: \"Mon\", opentypeTag: \"MON \", htmlTag: \"mnw\" },\n { name: \"Moroccan\", opentypeTag: \"MOR \" },\n { name: \"Mossi\", opentypeTag: \"MOS \", htmlTag: \"mos\" },\n { name: \"Maori\", opentypeTag: \"MRI \", htmlTag: \"mi\" },\n { name: \"Maithili\", opentypeTag: \"MTH \", htmlTag: \"mai\" },\n { name: \"Maltese\", opentypeTag: \"MTS \", htmlTag: \"mt\" },\n { name: \"Mundari\", opentypeTag: \"MUN \", htmlTag: \"unr\" },\n { name: \"Muscogee\", opentypeTag: \"MUS \", htmlTag: \"mus\" },\n { name: \"Mirandese\", opentypeTag: \"MWL \", htmlTag: \"mwl\" },\n { name: \"Hmong Daw\", opentypeTag: \"MWW \", htmlTag: \"mww\" },\n { name: \"Mayan\", opentypeTag: \"MYN \", htmlTag: \"myn\" },\n { name: \"Mazanderani\", opentypeTag: \"MZN \", htmlTag: \"mzn\" },\n { name: \"Naga-Assamese\", opentypeTag: \"NAG \", htmlTag: \"nag\" },\n { name: \"Nahuatl\", opentypeTag: \"NAH \", htmlTag: \"nah\" },\n { name: \"Nanai\", opentypeTag: \"NAN \", htmlTag: \"gld\" },\n { name: \"Neapolitan\", opentypeTag: \"NAP \", htmlTag: \"nap\" },\n { name: \"Naskapi\", opentypeTag: \"NAS \", htmlTag: \"nsk\" },\n { name: \"Nauruan\", opentypeTag: \"NAU \", htmlTag: \"na\" },\n { name: \"Navajo\", opentypeTag: \"NAV \", htmlTag: \"nv\" },\n { name: \"N-Cree\", opentypeTag: \"NCR \", htmlTag: \"csw\" },\n { name: \"Ndebele\", opentypeTag: \"NDB \", htmlTag: \"nr\" },\n { name: \"Ndau\", opentypeTag: \"NDC \", htmlTag: \"ndc\" },\n { name: \"Ndonga\", opentypeTag: \"NDG \", htmlTag: \"ng\" },\n { name: \"Low Saxon\", opentypeTag: \"NDS \", htmlTag: \"nds\" },\n { name: \"Nepali\", opentypeTag: \"NEP \", htmlTag: \"ne\" },\n { name: \"Newari\", opentypeTag: \"NEW \", htmlTag: \"new\" },\n { name: \"Ngbaka\", opentypeTag: \"NGA \", htmlTag: \"nga\" },\n { name: \"Nagari\", opentypeTag: \"NGR \" },\n { name: \"Norway House Cree\", opentypeTag: \"NHC \", htmlTag: \"csw\" },\n { name: \"Nisi\", opentypeTag: \"NIS \", htmlTag: \"dap\" },\n { name: \"Niuean\", opentypeTag: \"NIU \", htmlTag: \"niu\" },\n { name: \"Nyankole\", opentypeTag: \"NKL \", htmlTag: \"nyn\" },\n { name: \"N’Ko\", opentypeTag: \"NKO \", htmlTag: \"nqo\" },\n { name: \"Dutch\", opentypeTag: \"NLD \", htmlTag: \"nl\" },\n { name: \"Nimadi\", opentypeTag: \"NOE \", htmlTag: \"noe\" },\n { name: \"Nogai\", opentypeTag: \"NOG \", htmlTag: \"nog\" },\n { name: \"Norwegian\", opentypeTag: \"NOR \", htmlTag: \"nb\" },\n { name: \"Novial\", opentypeTag: \"NOV \", htmlTag: \"nov\" },\n { name: \"Northern Sami\", opentypeTag: \"NSM \", htmlTag: \"se\" },\n { name: \"Sotho, Northern\", opentypeTag: \"NSO \", htmlTag: \"nso\" },\n { name: \"Northern Tai\", opentypeTag: \"NTA \", htmlTag: \"nod\" },\n { name: \"Esperanto\", opentypeTag: \"NTO \", htmlTag: \"eo\" },\n { name: \"Nyamwezi\", opentypeTag: \"NYM \", htmlTag: \"nym\" },\n { name: \"Norwegian Nynorsk (Nynorsk, Norwegian)\", opentypeTag: \"NYN \", htmlTag: \"nn\" },\n { name: \"Mbembe Tigon\", opentypeTag: \"NZA \", htmlTag: \"nza\" },\n { name: \"Occitan\", opentypeTag: \"OCI \", htmlTag: \"oc\" },\n { name: \"Oji-Cree\", opentypeTag: \"OCR \", htmlTag: \"ojs\" },\n { name: \"Ojibway\", opentypeTag: \"OJB \", htmlTag: \"oj\" },\n { name: \"Odia (formerly Oriya)\", opentypeTag: \"ORI \", htmlTag: \"or\" },\n { name: \"Oromo\", opentypeTag: \"ORO \", htmlTag: \"om\" },\n { name: \"Ossetian\", opentypeTag: \"OSS \", htmlTag: \"os\" },\n { name: \"Palestinian Aramaic\", opentypeTag: \"PAA \", htmlTag: \"sam\" },\n { name: \"Pangasinan\", opentypeTag: \"PAG \", htmlTag: \"pag\" },\n { name: \"Pali\", opentypeTag: \"PAL \", htmlTag: \"pi\" },\n { name: \"Pampangan\", opentypeTag: \"PAM \", htmlTag: \"pam\" },\n { name: \"Punjabi\", opentypeTag: \"PAN \", htmlTag: \"pa\" },\n { name: \"Palpa\", opentypeTag: \"PAP \", htmlTag: \"plp\" },\n { name: \"Papiamentu\", opentypeTag: \"PAP0\", htmlTag: \"pap\" },\n { name: \"Pashto\", opentypeTag: \"PAS \", htmlTag: \"ps\" },\n { name: \"Palauan\", opentypeTag: \"PAU \", htmlTag: \"pau\" },\n { name: \"Bouyei\", opentypeTag: \"PCC \", htmlTag: \"pcc\" },\n { name: \"Picard\", opentypeTag: \"PCD \", htmlTag: \"pcd\" },\n { name: \"Pennsylvania German\", opentypeTag: \"PDC \", htmlTag: \"pdc\" },\n { name: \"Polytonic Greek\", opentypeTag: \"PGR \", htmlTag: \"el\" },\n { name: \"Phake\", opentypeTag: \"PHK \", htmlTag: \"phk\" },\n { name: \"Norfolk\", opentypeTag: \"PIH \", htmlTag: \"pih\" },\n { name: \"Filipino\", opentypeTag: \"PIL \", htmlTag: \"fil\" },\n { name: \"Palaung\", opentypeTag: \"PLG \", htmlTag: \"pce\" },\n { name: \"Polish\", opentypeTag: \"PLK \", htmlTag: \"pl\" },\n { name: \"Piemontese\", opentypeTag: \"PMS \", htmlTag: \"pms\" },\n { name: \"Western Panjabi\", opentypeTag: \"PNB \", htmlTag: \"pnb\" },\n { name: \"Pocomchi\", opentypeTag: \"POH \", htmlTag: \"poh\" },\n { name: \"Pohnpeian\", opentypeTag: \"PON \", htmlTag: \"pon\" },\n { name: \"Provençal / Old Provençal\", opentypeTag: \"PRO \", htmlTag: \"pro\" },\n { name: \"Portuguese\", opentypeTag: \"PTG \", htmlTag: \"pt\" },\n { name: \"Western Pwo Karen\", opentypeTag: \"PWO \", htmlTag: \"pwo\" },\n { name: \"Chin\", opentypeTag: \"QIN \", htmlTag: \"bgr\" },\n { name: \"K’iche’\", opentypeTag: \"QUC \", htmlTag: \"quc\" },\n { name: \"Quechua (Bolivia)\", opentypeTag: \"QUH \", htmlTag: \"quh\" },\n { name: \"Quechua\", opentypeTag: \"QUZ \", htmlTag: \"quz\" },\n { name: \"Quechua (Ecuador)\", opentypeTag: \"QVI \", htmlTag: \"qvi\" },\n { name: \"Quechua (Peru)\", opentypeTag: \"QWH \", htmlTag: \"qwh\" },\n { name: \"Rajasthani\", opentypeTag: \"RAJ \", htmlTag: \"raj\" },\n { name: \"Rarotongan\", opentypeTag: \"RAR \", htmlTag: \"rar\" },\n { name: \"Russian Buriat\", opentypeTag: \"RBU \", htmlTag: \"bxr\" },\n { name: \"R-Cree\", opentypeTag: \"RCR \", htmlTag: \"atj\" },\n { name: \"Rejang\", opentypeTag: \"REJ \", htmlTag: \"rej\" },\n { name: \"Riang\", opentypeTag: \"RIA \", htmlTag: \"ria\" },\n { name: \"Tarifit\", opentypeTag: \"RIF \", htmlTag: \"rif\" },\n { name: \"Ritarungo\", opentypeTag: \"RIT \", htmlTag: \"rit\" },\n { name: \"Arakwal\", opentypeTag: \"RKW \", htmlTag: \"rkw\" },\n { name: \"Romansh\", opentypeTag: \"RMS \", htmlTag: \"rm\" },\n { name: \"Vlax Romani\", opentypeTag: \"RMY \", htmlTag: \"rmy\" },\n { name: \"Romanian\", opentypeTag: \"ROM \", htmlTag: \"ro\" },\n { name: \"Romany\", opentypeTag: \"ROY \", htmlTag: \"rom\" },\n { name: \"Rusyn\", opentypeTag: \"RSY \", htmlTag: \"rue\" },\n { name: \"Rotuman\", opentypeTag: \"RTM \", htmlTag: \"rtm\" },\n { name: \"Kinyarwanda\", opentypeTag: \"RUA \", htmlTag: \"rw\" },\n { name: \"Rundi\", opentypeTag: \"RUN \", htmlTag: \"rn\" },\n { name: \"Aromanian\", opentypeTag: \"RUP \", htmlTag: \"rup\" },\n { name: \"Russian\", opentypeTag: \"RUS \", htmlTag: \"ru\" },\n { name: \"Sadri\", opentypeTag: \"SAD \", htmlTag: \"sck\" },\n { name: \"Sanskrit\", opentypeTag: \"SAN \", htmlTag: \"sa\" },\n { name: \"Sasak\", opentypeTag: \"SAS \", htmlTag: \"sas\" },\n { name: \"Santali\", opentypeTag: \"SAT \", htmlTag: \"sat\" },\n { name: \"Sayisi\", opentypeTag: \"SAY \", htmlTag: \"chp\" },\n { name: \"Sicilian\", opentypeTag: \"SCN \", htmlTag: \"scn\" },\n { name: \"Scots\", opentypeTag: \"SCO \", htmlTag: \"sco\" },\n { name: \"Sekota\", opentypeTag: \"SEK \", htmlTag: \"xan\" },\n { name: \"Selkup\", opentypeTag: \"SEL \", htmlTag: \"sel\" },\n { name: \"Old Irish\", opentypeTag: \"SGA \", htmlTag: \"sga\" },\n { name: \"Sango\", opentypeTag: \"SGO \", htmlTag: \"sg\" },\n { name: \"Samogitian\", opentypeTag: \"SGS \", htmlTag: \"sgs\" },\n { name: \"Tachelhit\", opentypeTag: \"SHI \", htmlTag: \"shi\" },\n { name: \"Shan\", opentypeTag: \"SHN \", htmlTag: \"shn\" },\n { name: \"Sibe\", opentypeTag: \"SIB \", htmlTag: \"sjo\" },\n { name: \"Sidamo\", opentypeTag: \"SID \", htmlTag: \"sid\" },\n { name: \"Silte Gurage\", opentypeTag: \"SIG \", htmlTag: \"xst\" },\n { name: \"Skolt Sami\", opentypeTag: \"SKS \", htmlTag: \"sms\" },\n { name: \"Slovak\", opentypeTag: \"SKY \", htmlTag: \"sk\" },\n { name: \"North Slavey\", opentypeTag: \"SCS \", htmlTag: \"scs\" },\n { name: \"Slavey\", opentypeTag: \"SLA \", htmlTag: \"scs\" },\n { name: \"Slovenian\", opentypeTag: \"SLV \", htmlTag: \"sl\" },\n { name: \"Somali\", opentypeTag: \"SML \", htmlTag: \"so\" },\n { name: \"Samoan\", opentypeTag: \"SMO \", htmlTag: \"sm\" },\n { name: \"Sena\", opentypeTag: \"SNA \", htmlTag: \"seh\" },\n { name: \"Shona\", opentypeTag: \"SNA0\", htmlTag: \"sn\" },\n { name: \"Sindhi\", opentypeTag: \"SND \", htmlTag: \"sd\" },\n { name: \"Sinhala (Sinhalese)\", opentypeTag: \"SNH \", htmlTag: \"si\" },\n { name: \"Soninke\", opentypeTag: \"SNK \", htmlTag: \"snk\" },\n { name: \"Sodo Gurage\", opentypeTag: \"SOG \", htmlTag: \"gru\" },\n { name: \"Songe\", opentypeTag: \"SOP \", htmlTag: \"sop\" },\n { name: \"Sotho, Southern\", opentypeTag: \"SOT \", htmlTag: \"st\" },\n { name: \"Albanian\", opentypeTag: \"SQI \", htmlTag: \"sq\" },\n { name: \"Serbian\", opentypeTag: \"SRB \", htmlTag: \"sr\" },\n { name: \"Sardinian\", opentypeTag: \"SRD \", htmlTag: \"sc\" },\n { name: \"Saraiki\", opentypeTag: \"SRK \", htmlTag: \"skr\" },\n { name: \"Serer\", opentypeTag: \"SRR \", htmlTag: \"srr\" },\n { name: \"South Slavey\", opentypeTag: \"SSL \", htmlTag: \"xsl\" },\n { name: \"Southern Sami\", opentypeTag: \"SSM \", htmlTag: \"sma\" },\n { name: \"Saterland Frisian\", opentypeTag: \"STQ \", htmlTag: \"stq\" },\n { name: \"Sukuma\", opentypeTag: \"SUK \", htmlTag: \"suk\" },\n { name: \"Sundanese\", opentypeTag: \"SUN \", htmlTag: \"su\" },\n { name: \"Suri\", opentypeTag: \"SUR \", htmlTag: \"suq\" },\n { name: \"Svan\", opentypeTag: \"SVA \", htmlTag: \"sva\" },\n { name: \"Swedish\", opentypeTag: \"SVE \", htmlTag: \"sv\" },\n { name: \"Swadaya Aramaic\", opentypeTag: \"SWA \", htmlTag: \"aii\" },\n { name: \"Swahili\", opentypeTag: \"SWK \", htmlTag: \"sw\" },\n { name: \"Swati\", opentypeTag: \"SWZ \", htmlTag: \"ss\" },\n { name: \"Sutu\", opentypeTag: \"SXT \", htmlTag: \"ngo\" },\n { name: \"Upper Saxon\", opentypeTag: \"SXU \", htmlTag: \"sxu\" },\n { name: \"Sylheti\", opentypeTag: \"SYL \", htmlTag: \"syl\" },\n { name: \"Syriac\", opentypeTag: \"SYR \", htmlTag: \"aii\" },\n { name: \"Syriac, Estrangela script-variant (equivalent to ISO 15924 'Syre')\", opentypeTag: \"SYRE\", htmlTag: \"syc\" },\n { name: \"Syriac, Western script-variant (equivalent to ISO 15924 'Syrj')\", opentypeTag: \"SYRJ\", htmlTag: \"syc\" },\n { name: \"Syriac, Eastern script-variant (equivalent to ISO 15924 'Syrn')\", opentypeTag: \"SYRN\", htmlTag: \"syc\" },\n { name: \"Silesian\", opentypeTag: \"SZL \", htmlTag: \"szl\" },\n { name: \"Tabasaran\", opentypeTag: \"TAB \", htmlTag: \"tab\" },\n { name: \"Tajiki\", opentypeTag: \"TAJ \", htmlTag: \"tg\" },\n { name: \"Tamil\", opentypeTag: \"TAM \", htmlTag: \"ta\" },\n { name: \"Tatar\", opentypeTag: \"TAT \", htmlTag: \"tt\" },\n { name: \"TH-Cree\", opentypeTag: \"TCR \", htmlTag: \"cwd\" },\n { name: \"Dehong Dai\", opentypeTag: \"TDD \", htmlTag: \"tdd\" },\n { name: \"Telugu\", opentypeTag: \"TEL \", htmlTag: \"te\" },\n { name: \"Tetum\", opentypeTag: \"TET \", htmlTag: \"tet\" },\n { name: \"Tagalog\", opentypeTag: \"TGL \", htmlTag: \"tl\" },\n { name: \"Tongan\", opentypeTag: \"TGN \", htmlTag: \"to\" },\n { name: \"Tigre\", opentypeTag: \"TGR \", htmlTag: \"tig\" },\n { name: \"Tigrinya\", opentypeTag: \"TGY \", htmlTag: \"ti\" },\n { name: \"Thai\", opentypeTag: \"THA \", htmlTag: \"th\" },\n { name: \"Tahitian\", opentypeTag: \"THT \", htmlTag: \"ty\" },\n { name: \"Tibetan\", opentypeTag: \"TIB \", htmlTag: \"bo\" },\n { name: \"Tiv\", opentypeTag: \"TIV \", htmlTag: \"tiv\" },\n { name: \"Turkmen\", opentypeTag: \"TKM \", htmlTag: \"tk\" },\n { name: \"Tamashek\", opentypeTag: \"TMH \", htmlTag: \"tmh\" },\n { name: \"Temne\", opentypeTag: \"TMN \", htmlTag: \"tem\" },\n { name: \"Tswana\", opentypeTag: \"TNA \", htmlTag: \"tn\" },\n { name: \"Tundra Nenets\", opentypeTag: \"TNE \", htmlTag: \"enh\" },\n { name: \"Tonga\", opentypeTag: \"TNG \", htmlTag: \"toi\" },\n { name: \"Todo\", opentypeTag: \"TOD \", htmlTag: \"xal\" },\n { name: \"Toma\", opentypeTag: \"TOD0\", htmlTag: \"tod\" },\n { name: \"Tok Pisin\", opentypeTag: \"TPI \", htmlTag: \"tpi\" },\n { name: \"Turkish\", opentypeTag: \"TRK \", htmlTag: \"tr\" },\n { name: \"Tsonga\", opentypeTag: \"TSG \", htmlTag: \"ts\" },\n { name: \"Tshangla\", opentypeTag: \"TSJ \", htmlTag: \"tsj\" },\n { name: \"Turoyo Aramaic\", opentypeTag: \"TUA \", htmlTag: \"tru\" },\n { name: \"Tulu\", opentypeTag: \"TUM \", htmlTag: \"tum\" },\n { name: \"Tumbuka\", opentypeTag: \"TUL \", htmlTag: \"tcy\" },\n { name: \"Tuvin\", opentypeTag: \"TUV \", htmlTag: \"tyv\" },\n { name: \"Tuvalu\", opentypeTag: \"TVL \", htmlTag: \"tvl\" },\n { name: \"Twi\", opentypeTag: \"TWI \", htmlTag: \"ak\" },\n { name: \"Tày\", opentypeTag: \"TYZ \", htmlTag: \"tyz\" },\n { name: \"Tamazight\", opentypeTag: \"TZM \", htmlTag: \"tzm\" },\n { name: \"Tzotzil\", opentypeTag: \"TZO \", htmlTag: \"tzo\" },\n { name: \"Udmurt\", opentypeTag: \"UDM \", htmlTag: \"udm\" },\n { name: \"Ukrainian\", opentypeTag: \"UKR \", htmlTag: \"uk\" },\n { name: \"Umbundu\", opentypeTag: \"UMB \", htmlTag: \"umb\" },\n { name: \"Urdu\", opentypeTag: \"URD \", htmlTag: \"ur\" },\n { name: \"Upper Sorbian\", opentypeTag: \"USB \", htmlTag: \"hsb\" },\n { name: \"Uyghur\", opentypeTag: \"UYG \", htmlTag: \"ug\" },\n { name: \"Uzbek\", opentypeTag: \"UZB \", htmlTag: \"uz\" },\n { name: \"Venetian\", opentypeTag: \"VEC \", htmlTag: \"vec\" },\n { name: \"Venda\", opentypeTag: \"VEN \", htmlTag: \"ve\" },\n { name: \"Vietnamese\", opentypeTag: \"VIT \", htmlTag: \"vi\" },\n { name: \"Volapük\", opentypeTag: \"VOL \", htmlTag: \"vo\" },\n { name: \"Võro\", opentypeTag: \"VRO \", htmlTag: \"vro\" },\n { name: \"Wa\", opentypeTag: \"WA\", htmlTag: \"wbm\" },\n { name: \"Wagdi\", opentypeTag: \"WAG \", htmlTag: \"wbr\" },\n { name: \"Waray-Waray\", opentypeTag: \"WAR \", htmlTag: \"war\" },\n { name: \"West-Cree\", opentypeTag: \"WCR \", htmlTag: \"crk\" },\n { name: \"Welsh\", opentypeTag: \"WEL \", htmlTag: \"cy\" },\n { name: \"Walloon\", opentypeTag: \"WLN \", htmlTag: \"wa\" },\n { name: \"Wolof\", opentypeTag: \"WLF \", htmlTag: \"wo\" },\n { name: \"Mewati\", opentypeTag: \"WTM \", htmlTag: \"wtm\" },\n { name: \"Lü\", opentypeTag: \"XBD \", htmlTag: \"khb\" },\n { name: \"Khengkha\", opentypeTag: \"XKF \", htmlTag: \"xkf\" },\n { name: \"Xhosa\", opentypeTag: \"XHS \", htmlTag: \"xh\" },\n { name: \"Minjangbal\", opentypeTag: \"XJB \", htmlTag: \"xjb\" },\n { name: \"Soga\", opentypeTag: \"XOG \", htmlTag: \"xog\" },\n { name: \"Kpelle (Liberia)\", opentypeTag: \"XPE \", htmlTag: \"xpe\" },\n { name: \"Sakha\", opentypeTag: \"YAK \", htmlTag: \"sah\" },\n { name: \"Yao\", opentypeTag: \"YAO \", htmlTag: \"yao\" },\n { name: \"Yapese\", opentypeTag: \"YAP \", htmlTag: \"yap\" },\n { name: \"Yoruba\", opentypeTag: \"YBA \", htmlTag: \"yo\" },\n { name: \"Y-Cree\", opentypeTag: \"YCR \", htmlTag: \"cr\" },\n { name: \"Yi Classic\", opentypeTag: \"YIC \" },\n { name: \"Yi Modern\", opentypeTag: \"YIM \", htmlTag: \"ii\" },\n { name: \"Zealandic\", opentypeTag: \"ZEA \", htmlTag: \"zea\" },\n { name: \"Standard Moroccan Tamazight\", opentypeTag: \"ZGH \", htmlTag: \"zgh\" },\n { name: \"Zhuang\", opentypeTag: \"ZHA \", htmlTag: \"za\" },\n { name: \"Chinese, Hong Kong SAR\", opentypeTag: \"ZHH \", htmlTag: \"zh\" },\n { name: \"Chinese Phonetic\", opentypeTag: \"ZHP \", htmlTag: \"zh\" },\n { name: \"Chinese Simplified\", opentypeTag: \"ZHS \", htmlTag: \"zh\" },\n { name: \"Chinese Traditional\", opentypeTag: \"ZHT \", htmlTag: \"zh\" },\n { name: \"Zande\", opentypeTag: \"ZND \", htmlTag: \"zne\" },\n { name: \"Zulu\", opentypeTag: \"ZUL \", htmlTag: \"zu\" },\n { name: \"Zazaki\", opentypeTag: \"ZZA \", htmlTag: \"zza\" },\n];\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=style&index=0&id=d9925bc8&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Settings.vue?vue&type=style&index=0&id=d9925bc8&scoped=true&lang=scss&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=style&index=0&id=24ad2e06&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./EditorNav.vue?vue&type=style&index=0&id=24ad2e06&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=style&index=0&id=1f701b1d&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./KerningNav.vue?vue&type=style&index=0&id=1f701b1d&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=style&index=0&id=674df807&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./Home.vue?vue&type=style&index=0&id=674df807&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TextTools.vue?vue&type=style&index=0&id=3e10b63a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./TextTools.vue?vue&type=style&index=0&id=3e10b63a&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=style&index=0&id=c62ebfe4&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../../node_modules/vue-svg-inline-loader/dist/index.min.js!./SigmoidContainer.vue?vue&type=style&index=0&id=c62ebfe4&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=style&index=0&id=5882b3e7&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./FileDrop.vue?vue&type=style&index=0&id=5882b3e7&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=style&index=0&id=886201ec&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/vue-svg-inline-loader/dist/index.min.js!./CharacterPanel.vue?vue&type=style&index=0&id=886201ec&lang=scss&scoped=true&\""],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-vendors.118367b6.js b/js/chunk-vendors.118367b6.js deleted file mode 100644 index 8782341..0000000 --- a/js/chunk-vendors.118367b6.js +++ /dev/null @@ -1,69 +0,0 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"014b":function(e,a,n){"use strict";var g=n("e53d"),t=n("07e3"),i=n("8e60"),u=n("63b6"),r=n("9138"),d=n("ebfd").KEY,o=n("294c"),l=n("dbdb"),p=n("45f2"),s=n("62a0"),c=n("5168"),b=n("ccb9"),y=n("6718"),S=n("47ee"),h=n("9003"),A=n("e4ae"),T=n("f772"),m=n("241e"),f=n("36c3"),D=n("1bc3"),v=n("aebd"),k=n("a159"),w=n("0395"),x=n("bf0b"),M=n("9aa9"),j=n("d9f6"),z=n("c3a1"),C=x.f,P=j.f,L=w.f,N=g.Symbol,_=g.JSON,E=_&&_.stringify,B="prototype",O=c("_hidden"),K=c("toPrimitive"),q={}.propertyIsEnumerable,I=l("symbol-registry"),R=l("symbols"),H=l("op-symbols"),G=Object[B],V="function"==typeof N&&!!M.f,F=g.QObject,W=!F||!F[B]||!F[B].findChild,U=i&&o((function(){return 7!=k(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a}))?function(e,a,n){var g=C(G,a);g&&delete G[a],P(e,a,n),g&&e!==G&&P(G,a,g)}:P,$=function(e){var a=R[e]=k(N[B]);return a._k=e,a},Y=V&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},Z=function(e,a,n){return e===G&&Z(H,a,n),A(e),a=D(a,!0),A(n),t(R,a)?(n.enumerable?(t(e,O)&&e[O][a]&&(e[O][a]=!1),n=k(n,{enumerable:v(0,!1)})):(t(e,O)||P(e,O,v(1,{})),e[O][a]=!0),U(e,a,n)):P(e,a,n)},J=function(e,a){A(e);var n,g=S(a=f(a)),t=0,i=g.length;while(i>t)Z(e,n=g[t++],a[n]);return e},X=function(e,a){return void 0===a?k(e):J(k(e),a)},Q=function(e){var a=q.call(this,e=D(e,!0));return!(this===G&&t(R,e)&&!t(H,e))&&(!(a||!t(this,e)||!t(R,e)||t(this,O)&&this[O][e])||a)},ee=function(e,a){if(e=f(e),a=D(a,!0),e!==G||!t(R,a)||t(H,a)){var n=C(e,a);return!n||!t(R,a)||t(e,O)&&e[O][a]||(n.enumerable=!0),n}},ae=function(e){var a,n=L(f(e)),g=[],i=0;while(n.length>i)t(R,a=n[i++])||a==O||a==d||g.push(a);return g},ne=function(e){var a,n=e===G,g=L(n?H:f(e)),i=[],u=0;while(g.length>u)!t(R,a=g[u++])||n&&!t(G,a)||i.push(R[a]);return i};V||(N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=s(arguments.length>0?arguments[0]:void 0),a=function(n){this===G&&a.call(H,n),t(this,O)&&t(this[O],e)&&(this[O][e]=!1),U(this,e,v(1,n))};return i&&W&&U(G,e,{configurable:!0,set:a}),$(e)},r(N[B],"toString",(function(){return this._k})),x.f=ee,j.f=Z,n("6abf").f=w.f=ae,n("355d").f=Q,M.f=ne,i&&!n("b8e3")&&r(G,"propertyIsEnumerable",Q,!0),b.f=function(e){return $(c(e))}),u(u.G+u.W+u.F*!V,{Symbol:N});for(var ge="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),te=0;ge.length>te;)c(ge[te++]);for(var ie=z(c.store),ue=0;ie.length>ue;)y(ie[ue++]);u(u.S+u.F*!V,"Symbol",{for:function(e){return t(I,e+="")?I[e]:I[e]=N(e)},keyFor:function(e){if(!Y(e))throw TypeError(e+" is not a symbol!");for(var a in I)if(I[a]===e)return a},useSetter:function(){W=!0},useSimple:function(){W=!1}}),u(u.S+u.F*!V,"Object",{create:X,defineProperty:Z,defineProperties:J,getOwnPropertyDescriptor:ee,getOwnPropertyNames:ae,getOwnPropertySymbols:ne});var re=o((function(){M.f(1)}));u(u.S+u.F*re,"Object",{getOwnPropertySymbols:function(e){return M.f(m(e))}}),_&&u(u.S+u.F*(!V||o((function(){var e=N();return"[null]"!=E([e])||"{}"!=E({a:e})||"{}"!=E(Object(e))}))),"JSON",{stringify:function(e){var a,n,g=[e],t=1;while(arguments.length>t)g.push(arguments[t++]);if(n=a=g[1],(T(a)||void 0!==e)&&!Y(e))return h(a)||(a=function(e,a){if("function"==typeof n&&(a=n.call(this,e,a)),!Y(a))return a}),g[1]=a,E.apply(_,g)}}),N[B][K]||n("35e8")(N[B],K,N[B].valueOf),p(N,"Symbol"),p(Math,"Math",!0),p(g.JSON,"JSON",!0)},"015d":function(e,a,n){},"01f9":function(e,a,n){"use strict";var g=n("2d00"),t=n("5ca1"),i=n("2aba"),u=n("32e9"),r=n("84f2"),d=n("41a0"),o=n("7f20"),l=n("38fd"),p=n("2b4c")("iterator"),s=!([].keys&&"next"in[].keys()),c="@@iterator",b="keys",y="values",S=function(){return this};e.exports=function(e,a,n,h,A,T,m){d(n,a,h);var f,D,v,k=function(e){if(!s&&e in j)return j[e];switch(e){case b:return function(){return new n(this,e)};case y:return function(){return new n(this,e)}}return function(){return new n(this,e)}},w=a+" Iterator",x=A==y,M=!1,j=e.prototype,z=j[p]||j[c]||A&&j[A],C=z||k(A),P=A?x?k("entries"):C:void 0,L="Array"==a&&j.entries||z;if(L&&(v=l(L.call(new e)),v!==Object.prototype&&v.next&&(o(v,w,!0),g||"function"==typeof v[p]||u(v,p,S))),x&&z&&z.name!==y&&(M=!0,C=function(){return z.call(this)}),g&&!m||!s&&!M&&j[p]||u(j,p,C),r[a]=C,r[w]=S,A)if(f={values:x?C:k(y),keys:T?C:k(b),entries:P},m)for(D in f)D in j||i(j,D,f[D]);else t(t.P+t.F*(s||M),a,f);return f}},"02f4":function(e,a,n){var g=n("4588"),t=n("be13");e.exports=function(e){return function(a,n){var i,u,r=String(t(a)),d=g(n),o=r.length;return d<0||d>=o?e?"":void 0:(i=r.charCodeAt(d),i<55296||i>56319||d+1===o||(u=r.charCodeAt(d+1))<56320||u>57343?e?r.charAt(d):i:e?r.slice(d,d+2):u-56320+(i-55296<<10)+65536)}}},"0390":function(e,a,n){"use strict";var g=n("02f4")(!0);e.exports=function(e,a,n){return a+(n?g(e,a).length:1)}},"0395":function(e,a,n){var g=n("36c3"),t=n("6abf").f,i={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],r=function(e){try{return t(e)}catch(a){return u.slice()}};e.exports.f=function(e){return u&&"[object Window]"==i.call(e)?r(e):t(g(e))}},"03b5":function(e,a,n){},"07e3":function(e,a){var n={}.hasOwnProperty;e.exports=function(e,a){return n.call(e,a)}},"097d":function(e,a,n){"use strict";var g=n("5ca1"),t=n("8378"),i=n("7726"),u=n("ebd6"),r=n("bcaa");g(g.P+g.R,"Promise",{finally:function(e){var a=u(this,t.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return r(a,e()).then((function(){return n}))}:e,n?function(n){return r(a,e()).then((function(){throw n}))}:e)}})},"0a49":function(e,a,n){var g=n("9b43"),t=n("626a"),i=n("4bf8"),u=n("9def"),r=n("cd1c");e.exports=function(e,a){var n=1==e,d=2==e,o=3==e,l=4==e,p=6==e,s=5==e||p,c=a||r;return function(a,r,b){for(var y,S,h=i(a),A=t(h),T=g(r,b,3),m=u(A.length),f=0,D=n?c(a,m):d?c(a,0):void 0;m>f;f++)if((s||f in A)&&(y=A[f],S=T(y,f,h),e))if(n)D[f]=S;else if(S)switch(e){case 3:return!0;case 5:return y;case 6:return f;case 2:D.push(y)}else if(l)return!1;return p?-1:o||l?l:D}}},"0b75":function(e,a,n){"use strict";var g=n("3e88"),t=n.n(g);t.a},"0b98":function(e,a){e["exports"]=function(e){var a=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(n,g,t){return" "===n?n:e[a[Math.round(Math.random()*(a.length-2))]](n)}}},"0bfb":function(e,a,n){"use strict";var g=n("cb7c");e.exports=function(){var e=g(this),a="";return e.global&&(a+="g"),e.ignoreCase&&(a+="i"),e.multiline&&(a+="m"),e.unicode&&(a+="u"),e.sticky&&(a+="y"),a}},"0d58":function(e,a,n){var g=n("ce10"),t=n("e11e");e.exports=Object.keys||function(e){return g(e,t)}},"0d6d":function(e,a,n){var g=n("d3f4"),t=n("67ab").onFreeze;n("5eda")("freeze",(function(e){return function(a){return e&&g(a)?e(t(a)):a}}))},"0ddf":function(e){e.exports=JSON.parse('{"ak":4,"ar":7,"ay":10,"az":11,"cr":26,"et":40,"fa":42,"ff":43,"gn":52,"ik":69,"iu":74,"kg":81,"kr":89,"ku":91,"kv":92,"lv":103,"mg":104,"mn":109,"ms":112,"ne":118,"no":122,"oj":127,"om":128,"or":129,"ps":134,"qu":136,"sc":143,"sh":147,"sq":154,"sw":160,"uz":178,"yi":185,"za":187,"zh":188,"bal":719,"bik":917,"bnc":1036,"bua":1205,"chm":1456,"del":1754,"den":1756,"din":1808,"doi":1885,"gba":2228,"gon":2422,"grb":2443,"hai":2553,"hmn":2631,"jrb":3015,"kln":3329,"kok":3402,"kpe":3419,"lah":3703,"luy":4012,"man":4047,"mwr":4597,"raj":5773,"rom":5878,"syr":6425,"tmh":6698,"zap":7983,"zza":8150}')},"0fc9":function(e,a,n){var g=n("3a38"),t=Math.max,i=Math.min;e.exports=function(e,a){return e=g(e),e<0?t(e+a,0):i(e,a)}},"115b":function(e,a,n){var g=n("708a");e["exports"]=g,n("dd4b")()},1169:function(e,a,n){var g=n("2d95");e.exports=Array.isArray||function(e){return"Array"==g(e)}},1173:function(e,a){e.exports=function(e,a,n,g){if(!(e instanceof a)||void 0!==g&&g in e)throw TypeError(n+": incorrect invocation!");return e}},"11e9":function(e,a,n){var g=n("52a7"),t=n("4630"),i=n("6821"),u=n("6a99"),r=n("69a8"),d=n("c69a"),o=Object.getOwnPropertyDescriptor;a.f=n("9e1e")?o:function(e,a){if(e=i(e),a=u(a,!0),d)try{return o(e,a)}catch(n){}if(r(e,a))return t(!g.f.call(e,a),e[a])}},1209:function(e,a,n){"use strict";var g={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},t={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},i=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],u={CSS:{},springs:{}};function r(e,a,n){return Math.min(Math.max(e,a),n)}function d(e,a){return e.indexOf(a)>-1}function o(e,a){return e.apply(null,a)}var l={arr:function(e){return Array.isArray(e)},obj:function(e){return d(Object.prototype.toString.call(e),"Object")},pth:function(e){return l.obj(e)&&e.hasOwnProperty("totalLength")},svg:function(e){return e instanceof SVGElement},inp:function(e){return e instanceof HTMLInputElement},dom:function(e){return e.nodeType||l.svg(e)},str:function(e){return"string"===typeof e},fnc:function(e){return"function"===typeof e},und:function(e){return"undefined"===typeof e},nil:function(e){return l.und(e)||null===e},hex:function(e){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)},rgb:function(e){return/^rgb/.test(e)},hsl:function(e){return/^hsl/.test(e)},col:function(e){return l.hex(e)||l.rgb(e)||l.hsl(e)},key:function(e){return!g.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&"targets"!==e&&"keyframes"!==e}};function p(e){var a=/\(([^)]+)\)/.exec(e);return a?a[1].split(",").map((function(e){return parseFloat(e)})):[]}function s(e,a){var n=p(e),g=r(l.und(n[0])?1:n[0],.1,100),t=r(l.und(n[1])?100:n[1],.1,100),i=r(l.und(n[2])?10:n[2],.1,100),d=r(l.und(n[3])?0:n[3],.1,100),o=Math.sqrt(t/g),s=i/(2*Math.sqrt(t*g)),c=s<1?o*Math.sqrt(1-s*s):0,b=1,y=s<1?(s*o-d)/c:-d+o;function S(e){var n=a?a*e/1e3:e;return n=s<1?Math.exp(-n*s*o)*(b*Math.cos(c*n)+y*Math.sin(c*n)):(b+y*n)*Math.exp(-n*o),0===e||1===e?e:1-n}function h(){var a=u.springs[e];if(a)return a;var n=1/6,g=0,t=0;while(1)if(g+=n,1===S(g)){if(t++,t>=16)break}else t=0;var i=g*n*1e3;return u.springs[e]=i,i}return a?S:h}function c(e){return void 0===e&&(e=10),function(a){return Math.ceil(r(a,1e-6,1)*e)*(1/e)}}var b=function(){var e=11,a=1/(e-1);function n(e,a){return 1-3*a+3*e}function g(e,a){return 3*a-6*e}function t(e){return 3*e}function i(e,a,i){return((n(a,i)*e+g(a,i))*e+t(a))*e}function u(e,a,i){return 3*n(a,i)*e*e+2*g(a,i)*e+t(a)}function r(e,a,n,g,t){var u,r,d=0;do{r=a+(n-a)/2,u=i(r,g,t)-e,u>0?n=r:a=r}while(Math.abs(u)>1e-7&&++d<10);return r}function d(e,a,n,g){for(var t=0;t<4;++t){var r=u(a,n,g);if(0===r)return a;var d=i(a,n,g)-e;a-=d/r}return a}function o(n,g,t,o){if(0<=n&&n<=1&&0<=t&&t<=1){var l=new Float32Array(e);if(n!==g||t!==o)for(var p=0;p=.001?d(g,c,n,t):0===b?c:r(g,i,i+a,n,t)}}return o}(),y=function(){var e={linear:function(){return function(e){return e}}},a={Sine:function(){return function(e){return 1-Math.cos(e*Math.PI/2)}},Circ:function(){return function(e){return 1-Math.sqrt(1-e*e)}},Back:function(){return function(e){return e*e*(3*e-2)}},Bounce:function(){return function(e){var a,n=4;while(e<((a=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((3*a-2)/22-e,2)}},Elastic:function(e,a){void 0===e&&(e=1),void 0===a&&(a=.5);var n=r(e,1,10),g=r(a,.1,2);return function(e){return 0===e||1===e?e:-n*Math.pow(2,10*(e-1))*Math.sin((e-1-g/(2*Math.PI)*Math.asin(1/n))*(2*Math.PI)/g)}}},n=["Quad","Cubic","Quart","Quint","Expo"];return n.forEach((function(e,n){a[e]=function(){return function(e){return Math.pow(e,n+2)}}})),Object.keys(a).forEach((function(n){var g=a[n];e["easeIn"+n]=g,e["easeOut"+n]=function(e,a){return function(n){return 1-g(e,a)(1-n)}},e["easeInOut"+n]=function(e,a){return function(n){return n<.5?g(e,a)(2*n)/2:1-g(e,a)(-2*n+2)/2}},e["easeOutIn"+n]=function(e,a){return function(n){return n<.5?(1-g(e,a)(1-2*n))/2:(g(e,a)(2*n-1)+1)/2}}})),e}();function S(e,a){if(l.fnc(e))return e;var n=e.split("(")[0],g=y[n],t=p(e);switch(n){case"spring":return s(e,a);case"cubicBezier":return o(b,t);case"steps":return o(c,t);default:return o(g,t)}}function h(e){try{var a=document.querySelectorAll(e);return a}catch(n){return}}function A(e,a){for(var n=e.length,g=arguments.length>=2?arguments[1]:void 0,t=[],i=0;i1&&(n-=1),n<1/6?e+6*(a-e)*n:n<.5?a:n<2/3?e+(a-e)*(2/3-n)*6:e}if(0==u)a=n=g=r;else{var l=r<.5?r*(1+u):r+u-r*u,p=2*r-l;a=o(p,l,i+1/3),n=o(p,l,i),g=o(p,l,i-1/3)}return"rgba("+255*a+","+255*n+","+255*g+","+d+")"}function j(e){return l.rgb(e)?w(e):l.hex(e)?x(e):l.hsl(e)?M(e):void 0}function z(e){var a=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(e);if(a)return a[1]}function C(e){return d(e,"translate")||"perspective"===e?"px":d(e,"rotate")||d(e,"skew")?"deg":void 0}function P(e,a){return l.fnc(e)?e(a.target,a.id,a.total):e}function L(e,a){return e.getAttribute(a)}function N(e,a,n){var g=z(a);if(f([n,"deg","rad","turn"],g))return a;var t=u.CSS[a+n];if(!l.und(t))return t;var i=100,r=document.createElement(e.tagName),d=e.parentNode&&e.parentNode!==document?e.parentNode:document.body;d.appendChild(r),r.style.position="absolute",r.style.width=i+n;var o=i/r.offsetWidth;d.removeChild(r);var p=o*parseFloat(a);return u.CSS[a+n]=p,p}function _(e,a,n){if(a in e.style){var g=a.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t=e.style[a]||getComputedStyle(e).getPropertyValue(g)||"0";return n?N(e,t,n):t}}function E(e,a){return l.dom(e)&&!l.inp(e)&&(!l.nil(L(e,a))||l.svg(e)&&e[a])?"attribute":l.dom(e)&&f(i,a)?"transform":l.dom(e)&&"transform"!==a&&_(e,a)?"css":null!=e[a]?"object":void 0}function B(e){if(l.dom(e)){var a,n=e.style.transform||"",g=/(\w+)\(([^)]*)\)/g,t=new Map;while(a=g.exec(n))t.set(a[1],a[2]);return t}}function O(e,a,n,g){var t=d(a,"scale")?1:0+C(a),i=B(e).get(a)||t;return n&&(n.transforms.list.set(a,i),n.transforms["last"]=a),g?N(e,i,g):i}function K(e,a,n,g){switch(E(e,a)){case"transform":return O(e,a,g,n);case"css":return _(e,a,n);case"attribute":return L(e,a);default:return e[a]||0}}function q(e,a){var n=/^(\*=|\+=|-=)/.exec(e);if(!n)return e;var g=z(e)||0,t=parseFloat(a),i=parseFloat(e.replace(n[0],""));switch(n[0][0]){case"+":return t+i+g;case"-":return t-i+g;case"*":return t*i+g}}function I(e,a){if(l.col(e))return j(e);if(/\s/g.test(e))return e;var n=z(e),g=n?e.substr(0,e.length-n.length):e;return a?g+a:g}function R(e,a){return Math.sqrt(Math.pow(a.x-e.x,2)+Math.pow(a.y-e.y,2))}function H(e){return 2*Math.PI*L(e,"r")}function G(e){return 2*L(e,"width")+2*L(e,"height")}function V(e){return R({x:L(e,"x1"),y:L(e,"y1")},{x:L(e,"x2"),y:L(e,"y2")})}function F(e){for(var a,n=e.points,g=0,t=0;t0&&(g+=R(a,i)),a=i}return g}function W(e){var a=e.points;return F(e)+R(a.getItem(a.numberOfItems-1),a.getItem(0))}function U(e){if(e.getTotalLength)return e.getTotalLength();switch(e.tagName.toLowerCase()){case"circle":return H(e);case"rect":return G(e);case"line":return V(e);case"polyline":return F(e);case"polygon":return W(e)}}function $(e){var a=U(e);return e.setAttribute("stroke-dasharray",a),a}function Y(e){var a=e.parentNode;while(l.svg(a)){if(!l.svg(a.parentNode))break;a=a.parentNode}return a}function Z(e,a){var n=a||{},g=n.el||Y(e),t=g.getBoundingClientRect(),i=L(g,"viewBox"),u=t.width,r=t.height,d=n.viewBox||(i?i.split(" "):[0,0,u,r]);return{el:g,viewBox:d,x:d[0]/1,y:d[1]/1,w:u,h:r,vW:d[2],vH:d[3]}}function J(e,a){var n=l.str(e)?h(e)[0]:e,g=a||100;return function(e){return{property:e,el:n,svg:Z(n),totalLength:U(n)*(g/100)}}}function X(e,a,n){function g(n){void 0===n&&(n=0);var g=a+n>=1?a+n:0;return e.el.getPointAtLength(g)}var t=Z(e.el,e.svg),i=g(),u=g(-1),r=g(1),d=n?1:t.w/t.vW,o=n?1:t.h/t.vH;switch(e.property){case"x":return(i.x-t.x)*d;case"y":return(i.y-t.y)*o;case"angle":return 180*Math.atan2(r.y-u.y,r.x-u.x)/Math.PI}}function Q(e,a){var n=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,g=I(l.pth(e)?e.totalLength:e,a)+"";return{original:g,numbers:g.match(n)?g.match(n).map(Number):[0],strings:l.str(e)||a?g.split(n):[]}}function ee(e){var a=e?T(l.arr(e)?e.map(m):m(e)):[];return A(a,(function(e,a,n){return n.indexOf(e)===a}))}function ae(e){var a=ee(e);return a.map((function(e,n){return{target:e,id:n,total:a.length,transforms:{list:B(e)}}}))}function ne(e,a){var n=D(a);if(/^spring/.test(n.easing)&&(n.duration=s(n.easing)),l.arr(e)){var g=e.length,t=2===g&&!l.obj(e[0]);t?e={value:e}:l.fnc(a.duration)||(n.duration=a.duration/g)}var i=l.arr(e)?e:[e];return i.map((function(e,n){var g=l.obj(e)&&!l.pth(e)?e:{value:e};return l.und(g.delay)&&(g.delay=n?0:a.delay),l.und(g.endDelay)&&(g.endDelay=n===i.length-1?a.endDelay:0),g})).map((function(e){return k(e,n)}))}function ge(e){for(var a=A(T(e.map((function(e){return Object.keys(e)}))),(function(e){return l.key(e)})).reduce((function(e,a){return e.indexOf(a)<0&&e.push(a),e}),[]),n={},g=function(g){var t=a[g];n[t]=e.map((function(e){var a={};for(var n in e)l.key(n)?n==t&&(a.value=e[n]):a[n]=e[n];return a}))},t=0;t0)||(e=requestAnimationFrame(n))}function n(a){var g=be.length,t=0;while(t0?requestAnimationFrame(n):void 0}function g(){he.suspendWhenDocumentHidden&&(Se()?e=cancelAnimationFrame(e):(be.forEach((function(e){return e._onDocumentVisibility()})),ye()))}return"undefined"!==typeof document&&document.addEventListener("visibilitychange",g),a}();function Se(){return!!document&&document.hidden}function he(e){void 0===e&&(e={});var a,n=0,g=0,t=0,i=0,u=null;function d(e){var a=window.Promise&&new Promise((function(e){return u=e}));return e.finished=a,a}var o=ce(e);d(o);function l(){var e=o.direction;"alternate"!==e&&(o.direction="normal"!==e?"normal":"reverse"),o.reversed=!o.reversed,a.forEach((function(e){return e.reversed=o.reversed}))}function p(e){return o.reversed?o.duration-e:e}function s(){n=0,g=p(o.currentTime)*(1/he.speed)}function c(e,a){a&&a.seek(e-a.timelineOffset)}function b(e){if(o.reversePlayback)for(var n=i;n--;)c(e,a[n]);else for(var g=0;g2||(m=Math.round(m*b)/b)),y.push(m)}var v=c.length;if(v){h=c[0];for(var k=0;k0&&(o.began=!0,S("begin")),!o.loopBegan&&o.currentTime>0&&(o.loopBegan=!0,S("loopBegin")),A<=s&&0!==o.currentTime&&y(0),(A>=c&&o.currentTime!==i||!i)&&y(i),A>s&&A=i&&(g=0,h(),o.remaining?(n=t,S("loopComplete"),o.loopBegan=!1,"alternate"===o.direction&&l()):(o.paused=!0,o.completed||(o.completed=!0,S("loopComplete"),S("complete"),!o.passThrough&&"Promise"in window&&(u(),d(o)))))}return o.reset=function(){var e=o.direction;o.passThrough=!1,o.currentTime=0,o.progress=0,o.paused=!0,o.began=!1,o.loopBegan=!1,o.changeBegan=!1,o.completed=!1,o.changeCompleted=!1,o.reversePlayback=!1,o.reversed="reverse"===e,o.remaining=o.loop,a=o.children,i=a.length;for(var n=i;n--;)o.children[n].reset();(o.reversed&&!0!==o.loop||"alternate"===e&&1===o.loop)&&o.remaining++,y(o.reversed?o.duration:0)},o._onDocumentVisibility=s,o.set=function(e,a){return de(e,a),o},o.tick=function(e){t=e,n||(n=t),T((t+(g-n))*he.speed)},o.seek=function(e){T(p(e))},o.pause=function(){o.paused=!0,s()},o.play=function(){o.paused&&(o.completed&&o.reset(),o.paused=!1,be.push(o),s(),ye())},o.reverse=function(){l(),o.completed=!o.reversed,s()},o.restart=function(){o.reset(),o.play()},o.remove=function(e){var a=ee(e);Te(a,o)},o.reset(),o.autoplay&&o.play(),o}function Ae(e,a){for(var n=a.length;n--;)f(e,a[n].animatable.target)&&a.splice(n,1)}function Te(e,a){var n=a.animations,g=a.children;Ae(e,n);for(var t=g.length;t--;){var i=g[t],u=i.animations;Ae(e,u),u.length||i.children.length||g.splice(t,1)}n.length||g.length||a.pause()}function me(e){for(var a=ee(e),n=be.length;n--;){var g=be[n];Te(a,g)}}function fe(e,a){void 0===a&&(a={});var n=a.direction||"normal",g=a.easing?S(a.easing):null,t=a.grid,i=a.axis,u=a.from||0,r="first"===u,d="center"===u,o="last"===u,p=l.arr(e),s=p?parseFloat(e[0]):parseFloat(e),c=p?parseFloat(e[1]):0,b=z(p?e[1]:e)||0,y=a.start||0+(p?s:0),h=[],A=0;return function(e,a,l){if(r&&(u=0),d&&(u=(l-1)/2),o&&(u=l-1),!h.length){for(var S=0;S-1&&be.splice(i,1);for(var d=0;dd)g.f(e,n=u[d++],a[n]);return e}},"14b9":function(e,a,n){var g=n("5ca1");g(g.P,"String",{repeat:n("9744")})},1513:function(e,a,n){"use strict";function g(e,a){const n=e instanceof Element||e&&e._isVue||"string"===typeof e;return!n&&a&&console.warn(a),n}function t(e,a){return e instanceof Element?e:e&&e._isVue?e.$el:"string"===typeof e?document.querySelector(e):a}a["a"]={validate:g,resolve:t}},1580:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("transition",{attrs:{name:e.disableTransition?null:"ui-progress-circular--transition-fade"}},[n("div",{staticClass:"ui-progress-circular",class:e.classes,style:{width:e.size+"px",height:e.size+"px"}},["determinate"===e.type?n("svg",{staticClass:"ui-progress-circular__determinate",attrs:{role:"progressbar","aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":e.progress,height:e.size,width:e.size}},[n("circle",{staticClass:"ui-progress-circular__determinate-path",style:{"stroke-dashoffset":e.strokeDashOffset,"stroke-width":e.calculatedStroke},attrs:{fill:"transparent","stroke-dashoffset":"0",cx:e.size/2,cy:e.size/2,r:e.radius,"stroke-dasharray":e.strokeDashArray}})]):n("svg",{staticClass:"ui-progress-circular__indeterminate",attrs:{role:"progressbar",viewBox:"25 25 50 50","aria-valuemax":100,"aria-valuemin":0}},[n("circle",{staticClass:"ui-progress-circular__indeterminate-path",attrs:{cx:"50",cy:"50",fill:"none",r:"20","stroke-miterlimit":"10","stroke-width":e.calculatedStroke}})])])])},t=[],i=(n("c5f6"),{name:"ui-progress-circular",props:{type:{type:String,default:"indeterminate"},color:{type:String,default:"primary"},progress:{type:Number,default:0},size:{type:Number,default:32},stroke:Number,autoStroke:{type:Boolean,default:!0},disableTransition:{type:Boolean,default:!1}},computed:{classes:function(){return["ui-progress-circular--color-".concat(this.color),"ui-progress-circular--type-".concat(this.type)]},strokeDashArray:function(){var e=2*Math.PI*this.radius;return Math.round(1e3*e)/1e3},strokeDashOffset:function(){var e=this.moderateProgress(this.progress),a=2*Math.PI*this.radius;return(100-e)/100*a},radius:function(){var e=this.stroke?this.stroke:4;return(this.size-e)/2},calculatedStroke:function(){return this.stroke?this.stroke:this.autoStroke?parseInt(this.size/8,10):4}},methods:{moderateProgress:function(e){return isNaN(e)||e<0?0:e>100?100:e}}}),u=i,r=(n("ffcc"),n("2877")),d=Object(r["a"])(u,g,t,!1,null,null,null);a["a"]=d.exports},1654:function(e,a,n){"use strict";var g=n("71c1")(!0);n("30f1")(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,a=this._t,n=this._i;return n>=a.length?{value:void 0,done:!0}:(e=g(a,n),this._i+=e.length,{value:e,done:!1})}))},1691:function(e,a){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"16a5":function(e,a,n){"use strict";var g=n("7162"),t=n.n(g);t.a},1991:function(e,a,n){var g,t,i,u=n("9b43"),r=n("31f4"),d=n("fab2"),o=n("230e"),l=n("7726"),p=l.process,s=l.setImmediate,c=l.clearImmediate,b=l.MessageChannel,y=l.Dispatch,S=0,h={},A="onreadystatechange",T=function(){var e=+this;if(h.hasOwnProperty(e)){var a=h[e];delete h[e],a()}},m=function(e){T.call(e.data)};s&&c||(s=function(e){var a=[],n=1;while(arguments.length>n)a.push(arguments[n++]);return h[++S]=function(){r("function"==typeof e?e:Function(e),a)},g(S),S},c=function(e){delete h[e]},"process"==n("2d95")(p)?g=function(e){p.nextTick(u(T,e,1))}:y&&y.now?g=function(e){y.now(u(T,e,1))}:b?(t=new b,i=t.port2,t.port1.onmessage=m,g=u(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(g=function(e){l.postMessage(e+"","*")},l.addEventListener("message",m,!1)):g=A in o("script")?function(e){d.appendChild(o("script"))[A]=function(){d.removeChild(this),T.call(e)}}:function(e){setTimeout(u(T,e,1),0)}),e.exports={set:s,clear:c}},"19e9":function(e,a,n){var g,t,i; -/*! - Autosize 3.0.21 - license: MIT - http://www.jacklmoore.com/autosize -*/(function(n,u){t=[a,e],g=u,i="function"===typeof g?g.apply(a,t):g,void 0===i||(e.exports=i)})(0,(function(e,a){"use strict";var n="function"===typeof Map?new Map:function(){var e=[],a=[];return{has:function(a){return e.indexOf(a)>-1},get:function(n){return a[e.indexOf(n)]},set:function(n,g){-1===e.indexOf(n)&&(e.push(n),a.push(g))},delete:function(n){var g=e.indexOf(n);g>-1&&(e.splice(g,1),a.splice(g,1))}}}(),g=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(d){g=function(e){var a=document.createEvent("Event");return a.initEvent(e,!0,!1),a}}function t(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!n.has(e)){var a=null,t=e.clientWidth,i=null,u=function(){e.clientWidth!==t&&s()},r=function(a){window.removeEventListener("resize",u,!1),e.removeEventListener("input",s,!1),e.removeEventListener("keyup",s,!1),e.removeEventListener("autosize:destroy",r,!1),e.removeEventListener("autosize:update",s,!1),Object.keys(a).forEach((function(n){e.style[n]=a[n]})),n["delete"](e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",r,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",s,!1),window.addEventListener("resize",u,!1),e.addEventListener("input",s,!1),e.addEventListener("autosize:update",s,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",n.set(e,{destroy:r,update:s}),d()}function d(){var n=window.getComputedStyle(e,null);"vertical"===n.resize?e.style.resize="none":"both"===n.resize&&(e.style.resize="horizontal"),a="content-box"===n.boxSizing?-(parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)):parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth),isNaN(a)&&(a=0),s()}function o(a){var n=e.style.width;e.style.width="0px",e.offsetWidth,e.style.width=n,e.style.overflowY=a}function l(e){var a=[];while(e&&e.parentNode&&e.parentNode instanceof Element)e.parentNode.scrollTop&&a.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return a}function p(){var n=e.style.height,g=l(e),i=document.documentElement&&document.documentElement.scrollTop;e.style.height="auto";var u=e.scrollHeight+a;0!==e.scrollHeight?(e.style.height=u+"px",t=e.clientWidth,g.forEach((function(e){e.node.scrollTop=e.scrollTop})),i&&(document.documentElement.scrollTop=i)):e.style.height=n}function s(){p();var a=Math.round(parseFloat(e.style.height)),n=window.getComputedStyle(e,null),t="content-box"===n.boxSizing?Math.round(parseFloat(n.height)):e.offsetHeight;if(t!==a?"hidden"===n.overflowY&&(o("scroll"),p(),t="content-box"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight):"hidden"!==n.overflowY&&(o("hidden"),p(),t="content-box"===n.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight),i!==t){i=t;var u=g("autosize:resized");try{e.dispatchEvent(u)}catch(r){}}}}function i(e){var a=n.get(e);a&&a.destroy()}function u(e){var a=n.get(e);a&&a.update()}var r=null;"undefined"===typeof window||"function"!==typeof window.getComputedStyle?(r=function(e){return e},r.destroy=function(e){return e},r.update=function(e){return e}):(r=function(e,a){return e&&Array.prototype.forEach.call(e.length?e:[e],(function(e){return t(e,a)})),e},r.destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],i),e},r.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],u),e}),a.exports=r}))},"1af6":function(e,a,n){var g=n("63b6");g(g.S,"Array",{isArray:n("9003")})},"1bc3":function(e,a,n){var g=n("f772");e.exports=function(e,a){if(!g(e))return e;var n,t;if(a&&"function"==typeof(n=e.toString)&&!g(t=n.call(e)))return t;if("function"==typeof(n=e.valueOf)&&!g(t=n.call(e)))return t;if(!a&&"function"==typeof(n=e.toString)&&!g(t=n.call(e)))return t;throw TypeError("Can't convert object to primitive value")}},"1c4c":function(e,a,n){"use strict";var g=n("9b43"),t=n("5ca1"),i=n("4bf8"),u=n("1fa8"),r=n("33a4"),d=n("9def"),o=n("f1ae"),l=n("27ee");t(t.S+t.F*!n("5cc5")((function(e){Array.from(e)})),"Array",{from:function(e){var a,n,t,p,s=i(e),c="function"==typeof this?this:Array,b=arguments.length,y=b>1?arguments[1]:void 0,S=void 0!==y,h=0,A=l(s);if(S&&(y=g(y,b>2?arguments[2]:void 0,2)),void 0==A||c==Array&&r(A))for(a=d(s.length),n=new c(a);a>h;h++)o(n,h,S?y(s[h],h):s[h]);else for(p=A.call(s),n=new c;!(t=p.next()).done;h++)o(n,h,S?u(p,y,[t.value,h],!0):t.value);return n.length=h,n}})},"1e13":function(e,a,n){"use strict";var g=n("60db"),t=n.n(g);t.a},"1ec9":function(e,a,n){var g=n("f772"),t=n("e53d").document,i=g(t)&&g(t.createElement);e.exports=function(e){return i?t.createElement(e):{}}},"1fa8":function(e,a,n){var g=n("cb7c");e.exports=function(e,a,n,t){try{return t?a(g(n)[0],n[1]):a(n)}catch(u){var i=e["return"];throw void 0!==i&&g(i.call(e)),u}}},"20d6":function(e,a,n){"use strict";var g=n("5ca1"),t=n("0a49")(6),i="findIndex",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),g(g.P+g.F*u,"Array",{findIndex:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")(i)},"20fd":function(e,a,n){"use strict";var g=n("d9f6"),t=n("aebd");e.exports=function(e,a,n){a in e?g.f(e,a,t(0,n)):e[a]=n}},"214f":function(e,a,n){"use strict";n("b0c5");var g=n("2aba"),t=n("32e9"),i=n("79e5"),u=n("be13"),r=n("2b4c"),d=n("520a"),o=r("species"),l=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),p=function(){var e=/(?:)/,a=e.exec;e.exec=function(){return a.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,a,n){var s=r(e),c=!i((function(){var a={};return a[s]=function(){return 7},7!=""[e](a)})),b=c?!i((function(){var a=!1,n=/a/;return n.exec=function(){return a=!0,null},"split"===e&&(n.constructor={},n.constructor[o]=function(){return n}),n[s](""),!a})):void 0;if(!c||!b||"replace"===e&&!l||"split"===e&&!p){var y=/./[s],S=n(u,s,""[e],(function(e,a,n,g,t){return a.exec===d?c&&!t?{done:!0,value:y.call(a,n,g)}:{done:!0,value:e.call(n,a,g)}:{done:!1}})),h=S[0],A=S[1];g(String.prototype,e,h),t(RegExp.prototype,s,2==a?function(e,a){return A.call(e,this,a)}:function(e){return A.call(e,this)})}}},2175:function(e,a,n){},"21fa":function(e){e.exports=JSON.parse('{"File-Date":"2019-04-30"}')},"230e":function(e,a,n){var g=n("d3f4"),t=n("7726").document,i=g(t)&&g(t.createElement);e.exports=function(e){return i?t.createElement(e):{}}},"23c6":function(e,a,n){var g=n("2d95"),t=n("2b4c")("toStringTag"),i="Arguments"==g(function(){return arguments}()),u=function(e,a){try{return e[a]}catch(n){}};e.exports=function(e){var a,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=u(a=Object(e),t))?n:i?g(a):"Object"==(r=g(a))&&"function"==typeof a.callee?"Arguments":r}},"241e":function(e,a,n){var g=n("25eb");e.exports=function(e){return Object(g(e))}},"24c5":function(e,a,n){"use strict";var g,t,i,u,r=n("b8e3"),d=n("e53d"),o=n("d864"),l=n("40c3"),p=n("63b6"),s=n("f772"),c=n("79aa"),b=n("1173"),y=n("a22a"),S=n("f201"),h=n("4178").set,A=n("aba2")(),T=n("656e"),m=n("4439"),f=n("bc13"),D=n("cd78"),v="Promise",k=d.TypeError,w=d.process,x=w&&w.versions,M=x&&x.v8||"",j=d[v],z="process"==l(w),C=function(){},P=t=T.f,L=!!function(){try{var e=j.resolve(1),a=(e.constructor={})[n("5168")("species")]=function(e){e(C,C)};return(z||"function"==typeof PromiseRejectionEvent)&&e.then(C)instanceof a&&0!==M.indexOf("6.6")&&-1===f.indexOf("Chrome/66")}catch(g){}}(),N=function(e){var a;return!(!s(e)||"function"!=typeof(a=e.then))&&a},_=function(e,a){if(!e._n){e._n=!0;var n=e._c;A((function(){var g=e._v,t=1==e._s,i=0,u=function(a){var n,i,u,r=t?a.ok:a.fail,d=a.resolve,o=a.reject,l=a.domain;try{r?(t||(2==e._h&&O(e),e._h=1),!0===r?n=g:(l&&l.enter(),n=r(g),l&&(l.exit(),u=!0)),n===a.promise?o(k("Promise-chain cycle")):(i=N(n))?i.call(n,d,o):d(n)):o(g)}catch(p){l&&!u&&l.exit(),o(p)}};while(n.length>i)u(n[i++]);e._c=[],e._n=!1,a&&!e._h&&E(e)}))}},E=function(e){h.call(d,(function(){var a,n,g,t=e._v,i=B(e);if(i&&(a=m((function(){z?w.emit("unhandledRejection",t,e):(n=d.onunhandledrejection)?n({promise:e,reason:t}):(g=d.console)&&g.error&&g.error("Unhandled promise rejection",t)})),e._h=z||B(e)?2:1),e._a=void 0,i&&a.e)throw a.v}))},B=function(e){return 1!==e._h&&0===(e._a||e._c).length},O=function(e){h.call(d,(function(){var a;z?w.emit("rejectionHandled",e):(a=d.onrejectionhandled)&&a({promise:e,reason:e._v})}))},K=function(e){var a=this;a._d||(a._d=!0,a=a._w||a,a._v=e,a._s=2,a._a||(a._a=a._c.slice()),_(a,!0))},q=function(e){var a,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw k("Promise can't be resolved itself");(a=N(e))?A((function(){var g={_w:n,_d:!1};try{a.call(e,o(q,g,1),o(K,g,1))}catch(t){K.call(g,t)}})):(n._v=e,n._s=1,_(n,!1))}catch(g){K.call({_w:n,_d:!1},g)}}};L||(j=function(e){b(this,j,v,"_h"),c(e),g.call(this);try{e(o(q,this,1),o(K,this,1))}catch(a){K.call(this,a)}},g=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},g.prototype=n("5c95")(j.prototype,{then:function(e,a){var n=P(S(this,j));return n.ok="function"!=typeof e||e,n.fail="function"==typeof a&&a,n.domain=z?w.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&_(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new g;this.promise=e,this.resolve=o(q,e,1),this.reject=o(K,e,1)},T.f=P=function(e){return e===j||e===u?new i(e):t(e)}),p(p.G+p.W+p.F*!L,{Promise:j}),n("45f2")(j,v),n("4c95")(v),u=n("584a")[v],p(p.S+p.F*!L,v,{reject:function(e){var a=P(this),n=a.reject;return n(e),a.promise}}),p(p.S+p.F*(r||!L),v,{resolve:function(e){return D(r&&this===u?j:this,e)}}),p(p.S+p.F*!(L&&n("4ee1")((function(e){j.all(e)["catch"](C)}))),v,{all:function(e){var a=this,n=P(a),g=n.resolve,t=n.reject,i=m((function(){var n=[],i=0,u=1;y(e,!1,(function(e){var r=i++,d=!1;n.push(void 0),u++,a.resolve(e).then((function(e){d||(d=!0,n[r]=e,--u||g(n))}),t)})),--u||g(n)}));return i.e&&t(i.v),n.promise},race:function(e){var a=this,n=P(a),g=n.reject,t=m((function(){y(e,!1,(function(e){a.resolve(e).then(n.resolve,g)}))}));return t.e&&g(t.v),n.promise}})},"252a":function(e,a,n){},"25eb":function(e,a){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},2621:function(e,a){a.f=Object.getOwnPropertySymbols},2665:function(e,a,n){},"27ee":function(e,a,n){var g=n("23c6"),t=n("2b4c")("iterator"),i=n("84f2");e.exports=n("8378").getIteratorMethod=function(e){if(void 0!=e)return e[t]||e["@@iterator"]||i[g(e)]}},2877:function(e,a,n){"use strict";function g(e,a,n,g,t,i,u,r){var d,o="function"===typeof e?e.options:e;if(a&&(o.render=a,o.staticRenderFns=n,o._compiled=!0),g&&(o.functional=!0),i&&(o._scopeId="data-v-"+i),u?(d=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(u)},o._ssrRegister=d):t&&(d=r?function(){t.call(this,this.$root.$options.shadowRoot)}:t),d)if(o.functional){o._injectStyles=d;var l=o.render;o.render=function(e,a){return d.call(a),l(e,a)}}else{var p=o.beforeCreate;o.beforeCreate=p?[].concat(p,d):[d]}return{exports:e,options:o}}n.d(a,"a",(function(){return g}))},"28a0":function(e,a){"function"===typeof Object.create?e.exports=function(e,a){e.super_=a,e.prototype=Object.create(a.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,a){e.super_=a;var n=function(){};n.prototype=a.prototype,e.prototype=new n,e.prototype.constructor=e}},"28a5":function(e,a,n){"use strict";var g=n("aae3"),t=n("cb7c"),i=n("ebd6"),u=n("0390"),r=n("9def"),d=n("5f1b"),o=n("520a"),l=n("79e5"),p=Math.min,s=[].push,c="split",b="length",y="lastIndex",S=4294967295,h=!l((function(){RegExp(S,"y")}));n("214f")("split",2,(function(e,a,n,l){var A;return A="c"=="abbc"[c](/(b)*/)[1]||4!="test"[c](/(?:)/,-1)[b]||2!="ab"[c](/(?:ab)*/)[b]||4!="."[c](/(.?)(.?)/)[b]||"."[c](/()()/)[b]>1||""[c](/.?/)[b]?function(e,a){var t=String(this);if(void 0===e&&0===a)return[];if(!g(e))return n.call(t,e,a);var i,u,r,d=[],l=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,c=void 0===a?S:a>>>0,h=new RegExp(e.source,l+"g");while(i=o.call(h,t)){if(u=h[y],u>p&&(d.push(t.slice(p,i.index)),i[b]>1&&i.index=c))break;h[y]===i.index&&h[y]++}return p===t[b]?!r&&h.test("")||d.push(""):d.push(t.slice(p)),d[b]>c?d.slice(0,c):d}:"0"[c](void 0,0)[b]?function(e,a){return void 0===e&&0===a?[]:n.call(this,e,a)}:n,[function(n,g){var t=e(this),i=void 0==n?void 0:n[a];return void 0!==i?i.call(n,t,g):A.call(String(t),n,g)},function(e,a){var g=l(A,e,this,a,A!==n);if(g.done)return g.value;var o=t(e),s=String(this),c=i(o,RegExp),b=o.unicode,y=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(h?"y":"g"),T=new c(h?o:"^(?:"+o.source+")",y),m=void 0===a?S:a>>>0;if(0===m)return[];if(0===s.length)return null===d(T,s)?[s]:[];var f=0,D=0,v=[];while(D";a.style.display="none",n("fab2").appendChild(a),a.src="javascript:",e=a.contentWindow.document,e.open(),e.write(t+"script"+u+"document.F=Object"+t+"/script"+u),e.close(),o=e.F;while(g--)delete o[d][i[g]];return o()};e.exports=Object.create||function(e,a){var n;return null!==e?(r[d]=g(e),n=new r,r[d]=null,n[u]=e):n=o(),void 0===a?n:t(n,a)}},"2af0":function(e,a,n){},"2b0e":function(e,a,n){"use strict";(function(e,n){ -/*! - * Vue.js v2.6.12 - * (c) 2014-2020 Evan You - * Released under the MIT License. - */ -var g=Object.freeze({});function t(e){return void 0===e||null===e}function i(e){return void 0!==e&&null!==e}function u(e){return!0===e}function r(e){return!1===e}function d(e){return"string"===typeof e||"number"===typeof e||"symbol"===typeof e||"boolean"===typeof e}function o(e){return null!==e&&"object"===typeof e}var l=Object.prototype.toString;function p(e){return"[object Object]"===l.call(e)}function s(e){return"[object RegExp]"===l.call(e)}function c(e){var a=parseFloat(String(e));return a>=0&&Math.floor(a)===a&&isFinite(e)}function b(e){return i(e)&&"function"===typeof e.then&&"function"===typeof e.catch}function y(e){return null==e?"":Array.isArray(e)||p(e)&&e.toString===l?JSON.stringify(e,null,2):String(e)}function S(e){var a=parseFloat(e);return isNaN(a)?e:a}function h(e,a){for(var n=Object.create(null),g=e.split(","),t=0;t-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function f(e,a){return m.call(e,a)}function D(e){var a=Object.create(null);return function(n){var g=a[n];return g||(a[n]=e(n))}}var v=/-(\w)/g,k=D((function(e){return e.replace(v,(function(e,a){return a?a.toUpperCase():""}))})),w=D((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),x=/\B([A-Z])/g,M=D((function(e){return e.replace(x,"-$1").toLowerCase()}));function j(e,a){function n(n){var g=arguments.length;return g?g>1?e.apply(a,arguments):e.call(a,n):e.call(a)}return n._length=e.length,n}function z(e,a){return e.bind(a)}var C=Function.prototype.bind?z:j;function P(e,a){a=a||0;var n=e.length-a,g=new Array(n);while(n--)g[n]=e[n+a];return g}function L(e,a){for(var n in a)e[n]=a[n];return e}function N(e){for(var a={},n=0;n0,ge=ee&&ee.indexOf("edge/")>0,te=(ee&&ee.indexOf("android"),ee&&/iphone|ipad|ipod|ios/.test(ee)||"ios"===Q),ie=(ee&&/chrome\/\d+/.test(ee),ee&&/phantomjs/.test(ee),ee&&ee.match(/firefox\/(\d+)/)),ue={}.watch,re=!1;if(J)try{var de={};Object.defineProperty(de,"passive",{get:function(){re=!0}}),window.addEventListener("test-passive",null,de)}catch(vu){}var oe=function(){return void 0===Y&&(Y=!J&&!X&&"undefined"!==typeof e&&(e["process"]&&"server"===e["process"].env.VUE_ENV)),Y},le=J&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function pe(e){return"function"===typeof e&&/native code/.test(e.toString())}var se,ce="undefined"!==typeof Symbol&&pe(Symbol)&&"undefined"!==typeof Reflect&&pe(Reflect.ownKeys);se="undefined"!==typeof Set&&pe(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var be=_,ye=0,Se=function(){this.id=ye++,this.subs=[]};Se.prototype.addSub=function(e){this.subs.push(e)},Se.prototype.removeSub=function(e){T(this.subs,e)},Se.prototype.depend=function(){Se.target&&Se.target.addDep(this)},Se.prototype.notify=function(){var e=this.subs.slice();for(var a=0,n=e.length;a-1)if(i&&!f(t,"default"))u=!1;else if(""===u||u===M(e)){var d=aa(String,t.type);(d<0||r0&&(g=ja(g,(a||"")+"_"+n),Ma(g[0])&&Ma(o)&&(l[r]=ve(o.text+g[0].text),g.shift()),l.push.apply(l,g)):d(g)?Ma(o)?l[r]=ve(o.text+g):""!==g&&l.push(ve(g)):Ma(g)&&Ma(o)?l[r]=ve(o.text+g.text):(u(e._isVList)&&i(g.tag)&&t(g.key)&&i(a)&&(g.key="__vlist"+a+"_"+n+"__"),l.push(g)));return l}function za(e){var a=e.$options.provide;a&&(e._provided="function"===typeof a?a.call(e):a)}function Ca(e){var a=Pa(e.$options.inject,e);a&&(Ce(!1),Object.keys(a).forEach((function(n){Ee(e,n,a[n])})),Ce(!0))}function Pa(e,a){if(e){for(var n=Object.create(null),g=ce?Reflect.ownKeys(e):Object.keys(e),t=0;t0,u=e?!!e.$stable:!i,r=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(u&&n&&n!==g&&r===n.$key&&!i&&!n.$hasNormal)return n;for(var d in t={},e)e[d]&&"$"!==d[0]&&(t[d]=Ea(a,d,e[d]))}else t={};for(var o in a)o in t||(t[o]=Ba(a,o));return e&&Object.isExtensible(e)&&(e._normalized=t),W(t,"$stable",u),W(t,"$key",r),W(t,"$hasNormal",i),t}function Ea(e,a,n){var g=function(){var e=arguments.length?n.apply(null,arguments):n({});return e=e&&"object"===typeof e&&!Array.isArray(e)?[e]:xa(e),e&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,a,{get:g,enumerable:!0,configurable:!0}),g}function Ba(e,a){return function(){return e[a]}}function Oa(e,a){var n,g,t,u,r;if(Array.isArray(e)||"string"===typeof e)for(n=new Array(e.length),g=0,t=e.length;g1?P(n):n;for(var g=P(arguments,1),t='event handler for "'+e+'"',i=0,u=n.length;idocument.createEvent("Event").timeStamp&&(Yn=function(){return Zn.now()})}function Jn(){var e,a;for($n=Yn(),Fn=!0,Rn.sort((function(e,a){return e.id-a.id})),Wn=0;WnWn&&Rn[n].id>e.id)n--;Rn.splice(n+1,0,e)}else Rn.push(e);Vn||(Vn=!0,ya(Jn))}}var ng=0,gg=function(e,a,n,g,t){this.vm=e,t&&(e._watcher=this),e._watchers.push(this),g?(this.deep=!!g.deep,this.user=!!g.user,this.lazy=!!g.lazy,this.sync=!!g.sync,this.before=g.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ng,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new se,this.newDepIds=new se,this.expression="","function"===typeof a?this.getter=a:(this.getter=$(a),this.getter||(this.getter=_)),this.value=this.lazy?void 0:this.get()};gg.prototype.get=function(){var e;Ae(this);var a=this.vm;try{e=this.getter.call(a,a)}catch(vu){if(!this.user)throw vu;na(vu,a,'getter for watcher "'+this.expression+'"')}finally{this.deep&&ha(e),Te(),this.cleanupDeps()}return e},gg.prototype.addDep=function(e){var a=e.id;this.newDepIds.has(a)||(this.newDepIds.add(a),this.newDeps.push(e),this.depIds.has(a)||e.addSub(this))},gg.prototype.cleanupDeps=function(){var e=this.deps.length;while(e--){var a=this.deps[e];this.newDepIds.has(a.id)||a.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},gg.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ag(this)},gg.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var a=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,a)}catch(vu){na(vu,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,a)}}},gg.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},gg.prototype.depend=function(){var e=this.deps.length;while(e--)this.deps[e].depend()},gg.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||T(this.vm._watchers,this);var e=this.deps.length;while(e--)this.deps[e].removeSub(this);this.active=!1}};var tg={enumerable:!0,configurable:!0,get:_,set:_};function ig(e,a,n){tg.get=function(){return this[a][n]},tg.set=function(e){this[a][n]=e},Object.defineProperty(e,n,tg)}function ug(e){e._watchers=[];var a=e.$options;a.props&&rg(e,a.props),a.methods&&yg(e,a.methods),a.data?dg(e):_e(e._data={},!0),a.computed&&pg(e,a.computed),a.watch&&a.watch!==ue&&Sg(e,a.watch)}function rg(e,a){var n=e.$options.propsData||{},g=e._props={},t=e.$options._propKeys=[],i=!e.$parent;i||Ce(!1);var u=function(i){t.push(i);var u=Je(i,a,n,e);Ee(g,i,u),i in e||ig(e,"_props",i)};for(var r in a)u(r);Ce(!0)}function dg(e){var a=e.$options.data;a=e._data="function"===typeof a?og(a,e):a||{},p(a)||(a={});var n=Object.keys(a),g=e.$options.props,t=(e.$options.methods,n.length);while(t--){var i=n[t];0,g&&f(g,i)||F(i)||ig(e,"_data",i)}_e(a,!0)}function og(e,a){Ae();try{return e.call(a,a)}catch(vu){return na(vu,a,"data()"),{}}finally{Te()}}var lg={lazy:!0};function pg(e,a){var n=e._computedWatchers=Object.create(null),g=oe();for(var t in a){var i=a[t],u="function"===typeof i?i:i.get;0,g||(n[t]=new gg(e,u||_,_,lg)),t in e||sg(e,t,i)}}function sg(e,a,n){var g=!oe();"function"===typeof n?(tg.get=g?cg(a):bg(n),tg.set=_):(tg.get=n.get?g&&!1!==n.cache?cg(a):bg(n.get):_,tg.set=n.set||_),Object.defineProperty(e,a,tg)}function cg(e){return function(){var a=this._computedWatchers&&this._computedWatchers[e];if(a)return a.dirty&&a.evaluate(),Se.target&&a.depend(),a.value}}function bg(e){return function(){return e.call(this,this)}}function yg(e,a){e.$options.props;for(var n in a)e[n]="function"!==typeof a[n]?_:C(a[n],e)}function Sg(e,a){for(var n in a){var g=a[n];if(Array.isArray(g))for(var t=0;t-1)return this;var n=P(arguments,1);return n.unshift(this),"function"===typeof e.install?e.install.apply(e,n):"function"===typeof e&&e.apply(null,n),a.push(e),this}}function xg(e){e.mixin=function(e){return this.options=Ye(this.options,e),this}}function Mg(e){e.cid=0;var a=1;e.extend=function(e){e=e||{};var n=this,g=n.cid,t=e._Ctor||(e._Ctor={});if(t[g])return t[g];var i=e.name||n.options.name;var u=function(e){this._init(e)};return u.prototype=Object.create(n.prototype),u.prototype.constructor=u,u.cid=a++,u.options=Ye(n.options,e),u["super"]=n,u.options.props&&jg(u),u.options.computed&&zg(u),u.extend=n.extend,u.mixin=n.mixin,u.use=n.use,R.forEach((function(e){u[e]=n[e]})),i&&(u.options.components[i]=u),u.superOptions=n.options,u.extendOptions=e,u.sealedOptions=L({},u.options),t[g]=u,u}}function jg(e){var a=e.options.props;for(var n in a)ig(e.prototype,"_props",n)}function zg(e){var a=e.options.computed;for(var n in a)sg(e.prototype,n,a[n])}function Cg(e){R.forEach((function(a){e[a]=function(e,n){return n?("component"===a&&p(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===a&&"function"===typeof n&&(n={bind:n,update:n}),this.options[a+"s"][e]=n,n):this.options[a+"s"][e]}}))}function Pg(e){return e&&(e.Ctor.options.name||e.tag)}function Lg(e,a){return Array.isArray(e)?e.indexOf(a)>-1:"string"===typeof e?e.split(",").indexOf(a)>-1:!!s(e)&&e.test(a)}function Ng(e,a){var n=e.cache,g=e.keys,t=e._vnode;for(var i in n){var u=n[i];if(u){var r=Pg(u.componentOptions);r&&!a(r)&&_g(n,i,g,t)}}}function _g(e,a,n,g){var t=e[a];!t||g&&t.tag===g.tag||t.componentInstance.$destroy(),e[a]=null,T(n,a)}mg(kg),Ag(kg),Cn(kg),_n(kg),Tn(kg);var Eg=[String,RegExp,Array],Bg={name:"keep-alive",abstract:!0,props:{include:Eg,exclude:Eg,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)_g(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",(function(a){Ng(e,(function(e){return Lg(a,e)}))})),this.$watch("exclude",(function(a){Ng(e,(function(e){return!Lg(a,e)}))}))},render:function(){var e=this.$slots.default,a=kn(e),n=a&&a.componentOptions;if(n){var g=Pg(n),t=this,i=t.include,u=t.exclude;if(i&&(!g||!Lg(i,g))||u&&g&&Lg(u,g))return a;var r=this,d=r.cache,o=r.keys,l=null==a.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):a.key;d[l]?(a.componentInstance=d[l].componentInstance,T(o,l),o.push(l)):(d[l]=a,o.push(l),this.max&&o.length>parseInt(this.max)&&_g(d,o[0],o,this._vnode)),a.data.keepAlive=!0}return a||e&&e[0]}},Og={KeepAlive:Bg};function Kg(e){var a={get:function(){return G}};Object.defineProperty(e,"config",a),e.util={warn:be,extend:L,mergeOptions:Ye,defineReactive:Ee},e.set=Be,e.delete=Oe,e.nextTick=ya,e.observable=function(e){return _e(e),e},e.options=Object.create(null),R.forEach((function(a){e.options[a+"s"]=Object.create(null)})),e.options._base=e,L(e.options.components,Og),wg(e),xg(e),Mg(e),Cg(e)}Kg(kg),Object.defineProperty(kg.prototype,"$isServer",{get:oe}),Object.defineProperty(kg.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kg,"FunctionalRenderContext",{value:Xa}),kg.version="2.6.12";var qg=h("style,class"),Ig=h("input,textarea,option,select,progress"),Rg=function(e,a,n){return"value"===n&&Ig(e)&&"button"!==a||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Hg=h("contenteditable,draggable,spellcheck"),Gg=h("events,caret,typing,plaintext-only"),Vg=function(e,a){return Yg(a)||"false"===a?"false":"contenteditable"===e&&Gg(a)?a:"true"},Fg=h("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Wg="http://www.w3.org/1999/xlink",Ug=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},$g=function(e){return Ug(e)?e.slice(6,e.length):""},Yg=function(e){return null==e||!1===e};function Zg(e){var a=e.data,n=e,g=e;while(i(g.componentInstance))g=g.componentInstance._vnode,g&&g.data&&(a=Jg(g.data,a));while(i(n=n.parent))n&&n.data&&(a=Jg(a,n.data));return Xg(a.staticClass,a.class)}function Jg(e,a){return{staticClass:Qg(e.staticClass,a.staticClass),class:i(e.class)?[e.class,a.class]:a.class}}function Xg(e,a){return i(e)||i(a)?Qg(e,et(a)):""}function Qg(e,a){return e?a?e+" "+a:e:a||""}function et(e){return Array.isArray(e)?at(e):o(e)?nt(e):"string"===typeof e?e:""}function at(e){for(var a,n="",g=0,t=e.length;g-1?dt[e]=a.constructor===window.HTMLUnknownElement||a.constructor===window.HTMLElement:dt[e]=/HTMLUnknownElement/.test(a.toString())}var lt=h("text,number,password,search,email,tel,url");function pt(e){if("string"===typeof e){var a=document.querySelector(e);return a||document.createElement("div")}return e}function st(e,a){var n=document.createElement(e);return"select"!==e?n:(a.data&&a.data.attrs&&void 0!==a.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function ct(e,a){return document.createElementNS(gt[e],a)}function bt(e){return document.createTextNode(e)}function yt(e){return document.createComment(e)}function St(e,a,n){e.insertBefore(a,n)}function ht(e,a){e.removeChild(a)}function At(e,a){e.appendChild(a)}function Tt(e){return e.parentNode}function mt(e){return e.nextSibling}function ft(e){return e.tagName}function Dt(e,a){e.textContent=a}function vt(e,a){e.setAttribute(a,"")}var kt=Object.freeze({createElement:st,createElementNS:ct,createTextNode:bt,createComment:yt,insertBefore:St,removeChild:ht,appendChild:At,parentNode:Tt,nextSibling:mt,tagName:ft,setTextContent:Dt,setStyleScope:vt}),wt={create:function(e,a){xt(a)},update:function(e,a){e.data.ref!==a.data.ref&&(xt(e,!0),xt(a))},destroy:function(e){xt(e,!0)}};function xt(e,a){var n=e.data.ref;if(i(n)){var g=e.context,t=e.componentInstance||e.elm,u=g.$refs;a?Array.isArray(u[n])?T(u[n],t):u[n]===t&&(u[n]=void 0):e.data.refInFor?Array.isArray(u[n])?u[n].indexOf(t)<0&&u[n].push(t):u[n]=[t]:u[n]=t}}var Mt=new me("",{},[]),jt=["create","activate","update","remove","destroy"];function zt(e,a){return e.key===a.key&&(e.tag===a.tag&&e.isComment===a.isComment&&i(e.data)===i(a.data)&&Ct(e,a)||u(e.isAsyncPlaceholder)&&e.asyncFactory===a.asyncFactory&&t(a.asyncFactory.error))}function Ct(e,a){if("input"!==e.tag)return!0;var n,g=i(n=e.data)&&i(n=n.attrs)&&n.type,t=i(n=a.data)&&i(n=n.attrs)&&n.type;return g===t||lt(g)&<(t)}function Pt(e,a,n){var g,t,u={};for(g=a;g<=n;++g)t=e[g].key,i(t)&&(u[t]=g);return u}function Lt(e){var a,n,g={},r=e.modules,o=e.nodeOps;for(a=0;ay?(p=t(n[A+1])?null:n[A+1].elm,v(e,p,n,b,A,g)):b>A&&w(a,s,y)}function j(e,a,n,g){for(var t=n;t-1?Gt(e,a,n):Fg(a)?Yg(n)?e.removeAttribute(a):(n="allowfullscreen"===a&&"EMBED"===e.tagName?"true":a,e.setAttribute(a,n)):Hg(a)?e.setAttribute(a,Vg(a,n)):Ug(a)?Yg(n)?e.removeAttributeNS(Wg,$g(a)):e.setAttributeNS(Wg,a,n):Gt(e,a,n)}function Gt(e,a,n){if(Yg(n))e.removeAttribute(a);else{if(ae&&!ne&&"TEXTAREA"===e.tagName&&"placeholder"===a&&""!==n&&!e.__ieph){var g=function(a){a.stopImmediatePropagation(),e.removeEventListener("input",g)};e.addEventListener("input",g),e.__ieph=!0}e.setAttribute(a,n)}}var Vt={create:Rt,update:Rt};function Ft(e,a){var n=a.elm,g=a.data,u=e.data;if(!(t(g.staticClass)&&t(g.class)&&(t(u)||t(u.staticClass)&&t(u.class)))){var r=Zg(a),d=n._transitionClasses;i(d)&&(r=Qg(r,et(d))),r!==n._prevClass&&(n.setAttribute("class",r),n._prevClass=r)}}var Wt,Ut={create:Ft,update:Ft},$t="__r",Yt="__c";function Zt(e){if(i(e[$t])){var a=ae?"change":"input";e[a]=[].concat(e[$t],e[a]||[]),delete e[$t]}i(e[Yt])&&(e.change=[].concat(e[Yt],e.change||[]),delete e[Yt])}function Jt(e,a,n){var g=Wt;return function t(){var i=a.apply(null,arguments);null!==i&&ei(e,t,n,g)}}var Xt=ra&&!(ie&&Number(ie[1])<=53);function Qt(e,a,n,g){if(Xt){var t=$n,i=a;a=i._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=t||e.timeStamp<=0||e.target.ownerDocument!==document)return i.apply(this,arguments)}}Wt.addEventListener(e,a,re?{capture:n,passive:g}:n)}function ei(e,a,n,g){(g||Wt).removeEventListener(e,a._wrapper||a,n)}function ai(e,a){if(!t(e.data.on)||!t(a.data.on)){var n=a.data.on||{},g=e.data.on||{};Wt=a.elm,Zt(n),fa(n,g,Qt,ei,Jt,a.context),Wt=void 0}}var ni,gi={create:ai,update:ai};function ti(e,a){if(!t(e.data.domProps)||!t(a.data.domProps)){var n,g,u=a.elm,r=e.data.domProps||{},d=a.data.domProps||{};for(n in i(d.__ob__)&&(d=a.data.domProps=L({},d)),r)n in d||(u[n]="");for(n in d){if(g=d[n],"textContent"===n||"innerHTML"===n){if(a.children&&(a.children.length=0),g===r[n])continue;1===u.childNodes.length&&u.removeChild(u.childNodes[0])}if("value"===n&&"PROGRESS"!==u.tagName){u._value=g;var o=t(g)?"":String(g);ii(u,o)&&(u.value=o)}else if("innerHTML"===n&&it(u.tagName)&&t(u.innerHTML)){ni=ni||document.createElement("div"),ni.innerHTML=""+g+"";var l=ni.firstChild;while(u.firstChild)u.removeChild(u.firstChild);while(l.firstChild)u.appendChild(l.firstChild)}else if(g!==r[n])try{u[n]=g}catch(vu){}}}}function ii(e,a){return!e.composing&&("OPTION"===e.tagName||ui(e,a)||ri(e,a))}function ui(e,a){var n=!0;try{n=document.activeElement!==e}catch(vu){}return n&&e.value!==a}function ri(e,a){var n=e.value,g=e._vModifiers;if(i(g)){if(g.number)return S(n)!==S(a);if(g.trim)return n.trim()!==a.trim()}return n!==a}var di={create:ti,update:ti},oi=D((function(e){var a={},n=/;(?![^(]*\))/g,g=/:(.+)/;return e.split(n).forEach((function(e){if(e){var n=e.split(g);n.length>1&&(a[n[0].trim()]=n[1].trim())}})),a}));function li(e){var a=pi(e.style);return e.staticStyle?L(e.staticStyle,a):a}function pi(e){return Array.isArray(e)?N(e):"string"===typeof e?oi(e):e}function si(e,a){var n,g={};if(a){var t=e;while(t.componentInstance)t=t.componentInstance._vnode,t&&t.data&&(n=li(t.data))&&L(g,n)}(n=li(e.data))&&L(g,n);var i=e;while(i=i.parent)i.data&&(n=li(i.data))&&L(g,n);return g}var ci,bi=/^--/,yi=/\s*!important$/,Si=function(e,a,n){if(bi.test(a))e.style.setProperty(a,n);else if(yi.test(n))e.style.setProperty(M(a),n.replace(yi,""),"important");else{var g=Ai(a);if(Array.isArray(n))for(var t=0,i=n.length;t-1?a.split(fi).forEach((function(a){return e.classList.add(a)})):e.classList.add(a);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+a+" ")<0&&e.setAttribute("class",(n+a).trim())}}function vi(e,a){if(a&&(a=a.trim()))if(e.classList)a.indexOf(" ")>-1?a.split(fi).forEach((function(a){return e.classList.remove(a)})):e.classList.remove(a),e.classList.length||e.removeAttribute("class");else{var n=" "+(e.getAttribute("class")||"")+" ",g=" "+a+" ";while(n.indexOf(g)>=0)n=n.replace(g," ");n=n.trim(),n?e.setAttribute("class",n):e.removeAttribute("class")}}function ki(e){if(e){if("object"===typeof e){var a={};return!1!==e.css&&L(a,wi(e.name||"v")),L(a,e),a}return"string"===typeof e?wi(e):void 0}}var wi=D((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),xi=J&&!ne,Mi="transition",ji="animation",zi="transition",Ci="transitionend",Pi="animation",Li="animationend";xi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(zi="WebkitTransition",Ci="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Pi="WebkitAnimation",Li="webkitAnimationEnd"));var Ni=J?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function _i(e){Ni((function(){Ni(e)}))}function Ei(e,a){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(a)<0&&(n.push(a),Di(e,a))}function Bi(e,a){e._transitionClasses&&T(e._transitionClasses,a),vi(e,a)}function Oi(e,a,n){var g=qi(e,a),t=g.type,i=g.timeout,u=g.propCount;if(!t)return n();var r=t===Mi?Ci:Li,d=0,o=function(){e.removeEventListener(r,l),n()},l=function(a){a.target===e&&++d>=u&&o()};setTimeout((function(){d0&&(n=Mi,l=u,p=i.length):a===ji?o>0&&(n=ji,l=o,p=d.length):(l=Math.max(u,o),n=l>0?u>o?Mi:ji:null,p=n?n===Mi?i.length:d.length:0);var s=n===Mi&&Ki.test(g[zi+"Property"]);return{type:n,timeout:l,propCount:p,hasTransform:s}}function Ii(e,a){while(e.length1}function Wi(e,a){!0!==a.data.show&&Hi(a)}var Ui=J?{create:Wi,activate:Wi,remove:function(e,a){!0!==e.data.show?Gi(e,a):a()}}:{},$i=[Vt,Ut,gi,di,mi,Ui],Yi=$i.concat(It),Zi=Lt({nodeOps:kt,modules:Yi});ne&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&tu(e,"input")}));var Ji={inserted:function(e,a,n,g){"select"===n.tag?(g.elm&&!g.elm._vOptions?Da(n,"postpatch",(function(){Ji.componentUpdated(e,a,n)})):Xi(e,a,n.context),e._vOptions=[].map.call(e.options,au)):("textarea"===n.tag||lt(e.type))&&(e._vModifiers=a.modifiers,a.modifiers.lazy||(e.addEventListener("compositionstart",nu),e.addEventListener("compositionend",gu),e.addEventListener("change",gu),ne&&(e.vmodel=!0)))},componentUpdated:function(e,a,n){if("select"===n.tag){Xi(e,a,n.context);var g=e._vOptions,t=e._vOptions=[].map.call(e.options,au);if(t.some((function(e,a){return!O(e,g[a])}))){var i=e.multiple?a.value.some((function(e){return eu(e,t)})):a.value!==a.oldValue&&eu(a.value,t);i&&tu(e,"change")}}}};function Xi(e,a,n){Qi(e,a,n),(ae||ge)&&setTimeout((function(){Qi(e,a,n)}),0)}function Qi(e,a,n){var g=a.value,t=e.multiple;if(!t||Array.isArray(g)){for(var i,u,r=0,d=e.options.length;r-1,u.selected!==i&&(u.selected=i);else if(O(au(u),g))return void(e.selectedIndex!==r&&(e.selectedIndex=r));t||(e.selectedIndex=-1)}}function eu(e,a){return a.every((function(a){return!O(a,e)}))}function au(e){return"_value"in e?e._value:e.value}function nu(e){e.target.composing=!0}function gu(e){e.target.composing&&(e.target.composing=!1,tu(e.target,"input"))}function tu(e,a){var n=document.createEvent("HTMLEvents");n.initEvent(a,!0,!0),e.dispatchEvent(n)}function iu(e){return!e.componentInstance||e.data&&e.data.transition?e:iu(e.componentInstance._vnode)}var uu={bind:function(e,a,n){var g=a.value;n=iu(n);var t=n.data&&n.data.transition,i=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;g&&t?(n.data.show=!0,Hi(n,(function(){e.style.display=i}))):e.style.display=g?i:"none"},update:function(e,a,n){var g=a.value,t=a.oldValue;if(!g!==!t){n=iu(n);var i=n.data&&n.data.transition;i?(n.data.show=!0,g?Hi(n,(function(){e.style.display=e.__vOriginalDisplay})):Gi(n,(function(){e.style.display="none"}))):e.style.display=g?e.__vOriginalDisplay:"none"}},unbind:function(e,a,n,g,t){t||(e.style.display=e.__vOriginalDisplay)}},ru={model:Ji,show:uu},du={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ou(e){var a=e&&e.componentOptions;return a&&a.Ctor.options.abstract?ou(kn(a.children)):e}function lu(e){var a={},n=e.$options;for(var g in n.propsData)a[g]=e[g];var t=n._parentListeners;for(var i in t)a[k(i)]=t[i];return a}function pu(e,a){if(/\d-keep-alive$/.test(a.tag))return e("keep-alive",{props:a.componentOptions.propsData})}function su(e){while(e=e.parent)if(e.data.transition)return!0}function cu(e,a){return a.key===e.key&&a.tag===e.tag}var bu=function(e){return e.tag||vn(e)},yu=function(e){return"show"===e.name},Su={name:"transition",props:du,abstract:!0,render:function(e){var a=this,n=this.$slots.default;if(n&&(n=n.filter(bu),n.length)){0;var g=this.mode;0;var t=n[0];if(su(this.$vnode))return t;var i=ou(t);if(!i)return t;if(this._leaving)return pu(e,t);var u="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?u+"comment":u+i.tag:d(i.key)?0===String(i.key).indexOf(u)?i.key:u+i.key:i.key;var r=(i.data||(i.data={})).transition=lu(this),o=this._vnode,l=ou(o);if(i.data.directives&&i.data.directives.some(yu)&&(i.data.show=!0),l&&l.data&&!cu(i,l)&&!vn(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var p=l.data.transition=L({},r);if("out-in"===g)return this._leaving=!0,Da(p,"afterLeave",(function(){a._leaving=!1,a.$forceUpdate()})),pu(e,t);if("in-out"===g){if(vn(i))return o;var s,c=function(){s()};Da(r,"afterEnter",c),Da(r,"enterCancelled",c),Da(p,"delayLeave",(function(e){s=e}))}}return t}}},hu=L({tag:String,moveClass:String},du);delete hu.mode;var Au={props:hu,beforeMount:function(){var e=this,a=this._update;this._update=function(n,g){var t=Ln(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,t(),a.call(e,n,g)}},render:function(e){for(var a=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),g=this.prevChildren=this.children,t=this.$slots.default||[],i=this.children=[],u=lu(this),r=0;rp&&(s=s.slice(0,p)),u?s+r:r+s}},"2e37":function(e,a,n){var g=n("5ca1");g(g.S,"Number",{EPSILON:Math.pow(2,-52)})},"2e39":function(e,a,n){"use strict";function g(e,a){var n=a.length,g=e.length;if(g>n)return!1;if(g===n)return e===a;e:for(var t=0,i=0;t=2)e.mixin({beforeCreate:g});else{var n=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[g].concat(e.init):g,n.call(this,e)}}function g(){var e=this.$options;e.store?this.$store="function"===typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}n.d(a,"b",(function(){return B})),n.d(a,"c",(function(){return E})),n.d(a,"d",(function(){return _})),n.d(a,"e",(function(){return N}));var t="undefined"!==typeof window?window:"undefined"!==typeof e?e:{},i=t.__VUE_DEVTOOLS_GLOBAL_HOOK__;function u(e){i&&(e._devtoolHook=i,i.emit("vuex:init",e),i.on("vuex:travel-to-state",(function(a){e.replaceState(a)})),e.subscribe((function(e,a){i.emit("vuex:mutation",e,a)}),{prepend:!0}),e.subscribeAction((function(e,a){i.emit("vuex:action",e,a)}),{prepend:!0}))}function r(e,a){return e.filter(a)[0]}function d(e,a){if(void 0===a&&(a=[]),null===e||"object"!==typeof e)return e;var n=r(a,(function(a){return a.original===e}));if(n)return n.copy;var g=Array.isArray(e)?[]:{};return a.push({original:e,copy:g}),Object.keys(e).forEach((function(n){g[n]=d(e[n],a)})),g}function o(e,a){Object.keys(e).forEach((function(n){return a(e[n],n)}))}function l(e){return null!==e&&"object"===typeof e}function p(e){return e&&"function"===typeof e.then}function s(e,a){return function(){return e(a)}}var c=function(e,a){this.runtime=a,this._children=Object.create(null),this._rawModule=e;var n=e.state;this.state=("function"===typeof n?n():n)||{}},b={namespaced:{configurable:!0}};b.namespaced.get=function(){return!!this._rawModule.namespaced},c.prototype.addChild=function(e,a){this._children[e]=a},c.prototype.removeChild=function(e){delete this._children[e]},c.prototype.getChild=function(e){return this._children[e]},c.prototype.hasChild=function(e){return e in this._children},c.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},c.prototype.forEachChild=function(e){o(this._children,e)},c.prototype.forEachGetter=function(e){this._rawModule.getters&&o(this._rawModule.getters,e)},c.prototype.forEachAction=function(e){this._rawModule.actions&&o(this._rawModule.actions,e)},c.prototype.forEachMutation=function(e){this._rawModule.mutations&&o(this._rawModule.mutations,e)},Object.defineProperties(c.prototype,b);var y=function(e){this.register([],e,!1)};function S(e,a,n){if(a.update(n),n.modules)for(var g in n.modules){if(!a.getChild(g))return void 0;S(e.concat(g),a.getChild(g),n.modules[g])}}y.prototype.get=function(e){return e.reduce((function(e,a){return e.getChild(a)}),this.root)},y.prototype.getNamespace=function(e){var a=this.root;return e.reduce((function(e,n){return a=a.getChild(n),e+(a.namespaced?n+"/":"")}),"")},y.prototype.update=function(e){S([],this.root,e)},y.prototype.register=function(e,a,n){var g=this;void 0===n&&(n=!0);var t=new c(a,n);if(0===e.length)this.root=t;else{var i=this.get(e.slice(0,-1));i.addChild(e[e.length-1],t)}a.modules&&o(a.modules,(function(a,t){g.register(e.concat(t),a,n)}))},y.prototype.unregister=function(e){var a=this.get(e.slice(0,-1)),n=e[e.length-1],g=a.getChild(n);g&&g.runtime&&a.removeChild(n)},y.prototype.isRegistered=function(e){var a=this.get(e.slice(0,-1)),n=e[e.length-1];return a.hasChild(n)};var h;var A=function(e){var a=this;void 0===e&&(e={}),!h&&"undefined"!==typeof window&&window.Vue&&L(window.Vue);var n=e.plugins;void 0===n&&(n=[]);var g=e.strict;void 0===g&&(g=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new y(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new h,this._makeLocalGettersCache=Object.create(null);var t=this,i=this,r=i.dispatch,d=i.commit;this.dispatch=function(e,a){return r.call(t,e,a)},this.commit=function(e,a,n){return d.call(t,e,a,n)},this.strict=g;var o=this._modules.root.state;v(this,o,[],this._modules.root),D(this,o),n.forEach((function(e){return e(a)}));var l=void 0!==e.devtools?e.devtools:h.config.devtools;l&&u(this)},T={state:{configurable:!0}};function m(e,a,n){return a.indexOf(e)<0&&(n&&n.prepend?a.unshift(e):a.push(e)),function(){var n=a.indexOf(e);n>-1&&a.splice(n,1)}}function f(e,a){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;v(e,n,[],e._modules.root,!0),D(e,n,a)}function D(e,a,n){var g=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var t=e._wrappedGetters,i={};o(t,(function(a,n){i[n]=s(a,e),Object.defineProperty(e.getters,n,{get:function(){return e._vm[n]},enumerable:!0})}));var u=h.config.silent;h.config.silent=!0,e._vm=new h({data:{$$state:a},computed:i}),h.config.silent=u,e.strict&&z(e),g&&(n&&e._withCommit((function(){g._data.$$state=null})),h.nextTick((function(){return g.$destroy()})))}function v(e,a,n,g,t){var i=!n.length,u=e._modules.getNamespace(n);if(g.namespaced&&(e._modulesNamespaceMap[u],e._modulesNamespaceMap[u]=g),!i&&!t){var r=C(a,n.slice(0,-1)),d=n[n.length-1];e._withCommit((function(){h.set(r,d,g.state)}))}var o=g.context=k(e,u,n);g.forEachMutation((function(a,n){var g=u+n;x(e,g,a,o)})),g.forEachAction((function(a,n){var g=a.root?n:u+n,t=a.handler||a;M(e,g,t,o)})),g.forEachGetter((function(a,n){var g=u+n;j(e,g,a,o)})),g.forEachChild((function(g,i){v(e,a,n.concat(i),g,t)}))}function k(e,a,n){var g=""===a,t={dispatch:g?e.dispatch:function(n,g,t){var i=P(n,g,t),u=i.payload,r=i.options,d=i.type;return r&&r.root||(d=a+d),e.dispatch(d,u)},commit:g?e.commit:function(n,g,t){var i=P(n,g,t),u=i.payload,r=i.options,d=i.type;r&&r.root||(d=a+d),e.commit(d,u,r)}};return Object.defineProperties(t,{getters:{get:g?function(){return e.getters}:function(){return w(e,a)}},state:{get:function(){return C(e.state,n)}}}),t}function w(e,a){if(!e._makeLocalGettersCache[a]){var n={},g=a.length;Object.keys(e.getters).forEach((function(t){if(t.slice(0,g)===a){var i=t.slice(g);Object.defineProperty(n,i,{get:function(){return e.getters[t]},enumerable:!0})}})),e._makeLocalGettersCache[a]=n}return e._makeLocalGettersCache[a]}function x(e,a,n,g){var t=e._mutations[a]||(e._mutations[a]=[]);t.push((function(a){n.call(e,g.state,a)}))}function M(e,a,n,g){var t=e._actions[a]||(e._actions[a]=[]);t.push((function(a){var t=n.call(e,{dispatch:g.dispatch,commit:g.commit,getters:g.getters,state:g.state,rootGetters:e.getters,rootState:e.state},a);return p(t)||(t=Promise.resolve(t)),e._devtoolHook?t.catch((function(a){throw e._devtoolHook.emit("vuex:error",a),a})):t}))}function j(e,a,n,g){e._wrappedGetters[a]||(e._wrappedGetters[a]=function(e){return n(g.state,g.getters,e.state,e.getters)})}function z(e){e._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}function C(e,a){return a.reduce((function(e,a){return e[a]}),e)}function P(e,a,n){return l(e)&&e.type&&(n=a,a=e,e=e.type),{type:e,payload:a,options:n}}function L(e){h&&e===h||(h=e,g(h))}T.state.get=function(){return this._vm._data.$$state},T.state.set=function(e){0},A.prototype.commit=function(e,a,n){var g=this,t=P(e,a,n),i=t.type,u=t.payload,r=(t.options,{type:i,payload:u}),d=this._mutations[i];d&&(this._withCommit((function(){d.forEach((function(e){e(u)}))})),this._subscribers.slice().forEach((function(e){return e(r,g.state)})))},A.prototype.dispatch=function(e,a){var n=this,g=P(e,a),t=g.type,i=g.payload,u={type:t,payload:i},r=this._actions[t];if(r){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(u,n.state)}))}catch(o){0}var d=r.length>1?Promise.all(r.map((function(e){return e(i)}))):r[0](i);return new Promise((function(e,a){d.then((function(a){try{n._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(u,n.state)}))}catch(o){0}e(a)}),(function(e){try{n._actionSubscribers.filter((function(e){return e.error})).forEach((function(a){return a.error(u,n.state,e)}))}catch(o){0}a(e)}))}))}},A.prototype.subscribe=function(e,a){return m(e,this._subscribers,a)},A.prototype.subscribeAction=function(e,a){var n="function"===typeof e?{before:e}:e;return m(n,this._actionSubscribers,a)},A.prototype.watch=function(e,a,n){var g=this;return this._watcherVM.$watch((function(){return e(g.state,g.getters)}),a,n)},A.prototype.replaceState=function(e){var a=this;this._withCommit((function(){a._vm._data.$$state=e}))},A.prototype.registerModule=function(e,a,n){void 0===n&&(n={}),"string"===typeof e&&(e=[e]),this._modules.register(e,a),v(this,this.state,e,this._modules.get(e),n.preserveState),D(this,this.state)},A.prototype.unregisterModule=function(e){var a=this;"string"===typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var n=C(a.state,e.slice(0,-1));h.delete(n,e[e.length-1])})),f(this)},A.prototype.hasModule=function(e){return"string"===typeof e&&(e=[e]),this._modules.isRegistered(e)},A.prototype.hotUpdate=function(e){this._modules.update(e),f(this,!0)},A.prototype._withCommit=function(e){var a=this._committing;this._committing=!0,e(),this._committing=a},Object.defineProperties(A.prototype,T);var N=I((function(e,a){var n={};return K(a).forEach((function(a){var g=a.key,t=a.val;n[g]=function(){var a=this.$store.state,n=this.$store.getters;if(e){var g=R(this.$store,"mapState",e);if(!g)return;a=g.context.state,n=g.context.getters}return"function"===typeof t?t.call(this,a,n):a[t]},n[g].vuex=!0})),n})),_=I((function(e,a){var n={};return K(a).forEach((function(a){var g=a.key,t=a.val;n[g]=function(){var a=[],n=arguments.length;while(n--)a[n]=arguments[n];var g=this.$store.commit;if(e){var i=R(this.$store,"mapMutations",e);if(!i)return;g=i.context.commit}return"function"===typeof t?t.apply(this,[g].concat(a)):g.apply(this.$store,[t].concat(a))}})),n})),E=I((function(e,a){var n={};return K(a).forEach((function(a){var g=a.key,t=a.val;t=e+t,n[g]=function(){if(!e||R(this.$store,"mapGetters",e))return this.$store.getters[t]},n[g].vuex=!0})),n})),B=I((function(e,a){var n={};return K(a).forEach((function(a){var g=a.key,t=a.val;n[g]=function(){var a=[],n=arguments.length;while(n--)a[n]=arguments[n];var g=this.$store.dispatch;if(e){var i=R(this.$store,"mapActions",e);if(!i)return;g=i.context.dispatch}return"function"===typeof t?t.apply(this,[g].concat(a)):g.apply(this.$store,[t].concat(a))}})),n})),O=function(e){return{mapState:N.bind(null,e),mapGetters:E.bind(null,e),mapMutations:_.bind(null,e),mapActions:B.bind(null,e)}};function K(e){return q(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(a){return{key:a,val:e[a]}})):[]}function q(e){return Array.isArray(e)||l(e)}function I(e){return function(a,n){return"string"!==typeof a?(n=a,a=""):"/"!==a.charAt(a.length-1)&&(a+="/"),e(a,n)}}function R(e,a,n){var g=e._modulesNamespaceMap[n];return g}function H(e){void 0===e&&(e={});var a=e.collapsed;void 0===a&&(a=!0);var n=e.filter;void 0===n&&(n=function(e,a,n){return!0});var g=e.transformer;void 0===g&&(g=function(e){return e});var t=e.mutationTransformer;void 0===t&&(t=function(e){return e});var i=e.actionFilter;void 0===i&&(i=function(e,a){return!0});var u=e.actionTransformer;void 0===u&&(u=function(e){return e});var r=e.logMutations;void 0===r&&(r=!0);var o=e.logActions;void 0===o&&(o=!0);var l=e.logger;return void 0===l&&(l=console),function(e){var p=d(e.state);"undefined"!==typeof l&&(r&&e.subscribe((function(e,i){var u=d(i);if(n(e,p,u)){var r=F(),o=t(e),s="mutation "+e.type+r;G(l,s,a),l.log("%c prev state","color: #9E9E9E; font-weight: bold",g(p)),l.log("%c mutation","color: #03A9F4; font-weight: bold",o),l.log("%c next state","color: #4CAF50; font-weight: bold",g(u)),V(l)}p=u})),o&&e.subscribeAction((function(e,n){if(i(e,n)){var g=F(),t=u(e),r="action "+e.type+g;G(l,r,a),l.log("%c action","color: #03A9F4; font-weight: bold",t),V(l)}})))}}function G(e,a,n){var g=n?e.groupCollapsed:e.group;try{g.call(e,a)}catch(t){e.log(a)}}function V(e){try{e.groupEnd()}catch(a){e.log("—— log end ——")}}function F(){var e=new Date;return" @ "+U(e.getHours(),2)+":"+U(e.getMinutes(),2)+":"+U(e.getSeconds(),2)+"."+U(e.getMilliseconds(),3)}function W(e,a){return new Array(a+1).join(e)}function U(e,a){return W("0",a-e.toString().length)+e}var $={Store:A,install:L,version:"3.5.1",mapState:N,mapMutations:_,mapGetters:E,mapActions:B,createNamespacedHelpers:O,createLogger:H};a["a"]=$}).call(this,n("c8ba"))},"2fdb":function(e,a,n){"use strict";var g=n("5ca1"),t=n("d2c8"),i="includes";g(g.P+g.F*n("5147")(i),"String",{includes:function(e){return!!~t(this,e,i).indexOf(e,arguments.length>1?arguments[1]:void 0)}})},3022:function(e,a,n){(function(e){var g=Object.getOwnPropertyDescriptors||function(e){for(var a=Object.keys(e),n={},g=0;g=i)return e;switch(e){case"%s":return String(g[n++]);case"%d":return Number(g[n++]);case"%j":try{return JSON.stringify(g[n++])}catch(a){return"[Circular]"}default:return e}})),d=g[n];n=3&&(g.depth=arguments[2]),arguments.length>=4&&(g.colors=arguments[3]),A(n)?g.showHidden=n:n&&a._extend(g,n),k(g.showHidden)&&(g.showHidden=!1),k(g.depth)&&(g.depth=2),k(g.colors)&&(g.colors=!1),k(g.customInspect)&&(g.customInspect=!0),g.colors&&(g.stylize=d),p(g,e,g.depth)}function d(e,a){var n=r.styles[a];return n?"["+r.colors[n][0]+"m"+e+"["+r.colors[n][1]+"m":e}function o(e,a){return e}function l(e){var a={};return e.forEach((function(e,n){a[e]=!0})),a}function p(e,n,g){if(e.customInspect&&n&&z(n.inspect)&&n.inspect!==a.inspect&&(!n.constructor||n.constructor.prototype!==n)){var t=n.inspect(g,e);return D(t)||(t=p(e,t,g)),t}var i=s(e,n);if(i)return i;var u=Object.keys(n),r=l(u);if(e.showHidden&&(u=Object.getOwnPropertyNames(n)),j(n)&&(u.indexOf("message")>=0||u.indexOf("description")>=0))return c(n);if(0===u.length){if(z(n)){var d=n.name?": "+n.name:"";return e.stylize("[Function"+d+"]","special")}if(w(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(M(n))return e.stylize(Date.prototype.toString.call(n),"date");if(j(n))return c(n)}var o,A="",T=!1,m=["{","}"];if(h(n)&&(T=!0,m=["[","]"]),z(n)){var f=n.name?": "+n.name:"";A=" [Function"+f+"]"}return w(n)&&(A=" "+RegExp.prototype.toString.call(n)),M(n)&&(A=" "+Date.prototype.toUTCString.call(n)),j(n)&&(A=" "+c(n)),0!==u.length||T&&0!=n.length?g<0?w(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),o=T?b(e,n,g,r,u):u.map((function(a){return y(e,n,g,r,a,T)})),e.seen.pop(),S(o,A,m)):m[0]+A+m[1]}function s(e,a){if(k(a))return e.stylize("undefined","undefined");if(D(a)){var n="'"+JSON.stringify(a).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return f(a)?e.stylize(""+a,"number"):A(a)?e.stylize(""+a,"boolean"):T(a)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function b(e,a,n,g,t){for(var i=[],u=0,r=a.length;u-1&&(r=i?r.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+r.split("\n").map((function(e){return" "+e})).join("\n"))):r=e.stylize("[Circular]","special")),k(u)){if(i&&t.match(/^\d+$/))return r;u=JSON.stringify(""+t),u.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(u=u.substr(1,u.length-2),u=e.stylize(u,"name")):(u=u.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),u=e.stylize(u,"string"))}return u+": "+r}function S(e,a,n){var g=e.reduce((function(e,a){return a.indexOf("\n")>=0&&0,e+a.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return g>60?n[0]+(""===a?"":a+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+a+" "+e.join(", ")+" "+n[1]}function h(e){return Array.isArray(e)}function A(e){return"boolean"===typeof e}function T(e){return null===e}function m(e){return null==e}function f(e){return"number"===typeof e}function D(e){return"string"===typeof e}function v(e){return"symbol"===typeof e}function k(e){return void 0===e}function w(e){return x(e)&&"[object RegExp]"===P(e)}function x(e){return"object"===typeof e&&null!==e}function M(e){return x(e)&&"[object Date]"===P(e)}function j(e){return x(e)&&("[object Error]"===P(e)||e instanceof Error)}function z(e){return"function"===typeof e}function C(e){return null===e||"boolean"===typeof e||"number"===typeof e||"string"===typeof e||"symbol"===typeof e||"undefined"===typeof e}function P(e){return Object.prototype.toString.call(e)}function L(e){return e<10?"0"+e.toString(10):e.toString(10)}a.debuglog=function(n){if(k(i)&&(i=Object({NODE_ENV:"production",BASE_URL:"/"}).NODE_DEBUG||""),n=n.toUpperCase(),!u[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var g=e.pid;u[n]=function(){var e=a.format.apply(a,arguments);console.error("%s %d: %s",n,g,e)}}else u[n]=function(){};return u[n]},a.inspect=r,r.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},r.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},a.isArray=h,a.isBoolean=A,a.isNull=T,a.isNullOrUndefined=m,a.isNumber=f,a.isString=D,a.isSymbol=v,a.isUndefined=k,a.isRegExp=w,a.isObject=x,a.isDate=M,a.isError=j,a.isFunction=z,a.isPrimitive=C,a.isBuffer=n("d60a");var N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function _(){var e=new Date,a=[L(e.getHours()),L(e.getMinutes()),L(e.getSeconds())].join(":");return[e.getDate(),N[e.getMonth()],a].join(" ")}function E(e,a){return Object.prototype.hasOwnProperty.call(e,a)}a.log=function(){console.log("%s - %s",_(),a.format.apply(a,arguments))},a.inherits=n("28a0"),a._extend=function(e,a){if(!a||!x(a))return e;var n=Object.keys(a),g=n.length;while(g--)e[n[g]]=a[n[g]];return e};var B="undefined"!==typeof Symbol?Symbol("util.promisify.custom"):void 0;function O(e,a){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return a(e)}function K(a){if("function"!==typeof a)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],g=0;g1?arguments[1]:void 0,n),d=u>2?arguments[2]:void 0,o=void 0===d?n:t(d,n);while(o>r)a[r++]=e;return a}},"36c3":function(e,a,n){var g=n("335c"),t=n("25eb");e.exports=function(e){return g(t(e))}},"36fe":function(e){e.exports=JSON.parse('{"142":{"region":8882},"143":{"region":8883},"145":{"region":8884},"150":{"region":8885},"151":{"region":8886},"154":{"region":8887},"155":{"region":8888},"202":{"region":8889},"419":{"region":8890},"1901":{"variant":8893},"1994":{"variant":8895},"1996":{"variant":8896},"aa":{"language":0,"region":8587},"ab":{"language":1},"ae":{"language":2,"region":8590},"af":{"language":3,"region":8591},"ak":{"language":4},"am":{"language":5,"region":8595},"an":{"language":6,"region":8596},"ar":{"language":7,"region":8599},"as":{"language":8,"region":8600},"av":{"language":9},"ay":{"language":10},"az":{"language":11,"region":8605},"ba":{"language":12,"region":8606},"be":{"language":13,"region":8609},"bg":{"language":14,"region":8611},"bh":{"language":15,"region":8612},"bi":{"language":16,"region":8613},"bm":{"language":17,"region":8616},"bn":{"language":18,"region":8617},"bo":{"language":19,"region":8618},"br":{"language":20,"region":8620},"bs":{"language":21,"region":8621},"ca":{"language":22,"region":8628},"ce":{"language":23},"ch":{"language":24,"region":8633},"co":{"language":25,"region":8639},"cr":{"language":26,"region":8641},"cs":{"language":27,"region":8642},"cu":{"language":28,"region":8643},"cv":{"language":29,"region":8644},"cy":{"language":30,"region":8647},"da":{"language":31},"de":{"language":32,"region":8650},"dv":{"language":33},"dz":{"language":34,"region":8656},"ee":{"language":35,"region":8659},"el":{"language":36},"en":{"language":37},"eo":{"language":38},"es":{"language":39,"region":8663},"et":{"language":40,"region":8664},"eu":{"language":41,"region":8665},"fa":{"language":42},"ff":{"language":43},"fi":{"language":44,"region":8667},"fj":{"language":45,"region":8668},"fo":{"language":46,"region":8671},"fr":{"language":47,"region":8672},"fy":{"language":48},"ga":{"language":49,"region":8674},"gd":{"language":50,"region":8676},"gl":{"language":51,"region":8682},"gn":{"language":52,"region":8684},"gu":{"language":53,"region":8690},"gv":{"language":54},"ha":{"language":55},"he":{"language":56},"hi":{"language":57},"ho":{"language":58},"hr":{"language":59,"region":8696},"ht":{"language":60,"region":8697},"hu":{"language":61,"region":8698},"hy":{"language":62},"hz":{"language":63},"ia":{"language":64},"id":{"language":65,"region":8700},"ie":{"language":66,"region":8701},"ig":{"language":67},"ii":{"language":68},"ik":{"language":69},"in":{"language":70,"region":8704},"io":{"language":71,"region":8705},"is":{"language":72,"region":8708},"it":{"language":73,"region":8709},"iu":{"language":74},"iw":{"language":75},"ja":{"language":76},"ji":{"language":77},"jv":{"language":78},"jw":{"language":79},"ka":{"language":80},"kg":{"language":81,"region":8715},"ki":{"language":82,"region":8717},"kj":{"language":83},"kk":{"language":84},"kl":{"language":85},"km":{"language":86,"region":8718},"kn":{"language":87,"region":8719},"ko":{"language":88},"kr":{"language":89,"region":8721},"ks":{"language":90},"ku":{"language":91},"kv":{"language":92},"kw":{"language":93,"region":8722},"ky":{"language":94,"region":8723},"la":{"language":95,"region":8725},"lb":{"language":96,"region":8726},"lg":{"language":97},"li":{"language":98,"region":8728},"ln":{"language":99},"lo":{"language":100},"lt":{"language":101,"region":8732},"lu":{"language":102,"region":8733},"lv":{"language":103,"region":8734},"mg":{"language":104,"region":8741},"mh":{"language":105,"region":8742},"mi":{"language":106},"mk":{"language":107,"region":8743},"ml":{"language":108,"region":8744},"mn":{"language":109,"region":8746},"mo":{"language":110,"region":8747},"mr":{"language":111,"region":8750},"ms":{"language":112,"region":8751},"mt":{"language":113,"region":8752},"my":{"language":114,"region":8757},"na":{"language":115,"region":8759},"nb":{"language":116},"nd":{"language":117},"ne":{"language":118,"region":8761},"ng":{"language":119,"region":8763},"nl":{"language":120,"region":8765},"nn":{"language":121},"no":{"language":122,"region":8766},"nr":{"language":123,"region":8768},"nv":{"language":124},"ny":{"language":125},"oc":{"language":126},"oj":{"language":127},"om":{"language":128,"region":8772},"or":{"language":129},"os":{"language":130},"pa":{"language":131,"region":8773},"pi":{"language":132},"pl":{"language":133,"region":8779},"ps":{"language":134,"region":8783},"pt":{"language":135,"region":8784},"qu":{"language":136},"rm":{"language":137},"rn":{"language":138},"ro":{"language":139,"region":8790},"ru":{"language":140,"region":8792},"rw":{"language":141,"region":8793},"sa":{"language":142,"region":8794},"sc":{"language":143,"region":8796},"sd":{"language":144,"region":8797},"se":{"language":145,"region":8798},"sg":{"language":146,"region":8799},"sh":{"language":147,"region":8800},"si":{"language":148,"region":8801},"sk":{"language":149,"region":8803},"sl":{"language":150,"region":8804},"sm":{"language":151,"region":8805},"sn":{"language":152,"region":8806},"so":{"language":153,"region":8807},"sq":{"language":154},"sr":{"language":155,"region":8808},"ss":{"language":156,"region":8809},"st":{"language":157,"region":8810},"su":{"language":158,"region":8811},"sv":{"language":159,"region":8812},"sw":{"language":160},"ta":{"language":161,"region":8816},"te":{"language":162},"tg":{"language":163,"region":8820},"th":{"language":164,"region":8821},"ti":{"language":165},"tk":{"language":166,"region":8823},"tl":{"language":167,"region":8824},"tn":{"language":168,"region":8826},"to":{"language":169,"region":8827},"tr":{"language":170,"region":8829},"ts":{"language":171},"tt":{"language":172,"region":8830},"tw":{"language":173,"region":8832},"ty":{"language":174},"ug":{"language":175,"region":8835},"uk":{"language":176},"ur":{"language":177},"uz":{"language":178,"region":8840},"ve":{"language":179,"region":8843},"vi":{"language":180,"region":8845},"vo":{"language":181},"wa":{"language":182},"wo":{"language":183},"xh":{"language":184},"yi":{"language":185},"yo":{"language":186},"za":{"language":187,"region":8855},"zh":{"language":188},"zu":{"language":189},"aaa":{"language":190},"aab":{"language":191},"aac":{"language":192},"aad":{"language":193},"aae":{"language":194},"aaf":{"language":195},"aag":{"language":196},"aah":{"language":197},"aai":{"language":198},"aak":{"language":199},"aal":{"language":200},"aam":{"language":201},"aan":{"language":202},"aao":{"language":203,"extlang":8152},"aap":{"language":204},"aaq":{"language":205},"aas":{"language":206},"aat":{"language":207},"aau":{"language":208},"aav":{"language":209},"aaw":{"language":210},"aax":{"language":211},"aaz":{"language":212},"aba":{"language":213},"abb":{"language":214},"abc":{"language":215},"abd":{"language":216},"abe":{"language":217},"abf":{"language":218},"abg":{"language":219},"abh":{"language":220,"extlang":8153},"abi":{"language":221},"abj":{"language":222},"abl":{"language":223},"abm":{"language":224},"abn":{"language":225},"abo":{"language":226},"abp":{"language":227},"abq":{"language":228},"abr":{"language":229},"abs":{"language":230},"abt":{"language":231},"abu":{"language":232},"abv":{"language":233,"extlang":8154},"abw":{"language":234},"abx":{"language":235},"aby":{"language":236},"abz":{"language":237},"aca":{"language":238},"acb":{"language":239},"acd":{"language":240},"ace":{"language":241},"acf":{"language":242},"ach":{"language":243},"aci":{"language":244},"ack":{"language":245},"acl":{"language":246},"acm":{"language":247,"extlang":8155},"acn":{"language":248},"acp":{"language":249},"acq":{"language":250,"extlang":8156},"acr":{"language":251},"acs":{"language":252},"act":{"language":253},"acu":{"language":254},"acv":{"language":255},"acw":{"language":256,"extlang":8157},"acx":{"language":257,"extlang":8158},"acy":{"language":258,"extlang":8159},"acz":{"language":259},"ada":{"language":260},"adb":{"language":261},"add":{"language":262},"ade":{"language":263},"adf":{"language":264,"extlang":8160},"adg":{"language":265},"adh":{"language":266},"adi":{"language":267},"adj":{"language":268},"adl":{"language":269},"adn":{"language":270},"ado":{"language":271},"adp":{"language":272},"adq":{"language":273},"adr":{"language":274},"ads":{"language":275,"extlang":8161},"adt":{"language":276},"adu":{"language":277},"adw":{"language":278},"adx":{"language":279},"ady":{"language":280},"adz":{"language":281},"aea":{"language":282},"aeb":{"language":283,"extlang":8162},"aec":{"language":284,"extlang":8163},"aed":{"language":285,"extlang":8164},"aee":{"language":286},"aek":{"language":287},"ael":{"language":288},"aem":{"language":289},"aen":{"language":290,"extlang":8165},"aeq":{"language":291},"aer":{"language":292},"aes":{"language":293},"aeu":{"language":294},"aew":{"language":295},"aey":{"language":296},"aez":{"language":297},"afa":{"language":298},"afb":{"language":299,"extlang":8166},"afd":{"language":300},"afe":{"language":301},"afg":{"language":302,"extlang":8167},"afh":{"language":303},"afi":{"language":304},"afk":{"language":305},"afn":{"language":306},"afo":{"language":307},"afp":{"language":308},"afs":{"language":309},"aft":{"language":310},"afu":{"language":311},"afz":{"language":312},"aga":{"language":313},"agb":{"language":314},"agc":{"language":315},"agd":{"language":316},"age":{"language":317},"agf":{"language":318},"agg":{"language":319},"agh":{"language":320},"agi":{"language":321},"agj":{"language":322},"agk":{"language":323},"agl":{"language":324},"agm":{"language":325},"agn":{"language":326},"ago":{"language":327},"agp":{"language":328},"agq":{"language":329},"agr":{"language":330},"ags":{"language":331},"agt":{"language":332},"agu":{"language":333},"agv":{"language":334},"agw":{"language":335},"agx":{"language":336},"agy":{"language":337},"agz":{"language":338},"aha":{"language":339},"ahb":{"language":340},"ahg":{"language":341},"ahh":{"language":342},"ahi":{"language":343},"ahk":{"language":344},"ahl":{"language":345},"ahm":{"language":346},"ahn":{"language":347},"aho":{"language":348},"ahp":{"language":349},"ahr":{"language":350},"ahs":{"language":351},"aht":{"language":352},"aia":{"language":353},"aib":{"language":354},"aic":{"language":355},"aid":{"language":356},"aie":{"language":357},"aif":{"language":358},"aig":{"language":359},"aih":{"language":360},"aii":{"language":361},"aij":{"language":362},"aik":{"language":363},"ail":{"language":364},"aim":{"language":365},"ain":{"language":366},"aio":{"language":367},"aip":{"language":368},"aiq":{"language":369},"air":{"language":370},"ais":{"language":371},"ait":{"language":372},"aiw":{"language":373},"aix":{"language":374},"aiy":{"language":375},"aja":{"language":376},"ajg":{"language":377},"aji":{"language":378},"ajn":{"language":379},"ajp":{"language":380,"extlang":8168},"ajt":{"language":381},"aju":{"language":382},"ajw":{"language":383},"ajz":{"language":384},"akb":{"language":385},"akc":{"language":386},"akd":{"language":387},"ake":{"language":388},"akf":{"language":389},"akg":{"language":390},"akh":{"language":391},"aki":{"language":392},"akj":{"language":393},"akk":{"language":394},"akl":{"language":395},"akm":{"language":396},"ako":{"language":397},"akp":{"language":398},"akq":{"language":399},"akr":{"language":400},"aks":{"language":401},"akt":{"language":402},"aku":{"language":403},"akv":{"language":404},"akw":{"language":405},"akx":{"language":406},"aky":{"language":407},"akz":{"language":408},"ala":{"language":409},"alc":{"language":410},"ald":{"language":411},"ale":{"language":412},"alf":{"language":413},"alg":{"language":414},"alh":{"language":415},"ali":{"language":416},"alj":{"language":417},"alk":{"language":418},"all":{"language":419},"alm":{"language":420},"aln":{"language":421},"alo":{"language":422},"alp":{"language":423},"alq":{"language":424},"alr":{"language":425},"als":{"language":426},"alt":{"language":427},"alu":{"language":428},"alv":{"language":429},"alw":{"language":430},"alx":{"language":431},"aly":{"language":432},"alz":{"language":433},"ama":{"language":434},"amb":{"language":435},"amc":{"language":436},"ame":{"language":437},"amf":{"language":438},"amg":{"language":439},"ami":{"language":440},"amj":{"language":441},"amk":{"language":442},"aml":{"language":443},"amm":{"language":444},"amn":{"language":445},"amo":{"language":446},"amp":{"language":447},"amq":{"language":448},"amr":{"language":449},"ams":{"language":450},"amt":{"language":451},"amu":{"language":452},"amv":{"language":453},"amw":{"language":454},"amx":{"language":455},"amy":{"language":456},"amz":{"language":457},"ana":{"language":458},"anb":{"language":459},"anc":{"language":460},"and":{"language":461},"ane":{"language":462},"anf":{"language":463},"ang":{"language":464},"anh":{"language":465},"ani":{"language":466},"anj":{"language":467},"ank":{"language":468},"anl":{"language":469},"anm":{"language":470},"ann":{"language":471},"ano":{"language":472},"anp":{"language":473},"anq":{"language":474},"anr":{"language":475},"ans":{"language":476},"ant":{"language":477},"anu":{"language":478},"anv":{"language":479},"anw":{"language":480},"anx":{"language":481},"any":{"language":482},"anz":{"language":483},"aoa":{"language":484},"aob":{"language":485},"aoc":{"language":486},"aod":{"language":487},"aoe":{"language":488},"aof":{"language":489},"aog":{"language":490},"aoh":{"language":491},"aoi":{"language":492},"aoj":{"language":493},"aok":{"language":494},"aol":{"language":495},"aom":{"language":496},"aon":{"language":497},"aor":{"language":498},"aos":{"language":499},"aot":{"language":500},"aou":{"language":501},"aox":{"language":502},"aoz":{"language":503},"apa":{"language":504},"apb":{"language":505},"apc":{"language":506,"extlang":8169},"apd":{"language":507,"extlang":8170},"ape":{"language":508},"apf":{"language":509},"apg":{"language":510},"aph":{"language":511},"api":{"language":512},"apj":{"language":513},"apk":{"language":514},"apl":{"language":515},"apm":{"language":516},"apn":{"language":517},"apo":{"language":518},"app":{"language":519},"apq":{"language":520},"apr":{"language":521},"aps":{"language":522},"apt":{"language":523},"apu":{"language":524},"apv":{"language":525},"apw":{"language":526},"apx":{"language":527},"apy":{"language":528},"apz":{"language":529},"aqa":{"language":530},"aqc":{"language":531},"aqd":{"language":532},"aqg":{"language":533},"aql":{"language":534},"aqm":{"language":535},"aqn":{"language":536},"aqp":{"language":537},"aqr":{"language":538},"aqt":{"language":539},"aqz":{"language":540},"arb":{"language":541,"extlang":8171},"arc":{"language":542},"ard":{"language":543},"are":{"language":544},"arh":{"language":545},"ari":{"language":546},"arj":{"language":547},"ark":{"language":548},"arl":{"language":549},"arn":{"language":550},"aro":{"language":551},"arp":{"language":552},"arq":{"language":553,"extlang":8172},"arr":{"language":554},"ars":{"language":555,"extlang":8173},"art":{"language":556},"aru":{"language":557},"arv":{"language":558},"arw":{"language":559},"arx":{"language":560},"ary":{"language":561,"extlang":8174},"arz":{"language":562,"extlang":8175},"asa":{"language":563},"asb":{"language":564},"asc":{"language":565},"asd":{"language":566},"ase":{"language":567,"extlang":8176},"asf":{"language":568,"extlang":8177},"asg":{"language":569},"ash":{"language":570},"asi":{"language":571},"asj":{"language":572},"ask":{"language":573},"asl":{"language":574},"asn":{"language":575},"aso":{"language":576},"asp":{"language":577,"extlang":8178},"asq":{"language":578,"extlang":8179},"asr":{"language":579},"ass":{"language":580},"ast":{"language":581},"asu":{"language":582},"asv":{"language":583},"asw":{"language":584,"extlang":8180},"asx":{"language":585},"asy":{"language":586},"asz":{"language":587},"ata":{"language":588},"atb":{"language":589},"atc":{"language":590},"atd":{"language":591},"ate":{"language":592},"atg":{"language":593},"ath":{"language":594},"ati":{"language":595},"atj":{"language":596},"atk":{"language":597},"atl":{"language":598},"atm":{"language":599},"atn":{"language":600},"ato":{"language":601},"atp":{"language":602},"atq":{"language":603},"atr":{"language":604},"ats":{"language":605},"att":{"language":606},"atu":{"language":607},"atv":{"language":608},"atw":{"language":609},"atx":{"language":610},"aty":{"language":611},"atz":{"language":612},"aua":{"language":613},"aub":{"language":614},"auc":{"language":615},"aud":{"language":616},"aue":{"language":617},"auf":{"language":618},"aug":{"language":619},"auh":{"language":620},"aui":{"language":621},"auj":{"language":622},"auk":{"language":623},"aul":{"language":624},"aum":{"language":625},"aun":{"language":626},"auo":{"language":627},"aup":{"language":628},"auq":{"language":629},"aur":{"language":630},"aus":{"language":631},"aut":{"language":632},"auu":{"language":633},"auw":{"language":634},"aux":{"language":635},"auy":{"language":636},"auz":{"language":637,"extlang":8181},"avb":{"language":638},"avd":{"language":639},"avi":{"language":640},"avk":{"language":641},"avl":{"language":642,"extlang":8182},"avm":{"language":643},"avn":{"language":644},"avo":{"language":645},"avs":{"language":646},"avt":{"language":647},"avu":{"language":648},"avv":{"language":649},"awa":{"language":650},"awb":{"language":651},"awc":{"language":652},"awd":{"language":653},"awe":{"language":654},"awg":{"language":655},"awh":{"language":656},"awi":{"language":657},"awk":{"language":658},"awm":{"language":659},"awn":{"language":660},"awo":{"language":661},"awr":{"language":662},"aws":{"language":663},"awt":{"language":664},"awu":{"language":665},"awv":{"language":666},"aww":{"language":667},"awx":{"language":668},"awy":{"language":669},"axb":{"language":670},"axe":{"language":671},"axg":{"language":672},"axk":{"language":673},"axl":{"language":674},"axm":{"language":675},"axx":{"language":676},"aya":{"language":677},"ayb":{"language":678},"ayc":{"language":679},"ayd":{"language":680},"aye":{"language":681},"ayg":{"language":682},"ayh":{"language":683,"extlang":8183},"ayi":{"language":684},"ayk":{"language":685},"ayl":{"language":686,"extlang":8184},"ayn":{"language":687,"extlang":8185},"ayo":{"language":688},"ayp":{"language":689,"extlang":8186},"ayq":{"language":690},"ayr":{"language":691},"ays":{"language":692},"ayt":{"language":693},"ayu":{"language":694},"ayx":{"language":695},"ayy":{"language":696},"ayz":{"language":697},"aza":{"language":698},"azb":{"language":699},"azc":{"language":700},"azd":{"language":701},"azg":{"language":702},"azj":{"language":703},"azm":{"language":704},"azn":{"language":705},"azo":{"language":706},"azt":{"language":707},"azz":{"language":708},"baa":{"language":709},"bab":{"language":710},"bac":{"language":711},"bad":{"language":712},"bae":{"language":713},"baf":{"language":714},"bag":{"language":715},"bah":{"language":716},"bai":{"language":717},"baj":{"language":718},"bal":{"language":719},"ban":{"language":720},"bao":{"language":721},"bap":{"language":722},"bar":{"language":723},"bas":{"language":724},"bat":{"language":725},"bau":{"language":726},"bav":{"language":727},"baw":{"language":728},"bax":{"language":729},"bay":{"language":730},"baz":{"language":731},"bba":{"language":732},"bbb":{"language":733},"bbc":{"language":734},"bbd":{"language":735},"bbe":{"language":736},"bbf":{"language":737},"bbg":{"language":738},"bbh":{"language":739},"bbi":{"language":740},"bbj":{"language":741},"bbk":{"language":742},"bbl":{"language":743},"bbm":{"language":744},"bbn":{"language":745},"bbo":{"language":746},"bbp":{"language":747},"bbq":{"language":748},"bbr":{"language":749},"bbs":{"language":750},"bbt":{"language":751},"bbu":{"language":752},"bbv":{"language":753},"bbw":{"language":754},"bbx":{"language":755},"bby":{"language":756},"bbz":{"language":757,"extlang":8187},"bca":{"language":758},"bcb":{"language":759},"bcc":{"language":760},"bcd":{"language":761},"bce":{"language":762},"bcf":{"language":763},"bcg":{"language":764},"bch":{"language":765},"bci":{"language":766},"bcj":{"language":767},"bck":{"language":768},"bcl":{"language":769},"bcm":{"language":770},"bcn":{"language":771},"bco":{"language":772},"bcp":{"language":773},"bcq":{"language":774},"bcr":{"language":775},"bcs":{"language":776},"bct":{"language":777},"bcu":{"language":778},"bcv":{"language":779},"bcw":{"language":780},"bcy":{"language":781},"bcz":{"language":782},"bda":{"language":783},"bdb":{"language":784},"bdc":{"language":785},"bdd":{"language":786},"bde":{"language":787},"bdf":{"language":788},"bdg":{"language":789},"bdh":{"language":790},"bdi":{"language":791},"bdj":{"language":792},"bdk":{"language":793},"bdl":{"language":794},"bdm":{"language":795},"bdn":{"language":796},"bdo":{"language":797},"bdp":{"language":798},"bdq":{"language":799},"bdr":{"language":800},"bds":{"language":801},"bdt":{"language":802},"bdu":{"language":803},"bdv":{"language":804},"bdw":{"language":805},"bdx":{"language":806},"bdy":{"language":807},"bdz":{"language":808},"bea":{"language":809},"beb":{"language":810},"bec":{"language":811},"bed":{"language":812},"bee":{"language":813},"bef":{"language":814},"beg":{"language":815},"beh":{"language":816},"bei":{"language":817},"bej":{"language":818},"bek":{"language":819},"bem":{"language":820},"beo":{"language":821},"bep":{"language":822},"beq":{"language":823},"ber":{"language":824},"bes":{"language":825},"bet":{"language":826},"beu":{"language":827},"bev":{"language":828},"bew":{"language":829},"bex":{"language":830},"bey":{"language":831},"bez":{"language":832},"bfa":{"language":833},"bfb":{"language":834},"bfc":{"language":835},"bfd":{"language":836},"bfe":{"language":837},"bff":{"language":838},"bfg":{"language":839},"bfh":{"language":840},"bfi":{"language":841,"extlang":8188},"bfj":{"language":842},"bfk":{"language":843,"extlang":8189},"bfl":{"language":844},"bfm":{"language":845},"bfn":{"language":846},"bfo":{"language":847},"bfp":{"language":848},"bfq":{"language":849},"bfr":{"language":850},"bfs":{"language":851},"bft":{"language":852},"bfu":{"language":853},"bfw":{"language":854},"bfx":{"language":855},"bfy":{"language":856},"bfz":{"language":857},"bga":{"language":858},"bgb":{"language":859},"bgc":{"language":860},"bgd":{"language":861},"bge":{"language":862},"bgf":{"language":863},"bgg":{"language":864},"bgi":{"language":865},"bgj":{"language":866},"bgk":{"language":867},"bgl":{"language":868},"bgm":{"language":869},"bgn":{"language":870},"bgo":{"language":871},"bgp":{"language":872},"bgq":{"language":873},"bgr":{"language":874},"bgs":{"language":875},"bgt":{"language":876},"bgu":{"language":877},"bgv":{"language":878},"bgw":{"language":879},"bgx":{"language":880},"bgy":{"language":881},"bgz":{"language":882},"bha":{"language":883},"bhb":{"language":884},"bhc":{"language":885},"bhd":{"language":886},"bhe":{"language":887},"bhf":{"language":888},"bhg":{"language":889},"bhh":{"language":890},"bhi":{"language":891},"bhj":{"language":892},"bhk":{"language":893},"bhl":{"language":894},"bhm":{"language":895},"bhn":{"language":896},"bho":{"language":897},"bhp":{"language":898},"bhq":{"language":899},"bhr":{"language":900},"bhs":{"language":901},"bht":{"language":902},"bhu":{"language":903},"bhv":{"language":904},"bhw":{"language":905},"bhx":{"language":906},"bhy":{"language":907},"bhz":{"language":908},"bia":{"language":909},"bib":{"language":910},"bic":{"language":911},"bid":{"language":912},"bie":{"language":913},"bif":{"language":914},"big":{"language":915},"bij":{"language":916},"bik":{"language":917},"bil":{"language":918},"bim":{"language":919},"bin":{"language":920},"bio":{"language":921},"bip":{"language":922},"biq":{"language":923},"bir":{"language":924},"bit":{"language":925},"biu":{"language":926},"biv":{"language":927},"biw":{"language":928},"bix":{"language":929},"biy":{"language":930},"biz":{"language":931},"bja":{"language":932},"bjb":{"language":933},"bjc":{"language":934},"bjd":{"language":935},"bje":{"language":936},"bjf":{"language":937},"bjg":{"language":938},"bjh":{"language":939},"bji":{"language":940},"bjj":{"language":941},"bjk":{"language":942},"bjl":{"language":943},"bjm":{"language":944},"bjn":{"language":945,"extlang":8190},"bjo":{"language":946},"bjp":{"language":947},"bjq":{"language":948},"bjr":{"language":949},"bjs":{"language":950},"bjt":{"language":951},"bju":{"language":952},"bjv":{"language":953},"bjw":{"language":954},"bjx":{"language":955},"bjy":{"language":956},"bjz":{"language":957},"bka":{"language":958},"bkb":{"language":959},"bkc":{"language":960},"bkd":{"language":961},"bkf":{"language":962},"bkg":{"language":963},"bkh":{"language":964},"bki":{"language":965},"bkj":{"language":966},"bkk":{"language":967},"bkl":{"language":968},"bkm":{"language":969},"bkn":{"language":970},"bko":{"language":971},"bkp":{"language":972},"bkq":{"language":973},"bkr":{"language":974},"bks":{"language":975},"bkt":{"language":976},"bku":{"language":977},"bkv":{"language":978},"bkw":{"language":979},"bkx":{"language":980},"bky":{"language":981},"bkz":{"language":982},"bla":{"language":983},"blb":{"language":984},"blc":{"language":985},"bld":{"language":986},"ble":{"language":987},"blf":{"language":988},"blg":{"language":989},"blh":{"language":990},"bli":{"language":991},"blj":{"language":992},"blk":{"language":993},"bll":{"language":994},"blm":{"language":995},"bln":{"language":996},"blo":{"language":997},"blp":{"language":998},"blq":{"language":999},"blr":{"language":1000},"bls":{"language":1001},"blt":{"language":1002},"blv":{"language":1003},"blw":{"language":1004},"blx":{"language":1005},"bly":{"language":1006},"blz":{"language":1007},"bma":{"language":1008},"bmb":{"language":1009},"bmc":{"language":1010},"bmd":{"language":1011},"bme":{"language":1012},"bmf":{"language":1013},"bmg":{"language":1014},"bmh":{"language":1015},"bmi":{"language":1016},"bmj":{"language":1017},"bmk":{"language":1018},"bml":{"language":1019},"bmm":{"language":1020},"bmn":{"language":1021},"bmo":{"language":1022},"bmp":{"language":1023},"bmq":{"language":1024},"bmr":{"language":1025},"bms":{"language":1026},"bmt":{"language":1027},"bmu":{"language":1028},"bmv":{"language":1029},"bmw":{"language":1030},"bmx":{"language":1031},"bmy":{"language":1032},"bmz":{"language":1033},"bna":{"language":1034},"bnb":{"language":1035},"bnc":{"language":1036},"bnd":{"language":1037},"bne":{"language":1038},"bnf":{"language":1039},"bng":{"language":1040},"bni":{"language":1041},"bnj":{"language":1042},"bnk":{"language":1043},"bnl":{"language":1044},"bnm":{"language":1045},"bnn":{"language":1046},"bno":{"language":1047},"bnp":{"language":1048},"bnq":{"language":1049},"bnr":{"language":1050},"bns":{"language":1051},"bnt":{"language":1052},"bnu":{"language":1053},"bnv":{"language":1054},"bnw":{"language":1055},"bnx":{"language":1056},"bny":{"language":1057},"bnz":{"language":1058},"boa":{"language":1059},"bob":{"language":1060},"boe":{"language":1061},"bof":{"language":1062},"bog":{"language":1063,"extlang":8191},"boh":{"language":1064},"boi":{"language":1065},"boj":{"language":1066},"bok":{"language":1067},"bol":{"language":1068},"bom":{"language":1069},"bon":{"language":1070},"boo":{"language":1071},"bop":{"language":1072},"boq":{"language":1073},"bor":{"language":1074},"bot":{"language":1075},"bou":{"language":1076},"bov":{"language":1077},"bow":{"language":1078},"box":{"language":1079},"boy":{"language":1080},"boz":{"language":1081},"bpa":{"language":1082},"bpb":{"language":1083},"bpd":{"language":1084},"bpg":{"language":1085},"bph":{"language":1086},"bpi":{"language":1087},"bpj":{"language":1088},"bpk":{"language":1089},"bpl":{"language":1090},"bpm":{"language":1091},"bpn":{"language":1092},"bpo":{"language":1093},"bpp":{"language":1094},"bpq":{"language":1095},"bpr":{"language":1096},"bps":{"language":1097},"bpt":{"language":1098},"bpu":{"language":1099},"bpv":{"language":1100},"bpw":{"language":1101},"bpx":{"language":1102},"bpy":{"language":1103},"bpz":{"language":1104},"bqa":{"language":1105},"bqb":{"language":1106},"bqc":{"language":1107},"bqd":{"language":1108},"bqf":{"language":1109},"bqg":{"language":1110},"bqh":{"language":1111},"bqi":{"language":1112},"bqj":{"language":1113},"bqk":{"language":1114},"bql":{"language":1115},"bqm":{"language":1116},"bqn":{"language":1117,"extlang":8192},"bqo":{"language":1118},"bqp":{"language":1119},"bqq":{"language":1120},"bqr":{"language":1121},"bqs":{"language":1122},"bqt":{"language":1123},"bqu":{"language":1124},"bqv":{"language":1125},"bqw":{"language":1126},"bqx":{"language":1127},"bqy":{"language":1128,"extlang":8193},"bqz":{"language":1129},"bra":{"language":1130},"brb":{"language":1131},"brc":{"language":1132},"brd":{"language":1133},"brf":{"language":1134},"brg":{"language":1135},"brh":{"language":1136},"bri":{"language":1137},"brj":{"language":1138},"brk":{"language":1139},"brl":{"language":1140},"brm":{"language":1141},"brn":{"language":1142},"bro":{"language":1143},"brp":{"language":1144},"brq":{"language":1145},"brr":{"language":1146},"brs":{"language":1147},"brt":{"language":1148},"bru":{"language":1149},"brv":{"language":1150},"brw":{"language":1151},"brx":{"language":1152},"bry":{"language":1153},"brz":{"language":1154},"bsa":{"language":1155},"bsb":{"language":1156},"bsc":{"language":1157},"bse":{"language":1158},"bsf":{"language":1159},"bsg":{"language":1160},"bsh":{"language":1161},"bsi":{"language":1162},"bsj":{"language":1163},"bsk":{"language":1164},"bsl":{"language":1165},"bsm":{"language":1166},"bsn":{"language":1167},"bso":{"language":1168},"bsp":{"language":1169},"bsq":{"language":1170},"bsr":{"language":1171},"bss":{"language":1172},"bst":{"language":1173},"bsu":{"language":1174},"bsv":{"language":1175},"bsw":{"language":1176},"bsx":{"language":1177},"bsy":{"language":1178},"bta":{"language":1179},"btb":{"language":1180},"btc":{"language":1181},"btd":{"language":1182},"bte":{"language":1183},"btf":{"language":1184},"btg":{"language":1185},"bth":{"language":1186},"bti":{"language":1187},"btj":{"language":1188,"extlang":8194},"btk":{"language":1189},"btl":{"language":1190},"btm":{"language":1191},"btn":{"language":1192},"bto":{"language":1193},"btp":{"language":1194},"btq":{"language":1195},"btr":{"language":1196},"bts":{"language":1197},"btt":{"language":1198},"btu":{"language":1199},"btv":{"language":1200},"btw":{"language":1201},"btx":{"language":1202},"bty":{"language":1203},"btz":{"language":1204},"bua":{"language":1205},"bub":{"language":1206},"buc":{"language":1207},"bud":{"language":1208},"bue":{"language":1209},"buf":{"language":1210},"bug":{"language":1211},"buh":{"language":1212},"bui":{"language":1213},"buj":{"language":1214},"buk":{"language":1215},"bum":{"language":1216},"bun":{"language":1217},"buo":{"language":1218},"bup":{"language":1219},"buq":{"language":1220},"bus":{"language":1221},"but":{"language":1222},"buu":{"language":1223},"buv":{"language":1224},"buw":{"language":1225},"bux":{"language":1226},"buy":{"language":1227},"buz":{"language":1228},"bva":{"language":1229},"bvb":{"language":1230},"bvc":{"language":1231},"bvd":{"language":1232},"bve":{"language":1233,"extlang":8195},"bvf":{"language":1234},"bvg":{"language":1235},"bvh":{"language":1236},"bvi":{"language":1237},"bvj":{"language":1238},"bvk":{"language":1239},"bvl":{"language":1240,"extlang":8196},"bvm":{"language":1241},"bvn":{"language":1242},"bvo":{"language":1243},"bvp":{"language":1244},"bvq":{"language":1245},"bvr":{"language":1246},"bvt":{"language":1247},"bvu":{"language":1248,"extlang":8197},"bvv":{"language":1249},"bvw":{"language":1250},"bvx":{"language":1251},"bvy":{"language":1252},"bvz":{"language":1253},"bwa":{"language":1254},"bwb":{"language":1255},"bwc":{"language":1256},"bwd":{"language":1257},"bwe":{"language":1258},"bwf":{"language":1259},"bwg":{"language":1260},"bwh":{"language":1261},"bwi":{"language":1262},"bwj":{"language":1263},"bwk":{"language":1264},"bwl":{"language":1265},"bwm":{"language":1266},"bwn":{"language":1267},"bwo":{"language":1268},"bwp":{"language":1269},"bwq":{"language":1270},"bwr":{"language":1271},"bws":{"language":1272},"bwt":{"language":1273},"bwu":{"language":1274},"bww":{"language":1275},"bwx":{"language":1276},"bwy":{"language":1277},"bwz":{"language":1278},"bxa":{"language":1279},"bxb":{"language":1280},"bxc":{"language":1281},"bxd":{"language":1282},"bxe":{"language":1283},"bxf":{"language":1284},"bxg":{"language":1285},"bxh":{"language":1286},"bxi":{"language":1287},"bxj":{"language":1288},"bxk":{"language":1289},"bxl":{"language":1290},"bxm":{"language":1291},"bxn":{"language":1292},"bxo":{"language":1293},"bxp":{"language":1294},"bxq":{"language":1295},"bxr":{"language":1296},"bxs":{"language":1297},"bxu":{"language":1298},"bxv":{"language":1299},"bxw":{"language":1300},"bxx":{"language":1301},"bxz":{"language":1302},"bya":{"language":1303},"byb":{"language":1304},"byc":{"language":1305},"byd":{"language":1306},"bye":{"language":1307},"byf":{"language":1308},"byg":{"language":1309},"byh":{"language":1310},"byi":{"language":1311},"byj":{"language":1312},"byk":{"language":1313},"byl":{"language":1314},"bym":{"language":1315},"byn":{"language":1316},"byo":{"language":1317},"byp":{"language":1318},"byq":{"language":1319},"byr":{"language":1320},"bys":{"language":1321},"byt":{"language":1322},"byv":{"language":1323},"byw":{"language":1324},"byx":{"language":1325},"byy":{"language":1326},"byz":{"language":1327},"bza":{"language":1328},"bzb":{"language":1329},"bzc":{"language":1330},"bzd":{"language":1331},"bze":{"language":1332},"bzf":{"language":1333},"bzg":{"language":1334},"bzh":{"language":1335},"bzi":{"language":1336},"bzj":{"language":1337},"bzk":{"language":1338},"bzl":{"language":1339},"bzm":{"language":1340},"bzn":{"language":1341},"bzo":{"language":1342},"bzp":{"language":1343},"bzq":{"language":1344},"bzr":{"language":1345},"bzs":{"language":1346,"extlang":8198},"bzt":{"language":1347},"bzu":{"language":1348},"bzv":{"language":1349},"bzw":{"language":1350},"bzx":{"language":1351},"bzy":{"language":1352},"bzz":{"language":1353},"caa":{"language":1354},"cab":{"language":1355},"cac":{"language":1356},"cad":{"language":1357},"cae":{"language":1358},"caf":{"language":1359},"cag":{"language":1360},"cah":{"language":1361},"cai":{"language":1362},"caj":{"language":1363},"cak":{"language":1364},"cal":{"language":1365},"cam":{"language":1366},"can":{"language":1367},"cao":{"language":1368},"cap":{"language":1369},"caq":{"language":1370},"car":{"language":1371},"cas":{"language":1372},"cau":{"language":1373},"cav":{"language":1374},"caw":{"language":1375},"cax":{"language":1376},"cay":{"language":1377},"caz":{"language":1378},"cba":{"language":1379},"cbb":{"language":1380},"cbc":{"language":1381},"cbd":{"language":1382},"cbe":{"language":1383},"cbg":{"language":1384},"cbh":{"language":1385},"cbi":{"language":1386},"cbj":{"language":1387},"cbk":{"language":1388},"cbl":{"language":1389},"cbn":{"language":1390},"cbo":{"language":1391},"cbq":{"language":1392},"cbr":{"language":1393},"cbs":{"language":1394},"cbt":{"language":1395},"cbu":{"language":1396},"cbv":{"language":1397},"cbw":{"language":1398},"cby":{"language":1399},"cca":{"language":1400},"ccc":{"language":1401},"ccd":{"language":1402},"cce":{"language":1403},"ccg":{"language":1404},"cch":{"language":1405},"ccj":{"language":1406},"ccl":{"language":1407},"ccm":{"language":1408},"ccn":{"language":1409},"cco":{"language":1410},"ccp":{"language":1411},"ccq":{"language":1412},"ccr":{"language":1413},"ccs":{"language":1414},"cda":{"language":1415},"cdc":{"language":1416},"cdd":{"language":1417},"cde":{"language":1418},"cdf":{"language":1419},"cdg":{"language":1420},"cdh":{"language":1421},"cdi":{"language":1422},"cdj":{"language":1423},"cdm":{"language":1424},"cdn":{"language":1425},"cdo":{"language":1426,"extlang":8199},"cdr":{"language":1427},"cds":{"language":1428,"extlang":8200},"cdy":{"language":1429},"cdz":{"language":1430},"cea":{"language":1431},"ceb":{"language":1432},"ceg":{"language":1433},"cek":{"language":1434},"cel":{"language":1435},"cen":{"language":1436},"cet":{"language":1437},"cey":{"language":1438},"cfa":{"language":1439},"cfd":{"language":1440},"cfg":{"language":1441},"cfm":{"language":1442},"cga":{"language":1443},"cgc":{"language":1444},"cgg":{"language":1445},"cgk":{"language":1446},"chb":{"language":1447},"chc":{"language":1448},"chd":{"language":1449},"chf":{"language":1450},"chg":{"language":1451},"chh":{"language":1452},"chj":{"language":1453},"chk":{"language":1454},"chl":{"language":1455},"chm":{"language":1456},"chn":{"language":1457},"cho":{"language":1458},"chp":{"language":1459},"chq":{"language":1460},"chr":{"language":1461},"cht":{"language":1462},"chw":{"language":1463},"chx":{"language":1464},"chy":{"language":1465},"chz":{"language":1466},"cia":{"language":1467},"cib":{"language":1468},"cic":{"language":1469},"cid":{"language":1470},"cie":{"language":1471},"cih":{"language":1472},"cik":{"language":1473},"cim":{"language":1474},"cin":{"language":1475},"cip":{"language":1476},"cir":{"language":1477},"ciw":{"language":1478},"ciy":{"language":1479},"cja":{"language":1480},"cje":{"language":1481},"cjh":{"language":1482},"cji":{"language":1483},"cjk":{"language":1484},"cjm":{"language":1485},"cjn":{"language":1486},"cjo":{"language":1487},"cjp":{"language":1488},"cjr":{"language":1489},"cjs":{"language":1490},"cjv":{"language":1491},"cjy":{"language":1492,"extlang":8201},"cka":{"language":1493},"ckb":{"language":1494},"ckh":{"language":1495},"ckl":{"language":1496},"ckn":{"language":1497},"cko":{"language":1498},"ckq":{"language":1499},"ckr":{"language":1500},"cks":{"language":1501},"ckt":{"language":1502},"cku":{"language":1503},"ckv":{"language":1504},"ckx":{"language":1505},"cky":{"language":1506},"ckz":{"language":1507},"cla":{"language":1508},"clc":{"language":1509},"cld":{"language":1510},"cle":{"language":1511},"clh":{"language":1512},"cli":{"language":1513},"clj":{"language":1514},"clk":{"language":1515},"cll":{"language":1516},"clm":{"language":1517},"clo":{"language":1518},"clt":{"language":1519},"clu":{"language":1520},"clw":{"language":1521},"cly":{"language":1522},"cma":{"language":1523},"cmc":{"language":1524},"cme":{"language":1525},"cmg":{"language":1526},"cmi":{"language":1527},"cmk":{"language":1528},"cml":{"language":1529},"cmm":{"language":1530},"cmn":{"language":1531,"extlang":8202},"cmo":{"language":1532},"cmr":{"language":1533},"cms":{"language":1534},"cmt":{"language":1535},"cna":{"language":1536},"cnb":{"language":1537},"cnc":{"language":1538},"cng":{"language":1539},"cnh":{"language":1540},"cni":{"language":1541},"cnk":{"language":1542},"cnl":{"language":1543},"cno":{"language":1544},"cnr":{"language":1545},"cns":{"language":1546},"cnt":{"language":1547},"cnu":{"language":1548},"cnw":{"language":1549},"cnx":{"language":1550},"coa":{"language":1551,"extlang":8203},"cob":{"language":1552},"coc":{"language":1553},"cod":{"language":1554},"coe":{"language":1555},"cof":{"language":1556},"cog":{"language":1557},"coh":{"language":1558},"coj":{"language":1559},"cok":{"language":1560},"col":{"language":1561},"com":{"language":1562},"con":{"language":1563},"coo":{"language":1564},"cop":{"language":1565},"coq":{"language":1566},"cot":{"language":1567},"cou":{"language":1568},"cov":{"language":1569},"cow":{"language":1570},"cox":{"language":1571},"coy":{"language":1572},"coz":{"language":1573},"cpa":{"language":1574},"cpb":{"language":1575},"cpc":{"language":1576},"cpe":{"language":1577},"cpf":{"language":1578},"cpg":{"language":1579},"cpi":{"language":1580},"cpn":{"language":1581},"cpo":{"language":1582},"cpp":{"language":1583},"cps":{"language":1584},"cpu":{"language":1585},"cpx":{"language":1586,"extlang":8204},"cpy":{"language":1587},"cqd":{"language":1588},"cqu":{"language":1589},"cra":{"language":1590},"crb":{"language":1591},"crc":{"language":1592},"crd":{"language":1593},"crf":{"language":1594},"crg":{"language":1595},"crh":{"language":1596},"cri":{"language":1597},"crj":{"language":1598},"crk":{"language":1599},"crl":{"language":1600},"crm":{"language":1601},"crn":{"language":1602},"cro":{"language":1603},"crp":{"language":1604},"crq":{"language":1605},"crr":{"language":1606},"crs":{"language":1607},"crt":{"language":1608},"crv":{"language":1609},"crw":{"language":1610},"crx":{"language":1611},"cry":{"language":1612},"crz":{"language":1613},"csa":{"language":1614},"csb":{"language":1615},"csc":{"language":1616,"extlang":8205},"csd":{"language":1617,"extlang":8206},"cse":{"language":1618,"extlang":8207},"csf":{"language":1619,"extlang":8208},"csg":{"language":1620,"extlang":8209},"csh":{"language":1621},"csi":{"language":1622},"csj":{"language":1623},"csk":{"language":1624},"csl":{"language":1625,"extlang":8210},"csm":{"language":1626},"csn":{"language":1627,"extlang":8211},"cso":{"language":1628},"csq":{"language":1629,"extlang":8212},"csr":{"language":1630,"extlang":8213},"css":{"language":1631},"cst":{"language":1632},"csu":{"language":1633},"csv":{"language":1634},"csw":{"language":1635},"csy":{"language":1636},"csz":{"language":1637},"cta":{"language":1638},"ctc":{"language":1639},"ctd":{"language":1640},"cte":{"language":1641},"ctg":{"language":1642},"cth":{"language":1643},"ctl":{"language":1644},"ctm":{"language":1645},"ctn":{"language":1646},"cto":{"language":1647},"ctp":{"language":1648},"cts":{"language":1649},"ctt":{"language":1650},"ctu":{"language":1651},"ctz":{"language":1652},"cua":{"language":1653},"cub":{"language":1654},"cuc":{"language":1655},"cug":{"language":1656},"cuh":{"language":1657},"cui":{"language":1658},"cuj":{"language":1659},"cuk":{"language":1660},"cul":{"language":1661},"cum":{"language":1662},"cuo":{"language":1663},"cup":{"language":1664},"cuq":{"language":1665},"cur":{"language":1666},"cus":{"language":1667},"cut":{"language":1668},"cuu":{"language":1669},"cuv":{"language":1670},"cuw":{"language":1671},"cux":{"language":1672},"cuy":{"language":1673},"cvg":{"language":1674},"cvn":{"language":1675},"cwa":{"language":1676},"cwb":{"language":1677},"cwd":{"language":1678},"cwe":{"language":1679},"cwg":{"language":1680},"cwt":{"language":1681},"cya":{"language":1682},"cyb":{"language":1683},"cyo":{"language":1684},"czh":{"language":1685,"extlang":8214},"czk":{"language":1686},"czn":{"language":1687},"czo":{"language":1688,"extlang":8215},"czt":{"language":1689},"daa":{"language":1690},"dac":{"language":1691},"dad":{"language":1692},"dae":{"language":1693},"daf":{"language":1694},"dag":{"language":1695},"dah":{"language":1696},"dai":{"language":1697},"daj":{"language":1698},"dak":{"language":1699},"dal":{"language":1700},"dam":{"language":1701},"dao":{"language":1702},"dap":{"language":1703},"daq":{"language":1704},"dar":{"language":1705},"das":{"language":1706},"dau":{"language":1707},"dav":{"language":1708},"daw":{"language":1709},"dax":{"language":1710},"day":{"language":1711},"daz":{"language":1712},"dba":{"language":1713},"dbb":{"language":1714},"dbd":{"language":1715},"dbe":{"language":1716},"dbf":{"language":1717},"dbg":{"language":1718},"dbi":{"language":1719},"dbj":{"language":1720},"dbl":{"language":1721},"dbm":{"language":1722},"dbn":{"language":1723},"dbo":{"language":1724},"dbp":{"language":1725},"dbq":{"language":1726},"dbr":{"language":1727},"dbt":{"language":1728},"dbu":{"language":1729},"dbv":{"language":1730},"dbw":{"language":1731},"dby":{"language":1732},"dcc":{"language":1733},"dcr":{"language":1734},"dda":{"language":1735},"ddd":{"language":1736},"dde":{"language":1737},"ddg":{"language":1738},"ddi":{"language":1739},"ddj":{"language":1740},"ddn":{"language":1741},"ddo":{"language":1742},"ddr":{"language":1743},"dds":{"language":1744},"ddw":{"language":1745},"dec":{"language":1746},"ded":{"language":1747},"dee":{"language":1748},"def":{"language":1749},"deg":{"language":1750},"deh":{"language":1751},"dei":{"language":1752},"dek":{"language":1753},"del":{"language":1754},"dem":{"language":1755},"den":{"language":1756},"dep":{"language":1757},"deq":{"language":1758},"der":{"language":1759},"des":{"language":1760},"dev":{"language":1761},"dez":{"language":1762},"dga":{"language":1763},"dgb":{"language":1764},"dgc":{"language":1765},"dgd":{"language":1766},"dge":{"language":1767},"dgg":{"language":1768},"dgh":{"language":1769},"dgi":{"language":1770},"dgk":{"language":1771},"dgl":{"language":1772},"dgn":{"language":1773},"dgo":{"language":1774},"dgr":{"language":1775},"dgs":{"language":1776},"dgt":{"language":1777},"dgu":{"language":1778},"dgw":{"language":1779},"dgx":{"language":1780},"dgz":{"language":1781},"dha":{"language":1782},"dhd":{"language":1783},"dhg":{"language":1784},"dhi":{"language":1785},"dhl":{"language":1786},"dhm":{"language":1787},"dhn":{"language":1788},"dho":{"language":1789},"dhr":{"language":1790},"dhs":{"language":1791},"dhu":{"language":1792},"dhv":{"language":1793},"dhw":{"language":1794},"dhx":{"language":1795},"dia":{"language":1796},"dib":{"language":1797},"dic":{"language":1798},"did":{"language":1799},"dif":{"language":1800},"dig":{"language":1801},"dih":{"language":1802},"dii":{"language":1803},"dij":{"language":1804},"dik":{"language":1805},"dil":{"language":1806},"dim":{"language":1807},"din":{"language":1808},"dio":{"language":1809},"dip":{"language":1810},"diq":{"language":1811},"dir":{"language":1812},"dis":{"language":1813},"dit":{"language":1814},"diu":{"language":1815},"diw":{"language":1816},"dix":{"language":1817},"diy":{"language":1818},"diz":{"language":1819},"dja":{"language":1820},"djb":{"language":1821},"djc":{"language":1822},"djd":{"language":1823},"dje":{"language":1824},"djf":{"language":1825},"dji":{"language":1826},"djj":{"language":1827},"djk":{"language":1828},"djl":{"language":1829},"djm":{"language":1830},"djn":{"language":1831},"djo":{"language":1832},"djr":{"language":1833},"dju":{"language":1834},"djw":{"language":1835},"dka":{"language":1836},"dkk":{"language":1837},"dkl":{"language":1838},"dkr":{"language":1839},"dks":{"language":1840},"dkx":{"language":1841},"dlg":{"language":1842},"dlk":{"language":1843},"dlm":{"language":1844},"dln":{"language":1845},"dma":{"language":1846},"dmb":{"language":1847},"dmc":{"language":1848},"dmd":{"language":1849},"dme":{"language":1850},"dmg":{"language":1851},"dmk":{"language":1852},"dml":{"language":1853},"dmm":{"language":1854},"dmn":{"language":1855},"dmo":{"language":1856},"dmr":{"language":1857},"dms":{"language":1858},"dmu":{"language":1859},"dmv":{"language":1860},"dmw":{"language":1861},"dmx":{"language":1862},"dmy":{"language":1863},"dna":{"language":1864},"dnd":{"language":1865},"dne":{"language":1866},"dng":{"language":1867},"dni":{"language":1868},"dnj":{"language":1869},"dnk":{"language":1870},"dnn":{"language":1871},"dno":{"language":1872},"dnr":{"language":1873},"dnt":{"language":1874},"dnu":{"language":1875},"dnv":{"language":1876},"dnw":{"language":1877},"dny":{"language":1878},"doa":{"language":1879},"dob":{"language":1880},"doc":{"language":1881},"doe":{"language":1882},"dof":{"language":1883},"doh":{"language":1884},"doi":{"language":1885},"dok":{"language":1886},"dol":{"language":1887},"don":{"language":1888},"doo":{"language":1889},"dop":{"language":1890},"doq":{"language":1891,"extlang":8216},"dor":{"language":1892},"dos":{"language":1893},"dot":{"language":1894},"dov":{"language":1895},"dow":{"language":1896},"dox":{"language":1897},"doy":{"language":1898},"doz":{"language":1899},"dpp":{"language":1900},"dra":{"language":1901},"drb":{"language":1902},"drc":{"language":1903},"drd":{"language":1904},"dre":{"language":1905},"drg":{"language":1906},"drh":{"language":1907},"dri":{"language":1908},"drl":{"language":1909},"drn":{"language":1910},"dro":{"language":1911},"drq":{"language":1912},"drr":{"language":1913},"drs":{"language":1914},"drt":{"language":1915},"dru":{"language":1916},"drw":{"language":1917},"dry":{"language":1918},"dsb":{"language":1919},"dse":{"language":1920,"extlang":8217},"dsh":{"language":1921},"dsi":{"language":1922},"dsl":{"language":1923,"extlang":8218},"dsn":{"language":1924},"dso":{"language":1925},"dsq":{"language":1926},"dta":{"language":1927},"dtb":{"language":1928},"dtd":{"language":1929},"dth":{"language":1930},"dti":{"language":1931},"dtk":{"language":1932},"dtm":{"language":1933},"dtn":{"language":1934},"dto":{"language":1935},"dtp":{"language":1936},"dtr":{"language":1937},"dts":{"language":1938},"dtt":{"language":1939},"dtu":{"language":1940},"dty":{"language":1941},"dua":{"language":1942},"dub":{"language":1943},"duc":{"language":1944},"dud":{"language":1945},"due":{"language":1946},"duf":{"language":1947},"dug":{"language":1948},"duh":{"language":1949},"dui":{"language":1950},"duj":{"language":1951},"duk":{"language":1952},"dul":{"language":1953},"dum":{"language":1954},"dun":{"language":1955},"duo":{"language":1956},"dup":{"language":1957,"extlang":8219},"duq":{"language":1958},"dur":{"language":1959},"dus":{"language":1960},"duu":{"language":1961},"duv":{"language":1962},"duw":{"language":1963},"dux":{"language":1964},"duy":{"language":1965},"duz":{"language":1966},"dva":{"language":1967},"dwa":{"language":1968},"dwl":{"language":1969},"dwr":{"language":1970},"dws":{"language":1971},"dwu":{"language":1972},"dww":{"language":1973},"dwy":{"language":1974},"dwz":{"language":1975},"dya":{"language":1976},"dyb":{"language":1977},"dyd":{"language":1978},"dyg":{"language":1979},"dyi":{"language":1980},"dym":{"language":1981},"dyn":{"language":1982},"dyo":{"language":1983},"dyu":{"language":1984},"dyy":{"language":1985},"dza":{"language":1986},"dzd":{"language":1987},"dze":{"language":1988},"dzg":{"language":1989},"dzl":{"language":1990},"dzn":{"language":1991},"eaa":{"language":1992},"ebg":{"language":1993},"ebk":{"language":1994},"ebo":{"language":1995},"ebr":{"language":1996},"ebu":{"language":1997},"ecr":{"language":1998},"ecs":{"language":1999,"extlang":8220},"ecy":{"language":2000},"eee":{"language":2001},"efa":{"language":2002},"efe":{"language":2003},"efi":{"language":2004},"ega":{"language":2005},"egl":{"language":2006},"ego":{"language":2007},"egx":{"language":2008},"egy":{"language":2009},"ehu":{"language":2010},"eip":{"language":2011},"eit":{"language":2012},"eiv":{"language":2013},"eja":{"language":2014},"eka":{"language":2015},"ekc":{"language":2016},"eke":{"language":2017},"ekg":{"language":2018},"eki":{"language":2019},"ekk":{"language":2020},"ekl":{"language":2021},"ekm":{"language":2022},"eko":{"language":2023},"ekp":{"language":2024},"ekr":{"language":2025},"eky":{"language":2026},"ele":{"language":2027},"elh":{"language":2028},"eli":{"language":2029},"elk":{"language":2030},"elm":{"language":2031},"elo":{"language":2032},"elp":{"language":2033},"elu":{"language":2034},"elx":{"language":2035},"ema":{"language":2036},"emb":{"language":2037},"eme":{"language":2038},"emg":{"language":2039},"emi":{"language":2040},"emk":{"language":2041},"emm":{"language":2042},"emn":{"language":2043},"emo":{"language":2044},"emp":{"language":2045},"ems":{"language":2046},"emu":{"language":2047},"emw":{"language":2048},"emx":{"language":2049},"emy":{"language":2050},"ena":{"language":2051},"enb":{"language":2052},"enc":{"language":2053},"end":{"language":2054},"enf":{"language":2055},"enh":{"language":2056},"enl":{"language":2057},"enm":{"language":2058},"enn":{"language":2059},"eno":{"language":2060},"enq":{"language":2061},"enr":{"language":2062},"enu":{"language":2063},"env":{"language":2064},"enw":{"language":2065},"enx":{"language":2066},"eot":{"language":2067},"epi":{"language":2068},"era":{"language":2069},"erg":{"language":2070},"erh":{"language":2071},"eri":{"language":2072},"erk":{"language":2073},"ero":{"language":2074},"err":{"language":2075},"ers":{"language":2076},"ert":{"language":2077},"erw":{"language":2078},"ese":{"language":2079},"esg":{"language":2080},"esh":{"language":2081},"esi":{"language":2082},"esk":{"language":2083},"esl":{"language":2084,"extlang":8221},"esm":{"language":2085},"esn":{"language":2086,"extlang":8222},"eso":{"language":2087,"extlang":8223},"esq":{"language":2088},"ess":{"language":2089},"esu":{"language":2090},"esx":{"language":2091},"esy":{"language":2092},"etb":{"language":2093},"etc":{"language":2094},"eth":{"language":2095,"extlang":8224},"etn":{"language":2096},"eto":{"language":2097},"etr":{"language":2098},"ets":{"language":2099},"ett":{"language":2100},"etu":{"language":2101},"etx":{"language":2102},"etz":{"language":2103},"euq":{"language":2104},"eve":{"language":2105},"evh":{"language":2106},"evn":{"language":2107},"ewo":{"language":2108},"ext":{"language":2109},"eya":{"language":2110},"eyo":{"language":2111},"eza":{"language":2112},"eze":{"language":2113},"faa":{"language":2114},"fab":{"language":2115},"fad":{"language":2116},"faf":{"language":2117},"fag":{"language":2118},"fah":{"language":2119},"fai":{"language":2120},"faj":{"language":2121},"fak":{"language":2122},"fal":{"language":2123},"fam":{"language":2124},"fan":{"language":2125},"fap":{"language":2126},"far":{"language":2127},"fat":{"language":2128},"fau":{"language":2129},"fax":{"language":2130},"fay":{"language":2131},"faz":{"language":2132},"fbl":{"language":2133},"fcs":{"language":2134,"extlang":8225},"fer":{"language":2135},"ffi":{"language":2136},"ffm":{"language":2137},"fgr":{"language":2138},"fia":{"language":2139},"fie":{"language":2140},"fil":{"language":2141},"fip":{"language":2142},"fir":{"language":2143},"fit":{"language":2144},"fiu":{"language":2145},"fiw":{"language":2146},"fkk":{"language":2147},"fkv":{"language":2148},"fla":{"language":2149},"flh":{"language":2150},"fli":{"language":2151},"fll":{"language":2152},"fln":{"language":2153},"flr":{"language":2154},"fly":{"language":2155},"fmp":{"language":2156},"fmu":{"language":2157},"fnb":{"language":2158},"fng":{"language":2159},"fni":{"language":2160},"fod":{"language":2161},"foi":{"language":2162},"fom":{"language":2163},"fon":{"language":2164},"for":{"language":2165},"fos":{"language":2166},"fox":{"language":2167},"fpe":{"language":2168},"fqs":{"language":2169},"frc":{"language":2170},"frd":{"language":2171},"frk":{"language":2172},"frm":{"language":2173},"fro":{"language":2174},"frp":{"language":2175},"frq":{"language":2176},"frr":{"language":2177},"frs":{"language":2178},"frt":{"language":2179},"fse":{"language":2180,"extlang":8226},"fsl":{"language":2181,"extlang":8227},"fss":{"language":2182,"extlang":8228},"fub":{"language":2183},"fuc":{"language":2184},"fud":{"language":2185},"fue":{"language":2186},"fuf":{"language":2187},"fuh":{"language":2188},"fui":{"language":2189},"fuj":{"language":2190},"fum":{"language":2191},"fun":{"language":2192},"fuq":{"language":2193},"fur":{"language":2194},"fut":{"language":2195},"fuu":{"language":2196},"fuv":{"language":2197},"fuy":{"language":2198},"fvr":{"language":2199},"fwa":{"language":2200},"fwe":{"language":2201},"gaa":{"language":2202},"gab":{"language":2203},"gac":{"language":2204},"gad":{"language":2205},"gae":{"language":2206},"gaf":{"language":2207},"gag":{"language":2208},"gah":{"language":2209},"gai":{"language":2210},"gaj":{"language":2211},"gak":{"language":2212},"gal":{"language":2213},"gam":{"language":2214},"gan":{"language":2215,"extlang":8229},"gao":{"language":2216},"gap":{"language":2217},"gaq":{"language":2218},"gar":{"language":2219},"gas":{"language":2220},"gat":{"language":2221},"gau":{"language":2222},"gav":{"language":2223},"gaw":{"language":2224},"gax":{"language":2225},"gay":{"language":2226},"gaz":{"language":2227},"gba":{"language":2228},"gbb":{"language":2229},"gbc":{"language":2230},"gbd":{"language":2231},"gbe":{"language":2232},"gbf":{"language":2233},"gbg":{"language":2234},"gbh":{"language":2235},"gbi":{"language":2236},"gbj":{"language":2237},"gbk":{"language":2238},"gbl":{"language":2239},"gbm":{"language":2240},"gbn":{"language":2241},"gbo":{"language":2242},"gbp":{"language":2243},"gbq":{"language":2244},"gbr":{"language":2245},"gbs":{"language":2246},"gbu":{"language":2247},"gbv":{"language":2248},"gbw":{"language":2249},"gbx":{"language":2250},"gby":{"language":2251},"gbz":{"language":2252},"gcc":{"language":2253},"gcd":{"language":2254},"gce":{"language":2255},"gcf":{"language":2256},"gcl":{"language":2257},"gcn":{"language":2258},"gcr":{"language":2259},"gct":{"language":2260},"gda":{"language":2261},"gdb":{"language":2262},"gdc":{"language":2263},"gdd":{"language":2264},"gde":{"language":2265},"gdf":{"language":2266},"gdg":{"language":2267},"gdh":{"language":2268},"gdi":{"language":2269},"gdj":{"language":2270},"gdk":{"language":2271},"gdl":{"language":2272},"gdm":{"language":2273},"gdn":{"language":2274},"gdo":{"language":2275},"gdq":{"language":2276},"gdr":{"language":2277},"gds":{"language":2278,"extlang":8230},"gdt":{"language":2279},"gdu":{"language":2280},"gdx":{"language":2281},"gea":{"language":2282},"geb":{"language":2283},"gec":{"language":2284},"ged":{"language":2285},"geg":{"language":2286},"geh":{"language":2287},"gei":{"language":2288},"gej":{"language":2289},"gek":{"language":2290},"gel":{"language":2291},"gem":{"language":2292},"geq":{"language":2293},"ges":{"language":2294},"gev":{"language":2295},"gew":{"language":2296},"gex":{"language":2297},"gey":{"language":2298},"gez":{"language":2299},"gfk":{"language":2300},"gft":{"language":2301},"gfx":{"language":2302},"gga":{"language":2303},"ggb":{"language":2304},"ggd":{"language":2305},"gge":{"language":2306},"ggg":{"language":2307},"ggk":{"language":2308},"ggl":{"language":2309},"ggn":{"language":2310},"ggo":{"language":2311},"ggr":{"language":2312},"ggt":{"language":2313},"ggu":{"language":2314},"ggw":{"language":2315},"gha":{"language":2316},"ghc":{"language":2317},"ghe":{"language":2318},"ghh":{"language":2319},"ghk":{"language":2320},"ghl":{"language":2321},"ghn":{"language":2322},"gho":{"language":2323},"ghr":{"language":2324},"ghs":{"language":2325},"ght":{"language":2326},"gia":{"language":2327},"gib":{"language":2328},"gic":{"language":2329},"gid":{"language":2330},"gie":{"language":2331},"gig":{"language":2332},"gih":{"language":2333},"gil":{"language":2334},"gim":{"language":2335},"gin":{"language":2336},"gio":{"language":2337},"gip":{"language":2338},"giq":{"language":2339},"gir":{"language":2340},"gis":{"language":2341},"git":{"language":2342},"giu":{"language":2343},"giw":{"language":2344},"gix":{"language":2345},"giy":{"language":2346},"giz":{"language":2347},"gji":{"language":2348},"gjk":{"language":2349},"gjm":{"language":2350},"gjn":{"language":2351},"gjr":{"language":2352},"gju":{"language":2353},"gka":{"language":2354},"gkd":{"language":2355},"gke":{"language":2356},"gkn":{"language":2357},"gko":{"language":2358},"gkp":{"language":2359},"gku":{"language":2360},"glc":{"language":2361},"gld":{"language":2362},"glh":{"language":2363},"gli":{"language":2364},"glj":{"language":2365},"glk":{"language":2366},"gll":{"language":2367},"glo":{"language":2368},"glr":{"language":2369},"glu":{"language":2370},"glw":{"language":2371},"gly":{"language":2372},"gma":{"language":2373},"gmb":{"language":2374},"gmd":{"language":2375},"gme":{"language":2376},"gmg":{"language":2377},"gmh":{"language":2378},"gml":{"language":2379},"gmm":{"language":2380},"gmn":{"language":2381},"gmq":{"language":2382},"gmu":{"language":2383},"gmv":{"language":2384},"gmw":{"language":2385},"gmx":{"language":2386},"gmy":{"language":2387},"gmz":{"language":2388},"gna":{"language":2389},"gnb":{"language":2390},"gnc":{"language":2391},"gnd":{"language":2392},"gne":{"language":2393},"gng":{"language":2394},"gnh":{"language":2395},"gni":{"language":2396},"gnj":{"language":2397},"gnk":{"language":2398},"gnl":{"language":2399},"gnm":{"language":2400},"gnn":{"language":2401},"gno":{"language":2402},"gnq":{"language":2403},"gnr":{"language":2404},"gnt":{"language":2405},"gnu":{"language":2406},"gnw":{"language":2407},"gnz":{"language":2408},"goa":{"language":2409},"gob":{"language":2410},"goc":{"language":2411},"god":{"language":2412},"goe":{"language":2413},"gof":{"language":2414},"gog":{"language":2415},"goh":{"language":2416},"goi":{"language":2417},"goj":{"language":2418},"gok":{"language":2419},"gol":{"language":2420},"gom":{"language":2421,"extlang":8231},"gon":{"language":2422},"goo":{"language":2423},"gop":{"language":2424},"goq":{"language":2425},"gor":{"language":2426},"gos":{"language":2427},"got":{"language":2428},"gou":{"language":2429},"gow":{"language":2430},"gox":{"language":2431},"goy":{"language":2432},"goz":{"language":2433},"gpa":{"language":2434},"gpe":{"language":2435},"gpn":{"language":2436},"gqa":{"language":2437},"gqi":{"language":2438},"gqn":{"language":2439},"gqr":{"language":2440},"gqu":{"language":2441},"gra":{"language":2442},"grb":{"language":2443},"grc":{"language":2444},"grd":{"language":2445},"grg":{"language":2446},"grh":{"language":2447},"gri":{"language":2448},"grj":{"language":2449},"grk":{"language":2450},"grm":{"language":2451},"gro":{"language":2452},"grq":{"language":2453},"grr":{"language":2454},"grs":{"language":2455},"grt":{"language":2456},"gru":{"language":2457},"grv":{"language":2458},"grw":{"language":2459},"grx":{"language":2460},"gry":{"language":2461},"grz":{"language":2462},"gse":{"language":2463,"extlang":8232},"gsg":{"language":2464,"extlang":8233},"gsl":{"language":2465},"gsm":{"language":2466,"extlang":8234},"gsn":{"language":2467},"gso":{"language":2468},"gsp":{"language":2469},"gss":{"language":2470,"extlang":8235},"gsw":{"language":2471},"gta":{"language":2472},"gti":{"language":2473},"gtu":{"language":2474},"gua":{"language":2475},"gub":{"language":2476},"guc":{"language":2477},"gud":{"language":2478},"gue":{"language":2479},"guf":{"language":2480},"gug":{"language":2481},"guh":{"language":2482},"gui":{"language":2483},"guk":{"language":2484},"gul":{"language":2485},"gum":{"language":2486},"gun":{"language":2487},"guo":{"language":2488},"gup":{"language":2489},"guq":{"language":2490},"gur":{"language":2491},"gus":{"language":2492,"extlang":8236},"gut":{"language":2493},"guu":{"language":2494},"guv":{"language":2495},"guw":{"language":2496},"gux":{"language":2497},"guz":{"language":2498},"gva":{"language":2499},"gvc":{"language":2500},"gve":{"language":2501},"gvf":{"language":2502},"gvj":{"language":2503},"gvl":{"language":2504},"gvm":{"language":2505},"gvn":{"language":2506},"gvo":{"language":2507},"gvp":{"language":2508},"gvr":{"language":2509},"gvs":{"language":2510},"gvy":{"language":2511},"gwa":{"language":2512},"gwb":{"language":2513},"gwc":{"language":2514},"gwd":{"language":2515},"gwe":{"language":2516},"gwf":{"language":2517},"gwg":{"language":2518},"gwi":{"language":2519},"gwj":{"language":2520},"gwm":{"language":2521},"gwn":{"language":2522},"gwr":{"language":2523},"gwt":{"language":2524},"gwu":{"language":2525},"gww":{"language":2526},"gwx":{"language":2527},"gxx":{"language":2528},"gya":{"language":2529},"gyb":{"language":2530},"gyd":{"language":2531},"gye":{"language":2532},"gyf":{"language":2533},"gyg":{"language":2534},"gyi":{"language":2535},"gyl":{"language":2536},"gym":{"language":2537},"gyn":{"language":2538},"gyo":{"language":2539},"gyr":{"language":2540},"gyy":{"language":2541},"gza":{"language":2542},"gzi":{"language":2543},"gzn":{"language":2544},"haa":{"language":2545},"hab":{"language":2546,"extlang":8237},"hac":{"language":2547},"had":{"language":2548},"hae":{"language":2549},"haf":{"language":2550,"extlang":8238},"hag":{"language":2551},"hah":{"language":2552},"hai":{"language":2553},"haj":{"language":2554},"hak":{"language":2555,"extlang":8239},"hal":{"language":2556},"ham":{"language":2557},"han":{"language":2558},"hao":{"language":2559},"hap":{"language":2560},"haq":{"language":2561},"har":{"language":2562},"has":{"language":2563},"hav":{"language":2564},"haw":{"language":2565},"hax":{"language":2566},"hay":{"language":2567},"haz":{"language":2568},"hba":{"language":2569},"hbb":{"language":2570},"hbn":{"language":2571},"hbo":{"language":2572},"hbu":{"language":2573},"hca":{"language":2574},"hch":{"language":2575},"hdn":{"language":2576},"hds":{"language":2577,"extlang":8240},"hdy":{"language":2578},"hea":{"language":2579},"hed":{"language":2580},"heg":{"language":2581},"heh":{"language":2582},"hei":{"language":2583},"hem":{"language":2584},"hgm":{"language":2585},"hgw":{"language":2586},"hhi":{"language":2587},"hhr":{"language":2588},"hhy":{"language":2589},"hia":{"language":2590},"hib":{"language":2591},"hid":{"language":2592},"hif":{"language":2593},"hig":{"language":2594},"hih":{"language":2595},"hii":{"language":2596},"hij":{"language":2597},"hik":{"language":2598},"hil":{"language":2599},"him":{"language":2600},"hio":{"language":2601},"hir":{"language":2602},"hit":{"language":2603},"hiw":{"language":2604},"hix":{"language":2605},"hji":{"language":2606,"extlang":8241},"hka":{"language":2607},"hke":{"language":2608},"hkk":{"language":2609},"hkn":{"language":2610},"hks":{"language":2611,"extlang":8242},"hla":{"language":2612},"hlb":{"language":2613},"hld":{"language":2614},"hle":{"language":2615},"hlt":{"language":2616},"hlu":{"language":2617},"hma":{"language":2618},"hmb":{"language":2619},"hmc":{"language":2620},"hmd":{"language":2621},"hme":{"language":2622},"hmf":{"language":2623},"hmg":{"language":2624},"hmh":{"language":2625},"hmi":{"language":2626},"hmj":{"language":2627},"hmk":{"language":2628},"hml":{"language":2629},"hmm":{"language":2630},"hmn":{"language":2631},"hmp":{"language":2632},"hmq":{"language":2633},"hmr":{"language":2634},"hms":{"language":2635},"hmt":{"language":2636},"hmu":{"language":2637},"hmv":{"language":2638},"hmw":{"language":2639},"hmx":{"language":2640},"hmy":{"language":2641},"hmz":{"language":2642},"hna":{"language":2643},"hnd":{"language":2644},"hne":{"language":2645},"hnh":{"language":2646},"hni":{"language":2647},"hnj":{"language":2648},"hnn":{"language":2649},"hno":{"language":2650},"hns":{"language":2651},"hnu":{"language":2652},"hoa":{"language":2653},"hob":{"language":2654},"hoc":{"language":2655},"hod":{"language":2656},"hoe":{"language":2657},"hoh":{"language":2658},"hoi":{"language":2659},"hoj":{"language":2660},"hok":{"language":2661},"hol":{"language":2662},"hom":{"language":2663},"hoo":{"language":2664},"hop":{"language":2665},"hor":{"language":2666},"hos":{"language":2667,"extlang":8243},"hot":{"language":2668},"hov":{"language":2669},"how":{"language":2670},"hoy":{"language":2671},"hoz":{"language":2672},"hpo":{"language":2673},"hps":{"language":2674,"extlang":8244},"hra":{"language":2675},"hrc":{"language":2676},"hre":{"language":2677},"hrk":{"language":2678},"hrm":{"language":2679},"hro":{"language":2680},"hrp":{"language":2681},"hrr":{"language":2682},"hrt":{"language":2683},"hru":{"language":2684},"hrw":{"language":2685},"hrx":{"language":2686},"hrz":{"language":2687},"hsb":{"language":2688},"hsh":{"language":2689,"extlang":8245},"hsl":{"language":2690,"extlang":8246},"hsn":{"language":2691,"extlang":8247},"hss":{"language":2692},"hti":{"language":2693},"hto":{"language":2694},"hts":{"language":2695},"htu":{"language":2696},"htx":{"language":2697},"hub":{"language":2698},"huc":{"language":2699},"hud":{"language":2700},"hue":{"language":2701},"huf":{"language":2702},"hug":{"language":2703},"huh":{"language":2704},"hui":{"language":2705},"huj":{"language":2706},"huk":{"language":2707},"hul":{"language":2708},"hum":{"language":2709},"huo":{"language":2710},"hup":{"language":2711},"huq":{"language":2712},"hur":{"language":2713},"hus":{"language":2714},"hut":{"language":2715},"huu":{"language":2716},"huv":{"language":2717},"huw":{"language":2718},"hux":{"language":2719},"huy":{"language":2720},"huz":{"language":2721},"hvc":{"language":2722},"hve":{"language":2723},"hvk":{"language":2724},"hvn":{"language":2725},"hvv":{"language":2726},"hwa":{"language":2727},"hwc":{"language":2728},"hwo":{"language":2729},"hya":{"language":2730},"hyw":{"language":2731},"hyx":{"language":2732},"iai":{"language":2733},"ian":{"language":2734},"iap":{"language":2735},"iar":{"language":2736},"iba":{"language":2737},"ibb":{"language":2738},"ibd":{"language":2739},"ibe":{"language":2740},"ibg":{"language":2741},"ibh":{"language":2742},"ibi":{"language":2743},"ibl":{"language":2744},"ibm":{"language":2745},"ibn":{"language":2746},"ibr":{"language":2747},"ibu":{"language":2748},"iby":{"language":2749},"ica":{"language":2750},"ich":{"language":2751},"icl":{"language":2752,"extlang":8248},"icr":{"language":2753},"ida":{"language":2754},"idb":{"language":2755},"idc":{"language":2756},"idd":{"language":2757},"ide":{"language":2758},"idi":{"language":2759},"idr":{"language":2760},"ids":{"language":2761},"idt":{"language":2762},"idu":{"language":2763},"ifa":{"language":2764},"ifb":{"language":2765},"ife":{"language":2766},"iff":{"language":2767},"ifk":{"language":2768},"ifm":{"language":2769},"ifu":{"language":2770},"ify":{"language":2771},"igb":{"language":2772},"ige":{"language":2773},"igg":{"language":2774},"igl":{"language":2775},"igm":{"language":2776},"ign":{"language":2777},"igo":{"language":2778},"igs":{"language":2779},"igw":{"language":2780},"ihb":{"language":2781},"ihi":{"language":2782},"ihp":{"language":2783},"ihw":{"language":2784},"iin":{"language":2785},"iir":{"language":2786},"ijc":{"language":2787},"ije":{"language":2788},"ijj":{"language":2789},"ijn":{"language":2790},"ijo":{"language":2791},"ijs":{"language":2792},"ike":{"language":2793},"iki":{"language":2794},"ikk":{"language":2795},"ikl":{"language":2796},"iko":{"language":2797},"ikp":{"language":2798},"ikr":{"language":2799},"iks":{"language":2800,"extlang":8249},"ikt":{"language":2801},"ikv":{"language":2802},"ikw":{"language":2803},"ikx":{"language":2804},"ikz":{"language":2805},"ila":{"language":2806},"ilb":{"language":2807},"ilg":{"language":2808},"ili":{"language":2809},"ilk":{"language":2810},"ill":{"language":2811},"ilm":{"language":2812},"ilo":{"language":2813},"ilp":{"language":2814},"ils":{"language":2815,"extlang":8250},"ilu":{"language":2816},"ilv":{"language":2817},"ilw":{"language":2818},"ima":{"language":2819},"ime":{"language":2820},"imi":{"language":2821},"iml":{"language":2822},"imn":{"language":2823},"imo":{"language":2824},"imr":{"language":2825},"ims":{"language":2826},"imy":{"language":2827},"inb":{"language":2828},"inc":{"language":2829},"ine":{"language":2830},"ing":{"language":2831},"inh":{"language":2832},"inj":{"language":2833},"inl":{"language":2834,"extlang":8251},"inm":{"language":2835},"inn":{"language":2836},"ino":{"language":2837},"inp":{"language":2838},"ins":{"language":2839,"extlang":8252},"int":{"language":2840},"inz":{"language":2841},"ior":{"language":2842},"iou":{"language":2843},"iow":{"language":2844},"ipi":{"language":2845},"ipo":{"language":2846},"iqu":{"language":2847},"iqw":{"language":2848},"ira":{"language":2849},"ire":{"language":2850},"irh":{"language":2851},"iri":{"language":2852},"irk":{"language":2853},"irn":{"language":2854},"iro":{"language":2855},"irr":{"language":2856},"iru":{"language":2857},"irx":{"language":2858},"iry":{"language":2859},"isa":{"language":2860},"isc":{"language":2861},"isd":{"language":2862},"ise":{"language":2863,"extlang":8253},"isg":{"language":2864,"extlang":8254},"ish":{"language":2865},"isi":{"language":2866},"isk":{"language":2867},"ism":{"language":2868},"isn":{"language":2869},"iso":{"language":2870},"isr":{"language":2871,"extlang":8255},"ist":{"language":2872},"isu":{"language":2873},"itb":{"language":2874},"itc":{"language":2875},"itd":{"language":2876},"ite":{"language":2877},"iti":{"language":2878},"itk":{"language":2879},"itl":{"language":2880},"itm":{"language":2881},"ito":{"language":2882},"itr":{"language":2883},"its":{"language":2884},"itt":{"language":2885},"itv":{"language":2886},"itw":{"language":2887},"itx":{"language":2888},"ity":{"language":2889},"itz":{"language":2890},"ium":{"language":2891},"ivb":{"language":2892},"ivv":{"language":2893},"iwk":{"language":2894},"iwm":{"language":2895},"iwo":{"language":2896},"iws":{"language":2897},"ixc":{"language":2898},"ixl":{"language":2899},"iya":{"language":2900},"iyo":{"language":2901},"iyx":{"language":2902},"izh":{"language":2903},"izi":{"language":2904},"izr":{"language":2905},"izz":{"language":2906},"jaa":{"language":2907},"jab":{"language":2908},"jac":{"language":2909},"jad":{"language":2910},"jae":{"language":2911},"jaf":{"language":2912},"jah":{"language":2913},"jaj":{"language":2914},"jak":{"language":2915,"extlang":8256},"jal":{"language":2916},"jam":{"language":2917},"jan":{"language":2918},"jao":{"language":2919},"jaq":{"language":2920},"jar":{"language":2921},"jas":{"language":2922},"jat":{"language":2923},"jau":{"language":2924},"jax":{"language":2925,"extlang":8257},"jay":{"language":2926},"jaz":{"language":2927},"jbe":{"language":2928},"jbi":{"language":2929},"jbj":{"language":2930},"jbk":{"language":2931},"jbn":{"language":2932},"jbo":{"language":2933},"jbr":{"language":2934},"jbt":{"language":2935},"jbu":{"language":2936},"jbw":{"language":2937},"jcs":{"language":2938,"extlang":8258},"jct":{"language":2939},"jda":{"language":2940},"jdg":{"language":2941},"jdt":{"language":2942},"jeb":{"language":2943},"jee":{"language":2944},"jeg":{"language":2945},"jeh":{"language":2946},"jei":{"language":2947},"jek":{"language":2948},"jel":{"language":2949},"jen":{"language":2950},"jer":{"language":2951},"jet":{"language":2952},"jeu":{"language":2953},"jgb":{"language":2954},"jge":{"language":2955},"jgk":{"language":2956},"jgo":{"language":2957},"jhi":{"language":2958},"jhs":{"language":2959,"extlang":8259},"jia":{"language":2960},"jib":{"language":2961},"jic":{"language":2962},"jid":{"language":2963},"jie":{"language":2964},"jig":{"language":2965},"jih":{"language":2966},"jii":{"language":2967},"jil":{"language":2968},"jim":{"language":2969},"jio":{"language":2970},"jiq":{"language":2971},"jit":{"language":2972},"jiu":{"language":2973},"jiv":{"language":2974},"jiy":{"language":2975},"jje":{"language":2976},"jjr":{"language":2977},"jka":{"language":2978},"jkm":{"language":2979},"jko":{"language":2980},"jkp":{"language":2981},"jkr":{"language":2982},"jku":{"language":2983},"jle":{"language":2984},"jls":{"language":2985,"extlang":8260},"jma":{"language":2986},"jmb":{"language":2987},"jmc":{"language":2988},"jmd":{"language":2989},"jmi":{"language":2990},"jml":{"language":2991},"jmn":{"language":2992},"jmr":{"language":2993},"jms":{"language":2994},"jmw":{"language":2995},"jmx":{"language":2996},"jna":{"language":2997},"jnd":{"language":2998},"jng":{"language":2999},"jni":{"language":3000},"jnj":{"language":3001},"jnl":{"language":3002},"jns":{"language":3003},"job":{"language":3004},"jod":{"language":3005},"jog":{"language":3006},"jor":{"language":3007},"jos":{"language":3008,"extlang":8261},"jow":{"language":3009},"jpa":{"language":3010},"jpr":{"language":3011},"jpx":{"language":3012},"jqr":{"language":3013},"jra":{"language":3014},"jrb":{"language":3015},"jrr":{"language":3016},"jrt":{"language":3017},"jru":{"language":3018},"jsl":{"language":3019,"extlang":8262},"jua":{"language":3020},"jub":{"language":3021},"juc":{"language":3022},"jud":{"language":3023},"juh":{"language":3024},"jui":{"language":3025},"juk":{"language":3026},"jul":{"language":3027},"jum":{"language":3028},"jun":{"language":3029},"juo":{"language":3030},"jup":{"language":3031},"jur":{"language":3032},"jus":{"language":3033,"extlang":8263},"jut":{"language":3034},"juu":{"language":3035},"juw":{"language":3036},"juy":{"language":3037},"jvd":{"language":3038},"jvn":{"language":3039},"jwi":{"language":3040},"jya":{"language":3041},"jye":{"language":3042},"jyy":{"language":3043},"kaa":{"language":3044},"kab":{"language":3045},"kac":{"language":3046},"kad":{"language":3047},"kae":{"language":3048},"kaf":{"language":3049},"kag":{"language":3050},"kah":{"language":3051},"kai":{"language":3052},"kaj":{"language":3053},"kak":{"language":3054},"kam":{"language":3055},"kao":{"language":3056},"kap":{"language":3057},"kaq":{"language":3058},"kar":{"language":3059},"kav":{"language":3060},"kaw":{"language":3061},"kax":{"language":3062},"kay":{"language":3063},"kba":{"language":3064},"kbb":{"language":3065},"kbc":{"language":3066},"kbd":{"language":3067},"kbe":{"language":3068},"kbf":{"language":3069},"kbg":{"language":3070},"kbh":{"language":3071},"kbi":{"language":3072},"kbj":{"language":3073},"kbk":{"language":3074},"kbl":{"language":3075},"kbm":{"language":3076},"kbn":{"language":3077},"kbo":{"language":3078},"kbp":{"language":3079},"kbq":{"language":3080},"kbr":{"language":3081},"kbs":{"language":3082},"kbt":{"language":3083},"kbu":{"language":3084},"kbv":{"language":3085},"kbw":{"language":3086},"kbx":{"language":3087},"kby":{"language":3088},"kbz":{"language":3089},"kca":{"language":3090},"kcb":{"language":3091},"kcc":{"language":3092},"kcd":{"language":3093},"kce":{"language":3094},"kcf":{"language":3095},"kcg":{"language":3096},"kch":{"language":3097},"kci":{"language":3098},"kcj":{"language":3099},"kck":{"language":3100},"kcl":{"language":3101},"kcm":{"language":3102},"kcn":{"language":3103},"kco":{"language":3104},"kcp":{"language":3105},"kcq":{"language":3106},"kcr":{"language":3107},"kcs":{"language":3108},"kct":{"language":3109},"kcu":{"language":3110},"kcv":{"language":3111},"kcw":{"language":3112},"kcx":{"language":3113},"kcy":{"language":3114},"kcz":{"language":3115},"kda":{"language":3116},"kdc":{"language":3117},"kdd":{"language":3118},"kde":{"language":3119},"kdf":{"language":3120},"kdg":{"language":3121},"kdh":{"language":3122},"kdi":{"language":3123},"kdj":{"language":3124},"kdk":{"language":3125},"kdl":{"language":3126},"kdm":{"language":3127},"kdn":{"language":3128},"kdo":{"language":3129},"kdp":{"language":3130},"kdq":{"language":3131},"kdr":{"language":3132},"kdt":{"language":3133},"kdu":{"language":3134},"kdv":{"language":3135},"kdw":{"language":3136},"kdx":{"language":3137},"kdy":{"language":3138},"kdz":{"language":3139},"kea":{"language":3140},"keb":{"language":3141},"kec":{"language":3142},"ked":{"language":3143},"kee":{"language":3144},"kef":{"language":3145},"keg":{"language":3146},"keh":{"language":3147},"kei":{"language":3148},"kej":{"language":3149},"kek":{"language":3150},"kel":{"language":3151},"kem":{"language":3152},"ken":{"language":3153},"keo":{"language":3154},"kep":{"language":3155},"keq":{"language":3156},"ker":{"language":3157},"kes":{"language":3158},"ket":{"language":3159},"keu":{"language":3160},"kev":{"language":3161},"kew":{"language":3162},"kex":{"language":3163},"key":{"language":3164},"kez":{"language":3165},"kfa":{"language":3166},"kfb":{"language":3167},"kfc":{"language":3168},"kfd":{"language":3169},"kfe":{"language":3170},"kff":{"language":3171},"kfg":{"language":3172},"kfh":{"language":3173},"kfi":{"language":3174},"kfj":{"language":3175},"kfk":{"language":3176},"kfl":{"language":3177},"kfm":{"language":3178},"kfn":{"language":3179},"kfo":{"language":3180},"kfp":{"language":3181},"kfq":{"language":3182},"kfr":{"language":3183},"kfs":{"language":3184},"kft":{"language":3185},"kfu":{"language":3186},"kfv":{"language":3187},"kfw":{"language":3188},"kfx":{"language":3189},"kfy":{"language":3190},"kfz":{"language":3191},"kga":{"language":3192},"kgb":{"language":3193},"kgc":{"language":3194},"kgd":{"language":3195},"kge":{"language":3196},"kgf":{"language":3197},"kgg":{"language":3198},"kgh":{"language":3199},"kgi":{"language":3200,"extlang":8264},"kgj":{"language":3201},"kgk":{"language":3202},"kgl":{"language":3203},"kgm":{"language":3204},"kgn":{"language":3205},"kgo":{"language":3206},"kgp":{"language":3207},"kgq":{"language":3208},"kgr":{"language":3209},"kgs":{"language":3210},"kgt":{"language":3211},"kgu":{"language":3212},"kgv":{"language":3213},"kgw":{"language":3214},"kgx":{"language":3215},"kgy":{"language":3216},"kha":{"language":3217},"khb":{"language":3218},"khc":{"language":3219},"khd":{"language":3220},"khe":{"language":3221},"khf":{"language":3222},"khg":{"language":3223},"khh":{"language":3224},"khi":{"language":3225},"khj":{"language":3226},"khk":{"language":3227},"khl":{"language":3228},"khn":{"language":3229},"kho":{"language":3230},"khp":{"language":3231},"khq":{"language":3232},"khr":{"language":3233},"khs":{"language":3234},"kht":{"language":3235},"khu":{"language":3236},"khv":{"language":3237},"khw":{"language":3238},"khx":{"language":3239},"khy":{"language":3240},"khz":{"language":3241},"kia":{"language":3242},"kib":{"language":3243},"kic":{"language":3244},"kid":{"language":3245},"kie":{"language":3246},"kif":{"language":3247},"kig":{"language":3248},"kih":{"language":3249},"kii":{"language":3250},"kij":{"language":3251},"kil":{"language":3252},"kim":{"language":3253},"kio":{"language":3254},"kip":{"language":3255},"kiq":{"language":3256},"kis":{"language":3257},"kit":{"language":3258},"kiu":{"language":3259},"kiv":{"language":3260},"kiw":{"language":3261},"kix":{"language":3262},"kiy":{"language":3263},"kiz":{"language":3264},"kja":{"language":3265},"kjb":{"language":3266},"kjc":{"language":3267},"kjd":{"language":3268},"kje":{"language":3269},"kjf":{"language":3270},"kjg":{"language":3271},"kjh":{"language":3272},"kji":{"language":3273},"kjj":{"language":3274},"kjk":{"language":3275},"kjl":{"language":3276},"kjm":{"language":3277},"kjn":{"language":3278},"kjo":{"language":3279},"kjp":{"language":3280},"kjq":{"language":3281},"kjr":{"language":3282},"kjs":{"language":3283},"kjt":{"language":3284},"kju":{"language":3285},"kjv":{"language":3286},"kjx":{"language":3287},"kjy":{"language":3288},"kjz":{"language":3289},"kka":{"language":3290},"kkb":{"language":3291},"kkc":{"language":3292},"kkd":{"language":3293},"kke":{"language":3294},"kkf":{"language":3295},"kkg":{"language":3296},"kkh":{"language":3297},"kki":{"language":3298},"kkj":{"language":3299},"kkk":{"language":3300},"kkl":{"language":3301},"kkm":{"language":3302},"kkn":{"language":3303},"kko":{"language":3304},"kkp":{"language":3305},"kkq":{"language":3306},"kkr":{"language":3307},"kks":{"language":3308},"kkt":{"language":3309},"kku":{"language":3310},"kkv":{"language":3311},"kkw":{"language":3312},"kkx":{"language":3313},"kky":{"language":3314},"kkz":{"language":3315},"kla":{"language":3316},"klb":{"language":3317},"klc":{"language":3318},"kld":{"language":3319},"kle":{"language":3320},"klf":{"language":3321},"klg":{"language":3322},"klh":{"language":3323},"kli":{"language":3324},"klj":{"language":3325},"klk":{"language":3326},"kll":{"language":3327},"klm":{"language":3328},"kln":{"language":3329},"klo":{"language":3330},"klp":{"language":3331},"klq":{"language":3332},"klr":{"language":3333},"kls":{"language":3334},"klt":{"language":3335},"klu":{"language":3336},"klv":{"language":3337},"klw":{"language":3338},"klx":{"language":3339},"kly":{"language":3340},"klz":{"language":3341},"kma":{"language":3342},"kmb":{"language":3343},"kmc":{"language":3344},"kmd":{"language":3345},"kme":{"language":3346},"kmf":{"language":3347},"kmg":{"language":3348},"kmh":{"language":3349},"kmi":{"language":3350},"kmj":{"language":3351},"kmk":{"language":3352},"kml":{"language":3353},"kmm":{"language":3354},"kmn":{"language":3355},"kmo":{"language":3356},"kmp":{"language":3357},"kmq":{"language":3358},"kmr":{"language":3359},"kms":{"language":3360},"kmt":{"language":3361},"kmu":{"language":3362},"kmv":{"language":3363},"kmw":{"language":3364},"kmx":{"language":3365},"kmy":{"language":3366},"kmz":{"language":3367},"kna":{"language":3368},"knb":{"language":3369},"knc":{"language":3370},"knd":{"language":3371},"kne":{"language":3372},"knf":{"language":3373},"kng":{"language":3374},"kni":{"language":3375},"knj":{"language":3376},"knk":{"language":3377},"knl":{"language":3378},"knm":{"language":3379},"knn":{"language":3380,"extlang":8265},"kno":{"language":3381},"knp":{"language":3382},"knq":{"language":3383},"knr":{"language":3384},"kns":{"language":3385},"knt":{"language":3386},"knu":{"language":3387},"knv":{"language":3388},"knw":{"language":3389},"knx":{"language":3390},"kny":{"language":3391},"knz":{"language":3392},"koa":{"language":3393},"koc":{"language":3394},"kod":{"language":3395},"koe":{"language":3396},"kof":{"language":3397},"kog":{"language":3398},"koh":{"language":3399},"koi":{"language":3400},"koj":{"language":3401},"kok":{"language":3402},"kol":{"language":3403},"koo":{"language":3404},"kop":{"language":3405},"koq":{"language":3406},"kos":{"language":3407},"kot":{"language":3408},"kou":{"language":3409},"kov":{"language":3410},"kow":{"language":3411},"kox":{"language":3412},"koy":{"language":3413},"koz":{"language":3414},"kpa":{"language":3415},"kpb":{"language":3416},"kpc":{"language":3417},"kpd":{"language":3418},"kpe":{"language":3419},"kpf":{"language":3420},"kpg":{"language":3421},"kph":{"language":3422},"kpi":{"language":3423},"kpj":{"language":3424},"kpk":{"language":3425},"kpl":{"language":3426},"kpm":{"language":3427},"kpn":{"language":3428},"kpo":{"language":3429},"kpp":{"language":3430},"kpq":{"language":3431},"kpr":{"language":3432},"kps":{"language":3433},"kpt":{"language":3434},"kpu":{"language":3435},"kpv":{"language":3436},"kpw":{"language":3437},"kpx":{"language":3438},"kpy":{"language":3439},"kpz":{"language":3440},"kqa":{"language":3441},"kqb":{"language":3442},"kqc":{"language":3443},"kqd":{"language":3444},"kqe":{"language":3445},"kqf":{"language":3446},"kqg":{"language":3447},"kqh":{"language":3448},"kqi":{"language":3449},"kqj":{"language":3450},"kqk":{"language":3451},"kql":{"language":3452},"kqm":{"language":3453},"kqn":{"language":3454},"kqo":{"language":3455},"kqp":{"language":3456},"kqq":{"language":3457},"kqr":{"language":3458},"kqs":{"language":3459},"kqt":{"language":3460},"kqu":{"language":3461},"kqv":{"language":3462},"kqw":{"language":3463},"kqx":{"language":3464},"kqy":{"language":3465},"kqz":{"language":3466},"kra":{"language":3467},"krb":{"language":3468},"krc":{"language":3469},"krd":{"language":3470},"kre":{"language":3471},"krf":{"language":3472},"krh":{"language":3473},"kri":{"language":3474},"krj":{"language":3475},"krk":{"language":3476},"krl":{"language":3477},"krm":{"language":3478},"krn":{"language":3479},"kro":{"language":3480},"krp":{"language":3481},"krr":{"language":3482},"krs":{"language":3483},"krt":{"language":3484},"kru":{"language":3485},"krv":{"language":3486},"krw":{"language":3487},"krx":{"language":3488},"kry":{"language":3489},"krz":{"language":3490},"ksa":{"language":3491},"ksb":{"language":3492},"ksc":{"language":3493},"ksd":{"language":3494},"kse":{"language":3495},"ksf":{"language":3496},"ksg":{"language":3497},"ksh":{"language":3498},"ksi":{"language":3499},"ksj":{"language":3500},"ksk":{"language":3501},"ksl":{"language":3502},"ksm":{"language":3503},"ksn":{"language":3504},"kso":{"language":3505},"ksp":{"language":3506},"ksq":{"language":3507},"ksr":{"language":3508},"kss":{"language":3509},"kst":{"language":3510},"ksu":{"language":3511},"ksv":{"language":3512},"ksw":{"language":3513},"ksx":{"language":3514},"ksy":{"language":3515},"ksz":{"language":3516},"kta":{"language":3517},"ktb":{"language":3518},"ktc":{"language":3519},"ktd":{"language":3520},"kte":{"language":3521},"ktf":{"language":3522},"ktg":{"language":3523},"kth":{"language":3524},"kti":{"language":3525},"ktj":{"language":3526},"ktk":{"language":3527},"ktl":{"language":3528},"ktm":{"language":3529},"ktn":{"language":3530},"kto":{"language":3531},"ktp":{"language":3532},"ktq":{"language":3533},"ktr":{"language":3534},"kts":{"language":3535},"ktt":{"language":3536},"ktu":{"language":3537},"ktv":{"language":3538},"ktw":{"language":3539},"ktx":{"language":3540},"kty":{"language":3541},"ktz":{"language":3542},"kub":{"language":3543},"kuc":{"language":3544},"kud":{"language":3545},"kue":{"language":3546},"kuf":{"language":3547},"kug":{"language":3548},"kuh":{"language":3549},"kui":{"language":3550},"kuj":{"language":3551},"kuk":{"language":3552},"kul":{"language":3553},"kum":{"language":3554},"kun":{"language":3555},"kuo":{"language":3556},"kup":{"language":3557},"kuq":{"language":3558},"kus":{"language":3559},"kut":{"language":3560},"kuu":{"language":3561},"kuv":{"language":3562},"kuw":{"language":3563},"kux":{"language":3564},"kuy":{"language":3565},"kuz":{"language":3566},"kva":{"language":3567},"kvb":{"language":3568,"extlang":8266},"kvc":{"language":3569},"kvd":{"language":3570},"kve":{"language":3571},"kvf":{"language":3572},"kvg":{"language":3573},"kvh":{"language":3574},"kvi":{"language":3575},"kvj":{"language":3576},"kvk":{"language":3577,"extlang":8267},"kvl":{"language":3578},"kvm":{"language":3579},"kvn":{"language":3580},"kvo":{"language":3581},"kvp":{"language":3582},"kvq":{"language":3583},"kvr":{"language":3584,"extlang":8268},"kvs":{"language":3585},"kvt":{"language":3586},"kvu":{"language":3587},"kvv":{"language":3588},"kvw":{"language":3589},"kvx":{"language":3590},"kvy":{"language":3591},"kvz":{"language":3592},"kwa":{"language":3593},"kwb":{"language":3594},"kwc":{"language":3595},"kwd":{"language":3596},"kwe":{"language":3597},"kwf":{"language":3598},"kwg":{"language":3599},"kwh":{"language":3600},"kwi":{"language":3601},"kwj":{"language":3602},"kwk":{"language":3603},"kwl":{"language":3604},"kwm":{"language":3605},"kwn":{"language":3606},"kwo":{"language":3607},"kwp":{"language":3608},"kwq":{"language":3609},"kwr":{"language":3610},"kws":{"language":3611},"kwt":{"language":3612},"kwu":{"language":3613},"kwv":{"language":3614},"kww":{"language":3615},"kwx":{"language":3616},"kwy":{"language":3617},"kwz":{"language":3618},"kxa":{"language":3619},"kxb":{"language":3620},"kxc":{"language":3621},"kxd":{"language":3622,"extlang":8269},"kxe":{"language":3623},"kxf":{"language":3624},"kxh":{"language":3625},"kxi":{"language":3626},"kxj":{"language":3627},"kxk":{"language":3628},"kxl":{"language":3629},"kxm":{"language":3630},"kxn":{"language":3631},"kxo":{"language":3632},"kxp":{"language":3633},"kxq":{"language":3634},"kxr":{"language":3635},"kxs":{"language":3636},"kxt":{"language":3637},"kxu":{"language":3638},"kxv":{"language":3639},"kxw":{"language":3640},"kxx":{"language":3641},"kxy":{"language":3642},"kxz":{"language":3643},"kya":{"language":3644},"kyb":{"language":3645},"kyc":{"language":3646},"kyd":{"language":3647},"kye":{"language":3648},"kyf":{"language":3649},"kyg":{"language":3650},"kyh":{"language":3651},"kyi":{"language":3652},"kyj":{"language":3653},"kyk":{"language":3654},"kyl":{"language":3655},"kym":{"language":3656},"kyn":{"language":3657},"kyo":{"language":3658},"kyp":{"language":3659},"kyq":{"language":3660},"kyr":{"language":3661},"kys":{"language":3662},"kyt":{"language":3663},"kyu":{"language":3664},"kyv":{"language":3665},"kyw":{"language":3666},"kyx":{"language":3667},"kyy":{"language":3668},"kyz":{"language":3669},"kza":{"language":3670},"kzb":{"language":3671},"kzc":{"language":3672},"kzd":{"language":3673},"kze":{"language":3674},"kzf":{"language":3675},"kzg":{"language":3676},"kzh":{"language":3677},"kzi":{"language":3678},"kzj":{"language":3679},"kzk":{"language":3680},"kzl":{"language":3681},"kzm":{"language":3682},"kzn":{"language":3683},"kzo":{"language":3684},"kzp":{"language":3685},"kzq":{"language":3686},"kzr":{"language":3687},"kzs":{"language":3688},"kzt":{"language":3689},"kzu":{"language":3690},"kzv":{"language":3691},"kzw":{"language":3692},"kzx":{"language":3693},"kzy":{"language":3694},"kzz":{"language":3695},"laa":{"language":3696},"lab":{"language":3697},"lac":{"language":3698},"lad":{"language":3699},"lae":{"language":3700},"laf":{"language":3701},"lag":{"language":3702},"lah":{"language":3703},"lai":{"language":3704},"laj":{"language":3705},"lak":{"language":3706},"lal":{"language":3707},"lam":{"language":3708},"lan":{"language":3709},"lap":{"language":3710},"laq":{"language":3711},"lar":{"language":3712},"las":{"language":3713},"lau":{"language":3714},"law":{"language":3715},"lax":{"language":3716},"lay":{"language":3717},"laz":{"language":3718},"lba":{"language":3719},"lbb":{"language":3720},"lbc":{"language":3721},"lbe":{"language":3722},"lbf":{"language":3723},"lbg":{"language":3724},"lbi":{"language":3725},"lbj":{"language":3726},"lbk":{"language":3727},"lbl":{"language":3728},"lbm":{"language":3729},"lbn":{"language":3730},"lbo":{"language":3731},"lbq":{"language":3732},"lbr":{"language":3733},"lbs":{"language":3734,"extlang":8270},"lbt":{"language":3735},"lbu":{"language":3736},"lbv":{"language":3737},"lbw":{"language":3738},"lbx":{"language":3739},"lby":{"language":3740},"lbz":{"language":3741},"lcc":{"language":3742},"lcd":{"language":3743},"lce":{"language":3744,"extlang":8271},"lcf":{"language":3745,"extlang":8272},"lch":{"language":3746},"lcl":{"language":3747},"lcm":{"language":3748},"lcp":{"language":3749},"lcq":{"language":3750},"lcs":{"language":3751},"lda":{"language":3752},"ldb":{"language":3753},"ldd":{"language":3754},"ldg":{"language":3755},"ldh":{"language":3756},"ldi":{"language":3757},"ldj":{"language":3758},"ldk":{"language":3759},"ldl":{"language":3760},"ldm":{"language":3761},"ldn":{"language":3762},"ldo":{"language":3763},"ldp":{"language":3764},"ldq":{"language":3765},"lea":{"language":3766},"leb":{"language":3767},"lec":{"language":3768},"led":{"language":3769},"lee":{"language":3770},"lef":{"language":3771},"leg":{"language":3772},"leh":{"language":3773},"lei":{"language":3774},"lej":{"language":3775},"lek":{"language":3776},"lel":{"language":3777},"lem":{"language":3778},"len":{"language":3779},"leo":{"language":3780},"lep":{"language":3781},"leq":{"language":3782},"ler":{"language":3783},"les":{"language":3784},"let":{"language":3785},"leu":{"language":3786},"lev":{"language":3787},"lew":{"language":3788},"lex":{"language":3789},"ley":{"language":3790},"lez":{"language":3791},"lfa":{"language":3792},"lfn":{"language":3793},"lga":{"language":3794},"lgb":{"language":3795},"lgg":{"language":3796},"lgh":{"language":3797},"lgi":{"language":3798},"lgk":{"language":3799},"lgl":{"language":3800},"lgm":{"language":3801},"lgn":{"language":3802},"lgq":{"language":3803},"lgr":{"language":3804},"lgt":{"language":3805},"lgu":{"language":3806},"lgz":{"language":3807},"lha":{"language":3808},"lhh":{"language":3809},"lhi":{"language":3810},"lhl":{"language":3811},"lhm":{"language":3812},"lhn":{"language":3813},"lhp":{"language":3814},"lhs":{"language":3815},"lht":{"language":3816},"lhu":{"language":3817},"lia":{"language":3818},"lib":{"language":3819},"lic":{"language":3820},"lid":{"language":3821},"lie":{"language":3822},"lif":{"language":3823},"lig":{"language":3824},"lih":{"language":3825},"lii":{"language":3826},"lij":{"language":3827},"lik":{"language":3828},"lil":{"language":3829},"lio":{"language":3830},"lip":{"language":3831},"liq":{"language":3832},"lir":{"language":3833},"lis":{"language":3834},"liu":{"language":3835},"liv":{"language":3836},"liw":{"language":3837,"extlang":8273},"lix":{"language":3838},"liy":{"language":3839},"liz":{"language":3840},"lja":{"language":3841},"lje":{"language":3842},"lji":{"language":3843},"ljl":{"language":3844},"ljp":{"language":3845},"ljw":{"language":3846},"ljx":{"language":3847},"lka":{"language":3848},"lkb":{"language":3849},"lkc":{"language":3850},"lkd":{"language":3851},"lke":{"language":3852},"lkh":{"language":3853},"lki":{"language":3854},"lkj":{"language":3855},"lkl":{"language":3856},"lkm":{"language":3857},"lkn":{"language":3858},"lko":{"language":3859},"lkr":{"language":3860},"lks":{"language":3861},"lkt":{"language":3862},"lku":{"language":3863},"lky":{"language":3864},"lla":{"language":3865},"llb":{"language":3866},"llc":{"language":3867},"lld":{"language":3868},"lle":{"language":3869},"llf":{"language":3870},"llg":{"language":3871},"llh":{"language":3872},"lli":{"language":3873},"llj":{"language":3874},"llk":{"language":3875},"lll":{"language":3876},"llm":{"language":3877},"lln":{"language":3878},"llo":{"language":3879},"llp":{"language":3880},"llq":{"language":3881},"lls":{"language":3882,"extlang":8274},"llu":{"language":3883},"llx":{"language":3884},"lma":{"language":3885},"lmb":{"language":3886},"lmc":{"language":3887},"lmd":{"language":3888},"lme":{"language":3889},"lmf":{"language":3890},"lmg":{"language":3891},"lmh":{"language":3892},"lmi":{"language":3893},"lmj":{"language":3894},"lmk":{"language":3895},"lml":{"language":3896},"lmm":{"language":3897},"lmn":{"language":3898},"lmo":{"language":3899},"lmp":{"language":3900},"lmq":{"language":3901},"lmr":{"language":3902},"lmu":{"language":3903},"lmv":{"language":3904},"lmw":{"language":3905},"lmx":{"language":3906},"lmy":{"language":3907},"lmz":{"language":3908},"lna":{"language":3909},"lnb":{"language":3910},"lnd":{"language":3911},"lng":{"language":3912},"lnh":{"language":3913},"lni":{"language":3914},"lnj":{"language":3915},"lnl":{"language":3916},"lnm":{"language":3917},"lnn":{"language":3918},"lno":{"language":3919},"lns":{"language":3920},"lnu":{"language":3921},"lnw":{"language":3922},"lnz":{"language":3923},"loa":{"language":3924},"lob":{"language":3925},"loc":{"language":3926},"loe":{"language":3927},"lof":{"language":3928},"log":{"language":3929},"loh":{"language":3930},"loi":{"language":3931},"loj":{"language":3932},"lok":{"language":3933},"lol":{"language":3934},"lom":{"language":3935},"lon":{"language":3936},"loo":{"language":3937},"lop":{"language":3938},"loq":{"language":3939},"lor":{"language":3940},"los":{"language":3941},"lot":{"language":3942},"lou":{"language":3943},"lov":{"language":3944},"low":{"language":3945},"lox":{"language":3946},"loy":{"language":3947},"loz":{"language":3948},"lpa":{"language":3949},"lpe":{"language":3950},"lpn":{"language":3951},"lpo":{"language":3952},"lpx":{"language":3953},"lra":{"language":3954},"lrc":{"language":3955},"lre":{"language":3956},"lrg":{"language":3957},"lri":{"language":3958},"lrk":{"language":3959},"lrl":{"language":3960},"lrm":{"language":3961},"lrn":{"language":3962},"lro":{"language":3963},"lrr":{"language":3964},"lrt":{"language":3965},"lrv":{"language":3966},"lrz":{"language":3967},"lsa":{"language":3968},"lsd":{"language":3969},"lse":{"language":3970},"lsg":{"language":3971,"extlang":8275},"lsh":{"language":3972},"lsi":{"language":3973},"lsl":{"language":3974,"extlang":8276},"lsm":{"language":3975},"lsn":{"language":3976,"extlang":8277},"lso":{"language":3977,"extlang":8278},"lsp":{"language":3978,"extlang":8279},"lsr":{"language":3979},"lss":{"language":3980},"lst":{"language":3981,"extlang":8280},"lsv":{"language":3982,"extlang":8281},"lsy":{"language":3983,"extlang":8282},"ltc":{"language":3984},"ltg":{"language":3985,"extlang":8283},"lth":{"language":3986},"lti":{"language":3987},"ltn":{"language":3988},"lto":{"language":3989},"lts":{"language":3990},"ltu":{"language":3991},"lua":{"language":3992},"luc":{"language":3993},"lud":{"language":3994},"lue":{"language":3995},"luf":{"language":3996},"lui":{"language":3997},"luj":{"language":3998},"luk":{"language":3999},"lul":{"language":4000},"lum":{"language":4001},"lun":{"language":4002},"luo":{"language":4003},"lup":{"language":4004},"luq":{"language":4005},"lur":{"language":4006},"lus":{"language":4007},"lut":{"language":4008},"luu":{"language":4009},"luv":{"language":4010},"luw":{"language":4011},"luy":{"language":4012},"luz":{"language":4013},"lva":{"language":4014},"lvi":{"language":4015},"lvk":{"language":4016},"lvs":{"language":4017,"extlang":8284},"lvu":{"language":4018},"lwa":{"language":4019},"lwe":{"language":4020},"lwg":{"language":4021},"lwh":{"language":4022},"lwl":{"language":4023},"lwm":{"language":4024},"lwo":{"language":4025},"lws":{"language":4026,"extlang":8285},"lwt":{"language":4027},"lwu":{"language":4028},"lww":{"language":4029},"lya":{"language":4030},"lyg":{"language":4031},"lyn":{"language":4032},"lzh":{"language":4033,"extlang":8286},"lzl":{"language":4034},"lzn":{"language":4035},"lzz":{"language":4036},"maa":{"language":4037},"mab":{"language":4038},"mad":{"language":4039},"mae":{"language":4040},"maf":{"language":4041},"mag":{"language":4042},"mai":{"language":4043},"maj":{"language":4044},"mak":{"language":4045},"mam":{"language":4046},"man":{"language":4047},"map":{"language":4048},"maq":{"language":4049},"mas":{"language":4050},"mat":{"language":4051},"mau":{"language":4052},"mav":{"language":4053},"maw":{"language":4054},"max":{"language":4055,"extlang":8287},"maz":{"language":4056},"mba":{"language":4057},"mbb":{"language":4058},"mbc":{"language":4059},"mbd":{"language":4060},"mbe":{"language":4061},"mbf":{"language":4062},"mbh":{"language":4063},"mbi":{"language":4064},"mbj":{"language":4065},"mbk":{"language":4066},"mbl":{"language":4067},"mbm":{"language":4068},"mbn":{"language":4069},"mbo":{"language":4070},"mbp":{"language":4071},"mbq":{"language":4072},"mbr":{"language":4073},"mbs":{"language":4074},"mbt":{"language":4075},"mbu":{"language":4076},"mbv":{"language":4077},"mbw":{"language":4078},"mbx":{"language":4079},"mby":{"language":4080},"mbz":{"language":4081},"mca":{"language":4082},"mcb":{"language":4083},"mcc":{"language":4084},"mcd":{"language":4085},"mce":{"language":4086},"mcf":{"language":4087},"mcg":{"language":4088},"mch":{"language":4089},"mci":{"language":4090},"mcj":{"language":4091},"mck":{"language":4092},"mcl":{"language":4093},"mcm":{"language":4094},"mcn":{"language":4095},"mco":{"language":4096},"mcp":{"language":4097},"mcq":{"language":4098},"mcr":{"language":4099},"mcs":{"language":4100},"mct":{"language":4101},"mcu":{"language":4102},"mcv":{"language":4103},"mcw":{"language":4104},"mcx":{"language":4105},"mcy":{"language":4106},"mcz":{"language":4107},"mda":{"language":4108},"mdb":{"language":4109},"mdc":{"language":4110},"mdd":{"language":4111},"mde":{"language":4112},"mdf":{"language":4113},"mdg":{"language":4114},"mdh":{"language":4115},"mdi":{"language":4116},"mdj":{"language":4117},"mdk":{"language":4118},"mdl":{"language":4119,"extlang":8288},"mdm":{"language":4120},"mdn":{"language":4121},"mdp":{"language":4122},"mdq":{"language":4123},"mdr":{"language":4124},"mds":{"language":4125},"mdt":{"language":4126},"mdu":{"language":4127},"mdv":{"language":4128},"mdw":{"language":4129},"mdx":{"language":4130},"mdy":{"language":4131},"mdz":{"language":4132},"mea":{"language":4133},"meb":{"language":4134},"mec":{"language":4135},"med":{"language":4136},"mee":{"language":4137},"mef":{"language":4138},"meg":{"language":4139},"meh":{"language":4140},"mei":{"language":4141},"mej":{"language":4142},"mek":{"language":4143},"mel":{"language":4144},"mem":{"language":4145},"men":{"language":4146},"meo":{"language":4147,"extlang":8289},"mep":{"language":4148},"meq":{"language":4149},"mer":{"language":4150},"mes":{"language":4151},"met":{"language":4152},"meu":{"language":4153},"mev":{"language":4154},"mew":{"language":4155},"mey":{"language":4156},"mez":{"language":4157},"mfa":{"language":4158,"extlang":8290},"mfb":{"language":4159,"extlang":8291},"mfc":{"language":4160},"mfd":{"language":4161},"mfe":{"language":4162},"mff":{"language":4163},"mfg":{"language":4164},"mfh":{"language":4165},"mfi":{"language":4166},"mfj":{"language":4167},"mfk":{"language":4168},"mfl":{"language":4169},"mfm":{"language":4170},"mfn":{"language":4171},"mfo":{"language":4172},"mfp":{"language":4173},"mfq":{"language":4174},"mfr":{"language":4175},"mfs":{"language":4176,"extlang":8292},"mft":{"language":4177},"mfu":{"language":4178},"mfv":{"language":4179},"mfw":{"language":4180},"mfx":{"language":4181},"mfy":{"language":4182},"mfz":{"language":4183},"mga":{"language":4184},"mgb":{"language":4185},"mgc":{"language":4186},"mgd":{"language":4187},"mge":{"language":4188},"mgf":{"language":4189},"mgg":{"language":4190},"mgh":{"language":4191},"mgi":{"language":4192},"mgj":{"language":4193},"mgk":{"language":4194},"mgl":{"language":4195},"mgm":{"language":4196},"mgn":{"language":4197},"mgo":{"language":4198},"mgp":{"language":4199},"mgq":{"language":4200},"mgr":{"language":4201},"mgs":{"language":4202},"mgt":{"language":4203},"mgu":{"language":4204},"mgv":{"language":4205},"mgw":{"language":4206},"mgx":{"language":4207},"mgy":{"language":4208},"mgz":{"language":4209},"mha":{"language":4210},"mhb":{"language":4211},"mhc":{"language":4212},"mhd":{"language":4213},"mhe":{"language":4214},"mhf":{"language":4215},"mhg":{"language":4216},"mhh":{"language":4217},"mhi":{"language":4218},"mhj":{"language":4219},"mhk":{"language":4220},"mhl":{"language":4221},"mhm":{"language":4222},"mhn":{"language":4223},"mho":{"language":4224},"mhp":{"language":4225},"mhq":{"language":4226},"mhr":{"language":4227},"mhs":{"language":4228},"mht":{"language":4229},"mhu":{"language":4230},"mhw":{"language":4231},"mhx":{"language":4232},"mhy":{"language":4233},"mhz":{"language":4234},"mia":{"language":4235},"mib":{"language":4236},"mic":{"language":4237},"mid":{"language":4238},"mie":{"language":4239},"mif":{"language":4240},"mig":{"language":4241},"mih":{"language":4242},"mii":{"language":4243},"mij":{"language":4244},"mik":{"language":4245},"mil":{"language":4246},"mim":{"language":4247},"min":{"language":4248,"extlang":8293},"mio":{"language":4249},"mip":{"language":4250},"miq":{"language":4251},"mir":{"language":4252},"mis":{"language":4253},"mit":{"language":4254},"miu":{"language":4255},"miw":{"language":4256},"mix":{"language":4257},"miy":{"language":4258},"miz":{"language":4259},"mja":{"language":4260},"mjb":{"language":4261},"mjc":{"language":4262},"mjd":{"language":4263},"mje":{"language":4264},"mjg":{"language":4265},"mjh":{"language":4266},"mji":{"language":4267},"mjj":{"language":4268},"mjk":{"language":4269},"mjl":{"language":4270},"mjm":{"language":4271},"mjn":{"language":4272},"mjo":{"language":4273},"mjp":{"language":4274},"mjq":{"language":4275},"mjr":{"language":4276},"mjs":{"language":4277},"mjt":{"language":4278},"mju":{"language":4279},"mjv":{"language":4280},"mjw":{"language":4281},"mjx":{"language":4282},"mjy":{"language":4283},"mjz":{"language":4284},"mka":{"language":4285},"mkb":{"language":4286},"mkc":{"language":4287},"mke":{"language":4288},"mkf":{"language":4289},"mkg":{"language":4290},"mkh":{"language":4291},"mki":{"language":4292},"mkj":{"language":4293},"mkk":{"language":4294},"mkl":{"language":4295},"mkm":{"language":4296},"mkn":{"language":4297},"mko":{"language":4298},"mkp":{"language":4299},"mkq":{"language":4300},"mkr":{"language":4301},"mks":{"language":4302},"mkt":{"language":4303},"mku":{"language":4304},"mkv":{"language":4305},"mkw":{"language":4306},"mkx":{"language":4307},"mky":{"language":4308},"mkz":{"language":4309},"mla":{"language":4310},"mlb":{"language":4311},"mlc":{"language":4312},"mld":{"language":4313},"mle":{"language":4314},"mlf":{"language":4315},"mlh":{"language":4316},"mli":{"language":4317},"mlj":{"language":4318},"mlk":{"language":4319},"mll":{"language":4320},"mlm":{"language":4321},"mln":{"language":4322},"mlo":{"language":4323},"mlp":{"language":4324},"mlq":{"language":4325},"mlr":{"language":4326},"mls":{"language":4327},"mlu":{"language":4328},"mlv":{"language":4329},"mlw":{"language":4330},"mlx":{"language":4331},"mlz":{"language":4332},"mma":{"language":4333},"mmb":{"language":4334},"mmc":{"language":4335},"mmd":{"language":4336},"mme":{"language":4337},"mmf":{"language":4338},"mmg":{"language":4339},"mmh":{"language":4340},"mmi":{"language":4341},"mmj":{"language":4342},"mmk":{"language":4343},"mml":{"language":4344},"mmm":{"language":4345},"mmn":{"language":4346},"mmo":{"language":4347},"mmp":{"language":4348},"mmq":{"language":4349},"mmr":{"language":4350},"mmt":{"language":4351},"mmu":{"language":4352},"mmv":{"language":4353},"mmw":{"language":4354},"mmx":{"language":4355},"mmy":{"language":4356},"mmz":{"language":4357},"mna":{"language":4358},"mnb":{"language":4359},"mnc":{"language":4360},"mnd":{"language":4361},"mne":{"language":4362},"mnf":{"language":4363},"mng":{"language":4364},"mnh":{"language":4365},"mni":{"language":4366},"mnj":{"language":4367},"mnk":{"language":4368},"mnl":{"language":4369},"mnm":{"language":4370},"mnn":{"language":4371},"mno":{"language":4372},"mnp":{"language":4373,"extlang":8294},"mnq":{"language":4374},"mnr":{"language":4375},"mns":{"language":4376},"mnt":{"language":4377},"mnu":{"language":4378},"mnv":{"language":4379},"mnw":{"language":4380},"mnx":{"language":4381},"mny":{"language":4382},"mnz":{"language":4383},"moa":{"language":4384},"moc":{"language":4385},"mod":{"language":4386},"moe":{"language":4387},"mof":{"language":4388},"mog":{"language":4389},"moh":{"language":4390},"moi":{"language":4391},"moj":{"language":4392},"mok":{"language":4393},"mom":{"language":4394},"moo":{"language":4395},"mop":{"language":4396},"moq":{"language":4397},"mor":{"language":4398},"mos":{"language":4399},"mot":{"language":4400},"mou":{"language":4401},"mov":{"language":4402},"mow":{"language":4403},"mox":{"language":4404},"moy":{"language":4405},"moz":{"language":4406},"mpa":{"language":4407},"mpb":{"language":4408},"mpc":{"language":4409},"mpd":{"language":4410},"mpe":{"language":4411},"mpg":{"language":4412},"mph":{"language":4413},"mpi":{"language":4414},"mpj":{"language":4415},"mpk":{"language":4416},"mpl":{"language":4417},"mpm":{"language":4418},"mpn":{"language":4419},"mpo":{"language":4420},"mpp":{"language":4421},"mpq":{"language":4422},"mpr":{"language":4423},"mps":{"language":4424},"mpt":{"language":4425},"mpu":{"language":4426},"mpv":{"language":4427},"mpw":{"language":4428},"mpx":{"language":4429},"mpy":{"language":4430},"mpz":{"language":4431},"mqa":{"language":4432},"mqb":{"language":4433},"mqc":{"language":4434},"mqe":{"language":4435},"mqf":{"language":4436},"mqg":{"language":4437,"extlang":8295},"mqh":{"language":4438},"mqi":{"language":4439},"mqj":{"language":4440},"mqk":{"language":4441},"mql":{"language":4442},"mqm":{"language":4443},"mqn":{"language":4444},"mqo":{"language":4445},"mqp":{"language":4446},"mqq":{"language":4447},"mqr":{"language":4448},"mqs":{"language":4449},"mqt":{"language":4450},"mqu":{"language":4451},"mqv":{"language":4452},"mqw":{"language":4453},"mqx":{"language":4454},"mqy":{"language":4455},"mqz":{"language":4456},"mra":{"language":4457},"mrb":{"language":4458},"mrc":{"language":4459},"mrd":{"language":4460},"mre":{"language":4461,"extlang":8296},"mrf":{"language":4462},"mrg":{"language":4463},"mrh":{"language":4464},"mrj":{"language":4465},"mrk":{"language":4466},"mrl":{"language":4467},"mrm":{"language":4468},"mrn":{"language":4469},"mro":{"language":4470},"mrp":{"language":4471},"mrq":{"language":4472},"mrr":{"language":4473},"mrs":{"language":4474},"mrt":{"language":4475},"mru":{"language":4476},"mrv":{"language":4477},"mrw":{"language":4478},"mrx":{"language":4479},"mry":{"language":4480},"mrz":{"language":4481},"msb":{"language":4482},"msc":{"language":4483},"msd":{"language":4484,"extlang":8297},"mse":{"language":4485},"msf":{"language":4486},"msg":{"language":4487},"msh":{"language":4488},"msi":{"language":4489,"extlang":8298},"msj":{"language":4490},"msk":{"language":4491},"msl":{"language":4492},"msm":{"language":4493},"msn":{"language":4494},"mso":{"language":4495},"msp":{"language":4496},"msq":{"language":4497},"msr":{"language":4498,"extlang":8299},"mss":{"language":4499},"mst":{"language":4500},"msu":{"language":4501},"msv":{"language":4502},"msw":{"language":4503},"msx":{"language":4504},"msy":{"language":4505},"msz":{"language":4506},"mta":{"language":4507},"mtb":{"language":4508},"mtc":{"language":4509},"mtd":{"language":4510},"mte":{"language":4511},"mtf":{"language":4512},"mtg":{"language":4513},"mth":{"language":4514},"mti":{"language":4515},"mtj":{"language":4516},"mtk":{"language":4517},"mtl":{"language":4518},"mtm":{"language":4519},"mtn":{"language":4520},"mto":{"language":4521},"mtp":{"language":4522},"mtq":{"language":4523},"mtr":{"language":4524},"mts":{"language":4525},"mtt":{"language":4526},"mtu":{"language":4527},"mtv":{"language":4528},"mtw":{"language":4529},"mtx":{"language":4530},"mty":{"language":4531},"mua":{"language":4532},"mub":{"language":4533},"muc":{"language":4534},"mud":{"language":4535},"mue":{"language":4536},"mug":{"language":4537},"muh":{"language":4538},"mui":{"language":4539,"extlang":8300},"muj":{"language":4540},"muk":{"language":4541},"mul":{"language":4542},"mum":{"language":4543},"mun":{"language":4544},"muo":{"language":4545},"mup":{"language":4546},"muq":{"language":4547},"mur":{"language":4548},"mus":{"language":4549},"mut":{"language":4550},"muu":{"language":4551},"muv":{"language":4552},"mux":{"language":4553},"muy":{"language":4554},"muz":{"language":4555},"mva":{"language":4556},"mvb":{"language":4557},"mvd":{"language":4558},"mve":{"language":4559},"mvf":{"language":4560},"mvg":{"language":4561},"mvh":{"language":4562},"mvi":{"language":4563},"mvk":{"language":4564},"mvl":{"language":4565},"mvm":{"language":4566},"mvn":{"language":4567},"mvo":{"language":4568},"mvp":{"language":4569},"mvq":{"language":4570},"mvr":{"language":4571},"mvs":{"language":4572},"mvt":{"language":4573},"mvu":{"language":4574},"mvv":{"language":4575},"mvw":{"language":4576},"mvx":{"language":4577},"mvy":{"language":4578},"mvz":{"language":4579},"mwa":{"language":4580},"mwb":{"language":4581},"mwc":{"language":4582},"mwd":{"language":4583},"mwe":{"language":4584},"mwf":{"language":4585},"mwg":{"language":4586},"mwh":{"language":4587},"mwi":{"language":4588},"mwj":{"language":4589},"mwk":{"language":4590},"mwl":{"language":4591},"mwm":{"language":4592},"mwn":{"language":4593},"mwo":{"language":4594},"mwp":{"language":4595},"mwq":{"language":4596},"mwr":{"language":4597},"mws":{"language":4598},"mwt":{"language":4599},"mwu":{"language":4600},"mwv":{"language":4601},"mww":{"language":4602},"mwx":{"language":4603},"mwy":{"language":4604},"mwz":{"language":4605},"mxa":{"language":4606},"mxb":{"language":4607},"mxc":{"language":4608},"mxd":{"language":4609},"mxe":{"language":4610},"mxf":{"language":4611},"mxg":{"language":4612},"mxh":{"language":4613},"mxi":{"language":4614},"mxj":{"language":4615},"mxk":{"language":4616},"mxl":{"language":4617},"mxm":{"language":4618},"mxn":{"language":4619},"mxo":{"language":4620},"mxp":{"language":4621},"mxq":{"language":4622},"mxr":{"language":4623},"mxs":{"language":4624},"mxt":{"language":4625},"mxu":{"language":4626},"mxv":{"language":4627},"mxw":{"language":4628},"mxx":{"language":4629},"mxy":{"language":4630},"mxz":{"language":4631},"myb":{"language":4632},"myc":{"language":4633},"myd":{"language":4634},"mye":{"language":4635},"myf":{"language":4636},"myg":{"language":4637},"myh":{"language":4638},"myi":{"language":4639},"myj":{"language":4640},"myk":{"language":4641},"myl":{"language":4642},"mym":{"language":4643},"myn":{"language":4644},"myo":{"language":4645},"myp":{"language":4646},"myq":{"language":4647},"myr":{"language":4648},"mys":{"language":4649},"myt":{"language":4650},"myu":{"language":4651},"myv":{"language":4652},"myw":{"language":4653},"myx":{"language":4654},"myy":{"language":4655},"myz":{"language":4656},"mza":{"language":4657},"mzb":{"language":4658},"mzc":{"language":4659,"extlang":8301},"mzd":{"language":4660},"mze":{"language":4661},"mzg":{"language":4662,"extlang":8302},"mzh":{"language":4663},"mzi":{"language":4664},"mzj":{"language":4665},"mzk":{"language":4666},"mzl":{"language":4667},"mzm":{"language":4668},"mzn":{"language":4669},"mzo":{"language":4670},"mzp":{"language":4671},"mzq":{"language":4672},"mzr":{"language":4673},"mzs":{"language":4674},"mzt":{"language":4675},"mzu":{"language":4676},"mzv":{"language":4677},"mzw":{"language":4678},"mzx":{"language":4679},"mzy":{"language":4680,"extlang":8303},"mzz":{"language":4681},"naa":{"language":4682},"nab":{"language":4683},"nac":{"language":4684},"nad":{"language":4685},"nae":{"language":4686},"naf":{"language":4687},"nag":{"language":4688},"nah":{"language":4689},"nai":{"language":4690},"naj":{"language":4691},"nak":{"language":4692},"nal":{"language":4693},"nam":{"language":4694},"nan":{"language":4695,"extlang":8304},"nao":{"language":4696},"nap":{"language":4697},"naq":{"language":4698},"nar":{"language":4699},"nas":{"language":4700},"nat":{"language":4701},"naw":{"language":4702},"nax":{"language":4703},"nay":{"language":4704},"naz":{"language":4705},"nba":{"language":4706},"nbb":{"language":4707},"nbc":{"language":4708},"nbd":{"language":4709},"nbe":{"language":4710},"nbf":{"language":4711},"nbg":{"language":4712},"nbh":{"language":4713},"nbi":{"language":4714},"nbj":{"language":4715},"nbk":{"language":4716},"nbm":{"language":4717},"nbn":{"language":4718},"nbo":{"language":4719},"nbp":{"language":4720},"nbq":{"language":4721},"nbr":{"language":4722},"nbs":{"language":4723,"extlang":8305},"nbt":{"language":4724},"nbu":{"language":4725},"nbv":{"language":4726},"nbw":{"language":4727},"nbx":{"language":4728},"nby":{"language":4729},"nca":{"language":4730},"ncb":{"language":4731},"ncc":{"language":4732},"ncd":{"language":4733},"nce":{"language":4734},"ncf":{"language":4735},"ncg":{"language":4736},"nch":{"language":4737},"nci":{"language":4738},"ncj":{"language":4739},"nck":{"language":4740},"ncl":{"language":4741},"ncm":{"language":4742},"ncn":{"language":4743},"nco":{"language":4744},"ncp":{"language":4745},"ncq":{"language":4746},"ncr":{"language":4747},"ncs":{"language":4748,"extlang":8306},"nct":{"language":4749},"ncu":{"language":4750},"ncx":{"language":4751},"ncz":{"language":4752},"nda":{"language":4753},"ndb":{"language":4754},"ndc":{"language":4755},"ndd":{"language":4756},"ndf":{"language":4757},"ndg":{"language":4758},"ndh":{"language":4759},"ndi":{"language":4760},"ndj":{"language":4761},"ndk":{"language":4762},"ndl":{"language":4763},"ndm":{"language":4764},"ndn":{"language":4765},"ndp":{"language":4766},"ndq":{"language":4767},"ndr":{"language":4768},"nds":{"language":4769},"ndt":{"language":4770},"ndu":{"language":4771},"ndv":{"language":4772},"ndw":{"language":4773},"ndx":{"language":4774},"ndy":{"language":4775},"ndz":{"language":4776},"nea":{"language":4777},"neb":{"language":4778},"nec":{"language":4779},"ned":{"language":4780},"nee":{"language":4781},"nef":{"language":4782},"neg":{"language":4783},"neh":{"language":4784},"nei":{"language":4785},"nej":{"language":4786},"nek":{"language":4787},"nem":{"language":4788},"nen":{"language":4789},"neo":{"language":4790},"neq":{"language":4791},"ner":{"language":4792},"nes":{"language":4793},"net":{"language":4794},"neu":{"language":4795},"nev":{"language":4796},"new":{"language":4797},"nex":{"language":4798},"ney":{"language":4799},"nez":{"language":4800},"nfa":{"language":4801},"nfd":{"language":4802},"nfl":{"language":4803},"nfr":{"language":4804},"nfu":{"language":4805},"nga":{"language":4806},"ngb":{"language":4807},"ngc":{"language":4808},"ngd":{"language":4809},"nge":{"language":4810},"ngf":{"language":4811},"ngg":{"language":4812},"ngh":{"language":4813},"ngi":{"language":4814},"ngj":{"language":4815},"ngk":{"language":4816},"ngl":{"language":4817},"ngm":{"language":4818},"ngn":{"language":4819},"ngo":{"language":4820},"ngp":{"language":4821},"ngq":{"language":4822},"ngr":{"language":4823},"ngs":{"language":4824},"ngt":{"language":4825},"ngu":{"language":4826},"ngv":{"language":4827},"ngw":{"language":4828},"ngx":{"language":4829},"ngy":{"language":4830},"ngz":{"language":4831},"nha":{"language":4832},"nhb":{"language":4833},"nhc":{"language":4834},"nhd":{"language":4835},"nhe":{"language":4836},"nhf":{"language":4837},"nhg":{"language":4838},"nhh":{"language":4839},"nhi":{"language":4840},"nhk":{"language":4841},"nhm":{"language":4842},"nhn":{"language":4843},"nho":{"language":4844},"nhp":{"language":4845},"nhq":{"language":4846},"nhr":{"language":4847},"nht":{"language":4848},"nhu":{"language":4849},"nhv":{"language":4850},"nhw":{"language":4851},"nhx":{"language":4852},"nhy":{"language":4853},"nhz":{"language":4854},"nia":{"language":4855},"nib":{"language":4856},"nic":{"language":4857},"nid":{"language":4858},"nie":{"language":4859},"nif":{"language":4860},"nig":{"language":4861},"nih":{"language":4862},"nii":{"language":4863},"nij":{"language":4864},"nik":{"language":4865},"nil":{"language":4866},"nim":{"language":4867},"nin":{"language":4868},"nio":{"language":4869},"niq":{"language":4870},"nir":{"language":4871},"nis":{"language":4872},"nit":{"language":4873},"niu":{"language":4874},"niv":{"language":4875},"niw":{"language":4876},"nix":{"language":4877},"niy":{"language":4878},"niz":{"language":4879},"nja":{"language":4880},"njb":{"language":4881},"njd":{"language":4882},"njh":{"language":4883},"nji":{"language":4884},"njj":{"language":4885},"njl":{"language":4886},"njm":{"language":4887},"njn":{"language":4888},"njo":{"language":4889},"njr":{"language":4890},"njs":{"language":4891},"njt":{"language":4892},"nju":{"language":4893},"njx":{"language":4894},"njy":{"language":4895},"njz":{"language":4896},"nka":{"language":4897},"nkb":{"language":4898},"nkc":{"language":4899},"nkd":{"language":4900},"nke":{"language":4901},"nkf":{"language":4902},"nkg":{"language":4903},"nkh":{"language":4904},"nki":{"language":4905},"nkj":{"language":4906},"nkk":{"language":4907},"nkm":{"language":4908},"nkn":{"language":4909},"nko":{"language":4910},"nkp":{"language":4911},"nkq":{"language":4912},"nkr":{"language":4913},"nks":{"language":4914},"nkt":{"language":4915},"nku":{"language":4916},"nkv":{"language":4917},"nkw":{"language":4918},"nkx":{"language":4919},"nkz":{"language":4920},"nla":{"language":4921},"nlc":{"language":4922},"nle":{"language":4923},"nlg":{"language":4924},"nli":{"language":4925},"nlj":{"language":4926},"nlk":{"language":4927},"nll":{"language":4928},"nlm":{"language":4929},"nln":{"language":4930},"nlo":{"language":4931},"nlq":{"language":4932},"nlr":{"language":4933},"nlu":{"language":4934},"nlv":{"language":4935},"nlw":{"language":4936},"nlx":{"language":4937},"nly":{"language":4938},"nlz":{"language":4939},"nma":{"language":4940},"nmb":{"language":4941},"nmc":{"language":4942},"nmd":{"language":4943},"nme":{"language":4944},"nmf":{"language":4945},"nmg":{"language":4946},"nmh":{"language":4947},"nmi":{"language":4948},"nmj":{"language":4949},"nmk":{"language":4950},"nml":{"language":4951},"nmm":{"language":4952},"nmn":{"language":4953},"nmo":{"language":4954},"nmp":{"language":4955},"nmq":{"language":4956},"nmr":{"language":4957},"nms":{"language":4958},"nmt":{"language":4959},"nmu":{"language":4960},"nmv":{"language":4961},"nmw":{"language":4962},"nmx":{"language":4963},"nmy":{"language":4964},"nmz":{"language":4965},"nna":{"language":4966},"nnb":{"language":4967},"nnc":{"language":4968},"nnd":{"language":4969},"nne":{"language":4970},"nnf":{"language":4971},"nng":{"language":4972},"nnh":{"language":4973},"nni":{"language":4974},"nnj":{"language":4975},"nnk":{"language":4976},"nnl":{"language":4977},"nnm":{"language":4978},"nnn":{"language":4979},"nnp":{"language":4980},"nnq":{"language":4981},"nnr":{"language":4982},"nns":{"language":4983},"nnt":{"language":4984},"nnu":{"language":4985},"nnv":{"language":4986},"nnw":{"language":4987},"nnx":{"language":4988},"nny":{"language":4989},"nnz":{"language":4990},"noa":{"language":4991},"noc":{"language":4992},"nod":{"language":4993},"noe":{"language":4994},"nof":{"language":4995},"nog":{"language":4996},"noh":{"language":4997},"noi":{"language":4998},"noj":{"language":4999},"nok":{"language":5000},"nol":{"language":5001},"nom":{"language":5002},"non":{"language":5003},"noo":{"language":5004},"nop":{"language":5005},"noq":{"language":5006},"nos":{"language":5007},"not":{"language":5008},"nou":{"language":5009},"nov":{"language":5010},"now":{"language":5011},"noy":{"language":5012},"noz":{"language":5013},"npa":{"language":5014},"npb":{"language":5015},"npg":{"language":5016},"nph":{"language":5017},"npi":{"language":5018},"npl":{"language":5019},"npn":{"language":5020},"npo":{"language":5021},"nps":{"language":5022},"npu":{"language":5023},"npx":{"language":5024},"npy":{"language":5025},"nqg":{"language":5026},"nqk":{"language":5027},"nql":{"language":5028},"nqm":{"language":5029},"nqn":{"language":5030},"nqo":{"language":5031},"nqq":{"language":5032},"nqy":{"language":5033},"nra":{"language":5034},"nrb":{"language":5035},"nrc":{"language":5036},"nre":{"language":5037},"nrf":{"language":5038},"nrg":{"language":5039},"nri":{"language":5040},"nrk":{"language":5041},"nrl":{"language":5042},"nrm":{"language":5043},"nrn":{"language":5044},"nrp":{"language":5045},"nrr":{"language":5046},"nrt":{"language":5047},"nru":{"language":5048},"nrx":{"language":5049},"nrz":{"language":5050},"nsa":{"language":5051},"nsc":{"language":5052},"nsd":{"language":5053},"nse":{"language":5054},"nsf":{"language":5055},"nsg":{"language":5056},"nsh":{"language":5057},"nsi":{"language":5058,"extlang":8307},"nsk":{"language":5059},"nsl":{"language":5060,"extlang":8308},"nsm":{"language":5061},"nsn":{"language":5062},"nso":{"language":5063},"nsp":{"language":5064,"extlang":8309},"nsq":{"language":5065},"nsr":{"language":5066,"extlang":8310},"nss":{"language":5067},"nst":{"language":5068},"nsu":{"language":5069},"nsv":{"language":5070},"nsw":{"language":5071},"nsx":{"language":5072},"nsy":{"language":5073},"nsz":{"language":5074},"ntd":{"language":5075},"nte":{"language":5076},"ntg":{"language":5077},"nti":{"language":5078},"ntj":{"language":5079},"ntk":{"language":5080},"ntm":{"language":5081},"nto":{"language":5082},"ntp":{"language":5083},"ntr":{"language":5084},"nts":{"language":5085},"ntu":{"language":5086},"ntw":{"language":5087},"ntx":{"language":5088},"nty":{"language":5089},"ntz":{"language":5090},"nua":{"language":5091},"nub":{"language":5092},"nuc":{"language":5093},"nud":{"language":5094},"nue":{"language":5095},"nuf":{"language":5096},"nug":{"language":5097},"nuh":{"language":5098},"nui":{"language":5099},"nuj":{"language":5100},"nuk":{"language":5101},"nul":{"language":5102},"num":{"language":5103},"nun":{"language":5104},"nuo":{"language":5105},"nup":{"language":5106},"nuq":{"language":5107},"nur":{"language":5108},"nus":{"language":5109},"nut":{"language":5110},"nuu":{"language":5111},"nuv":{"language":5112},"nuw":{"language":5113},"nux":{"language":5114},"nuy":{"language":5115},"nuz":{"language":5116},"nvh":{"language":5117},"nvm":{"language":5118},"nvo":{"language":5119},"nwa":{"language":5120},"nwb":{"language":5121},"nwc":{"language":5122},"nwe":{"language":5123},"nwg":{"language":5124},"nwi":{"language":5125},"nwm":{"language":5126},"nwo":{"language":5127},"nwr":{"language":5128},"nwx":{"language":5129},"nwy":{"language":5130},"nxa":{"language":5131},"nxd":{"language":5132},"nxe":{"language":5133},"nxg":{"language":5134},"nxi":{"language":5135},"nxk":{"language":5136},"nxl":{"language":5137},"nxm":{"language":5138},"nxn":{"language":5139},"nxo":{"language":5140},"nxq":{"language":5141},"nxr":{"language":5142},"nxu":{"language":5143},"nxx":{"language":5144},"nyb":{"language":5145},"nyc":{"language":5146},"nyd":{"language":5147},"nye":{"language":5148},"nyf":{"language":5149},"nyg":{"language":5150},"nyh":{"language":5151},"nyi":{"language":5152},"nyj":{"language":5153},"nyk":{"language":5154},"nyl":{"language":5155},"nym":{"language":5156},"nyn":{"language":5157},"nyo":{"language":5158},"nyp":{"language":5159},"nyq":{"language":5160},"nyr":{"language":5161},"nys":{"language":5162},"nyt":{"language":5163},"nyu":{"language":5164},"nyv":{"language":5165},"nyw":{"language":5166},"nyx":{"language":5167},"nyy":{"language":5168},"nza":{"language":5169},"nzb":{"language":5170},"nzd":{"language":5171},"nzi":{"language":5172},"nzk":{"language":5173},"nzm":{"language":5174},"nzs":{"language":5175,"extlang":8311},"nzu":{"language":5176},"nzy":{"language":5177},"nzz":{"language":5178},"oaa":{"language":5179},"oac":{"language":5180},"oar":{"language":5181},"oav":{"language":5182},"obi":{"language":5183},"obk":{"language":5184},"obl":{"language":5185},"obm":{"language":5186},"obo":{"language":5187},"obr":{"language":5188},"obt":{"language":5189},"obu":{"language":5190},"oca":{"language":5191},"och":{"language":5192},"oco":{"language":5193},"ocu":{"language":5194},"oda":{"language":5195},"odk":{"language":5196},"odt":{"language":5197},"odu":{"language":5198},"ofo":{"language":5199},"ofs":{"language":5200},"ofu":{"language":5201},"ogb":{"language":5202},"ogc":{"language":5203},"oge":{"language":5204},"ogg":{"language":5205},"ogo":{"language":5206},"ogu":{"language":5207},"oht":{"language":5208},"ohu":{"language":5209},"oia":{"language":5210},"oin":{"language":5211},"ojb":{"language":5212},"ojc":{"language":5213},"ojg":{"language":5214},"ojp":{"language":5215},"ojs":{"language":5216},"ojv":{"language":5217},"ojw":{"language":5218},"oka":{"language":5219},"okb":{"language":5220},"okd":{"language":5221},"oke":{"language":5222},"okg":{"language":5223},"okh":{"language":5224},"oki":{"language":5225},"okj":{"language":5226},"okk":{"language":5227},"okl":{"language":5228,"extlang":8312},"okm":{"language":5229},"okn":{"language":5230},"oko":{"language":5231},"okr":{"language":5232},"oks":{"language":5233},"oku":{"language":5234},"okv":{"language":5235},"okx":{"language":5236},"ola":{"language":5237},"old":{"language":5238},"ole":{"language":5239},"olk":{"language":5240},"olm":{"language":5241},"olo":{"language":5242},"olr":{"language":5243},"olt":{"language":5244},"olu":{"language":5245},"oma":{"language":5246},"omb":{"language":5247},"omc":{"language":5248},"ome":{"language":5249},"omg":{"language":5250},"omi":{"language":5251},"omk":{"language":5252},"oml":{"language":5253},"omn":{"language":5254},"omo":{"language":5255},"omp":{"language":5256},"omq":{"language":5257},"omr":{"language":5258},"omt":{"language":5259},"omu":{"language":5260},"omv":{"language":5261},"omw":{"language":5262},"omx":{"language":5263},"ona":{"language":5264},"onb":{"language":5265},"one":{"language":5266},"ong":{"language":5267},"oni":{"language":5268},"onj":{"language":5269},"onk":{"language":5270},"onn":{"language":5271},"ono":{"language":5272},"onp":{"language":5273},"onr":{"language":5274},"ons":{"language":5275},"ont":{"language":5276},"onu":{"language":5277},"onw":{"language":5278},"onx":{"language":5279},"ood":{"language":5280},"oog":{"language":5281},"oon":{"language":5282},"oor":{"language":5283},"oos":{"language":5284},"opa":{"language":5285},"opk":{"language":5286},"opm":{"language":5287},"opo":{"language":5288},"opt":{"language":5289},"opy":{"language":5290},"ora":{"language":5291},"orc":{"language":5292},"ore":{"language":5293},"org":{"language":5294},"orh":{"language":5295},"orn":{"language":5296,"extlang":8313},"oro":{"language":5297},"orr":{"language":5298},"ors":{"language":5299,"extlang":8314},"ort":{"language":5300},"oru":{"language":5301},"orv":{"language":5302},"orw":{"language":5303},"orx":{"language":5304},"ory":{"language":5305},"orz":{"language":5306},"osa":{"language":5307},"osc":{"language":5308},"osi":{"language":5309},"oso":{"language":5310},"osp":{"language":5311},"ost":{"language":5312},"osu":{"language":5313},"osx":{"language":5314},"ota":{"language":5315},"otb":{"language":5316},"otd":{"language":5317},"ote":{"language":5318},"oti":{"language":5319},"otk":{"language":5320},"otl":{"language":5321},"otm":{"language":5322},"otn":{"language":5323},"oto":{"language":5324},"otq":{"language":5325},"otr":{"language":5326},"ots":{"language":5327},"ott":{"language":5328},"otu":{"language":5329},"otw":{"language":5330},"otx":{"language":5331},"oty":{"language":5332},"otz":{"language":5333},"oua":{"language":5334},"oub":{"language":5335},"oue":{"language":5336},"oui":{"language":5337},"oum":{"language":5338},"oun":{"language":5339},"ovd":{"language":5340},"owi":{"language":5341},"owl":{"language":5342},"oyb":{"language":5343},"oyd":{"language":5344},"oym":{"language":5345},"oyy":{"language":5346},"ozm":{"language":5347},"paa":{"language":5348},"pab":{"language":5349},"pac":{"language":5350},"pad":{"language":5351},"pae":{"language":5352},"paf":{"language":5353},"pag":{"language":5354},"pah":{"language":5355},"pai":{"language":5356},"pak":{"language":5357},"pal":{"language":5358},"pam":{"language":5359},"pao":{"language":5360},"pap":{"language":5361},"paq":{"language":5362},"par":{"language":5363},"pas":{"language":5364},"pat":{"language":5365},"pau":{"language":5366},"pav":{"language":5367},"paw":{"language":5368},"pax":{"language":5369},"pay":{"language":5370},"paz":{"language":5371},"pbb":{"language":5372},"pbc":{"language":5373},"pbe":{"language":5374},"pbf":{"language":5375},"pbg":{"language":5376},"pbh":{"language":5377},"pbi":{"language":5378},"pbl":{"language":5379},"pbm":{"language":5380},"pbn":{"language":5381},"pbo":{"language":5382},"pbp":{"language":5383},"pbr":{"language":5384},"pbs":{"language":5385},"pbt":{"language":5386},"pbu":{"language":5387},"pbv":{"language":5388},"pby":{"language":5389},"pbz":{"language":5390},"pca":{"language":5391},"pcb":{"language":5392},"pcc":{"language":5393},"pcd":{"language":5394},"pce":{"language":5395},"pcf":{"language":5396},"pcg":{"language":5397},"pch":{"language":5398},"pci":{"language":5399},"pcj":{"language":5400},"pck":{"language":5401},"pcl":{"language":5402},"pcm":{"language":5403},"pcn":{"language":5404},"pcp":{"language":5405},"pcr":{"language":5406},"pcw":{"language":5407},"pda":{"language":5408},"pdc":{"language":5409},"pdi":{"language":5410},"pdn":{"language":5411},"pdo":{"language":5412},"pdt":{"language":5413},"pdu":{"language":5414},"pea":{"language":5415},"peb":{"language":5416},"ped":{"language":5417},"pee":{"language":5418},"pef":{"language":5419},"peg":{"language":5420},"peh":{"language":5421},"pei":{"language":5422},"pej":{"language":5423},"pek":{"language":5424},"pel":{"language":5425,"extlang":8315},"pem":{"language":5426},"peo":{"language":5427},"pep":{"language":5428},"peq":{"language":5429},"pes":{"language":5430},"pev":{"language":5431},"pex":{"language":5432},"pey":{"language":5433},"pez":{"language":5434},"pfa":{"language":5435},"pfe":{"language":5436},"pfl":{"language":5437},"pga":{"language":5438,"extlang":8316},"pgd":{"language":5439},"pgg":{"language":5440},"pgi":{"language":5441},"pgk":{"language":5442},"pgl":{"language":5443},"pgn":{"language":5444},"pgs":{"language":5445},"pgu":{"language":5446},"pgy":{"language":5447},"pgz":{"language":5448,"extlang":8317},"pha":{"language":5449},"phd":{"language":5450},"phg":{"language":5451},"phh":{"language":5452},"phi":{"language":5453},"phk":{"language":5454},"phl":{"language":5455},"phm":{"language":5456},"phn":{"language":5457},"pho":{"language":5458},"phq":{"language":5459},"phr":{"language":5460},"pht":{"language":5461},"phu":{"language":5462},"phv":{"language":5463},"phw":{"language":5464},"pia":{"language":5465},"pib":{"language":5466},"pic":{"language":5467},"pid":{"language":5468},"pie":{"language":5469},"pif":{"language":5470},"pig":{"language":5471},"pih":{"language":5472},"pii":{"language":5473},"pij":{"language":5474},"pil":{"language":5475},"pim":{"language":5476},"pin":{"language":5477},"pio":{"language":5478},"pip":{"language":5479},"pir":{"language":5480},"pis":{"language":5481},"pit":{"language":5482},"piu":{"language":5483},"piv":{"language":5484},"piw":{"language":5485},"pix":{"language":5486},"piy":{"language":5487},"piz":{"language":5488},"pjt":{"language":5489},"pka":{"language":5490},"pkb":{"language":5491},"pkc":{"language":5492},"pkg":{"language":5493},"pkh":{"language":5494},"pkn":{"language":5495},"pko":{"language":5496},"pkp":{"language":5497},"pkr":{"language":5498},"pks":{"language":5499,"extlang":8318},"pkt":{"language":5500},"pku":{"language":5501},"pla":{"language":5502},"plb":{"language":5503},"plc":{"language":5504},"pld":{"language":5505},"ple":{"language":5506},"plf":{"language":5507},"plg":{"language":5508},"plh":{"language":5509},"plj":{"language":5510},"plk":{"language":5511},"pll":{"language":5512},"pln":{"language":5513},"plo":{"language":5514},"plp":{"language":5515},"plq":{"language":5516},"plr":{"language":5517},"pls":{"language":5518},"plt":{"language":5519},"plu":{"language":5520},"plv":{"language":5521},"plw":{"language":5522},"ply":{"language":5523},"plz":{"language":5524},"pma":{"language":5525},"pmb":{"language":5526},"pmc":{"language":5527},"pmd":{"language":5528},"pme":{"language":5529},"pmf":{"language":5530},"pmh":{"language":5531},"pmi":{"language":5532},"pmj":{"language":5533},"pmk":{"language":5534},"pml":{"language":5535},"pmm":{"language":5536},"pmn":{"language":5537},"pmo":{"language":5538},"pmq":{"language":5539},"pmr":{"language":5540},"pms":{"language":5541},"pmt":{"language":5542},"pmu":{"language":5543},"pmw":{"language":5544},"pmx":{"language":5545},"pmy":{"language":5546},"pmz":{"language":5547},"pna":{"language":5548},"pnb":{"language":5549},"pnc":{"language":5550},"pnd":{"language":5551},"pne":{"language":5552},"png":{"language":5553},"pnh":{"language":5554},"pni":{"language":5555},"pnj":{"language":5556},"pnk":{"language":5557},"pnl":{"language":5558},"pnm":{"language":5559},"pnn":{"language":5560},"pno":{"language":5561},"pnp":{"language":5562},"pnq":{"language":5563},"pnr":{"language":5564},"pns":{"language":5565},"pnt":{"language":5566},"pnu":{"language":5567},"pnv":{"language":5568},"pnw":{"language":5569},"pnx":{"language":5570},"pny":{"language":5571},"pnz":{"language":5572},"poc":{"language":5573},"pod":{"language":5574},"poe":{"language":5575},"pof":{"language":5576},"pog":{"language":5577},"poh":{"language":5578},"poi":{"language":5579},"pok":{"language":5580},"pom":{"language":5581},"pon":{"language":5582},"poo":{"language":5583},"pop":{"language":5584},"poq":{"language":5585},"pos":{"language":5586},"pot":{"language":5587},"pov":{"language":5588},"pow":{"language":5589},"pox":{"language":5590},"poy":{"language":5591},"poz":{"language":5592},"ppa":{"language":5593},"ppe":{"language":5594},"ppi":{"language":5595},"ppk":{"language":5596},"ppl":{"language":5597},"ppm":{"language":5598},"ppn":{"language":5599},"ppo":{"language":5600},"ppp":{"language":5601},"ppq":{"language":5602},"ppr":{"language":5603},"pps":{"language":5604},"ppt":{"language":5605},"ppu":{"language":5606},"pqa":{"language":5607},"pqe":{"language":5608},"pqm":{"language":5609},"pqw":{"language":5610},"pra":{"language":5611},"prb":{"language":5612},"prc":{"language":5613},"prd":{"language":5614},"pre":{"language":5615},"prf":{"language":5616},"prg":{"language":5617},"prh":{"language":5618},"pri":{"language":5619},"prk":{"language":5620},"prl":{"language":5621,"extlang":8319},"prm":{"language":5622},"prn":{"language":5623},"pro":{"language":5624},"prp":{"language":5625},"prq":{"language":5626},"prr":{"language":5627},"prs":{"language":5628},"prt":{"language":5629},"pru":{"language":5630},"prw":{"language":5631},"prx":{"language":5632},"pry":{"language":5633},"prz":{"language":5634,"extlang":8320},"psa":{"language":5635},"psc":{"language":5636,"extlang":8321},"psd":{"language":5637,"extlang":8322},"pse":{"language":5638,"extlang":8323},"psg":{"language":5639,"extlang":8324},"psh":{"language":5640},"psi":{"language":5641},"psl":{"language":5642,"extlang":8325},"psm":{"language":5643},"psn":{"language":5644},"pso":{"language":5645,"extlang":8326},"psp":{"language":5646,"extlang":8327},"psq":{"language":5647},"psr":{"language":5648,"extlang":8328},"pss":{"language":5649},"pst":{"language":5650},"psu":{"language":5651},"psw":{"language":5652},"psy":{"language":5653},"pta":{"language":5654},"pth":{"language":5655},"pti":{"language":5656},"ptn":{"language":5657},"pto":{"language":5658},"ptp":{"language":5659},"ptq":{"language":5660},"ptr":{"language":5661},"ptt":{"language":5662},"ptu":{"language":5663},"ptv":{"language":5664},"ptw":{"language":5665},"pty":{"language":5666},"pua":{"language":5667},"pub":{"language":5668},"puc":{"language":5669},"pud":{"language":5670},"pue":{"language":5671},"puf":{"language":5672},"pug":{"language":5673},"pui":{"language":5674},"puj":{"language":5675},"puk":{"language":5676},"pum":{"language":5677},"puo":{"language":5678},"pup":{"language":5679},"puq":{"language":5680},"pur":{"language":5681},"put":{"language":5682},"puu":{"language":5683},"puw":{"language":5684},"pux":{"language":5685},"puy":{"language":5686},"puz":{"language":5687},"pwa":{"language":5688},"pwb":{"language":5689},"pwg":{"language":5690},"pwi":{"language":5691},"pwm":{"language":5692},"pwn":{"language":5693},"pwo":{"language":5694},"pwr":{"language":5695},"pww":{"language":5696},"pxm":{"language":5697},"pye":{"language":5698},"pym":{"language":5699},"pyn":{"language":5700},"pys":{"language":5701,"extlang":8329},"pyu":{"language":5702},"pyx":{"language":5703},"pyy":{"language":5704},"pzn":{"language":5705},"qaa..qtz":{"language":5706},"qua":{"language":5707},"qub":{"language":5708},"quc":{"language":5709},"qud":{"language":5710},"quf":{"language":5711},"qug":{"language":5712},"quh":{"language":5713},"qui":{"language":5714},"quk":{"language":5715},"qul":{"language":5716},"qum":{"language":5717},"qun":{"language":5718},"qup":{"language":5719},"quq":{"language":5720},"qur":{"language":5721},"qus":{"language":5722},"quv":{"language":5723},"quw":{"language":5724},"qux":{"language":5725},"quy":{"language":5726},"quz":{"language":5727},"qva":{"language":5728},"qvc":{"language":5729},"qve":{"language":5730},"qvh":{"language":5731},"qvi":{"language":5732},"qvj":{"language":5733},"qvl":{"language":5734},"qvm":{"language":5735},"qvn":{"language":5736},"qvo":{"language":5737},"qvp":{"language":5738},"qvs":{"language":5739},"qvw":{"language":5740},"qvy":{"language":5741},"qvz":{"language":5742},"qwa":{"language":5743},"qwc":{"language":5744},"qwe":{"language":5745},"qwh":{"language":5746},"qwm":{"language":5747},"qws":{"language":5748},"qwt":{"language":5749},"qxa":{"language":5750},"qxc":{"language":5751},"qxh":{"language":5752},"qxl":{"language":5753},"qxn":{"language":5754},"qxo":{"language":5755},"qxp":{"language":5756},"qxq":{"language":5757},"qxr":{"language":5758},"qxs":{"language":5759},"qxt":{"language":5760},"qxu":{"language":5761},"qxw":{"language":5762},"qya":{"language":5763},"qyp":{"language":5764},"raa":{"language":5765},"rab":{"language":5766},"rac":{"language":5767},"rad":{"language":5768},"raf":{"language":5769},"rag":{"language":5770},"rah":{"language":5771},"rai":{"language":5772},"raj":{"language":5773},"rak":{"language":5774},"ral":{"language":5775},"ram":{"language":5776},"ran":{"language":5777},"rao":{"language":5778},"rap":{"language":5779},"raq":{"language":5780},"rar":{"language":5781},"ras":{"language":5782},"rat":{"language":5783},"rau":{"language":5784},"rav":{"language":5785},"raw":{"language":5786},"rax":{"language":5787},"ray":{"language":5788},"raz":{"language":5789},"rbb":{"language":5790},"rbk":{"language":5791},"rbl":{"language":5792},"rbp":{"language":5793},"rcf":{"language":5794},"rdb":{"language":5795},"rea":{"language":5796},"reb":{"language":5797},"ree":{"language":5798},"reg":{"language":5799},"rei":{"language":5800},"rej":{"language":5801},"rel":{"language":5802},"rem":{"language":5803},"ren":{"language":5804},"rer":{"language":5805},"res":{"language":5806},"ret":{"language":5807},"rey":{"language":5808},"rga":{"language":5809},"rge":{"language":5810},"rgk":{"language":5811},"rgn":{"language":5812},"rgr":{"language":5813},"rgs":{"language":5814},"rgu":{"language":5815},"rhg":{"language":5816},"rhp":{"language":5817},"ria":{"language":5818},"rie":{"language":5819},"rif":{"language":5820},"ril":{"language":5821},"rim":{"language":5822},"rin":{"language":5823},"rir":{"language":5824},"rit":{"language":5825},"riu":{"language":5826},"rjg":{"language":5827},"rji":{"language":5828},"rjs":{"language":5829},"rka":{"language":5830},"rkb":{"language":5831},"rkh":{"language":5832},"rki":{"language":5833},"rkm":{"language":5834},"rkt":{"language":5835},"rkw":{"language":5836},"rma":{"language":5837},"rmb":{"language":5838},"rmc":{"language":5839},"rmd":{"language":5840},"rme":{"language":5841},"rmf":{"language":5842},"rmg":{"language":5843},"rmh":{"language":5844},"rmi":{"language":5845},"rmk":{"language":5846},"rml":{"language":5847},"rmm":{"language":5848},"rmn":{"language":5849},"rmo":{"language":5850},"rmp":{"language":5851},"rmq":{"language":5852},"rmr":{"language":5853},"rms":{"language":5854,"extlang":8330},"rmt":{"language":5855},"rmu":{"language":5856},"rmv":{"language":5857},"rmw":{"language":5858},"rmx":{"language":5859},"rmy":{"language":5860},"rmz":{"language":5861},"rna":{"language":5862},"rnd":{"language":5863},"rng":{"language":5864},"rnl":{"language":5865},"rnn":{"language":5866},"rnp":{"language":5867},"rnr":{"language":5868},"rnw":{"language":5869},"roa":{"language":5870},"rob":{"language":5871},"roc":{"language":5872},"rod":{"language":5873},"roe":{"language":5874},"rof":{"language":5875},"rog":{"language":5876},"rol":{"language":5877},"rom":{"language":5878},"roo":{"language":5879},"rop":{"language":5880},"ror":{"language":5881},"rou":{"language":5882},"row":{"language":5883},"rpn":{"language":5884},"rpt":{"language":5885},"rri":{"language":5886},"rro":{"language":5887},"rrt":{"language":5888},"rsb":{"language":5889},"rsi":{"language":5890,"extlang":8331},"rsl":{"language":5891,"extlang":8332},"rsm":{"language":5892,"extlang":8333},"rtc":{"language":5893},"rth":{"language":5894},"rtm":{"language":5895},"rts":{"language":5896},"rtw":{"language":5897},"rub":{"language":5898},"ruc":{"language":5899},"rue":{"language":5900},"ruf":{"language":5901},"rug":{"language":5902},"ruh":{"language":5903},"rui":{"language":5904},"ruk":{"language":5905},"ruo":{"language":5906},"rup":{"language":5907},"ruq":{"language":5908},"rut":{"language":5909},"ruu":{"language":5910},"ruy":{"language":5911},"ruz":{"language":5912},"rwa":{"language":5913},"rwk":{"language":5914},"rwm":{"language":5915},"rwo":{"language":5916},"rwr":{"language":5917},"rxd":{"language":5918},"rxw":{"language":5919},"ryn":{"language":5920},"rys":{"language":5921},"ryu":{"language":5922},"rzh":{"language":5923},"saa":{"language":5924},"sab":{"language":5925},"sac":{"language":5926},"sad":{"language":5927},"sae":{"language":5928},"saf":{"language":5929},"sah":{"language":5930},"sai":{"language":5931},"saj":{"language":5932},"sak":{"language":5933},"sal":{"language":5934},"sam":{"language":5935},"sao":{"language":5936},"sap":{"language":5937},"saq":{"language":5938},"sar":{"language":5939},"sas":{"language":5940},"sat":{"language":5941},"sau":{"language":5942},"sav":{"language":5943},"saw":{"language":5944},"sax":{"language":5945},"say":{"language":5946},"saz":{"language":5947},"sba":{"language":5948},"sbb":{"language":5949},"sbc":{"language":5950},"sbd":{"language":5951},"sbe":{"language":5952},"sbf":{"language":5953},"sbg":{"language":5954},"sbh":{"language":5955},"sbi":{"language":5956},"sbj":{"language":5957},"sbk":{"language":5958},"sbl":{"language":5959},"sbm":{"language":5960},"sbn":{"language":5961},"sbo":{"language":5962},"sbp":{"language":5963},"sbq":{"language":5964},"sbr":{"language":5965},"sbs":{"language":5966},"sbt":{"language":5967},"sbu":{"language":5968},"sbv":{"language":5969},"sbw":{"language":5970},"sbx":{"language":5971},"sby":{"language":5972},"sbz":{"language":5973},"sca":{"language":5974},"scb":{"language":5975},"sce":{"language":5976},"scf":{"language":5977},"scg":{"language":5978},"sch":{"language":5979},"sci":{"language":5980},"sck":{"language":5981},"scl":{"language":5982},"scn":{"language":5983},"sco":{"language":5984},"scp":{"language":5985},"scq":{"language":5986},"scs":{"language":5987},"sct":{"language":5988},"scu":{"language":5989},"scv":{"language":5990},"scw":{"language":5991},"scx":{"language":5992},"sda":{"language":5993},"sdb":{"language":5994},"sdc":{"language":5995},"sde":{"language":5996},"sdf":{"language":5997},"sdg":{"language":5998},"sdh":{"language":5999},"sdj":{"language":6000},"sdk":{"language":6001},"sdl":{"language":6002,"extlang":8334},"sdm":{"language":6003},"sdn":{"language":6004},"sdo":{"language":6005},"sdp":{"language":6006},"sdr":{"language":6007},"sds":{"language":6008},"sdt":{"language":6009},"sdu":{"language":6010},"sdv":{"language":6011},"sdx":{"language":6012},"sdz":{"language":6013},"sea":{"language":6014},"seb":{"language":6015},"sec":{"language":6016},"sed":{"language":6017},"see":{"language":6018},"sef":{"language":6019},"seg":{"language":6020},"seh":{"language":6021},"sei":{"language":6022},"sej":{"language":6023},"sek":{"language":6024},"sel":{"language":6025},"sem":{"language":6026},"sen":{"language":6027},"seo":{"language":6028},"sep":{"language":6029},"seq":{"language":6030},"ser":{"language":6031},"ses":{"language":6032},"set":{"language":6033},"seu":{"language":6034},"sev":{"language":6035},"sew":{"language":6036},"sey":{"language":6037},"sez":{"language":6038},"sfb":{"language":6039,"extlang":8335},"sfe":{"language":6040},"sfm":{"language":6041},"sfs":{"language":6042,"extlang":8336},"sfw":{"language":6043},"sga":{"language":6044},"sgb":{"language":6045},"sgc":{"language":6046},"sgd":{"language":6047},"sge":{"language":6048},"sgg":{"language":6049,"extlang":8337},"sgh":{"language":6050},"sgi":{"language":6051},"sgj":{"language":6052},"sgk":{"language":6053},"sgl":{"language":6054},"sgm":{"language":6055},"sgn":{"language":6056},"sgo":{"language":6057},"sgp":{"language":6058},"sgr":{"language":6059},"sgs":{"language":6060},"sgt":{"language":6061},"sgu":{"language":6062},"sgw":{"language":6063},"sgx":{"language":6064,"extlang":8338},"sgy":{"language":6065},"sgz":{"language":6066},"sha":{"language":6067},"shb":{"language":6068},"shc":{"language":6069},"shd":{"language":6070},"she":{"language":6071},"shg":{"language":6072},"shh":{"language":6073},"shi":{"language":6074},"shj":{"language":6075},"shk":{"language":6076},"shl":{"language":6077},"shm":{"language":6078},"shn":{"language":6079},"sho":{"language":6080},"shp":{"language":6081},"shq":{"language":6082},"shr":{"language":6083},"shs":{"language":6084},"sht":{"language":6085},"shu":{"language":6086,"extlang":8339},"shv":{"language":6087},"shw":{"language":6088},"shx":{"language":6089},"shy":{"language":6090},"shz":{"language":6091},"sia":{"language":6092},"sib":{"language":6093},"sid":{"language":6094},"sie":{"language":6095},"sif":{"language":6096},"sig":{"language":6097},"sih":{"language":6098},"sii":{"language":6099},"sij":{"language":6100},"sik":{"language":6101},"sil":{"language":6102},"sim":{"language":6103},"sio":{"language":6104},"sip":{"language":6105},"siq":{"language":6106},"sir":{"language":6107},"sis":{"language":6108},"sit":{"language":6109},"siu":{"language":6110},"siv":{"language":6111},"siw":{"language":6112},"six":{"language":6113},"siy":{"language":6114},"siz":{"language":6115},"sja":{"language":6116},"sjb":{"language":6117},"sjd":{"language":6118},"sje":{"language":6119},"sjg":{"language":6120},"sjk":{"language":6121},"sjl":{"language":6122},"sjm":{"language":6123},"sjn":{"language":6124},"sjo":{"language":6125},"sjp":{"language":6126},"sjr":{"language":6127},"sjs":{"language":6128},"sjt":{"language":6129},"sju":{"language":6130},"sjw":{"language":6131},"ska":{"language":6132},"skb":{"language":6133},"skc":{"language":6134},"skd":{"language":6135},"ske":{"language":6136},"skf":{"language":6137},"skg":{"language":6138},"skh":{"language":6139},"ski":{"language":6140},"skj":{"language":6141},"skk":{"language":6142},"skm":{"language":6143},"skn":{"language":6144},"sko":{"language":6145},"skp":{"language":6146},"skq":{"language":6147},"skr":{"language":6148},"sks":{"language":6149},"skt":{"language":6150},"sku":{"language":6151},"skv":{"language":6152},"skw":{"language":6153},"skx":{"language":6154},"sky":{"language":6155},"skz":{"language":6156},"sla":{"language":6157},"slc":{"language":6158},"sld":{"language":6159},"sle":{"language":6160},"slf":{"language":6161,"extlang":8340},"slg":{"language":6162},"slh":{"language":6163},"sli":{"language":6164},"slj":{"language":6165},"sll":{"language":6166},"slm":{"language":6167},"sln":{"language":6168},"slp":{"language":6169},"slq":{"language":6170},"slr":{"language":6171},"sls":{"language":6172,"extlang":8341},"slt":{"language":6173},"slu":{"language":6174},"slw":{"language":6175},"slx":{"language":6176},"sly":{"language":6177},"slz":{"language":6178},"sma":{"language":6179},"smb":{"language":6180},"smc":{"language":6181},"smd":{"language":6182},"smf":{"language":6183},"smg":{"language":6184},"smh":{"language":6185},"smi":{"language":6186},"smj":{"language":6187},"smk":{"language":6188},"sml":{"language":6189},"smm":{"language":6190},"smn":{"language":6191},"smp":{"language":6192},"smq":{"language":6193},"smr":{"language":6194},"sms":{"language":6195},"smt":{"language":6196},"smu":{"language":6197},"smv":{"language":6198},"smw":{"language":6199},"smx":{"language":6200},"smy":{"language":6201},"smz":{"language":6202},"snb":{"language":6203},"snc":{"language":6204},"sne":{"language":6205},"snf":{"language":6206},"sng":{"language":6207},"snh":{"language":6208},"sni":{"language":6209},"snj":{"language":6210},"snk":{"language":6211},"snl":{"language":6212},"snm":{"language":6213},"snn":{"language":6214},"sno":{"language":6215},"snp":{"language":6216},"snq":{"language":6217},"snr":{"language":6218},"sns":{"language":6219},"snu":{"language":6220},"snv":{"language":6221},"snw":{"language":6222},"snx":{"language":6223},"sny":{"language":6224},"snz":{"language":6225},"soa":{"language":6226},"sob":{"language":6227},"soc":{"language":6228},"sod":{"language":6229},"soe":{"language":6230},"sog":{"language":6231},"soh":{"language":6232},"soi":{"language":6233},"soj":{"language":6234},"sok":{"language":6235},"sol":{"language":6236},"son":{"language":6237},"soo":{"language":6238},"sop":{"language":6239},"soq":{"language":6240},"sor":{"language":6241},"sos":{"language":6242},"sou":{"language":6243},"sov":{"language":6244},"sow":{"language":6245},"sox":{"language":6246},"soy":{"language":6247},"soz":{"language":6248},"spb":{"language":6249},"spc":{"language":6250},"spd":{"language":6251},"spe":{"language":6252},"spg":{"language":6253},"spi":{"language":6254},"spk":{"language":6255},"spl":{"language":6256},"spm":{"language":6257},"spn":{"language":6258},"spo":{"language":6259},"spp":{"language":6260},"spq":{"language":6261},"spr":{"language":6262},"sps":{"language":6263},"spt":{"language":6264},"spu":{"language":6265},"spv":{"language":6266},"spx":{"language":6267},"spy":{"language":6268},"sqa":{"language":6269},"sqh":{"language":6270},"sqj":{"language":6271},"sqk":{"language":6272,"extlang":8342},"sqm":{"language":6273},"sqn":{"language":6274},"sqo":{"language":6275},"sqq":{"language":6276},"sqr":{"language":6277},"sqs":{"language":6278,"extlang":8343},"sqt":{"language":6279},"squ":{"language":6280},"sra":{"language":6281},"srb":{"language":6282},"src":{"language":6283},"sre":{"language":6284},"srf":{"language":6285},"srg":{"language":6286},"srh":{"language":6287},"sri":{"language":6288},"srk":{"language":6289},"srl":{"language":6290},"srm":{"language":6291},"srn":{"language":6292},"sro":{"language":6293},"srq":{"language":6294},"srr":{"language":6295},"srs":{"language":6296},"srt":{"language":6297},"sru":{"language":6298},"srv":{"language":6299},"srw":{"language":6300},"srx":{"language":6301},"sry":{"language":6302},"srz":{"language":6303},"ssa":{"language":6304},"ssb":{"language":6305},"ssc":{"language":6306},"ssd":{"language":6307},"sse":{"language":6308},"ssf":{"language":6309},"ssg":{"language":6310},"ssh":{"language":6311,"extlang":8344},"ssi":{"language":6312},"ssj":{"language":6313},"ssk":{"language":6314},"ssl":{"language":6315},"ssm":{"language":6316},"ssn":{"language":6317},"sso":{"language":6318},"ssp":{"language":6319,"extlang":8345},"ssq":{"language":6320},"ssr":{"language":6321,"extlang":8346},"sss":{"language":6322},"sst":{"language":6323},"ssu":{"language":6324},"ssv":{"language":6325},"ssx":{"language":6326},"ssy":{"language":6327},"ssz":{"language":6328},"sta":{"language":6329},"stb":{"language":6330},"std":{"language":6331},"ste":{"language":6332},"stf":{"language":6333},"stg":{"language":6334},"sth":{"language":6335},"sti":{"language":6336},"stj":{"language":6337},"stk":{"language":6338},"stl":{"language":6339},"stm":{"language":6340},"stn":{"language":6341},"sto":{"language":6342},"stp":{"language":6343},"stq":{"language":6344},"str":{"language":6345},"sts":{"language":6346},"stt":{"language":6347},"stu":{"language":6348},"stv":{"language":6349},"stw":{"language":6350},"sty":{"language":6351},"sua":{"language":6352},"sub":{"language":6353},"suc":{"language":6354},"sue":{"language":6355},"sug":{"language":6356},"sui":{"language":6357},"suj":{"language":6358},"suk":{"language":6359},"sul":{"language":6360},"sum":{"language":6361},"suq":{"language":6362},"sur":{"language":6363},"sus":{"language":6364},"sut":{"language":6365},"suv":{"language":6366},"suw":{"language":6367},"sux":{"language":6368},"suy":{"language":6369},"suz":{"language":6370},"sva":{"language":6371},"svb":{"language":6372},"svc":{"language":6373},"sve":{"language":6374},"svk":{"language":6375,"extlang":8347},"svm":{"language":6376},"svr":{"language":6377},"svs":{"language":6378},"svx":{"language":6379},"swb":{"language":6380},"swc":{"language":6381,"extlang":8348},"swf":{"language":6382},"swg":{"language":6383},"swh":{"language":6384,"extlang":8349},"swi":{"language":6385},"swj":{"language":6386},"swk":{"language":6387},"swl":{"language":6388,"extlang":8350},"swm":{"language":6389},"swn":{"language":6390},"swo":{"language":6391},"swp":{"language":6392},"swq":{"language":6393},"swr":{"language":6394},"sws":{"language":6395},"swt":{"language":6396},"swu":{"language":6397},"swv":{"language":6398},"sww":{"language":6399},"swx":{"language":6400},"swy":{"language":6401},"sxb":{"language":6402},"sxc":{"language":6403},"sxe":{"language":6404},"sxg":{"language":6405},"sxk":{"language":6406},"sxl":{"language":6407},"sxm":{"language":6408},"sxn":{"language":6409},"sxo":{"language":6410},"sxr":{"language":6411},"sxs":{"language":6412},"sxu":{"language":6413},"sxw":{"language":6414},"sya":{"language":6415},"syb":{"language":6416},"syc":{"language":6417},"syd":{"language":6418},"syi":{"language":6419},"syk":{"language":6420},"syl":{"language":6421},"sym":{"language":6422},"syn":{"language":6423},"syo":{"language":6424},"syr":{"language":6425},"sys":{"language":6426},"syw":{"language":6427},"syx":{"language":6428},"syy":{"language":6429,"extlang":8351},"sza":{"language":6430},"szb":{"language":6431},"szc":{"language":6432},"szd":{"language":6433},"sze":{"language":6434},"szg":{"language":6435},"szl":{"language":6436},"szn":{"language":6437},"szp":{"language":6438},"szs":{"language":6439,"extlang":8352},"szv":{"language":6440},"szw":{"language":6441},"szy":{"language":6442},"taa":{"language":6443},"tab":{"language":6444},"tac":{"language":6445},"tad":{"language":6446},"tae":{"language":6447},"taf":{"language":6448},"tag":{"language":6449},"tai":{"language":6450},"taj":{"language":6451},"tak":{"language":6452},"tal":{"language":6453},"tan":{"language":6454},"tao":{"language":6455},"tap":{"language":6456},"taq":{"language":6457},"tar":{"language":6458},"tas":{"language":6459},"tau":{"language":6460},"tav":{"language":6461},"taw":{"language":6462},"tax":{"language":6463},"tay":{"language":6464},"taz":{"language":6465},"tba":{"language":6466},"tbb":{"language":6467},"tbc":{"language":6468},"tbd":{"language":6469},"tbe":{"language":6470},"tbf":{"language":6471},"tbg":{"language":6472},"tbh":{"language":6473},"tbi":{"language":6474},"tbj":{"language":6475},"tbk":{"language":6476},"tbl":{"language":6477},"tbm":{"language":6478},"tbn":{"language":6479},"tbo":{"language":6480},"tbp":{"language":6481},"tbq":{"language":6482},"tbr":{"language":6483},"tbs":{"language":6484},"tbt":{"language":6485},"tbu":{"language":6486},"tbv":{"language":6487},"tbw":{"language":6488},"tbx":{"language":6489},"tby":{"language":6490},"tbz":{"language":6491},"tca":{"language":6492},"tcb":{"language":6493},"tcc":{"language":6494},"tcd":{"language":6495},"tce":{"language":6496},"tcf":{"language":6497},"tcg":{"language":6498},"tch":{"language":6499},"tci":{"language":6500},"tck":{"language":6501},"tcl":{"language":6502},"tcm":{"language":6503},"tcn":{"language":6504},"tco":{"language":6505},"tcp":{"language":6506},"tcq":{"language":6507},"tcs":{"language":6508},"tct":{"language":6509},"tcu":{"language":6510},"tcw":{"language":6511},"tcx":{"language":6512},"tcy":{"language":6513},"tcz":{"language":6514},"tda":{"language":6515},"tdb":{"language":6516},"tdc":{"language":6517},"tdd":{"language":6518},"tde":{"language":6519},"tdf":{"language":6520},"tdg":{"language":6521},"tdh":{"language":6522},"tdi":{"language":6523},"tdj":{"language":6524},"tdk":{"language":6525},"tdl":{"language":6526},"tdm":{"language":6527},"tdn":{"language":6528},"tdo":{"language":6529},"tdq":{"language":6530},"tdr":{"language":6531},"tds":{"language":6532},"tdt":{"language":6533},"tdu":{"language":6534},"tdv":{"language":6535},"tdx":{"language":6536},"tdy":{"language":6537},"tea":{"language":6538},"teb":{"language":6539},"tec":{"language":6540},"ted":{"language":6541},"tee":{"language":6542},"tef":{"language":6543},"teg":{"language":6544},"teh":{"language":6545},"tei":{"language":6546},"tek":{"language":6547},"tem":{"language":6548},"ten":{"language":6549},"teo":{"language":6550},"tep":{"language":6551},"teq":{"language":6552},"ter":{"language":6553},"tes":{"language":6554},"tet":{"language":6555},"teu":{"language":6556},"tev":{"language":6557},"tew":{"language":6558},"tex":{"language":6559},"tey":{"language":6560},"tez":{"language":6561},"tfi":{"language":6562},"tfn":{"language":6563},"tfo":{"language":6564},"tfr":{"language":6565},"tft":{"language":6566},"tga":{"language":6567},"tgb":{"language":6568},"tgc":{"language":6569},"tgd":{"language":6570},"tge":{"language":6571},"tgf":{"language":6572},"tgg":{"language":6573},"tgh":{"language":6574},"tgi":{"language":6575},"tgj":{"language":6576},"tgn":{"language":6577},"tgo":{"language":6578},"tgp":{"language":6579},"tgq":{"language":6580},"tgr":{"language":6581},"tgs":{"language":6582},"tgt":{"language":6583},"tgu":{"language":6584},"tgv":{"language":6585},"tgw":{"language":6586},"tgx":{"language":6587},"tgy":{"language":6588},"tgz":{"language":6589},"thc":{"language":6590},"thd":{"language":6591},"the":{"language":6592},"thf":{"language":6593},"thh":{"language":6594},"thi":{"language":6595},"thk":{"language":6596},"thl":{"language":6597},"thm":{"language":6598},"thn":{"language":6599},"thp":{"language":6600},"thq":{"language":6601},"thr":{"language":6602},"ths":{"language":6603},"tht":{"language":6604},"thu":{"language":6605},"thv":{"language":6606},"thw":{"language":6607},"thx":{"language":6608},"thy":{"language":6609},"thz":{"language":6610},"tia":{"language":6611},"tic":{"language":6612},"tid":{"language":6613},"tie":{"language":6614},"tif":{"language":6615},"tig":{"language":6616},"tih":{"language":6617},"tii":{"language":6618},"tij":{"language":6619},"tik":{"language":6620},"til":{"language":6621},"tim":{"language":6622},"tin":{"language":6623},"tio":{"language":6624},"tip":{"language":6625},"tiq":{"language":6626},"tis":{"language":6627},"tit":{"language":6628},"tiu":{"language":6629},"tiv":{"language":6630},"tiw":{"language":6631},"tix":{"language":6632},"tiy":{"language":6633},"tiz":{"language":6634},"tja":{"language":6635},"tjg":{"language":6636},"tji":{"language":6637},"tjj":{"language":6638},"tjl":{"language":6639},"tjm":{"language":6640},"tjn":{"language":6641},"tjo":{"language":6642},"tjp":{"language":6643},"tjs":{"language":6644},"tju":{"language":6645},"tjw":{"language":6646},"tka":{"language":6647},"tkb":{"language":6648},"tkd":{"language":6649},"tke":{"language":6650},"tkf":{"language":6651},"tkg":{"language":6652},"tkk":{"language":6653},"tkl":{"language":6654},"tkm":{"language":6655},"tkn":{"language":6656},"tkp":{"language":6657},"tkq":{"language":6658},"tkr":{"language":6659},"tks":{"language":6660},"tkt":{"language":6661},"tku":{"language":6662},"tkv":{"language":6663},"tkw":{"language":6664},"tkx":{"language":6665},"tkz":{"language":6666},"tla":{"language":6667},"tlb":{"language":6668},"tlc":{"language":6669},"tld":{"language":6670},"tlf":{"language":6671},"tlg":{"language":6672},"tlh":{"language":6673},"tli":{"language":6674},"tlj":{"language":6675},"tlk":{"language":6676},"tll":{"language":6677},"tlm":{"language":6678},"tln":{"language":6679},"tlo":{"language":6680},"tlp":{"language":6681},"tlq":{"language":6682},"tlr":{"language":6683},"tls":{"language":6684},"tlt":{"language":6685},"tlu":{"language":6686},"tlv":{"language":6687},"tlw":{"language":6688},"tlx":{"language":6689},"tly":{"language":6690},"tma":{"language":6691},"tmb":{"language":6692},"tmc":{"language":6693},"tmd":{"language":6694},"tme":{"language":6695},"tmf":{"language":6696},"tmg":{"language":6697},"tmh":{"language":6698},"tmi":{"language":6699},"tmj":{"language":6700},"tmk":{"language":6701},"tml":{"language":6702},"tmm":{"language":6703},"tmn":{"language":6704},"tmo":{"language":6705},"tmp":{"language":6706},"tmq":{"language":6707},"tmr":{"language":6708},"tms":{"language":6709},"tmt":{"language":6710},"tmu":{"language":6711},"tmv":{"language":6712},"tmw":{"language":6713,"extlang":8353},"tmy":{"language":6714},"tmz":{"language":6715},"tna":{"language":6716},"tnb":{"language":6717},"tnc":{"language":6718},"tnd":{"language":6719},"tne":{"language":6720},"tnf":{"language":6721},"tng":{"language":6722},"tnh":{"language":6723},"tni":{"language":6724},"tnk":{"language":6725},"tnl":{"language":6726},"tnm":{"language":6727},"tnn":{"language":6728},"tno":{"language":6729},"tnp":{"language":6730},"tnq":{"language":6731},"tnr":{"language":6732},"tns":{"language":6733},"tnt":{"language":6734},"tnu":{"language":6735},"tnv":{"language":6736},"tnw":{"language":6737},"tnx":{"language":6738},"tny":{"language":6739},"tnz":{"language":6740},"tob":{"language":6741},"toc":{"language":6742},"tod":{"language":6743},"toe":{"language":6744},"tof":{"language":6745},"tog":{"language":6746},"toh":{"language":6747},"toi":{"language":6748},"toj":{"language":6749},"tol":{"language":6750},"tom":{"language":6751},"too":{"language":6752},"top":{"language":6753},"toq":{"language":6754},"tor":{"language":6755},"tos":{"language":6756},"tou":{"language":6757},"tov":{"language":6758},"tow":{"language":6759},"tox":{"language":6760},"toy":{"language":6761},"toz":{"language":6762},"tpa":{"language":6763},"tpc":{"language":6764},"tpe":{"language":6765},"tpf":{"language":6766},"tpg":{"language":6767},"tpi":{"language":6768},"tpj":{"language":6769},"tpk":{"language":6770},"tpl":{"language":6771},"tpm":{"language":6772},"tpn":{"language":6773},"tpo":{"language":6774},"tpp":{"language":6775},"tpq":{"language":6776},"tpr":{"language":6777},"tpt":{"language":6778},"tpu":{"language":6779},"tpv":{"language":6780},"tpw":{"language":6781},"tpx":{"language":6782},"tpy":{"language":6783},"tpz":{"language":6784},"tqb":{"language":6785},"tql":{"language":6786},"tqm":{"language":6787},"tqn":{"language":6788},"tqo":{"language":6789},"tqp":{"language":6790},"tqq":{"language":6791},"tqr":{"language":6792},"tqt":{"language":6793},"tqu":{"language":6794},"tqw":{"language":6795},"tra":{"language":6796},"trb":{"language":6797},"trc":{"language":6798},"trd":{"language":6799},"tre":{"language":6800},"trf":{"language":6801},"trg":{"language":6802},"trh":{"language":6803},"tri":{"language":6804},"trj":{"language":6805},"trk":{"language":6806},"trl":{"language":6807},"trm":{"language":6808},"trn":{"language":6809},"tro":{"language":6810},"trp":{"language":6811},"trq":{"language":6812},"trr":{"language":6813},"trs":{"language":6814},"trt":{"language":6815},"tru":{"language":6816},"trv":{"language":6817},"trw":{"language":6818},"trx":{"language":6819},"try":{"language":6820},"trz":{"language":6821},"tsa":{"language":6822},"tsb":{"language":6823},"tsc":{"language":6824},"tsd":{"language":6825},"tse":{"language":6826,"extlang":8354},"tsf":{"language":6827},"tsg":{"language":6828},"tsh":{"language":6829},"tsi":{"language":6830},"tsj":{"language":6831},"tsk":{"language":6832},"tsl":{"language":6833},"tsm":{"language":6834,"extlang":8355},"tsp":{"language":6835},"tsq":{"language":6836,"extlang":8356},"tsr":{"language":6837},"tss":{"language":6838,"extlang":8357},"tst":{"language":6839},"tsu":{"language":6840},"tsv":{"language":6841},"tsw":{"language":6842},"tsx":{"language":6843},"tsy":{"language":6844,"extlang":8358},"tsz":{"language":6845},"tta":{"language":6846},"ttb":{"language":6847},"ttc":{"language":6848},"ttd":{"language":6849},"tte":{"language":6850},"ttf":{"language":6851},"ttg":{"language":6852},"tth":{"language":6853},"tti":{"language":6854},"ttj":{"language":6855},"ttk":{"language":6856},"ttl":{"language":6857},"ttm":{"language":6858},"ttn":{"language":6859},"tto":{"language":6860},"ttp":{"language":6861},"ttq":{"language":6862},"ttr":{"language":6863},"tts":{"language":6864},"ttt":{"language":6865},"ttu":{"language":6866},"ttv":{"language":6867},"ttw":{"language":6868},"tty":{"language":6869},"ttz":{"language":6870},"tua":{"language":6871},"tub":{"language":6872},"tuc":{"language":6873},"tud":{"language":6874},"tue":{"language":6875},"tuf":{"language":6876},"tug":{"language":6877},"tuh":{"language":6878},"tui":{"language":6879},"tuj":{"language":6880},"tul":{"language":6881},"tum":{"language":6882},"tun":{"language":6883},"tuo":{"language":6884},"tup":{"language":6885},"tuq":{"language":6886},"tus":{"language":6887},"tut":{"language":6888},"tuu":{"language":6889},"tuv":{"language":6890},"tuw":{"language":6891},"tux":{"language":6892},"tuy":{"language":6893},"tuz":{"language":6894},"tva":{"language":6895},"tvd":{"language":6896},"tve":{"language":6897},"tvk":{"language":6898},"tvl":{"language":6899},"tvm":{"language":6900},"tvn":{"language":6901},"tvo":{"language":6902},"tvs":{"language":6903},"tvt":{"language":6904},"tvu":{"language":6905},"tvw":{"language":6906},"tvx":{"language":6907},"tvy":{"language":6908},"twa":{"language":6909},"twb":{"language":6910},"twc":{"language":6911},"twd":{"language":6912},"twe":{"language":6913},"twf":{"language":6914},"twg":{"language":6915},"twh":{"language":6916},"twl":{"language":6917},"twm":{"language":6918},"twn":{"language":6919},"two":{"language":6920},"twp":{"language":6921},"twq":{"language":6922},"twr":{"language":6923},"twt":{"language":6924},"twu":{"language":6925},"tww":{"language":6926},"twx":{"language":6927},"twy":{"language":6928},"txa":{"language":6929},"txb":{"language":6930},"txc":{"language":6931},"txe":{"language":6932},"txg":{"language":6933},"txh":{"language":6934},"txi":{"language":6935},"txj":{"language":6936},"txm":{"language":6937},"txn":{"language":6938},"txo":{"language":6939},"txq":{"language":6940},"txr":{"language":6941},"txs":{"language":6942},"txt":{"language":6943},"txu":{"language":6944},"txx":{"language":6945},"txy":{"language":6946},"tya":{"language":6947},"tye":{"language":6948},"tyh":{"language":6949},"tyi":{"language":6950},"tyj":{"language":6951},"tyl":{"language":6952},"tyn":{"language":6953},"typ":{"language":6954},"tyr":{"language":6955},"tys":{"language":6956},"tyt":{"language":6957},"tyu":{"language":6958},"tyv":{"language":6959},"tyx":{"language":6960},"tyz":{"language":6961},"tza":{"language":6962,"extlang":8359},"tzh":{"language":6963},"tzj":{"language":6964},"tzl":{"language":6965},"tzm":{"language":6966},"tzn":{"language":6967},"tzo":{"language":6968},"tzx":{"language":6969},"uam":{"language":6970},"uan":{"language":6971},"uar":{"language":6972},"uba":{"language":6973},"ubi":{"language":6974},"ubl":{"language":6975},"ubr":{"language":6976},"ubu":{"language":6977},"uby":{"language":6978},"uda":{"language":6979},"ude":{"language":6980},"udg":{"language":6981},"udi":{"language":6982},"udj":{"language":6983},"udl":{"language":6984},"udm":{"language":6985},"udu":{"language":6986},"ues":{"language":6987},"ufi":{"language":6988},"uga":{"language":6989},"ugb":{"language":6990},"uge":{"language":6991},"ugn":{"language":6992,"extlang":8360},"ugo":{"language":6993},"ugy":{"language":6994,"extlang":8361},"uha":{"language":6995},"uhn":{"language":6996},"uis":{"language":6997},"uiv":{"language":6998},"uji":{"language":6999},"uka":{"language":7000},"ukg":{"language":7001},"ukh":{"language":7002},"ukk":{"language":7003},"ukl":{"language":7004,"extlang":8362},"ukp":{"language":7005},"ukq":{"language":7006},"uks":{"language":7007,"extlang":8363},"uku":{"language":7008},"ukw":{"language":7009},"uky":{"language":7010},"ula":{"language":7011},"ulb":{"language":7012},"ulc":{"language":7013},"ule":{"language":7014},"ulf":{"language":7015},"uli":{"language":7016},"ulk":{"language":7017},"ull":{"language":7018},"ulm":{"language":7019},"uln":{"language":7020},"ulu":{"language":7021},"ulw":{"language":7022},"uma":{"language":7023},"umb":{"language":7024},"umc":{"language":7025},"umd":{"language":7026},"umg":{"language":7027},"umi":{"language":7028},"umm":{"language":7029},"umn":{"language":7030},"umo":{"language":7031},"ump":{"language":7032},"umr":{"language":7033},"ums":{"language":7034},"umu":{"language":7035},"una":{"language":7036},"und":{"language":7037},"une":{"language":7038},"ung":{"language":7039},"unk":{"language":7040},"unm":{"language":7041},"unn":{"language":7042},"unp":{"language":7043},"unr":{"language":7044},"unu":{"language":7045},"unx":{"language":7046},"unz":{"language":7047},"uok":{"language":7048},"upi":{"language":7049},"upv":{"language":7050},"ura":{"language":7051},"urb":{"language":7052},"urc":{"language":7053},"ure":{"language":7054},"urf":{"language":7055},"urg":{"language":7056},"urh":{"language":7057},"uri":{"language":7058},"urj":{"language":7059},"urk":{"language":7060,"extlang":8364},"url":{"language":7061},"urm":{"language":7062},"urn":{"language":7063},"uro":{"language":7064},"urp":{"language":7065},"urr":{"language":7066},"urt":{"language":7067},"uru":{"language":7068},"urv":{"language":7069},"urw":{"language":7070},"urx":{"language":7071},"ury":{"language":7072},"urz":{"language":7073},"usa":{"language":7074},"ush":{"language":7075},"usi":{"language":7076},"usk":{"language":7077},"usp":{"language":7078},"uss":{"language":7079},"usu":{"language":7080},"uta":{"language":7081},"ute":{"language":7082},"uth":{"language":7083},"utp":{"language":7084},"utr":{"language":7085},"utu":{"language":7086},"uum":{"language":7087},"uun":{"language":7088},"uur":{"language":7089},"uuu":{"language":7090},"uve":{"language":7091},"uvh":{"language":7092},"uvl":{"language":7093},"uwa":{"language":7094},"uya":{"language":7095},"uzn":{"language":7096,"extlang":8365},"uzs":{"language":7097,"extlang":8366},"vaa":{"language":7098},"vae":{"language":7099},"vaf":{"language":7100},"vag":{"language":7101},"vah":{"language":7102},"vai":{"language":7103},"vaj":{"language":7104},"val":{"language":7105},"vam":{"language":7106},"van":{"language":7107},"vao":{"language":7108},"vap":{"language":7109},"var":{"language":7110},"vas":{"language":7111},"vau":{"language":7112},"vav":{"language":7113},"vay":{"language":7114},"vbb":{"language":7115},"vbk":{"language":7116},"vec":{"language":7117},"ved":{"language":7118},"vel":{"language":7119},"vem":{"language":7120},"veo":{"language":7121},"vep":{"language":7122},"ver":{"language":7123},"vgr":{"language":7124},"vgt":{"language":7125,"extlang":8367},"vic":{"language":7126},"vid":{"language":7127},"vif":{"language":7128},"vig":{"language":7129},"vil":{"language":7130},"vin":{"language":7131},"vis":{"language":7132},"vit":{"language":7133},"viv":{"language":7134},"vka":{"language":7135},"vki":{"language":7136},"vkj":{"language":7137},"vkk":{"language":7138,"extlang":8368},"vkl":{"language":7139},"vkm":{"language":7140},"vko":{"language":7141},"vkp":{"language":7142},"vkt":{"language":7143,"extlang":8369},"vku":{"language":7144},"vlp":{"language":7145},"vls":{"language":7146},"vma":{"language":7147},"vmb":{"language":7148},"vmc":{"language":7149},"vmd":{"language":7150},"vme":{"language":7151},"vmf":{"language":7152},"vmg":{"language":7153},"vmh":{"language":7154},"vmi":{"language":7155},"vmj":{"language":7156},"vmk":{"language":7157},"vml":{"language":7158},"vmm":{"language":7159},"vmp":{"language":7160},"vmq":{"language":7161},"vmr":{"language":7162},"vms":{"language":7163},"vmu":{"language":7164},"vmv":{"language":7165},"vmw":{"language":7166},"vmx":{"language":7167},"vmy":{"language":7168},"vmz":{"language":7169},"vnk":{"language":7170},"vnm":{"language":7171},"vnp":{"language":7172},"vor":{"language":7173},"vot":{"language":7174},"vra":{"language":7175},"vro":{"language":7176},"vrs":{"language":7177},"vrt":{"language":7178},"vsi":{"language":7179,"extlang":8370},"vsl":{"language":7180,"extlang":8371},"vsv":{"language":7181,"extlang":8372},"vto":{"language":7182},"vum":{"language":7183},"vun":{"language":7184},"vut":{"language":7185},"vwa":{"language":7186},"waa":{"language":7187},"wab":{"language":7188},"wac":{"language":7189},"wad":{"language":7190},"wae":{"language":7191},"waf":{"language":7192},"wag":{"language":7193},"wah":{"language":7194},"wai":{"language":7195},"waj":{"language":7196},"wak":{"language":7197},"wal":{"language":7198},"wam":{"language":7199},"wan":{"language":7200},"wao":{"language":7201},"wap":{"language":7202},"waq":{"language":7203},"war":{"language":7204},"was":{"language":7205},"wat":{"language":7206},"wau":{"language":7207},"wav":{"language":7208},"waw":{"language":7209},"wax":{"language":7210},"way":{"language":7211},"waz":{"language":7212},"wba":{"language":7213},"wbb":{"language":7214},"wbe":{"language":7215},"wbf":{"language":7216},"wbh":{"language":7217},"wbi":{"language":7218},"wbj":{"language":7219},"wbk":{"language":7220},"wbl":{"language":7221},"wbm":{"language":7222},"wbp":{"language":7223},"wbq":{"language":7224},"wbr":{"language":7225},"wbs":{"language":7226,"extlang":8373},"wbt":{"language":7227},"wbv":{"language":7228},"wbw":{"language":7229},"wca":{"language":7230},"wci":{"language":7231},"wdd":{"language":7232},"wdg":{"language":7233},"wdj":{"language":7234},"wdk":{"language":7235},"wdu":{"language":7236},"wdy":{"language":7237},"wea":{"language":7238},"wec":{"language":7239},"wed":{"language":7240},"weg":{"language":7241},"weh":{"language":7242},"wei":{"language":7243},"wem":{"language":7244},"wen":{"language":7245},"weo":{"language":7246},"wep":{"language":7247},"wer":{"language":7248},"wes":{"language":7249},"wet":{"language":7250},"weu":{"language":7251},"wew":{"language":7252},"wfg":{"language":7253},"wga":{"language":7254},"wgb":{"language":7255},"wgg":{"language":7256},"wgi":{"language":7257},"wgo":{"language":7258},"wgu":{"language":7259},"wgw":{"language":7260},"wgy":{"language":7261},"wha":{"language":7262},"whg":{"language":7263},"whk":{"language":7264},"whu":{"language":7265},"wib":{"language":7266},"wic":{"language":7267},"wie":{"language":7268},"wif":{"language":7269},"wig":{"language":7270},"wih":{"language":7271},"wii":{"language":7272},"wij":{"language":7273},"wik":{"language":7274},"wil":{"language":7275},"wim":{"language":7276},"win":{"language":7277},"wir":{"language":7278},"wit":{"language":7279},"wiu":{"language":7280},"wiv":{"language":7281},"wiw":{"language":7282},"wiy":{"language":7283},"wja":{"language":7284},"wji":{"language":7285},"wka":{"language":7286},"wkb":{"language":7287},"wkd":{"language":7288},"wkl":{"language":7289},"wkr":{"language":7290},"wku":{"language":7291},"wkw":{"language":7292},"wky":{"language":7293},"wla":{"language":7294},"wlc":{"language":7295},"wle":{"language":7296},"wlg":{"language":7297},"wli":{"language":7298},"wlk":{"language":7299},"wll":{"language":7300},"wlm":{"language":7301},"wlo":{"language":7302},"wlr":{"language":7303},"wls":{"language":7304},"wlu":{"language":7305},"wlv":{"language":7306},"wlw":{"language":7307},"wlx":{"language":7308},"wly":{"language":7309},"wma":{"language":7310},"wmb":{"language":7311},"wmc":{"language":7312},"wmd":{"language":7313},"wme":{"language":7314},"wmh":{"language":7315},"wmi":{"language":7316},"wmm":{"language":7317},"wmn":{"language":7318},"wmo":{"language":7319},"wms":{"language":7320},"wmt":{"language":7321},"wmw":{"language":7322},"wmx":{"language":7323},"wnb":{"language":7324},"wnc":{"language":7325},"wnd":{"language":7326},"wne":{"language":7327},"wng":{"language":7328},"wni":{"language":7329},"wnk":{"language":7330},"wnm":{"language":7331},"wnn":{"language":7332},"wno":{"language":7333},"wnp":{"language":7334},"wnu":{"language":7335},"wnw":{"language":7336},"wny":{"language":7337},"woa":{"language":7338},"wob":{"language":7339},"woc":{"language":7340},"wod":{"language":7341},"woe":{"language":7342},"wof":{"language":7343},"wog":{"language":7344},"woi":{"language":7345},"wok":{"language":7346},"wom":{"language":7347},"won":{"language":7348},"woo":{"language":7349},"wor":{"language":7350},"wos":{"language":7351},"wow":{"language":7352},"woy":{"language":7353},"wpc":{"language":7354},"wra":{"language":7355},"wrb":{"language":7356},"wrd":{"language":7357},"wrg":{"language":7358},"wrh":{"language":7359},"wri":{"language":7360},"wrk":{"language":7361},"wrl":{"language":7362},"wrm":{"language":7363},"wrn":{"language":7364},"wro":{"language":7365},"wrp":{"language":7366},"wrr":{"language":7367},"wrs":{"language":7368},"wru":{"language":7369},"wrv":{"language":7370},"wrw":{"language":7371},"wrx":{"language":7372},"wry":{"language":7373},"wrz":{"language":7374},"wsa":{"language":7375},"wsg":{"language":7376},"wsi":{"language":7377},"wsk":{"language":7378},"wsr":{"language":7379},"wss":{"language":7380},"wsu":{"language":7381},"wsv":{"language":7382},"wtf":{"language":7383},"wth":{"language":7384},"wti":{"language":7385},"wtk":{"language":7386},"wtm":{"language":7387},"wtw":{"language":7388},"wua":{"language":7389},"wub":{"language":7390},"wud":{"language":7391},"wuh":{"language":7392},"wul":{"language":7393},"wum":{"language":7394},"wun":{"language":7395},"wur":{"language":7396},"wut":{"language":7397},"wuu":{"language":7398,"extlang":8374},"wuv":{"language":7399},"wux":{"language":7400},"wuy":{"language":7401},"wwa":{"language":7402},"wwb":{"language":7403},"wwo":{"language":7404},"wwr":{"language":7405},"www":{"language":7406},"wxa":{"language":7407},"wxw":{"language":7408},"wya":{"language":7409},"wyb":{"language":7410},"wyi":{"language":7411},"wym":{"language":7412},"wyr":{"language":7413},"wyy":{"language":7414},"xaa":{"language":7415},"xab":{"language":7416},"xac":{"language":7417},"xad":{"language":7418},"xae":{"language":7419},"xag":{"language":7420},"xai":{"language":7421},"xaj":{"language":7422},"xak":{"language":7423},"xal":{"language":7424},"xam":{"language":7425},"xan":{"language":7426},"xao":{"language":7427},"xap":{"language":7428},"xaq":{"language":7429},"xar":{"language":7430},"xas":{"language":7431},"xat":{"language":7432},"xau":{"language":7433},"xav":{"language":7434},"xaw":{"language":7435},"xay":{"language":7436},"xba":{"language":7437},"xbb":{"language":7438},"xbc":{"language":7439},"xbd":{"language":7440},"xbe":{"language":7441},"xbg":{"language":7442},"xbi":{"language":7443},"xbj":{"language":7444},"xbm":{"language":7445},"xbn":{"language":7446},"xbo":{"language":7447},"xbp":{"language":7448},"xbr":{"language":7449},"xbw":{"language":7450},"xbx":{"language":7451},"xby":{"language":7452},"xcb":{"language":7453},"xcc":{"language":7454},"xce":{"language":7455},"xcg":{"language":7456},"xch":{"language":7457},"xcl":{"language":7458},"xcm":{"language":7459},"xcn":{"language":7460},"xco":{"language":7461},"xcr":{"language":7462},"xct":{"language":7463},"xcu":{"language":7464},"xcv":{"language":7465},"xcw":{"language":7466},"xcy":{"language":7467},"xda":{"language":7468},"xdc":{"language":7469},"xdk":{"language":7470},"xdm":{"language":7471},"xdo":{"language":7472},"xdy":{"language":7473},"xeb":{"language":7474},"xed":{"language":7475},"xeg":{"language":7476},"xel":{"language":7477},"xem":{"language":7478},"xep":{"language":7479},"xer":{"language":7480},"xes":{"language":7481},"xet":{"language":7482},"xeu":{"language":7483},"xfa":{"language":7484},"xga":{"language":7485},"xgb":{"language":7486},"xgd":{"language":7487},"xgf":{"language":7488},"xgg":{"language":7489},"xgi":{"language":7490},"xgl":{"language":7491},"xgm":{"language":7492},"xgn":{"language":7493},"xgr":{"language":7494},"xgu":{"language":7495},"xgw":{"language":7496},"xha":{"language":7497},"xhc":{"language":7498},"xhd":{"language":7499},"xhe":{"language":7500},"xhr":{"language":7501},"xht":{"language":7502},"xhu":{"language":7503},"xhv":{"language":7504},"xia":{"language":7505},"xib":{"language":7506},"xii":{"language":7507},"xil":{"language":7508},"xin":{"language":7509},"xip":{"language":7510},"xir":{"language":7511},"xis":{"language":7512},"xiv":{"language":7513},"xiy":{"language":7514},"xjb":{"language":7515},"xjt":{"language":7516},"xka":{"language":7517},"xkb":{"language":7518},"xkc":{"language":7519},"xkd":{"language":7520},"xke":{"language":7521},"xkf":{"language":7522},"xkg":{"language":7523},"xkh":{"language":7524},"xki":{"language":7525,"extlang":8375},"xkj":{"language":7526},"xkk":{"language":7527},"xkl":{"language":7528},"xkn":{"language":7529},"xko":{"language":7530},"xkp":{"language":7531},"xkq":{"language":7532},"xkr":{"language":7533},"xks":{"language":7534},"xkt":{"language":7535},"xku":{"language":7536},"xkv":{"language":7537},"xkw":{"language":7538},"xkx":{"language":7539},"xky":{"language":7540},"xkz":{"language":7541},"xla":{"language":7542},"xlb":{"language":7543},"xlc":{"language":7544},"xld":{"language":7545},"xle":{"language":7546},"xlg":{"language":7547},"xli":{"language":7548},"xln":{"language":7549},"xlo":{"language":7550},"xlp":{"language":7551},"xls":{"language":7552},"xlu":{"language":7553},"xly":{"language":7554},"xma":{"language":7555},"xmb":{"language":7556},"xmc":{"language":7557},"xmd":{"language":7558},"xme":{"language":7559},"xmf":{"language":7560},"xmg":{"language":7561},"xmh":{"language":7562},"xmj":{"language":7563},"xmk":{"language":7564},"xml":{"language":7565,"extlang":8376},"xmm":{"language":7566,"extlang":8377},"xmn":{"language":7567},"xmo":{"language":7568},"xmp":{"language":7569},"xmq":{"language":7570},"xmr":{"language":7571},"xms":{"language":7572,"extlang":8378},"xmt":{"language":7573},"xmu":{"language":7574},"xmv":{"language":7575},"xmw":{"language":7576},"xmx":{"language":7577},"xmy":{"language":7578},"xmz":{"language":7579},"xna":{"language":7580},"xnb":{"language":7581},"xnd":{"language":7582},"xng":{"language":7583},"xnh":{"language":7584},"xni":{"language":7585},"xnk":{"language":7586},"xnn":{"language":7587},"xno":{"language":7588},"xnr":{"language":7589},"xns":{"language":7590},"xnt":{"language":7591},"xnu":{"language":7592},"xny":{"language":7593},"xnz":{"language":7594},"xoc":{"language":7595},"xod":{"language":7596},"xog":{"language":7597},"xoi":{"language":7598},"xok":{"language":7599},"xom":{"language":7600},"xon":{"language":7601},"xoo":{"language":7602},"xop":{"language":7603},"xor":{"language":7604},"xow":{"language":7605},"xpa":{"language":7606},"xpc":{"language":7607},"xpe":{"language":7608},"xpg":{"language":7609},"xpi":{"language":7610},"xpj":{"language":7611},"xpk":{"language":7612},"xpm":{"language":7613},"xpn":{"language":7614},"xpo":{"language":7615},"xpp":{"language":7616},"xpq":{"language":7617},"xpr":{"language":7618},"xps":{"language":7619},"xpt":{"language":7620},"xpu":{"language":7621},"xpy":{"language":7622},"xqa":{"language":7623},"xqt":{"language":7624},"xra":{"language":7625},"xrb":{"language":7626},"xrd":{"language":7627},"xre":{"language":7628},"xrg":{"language":7629},"xri":{"language":7630},"xrm":{"language":7631},"xrn":{"language":7632},"xrq":{"language":7633},"xrr":{"language":7634},"xrt":{"language":7635},"xru":{"language":7636},"xrw":{"language":7637},"xsa":{"language":7638},"xsb":{"language":7639},"xsc":{"language":7640},"xsd":{"language":7641},"xse":{"language":7642},"xsh":{"language":7643},"xsi":{"language":7644},"xsj":{"language":7645},"xsl":{"language":7646},"xsm":{"language":7647},"xsn":{"language":7648},"xso":{"language":7649},"xsp":{"language":7650},"xsq":{"language":7651},"xsr":{"language":7652},"xss":{"language":7653},"xsu":{"language":7654},"xsv":{"language":7655},"xsy":{"language":7656},"xta":{"language":7657},"xtb":{"language":7658},"xtc":{"language":7659},"xtd":{"language":7660},"xte":{"language":7661},"xtg":{"language":7662},"xth":{"language":7663},"xti":{"language":7664},"xtj":{"language":7665},"xtl":{"language":7666},"xtm":{"language":7667},"xtn":{"language":7668},"xto":{"language":7669},"xtp":{"language":7670},"xtq":{"language":7671},"xtr":{"language":7672},"xts":{"language":7673},"xtt":{"language":7674},"xtu":{"language":7675},"xtv":{"language":7676},"xtw":{"language":7677},"xty":{"language":7678},"xtz":{"language":7679},"xua":{"language":7680},"xub":{"language":7681},"xud":{"language":7682},"xug":{"language":7683},"xuj":{"language":7684},"xul":{"language":7685},"xum":{"language":7686},"xun":{"language":7687},"xuo":{"language":7688},"xup":{"language":7689},"xur":{"language":7690},"xut":{"language":7691},"xuu":{"language":7692},"xve":{"language":7693},"xvi":{"language":7694},"xvn":{"language":7695},"xvo":{"language":7696},"xvs":{"language":7697},"xwa":{"language":7698},"xwc":{"language":7699},"xwd":{"language":7700},"xwe":{"language":7701},"xwg":{"language":7702},"xwj":{"language":7703},"xwk":{"language":7704},"xwl":{"language":7705},"xwo":{"language":7706},"xwr":{"language":7707},"xwt":{"language":7708},"xww":{"language":7709},"xxb":{"language":7710},"xxk":{"language":7711},"xxm":{"language":7712},"xxr":{"language":7713},"xxt":{"language":7714},"xya":{"language":7715},"xyb":{"language":7716},"xyj":{"language":7717},"xyk":{"language":7718},"xyl":{"language":7719},"xyt":{"language":7720},"xyy":{"language":7721},"xzh":{"language":7722},"xzm":{"language":7723},"xzp":{"language":7724},"yaa":{"language":7725},"yab":{"language":7726},"yac":{"language":7727},"yad":{"language":7728},"yae":{"language":7729},"yaf":{"language":7730},"yag":{"language":7731},"yah":{"language":7732},"yai":{"language":7733},"yaj":{"language":7734},"yak":{"language":7735},"yal":{"language":7736},"yam":{"language":7737},"yan":{"language":7738},"yao":{"language":7739},"yap":{"language":7740},"yaq":{"language":7741},"yar":{"language":7742},"yas":{"language":7743},"yat":{"language":7744},"yau":{"language":7745},"yav":{"language":7746},"yaw":{"language":7747},"yax":{"language":7748},"yay":{"language":7749},"yaz":{"language":7750},"yba":{"language":7751},"ybb":{"language":7752},"ybd":{"language":7753},"ybe":{"language":7754},"ybh":{"language":7755},"ybi":{"language":7756},"ybj":{"language":7757},"ybk":{"language":7758},"ybl":{"language":7759},"ybm":{"language":7760},"ybn":{"language":7761},"ybo":{"language":7762},"ybx":{"language":7763},"yby":{"language":7764},"ych":{"language":7765},"ycl":{"language":7766},"ycn":{"language":7767},"ycp":{"language":7768},"yda":{"language":7769},"ydd":{"language":7770},"yde":{"language":7771},"ydg":{"language":7772},"ydk":{"language":7773},"yds":{"language":7774,"extlang":8379},"yea":{"language":7775},"yec":{"language":7776},"yee":{"language":7777},"yei":{"language":7778},"yej":{"language":7779},"yel":{"language":7780},"yen":{"language":7781},"yer":{"language":7782},"yes":{"language":7783},"yet":{"language":7784},"yeu":{"language":7785},"yev":{"language":7786},"yey":{"language":7787},"yga":{"language":7788},"ygi":{"language":7789},"ygl":{"language":7790},"ygm":{"language":7791},"ygp":{"language":7792},"ygr":{"language":7793},"ygs":{"language":7794,"extlang":8380},"ygu":{"language":7795},"ygw":{"language":7796},"yha":{"language":7797},"yhd":{"language":7798},"yhl":{"language":7799},"yhs":{"language":7800,"extlang":8381},"yia":{"language":7801},"yif":{"language":7802},"yig":{"language":7803},"yih":{"language":7804},"yii":{"language":7805},"yij":{"language":7806},"yik":{"language":7807},"yil":{"language":7808},"yim":{"language":7809},"yin":{"language":7810},"yip":{"language":7811},"yiq":{"language":7812},"yir":{"language":7813},"yis":{"language":7814},"yit":{"language":7815},"yiu":{"language":7816},"yiv":{"language":7817},"yix":{"language":7818},"yiy":{"language":7819},"yiz":{"language":7820},"yka":{"language":7821},"ykg":{"language":7822},"yki":{"language":7823},"ykk":{"language":7824},"ykl":{"language":7825},"ykm":{"language":7826},"ykn":{"language":7827},"yko":{"language":7828},"ykr":{"language":7829},"ykt":{"language":7830},"yku":{"language":7831},"yky":{"language":7832},"yla":{"language":7833},"ylb":{"language":7834},"yle":{"language":7835},"ylg":{"language":7836},"yli":{"language":7837},"yll":{"language":7838},"ylm":{"language":7839},"yln":{"language":7840},"ylo":{"language":7841},"ylr":{"language":7842},"ylu":{"language":7843},"yly":{"language":7844},"yma":{"language":7845},"ymb":{"language":7846},"ymc":{"language":7847},"ymd":{"language":7848},"yme":{"language":7849},"ymg":{"language":7850},"ymh":{"language":7851},"ymi":{"language":7852},"ymk":{"language":7853},"yml":{"language":7854},"ymm":{"language":7855},"ymn":{"language":7856},"ymo":{"language":7857},"ymp":{"language":7858},"ymq":{"language":7859},"ymr":{"language":7860},"yms":{"language":7861},"ymt":{"language":7862},"ymx":{"language":7863},"ymz":{"language":7864},"yna":{"language":7865},"ynd":{"language":7866},"yne":{"language":7867},"yng":{"language":7868},"ynh":{"language":7869},"ynk":{"language":7870},"ynl":{"language":7871},"ynn":{"language":7872},"yno":{"language":7873},"ynq":{"language":7874},"yns":{"language":7875},"ynu":{"language":7876},"yob":{"language":7877},"yog":{"language":7878},"yoi":{"language":7879},"yok":{"language":7880},"yol":{"language":7881},"yom":{"language":7882},"yon":{"language":7883},"yos":{"language":7884},"yot":{"language":7885},"yox":{"language":7886},"yoy":{"language":7887},"ypa":{"language":7888},"ypb":{"language":7889},"ypg":{"language":7890},"yph":{"language":7891},"ypk":{"language":7892},"ypm":{"language":7893},"ypn":{"language":7894},"ypo":{"language":7895},"ypp":{"language":7896},"ypz":{"language":7897},"yra":{"language":7898},"yrb":{"language":7899},"yre":{"language":7900},"yri":{"language":7901},"yrk":{"language":7902},"yrl":{"language":7903},"yrm":{"language":7904},"yrn":{"language":7905},"yro":{"language":7906},"yrs":{"language":7907},"yrw":{"language":7908},"yry":{"language":7909},"ysc":{"language":7910},"ysd":{"language":7911},"ysg":{"language":7912},"ysl":{"language":7913,"extlang":8382},"ysn":{"language":7914},"yso":{"language":7915},"ysp":{"language":7916},"ysr":{"language":7917},"yss":{"language":7918},"ysy":{"language":7919},"yta":{"language":7920},"ytl":{"language":7921},"ytp":{"language":7922},"ytw":{"language":7923},"yty":{"language":7924},"yua":{"language":7925},"yub":{"language":7926},"yuc":{"language":7927},"yud":{"language":7928},"yue":{"language":7929,"extlang":8383},"yuf":{"language":7930},"yug":{"language":7931},"yui":{"language":7932},"yuj":{"language":7933},"yuk":{"language":7934},"yul":{"language":7935},"yum":{"language":7936},"yun":{"language":7937},"yup":{"language":7938},"yuq":{"language":7939},"yur":{"language":7940},"yut":{"language":7941},"yuu":{"language":7942},"yuw":{"language":7943},"yux":{"language":7944},"yuy":{"language":7945},"yuz":{"language":7946},"yva":{"language":7947},"yvt":{"language":7948},"ywa":{"language":7949},"ywg":{"language":7950},"ywl":{"language":7951},"ywn":{"language":7952},"ywq":{"language":7953},"ywr":{"language":7954},"ywt":{"language":7955},"ywu":{"language":7956},"yww":{"language":7957},"yxa":{"language":7958},"yxg":{"language":7959},"yxl":{"language":7960},"yxm":{"language":7961},"yxu":{"language":7962},"yxy":{"language":7963},"yyr":{"language":7964},"yyu":{"language":7965},"yyz":{"language":7966},"yzg":{"language":7967},"yzk":{"language":7968},"zaa":{"language":7969},"zab":{"language":7970},"zac":{"language":7971},"zad":{"language":7972},"zae":{"language":7973},"zaf":{"language":7974},"zag":{"language":7975},"zah":{"language":7976},"zai":{"language":7977},"zaj":{"language":7978},"zak":{"language":7979},"zal":{"language":7980},"zam":{"language":7981},"zao":{"language":7982},"zap":{"language":7983},"zaq":{"language":7984},"zar":{"language":7985},"zas":{"language":7986},"zat":{"language":7987},"zau":{"language":7988},"zav":{"language":7989},"zaw":{"language":7990},"zax":{"language":7991},"zay":{"language":7992},"zaz":{"language":7993},"zbc":{"language":7994},"zbe":{"language":7995},"zbl":{"language":7996},"zbt":{"language":7997},"zbw":{"language":7998},"zca":{"language":7999},"zch":{"language":8000},"zdj":{"language":8001},"zea":{"language":8002},"zeg":{"language":8003},"zeh":{"language":8004},"zen":{"language":8005},"zga":{"language":8006},"zgb":{"language":8007},"zgh":{"language":8008},"zgm":{"language":8009},"zgn":{"language":8010},"zgr":{"language":8011},"zhb":{"language":8012},"zhd":{"language":8013},"zhi":{"language":8014},"zhn":{"language":8015},"zhw":{"language":8016},"zhx":{"language":8017},"zia":{"language":8018},"zib":{"language":8019,"extlang":8384},"zik":{"language":8020},"zil":{"language":8021},"zim":{"language":8022},"zin":{"language":8023},"zir":{"language":8024},"ziw":{"language":8025},"ziz":{"language":8026},"zka":{"language":8027},"zkb":{"language":8028},"zkd":{"language":8029},"zkg":{"language":8030},"zkh":{"language":8031},"zkk":{"language":8032},"zkn":{"language":8033},"zko":{"language":8034},"zkp":{"language":8035},"zkr":{"language":8036},"zkt":{"language":8037},"zku":{"language":8038},"zkv":{"language":8039},"zkz":{"language":8040},"zle":{"language":8041},"zlj":{"language":8042},"zlm":{"language":8043,"extlang":8385},"zln":{"language":8044},"zlq":{"language":8045},"zls":{"language":8046},"zlw":{"language":8047},"zma":{"language":8048},"zmb":{"language":8049},"zmc":{"language":8050},"zmd":{"language":8051},"zme":{"language":8052},"zmf":{"language":8053},"zmg":{"language":8054},"zmh":{"language":8055},"zmi":{"language":8056,"extlang":8386},"zmj":{"language":8057},"zmk":{"language":8058},"zml":{"language":8059},"zmm":{"language":8060},"zmn":{"language":8061},"zmo":{"language":8062},"zmp":{"language":8063},"zmq":{"language":8064},"zmr":{"language":8065},"zms":{"language":8066},"zmt":{"language":8067},"zmu":{"language":8068},"zmv":{"language":8069},"zmw":{"language":8070},"zmx":{"language":8071},"zmy":{"language":8072},"zmz":{"language":8073},"zna":{"language":8074},"znd":{"language":8075},"zne":{"language":8076},"zng":{"language":8077},"znk":{"language":8078},"zns":{"language":8079},"zoc":{"language":8080},"zoh":{"language":8081},"zom":{"language":8082},"zoo":{"language":8083},"zoq":{"language":8084},"zor":{"language":8085},"zos":{"language":8086},"zpa":{"language":8087},"zpb":{"language":8088},"zpc":{"language":8089},"zpd":{"language":8090},"zpe":{"language":8091},"zpf":{"language":8092},"zpg":{"language":8093},"zph":{"language":8094},"zpi":{"language":8095},"zpj":{"language":8096},"zpk":{"language":8097},"zpl":{"language":8098},"zpm":{"language":8099},"zpn":{"language":8100},"zpo":{"language":8101},"zpp":{"language":8102},"zpq":{"language":8103},"zpr":{"language":8104},"zps":{"language":8105},"zpt":{"language":8106},"zpu":{"language":8107},"zpv":{"language":8108},"zpw":{"language":8109},"zpx":{"language":8110},"zpy":{"language":8111},"zpz":{"language":8112},"zqe":{"language":8113},"zra":{"language":8114},"zrg":{"language":8115},"zrn":{"language":8116},"zro":{"language":8117},"zrp":{"language":8118},"zrs":{"language":8119},"zsa":{"language":8120},"zsk":{"language":8121},"zsl":{"language":8122,"extlang":8387},"zsm":{"language":8123,"extlang":8388},"zsr":{"language":8124},"zsu":{"language":8125},"zte":{"language":8126},"ztg":{"language":8127},"ztl":{"language":8128},"ztm":{"language":8129},"ztn":{"language":8130},"ztp":{"language":8131},"ztq":{"language":8132},"zts":{"language":8133},"ztt":{"language":8134},"ztu":{"language":8135},"ztx":{"language":8136},"zty":{"language":8137},"zua":{"language":8138},"zuh":{"language":8139},"zum":{"language":8140},"zun":{"language":8141},"zuy":{"language":8142},"zwa":{"language":8143},"zxx":{"language":8144},"zyb":{"language":8145},"zyg":{"language":8146},"zyj":{"language":8147},"zyn":{"language":8148},"zyp":{"language":8149},"zza":{"language":8150},"zzj":{"language":8151},"adlm":{"script":8389},"afak":{"script":8390},"aghb":{"script":8391},"ahom":{"script":8392},"arab":{"script":8393},"aran":{"script":8394},"armi":{"script":8395},"armn":{"script":8396},"avst":{"script":8397},"bali":{"script":8398},"bamu":{"script":8399},"bass":{"script":8400},"batk":{"script":8401},"beng":{"script":8402},"bhks":{"script":8403},"blis":{"script":8404},"bopo":{"script":8405},"brah":{"script":8406},"brai":{"script":8407},"bugi":{"script":8408},"buhd":{"script":8409},"cakm":{"script":8410},"cans":{"script":8411},"cari":{"script":8412},"cham":{"script":8413},"cher":{"script":8414},"cirt":{"script":8415},"copt":{"script":8416},"cpmn":{"script":8417},"cprt":{"script":8418},"cyrl":{"script":8419},"cyrs":{"script":8420},"deva":{"script":8421},"dogr":{"script":8422},"dsrt":{"script":8423},"dupl":{"script":8424},"egyd":{"script":8425},"egyh":{"script":8426},"egyp":{"script":8427},"elba":{"script":8428},"elym":{"script":8429},"ethi":{"script":8430},"geok":{"script":8431},"geor":{"script":8432},"glag":{"script":8433},"gong":{"script":8434},"gonm":{"script":8435},"goth":{"script":8436},"gran":{"script":8437},"grek":{"script":8438},"gujr":{"script":8439},"guru":{"script":8440},"hanb":{"script":8441},"hang":{"script":8442},"hani":{"script":8443},"hano":{"script":8444},"hans":{"script":8445},"hant":{"script":8446},"hatr":{"script":8447},"hebr":{"script":8448},"hira":{"script":8449},"hluw":{"script":8450},"hmng":{"script":8451},"hmnp":{"script":8452},"hrkt":{"script":8453},"hung":{"script":8454},"inds":{"script":8455},"ital":{"script":8456},"jamo":{"script":8457},"java":{"script":8458},"jpan":{"script":8459},"jurc":{"script":8460},"kali":{"script":8461},"kana":{"script":8462},"khar":{"script":8463},"khmr":{"script":8464},"khoj":{"script":8465},"kitl":{"script":8466},"kits":{"script":8467},"knda":{"script":8468},"kore":{"script":8469},"kpel":{"script":8470},"kthi":{"script":8471},"lana":{"script":8472},"laoo":{"script":8473},"latf":{"script":8474},"latg":{"script":8475},"latn":{"script":8476},"leke":{"script":8477},"lepc":{"script":8478},"limb":{"script":8479},"lina":{"script":8480},"linb":{"script":8481},"lisu":{"script":8482},"loma":{"script":8483},"lyci":{"script":8484},"lydi":{"script":8485},"mahj":{"script":8486},"maka":{"script":8487},"mand":{"script":8488},"mani":{"script":8489},"marc":{"script":8490},"maya":{"script":8491},"medf":{"script":8492},"mend":{"script":8493},"merc":{"script":8494},"mero":{"script":8495},"mlym":{"script":8496},"modi":{"script":8497},"mong":{"script":8498},"moon":{"script":8499},"mroo":{"script":8500},"mtei":{"script":8501},"mult":{"script":8502},"mymr":{"script":8503},"nand":{"script":8504},"narb":{"script":8505},"nbat":{"script":8506},"newa":{"script":8507},"nkdb":{"script":8508},"nkgb":{"script":8509},"nkoo":{"script":8510},"nshu":{"script":8511},"ogam":{"script":8512},"olck":{"script":8513},"orkh":{"script":8514},"orya":{"script":8515},"osge":{"script":8516},"osma":{"script":8517},"palm":{"script":8518},"pauc":{"script":8519},"perm":{"script":8520},"phag":{"script":8521},"phli":{"script":8522},"phlp":{"script":8523},"phlv":{"script":8524},"phnx":{"script":8525},"piqd":{"script":8526},"plrd":{"script":8527},"prti":{"script":8528},"qaaa..qabx":{"script":8529},"rjng":{"script":8530},"rohg":{"script":8531},"roro":{"script":8532},"runr":{"script":8533},"samr":{"script":8534},"sara":{"script":8535},"sarb":{"script":8536},"saur":{"script":8537},"sgnw":{"script":8538},"shaw":{"script":8539},"shrd":{"script":8540},"shui":{"script":8541},"sidd":{"script":8542},"sind":{"script":8543},"sinh":{"script":8544},"sogd":{"script":8545},"sogo":{"script":8546},"sora":{"script":8547},"soyo":{"script":8548},"sund":{"script":8549},"sylo":{"script":8550},"syrc":{"script":8551},"syre":{"script":8552},"syrj":{"script":8553},"syrn":{"script":8554},"tagb":{"script":8555},"takr":{"script":8556},"tale":{"script":8557},"talu":{"script":8558},"taml":{"script":8559},"tang":{"script":8560},"tavt":{"script":8561},"telu":{"script":8562},"teng":{"script":8563},"tfng":{"script":8564},"tglg":{"script":8565},"thaa":{"script":8566},"thai":{"script":8567},"tibt":{"script":8568},"tirh":{"script":8569},"ugar":{"script":8570},"vaii":{"script":8571},"visp":{"script":8572},"wara":{"script":8573},"wcho":{"script":8574},"wole":{"script":8575},"xpeo":{"script":8576},"xsux":{"script":8577},"yiii":{"script":8578},"zanb":{"script":8579},"zinh":{"script":8580},"zmth":{"script":8581},"zsye":{"script":8582},"zsym":{"script":8583},"zxxx":{"script":8584},"zyyy":{"script":8585},"zzzz":{"script":8586},"ac":{"region":8588},"ad":{"region":8589},"ag":{"region":8592},"ai":{"region":8593},"al":{"region":8594},"ao":{"region":8597},"aq":{"region":8598},"at":{"region":8601},"au":{"region":8602},"aw":{"region":8603},"ax":{"region":8604},"bb":{"region":8607},"bd":{"region":8608},"bf":{"region":8610},"bj":{"region":8614},"bl":{"region":8615},"bq":{"region":8619},"bt":{"region":8622},"bu":{"region":8623},"bv":{"region":8624},"bw":{"region":8625},"by":{"region":8626},"bz":{"region":8627},"cc":{"region":8629},"cd":{"region":8630},"cf":{"region":8631},"cg":{"region":8632},"ci":{"region":8634},"ck":{"region":8635},"cl":{"region":8636},"cm":{"region":8637},"cn":{"region":8638},"cp":{"region":8640},"cw":{"region":8645},"cx":{"region":8646},"cz":{"region":8648},"dd":{"region":8649},"dg":{"region":8651},"dj":{"region":8652},"dk":{"region":8653},"dm":{"region":8654},"do":{"region":8655},"ea":{"region":8657},"ec":{"region":8658},"eg":{"region":8660},"eh":{"region":8661},"er":{"region":8662},"ez":{"region":8666},"fk":{"region":8669},"fm":{"region":8670},"fx":{"region":8673},"gb":{"region":8675},"ge":{"region":8677},"gf":{"region":8678},"gg":{"region":8679},"gh":{"region":8680},"gi":{"region":8681},"gm":{"region":8683},"gp":{"region":8685},"gq":{"region":8686},"gr":{"region":8687},"gs":{"region":8688},"gt":{"region":8689},"gw":{"region":8691},"gy":{"region":8692},"hk":{"region":8693},"hm":{"region":8694},"hn":{"region":8695},"ic":{"region":8699},"il":{"region":8702},"im":{"region":8703},"iq":{"region":8706},"ir":{"region":8707},"je":{"region":8710},"jm":{"region":8711},"jo":{"region":8712},"jp":{"region":8713},"ke":{"region":8714},"kh":{"region":8716},"kp":{"region":8720},"kz":{"region":8724},"lc":{"region":8727},"lk":{"region":8729},"lr":{"region":8730},"ls":{"region":8731},"ly":{"region":8735},"ma":{"region":8736},"mc":{"region":8737},"md":{"region":8738},"me":{"region":8739},"mf":{"region":8740},"mm":{"region":8745},"mp":{"region":8748},"mq":{"region":8749},"mu":{"region":8753},"mv":{"region":8754},"mw":{"region":8755},"mx":{"region":8756},"mz":{"region":8758},"nc":{"region":8760},"nf":{"region":8762},"ni":{"region":8764},"np":{"region":8767},"nt":{"region":8769},"nu":{"region":8770},"nz":{"region":8771},"pe":{"region":8774},"pf":{"region":8775},"pg":{"region":8776},"ph":{"region":8777},"pk":{"region":8778},"pm":{"region":8780},"pn":{"region":8781},"pr":{"region":8782},"pw":{"region":8785},"py":{"region":8786},"qa":{"region":8787},"qm..qz":{"region":8788},"re":{"region":8789},"rs":{"region":8791},"sb":{"region":8795},"sj":{"region":8802},"sx":{"region":8813},"sy":{"region":8814},"sz":{"region":8815},"tc":{"region":8817},"td":{"region":8818},"tf":{"region":8819},"tj":{"region":8822},"tm":{"region":8825},"tp":{"region":8828},"tv":{"region":8831},"tz":{"region":8833},"ua":{"region":8834},"um":{"region":8836},"un":{"region":8837},"us":{"region":8838},"uy":{"region":8839},"va":{"region":8841},"vc":{"region":8842},"vg":{"region":8844},"vn":{"region":8846},"vu":{"region":8847},"wf":{"region":8848},"ws":{"region":8849},"xa..xz":{"region":8850},"yd":{"region":8851},"ye":{"region":8852},"yt":{"region":8853},"yu":{"region":8854},"zm":{"region":8856},"zr":{"region":8857},"zw":{"region":8858},"zz":{"region":8859},"001":{"region":8860},"002":{"region":8861},"003":{"region":8862},"005":{"region":8863},"009":{"region":8864},"011":{"region":8865},"013":{"region":8866},"014":{"region":8867},"015":{"region":8868},"017":{"region":8869},"018":{"region":8870},"019":{"region":8871},"021":{"region":8872},"029":{"region":8873},"030":{"region":8874},"034":{"region":8875},"035":{"region":8876},"039":{"region":8877},"053":{"region":8878},"054":{"region":8879},"057":{"region":8880},"061":{"region":8881},"1606nict":{"variant":8891},"1694acad":{"variant":8892},"1959acad":{"variant":8894},"abl1943":{"variant":8897},"alalc97":{"variant":8898},"aluku":{"variant":8899},"akuapem":{"variant":8900},"ao1990":{"variant":8901},"aranes":{"variant":8902},"arevela":{"variant":8903},"arevmda":{"variant":8904},"asante":{"variant":8905},"auvern":{"variant":8906},"baku1926":{"variant":8907},"balanka":{"variant":8908},"barla":{"variant":8909},"basiceng":{"variant":8910},"bauddha":{"variant":8911},"biscayan":{"variant":8912},"biske":{"variant":8913},"bohoric":{"variant":8914},"boont":{"variant":8915},"bornholm":{"variant":8916},"cisaup":{"variant":8917},"colb1945":{"variant":8918},"cornu":{"variant":8919},"creiss":{"variant":8920},"dajnko":{"variant":8921},"ekavsk":{"variant":8922},"emodeng":{"variant":8923},"fonipa":{"variant":8924},"fonkirsh":{"variant":8925},"fonnapa":{"variant":8926},"fonupa":{"variant":8927},"fonxsamp":{"variant":8928},"gascon":{"variant":8929},"grclass":{"variant":8930},"grital":{"variant":8931},"grmistr":{"variant":8932},"hepburn":{"variant":8933},"heploc":{"variant":8934},"hognorsk":{"variant":8935},"hsistemo":{"variant":8936},"ijekavsk":{"variant":8937},"itihasa":{"variant":8938},"ivanchov":{"variant":8939},"jauer":{"variant":8940},"jyutping":{"variant":8941},"kkcor":{"variant":8942},"kociewie":{"variant":8943},"kscor":{"variant":8944},"laukika":{"variant":8945},"lemosin":{"variant":8946},"lengadoc":{"variant":8947},"lipaw":{"variant":8948},"luna1918":{"variant":8949},"metelko":{"variant":8950},"monoton":{"variant":8951},"ndyuka":{"variant":8952},"nedis":{"variant":8953},"newfound":{"variant":8954},"nicard":{"variant":8955},"njiva":{"variant":8956},"nulik":{"variant":8957},"osojs":{"variant":8958},"oxendict":{"variant":8959},"pahawh2":{"variant":8960},"pahawh3":{"variant":8961},"pahawh4":{"variant":8962},"pamaka":{"variant":8963},"petr1708":{"variant":8964},"pinyin":{"variant":8965},"polyton":{"variant":8966},"provenc":{"variant":8967},"puter":{"variant":8968},"rigik":{"variant":8969},"rozaj":{"variant":8970},"rumgr":{"variant":8971},"scotland":{"variant":8972},"scouse":{"variant":8973},"simple":{"variant":8974},"solba":{"variant":8975},"sotav":{"variant":8976},"spanglis":{"variant":8977},"surmiran":{"variant":8978},"sursilv":{"variant":8979},"sutsilv":{"variant":8980},"tarask":{"variant":8981},"uccor":{"variant":8982},"ucrcor":{"variant":8983},"ulster":{"variant":8984},"unifon":{"variant":8985},"vaidika":{"variant":8986},"valencia":{"variant":8987},"vallader":{"variant":8988},"vivaraup":{"variant":8989},"wadegile":{"variant":8990},"xsistemo":{"variant":8991},"art-lojban":{"grandfathered":8992},"cel-gaulish":{"grandfathered":8993},"en-gb-oed":{"grandfathered":8994},"i-ami":{"grandfathered":8995},"i-bnn":{"grandfathered":8996},"i-default":{"grandfathered":8997},"i-enochian":{"grandfathered":8998},"i-hak":{"grandfathered":8999},"i-klingon":{"grandfathered":9000},"i-lux":{"grandfathered":9001},"i-mingo":{"grandfathered":9002},"i-navajo":{"grandfathered":9003},"i-pwn":{"grandfathered":9004},"i-tao":{"grandfathered":9005},"i-tay":{"grandfathered":9006},"i-tsu":{"grandfathered":9007},"no-bok":{"grandfathered":9008},"no-nyn":{"grandfathered":9009},"sgn-be-fr":{"grandfathered":9010},"sgn-be-nl":{"grandfathered":9011},"sgn-ch-de":{"grandfathered":9012},"zh-guoyu":{"grandfathered":9013},"zh-hakka":{"grandfathered":9014},"zh-min":{"grandfathered":9015},"zh-min-nan":{"grandfathered":9016},"zh-xiang":{"grandfathered":9017},"az-arab":{"redundant":9018},"az-cyrl":{"redundant":9019},"az-latn":{"redundant":9020},"be-latn":{"redundant":9021},"bs-cyrl":{"redundant":9022},"bs-latn":{"redundant":9023},"de-1901":{"redundant":9024},"de-1996":{"redundant":9025},"de-at-1901":{"redundant":9026},"de-at-1996":{"redundant":9027},"de-ch-1901":{"redundant":9028},"de-ch-1996":{"redundant":9029},"de-de-1901":{"redundant":9030},"de-de-1996":{"redundant":9031},"en-boont":{"redundant":9032},"en-scouse":{"redundant":9033},"es-419":{"redundant":9034},"iu-cans":{"redundant":9035},"iu-latn":{"redundant":9036},"mn-cyrl":{"redundant":9037},"mn-mong":{"redundant":9038},"sgn-br":{"redundant":9039},"sgn-co":{"redundant":9040},"sgn-de":{"redundant":9041},"sgn-dk":{"redundant":9042},"sgn-es":{"redundant":9043},"sgn-fr":{"redundant":9044},"sgn-gb":{"redundant":9045},"sgn-gr":{"redundant":9046},"sgn-ie":{"redundant":9047},"sgn-it":{"redundant":9048},"sgn-jp":{"redundant":9049},"sgn-mx":{"redundant":9050},"sgn-ni":{"redundant":9051},"sgn-nl":{"redundant":9052},"sgn-no":{"redundant":9053},"sgn-pt":{"redundant":9054},"sgn-se":{"redundant":9055},"sgn-us":{"redundant":9056},"sgn-za":{"redundant":9057},"sl-nedis":{"redundant":9058},"sl-rozaj":{"redundant":9059},"sr-cyrl":{"redundant":9060},"sr-latn":{"redundant":9061},"tg-arab":{"redundant":9062},"tg-cyrl":{"redundant":9063},"uz-cyrl":{"redundant":9064},"uz-latn":{"redundant":9065},"yi-latn":{"redundant":9066},"zh-cmn":{"redundant":9067},"zh-cmn-hans":{"redundant":9068},"zh-cmn-hant":{"redundant":9069},"zh-gan":{"redundant":9070},"zh-hans":{"redundant":9071},"zh-hans-cn":{"redundant":9072},"zh-hans-hk":{"redundant":9073},"zh-hans-mo":{"redundant":9074},"zh-hans-sg":{"redundant":9075},"zh-hans-tw":{"redundant":9076},"zh-hant":{"redundant":9077},"zh-hant-cn":{"redundant":9078},"zh-hant-hk":{"redundant":9079},"zh-hant-mo":{"redundant":9080},"zh-hant-sg":{"redundant":9081},"zh-hant-tw":{"redundant":9082},"zh-wuu":{"redundant":9083},"zh-yue":{"redundant":9084}}')},3702:function(e,a,n){var g=n("481b"),t=n("5168")("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(g.Array===e||i[t]===e)}},3846:function(e,a,n){n("9e1e")&&"g"!=/./g.flags&&n("86cc").f(RegExp.prototype,"flags",{configurable:!0,get:n("0bfb")})},3899:function(e,a,n){},"38fd":function(e,a,n){var g=n("69a8"),t=n("4bf8"),i=n("613b")("IE_PROTO"),u=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=t(e),g(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},"3a38":function(e,a){var n=Math.ceil,g=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?g:n)(e)}},"3b2b":function(e,a,n){var g=n("7726"),t=n("5dbc"),i=n("86cc").f,u=n("9093").f,r=n("aae3"),d=n("0bfb"),o=g.RegExp,l=o,p=o.prototype,s=/a/g,c=/a/g,b=new o(s)!==s;if(n("9e1e")&&(!b||n("79e5")((function(){return c[n("2b4c")("match")]=!1,o(s)!=s||o(c)==c||"/a/i"!=o(s,"i")})))){o=function(e,a){var n=this instanceof o,g=r(e),i=void 0===a;return!n&&g&&e.constructor===o&&i?e:t(b?new l(g&&!i?e.source:e,a):l((g=e instanceof o)?e.source:e,g&&i?d.call(e):a),n?this:p,o)};for(var y=function(e){e in o||i(o,e,{configurable:!0,get:function(){return l[e]},set:function(a){l[e]=a}})},S=u(l),h=0;S.length>h;)y(S[h++]);p.constructor=o,o.prototype=p,n("2aba")(g,"RegExp",o)}n("7a56")("RegExp")},"3b62":function(e,a,n){"use strict";var g=n("252a"),t=n.n(g);t.a},"3b8d":function(e,a,n){"use strict";n.d(a,"a",(function(){return u}));var g=n("795b"),t=n.n(g);function i(e,a,n,g,i,u,r){try{var d=e[u](r),o=d.value}catch(l){return void n(l)}d.done?a(o):t.a.resolve(o).then(g,i)}function u(e){return function(){var a=this,n=arguments;return new t.a((function(g,t){var u=e.apply(a,n);function r(e){i(u,g,t,r,d,"next",e)}function d(e){i(u,g,t,r,d,"throw",e)}r(void 0)}))}}},"3c11":function(e,a,n){"use strict";var g=n("63b6"),t=n("584a"),i=n("e53d"),u=n("f201"),r=n("cd78");g(g.P+g.R,"Promise",{finally:function(e){var a=u(this,t.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return r(a,e()).then((function(){return n}))}:e,n?function(n){return r(a,e()).then((function(){throw n}))}:e)}})},"3c43":function(e,a){a.endianness=function(){return"LE"},a.hostname=function(){return"undefined"!==typeof location?location.hostname:""},a.loadavg=function(){return[]},a.uptime=function(){return 0},a.freemem=function(){return Number.MAX_VALUE},a.totalmem=function(){return Number.MAX_VALUE},a.cpus=function(){return[]},a.type=function(){return"Browser"},a.release=function(){return"undefined"!==typeof navigator?navigator.appVersion:""},a.networkInterfaces=a.getNetworkInterfaces=function(){return{}},a.arch=function(){return"javascript"},a.platform=function(){return"browser"},a.tmpdir=a.tmpDir=function(){return"/tmp"},a.EOL="\n",a.homedir=function(){return"/"}},"3c7e":function(e,a,n){"use strict";const g=/^\s+|\s+$/g,t=/\s+/g;function i(e){return"string"===typeof e?e.replace(g,"").split(t):e}function u(e){return p(e)?(e.getAttribute("class")||"").replace(g,"").split(t):[]}function r(e,a){p(e)&&e.setAttribute("class",i(a).join(" "))}function d(e,a){const n=o(e,a),g=i(a);return n.push.apply(n,g),r(e,n),n}function o(e,a){const n=u(e),g=i(a);return g.forEach(e=>{const a=n.indexOf(e);-1!==a&&n.splice(a,1)}),r(e,n),n}function l(e,a){const n=u(e),g=i(a);return g.every(e=>{return-1!==n.indexOf(e)})}function p(e){const a="object"===typeof HTMLElement;return a?e instanceof HTMLElement:s(e)}function s(e){return e&&"object"===typeof e&&"string"===typeof e.nodeName&&1===e.nodeType}a["a"]={add:d,remove:o,contains:l,has:l,set:r,get:u}},"3d34":function(e,a,n){"use strict";var g=n("f34b"),t=n.n(g);t.a},"3d86":function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("label",{staticClass:"ui-checkbox",class:e.classes},[n("input",{ref:"input",staticClass:"ui-checkbox__input",attrs:{type:"checkbox",disabled:e.disabled,name:e.name,tabindex:e.tabindex},domProps:{checked:e.isChecked,value:e.submittedValue},on:{blur:e.onBlur,click:e.onClick,focus:e.onFocus}}),e._m(0),e.label||e.$slots.default?n("div",{staticClass:"ui-checkbox__label-text"},[e._t("default",[e._v(e._s(e.label))])],2):e._e()])},t=[function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"ui-checkbox__checkmark"},[n("div",{staticClass:"ui-checkbox__checkmark-background"}),n("div",{staticClass:"ui-checkbox__focus-ring"})])}],i=(n("c5f6"),{name:"ui-checkbox",props:{name:String,label:String,tabindex:[String,Number],value:{required:!0},trueValue:{default:!0},falseValue:{default:!1},submittedValue:{type:String,default:"on"},checked:{type:Boolean,default:!1},boxPosition:{type:String,default:"left"},color:{type:String,default:"primary"},disabled:{type:Boolean,default:!1}},data:function(){return{isActive:!1,isChecked:this.value===this.trueValue||this.checked}},computed:{classes:function(){return["ui-checkbox--color-".concat(this.color),"ui-checkbox--box-position-".concat(this.boxPosition),{"is-checked":this.isChecked},{"is-active":this.isActive},{"is-disabled":this.disabled}]}},watch:{value:function(){this.isChecked=this.value===this.trueValue}},created:function(){this.$emit("input",this.isChecked?this.trueValue:this.falseValue)},methods:{focus:function(){this.$refs.input.focus()},onClick:function(e){var a=this.isChecked,n=e.target.checked;this.$emit("input",n?this.trueValue:this.falseValue,e),a!==n&&this.$emit("change",n?this.trueValue:this.falseValue,e)},onFocus:function(e){this.isActive=!0,this.$emit("focus",e)},onBlur:function(e){this.isActive=!1,this.$emit("blur",e)}}}),u=i,r=(n("2e6f"),n("2877")),d=Object(r["a"])(u,g,t,!1,null,null,null);a["a"]=d.exports},"3e88":function(e,a,n){},"3f33":function(e,a,n){"use strict";function g(e){return null!==e&&"object"===typeof e}function t(e,a){return e==a||!(!g(e)||!g(a))&&JSON.stringify(e)===JSON.stringify(a)}function i(e,a){for(let n=0;n0){for(i+=u,a=1;an)throw Error(S+e)}function N(e,a,n,g){var t,i,u,r;for(i=e[0];i>=10;i/=10)--a;return--a<0?(a+=x,t=0):(t=Math.ceil((a+1)/x),a%=x),i=m(10,x-a),r=e[t]%i|0,null==g?a<3?(0==a?r=r/100|0:1==a&&(r=r/10|0),u=n<4&&99999==r||n>3&&49999==r||5e4==r||0==r):u=(n<4&&r+1==i||n>3&&r+1==i/2)&&(e[t+1]/i/100|0)==m(10,a-2)-1||(r==i/2||0==r)&&0==(e[t+1]/i/100|0):a<4?(0==a?r=r/1e3|0:1==a?r=r/100|0:2==a&&(r=r/10|0),u=(g||n<4)&&9999==r||!g&&n>3&&4999==r):u=((g||n<4)&&r+1==i||!g&&n>3&&r+1==i/2)&&(e[t+1]/i/1e3|0)==m(10,a-3)-1,u}function _(e,a,n){for(var g,t,i=[0],u=0,r=e.length;un-1&&(void 0===i[g+1]&&(i[g+1]=0),i[g+1]+=i[g]/n|0,i[g]%=n)}return i.reverse()}function E(e,a){var n,g,t=a.d.length;t<32?(n=Math.ceil(t/3),g=(1/ee(4,n)).toString()):(n=16,g="2.3283064365386962890625e-10"),e.precision+=n,a=Q(e,1,a.times(g),new e(1));for(var i=n;i--;){var u=a.times(a);a=u.times(u).minus(u).times(8).plus(1)}return e.precision-=n,a}C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)},C.ceil=function(){return O(new this.constructor(this),this.e+1,2)},C.comparedTo=C.cmp=function(e){var a,n,g,t,i=this,u=i.d,r=(e=new i.constructor(e)).d,d=i.s,o=e.s;if(!u||!r)return d&&o?d!==o?d:u===r?0:!u^d<0?1:-1:NaN;if(!u[0]||!r[0])return u[0]?d:r[0]?-o:0;if(d!==o)return d;if(i.e!==e.e)return i.e>e.e^d<0?1:-1;for(g=u.length,t=r.length,a=0,n=gr[a]^d<0?1:-1;return g===t?0:g>t^d<0?1:-1},C.cosine=C.cos=function(){var e,a,n=this,g=n.constructor;return n.d?n.d[0]?(e=g.precision,a=g.rounding,g.precision=e+Math.max(n.e,n.sd())+x,g.rounding=1,n=E(g,ae(g,n)),g.precision=e,g.rounding=a,O(2==r||3==r?n.neg():n,e,a,!0)):new g(1):new g(NaN)},C.cubeRoot=C.cbrt=function(){var e,a,n,g,t,i,u,r,d,o,l=this,p=l.constructor;if(!l.isFinite()||l.isZero())return new p(l);for(b=!1,i=l.s*m(l.s*l,1/3),i&&Math.abs(i)!=1/0?g=new p(i.toString()):(n=P(l.d),e=l.e,(i=(e-n.length+1)%3)&&(n+=1==i||-2==i?"0":"00"),i=m(n,1/3),e=T((e+1)/3)-(e%3==(e<0?-1:2)),i==1/0?n="5e"+e:(n=i.toExponential(),n=n.slice(0,n.indexOf("e")+1)+e),g=new p(n),g.s=l.s),u=(e=p.precision)+3;;)if(r=g,d=r.times(r).times(r),o=d.plus(l),g=B(o.plus(l).times(r),o.plus(d),u+2,1),P(r.d).slice(0,u)===(n=P(g.d)).slice(0,u)){if(n=n.slice(u-3,u+1),"9999"!=n&&(t||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(O(g,e+1,1),a=!g.times(g).times(g).eq(l));break}if(!t&&(O(r,e+1,0),r.times(r).times(r).eq(l))){g=r;break}u+=4,t=1}return b=!0,O(g,e,p.rounding,a)},C.decimalPlaces=C.dp=function(){var e,a=this.d,n=NaN;if(a){if(e=a.length-1,n=(e-T(this.e/x))*x,e=a[e],e)for(;e%10==0;e/=10)n--;n<0&&(n=0)}return n},C.dividedBy=C.div=function(e){return B(this,new this.constructor(e))},C.dividedToIntegerBy=C.divToInt=function(e){var a=this,n=a.constructor;return O(B(a,new n(e),0,1,1),n.precision,n.rounding)},C.equals=C.eq=function(e){return 0===this.cmp(e)},C.floor=function(){return O(new this.constructor(this),this.e+1,3)},C.greaterThan=C.gt=function(e){return this.cmp(e)>0},C.greaterThanOrEqualTo=C.gte=function(e){var a=this.cmp(e);return 1==a||0===a},C.hyperbolicCosine=C.cosh=function(){var e,a,n,g,t,i=this,u=i.constructor,r=new u(1);if(!i.isFinite())return new u(i.s?1/0:NaN);if(i.isZero())return r;n=u.precision,g=u.rounding,u.precision=n+Math.max(i.e,i.sd())+4,u.rounding=1,t=i.d.length,t<32?(e=Math.ceil(t/3),a=(1/ee(4,e)).toString()):(e=16,a="2.3283064365386962890625e-10"),i=Q(u,1,i.times(a),new u(1),!0);for(var d,o=e,l=new u(8);o--;)d=i.times(i),i=r.minus(d.times(l.minus(d.times(l))));return O(i,u.precision=n,u.rounding=g,!0)},C.hyperbolicSine=C.sinh=function(){var e,a,n,g,t=this,i=t.constructor;if(!t.isFinite()||t.isZero())return new i(t);if(a=i.precision,n=i.rounding,i.precision=a+Math.max(t.e,t.sd())+4,i.rounding=1,g=t.d.length,g<3)t=Q(i,2,t,t,!0);else{e=1.4*Math.sqrt(g),e=e>16?16:0|e,t=t.times(1/ee(5,e)),t=Q(i,2,t,t,!0);for(var u,r=new i(5),d=new i(16),o=new i(20);e--;)u=t.times(t),t=t.times(r.plus(u.times(d.times(u).plus(o))))}return i.precision=a,i.rounding=n,O(t,a,n,!0)},C.hyperbolicTangent=C.tanh=function(){var e,a,n=this,g=n.constructor;return n.isFinite()?n.isZero()?new g(n):(e=g.precision,a=g.rounding,g.precision=e+7,g.rounding=1,B(n.sinh(),n.cosh(),g.precision=e,g.rounding=a)):new g(n.s)},C.inverseCosine=C.acos=function(){var e,a=this,n=a.constructor,g=a.abs().cmp(1),t=n.precision,i=n.rounding;return-1!==g?0===g?a.isNeg()?R(n,t,i):new n(0):new n(NaN):a.isZero()?R(n,t+4,i).times(.5):(n.precision=t+6,n.rounding=1,a=a.asin(),e=R(n,t+4,i).times(.5),n.precision=t,n.rounding=i,e.minus(a))},C.inverseHyperbolicCosine=C.acosh=function(){var e,a,n=this,g=n.constructor;return n.lte(1)?new g(n.eq(1)?0:NaN):n.isFinite()?(e=g.precision,a=g.rounding,g.precision=e+Math.max(Math.abs(n.e),n.sd())+4,g.rounding=1,b=!1,n=n.times(n).minus(1).sqrt().plus(n),b=!0,g.precision=e,g.rounding=a,n.ln()):new g(n)},C.inverseHyperbolicSine=C.asinh=function(){var e,a,n=this,g=n.constructor;return!n.isFinite()||n.isZero()?new g(n):(e=g.precision,a=g.rounding,g.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,g.rounding=1,b=!1,n=n.times(n).plus(1).sqrt().plus(n),b=!0,g.precision=e,g.rounding=a,n.ln())},C.inverseHyperbolicTangent=C.atanh=function(){var e,a,n,g,t=this,i=t.constructor;return t.isFinite()?t.e>=0?new i(t.abs().eq(1)?t.s/0:t.isZero()?t:NaN):(e=i.precision,a=i.rounding,g=t.sd(),Math.max(g,e)<2*-t.e-1?O(new i(t),e,a,!0):(i.precision=n=g-t.e,t=B(t.plus(1),new i(1).minus(t),n+e,1),i.precision=e+4,i.rounding=1,t=t.ln(),i.precision=e,i.rounding=a,t.times(.5))):new i(NaN)},C.inverseSine=C.asin=function(){var e,a,n,g,t=this,i=t.constructor;return t.isZero()?new i(t):(a=t.abs().cmp(1),n=i.precision,g=i.rounding,-1!==a?0===a?(e=R(i,n+4,g).times(.5),e.s=t.s,e):new i(NaN):(i.precision=n+6,i.rounding=1,t=t.div(new i(1).minus(t.times(t)).sqrt().plus(1)).atan(),i.precision=n,i.rounding=g,t.times(2)))},C.inverseTangent=C.atan=function(){var e,a,n,g,t,i,u,r,d,o=this,l=o.constructor,p=l.precision,s=l.rounding;if(o.isFinite()){if(o.isZero())return new l(o);if(o.abs().eq(1)&&p+4<=z)return u=R(l,p+4,s).times(.25),u.s=o.s,u}else{if(!o.s)return new l(NaN);if(p+4<=z)return u=R(l,p+4,s).times(.5),u.s=o.s,u}for(l.precision=r=p+10,l.rounding=1,n=Math.min(28,r/x+2|0),e=n;e;--e)o=o.div(o.times(o).plus(1).sqrt().plus(1));for(b=!1,a=Math.ceil(r/x),g=1,d=o.times(o),u=new l(o),t=o;-1!==e;)if(t=t.times(d),i=u.minus(t.div(g+=2)),t=t.times(d),u=i.plus(t.div(g+=2)),void 0!==u.d[a])for(e=a;u.d[e]===i.d[e]&&e--;);return n&&(u=u.times(2<this.d.length-2},C.isNaN=function(){return!this.s},C.isNegative=C.isNeg=function(){return this.s<0},C.isPositive=C.isPos=function(){return this.s>0},C.isZero=function(){return!!this.d&&0===this.d[0]},C.lessThan=C.lt=function(e){return this.cmp(e)<0},C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1},C.logarithm=C.log=function(e){var a,n,g,t,i,u,r,d,o=this,l=o.constructor,p=l.precision,s=l.rounding,c=5;if(null==e)e=new l(10),a=!0;else{if(e=new l(e),n=e.d,e.s<0||!n||!n[0]||e.eq(1))return new l(NaN);a=e.eq(10)}if(n=o.d,o.s<0||!n||!n[0]||o.eq(1))return new l(n&&!n[0]?-1/0:1!=o.s?NaN:n?0:1/0);if(a)if(n.length>1)i=!0;else{for(t=n[0];t%10===0;)t/=10;i=1!==t}if(b=!1,r=p+c,u=$(o,r),g=a?I(l,r+10):$(e,r),d=B(u,g,r,1),N(d.d,t=p,s))do{if(r+=10,u=$(o,r),g=a?I(l,r+10):$(e,r),d=B(u,g,r,1),!i){+P(d.d).slice(t+1,t+15)+1==1e14&&(d=O(d,p+1,0));break}}while(N(d.d,t+=10,s));return b=!0,O(d,p,s)},C.minus=C.sub=function(e){var a,n,g,t,i,u,r,d,o,l,p,s,c=this,y=c.constructor;if(e=new y(e),!c.d||!e.d)return c.s&&e.s?c.d?e.s=-e.s:e=new y(e.d||c.s!==e.s?c:NaN):e=new y(NaN),e;if(c.s!=e.s)return e.s=-e.s,c.plus(e);if(o=c.d,s=e.d,r=y.precision,d=y.rounding,!o[0]||!s[0]){if(s[0])e.s=-e.s;else{if(!o[0])return new y(3===d?-0:0);e=new y(c)}return b?O(e,r,d):e}if(n=T(e.e/x),l=T(c.e/x),o=o.slice(),i=l-n,i){for(p=i<0,p?(a=o,i=-i,u=s.length):(a=s,n=l,u=o.length),g=Math.max(Math.ceil(r/x),u)+2,i>g&&(i=g,a.length=1),a.reverse(),g=i;g--;)a.push(0);a.reverse()}else{for(g=o.length,u=s.length,p=g0;--g)o[u++]=0;for(g=s.length;g>i;){if(o[--g]u?i+1:u+1,t>u&&(t=u,n.length=1),n.reverse();t--;)n.push(0);n.reverse()}for(u=o.length,t=l.length,u-t<0&&(t=u,n=l,l=o,o=n),a=0;t;)a=(o[--t]=o[t]+l[t]+a)/w|0,o[t]%=w;for(a&&(o.unshift(a),++g),u=o.length;0==o[--u];)o.pop();return e.d=o,e.e=q(o,g),b?O(e,r,d):e},C.precision=C.sd=function(e){var a,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(S+e);return n.d?(a=H(n.d),e&&n.e+1>a&&(a=n.e+1)):a=NaN,a},C.round=function(){var e=this,a=e.constructor;return O(new a(e),e.e+1,a.rounding)},C.sine=C.sin=function(){var e,a,n=this,g=n.constructor;return n.isFinite()?n.isZero()?new g(n):(e=g.precision,a=g.rounding,g.precision=e+Math.max(n.e,n.sd())+x,g.rounding=1,n=X(g,ae(g,n)),g.precision=e,g.rounding=a,O(r>2?n.neg():n,e,a,!0)):new g(NaN)},C.squareRoot=C.sqrt=function(){var e,a,n,g,t,i,u=this,r=u.d,d=u.e,o=u.s,l=u.constructor;if(1!==o||!r||!r[0])return new l(!o||o<0&&(!r||r[0])?NaN:r?u:1/0);for(b=!1,o=Math.sqrt(+u),0==o||o==1/0?(a=P(r),(a.length+d)%2==0&&(a+="0"),o=Math.sqrt(a),d=T((d+1)/2)-(d<0||d%2),o==1/0?a="5e"+d:(a=o.toExponential(),a=a.slice(0,a.indexOf("e")+1)+d),g=new l(a)):g=new l(o.toString()),n=(d=l.precision)+3;;)if(i=g,g=i.plus(B(u,i,n+2,1)).times(.5),P(i.d).slice(0,n)===(a=P(g.d)).slice(0,n)){if(a=a.slice(n-3,n+1),"9999"!=a&&(t||"4999"!=a)){+a&&(+a.slice(1)||"5"!=a.charAt(0))||(O(g,d+1,1),e=!g.times(g).eq(u));break}if(!t&&(O(i,d+1,0),i.times(i).eq(u))){g=i;break}n+=4,t=1}return b=!0,O(g,d,l.rounding,e)},C.tangent=C.tan=function(){var e,a,n=this,g=n.constructor;return n.isFinite()?n.isZero()?new g(n):(e=g.precision,a=g.rounding,g.precision=e+10,g.rounding=1,n=n.sin(),n.s=1,n=B(n,new g(1).minus(n.times(n)).sqrt(),e+10,0),g.precision=e,g.rounding=a,O(2==r||4==r?n.neg():n,e,a,!0)):new g(NaN)},C.times=C.mul=function(e){var a,n,g,t,i,u,r,d,o,l=this,p=l.constructor,s=l.d,c=(e=new p(e)).d;if(e.s*=l.s,!s||!s[0]||!c||!c[0])return new p(!e.s||s&&!s[0]&&!c||c&&!c[0]&&!s?NaN:s&&c?0*e.s:e.s/0);for(n=T(l.e/x)+T(e.e/x),d=s.length,o=c.length,d=0;){for(a=0,t=d+g;t>g;)r=i[t]+c[g]*s[t-g-1]+a,i[t--]=r%w|0,a=r/w|0;i[t]=(i[t]+a)%w|0}for(;!i[--u];)i.pop();return a?++n:i.shift(),e.d=i,e.e=q(i,n),b?O(e,p.precision,p.rounding):e},C.toBinary=function(e,a){return ne(this,2,e,a)},C.toDecimalPlaces=C.toDP=function(e,a){var n=this,g=n.constructor;return n=new g(n),void 0===e?n:(L(e,0,o),void 0===a?a=g.rounding:L(a,0,8),O(n,e+n.e+1,a))},C.toExponential=function(e,a){var n,g=this,t=g.constructor;return void 0===e?n=K(g,!0):(L(e,0,o),void 0===a?a=t.rounding:L(a,0,8),g=O(new t(g),e+1,a),n=K(g,!0,e+1)),g.isNeg()&&!g.isZero()?"-"+n:n},C.toFixed=function(e,a){var n,g,t=this,i=t.constructor;return void 0===e?n=K(t):(L(e,0,o),void 0===a?a=i.rounding:L(a,0,8),g=O(new i(t),e+t.e+1,a),n=K(g,!1,e+g.e+1)),t.isNeg()&&!t.isZero()?"-"+n:n},C.toFraction=function(e){var a,n,g,t,i,u,r,d,o,l,p,s,c=this,y=c.d,h=c.constructor;if(!y)return new h(c);if(o=n=new h(1),g=d=new h(0),a=new h(g),i=a.e=H(y)-c.e-1,u=i%x,a.d[0]=m(10,u<0?x+u:u),null==e)e=i>0?a:o;else{if(r=new h(e),!r.isInt()||r.lt(o))throw Error(S+r);e=r.gt(a)?i>0?a:o:r}for(b=!1,r=new h(P(y)),l=h.precision,h.precision=i=y.length*x*2;;){if(p=B(r,a,0,1,1),t=n.plus(p.times(g)),1==t.cmp(e))break;n=g,g=t,t=o,o=d.plus(p.times(t)),d=t,t=a,a=r.minus(p.times(t)),r=t}return t=B(e.minus(n),g,0,1,1),d=d.plus(t.times(o)),n=n.plus(t.times(g)),d.s=o.s=c.s,s=B(o,g,i,1).minus(c).abs().cmp(B(d,n,i,1).minus(c).abs())<1?[o,g]:[d,n],h.precision=l,b=!0,s},C.toHexadecimal=C.toHex=function(e,a){return ne(this,16,e,a)},C.toNearest=function(e,a){var n=this,g=n.constructor;if(n=new g(n),null==e){if(!n.d)return n;e=new g(1),a=g.rounding}else{if(e=new g(e),void 0===a?a=g.rounding:L(a,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(b=!1,n=B(n,e,0,a,1).times(e),b=!0,O(n)):(e.s=n.s,n=e),n},C.toNumber=function(){return+this},C.toOctal=function(e,a){return ne(this,8,e,a)},C.toPower=C.pow=function(e){var a,n,g,t,i,u,r=this,d=r.constructor,o=+(e=new d(e));if(!r.d||!e.d||!r.d[0]||!e.d[0])return new d(m(+r,o));if(r=new d(r),r.eq(1))return r;if(g=d.precision,i=d.rounding,e.eq(1))return O(r,g,i);if(a=T(e.e/x),a>=e.d.length-1&&(n=o<0?-o:o)<=M)return t=V(d,r,n,g),e.s<0?new d(1).div(t):O(t,g,i);if(u=r.s,u<0){if(ad.maxE+1||a0?u/0:0):(b=!1,d.rounding=r.s=1,n=Math.min(12,(a+"").length),t=U(e.times($(r,g+n)),g),t.d&&(t=O(t,g+5,1),N(t.d,g,i)&&(a=g+10,t=O(U(e.times($(r,a+n)),a),a+5,1),+P(t.d).slice(g+1,g+15)+1==1e14&&(t=O(t,g+1,0)))),t.s=u,b=!0,d.rounding=i,O(t,g,i))},C.toPrecision=function(e,a){var n,g=this,t=g.constructor;return void 0===e?n=K(g,g.e<=t.toExpNeg||g.e>=t.toExpPos):(L(e,1,o),void 0===a?a=t.rounding:L(a,0,8),g=O(new t(g),e,a),n=K(g,e<=g.e||g.e<=t.toExpNeg,e)),g.isNeg()&&!g.isZero()?"-"+n:n},C.toSignificantDigits=C.toSD=function(e,a){var n=this,g=n.constructor;return void 0===e?(e=g.precision,a=g.rounding):(L(e,1,o),void 0===a?a=g.rounding:L(a,0,8)),O(new g(n),e,a)},C.toString=function(){var e=this,a=e.constructor,n=K(e,e.e<=a.toExpNeg||e.e>=a.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},C.truncated=C.trunc=function(){return O(new this.constructor(this),this.e+1,1)},C.valueOf=C.toJSON=function(){var e=this,a=e.constructor,n=K(e,e.e<=a.toExpNeg||e.e>=a.toExpPos);return e.isNeg()?"-"+n:n};var B=function(){function e(e,a,n){var g,t=0,i=e.length;for(e=e.slice();i--;)g=e[i]*a+t,e[i]=g%n|0,t=g/n|0;return t&&e.unshift(t),e}function a(e,a,n,g){var t,i;if(n!=g)i=n>g?1:-1;else for(t=i=0;ta[t]?1:-1;break}return i}function n(e,a,n,g){for(var t=0;n--;)e[n]-=t,t=e[n]1;)e.shift()}return function(g,t,i,r,d,o){var l,p,s,c,b,y,S,h,A,m,f,D,v,k,M,j,z,C,P,L,N=g.constructor,_=g.s==t.s?1:-1,E=g.d,B=t.d;if(!E||!E[0]||!B||!B[0])return new N(g.s&&t.s&&(E?!B||E[0]!=B[0]:B)?E&&0==E[0]||!B?0*_:_/0:NaN);for(o?(b=1,p=g.e-t.e):(o=w,b=x,p=T(g.e/b)-T(t.e/b)),P=B.length,z=E.length,A=new N(_),m=A.d=[],s=0;B[s]==(E[s]||0);s++);if(B[s]>(E[s]||0)&&p--,null==i?(k=i=N.precision,r=N.rounding):k=d?i+(g.e-t.e)+1:i,k<0)m.push(1),y=!0;else{if(k=k/b+2|0,s=0,1==P){for(c=0,B=B[0],k++;(s1&&(B=e(B,c,o),E=e(E,c,o),P=B.length,z=E.length),j=P,f=E.slice(0,P),D=f.length;D=o/2&&++C;do{c=0,l=a(B,f,P,D),l<0?(v=f[0],P!=D&&(v=v*o+(f[1]||0)),c=v/C|0,c>1?(c>=o&&(c=o-1),S=e(B,c,o),h=S.length,D=f.length,l=a(S,f,h,D),1==l&&(c--,n(S,P=10;c/=10)s++;A.e=s+p*b-1,O(A,d?i+A.e+1:i,r,y)}return A}}();function O(e,a,n,g){var t,i,u,r,d,o,l,p,s,c=e.constructor;e:if(null!=a){if(p=e.d,!p)return e;for(t=1,r=p[0];r>=10;r/=10)t++;if(i=a-t,i<0)i+=x,u=a,l=p[s=0],d=l/m(10,t-u-1)%10|0;else if(s=Math.ceil((i+1)/x),r=p.length,s>=r){if(!g)break e;for(;r++<=s;)p.push(0);l=d=0,t=1,i%=x,u=i-x+1}else{for(l=r=p[s],t=1;r>=10;r/=10)t++;i%=x,u=i-x+t,d=u<0?0:l/m(10,t-u-1)%10|0}if(g=g||a<0||void 0!==p[s+1]||(u<0?l:l%m(10,t-u-1)),o=n<4?(d||g)&&(0==n||n==(e.s<0?3:2)):d>5||5==d&&(4==n||g||6==n&&(i>0?u>0?l/m(10,t-u):0:p[s-1])%10&1||n==(e.s<0?8:7)),a<1||!p[0])return p.length=0,o?(a-=e.e+1,p[0]=m(10,(x-a%x)%x),e.e=-a||0):p[0]=e.e=0,e;if(0==i?(p.length=s,r=1,s--):(p.length=s+1,r=m(10,x-i),p[s]=u>0?(l/m(10,t-u)%m(10,u)|0)*r:0),o)for(;;){if(0==s){for(i=1,u=p[0];u>=10;u/=10)i++;for(u=p[0]+=r,r=1;u>=10;u/=10)r++;i!=r&&(e.e++,p[0]==w&&(p[0]=1));break}if(p[s]+=r,p[s]!=w)break;p[s--]=0,r=1}for(i=p.length;0===p[--i];)p.pop()}return b&&(e.e>c.maxE?(e.d=null,e.e=NaN):e.e0?i=i.charAt(0)+"."+i.slice(1)+G(g):u>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(e.e<0?"e":"e+")+e.e):t<0?(i="0."+G(-t-1)+i,n&&(g=n-u)>0&&(i+=G(g))):t>=u?(i+=G(t+1-u),n&&(g=n-t-1)>0&&(i=i+"."+G(g))):((g=t+1)0&&(t+1===u&&(i+="."),i+=G(g))),i}function q(e,a){var n=e[0];for(a*=x;n>=10;n/=10)a++;return a}function I(e,a,n){if(a>j)throw b=!0,n&&(e.precision=n),Error(h);return O(new e(p),a,1,!0)}function R(e,a,n){if(a>z)throw Error(h);return O(new e(s),a,n,!0)}function H(e){var a=e.length-1,n=a*x+1;if(a=e[a],a){for(;a%10==0;a/=10)n--;for(a=e[0];a>=10;a/=10)n++}return n}function G(e){for(var a="";e--;)a+="0";return a}function V(e,a,n,g){var t,i=new e(1),u=Math.ceil(g/x+4);for(b=!1;;){if(n%2&&(i=i.times(a),ge(i.d,u)&&(t=!0)),n=T(n/2),0===n){n=i.d.length-1,t&&0===i.d[n]&&++i.d[n];break}a=a.times(a),ge(a.d,u)}return b=!0,i}function F(e){return 1&e.d[e.d.length-1]}function W(e,a,n){for(var g,t=new e(a[0]),i=0;++i17)return new s(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);null==a?(b=!1,d=y):d=a,r=new s(.03125);while(e.e>-2)e=e.times(r),p+=5;for(g=Math.log(m(2,p))/Math.LN10*2+5|0,d+=g,n=i=u=new s(1),s.precision=d;;){if(i=O(i.times(e),d,1),n=n.times(++l),r=u.plus(B(i,n,d,1)),P(r.d).slice(0,d)===P(u.d).slice(0,d)){t=p;while(t--)u=O(u.times(u),d,1);if(null!=a)return s.precision=y,u;if(!(o<3&&N(u.d,d-g,c,o)))return O(u,s.precision=y,c,b=!0);s.precision=d+=10,n=i=r=new s(1),l=0,o++}u=r}}function $(e,a){var n,g,t,i,u,r,d,o,l,p,s,c=1,y=10,S=e,h=S.d,A=S.constructor,T=A.rounding,m=A.precision;if(S.s<0||!h||!h[0]||!S.e&&1==h[0]&&1==h.length)return new A(h&&!h[0]?-1/0:1!=S.s?NaN:h?0:S);if(null==a?(b=!1,l=m):l=a,A.precision=l+=y,n=P(h),g=n.charAt(0),!(Math.abs(i=S.e)<15e14))return o=I(A,l+2,m).times(i+""),S=$(new A(g+"."+n.slice(1)),l-y).plus(o),A.precision=m,null==a?O(S,m,T,b=!0):S;while(g<7&&1!=g||1==g&&n.charAt(1)>3)S=S.times(e),n=P(S.d),g=n.charAt(0),c++;for(i=S.e,g>1?(S=new A("0."+n),i++):S=new A(g+"."+n.slice(1)),p=S,d=u=S=B(S.minus(1),S.plus(1),l,1),s=O(S.times(S),l,1),t=3;;){if(u=O(u.times(s),l,1),o=d.plus(B(u,new A(t),l,1)),P(o.d).slice(0,l)===P(d.d).slice(0,l)){if(d=d.times(2),0!==i&&(d=d.plus(I(A,l+2,m).times(i+""))),d=B(d,new A(c),l,1),null!=a)return A.precision=m,d;if(!N(d.d,l-y,T,r))return O(d,A.precision=m,T,b=!0);A.precision=l+=y,o=u=S=B(p.minus(1),p.plus(1),l,1),s=O(S.times(S),l,1),t=r=1}d=o,t+=2}}function Y(e){return String(e.s*e.s/0)}function Z(e,a){var n,g,t;for((n=a.indexOf("."))>-1&&(a=a.replace(".","")),(g=a.search(/e/i))>0?(n<0&&(n=g),n+=+a.slice(g+1),a=a.substring(0,g)):n<0&&(n=a.length),g=0;48===a.charCodeAt(g);g++);for(t=a.length;48===a.charCodeAt(t-1);--t);if(a=a.slice(g,t),a){if(t-=g,e.e=n=n-g-1,e.d=[],g=(n+1)%x,n<0&&(g+=x),ge.constructor.maxE?(e.d=null,e.e=NaN):e.e0?(o=+a.slice(u+1),a=a.substring(2,u)):a=a.slice(2),u=a.indexOf("."),r=u>=0,g=e.constructor,r&&(a=a.replace(".",""),d=a.length,u=d-u,t=V(g,new g(n),u,2*u)),l=_(a,n,w),p=l.length-1,u=p;0===l[u];--u)l.pop();return u<0?new g(0*e.s):(e.e=q(l,p),e.d=l,b=!1,r&&(e=B(e,t,4*d)),o&&(e=e.times(Math.abs(o)<54?m(2,o):i.pow(2,o))),b=!0,e)}function X(e,a){var n,g=a.d.length;if(g<3)return Q(e,2,a,a);n=1.4*Math.sqrt(g),n=n>16?16:0|n,a=a.times(1/ee(5,n)),a=Q(e,2,a,a);for(var t,i=new e(5),u=new e(16),r=new e(20);n--;)t=a.times(a),a=a.times(i.plus(t.times(u.times(t).minus(r))));return a}function Q(e,a,n,g,t){var i,u,r,d,o=e.precision,l=Math.ceil(o/x);for(b=!1,d=n.times(n),r=new e(g);;){if(u=B(r.times(d),new e(a++*a++),o,1),r=t?g.plus(u):g.minus(u),g=B(u.times(d),new e(a++*a++),o,1),u=r.plus(g),void 0!==u.d[l]){for(i=l;u.d[i]===r.d[i]&&i--;);if(-1==i)break}i=r,r=g,g=u,u=i}return b=!0,u.d.length=l+1,u}function ee(e,a){var n=e;while(--a)n*=e;return n}function ae(e,a){var n,g=a.s<0,t=R(e,e.precision,1),i=t.times(.5);if(a=a.abs(),a.lte(i))return r=g?4:1,a;if(n=a.divToInt(t),n.isZero())r=g?3:2;else{if(a=a.minus(n.times(t)),a.lte(i))return r=F(n)?g?2:3:g?4:1,a;r=F(n)?g?1:4:g?3:2}return a.minus(t).abs()}function ne(e,a,n,g){var t,i,r,d,p,s,c,b,y,S=e.constructor,h=void 0!==n;if(h?(L(n,1,o),void 0===g?g=S.rounding:L(g,0,8)):(n=S.precision,g=S.rounding),e.isFinite()){for(c=K(e),r=c.indexOf("."),h?(t=2,16==a?n=4*n-3:8==a&&(n=3*n-2)):t=a,r>=0&&(c=c.replace(".",""),y=new S(1),y.e=c.length-r,y.d=_(K(y),10,t),y.e=y.d.length),b=_(c,10,t),i=p=b.length;0==b[--p];)b.pop();if(b[0]){if(r<0?i--:(e=new S(e),e.d=b,e.e=i,e=B(e,y,n,g,0,t),b=e.d,i=e.e,s=u),r=b[n],d=t/2,s=s||void 0!==b[n+1],s=g<4?(void 0!==r||s)&&(0===g||g===(e.s<0?3:2)):r>d||r===d&&(4===g||s||6===g&&1&b[n-1]||g===(e.s<0?8:7)),b.length=n,s)for(;++b[--n]>t-1;)b[n]=0,n||(++i,b.unshift(1));for(p=b.length;!b[p-1];--p);for(r=0,c="";r1)if(16==a||8==a){for(r=16==a?4:3,--p;p%r;p++)c+="0";for(b=_(c,t,a),p=b.length;!b[p-1];--p);for(r=1,c="1.";rp)for(i-=p;i--;)c+="0";else ia)return e.length=a,!0}function te(e){return new this(e).abs()}function ie(e){return new this(e).acos()}function ue(e){return new this(e).acosh()}function re(e,a){return new this(e).plus(a)}function de(e){return new this(e).asin()}function oe(e){return new this(e).asinh()}function le(e){return new this(e).atan()}function pe(e){return new this(e).atanh()}function se(e,a){e=new this(e),a=new this(a);var n,g=this.precision,t=this.rounding,i=g+4;return e.s&&a.s?e.d||a.d?!a.d||e.isZero()?(n=a.s<0?R(this,g,t):new this(0),n.s=e.s):!e.d||a.isZero()?(n=R(this,i,1).times(.5),n.s=e.s):a.s<0?(this.precision=i,this.rounding=1,n=this.atan(B(e,a,i,1)),a=R(this,i,1),this.precision=g,this.rounding=t,n=e.s<0?n.minus(a):n.plus(a)):n=this.atan(B(e,a,i,1)):(n=R(this,i,1).times(a.s>0?.25:.75),n.s=e.s):n=new this(NaN),n}function ce(e){return new this(e).cbrt()}function be(e){return O(e=new this(e),e.e+1,2)}function ye(e){if(!e||"object"!==typeof e)throw Error(y+"Object expected");var a,n,g,t=!0===e.defaults,i=["precision",1,o,"rounding",0,8,"toExpNeg",-d,0,"toExpPos",0,d,"maxE",0,d,"minE",-d,0,"modulo",0,9];for(a=0;a=i[a+1]&&g<=i[a+2]))throw Error(S+n+": "+g);this[n]=g}if(n="crypto",t&&(this[n]=c[n]),void 0!==(g=e[n])){if(!0!==g&&!1!==g&&0!==g&&1!==g)throw Error(S+n+": "+g);if(g){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(A);this[n]=!0}else this[n]=!1}return this}function Se(e){return new this(e).cos()}function he(e){return new this(e).cosh()}function Ae(e){var a,n,g;function t(e){var a,n,g,i=this;if(!(i instanceof t))return new t(e);if(i.constructor=t,e instanceof t)return i.s=e.s,void(b?!e.d||e.e>t.maxE?(i.e=NaN,i.d=null):e.e=10;n/=10)a++;return void(b?a>t.maxE?(i.e=NaN,i.d=null):a=429e7?a[i]=crypto.getRandomValues(new Uint32Array(1))[0]:r[i++]=t%1e7;else{if(!crypto.randomBytes)throw Error(A);for(a=crypto.randomBytes(g*=4);i=214e7?crypto.randomBytes(4).copy(a,i):(r.push(t%1e7),i+=4);i=g/4}else for(;i=10;t/=10)g++;gn)a.push(arguments[n++]);return h[++S]=function(){r("function"==typeof e?e:Function(e),a)},g(S),S},c=function(e){delete h[e]},"process"==n("6b4c")(p)?g=function(e){p.nextTick(u(T,e,1))}:y&&y.now?g=function(e){y.now(u(T,e,1))}:b?(t=new b,i=t.port2,t.port1.onmessage=m,g=u(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(g=function(e){l.postMessage(e+"","*")},l.addEventListener("message",m,!1)):g=A in o("script")?function(e){d.appendChild(o("script"))[A]=function(){d.removeChild(this),T.call(e)}}:function(e){setTimeout(u(T,e,1),0)}),e.exports={set:s,clear:c}},"418a":function(e,a,n){"use strict";(function(a){e.exports=function(e,n){n=n||a.argv;var g=n.indexOf("--"),t=/^-{1,2}/.test(e)?"":"--",i=n.indexOf(t+e);return-1!==i&&(-1===g||i0?g:n)(e)}},"45f2":function(e,a,n){var g=n("d9f6").f,t=n("07e3"),i=n("5168")("toStringTag");e.exports=function(e,a,n){e&&!t(e=n?e:e.prototype,i)&&g(e,i,{configurable:!0,value:a})}},4630:function(e,a){e.exports=function(e,a){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:a}}},"469f":function(e,a,n){n("6c1c"),n("1654"),e.exports=n("7d7b")},"46a7":function(e,a,n){var g=n("63b6");g(g.S+g.F*!n("8e60"),"Object",{defineProperty:n("d9f6").f})},"47ee":function(e,a,n){var g=n("c3a1"),t=n("9aa9"),i=n("355d");e.exports=function(e){var a=g(e),n=t.f;if(n){var u,r=n(e),d=i.f,o=0;while(r.length>o)d.call(e,u=r[o++])&&a.push(u)}return a}},"481b":function(e,a){e.exports={}},4917:function(e,a,n){"use strict";var g=n("cb7c"),t=n("9def"),i=n("0390"),u=n("5f1b");n("214f")("match",1,(function(e,a,n,r){return[function(n){var g=e(this),t=void 0==n?void 0:n[a];return void 0!==t?t.call(n,g):new RegExp(n)[a](String(g))},function(e){var a=r(n,e,this);if(a.done)return a.value;var d=g(e),o=String(this);if(!d.global)return u(d,o);var l=d.unicode;d.lastIndex=0;var p,s=[],c=0;while(null!==(p=u(d,o))){var b=String(p[0]);s[c]=b,""===b&&(d.lastIndex=i(o,t(d.lastIndex),l)),c++}return 0===c?null:s}]}))},"4a35":function(e,a,n){"use strict";(function(e){var n=this&&this.__spreadArrays||function(){for(var e=0,a=0,n=arguments.length;aT;T++)if(S=a?A(u(b=e[T])[0],b[1]):A(e[T]),S===o||S===l)return S}else for(y=h.call(e);!(b=y.next()).done;)if(S=t(y,A,b.value,a),S===o||S===l)return S};a.BREAK=o,a.RETURN=l},"4bf8":function(e,a,n){var g=n("be13");e.exports=function(e){return Object(g(e))}},"4c95":function(e,a,n){"use strict";var g=n("e53d"),t=n("584a"),i=n("d9f6"),u=n("8e60"),r=n("5168")("species");e.exports=function(e){var a="function"==typeof t[e]?t[e]:g[e];u&&a&&!a[r]&&i.f(a,r,{configurable:!0,get:function(){return this}})}},"4cf1":function(e,a,n){"use strict";n("78b7")},"4ee1":function(e,a,n){var g=n("5168")("iterator"),t=!1;try{var i=[7][g]();i["return"]=function(){t=!0},Array.from(i,(function(){throw 2}))}catch(u){}e.exports=function(e,a){if(!a&&!t)return!1;var n=!1;try{var i=[7],r=i[g]();r.next=function(){return{done:n=!0}},i[g]=function(){return r},e(i)}catch(u){}return n}},"4f59":function(e,a,n){"use strict";(function(a){var g=n("3c43"),t=n("418a"),i=Object({NODE_ENV:"production",BASE_URL:"/"}),u=void 0;function r(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function d(e){if(!1===u)return 0;if(t("color=16m")||t("color=full")||t("color=truecolor"))return 3;if(t("color=256"))return 2;if(e&&!e.isTTY&&!0!==u)return 0;var n=u?1:0;if("win32"===a.platform){var r=g.release().split(".");return Number(a.versions.node.split(".")[0])>=8&&Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in i)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((function(e){return e in i}))||"codeship"===i.CI_NAME?1:n;if("TEAMCITY_VERSION"in i)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(i.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in i){var d=parseInt((i.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(i.TERM_PROGRAM){case"iTerm.app":return d>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(i.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(i.TERM)?1:"COLORTERM"in i?1:(i.TERM,n)}function o(e){var a=d(e);return r(a)}t("no-color")||t("no-colors")||t("color=false")?u=!1:(t("color")||t("colors")||t("color=true")||t("color=always"))&&(u=!0),"FORCE_COLOR"in i&&(u=0===i.FORCE_COLOR.length||0!==parseInt(i.FORCE_COLOR,10)),e.exports={supportsColor:o,stdout:o(a.stdout),stderr:o(a.stderr)}}).call(this,n("f28c"))},"4f7f":function(e,a,n){"use strict";var g=n("c26b"),t=n("b39a"),i="Set";e.exports=n("e0b8")(i,(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{add:function(e){return g.def(t(this,i),e=0===e?0:e,e)}},g)},"50ed":function(e,a){e.exports=function(e,a){return{value:a,done:!!e}}},5118:function(e,a,n){(function(e){var g="undefined"!==typeof e&&e||"undefined"!==typeof self&&self||window,t=Function.prototype.apply;function i(e,a){this._id=e,this._clearFn=a}a.setTimeout=function(){return new i(t.call(setTimeout,g,arguments),clearTimeout)},a.setInterval=function(){return new i(t.call(setInterval,g,arguments),clearInterval)},a.clearTimeout=a.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(g,this._id)},a.enroll=function(e,a){clearTimeout(e._idleTimeoutId),e._idleTimeout=a},a.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},a._unrefActive=a.active=function(e){clearTimeout(e._idleTimeoutId);var a=e._idleTimeout;a>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),a))},n("6017"),a.setImmediate="undefined"!==typeof self&&self.setImmediate||"undefined"!==typeof e&&e.setImmediate||this&&this.setImmediate,a.clearImmediate="undefined"!==typeof self&&self.clearImmediate||"undefined"!==typeof e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n("c8ba"))},5147:function(e,a,n){var g=n("2b4c")("match");e.exports=function(e){var a=/./;try{"/./"[e](a)}catch(n){try{return a[g]=!1,!"/./"[e](a)}catch(t){}}return!0}},5168:function(e,a,n){var g=n("dbdb")("wks"),t=n("62a0"),i=n("e53d").Symbol,u="function"==typeof i,r=e.exports=function(e){return g[e]||(g[e]=u&&i[e]||(u?i:t)("Symbol."+e))};r.store=g},"520a":function(e,a,n){"use strict";var g=n("0bfb"),t=RegExp.prototype.exec,i=String.prototype.replace,u=t,r="lastIndex",d=function(){var e=/a/,a=/b*/g;return t.call(e,"a"),t.call(a,"a"),0!==e[r]||0!==a[r]}(),o=void 0!==/()??/.exec("")[1],l=d||o;l&&(u=function(e){var a,n,u,l,p=this;return o&&(n=new RegExp("^"+p.source+"$(?!\\s)",g.call(p))),d&&(a=p[r]),u=t.call(p,e),d&&u&&(p[r]=p.global?u.index+u[0].length:a),o&&u&&u.length>1&&i.call(u[0],n,(function(){for(l=1;ln?n:e:ea?a:e}e.exports=n},"53e2":function(e,a,n){var g=n("07e3"),t=n("241e"),i=n("5559")("IE_PROTO"),u=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=t(e),g(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},"549b":function(e,a,n){"use strict";var g=n("d864"),t=n("63b6"),i=n("241e"),u=n("b0dc"),r=n("3702"),d=n("b447"),o=n("20fd"),l=n("7cd6");t(t.S+t.F*!n("4ee1")((function(e){Array.from(e)})),"Array",{from:function(e){var a,n,t,p,s=i(e),c="function"==typeof this?this:Array,b=arguments.length,y=b>1?arguments[1]:void 0,S=void 0!==y,h=0,A=l(s);if(S&&(y=g(y,b>2?arguments[2]:void 0,2)),void 0==A||c==Array&&r(A))for(a=d(s.length),n=new c(a);a>h;h++)o(n,h,S?y(s[h],h):s[h]);else for(p=A.call(s),n=new c;!(t=p.next()).done;h++)o(n,h,S?u(p,y,[t.value,h],!0):t.value);return n.length=h,n}})},"54a1":function(e,a,n){n("6c1c"),n("1654"),e.exports=n("95d5")},"551c":function(e,a,n){"use strict";var g,t,i,u,r=n("2d00"),d=n("7726"),o=n("9b43"),l=n("23c6"),p=n("5ca1"),s=n("d3f4"),c=n("d8e8"),b=n("f605"),y=n("4a59"),S=n("ebd6"),h=n("1991").set,A=n("8079")(),T=n("a5b8"),m=n("9c80"),f=n("a25f"),D=n("bcaa"),v="Promise",k=d.TypeError,w=d.process,x=w&&w.versions,M=x&&x.v8||"",j=d[v],z="process"==l(w),C=function(){},P=t=T.f,L=!!function(){try{var e=j.resolve(1),a=(e.constructor={})[n("2b4c")("species")]=function(e){e(C,C)};return(z||"function"==typeof PromiseRejectionEvent)&&e.then(C)instanceof a&&0!==M.indexOf("6.6")&&-1===f.indexOf("Chrome/66")}catch(g){}}(),N=function(e){var a;return!(!s(e)||"function"!=typeof(a=e.then))&&a},_=function(e,a){if(!e._n){e._n=!0;var n=e._c;A((function(){var g=e._v,t=1==e._s,i=0,u=function(a){var n,i,u,r=t?a.ok:a.fail,d=a.resolve,o=a.reject,l=a.domain;try{r?(t||(2==e._h&&O(e),e._h=1),!0===r?n=g:(l&&l.enter(),n=r(g),l&&(l.exit(),u=!0)),n===a.promise?o(k("Promise-chain cycle")):(i=N(n))?i.call(n,d,o):d(n)):o(g)}catch(p){l&&!u&&l.exit(),o(p)}};while(n.length>i)u(n[i++]);e._c=[],e._n=!1,a&&!e._h&&E(e)}))}},E=function(e){h.call(d,(function(){var a,n,g,t=e._v,i=B(e);if(i&&(a=m((function(){z?w.emit("unhandledRejection",t,e):(n=d.onunhandledrejection)?n({promise:e,reason:t}):(g=d.console)&&g.error&&g.error("Unhandled promise rejection",t)})),e._h=z||B(e)?2:1),e._a=void 0,i&&a.e)throw a.v}))},B=function(e){return 1!==e._h&&0===(e._a||e._c).length},O=function(e){h.call(d,(function(){var a;z?w.emit("rejectionHandled",e):(a=d.onrejectionhandled)&&a({promise:e,reason:e._v})}))},K=function(e){var a=this;a._d||(a._d=!0,a=a._w||a,a._v=e,a._s=2,a._a||(a._a=a._c.slice()),_(a,!0))},q=function(e){var a,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw k("Promise can't be resolved itself");(a=N(e))?A((function(){var g={_w:n,_d:!1};try{a.call(e,o(q,g,1),o(K,g,1))}catch(t){K.call(g,t)}})):(n._v=e,n._s=1,_(n,!1))}catch(g){K.call({_w:n,_d:!1},g)}}};L||(j=function(e){b(this,j,v,"_h"),c(e),g.call(this);try{e(o(q,this,1),o(K,this,1))}catch(a){K.call(this,a)}},g=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},g.prototype=n("dcbc")(j.prototype,{then:function(e,a){var n=P(S(this,j));return n.ok="function"!=typeof e||e,n.fail="function"==typeof a&&a,n.domain=z?w.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&_(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new g;this.promise=e,this.resolve=o(q,e,1),this.reject=o(K,e,1)},T.f=P=function(e){return e===j||e===u?new i(e):t(e)}),p(p.G+p.W+p.F*!L,{Promise:j}),n("7f20")(j,v),n("7a56")(v),u=n("8378")[v],p(p.S+p.F*!L,v,{reject:function(e){var a=P(this),n=a.reject;return n(e),a.promise}}),p(p.S+p.F*(r||!L),v,{resolve:function(e){return D(r&&this===u?j:this,e)}}),p(p.S+p.F*!(L&&n("5cc5")((function(e){j.all(e)["catch"](C)}))),v,{all:function(e){var a=this,n=P(a),g=n.resolve,t=n.reject,i=m((function(){var n=[],i=0,u=1;y(e,!1,(function(e){var r=i++,d=!1;n.push(void 0),u++,a.resolve(e).then((function(e){d||(d=!0,n[r]=e,--u||g(n))}),t)})),--u||g(n)}));return i.e&&t(i.v),n.promise},race:function(e){var a=this,n=P(a),g=n.reject,t=m((function(){y(e,!1,(function(e){a.resolve(e).then(n.resolve,g)}))}));return t.e&&g(t.v),n.promise}})},5537:function(e,a,n){var g=n("8378"),t=n("7726"),i="__core-js_shared__",u=t[i]||(t[i]={});(e.exports=function(e,a){return u[e]||(u[e]=void 0!==a?a:{})})("versions",[]).push({version:g.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},5559:function(e,a,n){var g=n("dbdb")("keys"),t=n("62a0");e.exports=function(e){return g[e]||(g[e]=t(e))}},"55dd":function(e,a,n){"use strict";var g=n("5ca1"),t=n("d8e8"),i=n("4bf8"),u=n("79e5"),r=[].sort,d=[1,2,3];g(g.P+g.F*(u((function(){d.sort(void 0)}))||!u((function(){d.sort(null)}))||!n("2f21")(r)),"Array",{sort:function(e){return void 0===e?r.call(i(this)):r.call(i(this),t(e))}})},"584a":function(e,a){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},"5b4e":function(e,a,n){var g=n("36c3"),t=n("b447"),i=n("0fc9");e.exports=function(e){return function(a,n,u){var r,d=g(a),o=t(d.length),l=i(u,o);if(e&&n!=n){while(o>l)if(r=d[l++],r!=r)return!0}else for(;o>l;l++)if((e||l in d)&&d[l]===n)return e||l||0;return!e&&-1}}},"5c95":function(e,a,n){var g=n("35e8");e.exports=function(e,a,n){for(var t in a)n&&e[t]?e[t]=a[t]:g(e,t,a[t]);return e}},"5ca1":function(e,a,n){var g=n("7726"),t=n("8378"),i=n("32e9"),u=n("2aba"),r=n("9b43"),d="prototype",o=function(e,a,n){var l,p,s,c,b=e&o.F,y=e&o.G,S=e&o.S,h=e&o.P,A=e&o.B,T=y?g:S?g[a]||(g[a]={}):(g[a]||{})[d],m=y?t:t[a]||(t[a]={}),f=m[d]||(m[d]={});for(l in y&&(n=a),n)p=!b&&T&&void 0!==T[l],s=(p?T:n)[l],c=A&&p?r(s,g):h&&"function"==typeof s?r(Function.call,s):s,T&&u(T,l,s,e&o.U),m[l]!=s&&i(m,l,c),h&&f[l]!=s&&(f[l]=s)};g.core=t,o.F=1,o.G=2,o.S=4,o.P=8,o.B=16,o.W=32,o.U=64,o.R=128,e.exports=o},"5cc5":function(e,a,n){var g=n("2b4c")("iterator"),t=!1;try{var i=[7][g]();i["return"]=function(){t=!0},Array.from(i,(function(){throw 2}))}catch(u){}e.exports=function(e,a){if(!a&&!t)return!1;var n=!1;try{var i=[7],r=i[g]();r.next=function(){return{done:n=!0}},i[g]=function(){return r},e(i)}catch(u){}return n}},"5d73":function(e,a,n){e.exports=n("469f")},"5dbc":function(e,a,n){var g=n("d3f4"),t=n("8b97").set;e.exports=function(e,a,n){var i,u=a.constructor;return u!==n&&"function"==typeof u&&(i=u.prototype)!==n.prototype&&g(i)&&t&&t(e,i),e}},"5df3":function(e,a,n){"use strict";var g=n("02f4")(!0);n("01f9")(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,a=this._t,n=this._i;return n>=a.length?{value:void 0,done:!0}:(e=g(a,n),this._i+=e.length,{value:e,done:!1})}))},"5eda":function(e,a,n){var g=n("5ca1"),t=n("8378"),i=n("79e5");e.exports=function(e,a){var n=(t.Object||{})[e]||Object[e],u={};u[e]=a(n),g(g.S+g.F*i((function(){n(1)})),"Object",u)}},"5f1b":function(e,a,n){"use strict";var g=n("23c6"),t=RegExp.prototype.exec;e.exports=function(e,a){var n=e.exec;if("function"===typeof n){var i=n.call(e,a);if("object"!==typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==g(e))throw new TypeError("RegExp#exec called on incompatible receiver");return t.call(e,a)}},6017:function(e,a,n){(function(e,a){(function(e,n){"use strict";if(!e.setImmediate){var g,t=1,i={},u=!1,r=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?c():b()?y():e.MessageChannel?S():r&&"onreadystatechange"in r.createElement("script")?h():A(),d.setImmediate=o,d.clearImmediate=l}function o(e){"function"!==typeof e&&(e=new Function(""+e));for(var a=new Array(arguments.length-1),n=0;n.5?d/(2-i-u):d/(i+u),i){case e:g=(a-n)/d+(a1&&(n-=1),n<1/6?e+6*(a-e)*n:n<.5?a:n<2/3?e+(a-e)*(2/3-n)*6:e}if(e=q(e,360),a=q(a,100),n=q(n,100),0===a)g=t=i=n;else{var r=n<.5?n*(1+a):n+a-n*a,d=2*n-r;g=u(d,r,e+1/3),t=u(d,r,e),i=u(d,r,e-1/3)}return{r:255*g,g:255*t,b:255*i}}function h(e,a,n){e=q(e,255),a=q(a,255),n=q(n,255);var g,t,i=l(e,a,n),u=o(e,a,n),r=i,d=i-u;if(t=0===i?0:d/i,i==u)g=0;else{switch(i){case e:g=(a-n)/d+(a>1)+720)%360;--a;)g.h=(g.h+t)%360,i.push(s(g));return i}function _(e,a){a=a||6;var n=s(e).toHsv(),g=n.h,t=n.s,i=n.v,u=[],r=1/a;while(a--)u.push(s({h:g,s:t,v:i})),i=(i+r)%1;return u}s.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,a,n,g,i,u,r=this.toRgb();return e=r.r/255,a=r.g/255,n=r.b/255,g=e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4),i=a<=.03928?a/12.92:t.pow((a+.055)/1.055,2.4),u=n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4),.2126*g+.7152*i+.0722*u},setAlpha:function(e){return this._a=K(e),this._roundA=d(100*this._a)/100,this},toHsv:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=h(this._r,this._g,this._b),a=d(360*e.h),n=d(100*e.s),g=d(100*e.v);return 1==this._a?"hsv("+a+", "+n+"%, "+g+"%)":"hsva("+a+", "+n+"%, "+g+"%, "+this._roundA+")"},toHsl:function(){var e=y(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=y(this._r,this._g,this._b),a=d(360*e.h),n=d(100*e.s),g=d(100*e.l);return 1==this._a?"hsl("+a+", "+n+"%, "+g+"%)":"hsla("+a+", "+n+"%, "+g+"%, "+this._roundA+")"},toHex:function(e){return T(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return m(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:d(this._r),g:d(this._g),b:d(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+d(this._r)+", "+d(this._g)+", "+d(this._b)+")":"rgba("+d(this._r)+", "+d(this._g)+", "+d(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:d(100*q(this._r,255))+"%",g:d(100*q(this._g,255))+"%",b:d(100*q(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+d(100*q(this._r,255))+"%, "+d(100*q(this._g,255))+"%, "+d(100*q(this._b,255))+"%)":"rgba("+d(100*q(this._r,255))+"%, "+d(100*q(this._g,255))+"%, "+d(100*q(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(B[T(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var a="#"+f(this._r,this._g,this._b,this._a),n=a,g=this._gradientType?"GradientType = 1, ":"";if(e){var t=s(e);n="#"+f(t._r,t._g,t._b,t._a)}return"progid:DXImageTransform.Microsoft.gradient("+g+"startColorstr="+a+",endColorstr="+n+")"},toString:function(e){var a=!!e;e=e||this._format;var n=!1,g=this._a<1&&this._a>=0,t=!a&&g&&("hex"===e||"hex6"===e||"hex3"===e||"hex4"===e||"hex8"===e||"name"===e);return t?"name"===e&&0===this._a?this.toName():this.toRgbString():("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString())},clone:function(){return s(this.toString())},_applyModification:function(e,a){var n=e.apply(null,[this].concat([].slice.call(a)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(w,arguments)},brighten:function(){return this._applyModification(x,arguments)},darken:function(){return this._applyModification(M,arguments)},desaturate:function(){return this._applyModification(D,arguments)},saturate:function(){return this._applyModification(v,arguments)},greyscale:function(){return this._applyModification(k,arguments)},spin:function(){return this._applyModification(j,arguments)},_applyCombination:function(e,a){return e.apply(null,[this].concat([].slice.call(a)))},analogous:function(){return this._applyCombination(N,arguments)},complement:function(){return this._applyCombination(z,arguments)},monochromatic:function(){return this._applyCombination(_,arguments)},splitcomplement:function(){return this._applyCombination(L,arguments)},triad:function(){return this._applyCombination(C,arguments)},tetrad:function(){return this._applyCombination(P,arguments)}},s.fromRatio=function(e,a){if("object"==typeof e){var n={};for(var g in e)e.hasOwnProperty(g)&&(n[g]="a"===g?e[g]:F(e[g]));e=n}return s(e,a)},s.equals=function(e,a){return!(!e||!a)&&s(e).toRgbString()==s(a).toRgbString()},s.random=function(){return s.fromRatio({r:p(),g:p(),b:p()})},s.mix=function(e,a,n){n=0===n?0:n||50;var g=s(e).toRgb(),t=s(a).toRgb(),i=n/100,u={r:(t.r-g.r)*i+g.r,g:(t.g-g.g)*i+g.g,b:(t.b-g.b)*i+g.b,a:(t.a-g.a)*i+g.a};return s(u)},s.readability=function(e,a){var n=s(e),g=s(a);return(t.max(n.getLuminance(),g.getLuminance())+.05)/(t.min(n.getLuminance(),g.getLuminance())+.05)},s.isReadable=function(e,a,n){var g,t,i=s.readability(e,a);switch(t=!1,g=J(n),g.level+g.size){case"AAsmall":case"AAAlarge":t=i>=4.5;break;case"AAlarge":t=i>=3;break;case"AAAsmall":t=i>=7;break}return t},s.mostReadable=function(e,a,n){var g,t,i,u,r=null,d=0;n=n||{},t=n.includeFallbackColors,i=n.level,u=n.size;for(var o=0;od&&(d=g,r=s(a[o]));return s.isReadable(e,r,{level:i,size:u})||!t?r:(n.includeFallbackColors=!1,s.mostReadable(e,["#fff","#000"],n))};var E=s.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},B=s.hexNames=O(E);function O(e){var a={};for(var n in e)e.hasOwnProperty(n)&&(a[e[n]]=n);return a}function K(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function q(e,a){H(e)&&(e="100%");var n=G(e);return e=o(a,l(0,parseFloat(e))),n&&(e=parseInt(e*a,10)/100),t.abs(e-a)<1e-6?1:e%a/parseFloat(a)}function I(e){return o(1,l(0,e))}function R(e){return parseInt(e,16)}function H(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function G(e){return"string"===typeof e&&-1!=e.indexOf("%")}function V(e){return 1==e.length?"0"+e:""+e}function F(e){return e<=1&&(e=100*e+"%"),e}function W(e){return t.round(255*parseFloat(e)).toString(16)}function U(e){return R(e)/255}var $=function(){var e="[-\\+]?\\d+%?",a="[-\\+]?\\d*\\.\\d+%?",n="(?:"+a+")|(?:"+e+")",g="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?",t="[\\s|\\(]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")[,|\\s]+("+n+")\\s*\\)?";return{CSS_UNIT:new RegExp(n),rgb:new RegExp("rgb"+g),rgba:new RegExp("rgba"+t),hsl:new RegExp("hsl"+g),hsla:new RegExp("hsla"+t),hsv:new RegExp("hsv"+g),hsva:new RegExp("hsva"+t),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Y(e){return!!$.CSS_UNIT.exec(e)}function Z(e){e=e.replace(i,"").replace(u,"").toLowerCase();var a,n=!1;if(E[e])e=E[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(a=$.rgb.exec(e))?{r:a[1],g:a[2],b:a[3]}:(a=$.rgba.exec(e))?{r:a[1],g:a[2],b:a[3],a:a[4]}:(a=$.hsl.exec(e))?{h:a[1],s:a[2],l:a[3]}:(a=$.hsla.exec(e))?{h:a[1],s:a[2],l:a[3],a:a[4]}:(a=$.hsv.exec(e))?{h:a[1],s:a[2],v:a[3]}:(a=$.hsva.exec(e))?{h:a[1],s:a[2],v:a[3],a:a[4]}:(a=$.hex8.exec(e))?{r:R(a[1]),g:R(a[2]),b:R(a[3]),a:U(a[4]),format:n?"name":"hex8"}:(a=$.hex6.exec(e))?{r:R(a[1]),g:R(a[2]),b:R(a[3]),format:n?"name":"hex"}:(a=$.hex4.exec(e))?{r:R(a[1]+""+a[1]),g:R(a[2]+""+a[2]),b:R(a[3]+""+a[3]),a:U(a[4]+""+a[4]),format:n?"name":"hex8"}:!!(a=$.hex3.exec(e))&&{r:R(a[1]+""+a[1]),g:R(a[2]+""+a[2]),b:R(a[3]+""+a[3]),format:n?"name":"hex"}}function J(e){var a,n;return e=e||{level:"AA",size:"small"},a=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==a&&"AAA"!==a&&(a="AA"),"small"!==n&&"large"!==n&&(n="small"),{level:a,size:n}}e.exports?e.exports=s:(g=function(){return s}.call(a,n,a,e),void 0===g||(e.exports=g))})(Math)},6710:function(e,a){e["exports"]=function(e){var a=["red","yellow","green","blue","magenta"];return function(n,g,t){return" "===n?n:e[a[g++%a.length]](n)}}},6718:function(e,a,n){var g=n("e53d"),t=n("584a"),i=n("b8e3"),u=n("ccb9"),r=n("d9f6").f;e.exports=function(e){var a=t.Symbol||(t.Symbol=i?{}:g.Symbol||{});"_"==e.charAt(0)||e in a||r(a,e,{value:u.f(e)})}},6762:function(e,a,n){"use strict";var g=n("5ca1"),t=n("c366")(!0);g(g.P,"Array",{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},"67ab":function(e,a,n){var g=n("ca5a")("meta"),t=n("d3f4"),i=n("69a8"),u=n("86cc").f,r=0,d=Object.isExtensible||function(){return!0},o=!n("79e5")((function(){return d(Object.preventExtensions({}))})),l=function(e){u(e,g,{value:{i:"O"+ ++r,w:{}}})},p=function(e,a){if(!t(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,g)){if(!d(e))return"F";if(!a)return"E";l(e)}return e[g].i},s=function(e,a){if(!i(e,g)){if(!d(e))return!0;if(!a)return!1;l(e)}return e[g].w},c=function(e){return o&&b.NEED&&d(e)&&!i(e,g)&&l(e),e},b=e.exports={KEY:g,NEED:!1,fastKey:p,getWeak:s,onFreeze:c}},"67ed":function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("transition",{attrs:{name:"ui-progress-linear--transition-fade"}},[n("div",{staticClass:"ui-progress-linear",class:e.classes},["determinate"===e.type?n("div",{staticClass:"ui-progress-linear__progress-bar is-determinate",style:{transform:"scaleX("+e.moderatedProgress/100+")"},attrs:{role:"progressbar","aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":e.moderatedProgress}}):n("div",{staticClass:"ui-progress-linear__progress-bar is-indeterminate",attrs:{role:"progressbar","aria-valuemax":100,"aria-valuemin":0}})])])},t=[],i=(n("c5f6"),{name:"ui-progress-linear",props:{type:{type:String,default:"indeterminate"},color:{type:String,default:"primary"},progress:{type:Number,default:0}},computed:{classes:function(){return["ui-progress-linear--color-".concat(this.color),"ui-progress-linear--type-".concat(this.type)]},moderatedProgress:function(){return this.progress<0?0:this.progress>100?100:this.progress}}}),u=i,r=(n("0b75"),n("2877")),d=Object(r["a"])(u,g,t,!1,null,null,null);a["a"]=d.exports},6821:function(e,a,n){var g=n("626a"),t=n("be13");e.exports=function(e){return g(t(e))}},6904:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n(e.isAnchor?"a":"button",{tag:"component",staticClass:"ui-icon-button",class:e.classes,attrs:{"aria-label":e.ariaLabel||e.tooltip,disabled:e.disabled||e.loading,href:e.isAnchor?e.disabled?null:e.href:null,type:e.isAnchor?null:e.buttonType},on:{click:e.onClick}},[e.icon||e.$slots.default?n("div",{staticClass:"ui-icon-button__icon"},[e._t("default",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),n("div",{staticClass:"ui-icon-button__focus-ring"}),e.loading?n("ui-progress-circular",{staticClass:"ui-icon-button__progress",attrs:{color:e.progressColor,size:"large"===e.size?24:18,stroke:4.5}}):e._e(),e.disableRipple||e.disabled?e._e():n("ui-ripple-ink"),e.hasDropdown?n("ui-popover",{ref:"dropdown",attrs:{"constain-focus":"","append-to-body":e.appendDropdownToBody,"constrain-to-scroll-parent":e.constrainDropdownToScrollParent,position:e.dropdownPosition,"open-on":e.openDropdownOn},on:{close:e.onDropdownClose,open:e.onDropdownOpen}},[e._t("dropdown")],2):e._e(),e.tooltip?n("ui-tooltip",{attrs:{"open-on":e.openTooltipOn,position:e.tooltipPosition}},[e._v(e._s(e.tooltip))]):e._e()],1)},t=[],i=n("d235"),u=n("a0fd"),r=n("1580"),d=n("e5ce"),o=n("e291"),l={name:"ui-icon-button",props:{type:{type:String,default:"primary"},buttonType:String,href:String,color:{type:String,default:"default"},size:{type:String,default:"normal"},icon:String,ariaLabel:String,loading:{type:Boolean,default:!1},hasDropdown:{type:Boolean,default:!1},dropdownPosition:{type:String,default:"bottom-start"},appendDropdownToBody:{type:Boolean,default:!0},constrainDropdownToScrollParent:{type:Boolean,default:!0},openDropdownOn:{type:String,default:"click"},tooltip:String,openTooltipOn:String,tooltipPosition:String,disableRipple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},computed:{classes:function(){return["ui-icon-button--type-".concat(this.type),"ui-icon-button--color-".concat(this.color),"ui-icon-button--size-".concat(this.size),{"is-anchor":this.isAnchor},{"is-loading":this.loading},{"is-disabled":this.disabled||this.loading},{"has-dropdown":this.hasDropdown}]},isAnchor:function(){return void 0!==this.href},progressColor:function(){return"primary"===this.type?"default"===this.color||"black"===this.color?"black":"white":"white"===this.color?"white":"black"}},methods:{onClick:function(e){this.$emit("click",e)},onDropdownOpen:function(){this.$emit("dropdown-open")},onDropdownClose:function(){this.$emit("dropdown-close")},openDropdown:function(){this.$refs.dropdown&&this.$refs.dropdown.open()},closeDropdown:function(){this.$refs.dropdown&&this.$refs.dropdown.close()},toggleDropdown:function(){this.$refs.dropdown&&this.$refs.dropdown.toggle()}},components:{UiIcon:i["a"],UiPopover:u["a"],UiProgressCircular:r["a"],UiRippleInk:d["a"],UiTooltip:o["a"]}},p=l,s=(n("70c2"),n("2877")),c=Object(s["a"])(p,g,t,!1,null,null,null);a["a"]=c.exports},"696e":function(e,a,n){n("c207"),n("1654"),n("6c1c"),n("24c5"),n("3c11"),n("43fc"),e.exports=n("584a").Promise},"69a8":function(e,a){var n={}.hasOwnProperty;e.exports=function(e,a){return n.call(e,a)}},"6a99":function(e,a,n){var g=n("d3f4");e.exports=function(e,a){if(!g(e))return e;var n,t;if(a&&"function"==typeof(n=e.toString)&&!g(t=n.call(e)))return t;if("function"==typeof(n=e.valueOf)&&!g(t=n.call(e)))return t;if(!a&&"function"==typeof(n=e.toString)&&!g(t=n.call(e)))return t;throw TypeError("Can't convert object to primitive value")}},"6abf":function(e,a,n){var g=n("e6f3"),t=n("1691").concat("length","prototype");a.f=Object.getOwnPropertyNames||function(e){return g(e,t)}},"6b4c":function(e,a){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},"6b54":function(e,a,n){"use strict";n("3846");var g=n("cb7c"),t=n("0bfb"),i=n("9e1e"),u="toString",r=/./[u],d=function(e){n("2aba")(RegExp.prototype,u,e,!0)};n("79e5")((function(){return"/a/b"!=r.call({source:"a",flags:"b"})}))?d((function(){var e=g(this);return"/".concat(e.source,"/","flags"in e?e.flags:!i&&e instanceof RegExp?t.call(e):void 0)})):r.name!=u&&d((function(){return r.call(this)}))},"6c1c":function(e,a,n){n("c367");for(var g=n("e53d"),t=n("35e8"),i=n("481b"),u=n("5168")("toStringTag"),r="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),d=0;d-1},dismissOnCloseButton:function(){return this.dismissOn.indexOf("close-button")>-1},dismissOnEsc:function(){return this.dismissOn.indexOf("esc")>-1}},watch:{isOpen:function(){var e=this;this.$nextTick((function(){e[e.isOpen?"onOpen":"onClose"]()}))}},beforeDestroy:function(){this.isOpen&&this.returnFocus()},methods:{open:function(){this.isOpen=!0},close:function(){this.dismissible&&(this.isOpen=!1)},redirectFocus:function(){this.$refs.focusContainer.focus()},returnFocus:function(){this.lastFocusedElement&&this.lastFocusedElement.focus()},onBackdropClick:function(){this.dismissOnBackdrop?this.close():this.redirectFocus()},onEsc:function(){this.dismissOnEsc&&this.close()},onOpen:function(){this.lastFocusedElement=document.activeElement,this.$refs.focusContainer.focus(),y["a"].add(document.body,"ui-modal--is-open"),this.incrementOpenModalCount(),this.$emit("open")},onClose:function(){this.returnFocus(),this.$emit("close")},onEnter:function(){this.$emit("reveal")},onLeave:function(){this.$emit("hide");var e=this.decrementOpenModalCount();0===e&&y["a"].remove(document.body,"ui-modal--is-open")},getOpenModalCount:function(){var e=document.body.getAttribute("data-ui-open-modals");return void 0===e?0:Number(e)},setOpenModalCount:function(e){var a=Math.max(0,e);return 0===a?document.body.removeAttribute("data-ui-open-modals"):document.body.setAttribute("data-ui-open-modals",a),a},incrementOpenModalCount:function(){return this.setOpenModalCount(this.getOpenModalCount()+1)},decrementOpenModalCount:function(){return this.setOpenModalCount(this.getOpenModalCount()-1)}},components:{UiCloseButton:c,UiFocusContainer:b["a"]}},h=S,A=(n("f1ba"),Object(p["a"])(h,g,t,!1,null,null,null));a["a"]=A.exports},"6f46":function(e,a,n){},"708a":function(e,a,n){var g={};e["exports"]=g,g.themes={};var t=n("3022"),i=g.styles=n("89d0"),u=Object.defineProperties,r=new RegExp(/[\r\n]+/g);g.supportsColor=n("4f59").supportsColor,"undefined"===typeof g.enabled&&(g.enabled=!1!==g.supportsColor()),g.enable=function(){g.enabled=!0},g.disable=function(){g.enabled=!1},g.stripColors=g.strip=function(e){return(""+e).replace(/\x1B\[\d+m/g,"")};g.stylize=function(e,a){if(!g.enabled)return e+"";var n=i[a];return!n&&a in g?g[a](e):n.open+e+n.close};var d=/[|\\{}()[\]^$+*?.]/g,o=function(e){if("string"!==typeof e)throw new TypeError("Expected a string");return e.replace(d,"\\$&")};function l(e){var a=function e(){return c.apply(e,arguments)};return a._styles=e,a.__proto__=s,a}var p=function(){var e={};return i.grey=i.gray,Object.keys(i).forEach((function(a){i[a].closeRe=new RegExp(o(i[a].close),"g"),e[a]={get:function(){return l(this._styles.concat(a))}}})),e}(),s=u((function(){}),p);function c(){var e=Array.prototype.slice.call(arguments),a=e.map((function(e){return null!=e&&e.constructor===String?e:t.inspect(e)})).join(" ");if(!g.enabled||!a)return a;var n=-1!=a.indexOf("\n"),u=this._styles,d=u.length;while(d--){var o=i[u[d]];a=o.open+a.replace(o.closeRe,o.open)+o.close,n&&(a=a.replace(r,(function(e){return o.close+e+o.open})))}return a}function b(){var e={};return Object.keys(p).forEach((function(a){e[a]={get:function(){return l([a])}}})),e}g.setTheme=function(e){if("string"!==typeof e)for(var a in e)(function(a){g[a]=function(n){if("object"===typeof e[a]){var t=n;for(var i in e[a])t=g[e[a][i]](t);return t}return g[e[a]](n)}})(a);else console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));")};var y=function(e,a){var n=a.split("");return n=n.map(e),n.join("")};for(var S in g.trap=n("91f7"),g.zalgo=n("30df"),g.maps={},g.maps.america=n("81b1")(g),g.maps.zebra=n("db4d")(g),g.maps.rainbow=n("6710")(g),g.maps.random=n("0b98")(g),g.maps)(function(e){g[e]=function(a){return y(g.maps[e],a)}})(S);u(g,b())},"70c2":function(e,a,n){"use strict";var g=n("2af0"),t=n.n(g);t.a},7162:function(e,a,n){},"71c1":function(e,a,n){var g=n("3a38"),t=n("25eb");e.exports=function(e){return function(a,n){var i,u,r=String(t(a)),d=g(n),o=r.length;return d<0||d>=o?e?"":void 0:(i=r.charCodeAt(d),i<55296||i>56319||d+1===o||(u=r.charCodeAt(d+1))<56320||u>57343?e?r.charAt(d):i:e?r.slice(d,d+2):u-56320+(i-55296<<10)+65536)}}},7333:function(e,a,n){"use strict";var g=n("9e1e"),t=n("0d58"),i=n("2621"),u=n("52a7"),r=n("4bf8"),d=n("626a"),o=Object.assign;e.exports=!o||n("79e5")((function(){var e={},a={},n=Symbol(),g="abcdefghijklmnopqrst";return e[n]=7,g.split("").forEach((function(e){a[e]=e})),7!=o({},e)[n]||Object.keys(o({},a)).join("")!=g}))?function(e,a){var n=r(e),o=arguments.length,l=1,p=i.f,s=u.f;while(o>l){var c,b=d(arguments[l++]),y=p?t(b).concat(p(b)):t(b),S=y.length,h=0;while(S>h)c=y[h++],g&&!s.call(b,c)||(n[c]=b[c])}return n}:o},7514:function(e,a,n){"use strict";var g=n("5ca1"),t=n("0a49")(5),i="find",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),g(g.P+g.F*u,"Array",{find:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")(i)},"75fc":function(e,a,n){"use strict";n.d(a,"a",(function(){return s}));var g=n("a745"),t=n.n(g);function i(e){if(t()(e)){for(var a=0,n=new Array(e.length);a{let e=!1;const a=["input:not([type])","input[type=text]","input[type=number]","input[type=date]","input[type=time]","input[type=datetime]","textarea","[role=textbox]","[supports-modality=keyboard]"].join(",");let n;const g=(()=>{const e=document.body;return e.matchesSelector?e.matchesSelector:e.webkitMatchesSelector?e.webkitMatchesSelector:e.mozMatchesSelector?e.mozMatchesSelector:e.msMatchesSelector?e.msMatchesSelector:void console.error("Couldn't find any matchesSelector method on document.body.")})(),t=function(){const e="body:not([modality=keyboard]) :focus { outline: none; }",a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",n.id="disable-focus-ring",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e)),a.insertBefore(n,a.firstChild)},i=function(e){let n=!1;return g&&(n=g.call(e,a)&&g.call(e,":not([readonly])")),n};t(),document.body.addEventListener("keydown",()=>{e=!0,n&&clearTimeout(n),n=setTimeout(()=>{e=!1},100)},!0),document.body.addEventListener("focus",a=>{(e||i(a.target))&&document.body.setAttribute("modality","keyboard")},!0),document.body.addEventListener("blur",()=>{document.body.removeAttribute("modality")},!0)})},7902:function(e,a,n){},"794b":function(e,a,n){e.exports=!n("8e60")&&!n("294c")((function(){return 7!=Object.defineProperty(n("1ec9")("div"),"a",{get:function(){return 7}}).a}))},"795b":function(e,a,n){e.exports=n("696e")},"79aa":function(e,a){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},"79e5":function(e,a){e.exports=function(e){try{return!!e()}catch(a){return!0}}},"7a56":function(e,a,n){"use strict";var g=n("7726"),t=n("86cc"),i=n("9e1e"),u=n("2b4c")("species");e.exports=function(e){var a=g[e];i&&a&&!a[u]&&t.f(a,u,{configurable:!0,get:function(){return this}})}},"7c53":function(e,a,n){"use strict"; -/** - * @author Matthew Caruana Galizia - * @license MIT: http://mattcg.mit-license.org/ - * @copyright Copyright (c) 2013, Matthew Caruana Galizia - */var g=n("36fe"),t=n("9200"),i=n("8044");function u(e){var a;e=e.trim().toLowerCase(),this.data={},this.data.tag=e,a=g[e],a&&(a.grandfathered||a.redundant)&&(this.data.record=t[a.grandfathered||a.redundant])}e.exports=u,u.ERR_DEPRECATED=1,u.ERR_NO_LANGUAGE=2,u.ERR_UNKNOWN=3,u.ERR_TOO_LONG=4,u.ERR_EXTRA_REGION=5,u.ERR_EXTRA_EXTLANG=6,u.ERR_EXTRA_SCRIPT=7,u.ERR_DUPLICATE_VARIANT=8,u.ERR_WRONG_ORDER=9,u.ERR_SUPPRESS_SCRIPT=10,u.ERR_SUBTAG_DEPRECATED=11,u.ERR_EXTRA_LANGUAGE=12,u.prototype.preferred=function(){var e=this.data.record["Preferred-Value"];return e?new u(e):null},u.prototype.subtags=function(){var e,a=this.data,n=[];return a.record&&"grandfathered"===this.type()?n:(e=a.tag.split("-"),e.length?(e.some((function(e,a){var t;if(e.length<2)return!0;if(t=g[e],t)if(0!==a||void 0===t.language)switch(e.length){case 2:t.region?n.push(new i(e,"region")):t.language&&n.push(new i(e,"language"));break;case 3:t.region?n.push(new i(e,"region")):t.extlang?n.push(new i(e,"extlang")):t.language&&n.push(new i(e,"language"));break;case 4:t.variant?n.push(new i(e,"variant")):t.script&&n.push(new i(e,"script"));break;default:t.variant&&n.push(new i(e,"variant"));break}else n.push(new i(e,"language"))})),n):n)},u.prototype.language=function(){return this.find("language")},u.prototype.region=function(){return this.find("region")},u.prototype.script=function(){return this.find("script")},u.prototype.find=function(e){var a,n,g,t=this.subtags();for(a=0,n=t.length;a8&&e(u.ERR_TOO_LONG,a)})),!0):(i=g[a],i||e(u.ERR_UNKNOWN,a),!1)})),a=this.subtags(),a.length&&"language"===a[0].type()?(a.forEach((function(n,g){var t,i,r=n.type(),d=this;switch(n.deprecated()&&e(u.ERR_SUBTAG_DEPRECATED,n),d[r]&&d[r].push(n),r){case"language":d.language.length>1&&e(u.ERR_EXTRA_LANGUAGE,n);break;case"region":d.region.length>1&&e(u.ERR_EXTRA_REGION,n);break;case"extlang":d.extlang.length>1&&e(u.ERR_EXTRA_EXTLANG,n);break;case"script":d.script.length>1?e(u.ERR_EXTRA_SCRIPT,n):(t=a[0],"language"===t.type()&&(i=t.script(),i&&i.format()===n.format()&&e(u.ERR_SUPPRESS_SCRIPT,n)));break;case"variant":d.variant.length>1&&d.variant.some((function(e){return e.format()===n.format()}))&&e(u.ERR_DUPLICATE_VARIANT,n)}}),{language:[],extlang:[],variant:[],script:[],region:[]}),a.forEach((function(a,n,g){var t=this,i=g[n+1];i&&t[a.type()]>t[i.type()]&&e(u.ERR_WRONG_ORDER,[a,i])}),{language:4,extlang:5,script:6,region:7,variant:8}),t):(e(u.ERR_NO_LANGUAGE),t))},u.prototype.type=function(){var e=this.data.record;return e?e.Type:"tag"},u.prototype.added=function(){var e=this.data.record;return e&&e.Added},u.prototype.deprecated=function(){var e=this.data.record;return e&&e.Deprecated},u.prototype.descriptions=function(){var e=this.data.record;return e&&e.Description?e.Description:[]},u.prototype.format=function(){var e=this.data.tag;return e.split("-").reduce((function(e,a,n,g){if(0===n)return a;if(1===g[n-1].length)return e+"-"+a;switch(a.length){case 2:return e+"-"+a.toUpperCase();case 4:return e+"-"+a[0].toUpperCase()+a.substr(1)}return e+"-"+a}))}},"7cd6":function(e,a,n){var g=n("40c3"),t=n("5168")("iterator"),i=n("481b");e.exports=n("584a").getIteratorMethod=function(e){if(void 0!=e)return e[t]||e["@@iterator"]||i[g(e)]}},"7d0e":function(e,a,n){"use strict";var g=n("2665"),t=n.n(g);t.a},"7d7b":function(e,a,n){var g=n("e4ae"),t=n("7cd6");e.exports=n("584a").getIterator=function(e){var a=t(e);if("function"!=typeof a)throw TypeError(e+" is not iterable!");return g(a.call(e))}},"7e90":function(e,a,n){var g=n("d9f6"),t=n("e4ae"),i=n("c3a1");e.exports=n("8e60")?Object.defineProperties:function(e,a){t(e);var n,u=i(a),r=u.length,d=0;while(r>d)g.f(e,n=u[d++],a[n]);return e}},"7f20":function(e,a,n){var g=n("86cc").f,t=n("69a8"),i=n("2b4c")("toStringTag");e.exports=function(e,a,n){e&&!t(e=n?e:e.prototype,i)&&g(e,i,{configurable:!0,value:a})}},"7f71":function(e,a,n){},"7f7f":function(e,a,n){var g=n("86cc").f,t=Function.prototype,i=/^\s*function ([^ (]*)/,u="name";u in t||n("9e1e")&&g(t,u,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},8038:function(e,a,n){function g(){var e=0,a=1,n=2,g=3,t=4,i=5,u=6,r=7,d=8,o=9,l=10,p=11,s=12,c=13,b=14,y=15,S=16,h=17,A=0,T=1,m=2,f=3,D=4;function v(e,a){return 55296<=e.charCodeAt(a)&&e.charCodeAt(a)<=56319&&56320<=e.charCodeAt(a+1)&&e.charCodeAt(a+1)<=57343}function k(e,a){void 0===a&&(a=0);var n=e.charCodeAt(a);if(55296<=n&&n<=56319&&a=1){g=e.charCodeAt(a-1),t=n;return 55296<=g&&g<=56319?1024*(g-55296)+(t-56320)+65536:t}return n}function w(p,v,k){var w=[p].concat(v).concat([k]),x=w[w.length-2],M=k,j=w.lastIndexOf(b);if(j>1&&w.slice(1,j).every((function(e){return e==g}))&&-1==[g,c,h].indexOf(p))return m;var z=w.lastIndexOf(t);if(z>0&&w.slice(1,z).every((function(e){return e==t}))&&-1==[s,t].indexOf(x))return w.filter((function(e){return e==t})).length%2==1?f:D;if(x==e&&M==a)return A;if(x==n||x==e||x==a)return M==b&&v.every((function(e){return e==g}))?m:T;if(M==n||M==e||M==a)return T;if(x==u&&(M==u||M==r||M==o||M==l))return A;if(!(x!=o&&x!=r||M!=r&&M!=d))return A;if((x==l||x==d)&&M==d)return A;if(M==g||M==y)return A;if(M==i)return A;if(x==s)return A;var C=-1!=w.indexOf(g)?w.lastIndexOf(g)-1:w.length-2;return-1!=[c,h].indexOf(w[C])&&w.slice(C+1,-1).every((function(e){return e==g}))&&M==b?A:x==y&&-1!=[S,h].indexOf(M)?A:-1!=v.indexOf(t)?m:x==t&&M==t?A:T}function x(A){return 1536<=A&&A<=1541||1757==A||1807==A||2274==A||3406==A||69821==A||70082<=A&&A<=70083||72250==A||72326<=A&&A<=72329||73030==A?s:13==A?e:10==A?a:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||173==A||1564==A||6158==A||8203==A||8206<=A&&A<=8207||8232==A||8233==A||8234<=A&&A<=8238||8288<=A&&A<=8292||8293==A||8294<=A&&A<=8303||55296<=A&&A<=57343||65279==A||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||917504==A||917505==A||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?n:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||1471==A||1473<=A&&A<=1474||1476<=A&&A<=1477||1479==A||1552<=A&&A<=1562||1611<=A&&A<=1631||1648==A||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||1809==A||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||2362==A||2364==A||2369<=A&&A<=2376||2381==A||2385<=A&&A<=2391||2402<=A&&A<=2403||2433==A||2492==A||2494==A||2497<=A&&A<=2500||2509==A||2519==A||2530<=A&&A<=2531||2561<=A&&A<=2562||2620==A||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||2641==A||2672<=A&&A<=2673||2677==A||2689<=A&&A<=2690||2748==A||2753<=A&&A<=2757||2759<=A&&A<=2760||2765==A||2786<=A&&A<=2787||2810<=A&&A<=2815||2817==A||2876==A||2878==A||2879==A||2881<=A&&A<=2884||2893==A||2902==A||2903==A||2914<=A&&A<=2915||2946==A||3006==A||3008==A||3021==A||3031==A||3072==A||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||3201==A||3260==A||3263==A||3266==A||3270==A||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||3390==A||3393<=A&&A<=3396||3405==A||3415==A||3426<=A&&A<=3427||3530==A||3535==A||3538<=A&&A<=3540||3542==A||3551==A||3633==A||3636<=A&&A<=3642||3655<=A&&A<=3662||3761==A||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||3893==A||3895==A||3897==A||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||4038==A||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||4226==A||4229<=A&&A<=4230||4237==A||4253==A||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||6086==A||6089<=A&&A<=6099||6109==A||6155<=A&&A<=6157||6277<=A&&A<=6278||6313==A||6432<=A&&A<=6434||6439<=A&&A<=6440||6450==A||6457<=A&&A<=6459||6679<=A&&A<=6680||6683==A||6742==A||6744<=A&&A<=6750||6752==A||6754==A||6757<=A&&A<=6764||6771<=A&&A<=6780||6783==A||6832<=A&&A<=6845||6846==A||6912<=A&&A<=6915||6964==A||6966<=A&&A<=6970||6972==A||6978==A||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||7142==A||7144<=A&&A<=7145||7149==A||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||7405==A||7412==A||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||8204==A||8400<=A&&A<=8412||8413<=A&&A<=8416||8417==A||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||11647==A||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||42607==A||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||43010==A||43014==A||43019==A||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||43443==A||43446<=A&&A<=43449||43452==A||43493==A||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||43587==A||43596==A||43644==A||43696==A||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||43713==A||43756<=A&&A<=43757||43766==A||44005==A||44008==A||44013==A||64286==A||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||66045==A||66272==A||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||68159==A||68325<=A&&A<=68326||69633==A||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||70003==A||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||70196==A||70198<=A&&A<=70199||70206==A||70367==A||70371<=A&&A<=70378||70400<=A&&A<=70401||70460==A||70462==A||70464==A||70487==A||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||70726==A||70832==A||70835<=A&&A<=70840||70842==A||70845==A||70847<=A&&A<=70848||70850<=A&&A<=70851||71087==A||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||71229==A||71231<=A&&A<=71232||71339==A||71341==A||71344<=A&&A<=71349||71351==A||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||72263==A||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||72767==A||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||73018==A||73020<=A&&A<=73021||73023<=A&&A<=73029||73031==A||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||119141==A||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||121461==A||121476==A||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?g:127462<=A&&A<=127487?t:2307==A||2363==A||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||2563==A||2622<=A&&A<=2624||2691==A||2750<=A&&A<=2752||2761==A||2763<=A&&A<=2764||2818<=A&&A<=2819||2880==A||2887<=A&&A<=2888||2891<=A&&A<=2892||3007==A||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||3262==A||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||3635==A||3763==A||3902<=A&&A<=3903||3967==A||4145==A||4155<=A&&A<=4156||4182<=A&&A<=4183||4228==A||6070==A||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||6741==A||6743==A||6765<=A&&A<=6770||6916==A||6965==A||6971==A||6973<=A&&A<=6977||6979<=A&&A<=6980||7042==A||7073==A||7078<=A&&A<=7079||7082==A||7143==A||7146<=A&&A<=7148||7150==A||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||7393==A||7410<=A&&A<=7411||7415==A||43043<=A&&A<=43044||43047==A||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||43395==A||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||43597==A||43755==A||43758<=A&&A<=43759||43765==A||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||44012==A||69632==A||69634==A||69762==A||69808<=A&&A<=69810||69815<=A&&A<=69816||69932==A||70018==A||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||70197==A||70368<=A&&A<=70370||70402<=A&&A<=70403||70463==A||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||70725==A||70833<=A&&A<=70834||70841==A||70843<=A&&A<=70844||70846==A||70849==A||71088<=A&&A<=71089||71096<=A&&A<=71099||71102==A||71216<=A&&A<=71218||71227<=A&&A<=71228||71230==A||71340==A||71342<=A&&A<=71343||71350==A||71456<=A&&A<=71457||71462==A||72199<=A&&A<=72200||72249==A||72279<=A&&A<=72280||72343==A||72751==A||72766==A||72873==A||72881==A||72884==A||94033<=A&&A<=94078||119142==A||119149==A?i:4352<=A&&A<=4447||43360<=A&&A<=43388?u:4448<=A&&A<=4519||55216<=A&&A<=55238?r:4520<=A&&A<=4607||55243<=A&&A<=55291?d:44032==A||44060==A||44088==A||44116==A||44144==A||44172==A||44200==A||44228==A||44256==A||44284==A||44312==A||44340==A||44368==A||44396==A||44424==A||44452==A||44480==A||44508==A||44536==A||44564==A||44592==A||44620==A||44648==A||44676==A||44704==A||44732==A||44760==A||44788==A||44816==A||44844==A||44872==A||44900==A||44928==A||44956==A||44984==A||45012==A||45040==A||45068==A||45096==A||45124==A||45152==A||45180==A||45208==A||45236==A||45264==A||45292==A||45320==A||45348==A||45376==A||45404==A||45432==A||45460==A||45488==A||45516==A||45544==A||45572==A||45600==A||45628==A||45656==A||45684==A||45712==A||45740==A||45768==A||45796==A||45824==A||45852==A||45880==A||45908==A||45936==A||45964==A||45992==A||46020==A||46048==A||46076==A||46104==A||46132==A||46160==A||46188==A||46216==A||46244==A||46272==A||46300==A||46328==A||46356==A||46384==A||46412==A||46440==A||46468==A||46496==A||46524==A||46552==A||46580==A||46608==A||46636==A||46664==A||46692==A||46720==A||46748==A||46776==A||46804==A||46832==A||46860==A||46888==A||46916==A||46944==A||46972==A||47e3==A||47028==A||47056==A||47084==A||47112==A||47140==A||47168==A||47196==A||47224==A||47252==A||47280==A||47308==A||47336==A||47364==A||47392==A||47420==A||47448==A||47476==A||47504==A||47532==A||47560==A||47588==A||47616==A||47644==A||47672==A||47700==A||47728==A||47756==A||47784==A||47812==A||47840==A||47868==A||47896==A||47924==A||47952==A||47980==A||48008==A||48036==A||48064==A||48092==A||48120==A||48148==A||48176==A||48204==A||48232==A||48260==A||48288==A||48316==A||48344==A||48372==A||48400==A||48428==A||48456==A||48484==A||48512==A||48540==A||48568==A||48596==A||48624==A||48652==A||48680==A||48708==A||48736==A||48764==A||48792==A||48820==A||48848==A||48876==A||48904==A||48932==A||48960==A||48988==A||49016==A||49044==A||49072==A||49100==A||49128==A||49156==A||49184==A||49212==A||49240==A||49268==A||49296==A||49324==A||49352==A||49380==A||49408==A||49436==A||49464==A||49492==A||49520==A||49548==A||49576==A||49604==A||49632==A||49660==A||49688==A||49716==A||49744==A||49772==A||49800==A||49828==A||49856==A||49884==A||49912==A||49940==A||49968==A||49996==A||50024==A||50052==A||50080==A||50108==A||50136==A||50164==A||50192==A||50220==A||50248==A||50276==A||50304==A||50332==A||50360==A||50388==A||50416==A||50444==A||50472==A||50500==A||50528==A||50556==A||50584==A||50612==A||50640==A||50668==A||50696==A||50724==A||50752==A||50780==A||50808==A||50836==A||50864==A||50892==A||50920==A||50948==A||50976==A||51004==A||51032==A||51060==A||51088==A||51116==A||51144==A||51172==A||51200==A||51228==A||51256==A||51284==A||51312==A||51340==A||51368==A||51396==A||51424==A||51452==A||51480==A||51508==A||51536==A||51564==A||51592==A||51620==A||51648==A||51676==A||51704==A||51732==A||51760==A||51788==A||51816==A||51844==A||51872==A||51900==A||51928==A||51956==A||51984==A||52012==A||52040==A||52068==A||52096==A||52124==A||52152==A||52180==A||52208==A||52236==A||52264==A||52292==A||52320==A||52348==A||52376==A||52404==A||52432==A||52460==A||52488==A||52516==A||52544==A||52572==A||52600==A||52628==A||52656==A||52684==A||52712==A||52740==A||52768==A||52796==A||52824==A||52852==A||52880==A||52908==A||52936==A||52964==A||52992==A||53020==A||53048==A||53076==A||53104==A||53132==A||53160==A||53188==A||53216==A||53244==A||53272==A||53300==A||53328==A||53356==A||53384==A||53412==A||53440==A||53468==A||53496==A||53524==A||53552==A||53580==A||53608==A||53636==A||53664==A||53692==A||53720==A||53748==A||53776==A||53804==A||53832==A||53860==A||53888==A||53916==A||53944==A||53972==A||54e3==A||54028==A||54056==A||54084==A||54112==A||54140==A||54168==A||54196==A||54224==A||54252==A||54280==A||54308==A||54336==A||54364==A||54392==A||54420==A||54448==A||54476==A||54504==A||54532==A||54560==A||54588==A||54616==A||54644==A||54672==A||54700==A||54728==A||54756==A||54784==A||54812==A||54840==A||54868==A||54896==A||54924==A||54952==A||54980==A||55008==A||55036==A||55064==A||55092==A||55120==A||55148==A||55176==A?o:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?l:9757==A||9977==A||9994<=A&&A<=9997||127877==A||127938<=A&&A<=127940||127943==A||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||128110==A||128112<=A&&A<=128120||128124==A||128129<=A&&A<=128131||128133<=A&&A<=128135||128170==A||128372<=A&&A<=128373||128378==A||128400==A||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||128675==A||128692<=A&&A<=128694||128704==A||128716==A||129304<=A&&A<=129308||129310<=A&&A<=129311||129318==A||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?c:127995<=A&&A<=127999?b:8205==A?y:9792==A||9794==A||9877<=A&&A<=9878||9992==A||10084==A||127752==A||127806==A||127859==A||127891==A||127908==A||127912==A||127979==A||127981==A||128139==A||128187<=A&&A<=128188||128295==A||128300==A||128488==A||128640==A||128658==A?S:128102<=A&&A<=128105?h:p}return this.nextBreak=function(e,a){if(void 0===a&&(a=0),a<0)return 0;if(a>=e.length-1)return e.length;for(var n=x(k(e,a)),g=[],t=a+1;t - * @license MIT: http://mattcg.mit-license.org/ - * @copyright Copyright (c) 2013, Matthew Caruana Galizia - */var g=n("36fe"),t=n("9200");function i(e,a){var n,u,r,d;e=e.toLowerCase(),a=a.toLowerCase(),d=function(a,n){var g;throw g=new Error(n),g.code=a,g.subtag=e,g},n=g[e],n||d(i.ERR_NONEXISTENT,"Non-existent subtag '"+e+"'."),u=n[a],u||0===u||d(i.ERR_NONEXISTENT,"Non-existent subtag '"+e+"' of type '"+a+"'."),r=t[u],r.Subtag||d(i.ERR_TAG,"'"+e+"' is a '"+a+"' tag."),this.data={},this.data.subtag=e,this.data.record=r,this.data.type=a}e.exports=i,i.ERR_NONEXISTENT=1,i.ERR_TAG=2,i.prototype.type=function(){return this.data.type},i.prototype.descriptions=function(){return this.data.record.Description},i.prototype.preferred=function(){var e,a=this.data.record["Preferred-Value"];return a?(e=this.data.type,"extlang"===e&&(e="language"),new i(a,e)):null},i.prototype.script=function(){var e=this.data.record["Suppress-Script"];return e?new i(e,"script"):null},i.prototype.scope=function(){return this.data.record.Scope||null},i.prototype.deprecated=function(){return this.data.record.Deprecated||null},i.prototype.added=function(){return this.data.record.Added},i.prototype.comments=function(){return this.data.record.Comments||[]},i.prototype.format=function(){var e=this.data.subtag;switch(this.data.type){case"region":return e.toUpperCase();case"script":return e[0].toUpperCase()+e.substr(1)}return e},i.prototype.toString=function(){return this.format()}},8079:function(e,a,n){var g=n("7726"),t=n("1991").set,i=g.MutationObserver||g.WebKitMutationObserver,u=g.process,r=g.Promise,d="process"==n("2d95")(u);e.exports=function(){var e,a,n,o=function(){var g,t;d&&(g=u.domain)&&g.exit();while(e){t=e.fn,e=e.next;try{t()}catch(i){throw e?n():a=void 0,i}}a=void 0,g&&g.enter()};if(d)n=function(){u.nextTick(o)};else if(!i||g.navigator&&g.navigator.standalone)if(r&&r.resolve){var l=r.resolve(void 0);n=function(){l.then(o)}}else n=function(){t.call(g,o)};else{var p=!0,s=document.createTextNode("");new i(o).observe(s,{characterData:!0}),n=function(){s.data=p=!p}}return function(g){var t={fn:g,next:void 0};a&&(a.next=t),e||(e=t,n()),a=t}}},"81b1":function(e,a){e["exports"]=function(e){return function(a,n,g){if(" "===a)return a;switch(n%3){case 0:return e.red(a);case 1:return e.white(a);case 2:return e.blue(a)}}}},8378:function(e,a){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},8436:function(e,a){e.exports=function(){}},"84a2":function(e,a,n){(function(a){var n="Expected a function",g=NaN,t="[object Symbol]",i=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,d=/^0o[0-7]+$/i,o=parseInt,l="object"==typeof a&&a&&a.Object===Object&&a,p="object"==typeof self&&self&&self.Object===Object&&self,s=l||p||Function("return this")(),c=Object.prototype,b=c.toString,y=Math.max,S=Math.min,h=function(){return s.Date.now()};function A(e,a,g){var t,i,u,r,d,o,l=0,p=!1,s=!1,c=!0;if("function"!=typeof e)throw new TypeError(n);function b(a){var n=t,g=i;return t=i=void 0,l=a,r=e.apply(g,n),r}function A(e){return l=e,d=setTimeout(D,a),p?b(e):r}function T(e){var n=e-o,g=e-l,t=a-n;return s?S(t,u-g):t}function f(e){var n=e-o,g=e-l;return void 0===o||n>=a||n<0||s&&g>=u}function D(){var e=h();if(f(e))return k(e);d=setTimeout(D,T(e))}function k(e){return d=void 0,c&&t?b(e):(t=i=void 0,r)}function w(){void 0!==d&&clearTimeout(d),l=0,t=o=i=d=void 0}function x(){return void 0===d?r:k(h())}function M(){var e=h(),n=f(e);if(t=arguments,i=this,o=e,n){if(void 0===d)return A(o);if(s)return d=setTimeout(D,a),b(o)}return void 0===d&&(d=setTimeout(D,a)),r}return a=v(a)||0,m(g)&&(p=!!g.leading,s="maxWait"in g,u=s?y(v(g.maxWait)||0,a):u,c="trailing"in g?!!g.trailing:c),M.cancel=w,M.flush=x,M}function T(e,a,g){var t=!0,i=!0;if("function"!=typeof e)throw new TypeError(n);return m(g)&&(t="leading"in g?!!g.leading:t,i="trailing"in g?!!g.trailing:i),A(e,a,{leading:t,maxWait:a,trailing:i})}function m(e){var a=typeof e;return!!e&&("object"==a||"function"==a)}function f(e){return!!e&&"object"==typeof e}function D(e){return"symbol"==typeof e||f(e)&&b.call(e)==t}function v(e){if("number"==typeof e)return e;if(D(e))return g;if(m(e)){var a="function"==typeof e.valueOf?e.valueOf():e;e=m(a)?a+"":a}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var n=r.test(e);return n||d.test(e)?o(e.slice(2),n?2:8):u.test(e)?g:+e}e.exports=T}).call(this,n("c8ba"))},"84f2":function(e,a){e.exports={}},"85f2":function(e,a,n){e.exports=n("454f")},"85fe":function(e,a,n){"use strict";(function(e){function n(e){return n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function g(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}function t(e,a){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{},r=function(r){for(var d=arguments.length,o=new Array(d>1?d-1:0),l=1;l1){var g=e.find((function(e){return e.isIntersecting}));g&&(a=g)}if(n.callback){var t=a.isIntersecting&&a.intersectionRatio>=n.threshold;if(t===n.oldResult)return;n.oldResult=t,n.callback(t,a)}}),this.options.intersection),a.context.$nextTick((function(){n.observer&&n.observer.observe(n.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&this.options.intersection.threshold||0}}]),e}();function b(e,a,n){var g=a.value;if(g)if("undefined"===typeof IntersectionObserver)console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var t=new c(e,g,n);e._vue_visibilityState=t}}function y(e,a,n){var g=a.value,t=a.oldValue;if(!s(g,t)){var i=e._vue_visibilityState;g?i?i.createObserver(g,n):b(e,{value:g},n):S(e)}}function S(e){var a=e._vue_visibilityState;a&&(a.destroyObserver(),delete e._vue_visibilityState)}var h={bind:b,update:y,unbind:S};function A(e){e.directive("observe-visibility",h)}var T={version:"0.4.6",install:A},m=null;"undefined"!==typeof window?m=window.Vue:"undefined"!==typeof e&&(m=e.Vue),m&&m.use(T),a["a"]=T}).call(this,n("c8ba"))},"86cc":function(e,a,n){var g=n("cb7c"),t=n("c69a"),i=n("6a99"),u=Object.defineProperty;a.f=n("9e1e")?Object.defineProperty:function(e,a,n){if(g(e),a=i(a,!0),g(n),t)try{return u(e,a,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[a]=n.value),e}},8758:function(e,a,n){},"89d0":function(e,a){var n={};e["exports"]=n;var g={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(g).forEach((function(e){var a=g[e],t=n[e]=[];t.open="["+a[0]+"m",t.close="["+a[1]+"m"}))},"8aae":function(e,a,n){n("32a6"),e.exports=n("584a").Object.keys},"8b97":function(e,a,n){var g=n("d3f4"),t=n("cb7c"),i=function(e,a){if(t(e),!g(a)&&null!==a)throw TypeError(a+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,a,g){try{g=n("9b43")(Function.call,n("11e9").f(Object.prototype,"__proto__").set,2),g(e,[]),a=!(e instanceof Array)}catch(t){a=!0}return function(e,n){return i(e,n),a?e.__proto__=n:g(e,n),e}}({},!1):void 0),check:i}},"8be7":function(e,a,n){"use strict";var g=n("03b5"),t=n.n(g);t.a},"8c4f":function(e,a,n){"use strict"; -/*! - * vue-router v3.4.6 - * (c) 2020 Evan You - * @license MIT - */function g(e,a){0}function t(e,a){for(var n in a)e[n]=a[n];return e}var i=/[!'()*]/g,u=function(e){return"%"+e.charCodeAt(0).toString(16)},r=/%2C/g,d=function(e){return encodeURIComponent(e).replace(i,u).replace(r,",")};function o(e){try{return decodeURIComponent(e)}catch(a){0}return e}function l(e,a,n){void 0===a&&(a={});var g,t=n||s;try{g=t(e||"")}catch(r){g={}}for(var i in a){var u=a[i];g[i]=Array.isArray(u)?u.map(p):p(u)}return g}var p=function(e){return null==e||"object"===typeof e?e:String(e)};function s(e){var a={};return e=e.trim().replace(/^(\?|#|&)/,""),e?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),g=o(n.shift()),t=n.length>0?o(n.join("=")):null;void 0===a[g]?a[g]=t:Array.isArray(a[g])?a[g].push(t):a[g]=[a[g],t]})),a):a}function c(e){var a=e?Object.keys(e).map((function(a){var n=e[a];if(void 0===n)return"";if(null===n)return d(a);if(Array.isArray(n)){var g=[];return n.forEach((function(e){void 0!==e&&(null===e?g.push(d(a)):g.push(d(a)+"="+d(e)))})),g.join("&")}return d(a)+"="+d(n)})).filter((function(e){return e.length>0})).join("&"):null;return a?"?"+a:""}var b=/\/?$/;function y(e,a,n,g){var t=g&&g.options.stringifyQuery,i=a.query||{};try{i=S(i)}catch(r){}var u={name:a.name||e&&e.name,meta:e&&e.meta||{},path:a.path||"/",hash:a.hash||"",query:i,params:a.params||{},fullPath:T(a,t),matched:e?A(e):[]};return n&&(u.redirectedFrom=T(n,t)),Object.freeze(u)}function S(e){if(Array.isArray(e))return e.map(S);if(e&&"object"===typeof e){var a={};for(var n in e)a[n]=S(e[n]);return a}return e}var h=y(null,{path:"/"});function A(e){var a=[];while(e)a.unshift(e),e=e.parent;return a}function T(e,a){var n=e.path,g=e.query;void 0===g&&(g={});var t=e.hash;void 0===t&&(t="");var i=a||c;return(n||"/")+i(g)+t}function m(e,a){return a===h?e===a:!!a&&(e.path&&a.path?e.path.replace(b,"")===a.path.replace(b,"")&&e.hash===a.hash&&f(e.query,a.query):!(!e.name||!a.name)&&(e.name===a.name&&e.hash===a.hash&&f(e.query,a.query)&&f(e.params,a.params)))}function f(e,a){if(void 0===e&&(e={}),void 0===a&&(a={}),!e||!a)return e===a;var n=Object.keys(e),g=Object.keys(a);return n.length===g.length&&n.every((function(n){var g=e[n],t=a[n];return null==g||null==t?g===t:"object"===typeof g&&"object"===typeof t?f(g,t):String(g)===String(t)}))}function D(e,a){return 0===e.path.replace(b,"/").indexOf(a.path.replace(b,"/"))&&(!a.hash||e.hash===a.hash)&&v(e.query,a.query)}function v(e,a){for(var n in a)if(!(n in e))return!1;return!0}function k(e){for(var a=0;a=0&&(a=e.slice(g),e=e.slice(0,g));var t=e.indexOf("?");return t>=0&&(n=e.slice(t+1),e=e.slice(0,t)),{path:e,query:n,hash:a}}function C(e){return e.replace(/\/\//g,"/")}var P=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},L=J,N=K,_=q,E=H,B=Z,O=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function K(e,a){var n,g=[],t=0,i=0,u="",r=a&&a.delimiter||"/";while(null!=(n=O.exec(e))){var d=n[0],o=n[1],l=n.index;if(u+=e.slice(i,l),i=l+d.length,o)u+=o[1];else{var p=e[i],s=n[2],c=n[3],b=n[4],y=n[5],S=n[6],h=n[7];u&&(g.push(u),u="");var A=null!=s&&null!=p&&p!==s,T="+"===S||"*"===S,m="?"===S||"*"===S,f=n[2]||r,D=b||y;g.push({name:c||t++,prefix:s||"",delimiter:f,optional:m,repeat:T,partial:A,asterisk:!!h,pattern:D?V(D):h?".*":"[^"+G(f)+"]+?"})}}return i1||!k.length)return 0===k.length?e():e("span",{},k)}if("a"===this.tag)v.on=f,v.attrs={href:d,"aria-current":A};else{var w=re(this.$slots.default);if(w){w.isStatic=!1;var x=w.data=t({},w.data);for(var M in x.on=x.on||{},x.on){var j=x.on[M];M in f&&(x.on[M]=Array.isArray(j)?j:[j])}for(var z in f)z in x.on?x.on[z].push(f[z]):x.on[z]=T;var C=w.data.attrs=t({},w.data.attrs);C.href=d,C["aria-current"]=A}else v.on=f}return e(this.tag,v,this.$slots.default)}};function ue(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(void 0===e.button||0===e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var a=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(a))return}return e.preventDefault&&e.preventDefault(),!0}}function re(e){if(e)for(var a,n=0;n-1&&(r.params[s]=n.params[s]);return r.path=Q(o.path,r.params,'named route "'+d+'"'),l(o,r,u)}if(r.path){r.params={};for(var c=0;c=e.length?n():e[t]?a(e[t],(function(){g(t+1)})):g(t+1)};g(0)}var qe={redirected:2,aborted:4,cancelled:8,duplicated:16};function Ie(e,a){return Ve(e,a,qe.redirected,'Redirected when going from "'+e.fullPath+'" to "'+We(a)+'" via a navigation guard.')}function Re(e,a){var n=Ve(e,a,qe.duplicated,'Avoided redundant navigation to current location: "'+e.fullPath+'".');return n.name="NavigationDuplicated",n}function He(e,a){return Ve(e,a,qe.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+a.fullPath+'" with a new navigation.')}function Ge(e,a){return Ve(e,a,qe.aborted,'Navigation aborted from "'+e.fullPath+'" to "'+a.fullPath+'" via a navigation guard.')}function Ve(e,a,n,g){var t=new Error(g);return t._isRouter=!0,t.from=e,t.to=a,t.type=n,t}var Fe=["params","query","hash"];function We(e){if("string"===typeof e)return e;if("path"in e)return e.path;var a={};return Fe.forEach((function(n){n in e&&(a[n]=e[n])})),JSON.stringify(a,null,2)}function Ue(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function $e(e,a){return Ue(e)&&e._isRouter&&(null==a||e.type===a)}function Ye(e){return function(a,n,g){var t=!1,i=0,u=null;Ze(e,(function(e,a,n,r){if("function"===typeof e&&void 0===e.cid){t=!0,i++;var d,o=ea((function(a){Qe(a)&&(a=a.default),e.resolved="function"===typeof a?a:ae.extend(a),n.components[r]=a,i--,i<=0&&g()})),l=ea((function(e){var a="Failed to resolve async component "+r+": "+e;u||(u=Ue(e)?e:new Error(a),g(u))}));try{d=e(o,l)}catch(s){l(s)}if(d)if("function"===typeof d.then)d.then(o,l);else{var p=d.component;p&&"function"===typeof p.then&&p.then(o,l)}}})),t||g()}}function Ze(e,a){return Je(e.map((function(e){return Object.keys(e.components).map((function(n){return a(e.components[n],e.instances[n],e,n)}))})))}function Je(e){return Array.prototype.concat.apply([],e)}var Xe="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Qe(e){return e.__esModule||Xe&&"Module"===e[Symbol.toStringTag]}function ea(e){var a=!1;return function(){var n=[],g=arguments.length;while(g--)n[g]=arguments[g];if(!a)return a=!0,e.apply(this,n)}}var aa=function(e,a){this.router=e,this.base=na(a),this.current=h,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function na(e){if(!e)if(oe){var a=document.querySelector("base");e=a&&a.getAttribute("href")||"/",e=e.replace(/^https?:\/\/[^\/]+/,"")}else e="/";return"/"!==e.charAt(0)&&(e="/"+e),e.replace(/\/$/,"")}function ga(e,a){var n,g=Math.max(e.length,a.length);for(n=0;n0)){var a=this.router,n=a.options.scrollBehavior,g=Ee&&n;g&&this.listeners.push(ve());var t=function(){var n=e.current,t=sa(e.base);e.current===h&&t===e._startLocation||e.transitionTo(t,(function(e){g&&ke(a,e,n,!0)}))};window.addEventListener("popstate",t),this.listeners.push((function(){window.removeEventListener("popstate",t)}))}},a.prototype.go=function(e){window.history.go(e)},a.prototype.push=function(e,a,n){var g=this,t=this,i=t.current;this.transitionTo(e,(function(e){Be(C(g.base+e.fullPath)),ke(g.router,e,i,!1),a&&a(e)}),n)},a.prototype.replace=function(e,a,n){var g=this,t=this,i=t.current;this.transitionTo(e,(function(e){Oe(C(g.base+e.fullPath)),ke(g.router,e,i,!1),a&&a(e)}),n)},a.prototype.ensureURL=function(e){if(sa(this.base)!==this.current.fullPath){var a=C(this.base+this.current.fullPath);e?Be(a):Oe(a)}},a.prototype.getCurrentLocation=function(){return sa(this.base)},a}(aa);function sa(e){var a=window.location.pathname;return e&&0===a.toLowerCase().indexOf(e.toLowerCase())&&(a=a.slice(e.length)),(a||"/")+window.location.search+window.location.hash}var ca=function(e){function a(a,n,g){e.call(this,a,n),g&&ba(this.base)||ya()}return e&&(a.__proto__=e),a.prototype=Object.create(e&&e.prototype),a.prototype.constructor=a,a.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var a=this.router,n=a.options.scrollBehavior,g=Ee&&n;g&&this.listeners.push(ve());var t=function(){var a=e.current;ya()&&e.transitionTo(Sa(),(function(n){g&&ke(e.router,n,a,!0),Ee||Ta(n.fullPath)}))},i=Ee?"popstate":"hashchange";window.addEventListener(i,t),this.listeners.push((function(){window.removeEventListener(i,t)}))}},a.prototype.push=function(e,a,n){var g=this,t=this,i=t.current;this.transitionTo(e,(function(e){Aa(e.fullPath),ke(g.router,e,i,!1),a&&a(e)}),n)},a.prototype.replace=function(e,a,n){var g=this,t=this,i=t.current;this.transitionTo(e,(function(e){Ta(e.fullPath),ke(g.router,e,i,!1),a&&a(e)}),n)},a.prototype.go=function(e){window.history.go(e)},a.prototype.ensureURL=function(e){var a=this.current.fullPath;Sa()!==a&&(e?Aa(a):Ta(a))},a.prototype.getCurrentLocation=function(){return Sa()},a}(aa);function ba(e){var a=sa(e);if(!/^\/#/.test(a))return window.location.replace(C(e+"/#"+a)),!0}function ya(){var e=Sa();return"/"===e.charAt(0)||(Ta("/"+e),!1)}function Sa(){var e=window.location.href,a=e.indexOf("#");return a<0?"":(e=e.slice(a+1),e)}function ha(e){var a=window.location.href,n=a.indexOf("#"),g=n>=0?a.slice(0,n):a;return g+"#"+e}function Aa(e){Ee?Be(ha(e)):window.location.hash=e}function Ta(e){Ee?Oe(ha(e)):window.location.replace(ha(e))}var ma=function(e){function a(a,n){e.call(this,a,n),this.stack=[],this.index=-1}return e&&(a.__proto__=e),a.prototype=Object.create(e&&e.prototype),a.prototype.constructor=a,a.prototype.push=function(e,a,n){var g=this;this.transitionTo(e,(function(e){g.stack=g.stack.slice(0,g.index+1).concat(e),g.index++,a&&a(e)}),n)},a.prototype.replace=function(e,a,n){var g=this;this.transitionTo(e,(function(e){g.stack=g.stack.slice(0,g.index).concat(e),a&&a(e)}),n)},a.prototype.go=function(e){var a=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var g=this.stack[n];this.confirmTransition(g,(function(){var e=a.current;a.index=n,a.updateRoute(g),a.router.afterHooks.forEach((function(a){a&&a(g,e)}))}),(function(e){$e(e,qe.duplicated)&&(a.index=n)}))}},a.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},a.prototype.ensureURL=function(){},a}(aa),fa=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=be(e.routes||[],this);var a=e.mode||"hash";switch(this.fallback="history"===a&&!Ee&&!1!==e.fallback,this.fallback&&(a="hash"),oe||(a="abstract"),this.mode=a,a){case"history":this.history=new pa(this,e.base);break;case"hash":this.history=new ca(this,e.base,this.fallback);break;case"abstract":this.history=new ma(this,e.base);break;default:0}},Da={currentRoute:{configurable:!0}};function va(e,a){return e.push(a),function(){var n=e.indexOf(a);n>-1&&e.splice(n,1)}}function ka(e,a,n){var g="hash"===n?"#"+a:a;return e?C(e+"/"+g):g}fa.prototype.match=function(e,a,n){return this.matcher.match(e,a,n)},Da.currentRoute.get=function(){return this.history&&this.history.current},fa.prototype.init=function(e){var a=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=a.apps.indexOf(e);n>-1&&a.apps.splice(n,1),a.app===e&&(a.app=a.apps[0]||null),a.app||a.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof pa||n instanceof ca){var g=function(e){var g=n.current,t=a.options.scrollBehavior,i=Ee&&t;i&&"fullPath"in e&&ke(a,e,g,!1)},t=function(e){n.setupListeners(),g(e)};n.transitionTo(n.getCurrentLocation(),t,t)}n.listen((function(e){a.apps.forEach((function(a){a._route=e}))}))}},fa.prototype.beforeEach=function(e){return va(this.beforeHooks,e)},fa.prototype.beforeResolve=function(e){return va(this.resolveHooks,e)},fa.prototype.afterEach=function(e){return va(this.afterHooks,e)},fa.prototype.onReady=function(e,a){this.history.onReady(e,a)},fa.prototype.onError=function(e){this.history.onError(e)},fa.prototype.push=function(e,a,n){var g=this;if(!a&&!n&&"undefined"!==typeof Promise)return new Promise((function(a,n){g.history.push(e,a,n)}));this.history.push(e,a,n)},fa.prototype.replace=function(e,a,n){var g=this;if(!a&&!n&&"undefined"!==typeof Promise)return new Promise((function(a,n){g.history.replace(e,a,n)}));this.history.replace(e,a,n)},fa.prototype.go=function(e){this.history.go(e)},fa.prototype.back=function(){this.go(-1)},fa.prototype.forward=function(){this.go(1)},fa.prototype.getMatchedComponents=function(e){var a=e?e.matched?e:this.resolve(e).route:this.currentRoute;return a?[].concat.apply([],a.matched.map((function(e){return Object.keys(e.components).map((function(a){return e.components[a]}))}))):[]},fa.prototype.resolve=function(e,a,n){a=a||this.history.current;var g=ee(e,a,n,this),t=this.match(g,a),i=t.redirectedFrom||t.fullPath,u=this.history.base,r=ka(u,i,this.mode);return{location:g,route:t,href:r,normalizedTo:g,resolved:t}},fa.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==h&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(fa.prototype,Da),fa.install=de,fa.version="3.4.6",fa.isNavigationFailure=$e,fa.NavigationFailureType=qe,oe&&window.Vue&&window.Vue.use(fa),a["a"]=fa},"8e60":function(e,a,n){e.exports=!n("294c")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"8e6e":function(e,a,n){var g=n("5ca1"),t=n("990b"),i=n("6821"),u=n("11e9"),r=n("f1ae");g(g.S,"Object",{getOwnPropertyDescriptors:function(e){var a,n,g=i(e),d=u.f,o=t(g),l={},p=0;while(o.length>p)n=d(g,a=o[p++]),void 0!==n&&r(l,a,n);return l}})},"8f60":function(e,a,n){"use strict";var g=n("a159"),t=n("aebd"),i=n("45f2"),u={};n("35e8")(u,n("5168")("iterator"),(function(){return this})),e.exports=function(e,a,n){e.prototype=g(u,{next:t(1,n)}),i(e,a+" Iterator")}},"8ff0":function(e,a){if(![].flatMap){const e=(e,a)=>e.concat(a),a=(a,n)=>n.map(a).reduce(e,[]);Array.prototype.flatMap=function(e){return a(e,this)}}},9003:function(e,a,n){var g=n("6b4c");e.exports=Array.isArray||function(e){return"Array"==g(e)}},9093:function(e,a,n){var g=n("ce10"),t=n("e11e").concat("length","prototype");a.f=Object.getOwnPropertyNames||function(e){return g(e,t)}},9138:function(e,a,n){e.exports=n("35e8")},"91f7":function(e,a){e["exports"]=function(e,a){var n="";e=e||"Run the trap, drop the bass",e=e.split("");var g={a:["@","Ą","Ⱥ","Ʌ","Δ","Λ","Д"],b:["ß","Ɓ","Ƀ","ɮ","β","฿"],c:["©","Ȼ","Ͼ"],d:["Ð","Ɗ","Ԁ","ԁ","Ԃ","ԃ"],e:["Ë","ĕ","Ǝ","ɘ","Σ","ξ","Ҽ","੬"],f:["Ӻ"],g:["ɢ"],h:["Ħ","ƕ","Ң","Һ","Ӈ","Ԋ"],i:["༏"],j:["Ĵ"],k:["ĸ","Ҡ","Ӄ","Ԟ"],l:["Ĺ"],m:["ʍ","Ӎ","ӎ","Ԡ","ԡ","൩"],n:["Ñ","ŋ","Ɲ","Ͷ","Π","Ҋ"],o:["Ø","õ","ø","Ǿ","ʘ","Ѻ","ם","۝","๏"],p:["Ƿ","Ҏ"],q:["্"],r:["®","Ʀ","Ȑ","Ɍ","ʀ","Я"],s:["§","Ϟ","ϟ","Ϩ"],t:["Ł","Ŧ","ͳ"],u:["Ʊ","Ս"],v:["ט"],w:["Ш","Ѡ","Ѽ","൰"],x:["Ҳ","Ӿ","Ӽ","ӽ"],y:["¥","Ұ","Ӌ"],z:["Ƶ","ɀ"]};return e.forEach((function(e){e=e.toLowerCase();var a=g[e]||[" "],t=Math.floor(Math.random()*a.length);"undefined"!==typeof g[e]?n+=g[e][t]:n+=e})),n}},9200:function(e){e.exports=JSON.parse('[{"Type":"language","Subtag":"aa","Description":["Afar"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ab","Description":["Abkhazian"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"ae","Description":["Avestan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"af","Description":["Afrikaans"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ak","Description":["Akan"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"am","Description":["Amharic"],"Added":"2005-10-16","Suppress-Script":"Ethi"},{"Type":"language","Subtag":"an","Description":["Aragonese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ar","Description":["Arabic"],"Added":"2005-10-16","Suppress-Script":"Arab","Scope":"macrolanguage"},{"Type":"language","Subtag":"as","Description":["Assamese"],"Added":"2005-10-16","Suppress-Script":"Beng"},{"Type":"language","Subtag":"av","Description":["Avaric"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ay","Description":["Aymara"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"az","Description":["Azerbaijani"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"ba","Description":["Bashkir"],"Added":"2005-10-16"},{"Type":"language","Subtag":"be","Description":["Belarusian"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"bg","Description":["Bulgarian"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"bh","Description":["Bihari languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"bi","Description":["Bislama"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bm","Description":["Bambara"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bn","Description":["Bengali","Bangla"],"Added":"2005-10-16","Suppress-Script":"Beng"},{"Type":"language","Subtag":"bo","Description":["Tibetan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"br","Description":["Breton"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bs","Description":["Bosnian"],"Added":"2005-10-16","Suppress-Script":"Latn","Macrolanguage":"sh"},{"Type":"language","Subtag":"ca","Description":["Catalan","Valencian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ce","Description":["Chechen"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ch","Description":["Chamorro"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"co","Description":["Corsican"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cr","Description":["Cree"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"cs","Description":["Czech"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"cu","Description":["Church Slavic","Church Slavonic","Old Bulgarian","Old Church Slavonic","Old Slavonic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cv","Description":["Chuvash"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cy","Description":["Welsh"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"da","Description":["Danish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"de","Description":["German"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"dv","Description":["Dhivehi","Divehi","Maldivian"],"Added":"2005-10-16","Suppress-Script":"Thaa"},{"Type":"language","Subtag":"dz","Description":["Dzongkha"],"Added":"2005-10-16","Suppress-Script":"Tibt"},{"Type":"language","Subtag":"ee","Description":["Ewe"],"Added":"2005-10-16"},{"Type":"language","Subtag":"el","Description":["Modern Greek (1453-)"],"Added":"2005-10-16","Suppress-Script":"Grek"},{"Type":"language","Subtag":"en","Description":["English"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"eo","Description":["Esperanto"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"es","Description":["Spanish","Castilian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"et","Description":["Estonian"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"eu","Description":["Basque"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"fa","Description":["Persian"],"Added":"2005-10-16","Suppress-Script":"Arab","Scope":"macrolanguage"},{"Type":"language","Subtag":"ff","Description":["Fulah"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"fi","Description":["Finnish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"fj","Description":["Fijian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"fo","Description":["Faroese"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"fr","Description":["French"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"fy","Description":["Western Frisian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ga","Description":["Irish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"gd","Description":["Scottish Gaelic","Gaelic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gl","Description":["Galician"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"gn","Description":["Guarani"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"gu","Description":["Gujarati"],"Added":"2005-10-16","Suppress-Script":"Gujr"},{"Type":"language","Subtag":"gv","Description":["Manx"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ha","Description":["Hausa"],"Added":"2005-10-16"},{"Type":"language","Subtag":"he","Description":["Hebrew"],"Added":"2005-10-16","Suppress-Script":"Hebr"},{"Type":"language","Subtag":"hi","Description":["Hindi"],"Added":"2005-10-16","Suppress-Script":"Deva"},{"Type":"language","Subtag":"ho","Description":["Hiri Motu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"hr","Description":["Croatian"],"Added":"2005-10-16","Suppress-Script":"Latn","Macrolanguage":"sh"},{"Type":"language","Subtag":"ht","Description":["Haitian","Haitian Creole"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"hu","Description":["Hungarian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"hy","Description":["Armenian"],"Added":"2005-10-16","Suppress-Script":"Armn","Comments":["see also hyw"]},{"Type":"language","Subtag":"hz","Description":["Herero"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ia","Description":["Interlingua (International Auxiliary Language","Association)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"id","Description":["Indonesian"],"Added":"2005-10-16","Suppress-Script":"Latn","Macrolanguage":"ms"},{"Type":"language","Subtag":"ie","Description":["Interlingue","Occidental"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ig","Description":["Igbo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ii","Description":["Sichuan Yi","Nuosu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ik","Description":["Inupiaq"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"in","Description":["Indonesian"],"Added":"2005-10-16","Deprecated":"1989-01-01","Preferred-Value":"id","Suppress-Script":"Latn","Macrolanguage":"ms"},{"Type":"language","Subtag":"io","Description":["Ido"],"Added":"2005-10-16"},{"Type":"language","Subtag":"is","Description":["Icelandic"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"it","Description":["Italian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"iu","Description":["Inuktitut"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"iw","Description":["Hebrew"],"Added":"2005-10-16","Deprecated":"1989-01-01","Preferred-Value":"he","Suppress-Script":"Hebr"},{"Type":"language","Subtag":"ja","Description":["Japanese"],"Added":"2005-10-16","Suppress-Script":"Jpan"},{"Type":"language","Subtag":"ji","Description":["Yiddish"],"Added":"2005-10-16","Deprecated":"1989-01-01","Preferred-Value":"yi"},{"Type":"language","Subtag":"jv","Description":["Javanese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"jw","Description":["Javanese"],"Added":"2005-10-16","Deprecated":"2001-08-13","Preferred-Value":"jv","Comments":["published by error in Table 1 of ISO 639:1988"]},{"Type":"language","Subtag":"ka","Description":["Georgian"],"Added":"2005-10-16","Suppress-Script":"Geor"},{"Type":"language","Subtag":"kg","Description":["Kongo"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"ki","Description":["Kikuyu","Gikuyu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kj","Description":["Kuanyama","Kwanyama"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kk","Description":["Kazakh"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"kl","Description":["Kalaallisut","Greenlandic"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"km","Description":["Khmer","Central Khmer"],"Added":"2005-10-16","Suppress-Script":"Khmr"},{"Type":"language","Subtag":"kn","Description":["Kannada"],"Added":"2005-10-16","Suppress-Script":"Knda"},{"Type":"language","Subtag":"ko","Description":["Korean"],"Added":"2005-10-16","Suppress-Script":"Kore"},{"Type":"language","Subtag":"kr","Description":["Kanuri"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"ks","Description":["Kashmiri"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ku","Description":["Kurdish"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"kv","Description":["Komi"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"kw","Description":["Cornish"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ky","Description":["Kirghiz","Kyrgyz"],"Added":"2005-10-16"},{"Type":"language","Subtag":"la","Description":["Latin"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"lb","Description":["Luxembourgish","Letzeburgesch"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"lg","Description":["Ganda","Luganda"],"Added":"2005-10-16"},{"Type":"language","Subtag":"li","Description":["Limburgan","Limburger","Limburgish"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ln","Description":["Lingala"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"lo","Description":["Lao"],"Added":"2005-10-16","Suppress-Script":"Laoo"},{"Type":"language","Subtag":"lt","Description":["Lithuanian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"lu","Description":["Luba-Katanga"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lv","Description":["Latvian"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"mg","Description":["Malagasy"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"mh","Description":["Marshallese"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"mi","Description":["Maori"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mk","Description":["Macedonian"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"ml","Description":["Malayalam"],"Added":"2005-10-16","Suppress-Script":"Mlym"},{"Type":"language","Subtag":"mn","Description":["Mongolian"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"mo","Description":["Moldavian","Moldovan"],"Added":"2005-10-16","Deprecated":"2008-11-22","Preferred-Value":"ro","Suppress-Script":"Latn"},{"Type":"language","Subtag":"mr","Description":["Marathi"],"Added":"2005-10-16","Suppress-Script":"Deva"},{"Type":"language","Subtag":"ms","Description":["Malay (macrolanguage)"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"mt","Description":["Maltese"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"my","Description":["Burmese"],"Added":"2005-10-16","Suppress-Script":"Mymr"},{"Type":"language","Subtag":"na","Description":["Nauru"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"nb","Description":["Norwegian Bokmål"],"Added":"2005-10-16","Suppress-Script":"Latn","Macrolanguage":"no"},{"Type":"language","Subtag":"nd","Description":["North Ndebele"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ne","Description":["Nepali (macrolanguage)"],"Added":"2005-10-16","Suppress-Script":"Deva","Scope":"macrolanguage"},{"Type":"language","Subtag":"ng","Description":["Ndonga"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nl","Description":["Dutch","Flemish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"nn","Description":["Norwegian Nynorsk"],"Added":"2005-10-16","Suppress-Script":"Latn","Macrolanguage":"no"},{"Type":"language","Subtag":"no","Description":["Norwegian"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"nr","Description":["South Ndebele"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"nv","Description":["Navajo","Navaho"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ny","Description":["Nyanja","Chewa","Chichewa"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"oc","Description":["Occitan (post 1500)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"oj","Description":["Ojibwa"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"om","Description":["Oromo"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"or","Description":["Oriya (macrolanguage)","Odia (macrolanguage)"],"Added":"2005-10-16","Suppress-Script":"Orya","Scope":"macrolanguage"},{"Type":"language","Subtag":"os","Description":["Ossetian","Ossetic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pa","Description":["Panjabi","Punjabi"],"Added":"2005-10-16","Suppress-Script":"Guru"},{"Type":"language","Subtag":"pi","Description":["Pali"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pl","Description":["Polish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ps","Description":["Pushto","Pashto"],"Added":"2005-10-16","Suppress-Script":"Arab","Scope":"macrolanguage"},{"Type":"language","Subtag":"pt","Description":["Portuguese"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"qu","Description":["Quechua"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"rm","Description":["Romansh"],"Suppress-Script":"Latn","Added":"2005-10-16"},{"Type":"language","Subtag":"rn","Description":["Rundi"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ro","Description":["Romanian","Moldavian","Moldovan"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ru","Description":["Russian"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"rw","Description":["Kinyarwanda"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sa","Description":["Sanskrit"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sc","Description":["Sardinian"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"sd","Description":["Sindhi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"se","Description":["Northern Sami"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sg","Description":["Sango"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sh","Description":["Serbo-Croatian"],"Added":"2005-10-16","Scope":"macrolanguage","Comments":["sr, hr, bs are preferred for most modern uses"]},{"Type":"language","Subtag":"si","Description":["Sinhala","Sinhalese"],"Added":"2005-10-16","Suppress-Script":"Sinh"},{"Type":"language","Subtag":"sk","Description":["Slovak"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sl","Description":["Slovenian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sm","Description":["Samoan"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sn","Description":["Shona"],"Added":"2005-10-16"},{"Type":"language","Subtag":"so","Description":["Somali"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sq","Description":["Albanian"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"sr","Description":["Serbian"],"Added":"2005-10-16","Macrolanguage":"sh","Comments":["see cnr for Montenegrin"]},{"Type":"language","Subtag":"ss","Description":["Swati"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"st","Description":["Southern Sotho"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"su","Description":["Sundanese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sv","Description":["Swedish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"sw","Description":["Swahili (macrolanguage)"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"ta","Description":["Tamil"],"Added":"2005-10-16","Suppress-Script":"Taml"},{"Type":"language","Subtag":"te","Description":["Telugu"],"Added":"2005-10-16","Suppress-Script":"Telu"},{"Type":"language","Subtag":"tg","Description":["Tajik"],"Added":"2005-10-16"},{"Type":"language","Subtag":"th","Description":["Thai"],"Added":"2005-10-16","Suppress-Script":"Thai"},{"Type":"language","Subtag":"ti","Description":["Tigrinya"],"Added":"2005-10-16","Suppress-Script":"Ethi"},{"Type":"language","Subtag":"tk","Description":["Turkmen"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tl","Description":["Tagalog"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"tn","Description":["Tswana"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"to","Description":["Tonga (Tonga Islands)"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"tr","Description":["Turkish"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ts","Description":["Tsonga"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"tt","Description":["Tatar"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tw","Description":["Twi"],"Added":"2005-10-16","Macrolanguage":"ak"},{"Type":"language","Subtag":"ty","Description":["Tahitian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ug","Description":["Uighur","Uyghur"],"Added":"2005-10-16"},{"Type":"language","Subtag":"uk","Description":["Ukrainian"],"Added":"2005-10-16","Suppress-Script":"Cyrl"},{"Type":"language","Subtag":"ur","Description":["Urdu"],"Added":"2005-10-16","Suppress-Script":"Arab"},{"Type":"language","Subtag":"uz","Description":["Uzbek"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"ve","Description":["Venda"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"vi","Description":["Vietnamese"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"vo","Description":["Volapük"],"Added":"2005-10-16"},{"Type":"language","Subtag":"wa","Description":["Walloon"],"Added":"2005-10-16"},{"Type":"language","Subtag":"wo","Description":["Wolof"],"Added":"2005-10-16"},{"Type":"language","Subtag":"xh","Description":["Xhosa"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"yi","Description":["Yiddish"],"Added":"2005-10-16","Suppress-Script":"Hebr","Scope":"macrolanguage"},{"Type":"language","Subtag":"yo","Description":["Yoruba"],"Added":"2005-10-16"},{"Type":"language","Subtag":"za","Description":["Zhuang","Chuang"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"zh","Description":["Chinese"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"zu","Description":["Zulu"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"aaa","Description":["Ghotuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aab","Description":["Alumu-Tesu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aac","Description":["Ari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aad","Description":["Amal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aae","Description":["Arbëreshë Albanian"],"Added":"2009-07-29","Macrolanguage":"sq"},{"Type":"language","Subtag":"aaf","Description":["Aranadan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aag","Description":["Ambrak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aah","Description":["Abu\' Arapesh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aai","Description":["Arifama-Miniafia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aak","Description":["Ankave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aal","Description":["Afade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aam","Description":["Aramanik"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"aas"},{"Type":"language","Subtag":"aan","Description":["Anambé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aao","Description":["Algerian Saharan Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"aap","Description":["Pará Arára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aaq","Description":["Eastern Abnaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aas","Description":["Aasáx"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aat","Description":["Arvanitika Albanian"],"Added":"2009-07-29","Macrolanguage":"sq"},{"Type":"language","Subtag":"aau","Description":["Abau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aav","Description":["Austro-Asiatic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"aaw","Description":["Solong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aax","Description":["Mandobo Atas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aaz","Description":["Amarasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aba","Description":["Abé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abb","Description":["Bankon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abc","Description":["Ambala Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abd","Description":["Manide"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abe","Description":["Western Abnaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abf","Description":["Abai Sungai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abg","Description":["Abaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abh","Description":["Tajiki Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"abi","Description":["Abidji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abj","Description":["Aka-Bea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abl","Description":["Lampung Nyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abm","Description":["Abanyom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abn","Description":["Abua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abo","Description":["Abon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abp","Description":["Abellen Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abq","Description":["Abaza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abr","Description":["Abron"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abs","Description":["Ambonese Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abt","Description":["Ambulas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abu","Description":["Abure"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abv","Description":["Baharna Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"abw","Description":["Pal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abx","Description":["Inabaknon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aby","Description":["Aneme Wake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"abz","Description":["Abui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aca","Description":["Achagua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acb","Description":["Áncá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acd","Description":["Gikyode"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ace","Description":["Achinese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"acf","Description":["Saint Lucian Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ach","Description":["Acoli"],"Added":"2005-10-16"},{"Type":"language","Subtag":"aci","Description":["Aka-Cari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ack","Description":["Aka-Kora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acl","Description":["Akar-Bale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acm","Description":["Mesopotamian Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"acn","Description":["Achang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acp","Description":["Eastern Acipa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acq","Description":["Ta\'izzi-Adeni Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"acr","Description":["Achi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acs","Description":["Acroá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"act","Description":["Achterhoeks"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acu","Description":["Achuar-Shiwiar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acv","Description":["Achumawi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"acw","Description":["Hijazi Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"acx","Description":["Omani Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"acy","Description":["Cypriot Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"acz","Description":["Acheron"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ada","Description":["Adangme"],"Added":"2005-10-16"},{"Type":"language","Subtag":"adb","Description":["Adabe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"add","Description":["Lidzonka","Dzodinka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ade","Description":["Adele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adf","Description":["Dhofari Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"adg","Description":["Andegerebinha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adh","Description":["Adhola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adi","Description":["Adi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adj","Description":["Adioukrou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adl","Description":["Galo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adn","Description":["Adang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ado","Description":["Abu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adp","Description":["Adap"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"dz"},{"Type":"language","Subtag":"adq","Description":["Adangbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adr","Description":["Adonara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ads","Description":["Adamorobe Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adt","Description":["Adnyamathanha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adu","Description":["Aduge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adw","Description":["Amundava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"adx","Description":["Amdo Tibetan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ady","Description":["Adyghe","Adygei"],"Added":"2005-10-16"},{"Type":"language","Subtag":"adz","Description":["Adzera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aea","Description":["Areba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aeb","Description":["Tunisian Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"aec","Description":["Saidi Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"aed","Description":["Argentine Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aee","Description":["Northeast Pashai","Northeast Pashayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aek","Description":["Haeke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ael","Description":["Ambele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aem","Description":["Arem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aen","Description":["Armenian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aeq","Description":["Aer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aer","Description":["Eastern Arrernte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aes","Description":["Alsea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aeu","Description":["Akeu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aew","Description":["Ambakich"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aey","Description":["Amele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aez","Description":["Aeka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afa","Description":["Afro-Asiatic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"afb","Description":["Gulf Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"afd","Description":["Andai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afe","Description":["Putukwam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afg","Description":["Afghan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afh","Description":["Afrihili"],"Added":"2005-10-16"},{"Type":"language","Subtag":"afi","Description":["Akrukay","Chini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afk","Description":["Nanubae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afn","Description":["Defaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afo","Description":["Eloyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afp","Description":["Tapei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afs","Description":["Afro-Seminole Creole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aft","Description":["Afitti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afu","Description":["Awutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"afz","Description":["Obokuitai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aga","Description":["Aguano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agb","Description":["Legbo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agc","Description":["Agatu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agd","Description":["Agarabi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"age","Description":["Angal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agf","Description":["Arguni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agg","Description":["Angor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agh","Description":["Ngelima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agi","Description":["Agariya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agj","Description":["Argobba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agk","Description":["Isarog Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agl","Description":["Fembe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agm","Description":["Angaataha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agn","Description":["Agutaynen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ago","Description":["Tainae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agp","Description":["Paranan"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see apf, prf"]},{"Type":"language","Subtag":"agq","Description":["Aghem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agr","Description":["Aguaruna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ags","Description":["Esimbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agt","Description":["Central Cagayan Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agu","Description":["Aguacateco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agv","Description":["Remontado Dumagat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agw","Description":["Kahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agx","Description":["Aghul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agy","Description":["Southern Alta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"agz","Description":["Mt. Iriga Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aha","Description":["Ahanta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahb","Description":["Axamb"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahg","Description":["Qimant"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahh","Description":["Aghu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahi","Description":["Tiagbamrin Aizi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahk","Description":["Akha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahl","Description":["Igo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahm","Description":["Mobumrin Aizi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahn","Description":["Àhàn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aho","Description":["Ahom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahp","Description":["Aproumu Aizi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahr","Description":["Ahirani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ahs","Description":["Ashe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aht","Description":["Ahtena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aia","Description":["Arosi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aib","Description":["Ainu (China)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aic","Description":["Ainbai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aid","Description":["Alngith"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aie","Description":["Amara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aif","Description":["Agi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aig","Description":["Antigua and Barbuda Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aih","Description":["Ai-Cham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aii","Description":["Assyrian Neo-Aramaic"],"Added":"2009-07-29","Macrolanguage":"syr"},{"Type":"language","Subtag":"aij","Description":["Lishanid Noshan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aik","Description":["Ake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ail","Description":["Aimele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aim","Description":["Aimol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ain","Description":["Ainu (Japan)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"aio","Description":["Aiton"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aip","Description":["Burumakok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aiq","Description":["Aimaq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"air","Description":["Airoran"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ais","Description":["Nataoran Amis"],"Added":"2009-07-29","Deprecated":"2019-04-16","Comments":["see ami, szy"]},{"Type":"language","Subtag":"ait","Description":["Arikem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aiw","Description":["Aari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aix","Description":["Aighon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aiy","Description":["Ali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aja","Description":["Aja (South Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ajg","Description":["Aja (Benin)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aji","Description":["Ajië"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ajn","Description":["Andajin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"ajp","Description":["South Levantine Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ajt","Description":["Judeo-Tunisian Arabic"],"Added":"2009-07-29","Macrolanguage":"jrb"},{"Type":"language","Subtag":"aju","Description":["Judeo-Moroccan Arabic"],"Added":"2009-07-29","Macrolanguage":"jrb"},{"Type":"language","Subtag":"ajw","Description":["Ajawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ajz","Description":["Amri Karbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akb","Description":["Batak Angkola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akc","Description":["Mpur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akd","Description":["Ukpet-Ehom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ake","Description":["Akawaio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akf","Description":["Akpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akg","Description":["Anakalangu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akh","Description":["Angal Heneng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aki","Description":["Aiome"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akj","Description":["Aka-Jeru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akk","Description":["Akkadian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"akl","Description":["Aklanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akm","Description":["Aka-Bo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ako","Description":["Akurio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akp","Description":["Siwu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akq","Description":["Ak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akr","Description":["Araki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aks","Description":["Akaselem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akt","Description":["Akolet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aku","Description":["Akum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akv","Description":["Akhvakh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akw","Description":["Akwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akx","Description":["Aka-Kede"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aky","Description":["Aka-Kol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"akz","Description":["Alabama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ala","Description":["Alago"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alc","Description":["Qawasqar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ald","Description":["Alladian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ale","Description":["Aleut"],"Added":"2005-10-16"},{"Type":"language","Subtag":"alf","Description":["Alege"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alg","Description":["Algonquian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"alh","Description":["Alawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ali","Description":["Amaimon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alj","Description":["Alangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alk","Description":["Alak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"all","Description":["Allar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alm","Description":["Amblong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aln","Description":["Gheg Albanian"],"Added":"2009-07-29","Macrolanguage":"sq"},{"Type":"language","Subtag":"alo","Description":["Larike-Wakasihu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alp","Description":["Alune"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alq","Description":["Algonquin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alr","Description":["Alutor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"als","Description":["Tosk Albanian"],"Added":"2009-07-29","Macrolanguage":"sq"},{"Type":"language","Subtag":"alt","Description":["Southern Altai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"alu","Description":["\'Are\'are"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alv","Description":["Atlantic-Congo languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"alw","Description":["Alaba-K’abeena","Wanbasana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alx","Description":["Amol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aly","Description":["Alyawarr"],"Added":"2009-07-29"},{"Type":"language","Subtag":"alz","Description":["Alur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ama","Description":["Amanayé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amb","Description":["Ambo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amc","Description":["Amahuaca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ame","Description":["Yanesha\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amf","Description":["Hamer-Banna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amg","Description":["Amurdak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ami","Description":["Amis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amj","Description":["Amdang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amk","Description":["Ambai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aml","Description":["War-Jaintia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amm","Description":["Ama (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amn","Description":["Amanab"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amo","Description":["Amo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amp","Description":["Alamblak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amq","Description":["Amahai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amr","Description":["Amarakaeri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ams","Description":["Southern Amami-Oshima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amt","Description":["Amto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amu","Description":["Guerrero Amuzgo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amv","Description":["Ambelau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amw","Description":["Western Neo-Aramaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amx","Description":["Anmatyerre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amy","Description":["Ami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"amz","Description":["Atampaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ana","Description":["Andaqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anb","Description":["Andoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anc","Description":["Ngas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"and","Description":["Ansus"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ane","Description":["Xârâcùù"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anf","Description":["Animere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ang","Description":["Old English (ca. 450-1100)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"anh","Description":["Nend"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ani","Description":["Andi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anj","Description":["Anor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ank","Description":["Goemai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anl","Description":["Anu-Hkongso Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anm","Description":["Anal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ann","Description":["Obolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ano","Description":["Andoque"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anp","Description":["Angika"],"Added":"2006-03-08"},{"Type":"language","Subtag":"anq","Description":["Jarawa (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anr","Description":["Andh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ans","Description":["Anserma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ant","Description":["Antakarinya","Antikarinya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anu","Description":["Anuak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anv","Description":["Denya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anw","Description":["Anaang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anx","Description":["Andra-Hus"],"Added":"2009-07-29"},{"Type":"language","Subtag":"any","Description":["Anyin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"anz","Description":["Anem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoa","Description":["Angolar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aob","Description":["Abom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoc","Description":["Pemon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aod","Description":["Andarum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoe","Description":["Angal Enen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aof","Description":["Bragat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aog","Description":["Angoram"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoh","Description":["Arma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoi","Description":["Anindilyakwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoj","Description":["Mufian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aok","Description":["Arhö"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aol","Description":["Alor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aom","Description":["Ömie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aon","Description":["Bumbita Arapesh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aor","Description":["Aore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aos","Description":["Taikat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aot","Description":["Atong (India)","A\'tong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aou","Description":["A\'ou"],"Added":"2012-08-12"},{"Type":"language","Subtag":"aox","Description":["Atorada"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aoz","Description":["Uab Meto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apa","Description":["Apache languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"apb","Description":["Sa\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apc","Description":["North Levantine Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"apd","Description":["Sudanese Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ape","Description":["Bukiyip"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apf","Description":["Pahanan Agta"],"Added":"2010-03-11"},{"Type":"language","Subtag":"apg","Description":["Ampanang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aph","Description":["Athpariya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"api","Description":["Apiaká"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apj","Description":["Jicarilla Apache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apk","Description":["Kiowa Apache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apl","Description":["Lipan Apache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apm","Description":["Mescalero-Chiricahua Apache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apn","Description":["Apinayé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apo","Description":["Ambul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"app","Description":["Apma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apq","Description":["A-Pucikwar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apr","Description":["Arop-Lokep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aps","Description":["Arop-Sissano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apt","Description":["Apatani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apu","Description":["Apurinã"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apv","Description":["Alapmunte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apw","Description":["Western Apache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apx","Description":["Aputai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apy","Description":["Apalaí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"apz","Description":["Safeyoka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aqa","Description":["Alacalufan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"aqc","Description":["Archi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aqd","Description":["Ampari Dogon"],"Added":"2011-08-16"},{"Type":"language","Subtag":"aqg","Description":["Arigidi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aql","Description":["Algic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"aqm","Description":["Atohwaim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aqn","Description":["Northern Alta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aqp","Description":["Atakapa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aqr","Description":["Arhâ"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aqt","Description":["Angaité"],"Added":"2014-02-28"},{"Type":"language","Subtag":"aqz","Description":["Akuntsu"],"Added":"2010-03-11"},{"Type":"language","Subtag":"arb","Description":["Standard Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"arc","Description":["Official Aramaic (700-300 BCE)","Imperial Aramaic (700-300 BCE)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ard","Description":["Arabana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"are","Description":["Western Arrarnta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arh","Description":["Arhuaco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ari","Description":["Arikara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arj","Description":["Arapaso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ark","Description":["Arikapú"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arl","Description":["Arabela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arn","Description":["Mapudungun","Mapuche"],"Added":"2005-10-16"},{"Type":"language","Subtag":"aro","Description":["Araona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arp","Description":["Arapaho"],"Added":"2005-10-16"},{"Type":"language","Subtag":"arq","Description":["Algerian Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"arr","Description":["Karo (Brazil)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ars","Description":["Najdi Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"art","Description":["Artificial languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"aru","Description":["Aruá (Amazonas State)","Arawá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arv","Description":["Arbore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"arw","Description":["Arawak"],"Added":"2005-10-16"},{"Type":"language","Subtag":"arx","Description":["Aruá (Rodonia State)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ary","Description":["Moroccan Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"arz","Description":["Egyptian Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"asa","Description":["Asu (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asb","Description":["Assiniboine"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asc","Description":["Casuarina Coast Asmat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asd","Description":["Asas"],"Added":"2009-07-29","Deprecated":"2019-04-16","Preferred-Value":"snz"},{"Type":"language","Subtag":"ase","Description":["American Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asf","Description":["Auslan","Australian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asg","Description":["Cishingini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ash","Description":["Abishira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asi","Description":["Buruwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asj","Description":["Sari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ask","Description":["Ashkun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asl","Description":["Asilulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asn","Description":["Xingú Asuriní"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aso","Description":["Dano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asp","Description":["Algerian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asq","Description":["Austrian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asr","Description":["Asuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ass","Description":["Ipulo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ast","Description":["Asturian","Asturleonese","Bable","Leonese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"asu","Description":["Tocantins Asurini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asv","Description":["Asoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asw","Description":["Australian Aborigines Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asx","Description":["Muratayak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asy","Description":["Yaosakor Asmat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"asz","Description":["As"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ata","Description":["Pele-Ata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atb","Description":["Zaiwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atc","Description":["Atsahuaca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atd","Description":["Ata Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ate","Description":["Atemble"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atg","Description":["Ivbie North-Okpela-Arhe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ath","Description":["Athapascan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ati","Description":["Attié"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atj","Description":["Atikamekw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atk","Description":["Ati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atl","Description":["Mt. Iraya Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atm","Description":["Ata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atn","Description":["Ashtiani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ato","Description":["Atong (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atp","Description":["Pudtol Atta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atq","Description":["Aralle-Tabulahan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atr","Description":["Waimiri-Atroari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ats","Description":["Gros Ventre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"att","Description":["Pamplona Atta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atu","Description":["Reel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atv","Description":["Northern Altai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atw","Description":["Atsugewi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atx","Description":["Arutani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aty","Description":["Aneityum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"atz","Description":["Arta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aua","Description":["Asumboa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aub","Description":["Alugu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auc","Description":["Waorani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aud","Description":["Anuta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aue","Description":["ǂKxʼauǁʼein"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"ktz"},{"Type":"language","Subtag":"auf","Description":["Arauan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"aug","Description":["Aguna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auh","Description":["Aushi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aui","Description":["Anuki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auj","Description":["Awjilah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auk","Description":["Heyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aul","Description":["Aulua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aum","Description":["Asu (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aun","Description":["Molmo One"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auo","Description":["Auyokawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aup","Description":["Makayam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auq","Description":["Anus","Korur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aur","Description":["Aruek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aus","Description":["Australian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"aut","Description":["Austral"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auu","Description":["Auye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auw","Description":["Awyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aux","Description":["Aurá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auy","Description":["Awiyaana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"auz","Description":["Uzbeki Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"avb","Description":["Avau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avd","Description":["Alviri-Vidari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avi","Description":["Avikam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avk","Description":["Kotava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avl","Description":["Eastern Egyptian Bedawi Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"avm","Description":["Angkamuthi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"avn","Description":["Avatime"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avo","Description":["Agavotaguerra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avs","Description":["Aushiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avt","Description":["Au"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avu","Description":["Avokaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"avv","Description":["Avá-Canoeiro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awa","Description":["Awadhi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"awb","Description":["Awa (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awc","Description":["Cicipu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awd","Description":["Arawakan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"awe","Description":["Awetí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awg","Description":["Anguthimri"],"Added":"2012-08-12"},{"Type":"language","Subtag":"awh","Description":["Awbono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awi","Description":["Aekyom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awk","Description":["Awabakal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awm","Description":["Arawum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awn","Description":["Awngi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awo","Description":["Awak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awr","Description":["Awera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aws","Description":["South Awyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awt","Description":["Araweté"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awu","Description":["Central Awyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awv","Description":["Jair Awyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aww","Description":["Awun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awx","Description":["Awara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"awy","Description":["Edera Awyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"axb","Description":["Abipon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"axe","Description":["Ayerrerenge"],"Added":"2012-08-12"},{"Type":"language","Subtag":"axg","Description":["Mato Grosso Arára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"axk","Description":["Yaka (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"axl","Description":["Lower Southern Aranda"],"Added":"2013-09-10"},{"Type":"language","Subtag":"axm","Description":["Middle Armenian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"axx","Description":["Xârâgurè"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aya","Description":["Awar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayb","Description":["Ayizo Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayc","Description":["Southern Aymara"],"Added":"2009-07-29","Macrolanguage":"ay"},{"Type":"language","Subtag":"ayd","Description":["Ayabadhu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aye","Description":["Ayere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayg","Description":["Ginyanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayh","Description":["Hadrami Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ayi","Description":["Leyigha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayk","Description":["Akuku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayl","Description":["Libyan Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ayn","Description":["Sanaani Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ayo","Description":["Ayoreo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayp","Description":["North Mesopotamian Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ayq","Description":["Ayi (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayr","Description":["Central Aymara"],"Added":"2009-07-29","Macrolanguage":"ay"},{"Type":"language","Subtag":"ays","Description":["Sorsogon Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayt","Description":["Magbukun Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayu","Description":["Ayu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayx","Description":["Ayi (China)"],"Added":"2009-07-29","Deprecated":"2011-08-16","Preferred-Value":"nun"},{"Type":"language","Subtag":"ayy","Description":["Tayabas Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ayz","Description":["Mai Brat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"aza","Description":["Azha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"azb","Description":["South Azerbaijani"],"Added":"2009-07-29","Macrolanguage":"az"},{"Type":"language","Subtag":"azc","Description":["Uto-Aztecan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"azd","Description":["Eastern Durango Nahuatl"],"Added":"2012-08-12"},{"Type":"language","Subtag":"azg","Description":["San Pedro Amuzgos Amuzgo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"azj","Description":["North Azerbaijani"],"Added":"2009-07-29","Macrolanguage":"az"},{"Type":"language","Subtag":"azm","Description":["Ipalapa Amuzgo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"azn","Description":["Western Durango Nahuatl"],"Added":"2012-08-12"},{"Type":"language","Subtag":"azo","Description":["Awing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"azt","Description":["Faire Atta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"azz","Description":["Highland Puebla Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"baa","Description":["Babatana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bab","Description":["Bainouk-Gunyuño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bac","Description":["Badui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bad","Description":["Banda languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"bae","Description":["Baré"],"Added":"2009-07-29"},{"Type":"language","Subtag":"baf","Description":["Nubaca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bag","Description":["Tuki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bah","Description":["Bahamas Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bai","Description":["Bamileke languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"baj","Description":["Barakai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bal","Description":["Baluchi"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"ban","Description":["Balinese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bao","Description":["Waimaha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bap","Description":["Bantawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bar","Description":["Bavarian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bas","Description":["Basa (Cameroon)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bat","Description":["Baltic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"bau","Description":["Bada (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bav","Description":["Vengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"baw","Description":["Bambili-Bambui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bax","Description":["Bamun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bay","Description":["Batuley"],"Added":"2009-07-29"},{"Type":"language","Subtag":"baz","Description":["Tunen"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see nvo, tvu"]},{"Type":"language","Subtag":"bba","Description":["Baatonum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbb","Description":["Barai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbc","Description":["Batak Toba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbd","Description":["Bau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbe","Description":["Bangba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbf","Description":["Baibai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbg","Description":["Barama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbh","Description":["Bugan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbi","Description":["Barombi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbj","Description":["Ghomálá\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbk","Description":["Babanki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbl","Description":["Bats"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbm","Description":["Babango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbn","Description":["Uneapa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbo","Description":["Northern Bobo Madaré","Konabéré"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbp","Description":["West Central Banda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbq","Description":["Bamali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbr","Description":["Girawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbs","Description":["Bakpinka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbt","Description":["Mburku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbu","Description":["Kulung (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbv","Description":["Karnai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbw","Description":["Baba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbx","Description":["Bubia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bby","Description":["Befang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bbz","Description":["Babalia Creole Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"bca","Description":["Central Bai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcb","Description":["Bainouk-Samik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcc","Description":["Southern Balochi"],"Added":"2009-07-29","Macrolanguage":"bal"},{"Type":"language","Subtag":"bcd","Description":["North Babar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bce","Description":["Bamenyam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcf","Description":["Bamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcg","Description":["Baga Pokur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bch","Description":["Bariai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bci","Description":["Baoulé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcj","Description":["Bardi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bck","Description":["Bunuba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcl","Description":["Central Bikol"],"Added":"2009-07-29","Macrolanguage":"bik"},{"Type":"language","Subtag":"bcm","Description":["Bannoni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcn","Description":["Bali (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bco","Description":["Kaluli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcp","Description":["Bali (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcq","Description":["Bench"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcr","Description":["Babine"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcs","Description":["Kohumono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bct","Description":["Bendi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcu","Description":["Awad Bing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcv","Description":["Shoo-Minda-Nye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcw","Description":["Bana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcy","Description":["Bacama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bcz","Description":["Bainouk-Gunyaamolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bda","Description":["Bayot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdb","Description":["Basap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdc","Description":["Emberá-Baudó"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdd","Description":["Bunama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bde","Description":["Bade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdf","Description":["Biage"],"Added":"2010-03-11"},{"Type":"language","Subtag":"bdg","Description":["Bonggi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdh","Description":["Baka (South Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdi","Description":["Burun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdj","Description":["Bai (South Sudan)","Bai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdk","Description":["Budukh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdl","Description":["Indonesian Bajau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdm","Description":["Buduma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdn","Description":["Baldemu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdo","Description":["Morom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdp","Description":["Bende"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdq","Description":["Bahnar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdr","Description":["West Coast Bajau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bds","Description":["Burunge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdt","Description":["Bokoto"],"Added":"2009-07-29","Macrolanguage":"gba"},{"Type":"language","Subtag":"bdu","Description":["Oroko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdv","Description":["Bodo Parja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdw","Description":["Baham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdx","Description":["Budong-Budong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdy","Description":["Bandjalang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bdz","Description":["Badeshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bea","Description":["Beaver"],"Added":"2009-07-29"},{"Type":"language","Subtag":"beb","Description":["Bebele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bec","Description":["Iceve-Maci"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bed","Description":["Bedoanas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bee","Description":["Byangsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bef","Description":["Benabena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"beg","Description":["Belait"],"Added":"2009-07-29"},{"Type":"language","Subtag":"beh","Description":["Biali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bei","Description":["Bekati\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bej","Description":["Beja","Bedawiyet"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bek","Description":["Bebeli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bem","Description":["Bemba (Zambia)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"beo","Description":["Beami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bep","Description":["Besoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"beq","Description":["Beembe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ber","Description":["Berber languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"bes","Description":["Besme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bet","Description":["Guiberoua Béte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"beu","Description":["Blagar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bev","Description":["Daloa Bété"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bew","Description":["Betawi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bex","Description":["Jur Modo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bey","Description":["Beli (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bez","Description":["Bena (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfa","Description":["Bari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfb","Description":["Pauri Bareli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfc","Description":["Panyi Bai","Northern Bai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfd","Description":["Bafut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfe","Description":["Betaf","Tena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bff","Description":["Bofi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfg","Description":["Busang Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfh","Description":["Blafe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfi","Description":["British Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfj","Description":["Bafanji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfk","Description":["Ban Khor Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfl","Description":["Banda-Ndélé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfm","Description":["Mmen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfn","Description":["Bunak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfo","Description":["Malba Birifor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfp","Description":["Beba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfq","Description":["Badaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfr","Description":["Bazigar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfs","Description":["Southern Bai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bft","Description":["Balti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfu","Description":["Gahri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfw","Description":["Bondo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfx","Description":["Bantayanon"],"Added":"2010-03-11"},{"Type":"language","Subtag":"bfy","Description":["Bagheli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bfz","Description":["Mahasu Pahari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bga","Description":["Gwamhi-Wuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgb","Description":["Bobongko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgc","Description":["Haryanvi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgd","Description":["Rathwi Bareli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bge","Description":["Bauria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgf","Description":["Bangandu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgg","Description":["Bugun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgi","Description":["Giangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgj","Description":["Bangolan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgk","Description":["Bit","Buxinhua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgl","Description":["Bo (Laos)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgm","Description":["Baga Mboteni"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"bcg"},{"Type":"language","Subtag":"bgn","Description":["Western Balochi"],"Added":"2009-07-29","Macrolanguage":"bal"},{"Type":"language","Subtag":"bgo","Description":["Baga Koga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgp","Description":["Eastern Balochi"],"Added":"2009-07-29","Macrolanguage":"bal"},{"Type":"language","Subtag":"bgq","Description":["Bagri"],"Added":"2009-07-29","Macrolanguage":"raj"},{"Type":"language","Subtag":"bgr","Description":["Bawm Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgs","Description":["Tagabawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgt","Description":["Bughotu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgu","Description":["Mbongno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgv","Description":["Warkay-Bipim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgw","Description":["Bhatri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgx","Description":["Balkan Gagauz Turkish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgy","Description":["Benggoi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bgz","Description":["Banggai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bha","Description":["Bharia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhb","Description":["Bhili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhc","Description":["Biga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhd","Description":["Bhadrawahi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhe","Description":["Bhaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhf","Description":["Odiai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhg","Description":["Binandere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhh","Description":["Bukharic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhi","Description":["Bhilali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhj","Description":["Bahing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhk","Description":["Albay Bicolano"],"Added":"2009-07-29","Deprecated":"2010-03-11","Macrolanguage":"bik","Comments":["see fbl, lbl, rbl, ubl"]},{"Type":"language","Subtag":"bhl","Description":["Bimin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhm","Description":["Bathari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhn","Description":["Bohtan Neo-Aramaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bho","Description":["Bhojpuri"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bhp","Description":["Bima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhq","Description":["Tukang Besi South"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhr","Description":["Bara Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"bhs","Description":["Buwal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bht","Description":["Bhattiyali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhu","Description":["Bhunjia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhv","Description":["Bahau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhw","Description":["Biak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhx","Description":["Bhalay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhy","Description":["Bhele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bhz","Description":["Bada (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bia","Description":["Badimaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bib","Description":["Bissa","Bisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bic","Description":["Bikaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bid","Description":["Bidiyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bie","Description":["Bepour"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bif","Description":["Biafada"],"Added":"2009-07-29"},{"Type":"language","Subtag":"big","Description":["Biangai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bij","Description":["Vaghat-Ya-Bijim-Legeri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bik","Description":["Bikol"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"bil","Description":["Bile"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bim","Description":["Bimoba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bin","Description":["Bini","Edo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"bio","Description":["Nai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bip","Description":["Bila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"biq","Description":["Bipi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bir","Description":["Bisorio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bit","Description":["Berinomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"biu","Description":["Biete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"biv","Description":["Southern Birifor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"biw","Description":["Kol (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bix","Description":["Bijori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"biy","Description":["Birhor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"biz","Description":["Baloi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bja","Description":["Budza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjb","Description":["Banggarla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjc","Description":["Bariji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjd","Description":["Bandjigali"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"drl"},{"Type":"language","Subtag":"bje","Description":["Biao-Jiao Mien"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjf","Description":["Barzani Jewish Neo-Aramaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjg","Description":["Bidyogo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjh","Description":["Bahinemo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bji","Description":["Burji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjj","Description":["Kanauji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjk","Description":["Barok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjl","Description":["Bulu (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjm","Description":["Bajelani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjn","Description":["Banjar"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"bjo","Description":["Mid-Southern Banda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjp","Description":["Fanamaket"],"Added":"2013-09-10"},{"Type":"language","Subtag":"bjq","Description":["Southern Betsimisaraka Malagasy"],"Added":"2009-07-29","Deprecated":"2011-08-16","Macrolanguage":"mg","Comments":["see bzc, tkg"]},{"Type":"language","Subtag":"bjr","Description":["Binumarien"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjs","Description":["Bajan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjt","Description":["Balanta-Ganja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bju","Description":["Busuu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjv","Description":["Bedjond"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjw","Description":["Bakwé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjx","Description":["Banao Itneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjy","Description":["Bayali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bjz","Description":["Baruga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bka","Description":["Kyak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkb","Description":["Finallig"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see ebk, obk"]},{"Type":"language","Subtag":"bkc","Description":["Baka (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkd","Description":["Binukid","Talaandig"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkf","Description":["Beeke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkg","Description":["Buraka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkh","Description":["Bakoko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bki","Description":["Baki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkj","Description":["Pande"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkk","Description":["Brokskat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkl","Description":["Berik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkm","Description":["Kom (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkn","Description":["Bukitan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bko","Description":["Kwa\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkp","Description":["Boko (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkq","Description":["Bakairí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkr","Description":["Bakumpai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bks","Description":["Northern Sorsoganon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkt","Description":["Boloki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bku","Description":["Buhid"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkv","Description":["Bekwarra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkw","Description":["Bekwel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkx","Description":["Baikeno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bky","Description":["Bokyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bkz","Description":["Bungku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bla","Description":["Siksika"],"Added":"2005-10-16"},{"Type":"language","Subtag":"blb","Description":["Bilua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blc","Description":["Bella Coola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bld","Description":["Bolango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ble","Description":["Balanta-Kentohe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blf","Description":["Buol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blg","Description":["Balau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blh","Description":["Kuwaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bli","Description":["Bolia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blj","Description":["Bolongan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blk","Description":["Pa\'o Karen","Pa\'O"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bll","Description":["Biloxi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blm","Description":["Beli (South Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bln","Description":["Southern Catanduanes Bikol"],"Added":"2009-07-29","Macrolanguage":"bik"},{"Type":"language","Subtag":"blo","Description":["Anii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blp","Description":["Blablanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blq","Description":["Baluan-Pam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blr","Description":["Blang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bls","Description":["Balaesang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blt","Description":["Tai Dam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blv","Description":["Kibala","Bolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blw","Description":["Balangao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blx","Description":["Mag-Indi Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bly","Description":["Notre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"blz","Description":["Balantak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bma","Description":["Lame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmb","Description":["Bembe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmc","Description":["Biem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmd","Description":["Baga Manduri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bme","Description":["Limassa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmf","Description":["Bom-Kim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmg","Description":["Bamwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmh","Description":["Kein"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmi","Description":["Bagirmi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmj","Description":["Bote-Majhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmk","Description":["Ghayavi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bml","Description":["Bomboli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmm","Description":["Northern Betsimisaraka Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"bmn","Description":["Bina (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmo","Description":["Bambalang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmp","Description":["Bulgebi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmq","Description":["Bomu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmr","Description":["Muinane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bms","Description":["Bilma Kanuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmt","Description":["Biao Mon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmu","Description":["Somba-Siawari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmv","Description":["Bum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmw","Description":["Bomwali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmx","Description":["Baimak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bmy","Description":["Bemba (Democratic Republic of Congo)"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"bmz","Description":["Baramu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bna","Description":["Bonerate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnb","Description":["Bookan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnc","Description":["Bontok"],"Added":"2009-07-29","Scope":"macrolanguage"},{"Type":"language","Subtag":"bnd","Description":["Banda (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bne","Description":["Bintauna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnf","Description":["Masiwang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bng","Description":["Benga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bni","Description":["Bangi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnj","Description":["Eastern Tawbuid"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnk","Description":["Bierebo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnl","Description":["Boon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnm","Description":["Batanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnn","Description":["Bunun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bno","Description":["Bantoanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnp","Description":["Bola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnq","Description":["Bantik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnr","Description":["Butmas-Tur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bns","Description":["Bundeli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnt","Description":["Bantu languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"bnu","Description":["Bentong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnv","Description":["Bonerif","Beneraf","Edwas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnw","Description":["Bisis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnx","Description":["Bangubangu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bny","Description":["Bintulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bnz","Description":["Beezen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boa","Description":["Bora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bob","Description":["Aweer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boe","Description":["Mundabli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bof","Description":["Bolon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bog","Description":["Bamako Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boh","Description":["Boma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boi","Description":["Barbareño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boj","Description":["Anjam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bok","Description":["Bonjo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bol","Description":["Bole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bom","Description":["Berom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bon","Description":["Bine"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boo","Description":["Tiemacèwè Bozo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bop","Description":["Bonkiman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boq","Description":["Bogaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bor","Description":["Borôro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bot","Description":["Bongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bou","Description":["Bondei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bov","Description":["Tuwuli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bow","Description":["Rema"],"Added":"2009-07-29"},{"Type":"language","Subtag":"box","Description":["Buamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boy","Description":["Bodo (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"boz","Description":["Tiéyaxo Bozo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpa","Description":["Daakaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpb","Description":["Barbacoas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpd","Description":["Banda-Banda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpg","Description":["Bonggo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bph","Description":["Botlikh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpi","Description":["Bagupi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpj","Description":["Binji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpk","Description":["Orowe","\'Ôrôê"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpl","Description":["Broome Pearling Lugger Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpm","Description":["Biyom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpn","Description":["Dzao Min"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpo","Description":["Anasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpp","Description":["Kaure"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpq","Description":["Banda Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpr","Description":["Koronadal Blaan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bps","Description":["Sarangani Blaan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpt","Description":["Barrow Point"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpu","Description":["Bongu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpv","Description":["Bian Marind"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpw","Description":["Bo (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpx","Description":["Palya Bareli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpy","Description":["Bishnupriya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bpz","Description":["Bilba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqa","Description":["Tchumbuli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqb","Description":["Bagusa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqc","Description":["Boko (Benin)","Boo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqd","Description":["Bung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqf","Description":["Baga Kaloum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqg","Description":["Bago-Kusuntu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqh","Description":["Baima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqi","Description":["Bakhtiari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqj","Description":["Bandial"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqk","Description":["Banda-Mbrès"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bql","Description":["Bilakura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqm","Description":["Wumboko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqn","Description":["Bulgarian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqo","Description":["Balo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqp","Description":["Busa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqq","Description":["Biritai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqr","Description":["Burusu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqs","Description":["Bosngun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqt","Description":["Bamukumbit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqu","Description":["Boguru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqv","Description":["Koro Wachi","Begbere-Ejar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqw","Description":["Buru (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqx","Description":["Baangi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqy","Description":["Bengkala Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bqz","Description":["Bakaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bra","Description":["Braj"],"Added":"2005-10-16"},{"Type":"language","Subtag":"brb","Description":["Lave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brc","Description":["Berbice Creole Dutch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brd","Description":["Baraamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brf","Description":["Bera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brg","Description":["Baure"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brh","Description":["Brahui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bri","Description":["Mokpwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brj","Description":["Bieria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brk","Description":["Birked"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brl","Description":["Birwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brm","Description":["Barambu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brn","Description":["Boruca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bro","Description":["Brokkat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brp","Description":["Barapasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brq","Description":["Breri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brr","Description":["Birao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brs","Description":["Baras"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brt","Description":["Bitare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bru","Description":["Eastern Bru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brv","Description":["Western Bru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brw","Description":["Bellari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brx","Description":["Bodo (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bry","Description":["Burui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"brz","Description":["Bilbil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsa","Description":["Abinomn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsb","Description":["Brunei Bisaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsc","Description":["Bassari","Oniyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bse","Description":["Wushi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsf","Description":["Bauchi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsg","Description":["Bashkardi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsh","Description":["Kati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsi","Description":["Bassossi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsj","Description":["Bangwinji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsk","Description":["Burushaski"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsl","Description":["Basa-Gumna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsm","Description":["Busami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsn","Description":["Barasana-Eduria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bso","Description":["Buso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsp","Description":["Baga Sitemu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsq","Description":["Bassa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsr","Description":["Bassa-Kontagora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bss","Description":["Akoose"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bst","Description":["Basketo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsu","Description":["Bahonsuai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsv","Description":["Baga Sobané"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsw","Description":["Baiso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsx","Description":["Yangkam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bsy","Description":["Sabah Bisaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bta","Description":["Bata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btb","Description":["Beti (Cameroon)"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see beb, bum, bxp, eto, ewo, fan, mct"]},{"Type":"language","Subtag":"btc","Description":["Bati (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btd","Description":["Batak Dairi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bte","Description":["Gamo-Ningi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btf","Description":["Birgit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btg","Description":["Gagnoa Bété"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bth","Description":["Biatah Bidayuh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bti","Description":["Burate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btj","Description":["Bacanese Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"btk","Description":["Batak languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"btl","Description":["Bhatola"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"btm","Description":["Batak Mandailing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btn","Description":["Ratagnon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bto","Description":["Rinconada Bikol"],"Added":"2009-07-29","Macrolanguage":"bik"},{"Type":"language","Subtag":"btp","Description":["Budibud"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btq","Description":["Batek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btr","Description":["Baetora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bts","Description":["Batak Simalungun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btt","Description":["Bete-Bendi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btu","Description":["Batu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btv","Description":["Bateri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btw","Description":["Butuanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btx","Description":["Batak Karo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bty","Description":["Bobot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"btz","Description":["Batak Alas-Kluet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bua","Description":["Buriat"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"bub","Description":["Bua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buc","Description":["Bushi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bud","Description":["Ntcham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bue","Description":["Beothuk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buf","Description":["Bushoong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bug","Description":["Buginese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"buh","Description":["Younuo Bunu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bui","Description":["Bongili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buj","Description":["Basa-Gurmana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buk","Description":["Bugawac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bum","Description":["Bulu (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bun","Description":["Sherbro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buo","Description":["Terei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bup","Description":["Busoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buq","Description":["Brem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bus","Description":["Bokobaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"but","Description":["Bungain"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buu","Description":["Budu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buv","Description":["Bun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buw","Description":["Bubi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bux","Description":["Boghom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buy","Description":["Bullom So"],"Added":"2009-07-29"},{"Type":"language","Subtag":"buz","Description":["Bukwen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bva","Description":["Barein"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvb","Description":["Bube"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvc","Description":["Baelelea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvd","Description":["Baeggu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bve","Description":["Berau Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"bvf","Description":["Boor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvg","Description":["Bonkeng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvh","Description":["Bure"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvi","Description":["Belanda Viri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvj","Description":["Baan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvk","Description":["Bukat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvl","Description":["Bolivian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvm","Description":["Bamunka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvn","Description":["Buna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvo","Description":["Bolgo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvp","Description":["Bumang"],"Added":"2013-09-10"},{"Type":"language","Subtag":"bvq","Description":["Birri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvr","Description":["Burarra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvt","Description":["Bati (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvu","Description":["Bukit Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"bvv","Description":["Baniva"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvw","Description":["Boga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvx","Description":["Dibole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bvy","Description":["Baybayanon"],"Added":"2010-03-11"},{"Type":"language","Subtag":"bvz","Description":["Bauzi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwa","Description":["Bwatoo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwb","Description":["Namosi-Naitasiri-Serua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwc","Description":["Bwile"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwd","Description":["Bwaidoka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwe","Description":["Bwe Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwf","Description":["Boselewa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwg","Description":["Barwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwh","Description":["Bishuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwi","Description":["Baniwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwj","Description":["Láá Láá Bwamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwk","Description":["Bauwaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwl","Description":["Bwela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwm","Description":["Biwat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwn","Description":["Wunai Bunu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwo","Description":["Boro (Ethiopia)","Borna (Ethiopia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwp","Description":["Mandobo Bawah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwq","Description":["Southern Bobo Madaré"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwr","Description":["Bura-Pabir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bws","Description":["Bomboma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwt","Description":["Bafaw-Balong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwu","Description":["Buli (Ghana)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bww","Description":["Bwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwx","Description":["Bu-Nao Bunu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwy","Description":["Cwi Bwamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bwz","Description":["Bwisi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxa","Description":["Tairaha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxb","Description":["Belanda Bor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxc","Description":["Molengue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxd","Description":["Pela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxe","Description":["Birale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxf","Description":["Bilur","Minigir"],"Added":"2009-07-29","Comments":["see also vmg"]},{"Type":"language","Subtag":"bxg","Description":["Bangala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxh","Description":["Buhutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxi","Description":["Pirlatapa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxj","Description":["Bayungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxk","Description":["Bukusu","Lubukusu"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"bxl","Description":["Jalkunan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxm","Description":["Mongolia Buriat"],"Added":"2009-07-29","Macrolanguage":"bua"},{"Type":"language","Subtag":"bxn","Description":["Burduna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxo","Description":["Barikanchi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxp","Description":["Bebil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxq","Description":["Beele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxr","Description":["Russia Buriat"],"Added":"2009-07-29","Macrolanguage":"bua"},{"Type":"language","Subtag":"bxs","Description":["Busam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxu","Description":["China Buriat"],"Added":"2009-07-29","Macrolanguage":"bua"},{"Type":"language","Subtag":"bxv","Description":["Berakou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxw","Description":["Bankagooma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bxx","Description":["Borna (Democratic Republic of Congo)"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"bxz","Description":["Binahari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bya","Description":["Batak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byb","Description":["Bikya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byc","Description":["Ubaghara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byd","Description":["Benyadu\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bye","Description":["Pouye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byf","Description":["Bete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byg","Description":["Baygo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byh","Description":["Bhujel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byi","Description":["Buyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byj","Description":["Bina (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byk","Description":["Biao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byl","Description":["Bayono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bym","Description":["Bidjara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byn","Description":["Bilin","Blin"],"Added":"2005-10-16"},{"Type":"language","Subtag":"byo","Description":["Biyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byp","Description":["Bumaji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byq","Description":["Basay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byr","Description":["Baruya","Yipma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bys","Description":["Burak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byt","Description":["Berti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byv","Description":["Medumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byw","Description":["Belhariya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byx","Description":["Qaqet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"byy","Description":["Buya"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"byz","Description":["Banaro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bza","Description":["Bandi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzb","Description":["Andio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzc","Description":["Southern Betsimisaraka Malagasy"],"Added":"2011-08-16","Macrolanguage":"mg"},{"Type":"language","Subtag":"bzd","Description":["Bribri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bze","Description":["Jenaama Bozo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzf","Description":["Boikin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzg","Description":["Babuza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzh","Description":["Mapos Buang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzi","Description":["Bisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzj","Description":["Belize Kriol English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzk","Description":["Nicaragua Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzl","Description":["Boano (Sulawesi)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzm","Description":["Bolondo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzn","Description":["Boano (Maluku)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzo","Description":["Bozaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzp","Description":["Kemberano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzq","Description":["Buli (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzr","Description":["Biri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzs","Description":["Brazilian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzt","Description":["Brithenig"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzu","Description":["Burmeso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzv","Description":["Naami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzw","Description":["Basa (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzx","Description":["Kɛlɛngaxo Bozo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzy","Description":["Obanliku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"bzz","Description":["Evant"],"Added":"2009-07-29"},{"Type":"language","Subtag":"caa","Description":["Chortí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cab","Description":["Garifuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cac","Description":["Chuj"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cad","Description":["Caddo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cae","Description":["Lehar","Laalaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"caf","Description":["Southern Carrier"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cag","Description":["Nivaclé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cah","Description":["Cahuarano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cai","Description":["Central American Indian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"caj","Description":["Chané"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cak","Description":["Kaqchikel","Cakchiquel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cal","Description":["Carolinian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cam","Description":["Cemuhî"],"Added":"2009-07-29"},{"Type":"language","Subtag":"can","Description":["Chambri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cao","Description":["Chácobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cap","Description":["Chipaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"caq","Description":["Car Nicobarese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"car","Description":["Galibi Carib"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cas","Description":["Tsimané"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cau","Description":["Caucasian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cav","Description":["Cavineña"],"Added":"2009-07-29"},{"Type":"language","Subtag":"caw","Description":["Callawalla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cax","Description":["Chiquitano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cay","Description":["Cayuga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"caz","Description":["Canichana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cba","Description":["Chibchan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"cbb","Description":["Cabiyarí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbc","Description":["Carapana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbd","Description":["Carijona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbe","Description":["Chipiajes"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"cbg","Description":["Chimila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbh","Description":["Cagua"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"cbi","Description":["Chachi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbj","Description":["Ede Cabe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbk","Description":["Chavacano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbl","Description":["Bualkhaw Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbn","Description":["Nyahkur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbo","Description":["Izora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbq","Description":["Tsucuba","Cuba"],"Added":"2015-02-12"},{"Type":"language","Subtag":"cbr","Description":["Cashibo-Cacataibo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbs","Description":["Cashinahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbt","Description":["Chayahuita"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbu","Description":["Candoshi-Shapra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbv","Description":["Cacua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cbw","Description":["Kinabalian"],"Added":"2010-03-11"},{"Type":"language","Subtag":"cby","Description":["Carabayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cca","Description":["Cauca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccc","Description":["Chamicuro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccd","Description":["Cafundo Creole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cce","Description":["Chopi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccg","Description":["Samba Daka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cch","Description":["Atsam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccj","Description":["Kasanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccl","Description":["Cutchi-Swahili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccm","Description":["Malaccan Creole Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccn","Description":["North Caucasian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"cco","Description":["Comaltepec Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccp","Description":["Chakma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccq","Description":["Chaungtha"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"rki"},{"Type":"language","Subtag":"ccr","Description":["Cacaopera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ccs","Description":["South Caucasian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"cda","Description":["Choni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdc","Description":["Chadic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"cdd","Description":["Caddoan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"cde","Description":["Chenchu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdf","Description":["Chiru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdg","Description":["Chamari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdh","Description":["Chambeali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdi","Description":["Chodri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdj","Description":["Churahi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdm","Description":["Chepang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdn","Description":["Chaudangsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdo","Description":["Min Dong Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"cdr","Description":["Cinda-Regi-Tiyal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cds","Description":["Chadian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdy","Description":["Chadong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cdz","Description":["Koda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cea","Description":["Lower Chehalis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ceb","Description":["Cebuano"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ceg","Description":["Chamacoco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cek","Description":["Eastern Khumi Chin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"cel","Description":["Celtic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cen","Description":["Cen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cet","Description":["Centúúm"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cey","Description":["Ekai Chin"],"Added":"2019-04-16"},{"Type":"language","Subtag":"cfa","Description":["Dijim-Bwilim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cfd","Description":["Cara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cfg","Description":["Como Karim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cfm","Description":["Falam Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cga","Description":["Changriwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cgc","Description":["Kagayanen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cgg","Description":["Chiga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cgk","Description":["Chocangacakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chb","Description":["Chibcha"],"Added":"2005-10-16"},{"Type":"language","Subtag":"chc","Description":["Catawba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chd","Description":["Highland Oaxaca Chontal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chf","Description":["Tabasco Chontal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chg","Description":["Chagatai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"chh","Description":["Chinook"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chj","Description":["Ojitlán Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chk","Description":["Chuukese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"chl","Description":["Cahuilla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chm","Description":["Mari (Russia)"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"chn","Description":["Chinook jargon"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cho","Description":["Choctaw"],"Added":"2005-10-16"},{"Type":"language","Subtag":"chp","Description":["Chipewyan","Dene Suline"],"Added":"2005-10-16"},{"Type":"language","Subtag":"chq","Description":["Quiotepec Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chr","Description":["Cherokee"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cht","Description":["Cholón"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chw","Description":["Chuwabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chx","Description":["Chantyal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"chy","Description":["Cheyenne"],"Added":"2005-10-16"},{"Type":"language","Subtag":"chz","Description":["Ozumacín Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cia","Description":["Cia-Cia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cib","Description":["Ci Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cic","Description":["Chickasaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cid","Description":["Chimariko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cie","Description":["Cineni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cih","Description":["Chinali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cik","Description":["Chitkuli Kinnauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cim","Description":["Cimbrian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cin","Description":["Cinta Larga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cip","Description":["Chiapanec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cir","Description":["Tiri","Haméa","Méa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ciw","Description":["Chippewa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"ciy","Description":["Chaima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cja","Description":["Western Cham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cje","Description":["Chru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjh","Description":["Upper Chehalis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cji","Description":["Chamalal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjk","Description":["Chokwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjm","Description":["Eastern Cham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjn","Description":["Chenapian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjo","Description":["Ashéninka Pajonal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjp","Description":["Cabécar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjr","Description":["Chorotega"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"mom"},{"Type":"language","Subtag":"cjs","Description":["Shor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjv","Description":["Chuave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cjy","Description":["Jinyu Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"cka","Description":["Khumi Awa Chin"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"cmr"},{"Type":"language","Subtag":"ckb","Description":["Central Kurdish"],"Added":"2009-07-29","Macrolanguage":"ku"},{"Type":"language","Subtag":"ckh","Description":["Chak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckl","Description":["Cibak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckn","Description":["Kaang Chin"],"Added":"2013-09-10"},{"Type":"language","Subtag":"cko","Description":["Anufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckq","Description":["Kajakse"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckr","Description":["Kairak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cks","Description":["Tayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckt","Description":["Chukot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cku","Description":["Koasati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckv","Description":["Kavalan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckx","Description":["Caka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cky","Description":["Cakfem-Mushere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ckz","Description":["Cakchiquel-Quiché Mixed Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cla","Description":["Ron"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clc","Description":["Chilcotin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cld","Description":["Chaldean Neo-Aramaic"],"Added":"2009-07-29","Macrolanguage":"syr"},{"Type":"language","Subtag":"cle","Description":["Lealao Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clh","Description":["Chilisso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cli","Description":["Chakali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clj","Description":["Laitu Chin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"clk","Description":["Idu-Mishmi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cll","Description":["Chala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clm","Description":["Clallam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clo","Description":["Lowland Oaxaca Chontal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clt","Description":["Lautu Chin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"clu","Description":["Caluyanun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"clw","Description":["Chulym"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cly","Description":["Eastern Highland Chatino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cma","Description":["Maa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmc","Description":["Chamic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cme","Description":["Cerma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmg","Description":["Classical Mongolian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmi","Description":["Emberá-Chamí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmk","Description":["Chimakum"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"xch"},{"Type":"language","Subtag":"cml","Description":["Campalagian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmm","Description":["Michigamea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmn","Description":["Mandarin Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"cmo","Description":["Central Mnong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmr","Description":["Mro-Khimi Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cms","Description":["Messapic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cmt","Description":["Camtho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cna","Description":["Changthang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnb","Description":["Chinbon Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnc","Description":["Côông"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cng","Description":["Northern Qiang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnh","Description":["Hakha Chin","Haka Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cni","Description":["Asháninka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnk","Description":["Khumi Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnl","Description":["Lalana Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cno","Description":["Con"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnr","Description":["Montenegrin"],"Added":"2018-01-23","Macrolanguage":"sh","Comments":["see sr for Serbian"]},{"Type":"language","Subtag":"cns","Description":["Central Asmat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnt","Description":["Tepetotutla Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnu","Description":["Chenoua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnw","Description":["Ngawn Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cnx","Description":["Middle Cornish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coa","Description":["Cocos Islands Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"cob","Description":["Chicomuceltec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coc","Description":["Cocopa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cod","Description":["Cocama-Cocamilla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coe","Description":["Koreguaje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cof","Description":["Colorado"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cog","Description":["Chong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coh","Description":["Chonyi-Dzihana-Kauma","Chichonyi-Chidzihana-Chikauma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coj","Description":["Cochimi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cok","Description":["Santa Teresa Cora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"col","Description":["Columbia-Wenatchi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"com","Description":["Comanche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"con","Description":["Cofán"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coo","Description":["Comox"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cop","Description":["Coptic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"coq","Description":["Coquille"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cot","Description":["Caquinte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cou","Description":["Wamey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cov","Description":["Cao Miao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cow","Description":["Cowlitz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cox","Description":["Nanti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"coy","Description":["Coyaima"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"pij"},{"Type":"language","Subtag":"coz","Description":["Chochotec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpa","Description":["Palantla Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpb","Description":["Ucayali-Yurúa Ashéninka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpc","Description":["Ajyíninka Apurucayali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpe","Description":["English-based creoles and pidgins"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cpf","Description":["French-based creoles and pidgins"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cpg","Description":["Cappadocian Greek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpi","Description":["Chinese Pidgin English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpn","Description":["Cherepon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpo","Description":["Kpeego"],"Added":"2013-09-10"},{"Type":"language","Subtag":"cpp","Description":["Portuguese-based creoles and pidgins"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cps","Description":["Capiznon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpu","Description":["Pichis Ashéninka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cpx","Description":["Pu-Xian Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"cpy","Description":["South Ucayali Ashéninka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cqd","Description":["Chuanqiandian Cluster Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"cqu","Description":["Chilean Quechua"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"quh","Macrolanguage":"qu"},{"Type":"language","Subtag":"cra","Description":["Chara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crb","Description":["Island Carib"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crc","Description":["Lonwolwol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crd","Description":["Coeur d\'Alene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crf","Description":["Caramanta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crg","Description":["Michif"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crh","Description":["Crimean Tatar","Crimean Turkish"],"Added":"2005-10-16"},{"Type":"language","Subtag":"cri","Description":["Sãotomense"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crj","Description":["Southern East Cree"],"Added":"2009-07-29","Macrolanguage":"cr"},{"Type":"language","Subtag":"crk","Description":["Plains Cree"],"Added":"2009-07-29","Macrolanguage":"cr"},{"Type":"language","Subtag":"crl","Description":["Northern East Cree"],"Added":"2009-07-29","Macrolanguage":"cr"},{"Type":"language","Subtag":"crm","Description":["Moose Cree"],"Added":"2009-07-29","Macrolanguage":"cr"},{"Type":"language","Subtag":"crn","Description":["El Nayar Cora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cro","Description":["Crow"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crp","Description":["Creoles and pidgins"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"crq","Description":["Iyo\'wujwa Chorote"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crr","Description":["Carolina Algonquian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crs","Description":["Seselwa Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crt","Description":["Iyojwa\'ja Chorote"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crv","Description":["Chaura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crw","Description":["Chrau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crx","Description":["Carrier"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cry","Description":["Cori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"crz","Description":["Cruzeño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csa","Description":["Chiltepec Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csb","Description":["Kashubian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"csc","Description":["Catalan Sign Language","Lengua de señas catalana","Llengua de Signes Catalana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csd","Description":["Chiangmai Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cse","Description":["Czech Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csf","Description":["Cuba Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csg","Description":["Chilean Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csh","Description":["Asho Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csi","Description":["Coast Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csj","Description":["Songlai Chin"],"Added":"2013-09-10"},{"Type":"language","Subtag":"csk","Description":["Jola-Kasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csl","Description":["Chinese Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csm","Description":["Central Sierra Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csn","Description":["Colombian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cso","Description":["Sochiapam Chinantec","Sochiapan Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csq","Description":["Croatia Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csr","Description":["Costa Rican Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"css","Description":["Southern Ohlone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cst","Description":["Northern Ohlone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csu","Description":["Central Sudanic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"csv","Description":["Sumtu Chin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"csw","Description":["Swampy Cree"],"Added":"2009-07-29","Macrolanguage":"cr"},{"Type":"language","Subtag":"csy","Description":["Siyin Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"csz","Description":["Coos"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cta","Description":["Tataltepec Chatino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctc","Description":["Chetco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctd","Description":["Tedim Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cte","Description":["Tepinapa Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctg","Description":["Chittagonian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cth","Description":["Thaiphum Chin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"ctl","Description":["Tlacoatzintepec Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctm","Description":["Chitimacha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctn","Description":["Chhintange"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cto","Description":["Emberá-Catío"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctp","Description":["Western Highland Chatino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cts","Description":["Northern Catanduanes Bikol"],"Added":"2009-07-29","Macrolanguage":"bik"},{"Type":"language","Subtag":"ctt","Description":["Wayanad Chetti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctu","Description":["Chol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ctz","Description":["Zacatepec Chatino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cua","Description":["Cua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cub","Description":["Cubeo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuc","Description":["Usila Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cug","Description":["Chungmboko","Cung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuh","Description":["Chuka","Gichuka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cui","Description":["Cuiba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuj","Description":["Mashco Piro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuk","Description":["San Blas Kuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cul","Description":["Culina","Kulina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cum","Description":["Cumeral"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"cuo","Description":["Cumanagoto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cup","Description":["Cupeño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuq","Description":["Cun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cur","Description":["Chhulung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cus","Description":["Cushitic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"cut","Description":["Teutila Cuicatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuu","Description":["Tai Ya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuv","Description":["Cuvok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuw","Description":["Chukwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cux","Description":["Tepeuxila Cuicatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cuy","Description":["Cuitlatec"],"Added":"2018-03-08"},{"Type":"language","Subtag":"cvg","Description":["Chug"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cvn","Description":["Valle Nacional Chinantec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cwa","Description":["Kabwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cwb","Description":["Maindo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cwd","Description":["Woods Cree"],"Added":"2009-07-29","Macrolanguage":"cr"},{"Type":"language","Subtag":"cwe","Description":["Kwere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cwg","Description":["Chewong","Cheq Wong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cwt","Description":["Kuwaataay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cya","Description":["Nopala Chatino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cyb","Description":["Cayubaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"cyo","Description":["Cuyonon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"czh","Description":["Huizhou Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"czk","Description":["Knaanic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"czn","Description":["Zenzontepec Chatino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"czo","Description":["Min Zhong Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"czt","Description":["Zotung Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"daa","Description":["Dangaléat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dac","Description":["Dambi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dad","Description":["Marik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dae","Description":["Duupa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"daf","Description":["Dan"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see dnj, lda"]},{"Type":"language","Subtag":"dag","Description":["Dagbani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dah","Description":["Gwahatike"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dai","Description":["Day"],"Added":"2009-07-29"},{"Type":"language","Subtag":"daj","Description":["Dar Fur Daju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dak","Description":["Dakota"],"Added":"2005-10-16"},{"Type":"language","Subtag":"dal","Description":["Dahalo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dam","Description":["Damakawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dao","Description":["Daai Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dap","Description":["Nisi (India)"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see njz, tgj"]},{"Type":"language","Subtag":"daq","Description":["Dandami Maria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dar","Description":["Dargwa"],"Added":"2005-10-16"},{"Type":"language","Subtag":"das","Description":["Daho-Doo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dau","Description":["Dar Sila Daju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dav","Description":["Taita","Dawida"],"Added":"2009-07-29"},{"Type":"language","Subtag":"daw","Description":["Davawenyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dax","Description":["Dayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"day","Description":["Land Dayak languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"daz","Description":["Dao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dba","Description":["Bangime"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbb","Description":["Deno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbd","Description":["Dadiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbe","Description":["Dabe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbf","Description":["Edopi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbg","Description":["Dogul Dom Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbi","Description":["Doka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbj","Description":["Ida\'an"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbl","Description":["Dyirbal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbm","Description":["Duguri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbn","Description":["Duriankere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbo","Description":["Dulbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbp","Description":["Duwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbq","Description":["Daba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbr","Description":["Dabarre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbt","Description":["Ben Tey Dogon"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dbu","Description":["Bondum Dom Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbv","Description":["Dungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dbw","Description":["Bankan Tey Dogon"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dby","Description":["Dibiyaso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dcc","Description":["Deccan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dcr","Description":["Negerhollands"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dda","Description":["Dadi Dadi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"ddd","Description":["Dongotono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dde","Description":["Doondo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddg","Description":["Fataluku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddi","Description":["West Goodenough"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddj","Description":["Jaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddn","Description":["Dendi (Benin)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddo","Description":["Dido"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddr","Description":["Dhudhuroa"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dds","Description":["Donno So Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ddw","Description":["Dawera-Daweloor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dec","Description":["Dagik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ded","Description":["Dedua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dee","Description":["Dewoin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"def","Description":["Dezfuli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"deg","Description":["Degema"],"Added":"2009-07-29"},{"Type":"language","Subtag":"deh","Description":["Dehwari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dei","Description":["Demisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dek","Description":["Dek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"del","Description":["Delaware"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"dem","Description":["Dem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"den","Description":["Slave (Athapascan)"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"dep","Description":["Pidgin Delaware"],"Added":"2009-07-29"},{"Type":"language","Subtag":"deq","Description":["Dendi (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"der","Description":["Deori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"des","Description":["Desano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dev","Description":["Domung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dez","Description":["Dengese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dga","Description":["Southern Dagaare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgb","Description":["Bunoge Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgc","Description":["Casiguran Dumagat Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgd","Description":["Dagaari Dioula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dge","Description":["Degenan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgg","Description":["Doga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgh","Description":["Dghwede"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgi","Description":["Northern Dagara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgk","Description":["Dagba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgl","Description":["Andaandi","Dongolawi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dgn","Description":["Dagoman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgo","Description":["Dogri (individual language)"],"Added":"2009-07-29","Macrolanguage":"doi"},{"Type":"language","Subtag":"dgr","Description":["Dogrib"],"Added":"2005-10-16"},{"Type":"language","Subtag":"dgs","Description":["Dogoso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgt","Description":["Ndra\'ngith"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dgu","Description":["Degaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgw","Description":["Daungwurrung"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dgx","Description":["Doghoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dgz","Description":["Daga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dha","Description":["Dhanwar (India)"],"Added":"2009-07-29","Deprecated":"2011-08-16"},{"Type":"language","Subtag":"dhd","Description":["Dhundari"],"Added":"2009-07-29","Macrolanguage":"mwr"},{"Type":"language","Subtag":"dhg","Description":["Dhangu-Djangu","Dhangu","Djangu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhi","Description":["Dhimal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhl","Description":["Dhalandji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhm","Description":["Zemba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhn","Description":["Dhanki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dho","Description":["Dhodia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhr","Description":["Dhargari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhs","Description":["Dhaiso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhu","Description":["Dhurga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhv","Description":["Dehu","Drehu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhw","Description":["Dhanwar (Nepal)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dhx","Description":["Dhungaloo"],"Added":"2013-09-10"},{"Type":"language","Subtag":"dia","Description":["Dia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dib","Description":["South Central Dinka"],"Added":"2009-07-29","Macrolanguage":"din"},{"Type":"language","Subtag":"dic","Description":["Lakota Dida"],"Added":"2009-07-29"},{"Type":"language","Subtag":"did","Description":["Didinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dif","Description":["Dieri","Diyari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dig","Description":["Digo","Chidigo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dih","Description":["Kumiai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dii","Description":["Dimbong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dij","Description":["Dai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dik","Description":["Southwestern Dinka"],"Added":"2009-07-29","Macrolanguage":"din"},{"Type":"language","Subtag":"dil","Description":["Dilling"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dim","Description":["Dime"],"Added":"2009-07-29"},{"Type":"language","Subtag":"din","Description":["Dinka"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"dio","Description":["Dibo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dip","Description":["Northeastern Dinka"],"Added":"2009-07-29","Macrolanguage":"din"},{"Type":"language","Subtag":"diq","Description":["Dimli (individual language)"],"Added":"2009-07-29","Macrolanguage":"zza"},{"Type":"language","Subtag":"dir","Description":["Dirim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dis","Description":["Dimasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dit","Description":["Dirari"],"Added":"2009-07-29","Deprecated":"2019-04-29","Preferred-Value":"dif"},{"Type":"language","Subtag":"diu","Description":["Diriku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"diw","Description":["Northwestern Dinka"],"Added":"2009-07-29","Macrolanguage":"din"},{"Type":"language","Subtag":"dix","Description":["Dixon Reef"],"Added":"2009-07-29"},{"Type":"language","Subtag":"diy","Description":["Diuwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"diz","Description":["Ding"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dja","Description":["Djadjawurrung"],"Added":"2012-08-12"},{"Type":"language","Subtag":"djb","Description":["Djinba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djc","Description":["Dar Daju Daju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djd","Description":["Djamindjung","Ngaliwurru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dje","Description":["Zarma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djf","Description":["Djangun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dji","Description":["Djinang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djj","Description":["Djeebbana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djk","Description":["Eastern Maroon Creole","Businenge Tongo","Nenge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djl","Description":["Djiwarli"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see dze, iin"]},{"Type":"language","Subtag":"djm","Description":["Jamsay Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djn","Description":["Jawoyn","Djauan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djo","Description":["Jangkang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djr","Description":["Djambarrpuyngu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dju","Description":["Kapriman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"djw","Description":["Djawi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dka","Description":["Dakpakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dkk","Description":["Dakka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dkl","Description":["Kolum So Dogon"],"Added":"2009-07-29","Deprecated":"2011-08-16","Comments":["see aqd, dmb"]},{"Type":"language","Subtag":"dkr","Description":["Kuijau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dks","Description":["Southeastern Dinka"],"Added":"2009-07-29","Macrolanguage":"din"},{"Type":"language","Subtag":"dkx","Description":["Mazagway"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dlg","Description":["Dolgan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dlk","Description":["Dahalik"],"Added":"2013-09-10"},{"Type":"language","Subtag":"dlm","Description":["Dalmatian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dln","Description":["Darlong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dma","Description":["Duma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmb","Description":["Mombo Dogon"],"Added":"2011-08-16"},{"Type":"language","Subtag":"dmc","Description":["Gavak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmd","Description":["Madhi Madhi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dme","Description":["Dugwor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmg","Description":["Upper Kinabatangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmk","Description":["Domaaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dml","Description":["Dameli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmm","Description":["Dama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmn","Description":["Mande languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"dmo","Description":["Kemedzung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmr","Description":["East Damar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dms","Description":["Dampelas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmu","Description":["Dubu","Tebi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmv","Description":["Dumpas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmw","Description":["Mudburra"],"Added":"2013-09-10"},{"Type":"language","Subtag":"dmx","Description":["Dema"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dmy","Description":["Demta","Sowari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dna","Description":["Upper Grand Valley Dani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dnd","Description":["Daonda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dne","Description":["Ndendeule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dng","Description":["Dungan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dni","Description":["Lower Grand Valley Dani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dnj","Description":["Dan"],"Added":"2013-09-10"},{"Type":"language","Subtag":"dnk","Description":["Dengka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dnn","Description":["Dzùùngoo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dno","Description":["Ndrulo","Northern Lendu"],"Added":"2018-10-28"},{"Type":"language","Subtag":"dnr","Description":["Danaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dnt","Description":["Mid Grand Valley Dani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dnu","Description":["Danau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dnv","Description":["Danu"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dnw","Description":["Western Dani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dny","Description":["Dení"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doa","Description":["Dom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dob","Description":["Dobu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doc","Description":["Northern Dong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doe","Description":["Doe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dof","Description":["Domu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doh","Description":["Dong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doi","Description":["Dogri (macrolanguage)"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"dok","Description":["Dondo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dol","Description":["Doso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"don","Description":["Toura (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doo","Description":["Dongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dop","Description":["Lukpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doq","Description":["Dominican Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dor","Description":["Dori\'o"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dos","Description":["Dogosé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dot","Description":["Dass"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dov","Description":["Dombe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dow","Description":["Doyayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dox","Description":["Bussa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doy","Description":["Dompo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"doz","Description":["Dorze"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dpp","Description":["Papar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dra","Description":["Dravidian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"drb","Description":["Dair"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drc","Description":["Minderico"],"Added":"2011-08-16"},{"Type":"language","Subtag":"drd","Description":["Darmiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dre","Description":["Dolpo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drg","Description":["Rungus"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drh","Description":["Darkhat"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"khk"},{"Type":"language","Subtag":"dri","Description":["C\'Lela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drl","Description":["Paakantyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drn","Description":["West Damar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dro","Description":["Daro-Matu Melanau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drq","Description":["Dura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drr","Description":["Dororo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drs","Description":["Gedeo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drt","Description":["Drents"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dru","Description":["Rukai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"drw","Description":["Darwazi"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"prs"},{"Type":"language","Subtag":"dry","Description":["Darai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dsb","Description":["Lower Sorbian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"dse","Description":["Dutch Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dsh","Description":["Daasanach"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dsi","Description":["Disa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dsl","Description":["Danish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dsn","Description":["Dusner"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dso","Description":["Desiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dsq","Description":["Tadaksahak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dta","Description":["Daur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtb","Description":["Labuk-Kinabatangan Kadazan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtd","Description":["Ditidaht"],"Added":"2011-08-16"},{"Type":"language","Subtag":"dth","Description":["Adithinngithigh"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dti","Description":["Ana Tinga Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtk","Description":["Tene Kan Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtm","Description":["Tomo Kan Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtn","Description":["Daatsʼíin"],"Added":"2016-05-30"},{"Type":"language","Subtag":"dto","Description":["Tommo So Dogon"],"Added":"2012-08-12"},{"Type":"language","Subtag":"dtp","Description":["Kadazan Dusun","Central Dusun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtr","Description":["Lotud"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dts","Description":["Toro So Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtt","Description":["Toro Tegu Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dtu","Description":["Tebul Ure Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dty","Description":["Dotyali"],"Added":"2012-08-12","Macrolanguage":"ne"},{"Type":"language","Subtag":"dua","Description":["Duala"],"Added":"2005-10-16"},{"Type":"language","Subtag":"dub","Description":["Dubli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duc","Description":["Duna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dud","Description":["Hun-Saare"],"Added":"2009-07-29","Deprecated":"2019-04-16","Comments":["see uth, uss"]},{"Type":"language","Subtag":"due","Description":["Umiray Dumaget Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duf","Description":["Dumbea","Drubea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dug","Description":["Duruma","Chiduruma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duh","Description":["Dungra Bhil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dui","Description":["Dumun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duj","Description":["Dhuwal"],"Added":"2009-07-29","Deprecated":"2016-05-30","Comments":["see dwu, dwy"]},{"Type":"language","Subtag":"duk","Description":["Uyajitaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dul","Description":["Alabat Island Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dum","Description":["Middle Dutch (ca. 1050-1350)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"dun","Description":["Dusun Deyah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duo","Description":["Dupaninan Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dup","Description":["Duano"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"duq","Description":["Dusun Malang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dur","Description":["Dii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dus","Description":["Dumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duu","Description":["Drung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duv","Description":["Duvle"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duw","Description":["Dusun Witu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dux","Description":["Duungooma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duy","Description":["Dicamay Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"duz","Description":["Duli-Gey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dva","Description":["Duau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dwa","Description":["Diri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dwl","Description":["Walo Kumbe Dogon"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see dbt, dbw"]},{"Type":"language","Subtag":"dwr","Description":["Dawro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dws","Description":["Dutton World Speedwords"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dwu","Description":["Dhuwal"],"Added":"2016-05-30"},{"Type":"language","Subtag":"dww","Description":["Dawawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dwy","Description":["Dhuwaya"],"Added":"2016-05-30"},{"Type":"language","Subtag":"dwz","Description":["Dewas Rai"],"Added":"2018-10-28"},{"Type":"language","Subtag":"dya","Description":["Dyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyb","Description":["Dyaberdyaber"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyd","Description":["Dyugun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyg","Description":["Villa Viciosa Agta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyi","Description":["Djimini Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dym","Description":["Yanda Dom Dogon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyn","Description":["Dyangadi","Dhanggatti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyo","Description":["Jola-Fonyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dyu","Description":["Dyula"],"Added":"2005-10-16"},{"Type":"language","Subtag":"dyy","Description":["Djabugay","Dyaabugay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dza","Description":["Tunzu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dzd","Description":["Daza"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"dze","Description":["Djiwarli"],"Added":"2013-09-10"},{"Type":"language","Subtag":"dzg","Description":["Dazaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dzl","Description":["Dzalakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"dzn","Description":["Dzando"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eaa","Description":["Karenggapa"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ebg","Description":["Ebughu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ebk","Description":["Eastern Bontok"],"Added":"2010-03-11","Macrolanguage":"bnc"},{"Type":"language","Subtag":"ebo","Description":["Teke-Ebo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ebr","Description":["Ebrié"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ebu","Description":["Embu","Kiembu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ecr","Description":["Eteocretan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ecs","Description":["Ecuadorian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ecy","Description":["Eteocypriot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eee","Description":["E"],"Added":"2009-07-29"},{"Type":"language","Subtag":"efa","Description":["Efai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"efe","Description":["Efe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"efi","Description":["Efik"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ega","Description":["Ega"],"Added":"2009-07-29"},{"Type":"language","Subtag":"egl","Description":["Emilian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ego","Description":["Eggon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"egx","Description":["Egyptian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"egy","Description":["Egyptian (Ancient)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ehu","Description":["Ehueun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eip","Description":["Eipomek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eit","Description":["Eitiep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eiv","Description":["Askopan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eja","Description":["Ejamat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eka","Description":["Ekajuk"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ekc","Description":["Eastern Karnic"],"Added":"2013-09-10"},{"Type":"language","Subtag":"eke","Description":["Ekit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ekg","Description":["Ekari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eki","Description":["Eki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ekk","Description":["Standard Estonian"],"Added":"2009-07-29","Macrolanguage":"et"},{"Type":"language","Subtag":"ekl","Description":["Kol (Bangladesh)","Kol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ekm","Description":["Elip"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eko","Description":["Koti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ekp","Description":["Ekpeye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ekr","Description":["Yace"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eky","Description":["Eastern Kayah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ele","Description":["Elepi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"elh","Description":["El Hugeirat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eli","Description":["Nding"],"Added":"2009-07-29"},{"Type":"language","Subtag":"elk","Description":["Elkei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"elm","Description":["Eleme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"elo","Description":["El Molo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"elp","Description":["Elpaputih"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see amq, plh"]},{"Type":"language","Subtag":"elu","Description":["Elu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"elx","Description":["Elamite"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ema","Description":["Emai-Iuleha-Ora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emb","Description":["Embaloh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eme","Description":["Emerillon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emg","Description":["Eastern Meohang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emi","Description":["Mussau-Emira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emk","Description":["Eastern Maninkakan"],"Added":"2009-07-29","Macrolanguage":"man"},{"Type":"language","Subtag":"emm","Description":["Mamulique"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emn","Description":["Eman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emo","Description":["Emok"],"Added":"2009-07-29","Deprecated":"2014-02-28"},{"Type":"language","Subtag":"emp","Description":["Northern Emberá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ems","Description":["Pacific Gulf Yupik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emu","Description":["Eastern Muria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emw","Description":["Emplawas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"emx","Description":["Erromintxela"],"Added":"2010-03-11"},{"Type":"language","Subtag":"emy","Description":["Epigraphic Mayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ena","Description":["Apali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enb","Description":["Markweeta"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"enc","Description":["En"],"Added":"2009-07-29"},{"Type":"language","Subtag":"end","Description":["Ende"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enf","Description":["Forest Enets"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enh","Description":["Tundra Enets"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enl","Description":["Enlhet"],"Added":"2014-02-28"},{"Type":"language","Subtag":"enm","Description":["Middle English (1100-1500)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"enn","Description":["Engenni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eno","Description":["Enggano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enq","Description":["Enga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enr","Description":["Emumu","Emem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enu","Description":["Enu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"env","Description":["Enwan (Edu State)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enw","Description":["Enwan (Akwa Ibom State)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"enx","Description":["Enxet"],"Added":"2014-02-28"},{"Type":"language","Subtag":"eot","Description":["Beti (Côte d\'Ivoire)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"epi","Description":["Epie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"era","Description":["Eravallan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"erg","Description":["Sie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"erh","Description":["Eruwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eri","Description":["Ogea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"erk","Description":["South Efate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ero","Description":["Horpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"err","Description":["Erre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ers","Description":["Ersu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ert","Description":["Eritai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"erw","Description":["Erokwanas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ese","Description":["Ese Ejja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esg","Description":["Aheri Gondi"],"Added":"2016-05-30","Macrolanguage":"gon"},{"Type":"language","Subtag":"esh","Description":["Eshtehardi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esi","Description":["North Alaskan Inupiatun"],"Added":"2009-07-29","Macrolanguage":"ik"},{"Type":"language","Subtag":"esk","Description":["Northwest Alaska Inupiatun"],"Added":"2009-07-29","Macrolanguage":"ik"},{"Type":"language","Subtag":"esl","Description":["Egypt Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esm","Description":["Esuma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esn","Description":["Salvadoran Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eso","Description":["Estonian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esq","Description":["Esselen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ess","Description":["Central Siberian Yupik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esu","Description":["Central Yupik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"esx","Description":["Eskimo-Aleut languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"esy","Description":["Eskayan"],"Added":"2014-04-06"},{"Type":"language","Subtag":"etb","Description":["Etebi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"etc","Description":["Etchemin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eth","Description":["Ethiopian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"etn","Description":["Eton (Vanuatu)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eto","Description":["Eton (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"etr","Description":["Edolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ets","Description":["Yekhee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ett","Description":["Etruscan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"etu","Description":["Ejagham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"etx","Description":["Eten"],"Added":"2009-07-29"},{"Type":"language","Subtag":"etz","Description":["Semimi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"euq","Description":["Basque (family)"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"eve","Description":["Even"],"Added":"2009-07-29"},{"Type":"language","Subtag":"evh","Description":["Uvbie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"evn","Description":["Evenki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ewo","Description":["Ewondo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ext","Description":["Extremaduran"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eya","Description":["Eyak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"eyo","Description":["Keiyo"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"eza","Description":["Ezaa"],"Added":"2013-09-10"},{"Type":"language","Subtag":"eze","Description":["Uzekwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"faa","Description":["Fasu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fab","Description":["Fa d\'Ambu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fad","Description":["Wagi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"faf","Description":["Fagani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fag","Description":["Finongan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fah","Description":["Baissa Fali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fai","Description":["Faiwol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"faj","Description":["Faita"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fak","Description":["Fang (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fal","Description":["South Fali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fam","Description":["Fam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fan","Description":["Fang (Equatorial Guinea)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"fap","Description":["Paloor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"far","Description":["Fataleka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fat","Description":["Fanti"],"Added":"2005-10-16","Macrolanguage":"ak"},{"Type":"language","Subtag":"fau","Description":["Fayu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fax","Description":["Fala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fay","Description":["Southwestern Fars"],"Added":"2009-07-29"},{"Type":"language","Subtag":"faz","Description":["Northwestern Fars"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fbl","Description":["West Albay Bikol"],"Added":"2010-03-11","Macrolanguage":"bik"},{"Type":"language","Subtag":"fcs","Description":["Quebec Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fer","Description":["Feroge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ffi","Description":["Foia Foia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ffm","Description":["Maasina Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fgr","Description":["Fongoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fia","Description":["Nobiin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fie","Description":["Fyer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fil","Description":["Filipino","Pilipino"],"Added":"2005-10-16"},{"Type":"language","Subtag":"fip","Description":["Fipa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fir","Description":["Firan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fit","Description":["Tornedalen Finnish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fiu","Description":["Finno-Ugrian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"fiw","Description":["Fiwaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fkk","Description":["Kirya-Konzəl"],"Added":"2012-08-12"},{"Type":"language","Subtag":"fkv","Description":["Kven Finnish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fla","Description":["Kalispel-Pend d\'Oreille"],"Added":"2009-07-29"},{"Type":"language","Subtag":"flh","Description":["Foau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fli","Description":["Fali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fll","Description":["North Fali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fln","Description":["Flinders Island"],"Added":"2009-07-29"},{"Type":"language","Subtag":"flr","Description":["Fuliiru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fly","Description":["Flaaitaal","Tsotsitaal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fmp","Description":["Fe\'fe\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fmu","Description":["Far Western Muria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fnb","Description":["Fanbak"],"Added":"2016-05-30"},{"Type":"language","Subtag":"fng","Description":["Fanagalo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fni","Description":["Fania"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fod","Description":["Foodo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"foi","Description":["Foi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fom","Description":["Foma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fon","Description":["Fon"],"Added":"2005-10-16"},{"Type":"language","Subtag":"for","Description":["Fore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fos","Description":["Siraya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fox","Description":["Formosan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"fpe","Description":["Fernando Po Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fqs","Description":["Fas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"frc","Description":["Cajun French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"frd","Description":["Fordata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"frk","Description":["Frankish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"frm","Description":["Middle French (ca. 1400-1600)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"fro","Description":["Old French (842-ca. 1400)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"frp","Description":["Arpitan","Francoprovençal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"frq","Description":["Forak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"frr","Description":["Northern Frisian"],"Added":"2006-03-08","Suppress-Script":"Latn"},{"Type":"language","Subtag":"frs","Description":["Eastern Frisian"],"Added":"2006-03-08","Suppress-Script":"Latn"},{"Type":"language","Subtag":"frt","Description":["Fortsenal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fse","Description":["Finnish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fsl","Description":["French Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fss","Description":["Finland-Swedish Sign Language","finlandssvenskt teckenspråk","suomenruotsalainen viittomakieli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fub","Description":["Adamawa Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fuc","Description":["Pulaar"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fud","Description":["East Futuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fue","Description":["Borgu Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fuf","Description":["Pular"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fuh","Description":["Western Niger Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fui","Description":["Bagirmi Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fuj","Description":["Ko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fum","Description":["Fum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fun","Description":["Fulniô"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fuq","Description":["Central-Eastern Niger Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fur","Description":["Friulian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"fut","Description":["Futuna-Aniwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fuu","Description":["Furu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fuv","Description":["Nigerian Fulfulde"],"Added":"2009-07-29","Macrolanguage":"ff"},{"Type":"language","Subtag":"fuy","Description":["Fuyug"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fvr","Description":["Fur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fwa","Description":["Fwâi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"fwe","Description":["Fwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gaa","Description":["Ga"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gab","Description":["Gabri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gac","Description":["Mixed Great Andamanese"],"Added":"2010-03-11"},{"Type":"language","Subtag":"gad","Description":["Gaddang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gae","Description":["Guarequena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gaf","Description":["Gende"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gag","Description":["Gagauz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gah","Description":["Alekano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gai","Description":["Borei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gaj","Description":["Gadsup"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gak","Description":["Gamkonora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gal","Description":["Galolen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gam","Description":["Kandawo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gan","Description":["Gan Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"gao","Description":["Gants"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gap","Description":["Gal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gaq","Description":["Gata\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gar","Description":["Galeya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gas","Description":["Adiwasi Garasia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gat","Description":["Kenati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gau","Description":["Mudhili Gadaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gav","Description":["Gabutamon"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"dev"},{"Type":"language","Subtag":"gaw","Description":["Nobonob"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gax","Description":["Borana-Arsi-Guji Oromo"],"Added":"2009-07-29","Macrolanguage":"om"},{"Type":"language","Subtag":"gay","Description":["Gayo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gaz","Description":["West Central Oromo"],"Added":"2009-07-29","Macrolanguage":"om"},{"Type":"language","Subtag":"gba","Description":["Gbaya (Central African Republic)"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"gbb","Description":["Kaytetye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbc","Description":["Garawa"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see wny, wrk"]},{"Type":"language","Subtag":"gbd","Description":["Karajarri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbe","Description":["Niksek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbf","Description":["Gaikundi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbg","Description":["Gbanziri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbh","Description":["Defi Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbi","Description":["Galela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbj","Description":["Bodo Gadaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbk","Description":["Gaddi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbl","Description":["Gamit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbm","Description":["Garhwali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbn","Description":["Mo\'da"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbo","Description":["Northern Grebo"],"Added":"2009-07-29","Macrolanguage":"grb"},{"Type":"language","Subtag":"gbp","Description":["Gbaya-Bossangoa"],"Added":"2009-07-29","Macrolanguage":"gba"},{"Type":"language","Subtag":"gbq","Description":["Gbaya-Bozoum"],"Added":"2009-07-29","Macrolanguage":"gba"},{"Type":"language","Subtag":"gbr","Description":["Gbagyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbs","Description":["Gbesi Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbu","Description":["Gagadu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbv","Description":["Gbanu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbw","Description":["Gabi-Gabi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"gbx","Description":["Eastern Xwla Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gby","Description":["Gbari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gbz","Description":["Zoroastrian Dari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gcc","Description":["Mali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gcd","Description":["Ganggalida"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gce","Description":["Galice"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gcf","Description":["Guadeloupean Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gcl","Description":["Grenadian Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gcn","Description":["Gaina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gcr","Description":["Guianese Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gct","Description":["Colonia Tovar German"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gda","Description":["Gade Lohar"],"Added":"2009-07-29","Macrolanguage":"raj"},{"Type":"language","Subtag":"gdb","Description":["Pottangi Ollar Gadaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdc","Description":["Gugu Badhun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdd","Description":["Gedaged"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gde","Description":["Gude"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdf","Description":["Guduf-Gava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdg","Description":["Ga\'dang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdh","Description":["Gadjerawang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdi","Description":["Gundi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdj","Description":["Gurdjar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdk","Description":["Gadang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdl","Description":["Dirasha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdm","Description":["Laal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdn","Description":["Umanakaina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdo","Description":["Ghodoberi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdq","Description":["Mehri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdr","Description":["Wipi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gds","Description":["Ghandruk Sign Language"],"Added":"2012-08-12"},{"Type":"language","Subtag":"gdt","Description":["Kungardutyi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"gdu","Description":["Gudu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gdx","Description":["Godwari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gea","Description":["Geruma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"geb","Description":["Kire"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gec","Description":["Gboloo Grebo"],"Added":"2009-07-29","Macrolanguage":"grb"},{"Type":"language","Subtag":"ged","Description":["Gade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"geg","Description":["Gengle"],"Added":"2009-07-29"},{"Type":"language","Subtag":"geh","Description":["Hutterite German","Hutterisch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gei","Description":["Gebe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gej","Description":["Gen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gek","Description":["Ywom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gel","Description":["ut-Ma\'in"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gem","Description":["Germanic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"geq","Description":["Geme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ges","Description":["Geser-Gorom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gev","Description":["Eviya"],"Added":"2014-02-28"},{"Type":"language","Subtag":"gew","Description":["Gera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gex","Description":["Garre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gey","Description":["Enya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gez","Description":["Geez"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gfk","Description":["Patpatar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gft","Description":["Gafat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gfx","Description":["Mangetti Dune ǃXung"],"Added":"2012-08-12","Deprecated":"2015-02-12","Preferred-Value":"vaj"},{"Type":"language","Subtag":"gga","Description":["Gao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggb","Description":["Gbii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggd","Description":["Gugadj"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gge","Description":["Gurr-goni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggg","Description":["Gurgula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggk","Description":["Kungarakany"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggl","Description":["Ganglau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggn","Description":["Eastern Gurung"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"gvr"},{"Type":"language","Subtag":"ggo","Description":["Southern Gondi"],"Added":"2009-07-29","Deprecated":"2016-05-30","Comments":["see esg, wsg"]},{"Type":"language","Subtag":"ggr","Description":["Aghu Tharnggalu"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see gtu, ikr"]},{"Type":"language","Subtag":"ggt","Description":["Gitua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggu","Description":["Gagu","Gban"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ggw","Description":["Gogodala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gha","Description":["Ghadamès"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghc","Description":["Hiberno-Scottish Gaelic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghe","Description":["Southern Ghale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghh","Description":["Northern Ghale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghk","Description":["Geko Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghl","Description":["Ghulfan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghn","Description":["Ghanongga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gho","Description":["Ghomara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghr","Description":["Ghera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ghs","Description":["Guhu-Samane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ght","Description":["Kuke","Kutang Ghale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gia","Description":["Kija"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gib","Description":["Gibanawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gic","Description":["Gail"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gid","Description":["Gidar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gie","Description":["Gaɓogbo","Guébie"],"Added":"2017-02-23"},{"Type":"language","Subtag":"gig","Description":["Goaria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gih","Description":["Githabul"],"Added":"2013-09-10"},{"Type":"language","Subtag":"gil","Description":["Gilbertese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gim","Description":["Gimi (Eastern Highlands)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gin","Description":["Hinukh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gio","Description":["Gelao"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see aou, gqu"]},{"Type":"language","Subtag":"gip","Description":["Gimi (West New Britain)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"giq","Description":["Green Gelao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gir","Description":["Red Gelao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gis","Description":["North Giziga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"git","Description":["Gitxsan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"giu","Description":["Mulao"],"Added":"2012-08-12"},{"Type":"language","Subtag":"giw","Description":["White Gelao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gix","Description":["Gilima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"giy","Description":["Giyug"],"Added":"2009-07-29"},{"Type":"language","Subtag":"giz","Description":["South Giziga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gji","Description":["Geji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gjk","Description":["Kachi Koli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gjm","Description":["Gunditjmara"],"Added":"2013-09-10"},{"Type":"language","Subtag":"gjn","Description":["Gonja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gjr","Description":["Gurindji Kriol"],"Added":"2016-05-30"},{"Type":"language","Subtag":"gju","Description":["Gujari"],"Added":"2009-07-29","Macrolanguage":"raj"},{"Type":"language","Subtag":"gka","Description":["Guya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gkd","Description":["Magɨ (Madang Province)"],"Added":"2018-03-08"},{"Type":"language","Subtag":"gke","Description":["Ndai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gkn","Description":["Gokana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gko","Description":["Kok-Nar"],"Added":"2012-08-12"},{"Type":"language","Subtag":"gkp","Description":["Guinea Kpelle"],"Added":"2009-07-29","Macrolanguage":"kpe"},{"Type":"language","Subtag":"gku","Description":["ǂUngkue"],"Added":"2015-02-12"},{"Type":"language","Subtag":"glc","Description":["Bon Gula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gld","Description":["Nanai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"glh","Description":["Northwest Pashai","Northwest Pashayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gli","Description":["Guliguli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"glj","Description":["Gula Iro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"glk","Description":["Gilaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gll","Description":["Garlali"],"Added":"2013-09-10"},{"Type":"language","Subtag":"glo","Description":["Galambu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"glr","Description":["Glaro-Twabo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"glu","Description":["Gula (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"glw","Description":["Glavda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gly","Description":["Gule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gma","Description":["Gambera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmb","Description":["Gula\'alaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmd","Description":["Mághdì"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gme","Description":["East Germanic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"gmg","Description":["Magɨyi"],"Added":"2014-02-28"},{"Type":"language","Subtag":"gmh","Description":["Middle High German (ca. 1050-1500)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gml","Description":["Middle Low German"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmm","Description":["Gbaya-Mbodomo"],"Added":"2009-07-29","Macrolanguage":"gba"},{"Type":"language","Subtag":"gmn","Description":["Gimnime"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmq","Description":["North Germanic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"gmu","Description":["Gumalu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmv","Description":["Gamo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmw","Description":["West Germanic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"gmx","Description":["Magoma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmy","Description":["Mycenaean Greek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gmz","Description":["Mgbolizhia"],"Added":"2013-09-10"},{"Type":"language","Subtag":"gna","Description":["Kaansa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnb","Description":["Gangte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnc","Description":["Guanche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnd","Description":["Zulgo-Gemzek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gne","Description":["Ganang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gng","Description":["Ngangam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnh","Description":["Lere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gni","Description":["Gooniyandi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnj","Description":["Ngen"],"Added":"2018-03-08"},{"Type":"language","Subtag":"gnk","Description":["ǁGana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnl","Description":["Gangulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnm","Description":["Ginuman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnn","Description":["Gumatj"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gno","Description":["Northern Gondi"],"Added":"2009-07-29","Macrolanguage":"gon"},{"Type":"language","Subtag":"gnq","Description":["Gana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnr","Description":["Gureng Gureng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnt","Description":["Guntai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnu","Description":["Gnau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gnw","Description":["Western Bolivian Guaraní"],"Added":"2009-07-29","Macrolanguage":"gn"},{"Type":"language","Subtag":"gnz","Description":["Ganzi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goa","Description":["Guro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gob","Description":["Playero"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goc","Description":["Gorakor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"god","Description":["Godié"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goe","Description":["Gongduk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gof","Description":["Gofa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gog","Description":["Gogo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goh","Description":["Old High German (ca. 750-1050)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"goi","Description":["Gobasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goj","Description":["Gowlan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gok","Description":["Gowli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gol","Description":["Gola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gom","Description":["Goan Konkani"],"Added":"2009-07-29","Macrolanguage":"kok"},{"Type":"language","Subtag":"gon","Description":["Gondi"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"goo","Description":["Gone Dau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gop","Description":["Yeretuar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goq","Description":["Gorap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gor","Description":["Gorontalo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gos","Description":["Gronings"],"Added":"2009-07-29"},{"Type":"language","Subtag":"got","Description":["Gothic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gou","Description":["Gavar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gow","Description":["Gorowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gox","Description":["Gobu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goy","Description":["Goundo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"goz","Description":["Gozarkhani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gpa","Description":["Gupa-Abawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gpe","Description":["Ghanaian Pidgin English"],"Added":"2012-08-12"},{"Type":"language","Subtag":"gpn","Description":["Taiap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gqa","Description":["Ga\'anda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gqi","Description":["Guiqiong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gqn","Description":["Guana (Brazil)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gqr","Description":["Gor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gqu","Description":["Qau"],"Added":"2012-08-12"},{"Type":"language","Subtag":"gra","Description":["Rajput Garasia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grb","Description":["Grebo"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"grc","Description":["Ancient Greek (to 1453)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"grd","Description":["Guruntum-Mbaaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grg","Description":["Madi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grh","Description":["Gbiri-Niragu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gri","Description":["Ghari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grj","Description":["Southern Grebo"],"Added":"2009-07-29","Macrolanguage":"grb"},{"Type":"language","Subtag":"grk","Description":["Greek languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"grm","Description":["Kota Marudu Talantang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gro","Description":["Groma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grq","Description":["Gorovu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grr","Description":["Taznatit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grs","Description":["Gresi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grt","Description":["Garo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gru","Description":["Kistane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grv","Description":["Central Grebo"],"Added":"2009-07-29","Macrolanguage":"grb"},{"Type":"language","Subtag":"grw","Description":["Gweda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"grx","Description":["Guriaso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gry","Description":["Barclayville Grebo"],"Added":"2009-07-29","Macrolanguage":"grb"},{"Type":"language","Subtag":"grz","Description":["Guramalum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gse","Description":["Ghanaian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gsg","Description":["German Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gsl","Description":["Gusilay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gsm","Description":["Guatemalan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gsn","Description":["Nema","Gusan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gso","Description":["Southwest Gbaya"],"Added":"2009-07-29","Macrolanguage":"gba"},{"Type":"language","Subtag":"gsp","Description":["Wasembo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gss","Description":["Greek Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gsw","Description":["Swiss German","Alemannic","Alsatian"],"Added":"2006-03-08","Suppress-Script":"Latn"},{"Type":"language","Subtag":"gta","Description":["Guató"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gti","Description":["Gbati-ri"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"nyc"},{"Type":"language","Subtag":"gtu","Description":["Aghu-Tharnggala"],"Added":"2013-09-10"},{"Type":"language","Subtag":"gua","Description":["Shiki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gub","Description":["Guajajára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"guc","Description":["Wayuu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gud","Description":["Yocoboué Dida"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gue","Description":["Gurindji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"guf","Description":["Gupapuyngu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gug","Description":["Paraguayan Guaraní"],"Added":"2009-07-29","Macrolanguage":"gn"},{"Type":"language","Subtag":"guh","Description":["Guahibo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gui","Description":["Eastern Bolivian Guaraní"],"Added":"2009-07-29","Macrolanguage":"gn"},{"Type":"language","Subtag":"guk","Description":["Gumuz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gul","Description":["Sea Island Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gum","Description":["Guambiano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gun","Description":["Mbyá Guaraní"],"Added":"2009-07-29","Macrolanguage":"gn"},{"Type":"language","Subtag":"guo","Description":["Guayabero"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gup","Description":["Gunwinggu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"guq","Description":["Aché"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gur","Description":["Farefare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gus","Description":["Guinean Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gut","Description":["Maléku Jaíka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"guu","Description":["Yanomamö"],"Added":"2009-07-29"},{"Type":"language","Subtag":"guv","Description":["Gey"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"duz"},{"Type":"language","Subtag":"guw","Description":["Gun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gux","Description":["Gourmanchéma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"guz","Description":["Gusii","Ekegusii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gva","Description":["Guana (Paraguay)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvc","Description":["Guanano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gve","Description":["Duwet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvf","Description":["Golin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvj","Description":["Guajá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvl","Description":["Gulay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvm","Description":["Gurmana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvn","Description":["Kuku-Yalanji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvo","Description":["Gavião Do Jiparaná"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvp","Description":["Pará Gavião"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvr","Description":["Gurung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvs","Description":["Gumawana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gvy","Description":["Guyani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwa","Description":["Mbato"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwb","Description":["Gwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwc","Description":["Kalami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwd","Description":["Gawwada"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwe","Description":["Gweno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwf","Description":["Gowro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwg","Description":["Moo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwi","Description":["Gwichʼin"],"Added":"2005-10-16"},{"Type":"language","Subtag":"gwj","Description":["ǀGwi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwm","Description":["Awngthim"],"Added":"2012-08-12"},{"Type":"language","Subtag":"gwn","Description":["Gwandara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwr","Description":["Gwere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwt","Description":["Gawar-Bati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwu","Description":["Guwamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gww","Description":["Kwini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gwx","Description":["Gua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gxx","Description":["Wè Southern"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gya","Description":["Northwest Gbaya"],"Added":"2009-07-29","Macrolanguage":"gba"},{"Type":"language","Subtag":"gyb","Description":["Garus"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyd","Description":["Kayardild"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gye","Description":["Gyem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyf","Description":["Gungabula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyg","Description":["Gbayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyi","Description":["Gyele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyl","Description":["Gayil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gym","Description":["Ngäbere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyn","Description":["Guyanese Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyo","Description":["Gyalsumdo"],"Added":"2018-03-08"},{"Type":"language","Subtag":"gyr","Description":["Guarayu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gyy","Description":["Gunya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gza","Description":["Ganza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gzi","Description":["Gazi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"gzn","Description":["Gane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"haa","Description":["Han"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hab","Description":["Hanoi Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hac","Description":["Gurani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"had","Description":["Hatam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hae","Description":["Eastern Oromo"],"Added":"2009-07-29","Macrolanguage":"om"},{"Type":"language","Subtag":"haf","Description":["Haiphong Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hag","Description":["Hanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hah","Description":["Hahon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hai","Description":["Haida"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"haj","Description":["Hajong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hak","Description":["Hakka Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"hal","Description":["Halang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ham","Description":["Hewa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"han","Description":["Hangaza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hao","Description":["Hakö"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hap","Description":["Hupla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"haq","Description":["Ha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"har","Description":["Harari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"has","Description":["Haisla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hav","Description":["Havu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"haw","Description":["Hawaiian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"hax","Description":["Southern Haida"],"Added":"2009-07-29","Macrolanguage":"hai"},{"Type":"language","Subtag":"hay","Description":["Haya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"haz","Description":["Hazaragi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hba","Description":["Hamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hbb","Description":["Huba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hbn","Description":["Heiban"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hbo","Description":["Ancient Hebrew"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hbu","Description":["Habu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hca","Description":["Andaman Creole Hindi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hch","Description":["Huichol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hdn","Description":["Northern Haida"],"Added":"2009-07-29","Macrolanguage":"hai"},{"Type":"language","Subtag":"hds","Description":["Honduras Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hdy","Description":["Hadiyya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hea","Description":["Northern Qiandong Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hed","Description":["Herdé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"heg","Description":["Helong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"heh","Description":["Hehe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hei","Description":["Heiltsuk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hem","Description":["Hemba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hgm","Description":["Haiǁom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hgw","Description":["Haigwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hhi","Description":["Hoia Hoia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hhr","Description":["Kerak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hhy","Description":["Hoyahoya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hia","Description":["Lamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hib","Description":["Hibito"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hid","Description":["Hidatsa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hif","Description":["Fiji Hindi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hig","Description":["Kamwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hih","Description":["Pamosu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hii","Description":["Hinduri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hij","Description":["Hijuk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hik","Description":["Seit-Kaitetu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hil","Description":["Hiligaynon"],"Added":"2005-10-16"},{"Type":"language","Subtag":"him","Description":["Himachali languages","Western Pahari languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"hio","Description":["Tsoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hir","Description":["Himarimã"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hit","Description":["Hittite"],"Added":"2005-10-16"},{"Type":"language","Subtag":"hiw","Description":["Hiw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hix","Description":["Hixkaryána"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hji","Description":["Haji"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"hka","Description":["Kahe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hke","Description":["Hunde"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hkk","Description":["Hunjara-Kaina Ke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hkn","Description":["Mel-Khaonh"],"Added":"2018-03-08"},{"Type":"language","Subtag":"hks","Description":["Hong Kong Sign Language","Heung Kong Sau Yue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hla","Description":["Halia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hlb","Description":["Halbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hld","Description":["Halang Doan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hle","Description":["Hlersu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hlt","Description":["Matu Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hlu","Description":["Hieroglyphic Luwian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hma","Description":["Southern Mashan Hmong","Southern Mashan Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmb","Description":["Humburi Senni Songhay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hmc","Description":["Central Huishui Hmong","Central Huishui Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmd","Description":["Large Flowery Miao","A-hmaos","Da-Hua Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hme","Description":["Eastern Huishui Hmong","Eastern Huishui Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmf","Description":["Hmong Don"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hmg","Description":["Southwestern Guiyang Hmong"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmh","Description":["Southwestern Huishui Hmong","Southwestern Huishui Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmi","Description":["Northern Huishui Hmong","Northern Huishui Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmj","Description":["Ge","Gejia"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmk","Description":["Maek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hml","Description":["Luopohe Hmong","Luopohe Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmm","Description":["Central Mashan Hmong","Central Mashan Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmn","Description":["Hmong","Mong"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"hmp","Description":["Northern Mashan Hmong","Northern Mashan Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmq","Description":["Eastern Qiandong Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmr","Description":["Hmar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hms","Description":["Southern Qiandong Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmt","Description":["Hamtai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hmu","Description":["Hamap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hmv","Description":["Hmong Dô"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hmw","Description":["Western Mashan Hmong","Western Mashan Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmx","Description":["Hmong-Mien languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"hmy","Description":["Southern Guiyang Hmong","Southern Guiyang Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hmz","Description":["Hmong Shua","Sinicized Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hna","Description":["Mina (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hnd","Description":["Southern Hindko"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"hne","Description":["Chhattisgarhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hnh","Description":["ǁAni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hni","Description":["Hani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hnj","Description":["Hmong Njua","Mong Leng","Mong Njua"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hnn","Description":["Hanunoo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hno","Description":["Northern Hindko"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"hns","Description":["Caribbean Hindustani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hnu","Description":["Hung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoa","Description":["Hoava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hob","Description":["Mari (Madang Province)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoc","Description":["Ho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hod","Description":["Holma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoe","Description":["Horom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoh","Description":["Hobyót"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoi","Description":["Holikachuk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoj","Description":["Hadothi","Haroti"],"Added":"2009-07-29","Macrolanguage":"raj"},{"Type":"language","Subtag":"hok","Description":["Hokan languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"hol","Description":["Holu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hom","Description":["Homa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoo","Description":["Holoholo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hop","Description":["Hopi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hor","Description":["Horo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hos","Description":["Ho Chi Minh City Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hot","Description":["Hote","Malê"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hov","Description":["Hovongan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"how","Description":["Honi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoy","Description":["Holiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hoz","Description":["Hozo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hpo","Description":["Hpon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hps","Description":["Hawai\'i Sign Language (HSL)","Hawai\'i Pidgin Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hra","Description":["Hrangkhol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hrc","Description":["Niwer Mil"],"Added":"2013-09-10"},{"Type":"language","Subtag":"hre","Description":["Hre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hrk","Description":["Haruku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hrm","Description":["Horned Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"hro","Description":["Haroi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hrp","Description":["Nhirrpi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"hrr","Description":["Horuru"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"jal"},{"Type":"language","Subtag":"hrt","Description":["Hértevin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hru","Description":["Hruso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hrw","Description":["Warwar Feni"],"Added":"2013-09-10"},{"Type":"language","Subtag":"hrx","Description":["Hunsrik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hrz","Description":["Harzani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hsb","Description":["Upper Sorbian"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"hsh","Description":["Hungarian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hsl","Description":["Hausa Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hsn","Description":["Xiang Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"hss","Description":["Harsusi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hti","Description":["Hoti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hto","Description":["Minica Huitoto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hts","Description":["Hadza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"htu","Description":["Hitu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"htx","Description":["Middle Hittite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hub","Description":["Huambisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huc","Description":["ǂHua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hud","Description":["Huaulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hue","Description":["San Francisco Del Mar Huave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huf","Description":["Humene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hug","Description":["Huachipaeri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huh","Description":["Huilliche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hui","Description":["Huli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huj","Description":["Northern Guiyang Hmong","Northern Guiyang Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"huk","Description":["Hulung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hul","Description":["Hula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hum","Description":["Hungana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huo","Description":["Hu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hup","Description":["Hupa"],"Added":"2005-10-16"},{"Type":"language","Subtag":"huq","Description":["Tsat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hur","Description":["Halkomelem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hus","Description":["Huastec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hut","Description":["Humla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huu","Description":["Murui Huitoto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huv","Description":["San Mateo Del Mar Huave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huw","Description":["Hukumina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hux","Description":["Nüpode Huitoto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huy","Description":["Hulaulá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"huz","Description":["Hunzib"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hvc","Description":["Haitian Vodoun Culture Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hve","Description":["San Dionisio Del Mar Huave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hvk","Description":["Haveke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hvn","Description":["Sabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hvv","Description":["Santa María Del Mar Huave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hwa","Description":["Wané"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hwc","Description":["Hawai\'i Creole English","Hawai\'i Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hwo","Description":["Hwana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hya","Description":["Hya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"hyw","Description":["Western Armenian"],"Added":"2018-03-08","Comments":["see also hy"]},{"Type":"language","Subtag":"hyx","Description":["Armenian (family)"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"iai","Description":["Iaai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ian","Description":["Iatmul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iap","Description":["Iapama"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"iar","Description":["Purari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iba","Description":["Iban"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ibb","Description":["Ibibio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibd","Description":["Iwaidja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibe","Description":["Akpes"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibg","Description":["Ibanag"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibh","Description":["Bih"],"Added":"2017-02-23"},{"Type":"language","Subtag":"ibi","Description":["Ibilo"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"opa"},{"Type":"language","Subtag":"ibl","Description":["Ibaloi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibm","Description":["Agoi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibn","Description":["Ibino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibr","Description":["Ibuoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ibu","Description":["Ibu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iby","Description":["Ibani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ica","Description":["Ede Ica"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ich","Description":["Etkywan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"icl","Description":["Icelandic Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"icr","Description":["Islander Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ida","Description":["Idakho-Isukha-Tiriki","Luidakho-Luisukha-Lutirichi"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"idb","Description":["Indo-Portuguese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"idc","Description":["Idon","Ajiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"idd","Description":["Ede Idaca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ide","Description":["Idere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"idi","Description":["Idi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"idr","Description":["Indri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ids","Description":["Idesa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"idt","Description":["Idaté"],"Added":"2009-07-29"},{"Type":"language","Subtag":"idu","Description":["Idoma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ifa","Description":["Amganad Ifugao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ifb","Description":["Batad Ifugao","Ayangan Ifugao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ife","Description":["Ifè"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iff","Description":["Ifo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ifk","Description":["Tuwali Ifugao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ifm","Description":["Teke-Fuumu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ifu","Description":["Mayoyao Ifugao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ify","Description":["Keley-I Kallahan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igb","Description":["Ebira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ige","Description":["Igede"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igg","Description":["Igana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igl","Description":["Igala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igm","Description":["Kanggape"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ign","Description":["Ignaciano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igo","Description":["Isebe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igs","Description":["Interglossa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"igw","Description":["Igwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ihb","Description":["Iha Based Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ihi","Description":["Ihievbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ihp","Description":["Iha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ihw","Description":["Bidhawal"],"Added":"2012-08-12"},{"Type":"language","Subtag":"iin","Description":["Thiin"],"Added":"2013-09-10"},{"Type":"language","Subtag":"iir","Description":["Indo-Iranian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"ijc","Description":["Izon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ije","Description":["Biseni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ijj","Description":["Ede Ije"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ijn","Description":["Kalabari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ijo","Description":["Ijo languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ijs","Description":["Southeast Ijo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ike","Description":["Eastern Canadian Inuktitut"],"Added":"2009-07-29","Macrolanguage":"iu"},{"Type":"language","Subtag":"iki","Description":["Iko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikk","Description":["Ika"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikl","Description":["Ikulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iko","Description":["Olulumo-Ikom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikp","Description":["Ikpeshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikr","Description":["Ikaranggal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"iks","Description":["Inuit Sign Language"],"Added":"2015-02-12"},{"Type":"language","Subtag":"ikt","Description":["Inuinnaqtun","Western Canadian Inuktitut"],"Added":"2009-07-29","Macrolanguage":"iu"},{"Type":"language","Subtag":"ikv","Description":["Iku-Gora-Ankwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikw","Description":["Ikwere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikx","Description":["Ik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ikz","Description":["Ikizu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ila","Description":["Ile Ape"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ilb","Description":["Ila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ilg","Description":["Garig-Ilgar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ili","Description":["Ili Turki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ilk","Description":["Ilongot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ill","Description":["Iranun"],"Added":"2009-07-29","Deprecated":"2016-05-30","Comments":["see ilm, ilp"]},{"Type":"language","Subtag":"ilm","Description":["Iranun (Malaysia)"],"Added":"2016-05-30"},{"Type":"language","Subtag":"ilo","Description":["Iloko"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ilp","Description":["Iranun (Philippines)"],"Added":"2016-05-30"},{"Type":"language","Subtag":"ils","Description":["International Sign"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ilu","Description":["Ili\'uun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ilv","Description":["Ilue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ilw","Description":["Talur"],"Added":"2009-07-29","Deprecated":"2013-09-10","Preferred-Value":"gal"},{"Type":"language","Subtag":"ima","Description":["Mala Malasar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ime","Description":["Imeraguen"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"imi","Description":["Anamgura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iml","Description":["Miluk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"imn","Description":["Imonda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"imo","Description":["Imbongu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"imr","Description":["Imroing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ims","Description":["Marsian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"imy","Description":["Milyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inb","Description":["Inga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inc","Description":["Indic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ine","Description":["Indo-European languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ing","Description":["Degexit\'an"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inh","Description":["Ingush"],"Added":"2005-10-16"},{"Type":"language","Subtag":"inj","Description":["Jungle Inga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inl","Description":["Indonesian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inm","Description":["Minaean"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inn","Description":["Isinai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ino","Description":["Inoke-Yate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inp","Description":["Iñapari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ins","Description":["Indian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"int","Description":["Intha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"inz","Description":["Ineseño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ior","Description":["Inor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iou","Description":["Tuma-Irumu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iow","Description":["Iowa-Oto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ipi","Description":["Ipili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ipo","Description":["Ipiko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iqu","Description":["Iquito"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iqw","Description":["Ikwo"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ira","Description":["Iranian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ire","Description":["Iresim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"irh","Description":["Irarutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iri","Description":["Rigwe","Irigwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"irk","Description":["Iraqw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"irn","Description":["Irántxe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iro","Description":["Iroquoian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"irr","Description":["Ir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iru","Description":["Irula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"irx","Description":["Kamberau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iry","Description":["Iraya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isa","Description":["Isabi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isc","Description":["Isconahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isd","Description":["Isnag"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ise","Description":["Italian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isg","Description":["Irish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ish","Description":["Esan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isi","Description":["Nkem-Nkum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isk","Description":["Ishkashimi"],"Added":"2010-03-11"},{"Type":"language","Subtag":"ism","Description":["Masimasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isn","Description":["Isanzu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iso","Description":["Isoko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isr","Description":["Israeli Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ist","Description":["Istriot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"isu","Description":["Isu (Menchum Division)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itb","Description":["Binongan Itneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itc","Description":["Italic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"itd","Description":["Southern Tidung"],"Added":"2016-05-30"},{"Type":"language","Subtag":"ite","Description":["Itene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iti","Description":["Inlaod Itneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itk","Description":["Judeo-Italian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itl","Description":["Itelmen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itm","Description":["Itu Mbon Uzo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ito","Description":["Itonama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itr","Description":["Iteri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"its","Description":["Isekiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itt","Description":["Maeng Itneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itv","Description":["Itawit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itw","Description":["Ito"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itx","Description":["Itik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ity","Description":["Moyadan Itneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"itz","Description":["Itzá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ium","Description":["Iu Mien"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ivb","Description":["Ibatan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ivv","Description":["Ivatan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iwk","Description":["I-Wak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iwm","Description":["Iwam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iwo","Description":["Iwur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iws","Description":["Sepik Iwam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ixc","Description":["Ixcatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ixl","Description":["Ixil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iya","Description":["Iyayu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iyo","Description":["Mesaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"iyx","Description":["Yaka (Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"izh","Description":["Ingrian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"izi","Description":["Izi-Ezaa-Ikwo-Mgbo"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see eza, gmz, iqw, izz"]},{"Type":"language","Subtag":"izr","Description":["Izere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"izz","Description":["Izii"],"Added":"2013-09-10"},{"Type":"language","Subtag":"jaa","Description":["Jamamadí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jab","Description":["Hyam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jac","Description":["Popti\'","Jakalteko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jad","Description":["Jahanka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jae","Description":["Yabem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jaf","Description":["Jara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jah","Description":["Jah Hut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jaj","Description":["Zazao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jak","Description":["Jakun"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"jal","Description":["Yalahatan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jam","Description":["Jamaican Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jan","Description":["Jandai"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jao","Description":["Yanyuwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jaq","Description":["Yaqay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jar","Description":["Jarawa (Nigeria)"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see jgk, jjr"]},{"Type":"language","Subtag":"jas","Description":["New Caledonian Javanese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jat","Description":["Jakati"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"jau","Description":["Yaur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jax","Description":["Jambi Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"jay","Description":["Yan-nhangu","Nhangu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jaz","Description":["Jawe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbe","Description":["Judeo-Berber"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbi","Description":["Badjiri"],"Added":"2013-09-10"},{"Type":"language","Subtag":"jbj","Description":["Arandai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbk","Description":["Barikewa"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jbn","Description":["Nafusi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbo","Description":["Lojban"],"Added":"2005-10-16"},{"Type":"language","Subtag":"jbr","Description":["Jofotek-Bromnya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbt","Description":["Jabutí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbu","Description":["Jukun Takum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jbw","Description":["Yawijibaya"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jcs","Description":["Jamaican Country Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jct","Description":["Krymchak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jda","Description":["Jad"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jdg","Description":["Jadgali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jdt","Description":["Judeo-Tat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jeb","Description":["Jebero"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jee","Description":["Jerung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jeg","Description":["Jeng"],"Added":"2009-07-29","Deprecated":"2017-02-23","Preferred-Value":"oyb"},{"Type":"language","Subtag":"jeh","Description":["Jeh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jei","Description":["Yei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jek","Description":["Jeri Kuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jel","Description":["Yelmek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jen","Description":["Dza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jer","Description":["Jere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jet","Description":["Manem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jeu","Description":["Jonkor Bourmataguil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jgb","Description":["Ngbee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jge","Description":["Judeo-Georgian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jgk","Description":["Gwak"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jgo","Description":["Ngomba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jhi","Description":["Jehai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jhs","Description":["Jhankot Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jia","Description":["Jina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jib","Description":["Jibu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jic","Description":["Tol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jid","Description":["Bu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jie","Description":["Jilbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jig","Description":["Jingulu","Djingili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jih","Description":["sTodsde","Shangzhai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jii","Description":["Jiiddu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jil","Description":["Jilim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jim","Description":["Jimi (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jio","Description":["Jiamao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jiq","Description":["Guanyinqiao","Lavrung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jit","Description":["Jita"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jiu","Description":["Youle Jinuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jiv","Description":["Shuar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jiy","Description":["Buyuan Jinuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jje","Description":["Jejueo"],"Added":"2015-02-12"},{"Type":"language","Subtag":"jjr","Description":["Bankal"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jka","Description":["Kaera"],"Added":"2016-05-30"},{"Type":"language","Subtag":"jkm","Description":["Mobwa Karen"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jko","Description":["Kubo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jkp","Description":["Paku Karen"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jkr","Description":["Koro (India)"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jku","Description":["Labir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jle","Description":["Ngile"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jls","Description":["Jamaican Sign Language"],"Added":"2010-03-11"},{"Type":"language","Subtag":"jma","Description":["Dima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmb","Description":["Zumbun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmc","Description":["Machame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmd","Description":["Yamdena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmi","Description":["Jimi (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jml","Description":["Jumli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmn","Description":["Makuri Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmr","Description":["Kamara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jms","Description":["Mashi (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jmw","Description":["Mouwase"],"Added":"2012-08-12"},{"Type":"language","Subtag":"jmx","Description":["Western Juxtlahuaca Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jna","Description":["Jangshung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jnd","Description":["Jandavra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jng","Description":["Yangman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jni","Description":["Janji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jnj","Description":["Yemsa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jnl","Description":["Rawat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jns","Description":["Jaunsari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"job","Description":["Joba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jod","Description":["Wojenaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jog","Description":["Jogi"],"Added":"2015-05-27"},{"Type":"language","Subtag":"jor","Description":["Jorá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jos","Description":["Jordanian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jow","Description":["Jowulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jpa","Description":["Jewish Palestinian Aramaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jpr","Description":["Judeo-Persian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"jpx","Description":["Japanese (family)"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"jqr","Description":["Jaqaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jra","Description":["Jarai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jrb","Description":["Judeo-Arabic"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"jrr","Description":["Jiru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jrt","Description":["Jorto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jru","Description":["Japrería"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jsl","Description":["Japanese Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jua","Description":["Júma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jub","Description":["Wannu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"juc","Description":["Jurchen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jud","Description":["Worodougou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"juh","Description":["Hõne"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jui","Description":["Ngadjuri"],"Added":"2012-08-12"},{"Type":"language","Subtag":"juk","Description":["Wapan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jul","Description":["Jirel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jum","Description":["Jumjum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jun","Description":["Juang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"juo","Description":["Jiba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jup","Description":["Hupdë"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jur","Description":["Jurúna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jus","Description":["Jumla Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jut","Description":["Jutish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"juu","Description":["Ju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"juw","Description":["Wãpha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"juy","Description":["Juray"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jvd","Description":["Javindo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jvn","Description":["Caribbean Javanese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jwi","Description":["Jwira-Pepesa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jya","Description":["Jiarong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"jye","Description":["Judeo-Yemeni Arabic"],"Added":"2009-07-29","Macrolanguage":"jrb"},{"Type":"language","Subtag":"jyy","Description":["Jaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kaa","Description":["Kara-Kalpak"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kab","Description":["Kabyle"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kac","Description":["Kachin","Jingpho"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kad","Description":["Adara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kae","Description":["Ketangalan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kaf","Description":["Katso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kag","Description":["Kajaman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kah","Description":["Kara (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kai","Description":["Karekare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kaj","Description":["Jju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kak","Description":["Kalanguya","Kayapa Kallahan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kam","Description":["Kamba (Kenya)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kao","Description":["Xaasongaxango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kap","Description":["Bezhta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kaq","Description":["Capanahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kar","Description":["Karen languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"kav","Description":["Katukína"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kaw","Description":["Kawi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kax","Description":["Kao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kay","Description":["Kamayurá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kba","Description":["Kalarko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbb","Description":["Kaxuiâna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbc","Description":["Kadiwéu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbd","Description":["Kabardian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kbe","Description":["Kanju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbf","Description":["Kakauhua"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"kbg","Description":["Khamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbh","Description":["Camsá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbi","Description":["Kaptiau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbj","Description":["Kari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbk","Description":["Grass Koiari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbl","Description":["Kanembu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbm","Description":["Iwal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbn","Description":["Kare (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbo","Description":["Keliko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbp","Description":["Kabiyè"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbq","Description":["Kamano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbr","Description":["Kafa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbs","Description":["Kande"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbt","Description":["Abadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbu","Description":["Kabutra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbv","Description":["Dera (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbw","Description":["Kaiep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kbx","Description":["Ap Ma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kby","Description":["Manga Kanuri"],"Added":"2009-07-29","Macrolanguage":"kr"},{"Type":"language","Subtag":"kbz","Description":["Duhwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kca","Description":["Khanty"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcb","Description":["Kawacha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcc","Description":["Lubila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcd","Description":["Ngkâlmpw Kanum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kce","Description":["Kaivi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcf","Description":["Ukaan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcg","Description":["Tyap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kch","Description":["Vono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kci","Description":["Kamantan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcj","Description":["Kobiana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kck","Description":["Kalanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcl","Description":["Kela (Papua New Guinea)","Kala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcm","Description":["Gula (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcn","Description":["Nubi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kco","Description":["Kinalakna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcp","Description":["Kanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcq","Description":["Kamo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcr","Description":["Katla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcs","Description":["Koenoem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kct","Description":["Kaian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcu","Description":["Kami (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcv","Description":["Kete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcw","Description":["Kabwari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcx","Description":["Kachama-Ganjule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcy","Description":["Korandje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kcz","Description":["Konongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kda","Description":["Worimi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdc","Description":["Kutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdd","Description":["Yankunytjatjara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kde","Description":["Makonde"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdf","Description":["Mamusi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdg","Description":["Seba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdh","Description":["Tem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdi","Description":["Kumam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdj","Description":["Karamojong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdk","Description":["Numèè","Kwényi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdl","Description":["Tsikimba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdm","Description":["Kagoma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdn","Description":["Kunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdo","Description":["Kordofanian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"kdp","Description":["Kaningdon-Nindem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdq","Description":["Koch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdr","Description":["Karaim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdt","Description":["Kuy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdu","Description":["Kadaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdv","Description":["Kado"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see zkd, zkn"]},{"Type":"language","Subtag":"kdw","Description":["Koneraw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdx","Description":["Kam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdy","Description":["Keder","Keijar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kdz","Description":["Kwaja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kea","Description":["Kabuverdianu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"keb","Description":["Kélé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kec","Description":["Keiga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ked","Description":["Kerewe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kee","Description":["Eastern Keres"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kef","Description":["Kpessi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"keg","Description":["Tese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"keh","Description":["Keak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kei","Description":["Kei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kej","Description":["Kadar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kek","Description":["Kekchí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kel","Description":["Kela (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kem","Description":["Kemak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ken","Description":["Kenyang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"keo","Description":["Kakwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kep","Description":["Kaikadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"keq","Description":["Kamar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ker","Description":["Kera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kes","Description":["Kugbo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ket","Description":["Ket"],"Added":"2009-07-29"},{"Type":"language","Subtag":"keu","Description":["Akebu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kev","Description":["Kanikkaran"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kew","Description":["West Kewa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kex","Description":["Kukna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"key","Description":["Kupia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kez","Description":["Kukele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfa","Description":["Kodava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfb","Description":["Northwestern Kolami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfc","Description":["Konda-Dora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfd","Description":["Korra Koraga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfe","Description":["Kota (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kff","Description":["Koya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfg","Description":["Kudiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfh","Description":["Kurichiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfi","Description":["Kannada Kurumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfj","Description":["Kemiehua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfk","Description":["Kinnauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfl","Description":["Kung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfm","Description":["Khunsari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfn","Description":["Kuk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfo","Description":["Koro (Côte d\'Ivoire)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfp","Description":["Korwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfq","Description":["Korku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfr","Description":["Kachhi","Kutchi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfs","Description":["Bilaspuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kft","Description":["Kanjari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfu","Description":["Katkari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfv","Description":["Kurmukar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfw","Description":["Kharam Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfx","Description":["Kullu Pahari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfy","Description":["Kumaoni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kfz","Description":["Koromfé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kga","Description":["Koyaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgb","Description":["Kawe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgc","Description":["Kasseng"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"tdf"},{"Type":"language","Subtag":"kgd","Description":["Kataang"],"Added":"2009-07-29","Deprecated":"2017-02-23","Comments":["see ncq, sct"]},{"Type":"language","Subtag":"kge","Description":["Komering"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgf","Description":["Kube"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgg","Description":["Kusunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgh","Description":["Upper Tanudan Kalinga"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"kml"},{"Type":"language","Subtag":"kgi","Description":["Selangor Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgj","Description":["Gamale Kham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgk","Description":["Kaiwá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgl","Description":["Kunggari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgm","Description":["Karipúna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgn","Description":["Karingani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgo","Description":["Krongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgp","Description":["Kaingang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgq","Description":["Kamoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgr","Description":["Abun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgs","Description":["Kumbainggar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgt","Description":["Somyev"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgu","Description":["Kobol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgv","Description":["Karas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgw","Description":["Karon Dori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgx","Description":["Kamaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kgy","Description":["Kyerung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kha","Description":["Khasi"],"Added":"2005-10-16","Comments":["as of 2008-04-21 this subtag does not include Lyngngam; see","lyg"]},{"Type":"language","Subtag":"khb","Description":["Lü"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khc","Description":["Tukang Besi North"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khd","Description":["Bädi Kanum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khe","Description":["Korowai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khf","Description":["Khuen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khg","Description":["Khams Tibetan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khh","Description":["Kehu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khi","Description":["Khoisan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"khj","Description":["Kuturmi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khk","Description":["Halh Mongolian"],"Added":"2009-07-29","Macrolanguage":"mn"},{"Type":"language","Subtag":"khl","Description":["Lusi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khn","Description":["Khandesi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kho","Description":["Khotanese","Sakan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"khp","Description":["Kapori","Kapauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khq","Description":["Koyra Chiini Songhay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khr","Description":["Kharia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khs","Description":["Kasua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kht","Description":["Khamti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khu","Description":["Nkhumbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khv","Description":["Khvarshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khw","Description":["Khowar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khx","Description":["Kanu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khy","Description":["Kele (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"khz","Description":["Keapara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kia","Description":["Kim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kib","Description":["Koalib"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kic","Description":["Kickapoo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kid","Description":["Koshin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kie","Description":["Kibet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kif","Description":["Eastern Parbate Kham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kig","Description":["Kimaama","Kimaghima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kih","Description":["Kilmeri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kii","Description":["Kitsai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kij","Description":["Kilivila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kil","Description":["Kariya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kim","Description":["Karagas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kio","Description":["Kiowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kip","Description":["Sheshi Kham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kiq","Description":["Kosadle","Kosare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kis","Description":["Kis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kit","Description":["Agob"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kiu","Description":["Kirmanjki (individual language)"],"Added":"2009-07-29","Macrolanguage":"zza"},{"Type":"language","Subtag":"kiv","Description":["Kimbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kiw","Description":["Northeast Kiwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kix","Description":["Khiamniungan Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kiy","Description":["Kirikiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kiz","Description":["Kisi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kja","Description":["Mlap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjb","Description":["Q\'anjob\'al","Kanjobal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjc","Description":["Coastal Konjo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjd","Description":["Southern Kiwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kje","Description":["Kisar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjf","Description":["Khalaj"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjg","Description":["Khmu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjh","Description":["Khakas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kji","Description":["Zabana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjj","Description":["Khinalugh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjk","Description":["Highland Konjo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjl","Description":["Western Parbate Kham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjm","Description":["Kháng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjn","Description":["Kunjen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjo","Description":["Harijan Kinnauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjp","Description":["Pwo Eastern Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjq","Description":["Western Keres"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjr","Description":["Kurudu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjs","Description":["East Kewa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjt","Description":["Phrae Pwo Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kju","Description":["Kashaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjv","Description":["Kaikavian Literary Language"],"Added":"2015-02-12"},{"Type":"language","Subtag":"kjx","Description":["Ramopa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjy","Description":["Erave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kjz","Description":["Bumthangkha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kka","Description":["Kakanda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkb","Description":["Kwerisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkc","Description":["Odoodee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkd","Description":["Kinuku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kke","Description":["Kakabe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkf","Description":["Kalaktang Monpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkg","Description":["Mabaka Valley Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkh","Description":["Khün"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kki","Description":["Kagulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkj","Description":["Kako"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkk","Description":["Kokota"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkl","Description":["Kosarek Yale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkm","Description":["Kiong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkn","Description":["Kon Keu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kko","Description":["Karko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkp","Description":["Gugubera","Koko-Bera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkq","Description":["Kaiku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkr","Description":["Kir-Balar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kks","Description":["Giiwo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkt","Description":["Koi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kku","Description":["Tumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkv","Description":["Kangean"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkw","Description":["Teke-Kukuya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkx","Description":["Kohin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kky","Description":["Guugu Yimidhirr","Guguyimidjir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kkz","Description":["Kaska"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kla","Description":["Klamath-Modoc"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klb","Description":["Kiliwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klc","Description":["Kolbila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kld","Description":["Gamilaraay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kle","Description":["Kulung (Nepal)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klf","Description":["Kendeje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klg","Description":["Tagakaulo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klh","Description":["Weliki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kli","Description":["Kalumpang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klj","Description":["Turkic Khalaj"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klk","Description":["Kono (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kll","Description":["Kagan Kalagan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klm","Description":["Migum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kln","Description":["Kalenjin"],"Added":"2009-07-29","Scope":"macrolanguage"},{"Type":"language","Subtag":"klo","Description":["Kapya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klp","Description":["Kamasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klq","Description":["Rumu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klr","Description":["Khaling"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kls","Description":["Kalasha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klt","Description":["Nukna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klu","Description":["Klao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klv","Description":["Maskelynes"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klw","Description":["Tado","Lindu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klx","Description":["Koluwawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kly","Description":["Kalao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"klz","Description":["Kabola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kma","Description":["Konni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmb","Description":["Kimbundu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kmc","Description":["Southern Dong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmd","Description":["Majukayang Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kme","Description":["Bakole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmf","Description":["Kare (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmg","Description":["Kâte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmh","Description":["Kalam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmi","Description":["Kami (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmj","Description":["Kumarbhag Paharia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmk","Description":["Limos Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kml","Description":["Tanudan Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmm","Description":["Kom (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmn","Description":["Awtuw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmo","Description":["Kwoma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmp","Description":["Gimme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmq","Description":["Kwama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmr","Description":["Northern Kurdish"],"Added":"2009-07-29","Macrolanguage":"ku"},{"Type":"language","Subtag":"kms","Description":["Kamasau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmt","Description":["Kemtuik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmu","Description":["Kanite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmv","Description":["Karipúna Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmw","Description":["Komo (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmx","Description":["Waboda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmy","Description":["Koma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kmz","Description":["Khorasani Turkish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kna","Description":["Dera (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knb","Description":["Lubuagan Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knc","Description":["Central Kanuri"],"Added":"2009-07-29","Macrolanguage":"kr"},{"Type":"language","Subtag":"knd","Description":["Konda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kne","Description":["Kankanaey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knf","Description":["Mankanya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kng","Description":["Koongo"],"Added":"2009-07-29","Macrolanguage":"kg"},{"Type":"language","Subtag":"kni","Description":["Kanufi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knj","Description":["Western Kanjobal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knk","Description":["Kuranko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knl","Description":["Keninjal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knm","Description":["Kanamarí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knn","Description":["Konkani (individual language)"],"Added":"2009-07-29","Macrolanguage":"kok"},{"Type":"language","Subtag":"kno","Description":["Kono (Sierra Leone)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knp","Description":["Kwanja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knq","Description":["Kintaq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knr","Description":["Kaningra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kns","Description":["Kensiu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knt","Description":["Panoan Katukína"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knu","Description":["Kono (Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knv","Description":["Tabo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knw","Description":["Kung-Ekoka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knx","Description":["Kendayan","Salako"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kny","Description":["Kanyok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"knz","Description":["Kalamsé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koa","Description":["Konomala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koc","Description":["Kpati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kod","Description":["Kodi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koe","Description":["Kacipo-Balesi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kof","Description":["Kubi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kog","Description":["Cogui","Kogi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koh","Description":["Koyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koi","Description":["Komi-Permyak"],"Added":"2009-07-29","Macrolanguage":"kv"},{"Type":"language","Subtag":"koj","Description":["Sara Dunjo"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"kwv"},{"Type":"language","Subtag":"kok","Description":["Konkani (macrolanguage)"],"Added":"2005-10-16","Suppress-Script":"Deva","Scope":"macrolanguage"},{"Type":"language","Subtag":"kol","Description":["Kol (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koo","Description":["Konzo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kop","Description":["Waube"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koq","Description":["Kota (Gabon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kos","Description":["Kosraean"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kot","Description":["Lagwan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kou","Description":["Koke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kov","Description":["Kudu-Camo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kow","Description":["Kugama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kox","Description":["Coxima"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"koy","Description":["Koyukon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"koz","Description":["Korak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpa","Description":["Kutto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpb","Description":["Mullu Kurumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpc","Description":["Curripaco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpd","Description":["Koba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpe","Description":["Kpelle"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"kpf","Description":["Komba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpg","Description":["Kapingamarangi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kph","Description":["Kplang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpi","Description":["Kofei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpj","Description":["Karajá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpk","Description":["Kpan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpl","Description":["Kpala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpm","Description":["Koho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpn","Description":["Kepkiriwát"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpo","Description":["Ikposo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpp","Description":["Paku Karen"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see jkm, jkp"]},{"Type":"language","Subtag":"kpq","Description":["Korupun-Sela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpr","Description":["Korafe-Yegha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kps","Description":["Tehit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpt","Description":["Karata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpu","Description":["Kafoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpv","Description":["Komi-Zyrian"],"Added":"2009-07-29","Macrolanguage":"kv"},{"Type":"language","Subtag":"kpw","Description":["Kobon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpx","Description":["Mountain Koiali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpy","Description":["Koryak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kpz","Description":["Kupsabiny"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqa","Description":["Mum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqb","Description":["Kovai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqc","Description":["Doromu-Koki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqd","Description":["Koy Sanjaq Surat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqe","Description":["Kalagan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqf","Description":["Kakabai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqg","Description":["Khe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqh","Description":["Kisankasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqi","Description":["Koitabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqj","Description":["Koromira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqk","Description":["Kotafon Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kql","Description":["Kyenele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqm","Description":["Khisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqn","Description":["Kaonde"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqo","Description":["Eastern Krahn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqp","Description":["Kimré"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqq","Description":["Krenak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqr","Description":["Kimaragang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqs","Description":["Northern Kissi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqt","Description":["Klias River Kadazan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqu","Description":["Seroa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqv","Description":["Okolod"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqw","Description":["Kandas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqx","Description":["Mser"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqy","Description":["Koorete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kqz","Description":["Korana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kra","Description":["Kumhali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krb","Description":["Karkin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krc","Description":["Karachay-Balkar"],"Added":"2005-10-16"},{"Type":"language","Subtag":"krd","Description":["Kairui-Midiki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kre","Description":["Panará"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krf","Description":["Koro (Vanuatu)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krh","Description":["Kurama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kri","Description":["Krio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krj","Description":["Kinaray-A"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krk","Description":["Kerek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krl","Description":["Karelian"],"Added":"2006-03-08"},{"Type":"language","Subtag":"krm","Description":["Krim"],"Added":"2009-07-29","Deprecated":"2017-02-23","Preferred-Value":"bmf"},{"Type":"language","Subtag":"krn","Description":["Sapo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kro","Description":["Kru languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"krp","Description":["Korop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krr","Description":["Krung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krs","Description":["Gbaya (Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krt","Description":["Tumari Kanuri"],"Added":"2009-07-29","Macrolanguage":"kr"},{"Type":"language","Subtag":"kru","Description":["Kurukh"],"Added":"2005-10-16"},{"Type":"language","Subtag":"krv","Description":["Kavet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krw","Description":["Western Krahn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krx","Description":["Karon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kry","Description":["Kryts"],"Added":"2009-07-29"},{"Type":"language","Subtag":"krz","Description":["Sota Kanum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksa","Description":["Shuwa-Zamani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksb","Description":["Shambala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksc","Description":["Southern Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksd","Description":["Kuanua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kse","Description":["Kuni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksf","Description":["Bafia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksg","Description":["Kusaghe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksh","Description":["Kölsch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksi","Description":["Krisa","I\'saka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksj","Description":["Uare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksk","Description":["Kansa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksl","Description":["Kumalu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksm","Description":["Kumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksn","Description":["Kasiguranin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kso","Description":["Kofa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksp","Description":["Kaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksq","Description":["Kwaami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksr","Description":["Borong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kss","Description":["Southern Kisi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kst","Description":["Winyé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksu","Description":["Khamyang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksv","Description":["Kusu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksw","Description":["S\'gaw Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksx","Description":["Kedang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksy","Description":["Kharia Thar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ksz","Description":["Kodaku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kta","Description":["Katua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktb","Description":["Kambaata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktc","Description":["Kholok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktd","Description":["Kokata","Kukatha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kte","Description":["Nubri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktf","Description":["Kwami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktg","Description":["Kalkutung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kth","Description":["Karanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kti","Description":["North Muyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktj","Description":["Plapo Krumen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktk","Description":["Kaniet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktl","Description":["Koroshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktm","Description":["Kurti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktn","Description":["Karitiâna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kto","Description":["Kuot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktp","Description":["Kaduo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktq","Description":["Katabaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktr","Description":["Kota Marudu Tinagas"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"dtp"},{"Type":"language","Subtag":"kts","Description":["South Muyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktt","Description":["Ketum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktu","Description":["Kituba (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktv","Description":["Eastern Katu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktw","Description":["Kato"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktx","Description":["Kaxararí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kty","Description":["Kango (Bas-Uélé District)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ktz","Description":["Juǀʼhoan","Juǀʼhoansi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kub","Description":["Kutep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuc","Description":["Kwinsu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kud","Description":["\'Auhelawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kue","Description":["Kuman (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuf","Description":["Western Katu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kug","Description":["Kupa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuh","Description":["Kushi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kui","Description":["Kuikúro-Kalapálo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuj","Description":["Kuria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuk","Description":["Kepo\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kul","Description":["Kulere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kum","Description":["Kumyk"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kun","Description":["Kunama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuo","Description":["Kumukio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kup","Description":["Kunimaipa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuq","Description":["Karipuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kus","Description":["Kusaal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kut","Description":["Kutenai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"kuu","Description":["Upper Kuskokwim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuv","Description":["Kur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuw","Description":["Kpagua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kux","Description":["Kukatja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuy","Description":["Kuuku-Ya\'u"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kuz","Description":["Kunza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kva","Description":["Bagvalal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvb","Description":["Kubu"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"kvc","Description":["Kove"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvd","Description":["Kui (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kve","Description":["Kalabakan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvf","Description":["Kabalai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvg","Description":["Kuni-Boazi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvh","Description":["Komodo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvi","Description":["Kwang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvj","Description":["Psikye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvk","Description":["Korean Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvl","Description":["Kayaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvm","Description":["Kendem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvn","Description":["Border Kuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvo","Description":["Dobel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvp","Description":["Kompane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvq","Description":["Geba Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvr","Description":["Kerinci"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"kvs","Description":["Kunggara"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"gdj"},{"Type":"language","Subtag":"kvt","Description":["Lahta Karen","Lahta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvu","Description":["Yinbaw Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvv","Description":["Kola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvw","Description":["Wersing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvx","Description":["Parkari Koli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvy","Description":["Yintale Karen","Yintale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kvz","Description":["Tsakwambo","Tsaukambo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwa","Description":["Dâw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwb","Description":["Kwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwc","Description":["Likwala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwd","Description":["Kwaio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwe","Description":["Kwerba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwf","Description":["Kwara\'ae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwg","Description":["Sara Kaba Deme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwh","Description":["Kowiai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwi","Description":["Awa-Cuaiquer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwj","Description":["Kwanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwk","Description":["Kwakiutl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwl","Description":["Kofyar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwm","Description":["Kwambi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwn","Description":["Kwangali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwo","Description":["Kwomtari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwp","Description":["Kodia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwq","Description":["Kwak"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"yam"},{"Type":"language","Subtag":"kwr","Description":["Kwer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kws","Description":["Kwese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwt","Description":["Kwesten"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwu","Description":["Kwakum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwv","Description":["Sara Kaba Náà"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kww","Description":["Kwinti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwx","Description":["Khirwar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kwy","Description":["San Salvador Kongo"],"Added":"2009-07-29","Macrolanguage":"kg"},{"Type":"language","Subtag":"kwz","Description":["Kwadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxa","Description":["Kairiru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxb","Description":["Krobu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxc","Description":["Konso","Khonso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxd","Description":["Brunei"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"kxe","Description":["Kakihum"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"tvd"},{"Type":"language","Subtag":"kxf","Description":["Manumanaw Karen","Manumanaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxh","Description":["Karo (Ethiopia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxi","Description":["Keningau Murut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxj","Description":["Kulfa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxk","Description":["Zayein Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxl","Description":["Nepali Kurux"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxm","Description":["Northern Khmer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxn","Description":["Kanowit-Tanjong Melanau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxo","Description":["Kanoé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxp","Description":["Wadiyara Koli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxq","Description":["Smärky Kanum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxr","Description":["Koro (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxs","Description":["Kangjia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxt","Description":["Koiwat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxu","Description":["Kui (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxv","Description":["Kuvi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxw","Description":["Konai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxx","Description":["Likuba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxy","Description":["Kayong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kxz","Description":["Kerewo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kya","Description":["Kwaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyb","Description":["Butbut Kalinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyc","Description":["Kyaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyd","Description":["Karey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kye","Description":["Krache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyf","Description":["Kouya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyg","Description":["Keyagana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyh","Description":["Karok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyi","Description":["Kiput"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyj","Description":["Karao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyk","Description":["Kamayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyl","Description":["Kalapuya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kym","Description":["Kpatili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyn","Description":["Northern Binukidnon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyo","Description":["Kelon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyp","Description":["Kang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyq","Description":["Kenga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyr","Description":["Kuruáya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kys","Description":["Baram Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyt","Description":["Kayagar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyu","Description":["Western Kayah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyv","Description":["Kayort"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyw","Description":["Kudmali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyx","Description":["Rapoisi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyy","Description":["Kambaira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kyz","Description":["Kayabí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kza","Description":["Western Karaboro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzb","Description":["Kaibobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzc","Description":["Bondoukou Kulango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzd","Description":["Kadai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kze","Description":["Kosena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzf","Description":["Da\'a Kaili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzg","Description":["Kikai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzh","Description":["Kenuzi-Dongola"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see dgl, xnz"]},{"Type":"language","Subtag":"kzi","Description":["Kelabit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzj","Description":["Coastal Kadazan"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"dtp"},{"Type":"language","Subtag":"kzk","Description":["Kazukuru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzl","Description":["Kayeli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzm","Description":["Kais"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzn","Description":["Kokola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzo","Description":["Kaningi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzp","Description":["Kaidipang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzq","Description":["Kaike"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzr","Description":["Karang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzs","Description":["Sugut Dusun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzt","Description":["Tambunan Dusun"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"dtp"},{"Type":"language","Subtag":"kzu","Description":["Kayupulau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzv","Description":["Komyandaret"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzw","Description":["Karirí-Xocó"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzx","Description":["Kamarian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzy","Description":["Kango (Tshopo District)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"kzz","Description":["Kalabra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"laa","Description":["Southern Subanen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lab","Description":["Linear A"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lac","Description":["Lacandon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lad","Description":["Ladino"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lae","Description":["Pattani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"laf","Description":["Lafofa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lag","Description":["Langi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lah","Description":["Lahnda"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"lai","Description":["Lambya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"laj","Description":["Lango (Uganda)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lak","Description":["Laka (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lal","Description":["Lalia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lam","Description":["Lamba"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lan","Description":["Laru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lap","Description":["Laka (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"laq","Description":["Qabiao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lar","Description":["Larteh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"las","Description":["Lama (Togo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lau","Description":["Laba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"law","Description":["Lauje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lax","Description":["Tiwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lay","Description":["Lama Bai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"laz","Description":["Aribwatsa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lba","Description":["Lui"],"Added":"2009-07-29","Deprecated":"2019-04-16"},{"Type":"language","Subtag":"lbb","Description":["Label"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbc","Description":["Lakkia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbe","Description":["Lak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbf","Description":["Tinani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbg","Description":["Laopang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbi","Description":["La\'bi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbj","Description":["Ladakhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbk","Description":["Central Bontok"],"Added":"2010-03-11","Macrolanguage":"bnc"},{"Type":"language","Subtag":"lbl","Description":["Libon Bikol"],"Added":"2010-03-11","Macrolanguage":"bik"},{"Type":"language","Subtag":"lbm","Description":["Lodhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbn","Description":["Rmeet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbo","Description":["Laven"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbq","Description":["Wampar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbr","Description":["Lohorung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbs","Description":["Libyan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbt","Description":["Lachi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbu","Description":["Labu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbv","Description":["Lavatbura-Lamusong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbw","Description":["Tolaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbx","Description":["Lawangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lby","Description":["Lamalama","Lamu-Lamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lbz","Description":["Lardil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcc","Description":["Legenyem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcd","Description":["Lola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lce","Description":["Loncong","Sekak"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"lcf","Description":["Lubu"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"lch","Description":["Luchazi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcl","Description":["Lisela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcm","Description":["Tungag"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcp","Description":["Western Lawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcq","Description":["Luhu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lcs","Description":["Lisabata-Nuniali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lda","Description":["Kla-Dan"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ldb","Description":["Dũya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldd","Description":["Luri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldg","Description":["Lenyima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldh","Description":["Lamja-Dengsa-Tola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldi","Description":["Laari"],"Added":"2009-07-29","Macrolanguage":"kg"},{"Type":"language","Subtag":"ldj","Description":["Lemoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldk","Description":["Leelau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldl","Description":["Kaan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldm","Description":["Landoma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldn","Description":["Láadan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldo","Description":["Loo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldp","Description":["Tso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ldq","Description":["Lufu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lea","Description":["Lega-Shabunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"leb","Description":["Lala-Bisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lec","Description":["Leco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"led","Description":["Lendu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lee","Description":["Lyélé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lef","Description":["Lelemi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"leg","Description":["Lengua"],"Added":"2009-07-29","Deprecated":"2014-02-28","Comments":["see enl, enx"]},{"Type":"language","Subtag":"leh","Description":["Lenje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lei","Description":["Lemio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lej","Description":["Lengola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lek","Description":["Leipon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lel","Description":["Lele (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lem","Description":["Nomaande"],"Added":"2009-07-29"},{"Type":"language","Subtag":"len","Description":["Lenca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"leo","Description":["Leti (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lep","Description":["Lepcha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"leq","Description":["Lembena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ler","Description":["Lenkau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"les","Description":["Lese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"let","Description":["Lesing-Gelimi","Amio-Gelimi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"leu","Description":["Kara (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lev","Description":["Lamma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lew","Description":["Ledo Kaili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lex","Description":["Luang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ley","Description":["Lemolang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lez","Description":["Lezghian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lfa","Description":["Lefa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lfn","Description":["Lingua Franca Nova"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lga","Description":["Lungga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgb","Description":["Laghu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgg","Description":["Lugbara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgh","Description":["Laghuu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgi","Description":["Lengilu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgk","Description":["Lingarak","Neverver"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgl","Description":["Wala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgm","Description":["Lega-Mwenga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgn","Description":["T\'apo","Opuuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgq","Description":["Logba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgr","Description":["Lengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgt","Description":["Pahi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgu","Description":["Longgu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lgz","Description":["Ligenza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lha","Description":["Laha (Viet Nam)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhh","Description":["Laha (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhi","Description":["Lahu Shi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhl","Description":["Lahul Lohar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhm","Description":["Lhomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhn","Description":["Lahanan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhp","Description":["Lhokpu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhs","Description":["Mlahsö"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lht","Description":["Lo-Toga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lhu","Description":["Lahu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lia","Description":["West-Central Limba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lib","Description":["Likum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lic","Description":["Hlai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lid","Description":["Nyindrou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lie","Description":["Likila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lif","Description":["Limbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lig","Description":["Ligbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lih","Description":["Lihir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lii","Description":["Lingkhim"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"raq"},{"Type":"language","Subtag":"lij","Description":["Ligurian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lik","Description":["Lika"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lil","Description":["Lillooet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lio","Description":["Liki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lip","Description":["Sekpele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"liq","Description":["Libido"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lir","Description":["Liberian English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lis","Description":["Lisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"liu","Description":["Logorik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"liv","Description":["Liv"],"Added":"2009-07-29"},{"Type":"language","Subtag":"liw","Description":["Col"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"lix","Description":["Liabuku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"liy","Description":["Banda-Bambari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"liz","Description":["Libinza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lja","Description":["Golpa"],"Added":"2013-09-10"},{"Type":"language","Subtag":"lje","Description":["Rampi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lji","Description":["Laiyolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ljl","Description":["Li\'o"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ljp","Description":["Lampung Api"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ljw","Description":["Yirandali"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ljx","Description":["Yuru"],"Added":"2013-09-10"},{"Type":"language","Subtag":"lka","Description":["Lakalei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lkb","Description":["Kabras","Lukabaras"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lkc","Description":["Kucong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lkd","Description":["Lakondê"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lke","Description":["Kenyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lkh","Description":["Lakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lki","Description":["Laki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lkj","Description":["Remun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lkl","Description":["Laeko-Libuat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lkm","Description":["Kalaamaya"],"Added":"2013-09-10"},{"Type":"language","Subtag":"lkn","Description":["Lakon","Vure"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lko","Description":["Khayo","Olukhayo"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lkr","Description":["Päri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lks","Description":["Kisa","Olushisa"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lkt","Description":["Lakota"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lku","Description":["Kungkari"],"Added":"2013-09-10"},{"Type":"language","Subtag":"lky","Description":["Lokoya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lla","Description":["Lala-Roba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llb","Description":["Lolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llc","Description":["Lele (Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lld","Description":["Ladin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lle","Description":["Lele (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llf","Description":["Hermit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llg","Description":["Lole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llh","Description":["Lamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lli","Description":["Teke-Laali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llj","Description":["Ladji Ladji"],"Added":"2012-08-12"},{"Type":"language","Subtag":"llk","Description":["Lelak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lll","Description":["Lilau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llm","Description":["Lasalimu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lln","Description":["Lele (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llo","Description":["Khlor"],"Added":"2009-07-29","Deprecated":"2019-04-16","Preferred-Value":"ngt"},{"Type":"language","Subtag":"llp","Description":["North Efate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llq","Description":["Lolak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lls","Description":["Lithuanian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llu","Description":["Lau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"llx","Description":["Lauan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lma","Description":["East Limba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmb","Description":["Merei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmc","Description":["Limilngan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmd","Description":["Lumun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lme","Description":["Pévé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmf","Description":["South Lembata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmg","Description":["Lamogai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmh","Description":["Lambichhong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmi","Description":["Lombi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmj","Description":["West Lembata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmk","Description":["Lamkang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lml","Description":["Hano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmm","Description":["Lamam"],"Added":"2009-07-29","Deprecated":"2014-02-28","Preferred-Value":"rmx"},{"Type":"language","Subtag":"lmn","Description":["Lambadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmo","Description":["Lombard"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmp","Description":["Limbum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmq","Description":["Lamatuka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmr","Description":["Lamalera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmu","Description":["Lamenu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmv","Description":["Lomaiviti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmw","Description":["Lake Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmx","Description":["Laimbue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmy","Description":["Lamboya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lmz","Description":["Lumbee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lna","Description":["Langbashe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnb","Description":["Mbalanhu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnd","Description":["Lundayeh","Lun Bawang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lng","Description":["Langobardic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnh","Description":["Lanoh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lni","Description":["Daantanai\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnj","Description":["Leningitij"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnl","Description":["South Central Banda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnm","Description":["Langam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnn","Description":["Lorediakarkar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lno","Description":["Lango (South Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lns","Description":["Lamnso\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnu","Description":["Longuda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lnw","Description":["Lanima"],"Added":"2013-09-10"},{"Type":"language","Subtag":"lnz","Description":["Lonzo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loa","Description":["Loloda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lob","Description":["Lobi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loc","Description":["Inonhan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loe","Description":["Saluan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lof","Description":["Logol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"log","Description":["Logo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loh","Description":["Narim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loi","Description":["Loma (Côte d\'Ivoire)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loj","Description":["Lou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lok","Description":["Loko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lol","Description":["Mongo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lom","Description":["Loma (Liberia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lon","Description":["Malawi Lomwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loo","Description":["Lombo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lop","Description":["Lopa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loq","Description":["Lobala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lor","Description":["Téén"],"Added":"2009-07-29"},{"Type":"language","Subtag":"los","Description":["Loniu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lot","Description":["Otuho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lou","Description":["Louisiana Creole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lov","Description":["Lopi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"low","Description":["Tampias Lobu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lox","Description":["Loun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loy","Description":["Loke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"loz","Description":["Lozi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lpa","Description":["Lelepa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lpe","Description":["Lepki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lpn","Description":["Long Phuri Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lpo","Description":["Lipo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lpx","Description":["Lopit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lra","Description":["Rara Bakati\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrc","Description":["Northern Luri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lre","Description":["Laurentian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrg","Description":["Laragia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lri","Description":["Marachi","Olumarachi"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lrk","Description":["Loarki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrl","Description":["Lari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrm","Description":["Marama","Olumarama"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lrn","Description":["Lorang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lro","Description":["Laro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrr","Description":["Southern Yamphu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrt","Description":["Larantuka Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrv","Description":["Larevat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lrz","Description":["Lemerig"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsa","Description":["Lasgerdi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsd","Description":["Lishana Deni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lse","Description":["Lusengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsg","Description":["Lyons Sign Language"],"Added":"2009-07-29","Deprecated":"2018-03-08"},{"Type":"language","Subtag":"lsh","Description":["Lish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsi","Description":["Lashi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsl","Description":["Latvian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsm","Description":["Saamia","Olusamia"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lsn","Description":["Tibetan Sign Language"],"Added":"2019-04-16"},{"Type":"language","Subtag":"lso","Description":["Laos Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsp","Description":["Panamanian Sign Language","Lengua de Señas Panameñas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsr","Description":["Aruop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lss","Description":["Lasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lst","Description":["Trinidad and Tobago Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lsv","Description":["Sivia Sign Language"],"Added":"2019-04-16"},{"Type":"language","Subtag":"lsy","Description":["Mauritian Sign Language"],"Added":"2010-03-11"},{"Type":"language","Subtag":"ltc","Description":["Late Middle Chinese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ltg","Description":["Latgalian"],"Added":"2010-03-11","Macrolanguage":"lv"},{"Type":"language","Subtag":"lth","Description":["Thur"],"Added":"2017-02-23"},{"Type":"language","Subtag":"lti","Description":["Leti (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ltn","Description":["Latundê"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lto","Description":["Tsotso","Olutsotso"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lts","Description":["Tachoni","Lutachoni"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"ltu","Description":["Latu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lua","Description":["Luba-Lulua"],"Added":"2005-10-16"},{"Type":"language","Subtag":"luc","Description":["Aringa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lud","Description":["Ludian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lue","Description":["Luvale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luf","Description":["Laua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lui","Description":["Luiseno"],"Added":"2005-10-16"},{"Type":"language","Subtag":"luj","Description":["Luna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luk","Description":["Lunanakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lul","Description":["Olu\'bo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lum","Description":["Luimbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lun","Description":["Lunda"],"Added":"2005-10-16"},{"Type":"language","Subtag":"luo","Description":["Luo (Kenya and Tanzania)","Dholuo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lup","Description":["Lumbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luq","Description":["Lucumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lur","Description":["Laura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lus","Description":["Lushai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"lut","Description":["Lushootseed"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luu","Description":["Lumba-Yakkha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luv","Description":["Luwati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luw","Description":["Luo (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"luy","Description":["Luyia","Oluluyia"],"Added":"2009-07-29","Scope":"macrolanguage"},{"Type":"language","Subtag":"luz","Description":["Southern Luri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lva","Description":["Maku\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lvi","Description":["Lavi"],"Added":"2019-04-16"},{"Type":"language","Subtag":"lvk","Description":["Lavukaleve"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lvs","Description":["Standard Latvian"],"Added":"2010-03-11","Macrolanguage":"lv"},{"Type":"language","Subtag":"lvu","Description":["Levuka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwa","Description":["Lwalu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwe","Description":["Lewo Eleng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwg","Description":["Wanga","Oluwanga"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"lwh","Description":["White Lachi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwl","Description":["Eastern Lawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwm","Description":["Laomian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwo","Description":["Luwo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lws","Description":["Malawian Sign Language"],"Added":"2018-03-08"},{"Type":"language","Subtag":"lwt","Description":["Lewotobi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lwu","Description":["Lawu"],"Added":"2013-09-10"},{"Type":"language","Subtag":"lww","Description":["Lewo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lya","Description":["Layakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lyg","Description":["Lyngngam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lyn","Description":["Luyana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lzh","Description":["Literary Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"lzl","Description":["Litzlitz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lzn","Description":["Leinong Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"lzz","Description":["Laz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"maa","Description":["San Jerónimo Tecóatl Mazatec"],"Added":"2009-07-29","Comments":["see also pbm"]},{"Type":"language","Subtag":"mab","Description":["Yutanduchi Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mad","Description":["Madurese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mae","Description":["Bo-Rukul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"maf","Description":["Mafa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mag","Description":["Magahi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mai","Description":["Maithili"],"Added":"2005-10-16","Suppress-Script":"Deva"},{"Type":"language","Subtag":"maj","Description":["Jalapa De Díaz Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mak","Description":["Makasar"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mam","Description":["Mam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"man","Description":["Mandingo","Manding"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"map","Description":["Austronesian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"maq","Description":["Chiquihuitlán Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mas","Description":["Masai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mat","Description":["San Francisco Matlatzinca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mau","Description":["Huautla Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mav","Description":["Sateré-Mawé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"maw","Description":["Mampruli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"max","Description":["North Moluccan Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"maz","Description":["Central Mazahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mba","Description":["Higaonon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbb","Description":["Western Bukidnon Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbc","Description":["Macushi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbd","Description":["Dibabawon Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbe","Description":["Molale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbf","Description":["Baba Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbh","Description":["Mangseng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbi","Description":["Ilianen Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbj","Description":["Nadëb"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbk","Description":["Malol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbl","Description":["Maxakalí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbm","Description":["Ombamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbn","Description":["Macaguán"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbo","Description":["Mbo (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbp","Description":["Malayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbq","Description":["Maisin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbr","Description":["Nukak Makú"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbs","Description":["Sarangani Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbt","Description":["Matigsalug Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbu","Description":["Mbula-Bwazza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbv","Description":["Mbulungish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbw","Description":["Maring"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbx","Description":["Mari (East Sepik Province)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mby","Description":["Memoni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mbz","Description":["Amoltepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mca","Description":["Maca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcb","Description":["Machiguenga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcc","Description":["Bitur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcd","Description":["Sharanahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mce","Description":["Itundujia Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcf","Description":["Matsés"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcg","Description":["Mapoyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mch","Description":["Maquiritari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mci","Description":["Mese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcj","Description":["Mvanip"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mck","Description":["Mbunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcl","Description":["Macaguaje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcm","Description":["Malaccan Creole Portuguese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcn","Description":["Masana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mco","Description":["Coatlán Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcp","Description":["Makaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcq","Description":["Ese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcr","Description":["Menya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcs","Description":["Mambai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mct","Description":["Mengisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcu","Description":["Cameroon Mambila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcv","Description":["Minanibai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcw","Description":["Mawa (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcx","Description":["Mpiemo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcy","Description":["South Watut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mcz","Description":["Mawan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mda","Description":["Mada (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdb","Description":["Morigi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdc","Description":["Male (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdd","Description":["Mbum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mde","Description":["Maba (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdf","Description":["Moksha"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mdg","Description":["Massalat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdh","Description":["Maguindanaon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdi","Description":["Mamvu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdj","Description":["Mangbetu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdk","Description":["Mangbutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdl","Description":["Maltese Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdm","Description":["Mayogo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdn","Description":["Mbati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdp","Description":["Mbala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdq","Description":["Mbole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdr","Description":["Mandar"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mds","Description":["Maria (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdt","Description":["Mbere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdu","Description":["Mboko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdv","Description":["Santa Lucía Monteverde Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdw","Description":["Mbosi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdx","Description":["Dizin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdy","Description":["Male (Ethiopia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mdz","Description":["Suruí Do Pará"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mea","Description":["Menka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"meb","Description":["Ikobi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mec","Description":["Marra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"med","Description":["Melpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mee","Description":["Mengen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mef","Description":["Megam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"meg","Description":["Mea"],"Added":"2009-07-29","Deprecated":"2013-09-10","Preferred-Value":"cir"},{"Type":"language","Subtag":"meh","Description":["Southwestern Tlaxiaco Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mei","Description":["Midob"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mej","Description":["Meyah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mek","Description":["Mekeo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mel","Description":["Central Melanau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mem","Description":["Mangala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"men","Description":["Mende (Sierra Leone)"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"meo","Description":["Kedah Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"mep","Description":["Miriwoong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"meq","Description":["Merey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mer","Description":["Meru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mes","Description":["Masmaje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"met","Description":["Mato"],"Added":"2009-07-29"},{"Type":"language","Subtag":"meu","Description":["Motu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mev","Description":["Mano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mew","Description":["Maaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mey","Description":["Hassaniyya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mez","Description":["Menominee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfa","Description":["Pattani Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"mfb","Description":["Bangka"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"mfc","Description":["Mba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfd","Description":["Mendankwe-Nkwen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfe","Description":["Morisyen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mff","Description":["Naki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfg","Description":["Mogofin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfh","Description":["Matal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfi","Description":["Wandala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfj","Description":["Mefele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfk","Description":["North Mofu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfl","Description":["Putai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfm","Description":["Marghi South"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfn","Description":["Cross River Mbembe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfo","Description":["Mbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfp","Description":["Makassar Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfq","Description":["Moba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfr","Description":["Marrithiyel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfs","Description":["Mexican Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mft","Description":["Mokerang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfu","Description":["Mbwela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfv","Description":["Mandjak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfw","Description":["Mulaha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfx","Description":["Melo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfy","Description":["Mayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mfz","Description":["Mabaan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mga","Description":["Middle Irish (900-1200)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mgb","Description":["Mararit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgc","Description":["Morokodo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgd","Description":["Moru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mge","Description":["Mango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgf","Description":["Maklew"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgg","Description":["Mpumpong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgh","Description":["Makhuwa-Meetto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgi","Description":["Lijili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgj","Description":["Abureni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgk","Description":["Mawes"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgl","Description":["Maleu-Kilenge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgm","Description":["Mambae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgn","Description":["Mbangi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgo","Description":["Meta\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgp","Description":["Eastern Magar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgq","Description":["Malila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgr","Description":["Mambwe-Lungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgs","Description":["Manda (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgt","Description":["Mongol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgu","Description":["Mailu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgv","Description":["Matengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgw","Description":["Matumbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgx","Description":["Omati"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see jbk, jmw"]},{"Type":"language","Subtag":"mgy","Description":["Mbunga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mgz","Description":["Mbugwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mha","Description":["Manda (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhb","Description":["Mahongwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhc","Description":["Mocho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhd","Description":["Mbugu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhe","Description":["Besisi","Mah Meri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhf","Description":["Mamaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhg","Description":["Margu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhh","Description":["Maskoy Pidgin"],"Added":"2009-07-29","Deprecated":"2014-02-28"},{"Type":"language","Subtag":"mhi","Description":["Ma\'di"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhj","Description":["Mogholi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhk","Description":["Mungaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhl","Description":["Mauwake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhm","Description":["Makhuwa-Moniga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhn","Description":["Mócheno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mho","Description":["Mashi (Zambia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhp","Description":["Balinese Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhq","Description":["Mandan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhr","Description":["Eastern Mari"],"Added":"2009-07-29","Macrolanguage":"chm"},{"Type":"language","Subtag":"mhs","Description":["Buru (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mht","Description":["Mandahuaca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhu","Description":["Digaro-Mishmi","Darang Deng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhw","Description":["Mbukushu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhx","Description":["Maru","Lhaovo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhy","Description":["Ma\'anyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mhz","Description":["Mor (Mor Islands)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mia","Description":["Miami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mib","Description":["Atatláhuca Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mic","Description":["Mi\'kmaq","Micmac"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mid","Description":["Mandaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mie","Description":["Ocotepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mif","Description":["Mofu-Gudur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mig","Description":["San Miguel El Grande Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mih","Description":["Chayuco Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mii","Description":["Chigmecatitlán Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mij","Description":["Abar","Mungbam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mik","Description":["Mikasuki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mil","Description":["Peñoles Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mim","Description":["Alacatlatzala Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"min","Description":["Minangkabau"],"Added":"2005-10-16","Macrolanguage":"ms"},{"Type":"language","Subtag":"mio","Description":["Pinotepa Nacional Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mip","Description":["Apasco-Apoala Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"miq","Description":["Mískito"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mir","Description":["Isthmus Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mis","Description":["Uncoded languages"],"Added":"2005-10-16","Scope":"special"},{"Type":"language","Subtag":"mit","Description":["Southern Puebla Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"miu","Description":["Cacaloxtepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"miw","Description":["Akoye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mix","Description":["Mixtepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"miy","Description":["Ayutla Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"miz","Description":["Coatzospan Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mja","Description":["Mahei"],"Added":"2009-07-29","Deprecated":"2011-08-16"},{"Type":"language","Subtag":"mjb","Description":["Makalero"],"Added":"2016-05-30"},{"Type":"language","Subtag":"mjc","Description":["San Juan Colorado Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjd","Description":["Northwest Maidu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mje","Description":["Muskum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjg","Description":["Tu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjh","Description":["Mwera (Nyasa)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mji","Description":["Kim Mun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjj","Description":["Mawak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjk","Description":["Matukar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjl","Description":["Mandeali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjm","Description":["Medebur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjn","Description":["Ma (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjo","Description":["Malankuravan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjp","Description":["Malapandaram"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjq","Description":["Malaryan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjr","Description":["Malavedan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjs","Description":["Miship"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjt","Description":["Sauria Paharia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mju","Description":["Manna-Dora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjv","Description":["Mannan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjw","Description":["Karbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjx","Description":["Mahali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjy","Description":["Mahican"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mjz","Description":["Majhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mka","Description":["Mbre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkb","Description":["Mal Paharia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkc","Description":["Siliput"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mke","Description":["Mawchi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkf","Description":["Miya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkg","Description":["Mak (China)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkh","Description":["Mon-Khmer languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"mki","Description":["Dhatki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkj","Description":["Mokilese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkk","Description":["Byep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkl","Description":["Mokole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkm","Description":["Moklen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkn","Description":["Kupang Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mko","Description":["Mingang Doso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkp","Description":["Moikodi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkq","Description":["Bay Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkr","Description":["Malas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mks","Description":["Silacayoapan Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkt","Description":["Vamale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mku","Description":["Konyanka Maninka"],"Added":"2009-07-29","Macrolanguage":"man"},{"Type":"language","Subtag":"mkv","Description":["Mafea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkw","Description":["Kituba (Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkx","Description":["Kinamiging Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mky","Description":["East Makian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mkz","Description":["Makasae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mla","Description":["Malo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlb","Description":["Mbule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlc","Description":["Cao Lan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mld","Description":["Malakhel"],"Added":"2009-07-29","Deprecated":"2013-09-10"},{"Type":"language","Subtag":"mle","Description":["Manambu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlf","Description":["Mal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlh","Description":["Mape"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mli","Description":["Malimpung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlj","Description":["Miltu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlk","Description":["Ilwana","Kiwilwana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mll","Description":["Malua Bay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlm","Description":["Mulam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mln","Description":["Malango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlo","Description":["Mlomp"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlp","Description":["Bargam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlq","Description":["Western Maninkakan"],"Added":"2009-07-29","Macrolanguage":"man"},{"Type":"language","Subtag":"mlr","Description":["Vame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mls","Description":["Masalit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlu","Description":["To\'abaita"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlv","Description":["Motlav","Mwotlap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlw","Description":["Moloko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlx","Description":["Malfaxal","Naha\'ai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mlz","Description":["Malaynon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mma","Description":["Mama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmb","Description":["Momina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmc","Description":["Michoacán Mazahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmd","Description":["Maonan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mme","Description":["Mae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmf","Description":["Mundat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmg","Description":["North Ambrym"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmh","Description":["Mehináku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmi","Description":["Musar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmj","Description":["Majhwar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmk","Description":["Mukha-Dora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mml","Description":["Man Met"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmm","Description":["Maii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmn","Description":["Mamanwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmo","Description":["Mangga Buang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmp","Description":["Siawi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmq","Description":["Musak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmr","Description":["Western Xiangxi Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"mmt","Description":["Malalamai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmu","Description":["Mmaala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmv","Description":["Miriti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmw","Description":["Emae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmx","Description":["Madak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmy","Description":["Migaama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mmz","Description":["Mabaale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mna","Description":["Mbula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnb","Description":["Muna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnc","Description":["Manchu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mnd","Description":["Mondé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mne","Description":["Naba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnf","Description":["Mundani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mng","Description":["Eastern Mnong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnh","Description":["Mono (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mni","Description":["Manipuri"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mnj","Description":["Munji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnk","Description":["Mandinka"],"Added":"2009-07-29","Macrolanguage":"man"},{"Type":"language","Subtag":"mnl","Description":["Tiale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnm","Description":["Mapena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnn","Description":["Southern Mnong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mno","Description":["Manobo languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"mnp","Description":["Min Bei Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"mnq","Description":["Minriq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnr","Description":["Mono (USA)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mns","Description":["Mansi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnt","Description":["Maykulan"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see wnn, xyj, xyk, xyt"]},{"Type":"language","Subtag":"mnu","Description":["Mer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnv","Description":["Rennell-Bellona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnw","Description":["Mon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnx","Description":["Manikion"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mny","Description":["Manyawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mnz","Description":["Moni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moa","Description":["Mwan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moc","Description":["Mocoví"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mod","Description":["Mobilian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moe","Description":["Montagnais"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mof","Description":["Mohegan-Montauk-Narragansett"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see xnt, xpq"]},{"Type":"language","Subtag":"mog","Description":["Mongondow"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moh","Description":["Mohawk"],"Added":"2005-10-16"},{"Type":"language","Subtag":"moi","Description":["Mboi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moj","Description":["Monzombo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mok","Description":["Morori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mom","Description":["Mangue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moo","Description":["Monom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mop","Description":["Mopán Maya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moq","Description":["Mor (Bomberai Peninsula)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mor","Description":["Moro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mos","Description":["Mossi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mot","Description":["Barí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mou","Description":["Mogum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mov","Description":["Mohave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mow","Description":["Moi (Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mox","Description":["Molima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moy","Description":["Shekkacho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"moz","Description":["Mukulu","Gergiko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpa","Description":["Mpoto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpb","Description":["Malak Malak","Mullukmulluk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpc","Description":["Mangarrayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpd","Description":["Machinere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpe","Description":["Majang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpg","Description":["Marba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mph","Description":["Maung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpi","Description":["Mpade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpj","Description":["Martu Wangka","Wangkajunga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpk","Description":["Mbara (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpl","Description":["Middle Watut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpm","Description":["Yosondúa Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpn","Description":["Mindiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpo","Description":["Miu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpp","Description":["Migabac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpq","Description":["Matís"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpr","Description":["Vangunu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mps","Description":["Dadibi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpt","Description":["Mian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpu","Description":["Makuráp"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpv","Description":["Mungkip"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpw","Description":["Mapidian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpx","Description":["Misima-Panaeati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpy","Description":["Mapia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mpz","Description":["Mpi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqa","Description":["Maba (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqb","Description":["Mbuko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqc","Description":["Mangole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqe","Description":["Matepi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqf","Description":["Momuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqg","Description":["Kota Bangun Kutai Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"mqh","Description":["Tlazoyaltepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqi","Description":["Mariri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqj","Description":["Mamasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqk","Description":["Rajah Kabunsuwan Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mql","Description":["Mbelime"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqm","Description":["South Marquesan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqn","Description":["Moronene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqo","Description":["Modole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqp","Description":["Manipa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqq","Description":["Minokok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqr","Description":["Mander"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqs","Description":["West Makian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqt","Description":["Mok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqu","Description":["Mandari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqv","Description":["Mosimo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqw","Description":["Murupi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqx","Description":["Mamuju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqy","Description":["Manggarai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mqz","Description":["Pano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mra","Description":["Mlabri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrb","Description":["Marino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrc","Description":["Maricopa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrd","Description":["Western Magar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mre","Description":["Martha\'s Vineyard Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrf","Description":["Elseng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrg","Description":["Mising"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrh","Description":["Mara Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrj","Description":["Western Mari"],"Added":"2009-07-29","Macrolanguage":"chm"},{"Type":"language","Subtag":"mrk","Description":["Hmwaveke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrl","Description":["Mortlockese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrm","Description":["Merlav","Mwerlap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrn","Description":["Cheke Holo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mro","Description":["Mru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrp","Description":["Morouas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrq","Description":["North Marquesan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrr","Description":["Maria (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrs","Description":["Maragus"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrt","Description":["Marghi Central"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mru","Description":["Mono (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrv","Description":["Mangareva"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrw","Description":["Maranao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrx","Description":["Maremgi","Dineor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mry","Description":["Mandaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mrz","Description":["Marind"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msb","Description":["Masbatenyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msc","Description":["Sankaran Maninka"],"Added":"2009-07-29","Macrolanguage":"man"},{"Type":"language","Subtag":"msd","Description":["Yucatec Maya Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mse","Description":["Musey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msf","Description":["Mekwei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msg","Description":["Moraid"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msh","Description":["Masikoro Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"msi","Description":["Sabah Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"msj","Description":["Ma (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msk","Description":["Mansaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msl","Description":["Molof","Poule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msm","Description":["Agusan Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msn","Description":["Vurës"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mso","Description":["Mombum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msp","Description":["Maritsauá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msq","Description":["Caac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msr","Description":["Mongolian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mss","Description":["West Masela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mst","Description":["Cataelano Mandaya"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"mry"},{"Type":"language","Subtag":"msu","Description":["Musom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msv","Description":["Maslam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msw","Description":["Mansoanka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msx","Description":["Moresada"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msy","Description":["Aruamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"msz","Description":["Momare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mta","Description":["Cotabato Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtb","Description":["Anyin Morofo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtc","Description":["Munit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtd","Description":["Mualang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mte","Description":["Mono (Solomon Islands)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtf","Description":["Murik (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtg","Description":["Una"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mth","Description":["Munggui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mti","Description":["Maiwa (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtj","Description":["Moskona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtk","Description":["Mbe\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtl","Description":["Montol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtm","Description":["Mator"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtn","Description":["Matagalpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mto","Description":["Totontepec Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtp","Description":["Wichí Lhamtés Nocten"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtq","Description":["Muong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtr","Description":["Mewari"],"Added":"2009-07-29","Macrolanguage":"mwr"},{"Type":"language","Subtag":"mts","Description":["Yora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtt","Description":["Mota"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtu","Description":["Tututepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtv","Description":["Asaro\'o"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtw","Description":["Southern Binukidnon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mtx","Description":["Tidaá Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mty","Description":["Nabi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mua","Description":["Mundang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mub","Description":["Mubi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muc","Description":["Ajumbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mud","Description":["Mednyj Aleut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mue","Description":["Media Lengua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mug","Description":["Musgu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muh","Description":["Mündü"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mui","Description":["Musi"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"muj","Description":["Mabire"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muk","Description":["Mugom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mul","Description":["Multiple languages"],"Added":"2005-10-16","Scope":"special"},{"Type":"language","Subtag":"mum","Description":["Maiwala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mun","Description":["Munda languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"muo","Description":["Nyong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mup","Description":["Malvi"],"Added":"2009-07-29","Macrolanguage":"raj"},{"Type":"language","Subtag":"muq","Description":["Eastern Xiangxi Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"mur","Description":["Murle"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mus","Description":["Creek"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mut","Description":["Western Muria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muu","Description":["Yaaku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muv","Description":["Muthuvan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mux","Description":["Bo-Ung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muy","Description":["Muyang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"muz","Description":["Mursi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mva","Description":["Manam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvb","Description":["Mattole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvd","Description":["Mamboru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mve","Description":["Marwari (Pakistan)"],"Added":"2009-07-29","Macrolanguage":"mwr"},{"Type":"language","Subtag":"mvf","Description":["Peripheral Mongolian"],"Added":"2009-07-29","Macrolanguage":"mn"},{"Type":"language","Subtag":"mvg","Description":["Yucuañe Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvh","Description":["Mulgi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvi","Description":["Miyako"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvk","Description":["Mekmek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvl","Description":["Mbara (Australia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvm","Description":["Muya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvn","Description":["Minaveha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvo","Description":["Marovo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvp","Description":["Duri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvq","Description":["Moere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvr","Description":["Marau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvs","Description":["Massep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvt","Description":["Mpotovoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvu","Description":["Marfa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvv","Description":["Tagal Murut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvw","Description":["Machinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvx","Description":["Meoswar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvy","Description":["Indus Kohistani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mvz","Description":["Mesqan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwa","Description":["Mwatebu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwb","Description":["Juwal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwc","Description":["Are"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwd","Description":["Mudbura"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see dmw, xrq"]},{"Type":"language","Subtag":"mwe","Description":["Mwera (Chimwera)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwf","Description":["Murrinh-Patha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwg","Description":["Aiklep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwh","Description":["Mouk-Aria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwi","Description":["Labo","Ninde"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwj","Description":["Maligo"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"vaj"},{"Type":"language","Subtag":"mwk","Description":["Kita Maninkakan"],"Added":"2009-07-29","Macrolanguage":"man"},{"Type":"language","Subtag":"mwl","Description":["Mirandese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"mwm","Description":["Sar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwn","Description":["Nyamwanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwo","Description":["Central Maewo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwp","Description":["Kala Lagaw Ya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwq","Description":["Mün Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwr","Description":["Marwari"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"mws","Description":["Mwimbi-Muthambi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwt","Description":["Moken"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwu","Description":["Mittu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mwv","Description":["Mentawai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mww","Description":["Hmong Daw"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"mwx","Description":["Mediak"],"Added":"2009-07-29","Deprecated":"2018-03-08"},{"Type":"language","Subtag":"mwy","Description":["Mosiro"],"Added":"2009-07-29","Deprecated":"2018-03-08"},{"Type":"language","Subtag":"mwz","Description":["Moingi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxa","Description":["Northwest Oaxaca Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxb","Description":["Tezoatlán Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxc","Description":["Manyika"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxd","Description":["Modang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxe","Description":["Mele-Fila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxf","Description":["Malgbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxg","Description":["Mbangala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxh","Description":["Mvuba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxi","Description":["Mozarabic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxj","Description":["Miju-Mishmi","Geman Deng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxk","Description":["Monumbo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxl","Description":["Maxi Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxm","Description":["Meramera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxn","Description":["Moi (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxo","Description":["Mbowe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxp","Description":["Tlahuitoltepec Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxq","Description":["Juquila Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxr","Description":["Murik (Malaysia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxs","Description":["Huitepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxt","Description":["Jamiltepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxu","Description":["Mada (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxv","Description":["Metlatónoc Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxw","Description":["Namo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxx","Description":["Mahou","Mawukakan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxy","Description":["Southeastern Nochixtlán Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mxz","Description":["Central Masela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myb","Description":["Mbay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myc","Description":["Mayeka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myd","Description":["Maramba"],"Added":"2009-07-29","Deprecated":"2019-04-16","Preferred-Value":"aog"},{"Type":"language","Subtag":"mye","Description":["Myene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myf","Description":["Bambassi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myg","Description":["Manta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myh","Description":["Makah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myi","Description":["Mina (India)"],"Added":"2009-07-29","Deprecated":"2019-04-16"},{"Type":"language","Subtag":"myj","Description":["Mangayat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myk","Description":["Mamara Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myl","Description":["Moma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mym","Description":["Me\'en"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myn","Description":["Mayan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"myo","Description":["Anfillo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myp","Description":["Pirahã"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myq","Description":["Forest Maninka"],"Added":"2009-07-29","Deprecated":"2013-09-10","Macrolanguage":"man"},{"Type":"language","Subtag":"myr","Description":["Muniche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mys","Description":["Mesmes"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myt","Description":["Sangab Mandaya"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"mry"},{"Type":"language","Subtag":"myu","Description":["Mundurukú"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myv","Description":["Erzya"],"Added":"2005-10-16"},{"Type":"language","Subtag":"myw","Description":["Muyuw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myx","Description":["Masaaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myy","Description":["Macuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"myz","Description":["Classical Mandaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mza","Description":["Santa María Zacatepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzb","Description":["Tumzabt"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzc","Description":["Madagascar Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzd","Description":["Malimba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mze","Description":["Morawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzg","Description":["Monastic Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzh","Description":["Wichí Lhamtés Güisnay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzi","Description":["Ixcatlán Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzj","Description":["Manya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzk","Description":["Nigeria Mambila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzl","Description":["Mazatlán Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzm","Description":["Mumuye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzn","Description":["Mazanderani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzo","Description":["Matipuhy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzp","Description":["Movima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzq","Description":["Mori Atas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzr","Description":["Marúbo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzs","Description":["Macanese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzt","Description":["Mintil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzu","Description":["Inapang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzv","Description":["Manza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzw","Description":["Deg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzx","Description":["Mawayana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzy","Description":["Mozambican Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"mzz","Description":["Maiadomu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"naa","Description":["Namla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nab","Description":["Southern Nambikuára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nac","Description":["Narak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nad","Description":["Nijadali"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"xny"},{"Type":"language","Subtag":"nae","Description":["Naka\'ela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"naf","Description":["Nabak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nag","Description":["Naga Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nah","Description":["Nahuatl languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"nai","Description":["North American Indian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"naj","Description":["Nalu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nak","Description":["Nakanai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nal","Description":["Nalik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nam","Description":["Ngan\'gityemerri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nan","Description":["Min Nan Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"nao","Description":["Naaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nap","Description":["Neapolitan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"naq","Description":["Khoekhoe","Nama (Namibia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nar","Description":["Iguta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nas","Description":["Naasioi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nat","Description":["Ca̱hungwa̱rya̱","Hungworo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"naw","Description":["Nawuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nax","Description":["Nakwi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nay","Description":["Ngarrindjeri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"naz","Description":["Coatepec Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nba","Description":["Nyemba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbb","Description":["Ndoe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbc","Description":["Chang Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbd","Description":["Ngbinda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbe","Description":["Konyak Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbf","Description":["Naxi"],"Added":"2009-07-29","Deprecated":"2011-08-16","Comments":["see nru, nxq"]},{"Type":"language","Subtag":"nbg","Description":["Nagarchal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbh","Description":["Ngamo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbi","Description":["Mao Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbj","Description":["Ngarinyman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbk","Description":["Nake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbm","Description":["Ngbaka Ma\'bo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbn","Description":["Kuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbo","Description":["Nkukoli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbp","Description":["Nnam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbq","Description":["Nggem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbr","Description":["Numana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbs","Description":["Namibian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbt","Description":["Na"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbu","Description":["Rongmei Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbv","Description":["Ngamambo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbw","Description":["Southern Ngbandi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nbx","Description":["Ngura"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see ekc, gll, jbi, xpt, xwk"]},{"Type":"language","Subtag":"nby","Description":["Ningera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nca","Description":["Iyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncb","Description":["Central Nicobarese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncc","Description":["Ponam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncd","Description":["Nachering"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nce","Description":["Yale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncf","Description":["Notsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncg","Description":["Nisga\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nch","Description":["Central Huasteca Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nci","Description":["Classical Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncj","Description":["Northern Puebla Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nck","Description":["Na-kara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncl","Description":["Michoacán Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncm","Description":["Nambo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncn","Description":["Nauna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nco","Description":["Sibe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncp","Description":["Ndaktup"],"Added":"2009-07-29","Deprecated":"2018-03-08","Preferred-Value":"kdz"},{"Type":"language","Subtag":"ncq","Description":["Northern Katang"],"Added":"2017-02-23"},{"Type":"language","Subtag":"ncr","Description":["Ncane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncs","Description":["Nicaraguan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nct","Description":["Chothe Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncu","Description":["Chumburung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncx","Description":["Central Puebla Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ncz","Description":["Natchez"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nda","Description":["Ndasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndb","Description":["Kenswei Nsei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndc","Description":["Ndau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndd","Description":["Nde-Nsele-Nta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndf","Description":["Nadruvian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndg","Description":["Ndengereko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndh","Description":["Ndali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndi","Description":["Samba Leko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndj","Description":["Ndamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndk","Description":["Ndaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndl","Description":["Ndolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndm","Description":["Ndam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndn","Description":["Ngundi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndp","Description":["Ndo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndq","Description":["Ndombe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndr","Description":["Ndoola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nds","Description":["Low German","Low Saxon"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ndt","Description":["Ndunga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndu","Description":["Dugun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndv","Description":["Ndut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndw","Description":["Ndobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndx","Description":["Nduga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndy","Description":["Lutos"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ndz","Description":["Ndogo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nea","Description":["Eastern Ngad\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"neb","Description":["Toura (Côte d\'Ivoire)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nec","Description":["Nedebang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ned","Description":["Nde-Gbite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nee","Description":["Nêlêmwa-Nixumwak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nef","Description":["Nefamese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"neg","Description":["Negidal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"neh","Description":["Nyenkha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nei","Description":["Neo-Hittite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nej","Description":["Neko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nek","Description":["Neku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nem","Description":["Nemi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nen","Description":["Nengone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"neo","Description":["Ná-Meo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"neq","Description":["North Central Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ner","Description":["Yahadian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nes","Description":["Bhoti Kinnauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"net","Description":["Nete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"neu","Description":["Neo"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nev","Description":["Nyaheun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"new","Description":["Newari","Nepal Bhasa"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nex","Description":["Neme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ney","Description":["Neyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nez","Description":["Nez Perce"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nfa","Description":["Dhao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nfd","Description":["Ahwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nfl","Description":["Ayiwo","Äiwoo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nfr","Description":["Nafaanra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nfu","Description":["Mfumte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nga","Description":["Ngbaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngb","Description":["Northern Ngbandi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngc","Description":["Ngombe (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngd","Description":["Ngando (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nge","Description":["Ngemba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngf","Description":["Trans-New Guinea languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"ngg","Description":["Ngbaka Manza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngh","Description":["Nǁng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngi","Description":["Ngizim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngj","Description":["Ngie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngk","Description":["Dalabon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngl","Description":["Lomwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngm","Description":["Ngatik Men\'s Creole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngn","Description":["Ngwo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngo","Description":["Ngoni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngp","Description":["Ngulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngq","Description":["Ngurimi","Ngoreme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngr","Description":["Engdewu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngs","Description":["Gvoko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngt","Description":["Kriang","Ngeq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngu","Description":["Guerrero Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngv","Description":["Nagumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngw","Description":["Ngwaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngx","Description":["Nggwahyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngy","Description":["Tibea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ngz","Description":["Ngungwel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nha","Description":["Nhanda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhb","Description":["Beng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhc","Description":["Tabasco Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhd","Description":["Chiripá","Ava Guaraní"],"Added":"2009-07-29","Macrolanguage":"gn"},{"Type":"language","Subtag":"nhe","Description":["Eastern Huasteca Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhf","Description":["Nhuwala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhg","Description":["Tetelcingo Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhh","Description":["Nahari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhi","Description":["Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhk","Description":["Isthmus-Cosoleacaque Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhm","Description":["Morelos Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhn","Description":["Central Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nho","Description":["Takuu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhp","Description":["Isthmus-Pajapan Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhq","Description":["Huaxcaleca Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhr","Description":["Naro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nht","Description":["Ometepec Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhu","Description":["Noone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhv","Description":["Temascaltepec Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhw","Description":["Western Huasteca Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhx","Description":["Isthmus-Mecayapan Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhy","Description":["Northern Oaxaca Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nhz","Description":["Santa María La Alta Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nia","Description":["Nias"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nib","Description":["Nakame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nic","Description":["Niger-Kordofanian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"nid","Description":["Ngandi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nie","Description":["Niellim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nif","Description":["Nek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nig","Description":["Ngalakgan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nih","Description":["Nyiha (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nii","Description":["Nii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nij","Description":["Ngaju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nik","Description":["Southern Nicobarese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nil","Description":["Nila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nim","Description":["Nilamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nin","Description":["Ninzo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nio","Description":["Nganasan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"niq","Description":["Nandi"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"nir","Description":["Nimboran"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nis","Description":["Nimi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nit","Description":["Southeastern Kolami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"niu","Description":["Niuean"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"niv","Description":["Gilyak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"niw","Description":["Nimo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nix","Description":["Hema"],"Added":"2009-07-29"},{"Type":"language","Subtag":"niy","Description":["Ngiti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"niz","Description":["Ningil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nja","Description":["Nzanyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njb","Description":["Nocte Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njd","Description":["Ndonde Hamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njh","Description":["Lotha Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nji","Description":["Gudanji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njj","Description":["Njen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njl","Description":["Njalgulgule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njm","Description":["Angami Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njn","Description":["Liangmai Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njo","Description":["Ao Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njr","Description":["Njerep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njs","Description":["Nisa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njt","Description":["Ndyuka-Trio Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nju","Description":["Ngadjunmaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njx","Description":["Kunyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njy","Description":["Njyem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"njz","Description":["Nyishi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nka","Description":["Nkoya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkb","Description":["Khoibu Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkc","Description":["Nkongho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkd","Description":["Koireng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nke","Description":["Duke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkf","Description":["Inpui Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkg","Description":["Nekgini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkh","Description":["Khezha Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nki","Description":["Thangal Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkj","Description":["Nakai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkk","Description":["Nokuku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkm","Description":["Namat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkn","Description":["Nkangala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nko","Description":["Nkonya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkp","Description":["Niuatoputapu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkq","Description":["Nkami"],"Added":"2010-04-16"},{"Type":"language","Subtag":"nkr","Description":["Nukuoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nks","Description":["North Asmat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkt","Description":["Nyika (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nku","Description":["Bouna Kulango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkv","Description":["Nyika (Malawi and Zambia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkw","Description":["Nkutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkx","Description":["Nkoroo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nkz","Description":["Nkari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nla","Description":["Ngombale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlc","Description":["Nalca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nle","Description":["East Nyala"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"nlg","Description":["Gela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nli","Description":["Grangali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlj","Description":["Nyali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlk","Description":["Ninia Yali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nll","Description":["Nihali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlm","Description":["Mankiyali"],"Added":"2018-03-08"},{"Type":"language","Subtag":"nln","Description":["Durango Nahuatl"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see azd, azn"]},{"Type":"language","Subtag":"nlo","Description":["Ngul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlq","Description":["Lao Naga"],"Added":"2013-09-10"},{"Type":"language","Subtag":"nlr","Description":["Ngarla"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see nrk, ywg"]},{"Type":"language","Subtag":"nlu","Description":["Nchumbulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlv","Description":["Orizaba Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlw","Description":["Walangama"],"Added":"2013-09-10"},{"Type":"language","Subtag":"nlx","Description":["Nahali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nly","Description":["Nyamal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nlz","Description":["Nalögo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nma","Description":["Maram Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmb","Description":["Big Nambas","V\'ënen Taut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmc","Description":["Ngam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmd","Description":["Ndumu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nme","Description":["Mzieme Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmf","Description":["Tangkhul Naga (India)"],"Added":"2009-07-29","Comments":["see ntx"]},{"Type":"language","Subtag":"nmg","Description":["Kwasio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmh","Description":["Monsang Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmi","Description":["Nyam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmj","Description":["Ngombe (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmk","Description":["Namakura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nml","Description":["Ndemli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmm","Description":["Manangba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmn","Description":["ǃXóõ"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmo","Description":["Moyon Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmp","Description":["Nimanbur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmq","Description":["Nambya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmr","Description":["Nimbari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nms","Description":["Letemboi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmt","Description":["Namonuito"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmu","Description":["Northeast Maidu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmv","Description":["Ngamini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmw","Description":["Nimoa","Rifao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmx","Description":["Nama (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmy","Description":["Namuyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nmz","Description":["Nawdm"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nna","Description":["Nyangumarta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnb","Description":["Nande"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnc","Description":["Nancere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnd","Description":["West Ambae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nne","Description":["Ngandyera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnf","Description":["Ngaing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nng","Description":["Maring Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnh","Description":["Ngiemboon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nni","Description":["North Nuaulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnj","Description":["Nyangatom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnk","Description":["Nankina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnl","Description":["Northern Rengma Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnm","Description":["Namia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnn","Description":["Ngete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnp","Description":["Wancho Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnq","Description":["Ngindo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnr","Description":["Narungga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nns","Description":["Ningye"],"Added":"2009-07-29","Deprecated":"2019-04-16","Preferred-Value":"nbr"},{"Type":"language","Subtag":"nnt","Description":["Nanticoke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnu","Description":["Dwang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnv","Description":["Nugunu (Australia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnw","Description":["Southern Nuni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnx","Description":["Ngong"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"ngv"},{"Type":"language","Subtag":"nny","Description":["Nyangga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nnz","Description":["Nda\'nda\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noa","Description":["Woun Meu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noc","Description":["Nuk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nod","Description":["Northern Thai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noe","Description":["Nimadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nof","Description":["Nomane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nog","Description":["Nogai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"noh","Description":["Nomu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noi","Description":["Noiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noj","Description":["Nonuya"],"Added":"2010-03-11"},{"Type":"language","Subtag":"nok","Description":["Nooksack"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nol","Description":["Nomlaki"],"Added":"2013-09-10"},{"Type":"language","Subtag":"nom","Description":["Nocamán"],"Added":"2009-07-29"},{"Type":"language","Subtag":"non","Description":["Old Norse"],"Added":"2005-10-16"},{"Type":"language","Subtag":"noo","Description":["Nootka"],"Added":"2009-07-29","Deprecated":"2011-08-16","Comments":["see dtd, nuk"]},{"Type":"language","Subtag":"nop","Description":["Numanggang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noq","Description":["Ngongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nos","Description":["Eastern Nisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"not","Description":["Nomatsiguenga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nou","Description":["Ewage-Notu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nov","Description":["Novial"],"Added":"2009-07-29"},{"Type":"language","Subtag":"now","Description":["Nyambo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noy","Description":["Noy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"noz","Description":["Nayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npa","Description":["Nar Phu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npb","Description":["Nupbikha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npg","Description":["Ponyo-Gongwang Naga"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nph","Description":["Phom Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npi","Description":["Nepali (individual language)"],"Added":"2012-08-12","Macrolanguage":"ne"},{"Type":"language","Subtag":"npl","Description":["Southeastern Puebla Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npn","Description":["Mondropolon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npo","Description":["Pochuri Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nps","Description":["Nipsan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npu","Description":["Puimei Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"npx","Description":["Noipx"],"Added":"2017-02-23"},{"Type":"language","Subtag":"npy","Description":["Napu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nqg","Description":["Southern Nago"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nqk","Description":["Kura Ede Nago"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nql","Description":["Ngendelengo"],"Added":"2017-02-23"},{"Type":"language","Subtag":"nqm","Description":["Ndom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nqn","Description":["Nen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nqo","Description":["N\'Ko","N’Ko"],"Added":"2006-06-05","Suppress-Script":"Nkoo"},{"Type":"language","Subtag":"nqq","Description":["Kyan-Karyaw Naga"],"Added":"2013-09-10"},{"Type":"language","Subtag":"nqy","Description":["Akyaung Ari Naga"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nra","Description":["Ngom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrb","Description":["Nara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrc","Description":["Noric"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nre","Description":["Southern Rengma Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrf","Description":["Jèrriais","Guernésiais"],"Added":"2015-02-12"},{"Type":"language","Subtag":"nrg","Description":["Narango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nri","Description":["Chokri Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrk","Description":["Ngarla"],"Added":"2013-09-10"},{"Type":"language","Subtag":"nrl","Description":["Ngarluma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrm","Description":["Narom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrn","Description":["Norn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrp","Description":["North Picene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrr","Description":["Norra","Nora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrt","Description":["Northern Kalapuya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nru","Description":["Narua"],"Added":"2011-08-16"},{"Type":"language","Subtag":"nrx","Description":["Ngurmbur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nrz","Description":["Lala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsa","Description":["Sangtam Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsc","Description":["Nshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsd","Description":["Southern Nisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nse","Description":["Nsenga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsf","Description":["Northwestern Nisu"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nsg","Description":["Ngasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsh","Description":["Ngoshie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsi","Description":["Nigerian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsk","Description":["Naskapi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsl","Description":["Norwegian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsm","Description":["Sumi Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsn","Description":["Nehan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nso","Description":["Pedi","Northern Sotho","Sepedi"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"nsp","Description":["Nepalese Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsq","Description":["Northern Sierra Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsr","Description":["Maritime Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nss","Description":["Nali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nst","Description":["Tase Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsu","Description":["Sierra Negra Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsv","Description":["Southwestern Nisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsw","Description":["Navut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsx","Description":["Nsongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsy","Description":["Nasal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nsz","Description":["Nisenan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntd","Description":["Northern Tidung"],"Added":"2016-05-30"},{"Type":"language","Subtag":"nte","Description":["Nathembo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntg","Description":["Ngantangarra"],"Added":"2013-09-10"},{"Type":"language","Subtag":"nti","Description":["Natioro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntj","Description":["Ngaanyatjarra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntk","Description":["Ikoma-Nata-Isenye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntm","Description":["Nateni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nto","Description":["Ntomba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntp","Description":["Northern Tepehuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntr","Description":["Delo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nts","Description":["Natagaimas"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"pij"},{"Type":"language","Subtag":"ntu","Description":["Natügu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntw","Description":["Nottoway"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntx","Description":["Tangkhul Naga (Myanmar)"],"Added":"2012-08-12","Comments":["see nmf"]},{"Type":"language","Subtag":"nty","Description":["Mantsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ntz","Description":["Natanzi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nua","Description":["Yuanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nub","Description":["Nubian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"nuc","Description":["Nukuini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nud","Description":["Ngala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nue","Description":["Ngundu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuf","Description":["Nusu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nug","Description":["Nungali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuh","Description":["Ndunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nui","Description":["Ngumbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuj","Description":["Nyole"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuk","Description":["Nuu-chah-nulth","Nuuchahnulth"],"Added":"2011-08-16"},{"Type":"language","Subtag":"nul","Description":["Nusa Laut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"num","Description":["Niuafo\'ou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nun","Description":["Anong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuo","Description":["Nguôn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nup","Description":["Nupe-Nupe-Tako"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuq","Description":["Nukumanu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nur","Description":["Nukuria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nus","Description":["Nuer"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nut","Description":["Nung (Viet Nam)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuu","Description":["Ngbundu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuv","Description":["Northern Nuni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuw","Description":["Nguluwan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nux","Description":["Mehek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuy","Description":["Nunggubuyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nuz","Description":["Tlamacazapa Nahuatl"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nvh","Description":["Nasarian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nvm","Description":["Namiae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nvo","Description":["Nyokon"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nwa","Description":["Nawathinehena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwb","Description":["Nyabwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwc","Description":["Classical Newari","Classical Nepal Bhasa","Old Newari"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nwe","Description":["Ngwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwg","Description":["Ngayawung"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nwi","Description":["Southwest Tanna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwm","Description":["Nyamusa-Molo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwo","Description":["Nauo"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nwr","Description":["Nawaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwx","Description":["Middle Newar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nwy","Description":["Nottoway-Meherrin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxa","Description":["Nauete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxd","Description":["Ngando (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxe","Description":["Nage"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxg","Description":["Ngad\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxi","Description":["Nindi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxk","Description":["Koki Naga"],"Added":"2012-08-12"},{"Type":"language","Subtag":"nxl","Description":["South Nuaulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxm","Description":["Numidian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxn","Description":["Ngawun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxo","Description":["Ndambomo"],"Added":"2015-02-12"},{"Type":"language","Subtag":"nxq","Description":["Naxi"],"Added":"2011-08-16"},{"Type":"language","Subtag":"nxr","Description":["Ninggerum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxu","Description":["Narau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nxx","Description":["Nafri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyb","Description":["Nyangbo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyc","Description":["Nyanga-li"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyd","Description":["Nyore","Olunyole"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"nye","Description":["Nyengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyf","Description":["Giryama","Kigiryama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyg","Description":["Nyindu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyh","Description":["Nyikina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyi","Description":["Ama (Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyj","Description":["Nyanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyk","Description":["Nyaneka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyl","Description":["Nyeu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nym","Description":["Nyamwezi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nyn","Description":["Nyankole"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nyo","Description":["Nyoro"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nyp","Description":["Nyang\'i"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyq","Description":["Nayini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyr","Description":["Nyiha (Malawi)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nys","Description":["Nyungar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyt","Description":["Nyawaygi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyu","Description":["Nyungwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyv","Description":["Nyulnyul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyw","Description":["Nyaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyx","Description":["Nganyaywana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nyy","Description":["Nyakyusa-Ngonde"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nza","Description":["Tigon Mbembe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzb","Description":["Njebi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzd","Description":["Nzadi"],"Added":"2018-03-08"},{"Type":"language","Subtag":"nzi","Description":["Nzima"],"Added":"2005-10-16"},{"Type":"language","Subtag":"nzk","Description":["Nzakara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzm","Description":["Zeme Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzs","Description":["New Zealand Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzu","Description":["Teke-Nzikou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzy","Description":["Nzakambay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"nzz","Description":["Nanga Dama Dogon"],"Added":"2010-03-11"},{"Type":"language","Subtag":"oaa","Description":["Orok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oac","Description":["Oroch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oar","Description":["Old Aramaic (up to 700 BCE)","Ancient Aramaic (up to 700 BCE)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oav","Description":["Old Avar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obi","Description":["Obispeño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obk","Description":["Southern Bontok"],"Added":"2010-03-11","Macrolanguage":"bnc"},{"Type":"language","Subtag":"obl","Description":["Oblo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obm","Description":["Moabite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obo","Description":["Obo Manobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obr","Description":["Old Burmese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obt","Description":["Old Breton"],"Added":"2009-07-29"},{"Type":"language","Subtag":"obu","Description":["Obulom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oca","Description":["Ocaina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"och","Description":["Old Chinese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oco","Description":["Old Cornish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ocu","Description":["Atzingo Matlatzinca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oda","Description":["Odut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"odk","Description":["Od"],"Added":"2009-07-29"},{"Type":"language","Subtag":"odt","Description":["Old Dutch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"odu","Description":["Odual"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ofo","Description":["Ofo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ofs","Description":["Old Frisian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ofu","Description":["Efutop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ogb","Description":["Ogbia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ogc","Description":["Ogbah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oge","Description":["Old Georgian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ogg","Description":["Ogbogolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ogo","Description":["Khana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ogu","Description":["Ogbronuagum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oht","Description":["Old Hittite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ohu","Description":["Old Hungarian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oia","Description":["Oirata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oin","Description":["Inebu One"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ojb","Description":["Northwestern Ojibwa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"ojc","Description":["Central Ojibwa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"ojg","Description":["Eastern Ojibwa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"ojp","Description":["Old Japanese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ojs","Description":["Severn Ojibwa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"ojv","Description":["Ontong Java"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ojw","Description":["Western Ojibwa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"oka","Description":["Okanagan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okb","Description":["Okobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okd","Description":["Okodia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oke","Description":["Okpe (Southwestern Edo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okg","Description":["Koko Babangk"],"Added":"2012-08-12"},{"Type":"language","Subtag":"okh","Description":["Koresh-e Rostam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oki","Description":["Okiek"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"okj","Description":["Oko-Juwoi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okk","Description":["Kwamtim One"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okl","Description":["Old Kentish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okm","Description":["Middle Korean (10th-16th cent.)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okn","Description":["Oki-No-Erabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oko","Description":["Old Korean (3rd-9th cent.)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okr","Description":["Kirike"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oks","Description":["Oko-Eni-Osayen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oku","Description":["Oku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okv","Description":["Orokaiva"],"Added":"2009-07-29"},{"Type":"language","Subtag":"okx","Description":["Okpe (Northwestern Edo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ola","Description":["Walungge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"old","Description":["Mochi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ole","Description":["Olekha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"olk","Description":["Olkol"],"Added":"2013-09-10"},{"Type":"language","Subtag":"olm","Description":["Oloma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"olo","Description":["Livvi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"olr","Description":["Olrat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"olt","Description":["Old Lithuanian"],"Added":"2014-02-28"},{"Type":"language","Subtag":"olu","Description":["Kuvale"],"Added":"2016-05-30"},{"Type":"language","Subtag":"oma","Description":["Omaha-Ponca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omb","Description":["East Ambae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omc","Description":["Mochica"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ome","Description":["Omejes"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"omg","Description":["Omagua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omi","Description":["Omi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omk","Description":["Omok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oml","Description":["Ombo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omn","Description":["Minoan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omo","Description":["Utarmbung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omp","Description":["Old Manipuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omq","Description":["Oto-Manguean languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"omr","Description":["Old Marathi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omt","Description":["Omotik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omu","Description":["Omurano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omv","Description":["Omotic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"omw","Description":["South Tairora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"omx","Description":["Old Mon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ona","Description":["Ona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onb","Description":["Lingao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"one","Description":["Oneida"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ong","Description":["Olo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oni","Description":["Onin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onj","Description":["Onjob"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onk","Description":["Kabore One"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onn","Description":["Onobasulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ono","Description":["Onondaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onp","Description":["Sartang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onr","Description":["Northern One"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ons","Description":["Ono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ont","Description":["Ontenu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onu","Description":["Unua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onw","Description":["Old Nubian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"onx","Description":["Onin Based Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ood","Description":["Tohono O\'odham"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oog","Description":["Ong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oon","Description":["Önge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oor","Description":["Oorlams"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oos","Description":["Old Ossetic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"opa","Description":["Okpamheri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"opk","Description":["Kopkaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"opm","Description":["Oksapmin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"opo","Description":["Opao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"opt","Description":["Opata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"opy","Description":["Ofayé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ora","Description":["Oroha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orc","Description":["Orma"],"Added":"2009-07-29","Macrolanguage":"om"},{"Type":"language","Subtag":"ore","Description":["Orejón"],"Added":"2009-07-29"},{"Type":"language","Subtag":"org","Description":["Oring"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orh","Description":["Oroqen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orn","Description":["Orang Kanaq"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"oro","Description":["Orokolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orr","Description":["Oruma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ors","Description":["Orang Seletar"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"ort","Description":["Adivasi Oriya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oru","Description":["Ormuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orv","Description":["Old Russian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orw","Description":["Oro Win"],"Added":"2009-07-29"},{"Type":"language","Subtag":"orx","Description":["Oro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ory","Description":["Odia (individual language)","Oriya (individual language)"],"Added":"2012-08-12","Macrolanguage":"or"},{"Type":"language","Subtag":"orz","Description":["Ormu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"osa","Description":["Osage"],"Added":"2005-10-16"},{"Type":"language","Subtag":"osc","Description":["Oscan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"osi","Description":["Osing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oso","Description":["Ososo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"osp","Description":["Old Spanish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ost","Description":["Osatu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"osu","Description":["Southern One"],"Added":"2009-07-29"},{"Type":"language","Subtag":"osx","Description":["Old Saxon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ota","Description":["Ottoman Turkish (1500-1928)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"otb","Description":["Old Tibetan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otd","Description":["Ot Danum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ote","Description":["Mezquital Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oti","Description":["Oti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otk","Description":["Old Turkish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otl","Description":["Tilapa Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otm","Description":["Eastern Highland Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otn","Description":["Tenango Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oto","Description":["Otomian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"otq","Description":["Querétaro Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otr","Description":["Otoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ots","Description":["Estado de México Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ott","Description":["Temoaya Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otu","Description":["Otuke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otw","Description":["Ottawa"],"Added":"2009-07-29","Macrolanguage":"oj"},{"Type":"language","Subtag":"otx","Description":["Texcatepec Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oty","Description":["Old Tamil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"otz","Description":["Ixtenco Otomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oua","Description":["Tagargrent"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oub","Description":["Glio-Oubi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oue","Description":["Oune"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oui","Description":["Old Uighur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oum","Description":["Ouma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oun","Description":["ǃOǃung"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"vaj"},{"Type":"language","Subtag":"ovd","Description":["Elfdalian","Övdalian"],"Added":"2016-06-16"},{"Type":"language","Subtag":"owi","Description":["Owiniga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"owl","Description":["Old Welsh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oyb","Description":["Oy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oyd","Description":["Oyda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oym","Description":["Wayampi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"oyy","Description":["Oya\'oya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ozm","Description":["Koonzime"],"Added":"2009-07-29"},{"Type":"language","Subtag":"paa","Description":["Papuan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"pab","Description":["Parecís"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pac","Description":["Pacoh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pad","Description":["Paumarí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pae","Description":["Pagibete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"paf","Description":["Paranawát"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pag","Description":["Pangasinan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pah","Description":["Tenharim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pai","Description":["Pe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pak","Description":["Parakanã"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pal","Description":["Pahlavi"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pam","Description":["Pampanga","Kapampangan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pao","Description":["Northern Paiute"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pap","Description":["Papiamento"],"Added":"2005-10-16"},{"Type":"language","Subtag":"paq","Description":["Parya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"par","Description":["Panamint","Timbisha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pas","Description":["Papasena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pat","Description":["Papitalai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pau","Description":["Palauan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pav","Description":["Pakaásnovos"],"Added":"2009-07-29"},{"Type":"language","Subtag":"paw","Description":["Pawnee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pax","Description":["Pankararé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pay","Description":["Pech"],"Added":"2009-07-29"},{"Type":"language","Subtag":"paz","Description":["Pankararú"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbb","Description":["Páez"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbc","Description":["Patamona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbe","Description":["Mezontla Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbf","Description":["Coyotepec Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbg","Description":["Paraujano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbh","Description":["E\'ñapa Woromaipu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbi","Description":["Parkwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbl","Description":["Mak (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbm","Description":["Puebla Mazatec"],"Added":"2018-03-08","Comments":["see also maa"]},{"Type":"language","Subtag":"pbn","Description":["Kpasam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbo","Description":["Papel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbp","Description":["Badyara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbr","Description":["Pangwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbs","Description":["Central Pame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbt","Description":["Southern Pashto"],"Added":"2009-07-29","Macrolanguage":"ps"},{"Type":"language","Subtag":"pbu","Description":["Northern Pashto"],"Added":"2009-07-29","Macrolanguage":"ps"},{"Type":"language","Subtag":"pbv","Description":["Pnar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pby","Description":["Pyu (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pbz","Description":["Palu"],"Added":"2009-07-29","Deprecated":"2012-08-12"},{"Type":"language","Subtag":"pca","Description":["Santa Inés Ahuatempan Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcb","Description":["Pear"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcc","Description":["Bouyei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcd","Description":["Picard"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pce","Description":["Ruching Palaung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcf","Description":["Paliyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcg","Description":["Paniya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pch","Description":["Pardhan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pci","Description":["Duruwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcj","Description":["Parenga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pck","Description":["Paite Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcl","Description":["Pardhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcm","Description":["Nigerian Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcn","Description":["Piti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcp","Description":["Pacahuara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pcr","Description":["Panang"],"Added":"2009-07-29","Deprecated":"2013-09-10","Preferred-Value":"adx"},{"Type":"language","Subtag":"pcw","Description":["Pyapun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pda","Description":["Anam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pdc","Description":["Pennsylvania German"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pdi","Description":["Pa Di"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pdn","Description":["Podena","Fedan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pdo","Description":["Padoe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pdt","Description":["Plautdietsch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pdu","Description":["Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pea","Description":["Peranakan Indonesian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"peb","Description":["Eastern Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ped","Description":["Mala (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pee","Description":["Taje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pef","Description":["Northeastern Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"peg","Description":["Pengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"peh","Description":["Bonan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pei","Description":["Chichimeca-Jonaz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pej","Description":["Northern Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pek","Description":["Penchal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pel","Description":["Pekal"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"pem","Description":["Phende"],"Added":"2009-07-29"},{"Type":"language","Subtag":"peo","Description":["Old Persian (ca. 600-400 B.C.)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pep","Description":["Kunja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"peq","Description":["Southern Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pes","Description":["Iranian Persian"],"Added":"2009-07-29","Macrolanguage":"fa"},{"Type":"language","Subtag":"pev","Description":["Pémono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pex","Description":["Petats"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pey","Description":["Petjo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pez","Description":["Eastern Penan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pfa","Description":["Pááfang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pfe","Description":["Peere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pfl","Description":["Pfaelzisch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pga","Description":["Sudanese Creole Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"pgd","Description":["Gāndhārī"],"Added":"2015-02-12"},{"Type":"language","Subtag":"pgg","Description":["Pangwali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pgi","Description":["Pagi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pgk","Description":["Rerep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pgl","Description":["Primitive Irish"],"Added":"2011-08-16"},{"Type":"language","Subtag":"pgn","Description":["Paelignian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pgs","Description":["Pangseng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pgu","Description":["Pagu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pgy","Description":["Pongyong"],"Added":"2009-07-29","Deprecated":"2012-08-12"},{"Type":"language","Subtag":"pgz","Description":["Papua New Guinean Sign Language"],"Added":"2016-05-30"},{"Type":"language","Subtag":"pha","Description":["Pa-Hng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phd","Description":["Phudagi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phg","Description":["Phuong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phh","Description":["Phukha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phi","Description":["Philippine languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"phk","Description":["Phake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phl","Description":["Phalura","Palula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phm","Description":["Phimbi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phn","Description":["Phoenician"],"Added":"2005-10-16"},{"Type":"language","Subtag":"pho","Description":["Phunoi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phq","Description":["Phana\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phr","Description":["Pahari-Potwari"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"pht","Description":["Phu Thai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phu","Description":["Phuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phv","Description":["Pahlavani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"phw","Description":["Phangduwali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pia","Description":["Pima Bajo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pib","Description":["Yine"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pic","Description":["Pinji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pid","Description":["Piaroa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pie","Description":["Piro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pif","Description":["Pingelapese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pig","Description":["Pisabo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pih","Description":["Pitcairn-Norfolk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pii","Description":["Pini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pij","Description":["Pijao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pil","Description":["Yom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pim","Description":["Powhatan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pin","Description":["Piame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pio","Description":["Piapoco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pip","Description":["Pero"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pir","Description":["Piratapuyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pis","Description":["Pijin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pit","Description":["Pitta Pitta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"piu","Description":["Pintupi-Luritja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"piv","Description":["Pileni","Vaeakau-Taumako"],"Added":"2009-07-29"},{"Type":"language","Subtag":"piw","Description":["Pimbwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pix","Description":["Piu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"piy","Description":["Piya-Kwonci"],"Added":"2009-07-29"},{"Type":"language","Subtag":"piz","Description":["Pije"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pjt","Description":["Pitjantjatjara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pka","Description":["Ardhamāgadhī Prākrit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkb","Description":["Pokomo","Kipfokomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkc","Description":["Paekche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkg","Description":["Pak-Tong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkh","Description":["Pankhu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkn","Description":["Pakanha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pko","Description":["Pökoot"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"pkp","Description":["Pukapuka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkr","Description":["Attapady Kurumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pks","Description":["Pakistan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pkt","Description":["Maleng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pku","Description":["Paku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pla","Description":["Miani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plb","Description":["Polonombauk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plc","Description":["Central Palawano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pld","Description":["Polari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ple","Description":["Palu\'e"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plf","Description":["Central Malayo-Polynesian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"plg","Description":["Pilagá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plh","Description":["Paulohi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plj","Description":["Polci"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plk","Description":["Kohistani Shina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pll","Description":["Shwe Palaung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pln","Description":["Palenquero"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plo","Description":["Oluta Popoluca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plp","Description":["Palpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plq","Description":["Palaic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plr","Description":["Palaka Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pls","Description":["San Marcos Tlacoyalco Popoloca","San Marcos Tlalcoyalco Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plt","Description":["Plateau Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"plu","Description":["Palikúr"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plv","Description":["Southwest Palawano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plw","Description":["Brooke\'s Point Palawano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ply","Description":["Bolyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"plz","Description":["Paluan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pma","Description":["Paama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmb","Description":["Pambia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmc","Description":["Palumata"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"huw"},{"Type":"language","Subtag":"pmd","Description":["Pallanganmiddang"],"Added":"2012-08-12"},{"Type":"language","Subtag":"pme","Description":["Pwaamei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmf","Description":["Pamona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmh","Description":["Māhārāṣṭri Prākrit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmi","Description":["Northern Pumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmj","Description":["Southern Pumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmk","Description":["Pamlico"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pml","Description":["Lingua Franca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmm","Description":["Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmn","Description":["Pam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmo","Description":["Pom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmq","Description":["Northern Pame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmr","Description":["Paynamar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pms","Description":["Piemontese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmt","Description":["Tuamotuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmu","Description":["Mirpur Panjabi"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"phr","Macrolanguage":"lah"},{"Type":"language","Subtag":"pmw","Description":["Plains Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmx","Description":["Poumei Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmy","Description":["Papuan Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pmz","Description":["Southern Pame"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pna","Description":["Punan Bah-Biau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnb","Description":["Western Panjabi"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"pnc","Description":["Pannei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnd","Description":["Mpinda"],"Added":"2019-04-16"},{"Type":"language","Subtag":"pne","Description":["Western Penan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"png","Description":["Pongu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnh","Description":["Penrhyn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pni","Description":["Aoheng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnj","Description":["Pinjarup"],"Added":"2013-09-10"},{"Type":"language","Subtag":"pnk","Description":["Paunaka"],"Added":"2012-08-12"},{"Type":"language","Subtag":"pnl","Description":["Paleni"],"Added":"2013-09-10","Comments":["see also wbf"]},{"Type":"language","Subtag":"pnm","Description":["Punan Batu 1"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnn","Description":["Pinai-Hagahai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pno","Description":["Panobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnp","Description":["Pancana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnq","Description":["Pana (Burkina Faso)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnr","Description":["Panim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pns","Description":["Ponosakan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnt","Description":["Pontic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnu","Description":["Jiongnai Bunu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnv","Description":["Pinigura"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnw","Description":["Banyjima","Panytyima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pnx","Description":["Phong-Kniang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pny","Description":["Pinyin"],"Added":"2009-07-29","Comments":["a Niger-Congo language spoken in Cameroon; not to be confused","with the Pinyin romanization systems used for Chinese and Tibetan"]},{"Type":"language","Subtag":"pnz","Description":["Pana (Central African Republic)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"poc","Description":["Poqomam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pod","Description":["Ponares"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"poe","Description":["San Juan Atzingo Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pof","Description":["Poke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pog","Description":["Potiguára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"poh","Description":["Poqomchi\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"poi","Description":["Highland Popoluca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pok","Description":["Pokangá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pom","Description":["Southeastern Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pon","Description":["Pohnpeian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"poo","Description":["Central Pomo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pop","Description":["Pwapwâ"],"Added":"2009-07-29"},{"Type":"language","Subtag":"poq","Description":["Texistepec Popoluca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pos","Description":["Sayula Popoluca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pot","Description":["Potawatomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pov","Description":["Upper Guinea Crioulo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pow","Description":["San Felipe Otlaltepec Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pox","Description":["Polabian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"poy","Description":["Pogolo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"poz","Description":["Malayo-Polynesian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"ppa","Description":["Pao"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"bfy"},{"Type":"language","Subtag":"ppe","Description":["Papi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppi","Description":["Paipai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppk","Description":["Uma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppl","Description":["Pipil","Nicarao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppm","Description":["Papuma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppn","Description":["Papapana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppo","Description":["Folopa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppp","Description":["Pelende"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppq","Description":["Pei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppr","Description":["Piru"],"Added":"2009-07-29","Deprecated":"2013-09-10","Preferred-Value":"lcq"},{"Type":"language","Subtag":"pps","Description":["San Luís Temalacayuca Popoloca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppt","Description":["Pare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ppu","Description":["Papora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pqa","Description":["Pa\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pqe","Description":["Eastern Malayo-Polynesian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"pqm","Description":["Malecite-Passamaquoddy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pqw","Description":["Western Malayo-Polynesian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"pra","Description":["Prakrit languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"prb","Description":["Lua\'"],"Added":"2009-07-29","Deprecated":"2017-02-23"},{"Type":"language","Subtag":"prc","Description":["Parachi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prd","Description":["Parsi-Dari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pre","Description":["Principense"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prf","Description":["Paranan"],"Added":"2010-03-11"},{"Type":"language","Subtag":"prg","Description":["Prussian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prh","Description":["Porohanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pri","Description":["Paicî"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prk","Description":["Parauk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prl","Description":["Peruvian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prm","Description":["Kibiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prn","Description":["Prasuni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pro","Description":["Old Provençal (to 1500)","Old Occitan (to 1500)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"prp","Description":["Parsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prq","Description":["Ashéninka Perené"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prr","Description":["Puri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prs","Description":["Dari","Afghan Persian"],"Added":"2009-07-29","Macrolanguage":"fa"},{"Type":"language","Subtag":"prt","Description":["Phai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pru","Description":["Puragi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prw","Description":["Parawen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"prx","Description":["Purik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pry","Description":["Pray 3"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"prt"},{"Type":"language","Subtag":"prz","Description":["Providencia Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psa","Description":["Asue Awyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psc","Description":["Persian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psd","Description":["Plains Indian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pse","Description":["Central Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"psg","Description":["Penang Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psh","Description":["Southwest Pashai","Southwest Pashayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psi","Description":["Southeast Pashai","Southeast Pashayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psl","Description":["Puerto Rican Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psm","Description":["Pauserna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psn","Description":["Panasuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pso","Description":["Polish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psp","Description":["Philippine Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psq","Description":["Pasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psr","Description":["Portuguese Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pss","Description":["Kaulong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pst","Description":["Central Pashto"],"Added":"2009-07-29","Macrolanguage":"ps"},{"Type":"language","Subtag":"psu","Description":["Sauraseni Prākrit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psw","Description":["Port Sandwich"],"Added":"2009-07-29"},{"Type":"language","Subtag":"psy","Description":["Piscataway"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pta","Description":["Pai Tavytera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pth","Description":["Pataxó Hã-Ha-Hãe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pti","Description":["Pindiini","Wangkatha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptn","Description":["Patani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pto","Description":["Zo\'é"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptp","Description":["Patep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptq","Description":["Pattapu"],"Added":"2014-04-06"},{"Type":"language","Subtag":"ptr","Description":["Piamatsina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptt","Description":["Enrekang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptu","Description":["Bambam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptv","Description":["Port Vato"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ptw","Description":["Pentlatch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pty","Description":["Pathiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pua","Description":["Western Highland Purepecha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pub","Description":["Purum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puc","Description":["Punan Merap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pud","Description":["Punan Aput"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pue","Description":["Puelche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puf","Description":["Punan Merah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pug","Description":["Phuie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pui","Description":["Puinave"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puj","Description":["Punan Tubu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puk","Description":["Pu Ko"],"Added":"2009-07-29","Deprecated":"2017-02-23"},{"Type":"language","Subtag":"pum","Description":["Puma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puo","Description":["Puoc"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pup","Description":["Pulabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puq","Description":["Puquina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pur","Description":["Puruborá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"put","Description":["Putoh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puu","Description":["Punu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puw","Description":["Puluwatese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pux","Description":["Puare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puy","Description":["Purisimeño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"puz","Description":["Purum Naga"],"Added":"2009-07-29","Deprecated":"2014-02-28","Preferred-Value":"pub"},{"Type":"language","Subtag":"pwa","Description":["Pawaia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pwb","Description":["Panawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pwg","Description":["Gapapaiwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pwi","Description":["Patwin"],"Added":"2013-09-10"},{"Type":"language","Subtag":"pwm","Description":["Molbog"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pwn","Description":["Paiwan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pwo","Description":["Pwo Western Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pwr","Description":["Powari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pww","Description":["Pwo Northern Karen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pxm","Description":["Quetzaltepec Mixe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pye","Description":["Pye Krumen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pym","Description":["Fyam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pyn","Description":["Poyanáwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pys","Description":["Paraguayan Sign Language","Lengua de Señas del Paraguay"],"Added":"2010-03-11"},{"Type":"language","Subtag":"pyu","Description":["Puyuma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pyx","Description":["Pyu (Myanmar)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pyy","Description":["Pyen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"pzn","Description":["Para Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qaa..qtz","Description":["Private use"],"Added":"2005-10-16","Scope":"private-use"},{"Type":"language","Subtag":"qua","Description":["Quapaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qub","Description":["Huallaga Huánuco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quc","Description":["K\'iche\'","Quiché"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qud","Description":["Calderón Highland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quf","Description":["Lambayeque Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qug","Description":["Chimborazo Highland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quh","Description":["South Bolivian Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qui","Description":["Quileute"],"Added":"2009-07-29"},{"Type":"language","Subtag":"quk","Description":["Chachapoyas Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qul","Description":["North Bolivian Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qum","Description":["Sipacapense"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qun","Description":["Quinault"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qup","Description":["Southern Pastaza Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quq","Description":["Quinqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qur","Description":["Yanahuanca Pasco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qus","Description":["Santiago del Estero Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quv","Description":["Sacapulteco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"quw","Description":["Tena Lowland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qux","Description":["Yauyos Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quy","Description":["Ayacucho Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"quz","Description":["Cusco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qva","Description":["Ambo-Pasco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvc","Description":["Cajamarca Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qve","Description":["Eastern Apurímac Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvh","Description":["Huamalíes-Dos de Mayo Huánuco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvi","Description":["Imbabura Highland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvj","Description":["Loja Highland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvl","Description":["Cajatambo North Lima Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvm","Description":["Margos-Yarowilca-Lauricocha Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvn","Description":["North Junín Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvo","Description":["Napo Lowland Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvp","Description":["Pacaraos Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvs","Description":["San Martín Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvw","Description":["Huaylla Wanca Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qvy","Description":["Queyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qvz","Description":["Northern Pastaza Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qwa","Description":["Corongo Ancash Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qwc","Description":["Classical Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qwe","Description":["Quechuan (family)"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"qwh","Description":["Huaylas Ancash Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qwm","Description":["Kuman (Russia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qws","Description":["Sihuas Ancash Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qwt","Description":["Kwalhioqua-Tlatskanai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qxa","Description":["Chiquián Ancash Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxc","Description":["Chincha Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxh","Description":["Panao Huánuco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxl","Description":["Salasaca Highland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxn","Description":["Northern Conchucos Ancash Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxo","Description":["Southern Conchucos Ancash Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxp","Description":["Puno Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxq","Description":["Qashqa\'i"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qxr","Description":["Cañar Highland Quichua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxs","Description":["Southern Qiang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qxt","Description":["Santa Ana de Tusi Pasco Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxu","Description":["Arequipa-La Unión Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qxw","Description":["Jauja Wanca Quechua"],"Added":"2009-07-29","Macrolanguage":"qu"},{"Type":"language","Subtag":"qya","Description":["Quenya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"qyp","Description":["Quiripi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"raa","Description":["Dungmali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rab","Description":["Camling"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rac","Description":["Rasawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rad","Description":["Rade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"raf","Description":["Western Meohang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rag","Description":["Logooli","Lulogooli"],"Added":"2009-07-29","Macrolanguage":"luy"},{"Type":"language","Subtag":"rah","Description":["Rabha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rai","Description":["Ramoaaina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"raj","Description":["Rajasthani"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"rak","Description":["Tulu-Bohuai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ral","Description":["Ralte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ram","Description":["Canela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ran","Description":["Riantana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rao","Description":["Rao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rap","Description":["Rapanui"],"Added":"2005-10-16"},{"Type":"language","Subtag":"raq","Description":["Saam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rar","Description":["Rarotongan","Cook Islands Maori"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ras","Description":["Tegali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rat","Description":["Razajerdi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rau","Description":["Raute"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rav","Description":["Sampang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"raw","Description":["Rawang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rax","Description":["Rang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ray","Description":["Rapa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"raz","Description":["Rahambuu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rbb","Description":["Rumai Palaung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rbk","Description":["Northern Bontok"],"Added":"2010-03-11","Macrolanguage":"bnc"},{"Type":"language","Subtag":"rbl","Description":["Miraya Bikol"],"Added":"2010-03-11","Macrolanguage":"bik"},{"Type":"language","Subtag":"rbp","Description":["Barababaraba"],"Added":"2012-08-12"},{"Type":"language","Subtag":"rcf","Description":["Réunion Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rdb","Description":["Rudbari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rea","Description":["Rerau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"reb","Description":["Rembong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ree","Description":["Rejang Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"reg","Description":["Kara (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rei","Description":["Reli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rej","Description":["Rejang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rel","Description":["Rendille"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rem","Description":["Remo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ren","Description":["Rengao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rer","Description":["Rer Bare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"res","Description":["Reshe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ret","Description":["Retta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rey","Description":["Reyesano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rga","Description":["Roria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rge","Description":["Romano-Greek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rgk","Description":["Rangkas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rgn","Description":["Romagnol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rgr","Description":["Resígaro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rgs","Description":["Southern Roglai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rgu","Description":["Ringgou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rhg","Description":["Rohingya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rhp","Description":["Yahang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ria","Description":["Riang (India)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rie","Description":["Rien"],"Added":"2009-07-29","Deprecated":"2017-02-23"},{"Type":"language","Subtag":"rif","Description":["Tarifit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ril","Description":["Riang Lang","Riang (Myanmar)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rim","Description":["Nyaturu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rin","Description":["Nungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rir","Description":["Ribun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rit","Description":["Ritharrngu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"riu","Description":["Riung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rjg","Description":["Rajong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rji","Description":["Raji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rjs","Description":["Rajbanshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rka","Description":["Kraol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rkb","Description":["Rikbaktsa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rkh","Description":["Rakahanga-Manihiki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rki","Description":["Rakhine"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rkm","Description":["Marka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rkt","Description":["Rangpuri","Kamta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rkw","Description":["Arakwal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"rma","Description":["Rama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmb","Description":["Rembarrnga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmc","Description":["Carpathian Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmd","Description":["Traveller Danish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rme","Description":["Angloromani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmf","Description":["Kalo Finnish Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmg","Description":["Traveller Norwegian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmh","Description":["Murkim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmi","Description":["Lomavren"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmk","Description":["Romkun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rml","Description":["Baltic Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmm","Description":["Roma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmn","Description":["Balkan Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmo","Description":["Sinte Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmp","Description":["Rempi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmq","Description":["Caló"],"Added":"2010-03-11"},{"Type":"language","Subtag":"rmr","Description":["Caló"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see emx, rmq"]},{"Type":"language","Subtag":"rms","Description":["Romanian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmt","Description":["Domari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmu","Description":["Tavringer Romani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmv","Description":["Romanova"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmw","Description":["Welsh Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmx","Description":["Romam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rmy","Description":["Vlax Romani"],"Added":"2009-07-29","Macrolanguage":"rom"},{"Type":"language","Subtag":"rmz","Description":["Marma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rna","Description":["Runa"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"rnd","Description":["Ruund"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rng","Description":["Ronga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rnl","Description":["Ranglong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rnn","Description":["Roon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rnp","Description":["Rongpo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rnr","Description":["Nari Nari"],"Added":"2012-08-20"},{"Type":"language","Subtag":"rnw","Description":["Rungwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"roa","Description":["Romance languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"rob","Description":["Tae\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"roc","Description":["Cacgia Roglai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rod","Description":["Rogo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"roe","Description":["Ronji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rof","Description":["Rombo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rog","Description":["Northern Roglai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rol","Description":["Romblomanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rom","Description":["Romany"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"roo","Description":["Rotokas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rop","Description":["Kriol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ror","Description":["Rongga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rou","Description":["Runga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"row","Description":["Dela-Oenale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rpn","Description":["Repanbitip"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rpt","Description":["Rapting"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rri","Description":["Ririo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rro","Description":["Waima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rrt","Description":["Arritinngithigh"],"Added":"2012-08-12"},{"Type":"language","Subtag":"rsb","Description":["Romano-Serbian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rsi","Description":["Rennellese Sign Language"],"Added":"2009-07-29","Deprecated":"2017-02-23"},{"Type":"language","Subtag":"rsl","Description":["Russian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rsm","Description":["Miriwoong Sign Language"],"Added":"2016-05-30"},{"Type":"language","Subtag":"rtc","Description":["Rungtu Chin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"rth","Description":["Ratahan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rtm","Description":["Rotuman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rts","Description":["Yurats"],"Added":"2015-02-12"},{"Type":"language","Subtag":"rtw","Description":["Rathawi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rub","Description":["Gungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruc","Description":["Ruuli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rue","Description":["Rusyn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruf","Description":["Luguru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rug","Description":["Roviana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruh","Description":["Ruga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rui","Description":["Rufiji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruk","Description":["Che"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruo","Description":["Istro Romanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rup","Description":["Macedo-Romanian","Aromanian","Arumanian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ruq","Description":["Megleno Romanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rut","Description":["Rutul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruu","Description":["Lanas Lobu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruy","Description":["Mala (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ruz","Description":["Ruma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rwa","Description":["Rawo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rwk","Description":["Rwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rwm","Description":["Amba (Uganda)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rwo","Description":["Rawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rwr","Description":["Marwari (India)"],"Added":"2009-07-29","Macrolanguage":"mwr"},{"Type":"language","Subtag":"rxd","Description":["Ngardi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"rxw","Description":["Karuwali","Garuwali"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ryn","Description":["Northern Amami-Oshima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rys","Description":["Yaeyama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ryu","Description":["Central Okinawan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"rzh","Description":["Rāziḥī"],"Added":"2016-05-30"},{"Type":"language","Subtag":"saa","Description":["Saba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sab","Description":["Buglere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sac","Description":["Meskwaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sad","Description":["Sandawe"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sae","Description":["Sabanê"],"Added":"2009-07-29"},{"Type":"language","Subtag":"saf","Description":["Safaliba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sah","Description":["Yakut"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sai","Description":["South American Indian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"saj","Description":["Sahu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sak","Description":["Sake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sal","Description":["Salishan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"sam","Description":["Samaritan Aramaic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sao","Description":["Sause"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sap","Description":["Sanapaná"],"Added":"2009-07-29","Deprecated":"2014-02-28","Comments":["see aqt, spn"]},{"Type":"language","Subtag":"saq","Description":["Samburu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sar","Description":["Saraveca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sas","Description":["Sasak"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sat","Description":["Santali"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sau","Description":["Saleman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sav","Description":["Saafi-Saafi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"saw","Description":["Sawi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sax","Description":["Sa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"say","Description":["Saya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"saz","Description":["Saurashtra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sba","Description":["Ngambay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbb","Description":["Simbo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbc","Description":["Kele (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbd","Description":["Southern Samo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbe","Description":["Saliba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbf","Description":["Chabu","Shabo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbg","Description":["Seget"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbh","Description":["Sori-Harengan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbi","Description":["Seti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbj","Description":["Surbakhal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbk","Description":["Safwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbl","Description":["Botolan Sambal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbm","Description":["Sagala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbn","Description":["Sindhi Bhil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbo","Description":["Sabüm"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbp","Description":["Sangu (Tanzania)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbq","Description":["Sileibi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbr","Description":["Sembakung Murut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbs","Description":["Subiya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbt","Description":["Kimki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbu","Description":["Stod Bhoti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbv","Description":["Sabine"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbw","Description":["Simba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbx","Description":["Seberuang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sby","Description":["Soli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sbz","Description":["Sara Kaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sca","Description":["Sansu"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"hle"},{"Type":"language","Subtag":"scb","Description":["Chut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sce","Description":["Dongxiang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scf","Description":["San Miguel Creole French"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scg","Description":["Sanggau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sch","Description":["Sakachep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sci","Description":["Sri Lankan Creole Malay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sck","Description":["Sadri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scl","Description":["Shina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scn","Description":["Sicilian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sco","Description":["Scots"],"Added":"2005-10-16"},{"Type":"language","Subtag":"scp","Description":["Hyolmo","Helambu Sherpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scq","Description":["Sa\'och"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scs","Description":["North Slavey"],"Added":"2009-07-29","Macrolanguage":"den"},{"Type":"language","Subtag":"sct","Description":["Southern Katang"],"Added":"2017-02-23"},{"Type":"language","Subtag":"scu","Description":["Shumcho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scv","Description":["Sheni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scw","Description":["Sha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"scx","Description":["Sicel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sda","Description":["Toraja-Sa\'dan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdb","Description":["Shabak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdc","Description":["Sassarese Sardinian"],"Added":"2009-07-29","Macrolanguage":"sc"},{"Type":"language","Subtag":"sde","Description":["Surubu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdf","Description":["Sarli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdg","Description":["Savi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdh","Description":["Southern Kurdish"],"Added":"2009-07-29","Macrolanguage":"ku"},{"Type":"language","Subtag":"sdj","Description":["Suundi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdk","Description":["Sos Kundi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdl","Description":["Saudi Arabian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdm","Description":["Semandang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdn","Description":["Gallurese Sardinian"],"Added":"2009-07-29","Macrolanguage":"sc"},{"Type":"language","Subtag":"sdo","Description":["Bukar-Sadung Bidayuh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdp","Description":["Sherdukpen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdr","Description":["Oraon Sadri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sds","Description":["Sened"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdt","Description":["Shuadit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdu","Description":["Sarudu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdv","Description":["Eastern Sudanic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"sdx","Description":["Sibu Melanau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sdz","Description":["Sallands"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sea","Description":["Semai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"seb","Description":["Shempire Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sec","Description":["Sechelt"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sed","Description":["Sedang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"see","Description":["Seneca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sef","Description":["Cebaara Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"seg","Description":["Segeju"],"Added":"2009-07-29"},{"Type":"language","Subtag":"seh","Description":["Sena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sei","Description":["Seri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sej","Description":["Sene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sek","Description":["Sekani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sel","Description":["Selkup"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sem","Description":["Semitic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"sen","Description":["Nanerigé Sénoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"seo","Description":["Suarmin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sep","Description":["Sìcìté Sénoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"seq","Description":["Senara Sénoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ser","Description":["Serrano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ses","Description":["Koyraboro Senni Songhai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"set","Description":["Sentani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"seu","Description":["Serui-Laut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sev","Description":["Nyarafolo Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sew","Description":["Sewa Bay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sey","Description":["Secoya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sez","Description":["Senthang Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sfb","Description":["Langue des signes de Belgique Francophone","French Belgian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sfe","Description":["Eastern Subanen"],"Added":"2012-08-12"},{"Type":"language","Subtag":"sfm","Description":["Small Flowery Miao"],"Added":"2009-07-29","Macrolanguage":"hmn"},{"Type":"language","Subtag":"sfs","Description":["South African Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sfw","Description":["Sehwi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sga","Description":["Old Irish (to 900)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sgb","Description":["Mag-antsi Ayta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgc","Description":["Kipsigis"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"sgd","Description":["Surigaonon"],"Added":"2010-03-11"},{"Type":"language","Subtag":"sge","Description":["Segai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgg","Description":["Swiss-German Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgh","Description":["Shughni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgi","Description":["Suga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgj","Description":["Surgujia"],"Added":"2012-08-12"},{"Type":"language","Subtag":"sgk","Description":["Sangkong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgl","Description":["Sanglechi-Ishkashimi"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see isk, sgy"]},{"Type":"language","Subtag":"sgm","Description":["Singa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgn","Description":["Sign languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"sgo","Description":["Songa"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"sgp","Description":["Singpho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgr","Description":["Sangisari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgs","Description":["Samogitian"],"Added":"2010-07-26"},{"Type":"language","Subtag":"sgt","Description":["Brokpake"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgu","Description":["Salas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgw","Description":["Sebat Bet Gurage"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgx","Description":["Sierra Leone Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sgy","Description":["Sanglechi"],"Added":"2010-03-11"},{"Type":"language","Subtag":"sgz","Description":["Sursurunga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sha","Description":["Shall-Zwall"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shb","Description":["Ninam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shc","Description":["Sonde"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shd","Description":["Kundal Shahi"],"Added":"2010-03-11"},{"Type":"language","Subtag":"she","Description":["Sheko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shg","Description":["Shua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shh","Description":["Shoshoni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shi","Description":["Tachelhit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shj","Description":["Shatt"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shk","Description":["Shilluk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shl","Description":["Shendu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shm","Description":["Shahrudi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shn","Description":["Shan"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sho","Description":["Shanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shp","Description":["Shipibo-Conibo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shq","Description":["Sala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shr","Description":["Shi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shs","Description":["Shuswap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sht","Description":["Shasta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shu","Description":["Chadian Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"shv","Description":["Shehri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shw","Description":["Shwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shx","Description":["She"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shy","Description":["Tachawit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"shz","Description":["Syenara Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sia","Description":["Akkala Sami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sib","Description":["Sebop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sid","Description":["Sidamo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sie","Description":["Simaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sif","Description":["Siamou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sig","Description":["Paasaal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sih","Description":["Zire","Sîshëë"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sii","Description":["Shom Peng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sij","Description":["Numbami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sik","Description":["Sikiana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sil","Description":["Tumulung Sisaala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sim","Description":["Mende (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sio","Description":["Siouan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"sip","Description":["Sikkimese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"siq","Description":["Sonia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sir","Description":["Siri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sis","Description":["Siuslaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sit","Description":["Sino-Tibetan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"siu","Description":["Sinagen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"siv","Description":["Sumariup"],"Added":"2009-07-29"},{"Type":"language","Subtag":"siw","Description":["Siwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"six","Description":["Sumau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"siy","Description":["Sivandi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"siz","Description":["Siwi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sja","Description":["Epena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjb","Description":["Sajau Basap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjd","Description":["Kildin Sami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sje","Description":["Pite Sami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjg","Description":["Assangori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjk","Description":["Kemi Sami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjl","Description":["Sajalong","Miji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjm","Description":["Mapun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjn","Description":["Sindarin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjo","Description":["Xibe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjp","Description":["Surjapuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjr","Description":["Siar-Lak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjs","Description":["Senhaja De Srair"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjt","Description":["Ter Sami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sju","Description":["Ume Sami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sjw","Description":["Shawnee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ska","Description":["Skagit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skb","Description":["Saek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skc","Description":["Ma Manda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skd","Description":["Southern Sierra Miwok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ske","Description":["Seke (Vanuatu)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skf","Description":["Sakirabiá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skg","Description":["Sakalava Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"skh","Description":["Sikule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ski","Description":["Sika"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skj","Description":["Seke (Nepal)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skk","Description":["Sok"],"Added":"2009-07-29","Deprecated":"2017-02-23","Preferred-Value":"oyb"},{"Type":"language","Subtag":"skm","Description":["Kutong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skn","Description":["Kolibugan Subanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sko","Description":["Seko Tengah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skp","Description":["Sekapan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skq","Description":["Sininkere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skr","Description":["Saraiki","Seraiki"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"sks","Description":["Maia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skt","Description":["Sakata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sku","Description":["Sakao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skv","Description":["Skou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skw","Description":["Skepi Creole Dutch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skx","Description":["Seko Padang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sky","Description":["Sikaiana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"skz","Description":["Sekar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sla","Description":["Slavic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"slc","Description":["Sáliba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sld","Description":["Sissala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sle","Description":["Sholaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slf","Description":["Swiss-Italian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slg","Description":["Selungai Murut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slh","Description":["Southern Puget Sound Salish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sli","Description":["Lower Silesian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slj","Description":["Salumá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sll","Description":["Salt-Yui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slm","Description":["Pangutaran Sama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sln","Description":["Salinan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slp","Description":["Lamaholot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slq","Description":["Salchuq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slr","Description":["Salar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sls","Description":["Singapore Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slt","Description":["Sila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slu","Description":["Selaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slw","Description":["Sialum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slx","Description":["Salampasu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sly","Description":["Selayar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"slz","Description":["Ma\'ya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sma","Description":["Southern Sami"],"Added":"2005-10-16"},{"Type":"language","Subtag":"smb","Description":["Simbari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smc","Description":["Som"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smd","Description":["Sama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smf","Description":["Auwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smg","Description":["Simbali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smh","Description":["Samei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smi","Description":["Sami languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"smj","Description":["Lule Sami"],"Added":"2005-10-16"},{"Type":"language","Subtag":"smk","Description":["Bolinao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sml","Description":["Central Sama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smm","Description":["Musasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smn","Description":["Inari Sami"],"Added":"2005-10-16"},{"Type":"language","Subtag":"smp","Description":["Samaritan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smq","Description":["Samo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smr","Description":["Simeulue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sms","Description":["Skolt Sami"],"Added":"2005-10-16"},{"Type":"language","Subtag":"smt","Description":["Simte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smu","Description":["Somray"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smv","Description":["Samvedi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smw","Description":["Sumbawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smx","Description":["Samba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smy","Description":["Semnani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"smz","Description":["Simeku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snb","Description":["Sebuyau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snc","Description":["Sinaugoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sne","Description":["Bau Bidayuh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snf","Description":["Noon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sng","Description":["Sanga (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snh","Description":["Shinabo"],"Added":"2009-07-29","Deprecated":"2017-02-23"},{"Type":"language","Subtag":"sni","Description":["Sensi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snj","Description":["Riverain Sango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snk","Description":["Soninke"],"Added":"2005-10-16"},{"Type":"language","Subtag":"snl","Description":["Sangil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snm","Description":["Southern Ma\'di"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snn","Description":["Siona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sno","Description":["Snohomish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snp","Description":["Siane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snq","Description":["Sangu (Gabon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snr","Description":["Sihan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sns","Description":["South West Bay","Nahavaq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snu","Description":["Senggi","Viid"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snv","Description":["Sa\'ban"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snw","Description":["Selee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snx","Description":["Sam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sny","Description":["Saniyo-Hiyewe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"snz","Description":["Kou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soa","Description":["Thai Song"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sob","Description":["Sobei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soc","Description":["So (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sod","Description":["Songoora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soe","Description":["Songomeno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sog","Description":["Sogdian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"soh","Description":["Aka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soi","Description":["Sonha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soj","Description":["Soi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sok","Description":["Sokoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sol","Description":["Solos"],"Added":"2009-07-29"},{"Type":"language","Subtag":"son","Description":["Songhai languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"soo","Description":["Songo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sop","Description":["Songe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soq","Description":["Kanasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sor","Description":["Somrai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sos","Description":["Seeku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sou","Description":["Southern Thai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sov","Description":["Sonsorol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sow","Description":["Sowanda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sox","Description":["Swo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soy","Description":["Miyobe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"soz","Description":["Temi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spb","Description":["Sepa (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spc","Description":["Sapé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spd","Description":["Saep"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spe","Description":["Sepa (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spg","Description":["Sian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spi","Description":["Saponi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spk","Description":["Sengo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spl","Description":["Selepet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spm","Description":["Akukem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spn","Description":["Sanapaná"],"Added":"2014-02-28"},{"Type":"language","Subtag":"spo","Description":["Spokane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spp","Description":["Supyire Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spq","Description":["Loreto-Ucayali Spanish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spr","Description":["Saparua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sps","Description":["Saposa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spt","Description":["Spiti Bhoti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spu","Description":["Sapuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spv","Description":["Sambalpuri","Kosli"],"Added":"2012-08-12","Macrolanguage":"or"},{"Type":"language","Subtag":"spx","Description":["South Picene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"spy","Description":["Sabaot"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"sqa","Description":["Shama-Sambuga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqh","Description":["Shau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqj","Description":["Albanian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"sqk","Description":["Albanian Sign Language"],"Added":"2012-08-12"},{"Type":"language","Subtag":"sqm","Description":["Suma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqn","Description":["Susquehannock"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqo","Description":["Sorkhei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqq","Description":["Sou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqr","Description":["Siculo Arabic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqs","Description":["Sri Lankan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sqt","Description":["Soqotri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"squ","Description":["Squamish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sra","Description":["Saruga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srb","Description":["Sora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"src","Description":["Logudorese Sardinian"],"Added":"2009-07-29","Macrolanguage":"sc"},{"Type":"language","Subtag":"sre","Description":["Sara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srf","Description":["Nafi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srg","Description":["Sulod"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srh","Description":["Sarikoli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sri","Description":["Siriano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srk","Description":["Serudung Murut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srl","Description":["Isirawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srm","Description":["Saramaccan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srn","Description":["Sranan Tongo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sro","Description":["Campidanese Sardinian"],"Added":"2009-07-29","Macrolanguage":"sc"},{"Type":"language","Subtag":"srq","Description":["Sirionó"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srr","Description":["Serer"],"Added":"2005-10-16"},{"Type":"language","Subtag":"srs","Description":["Sarsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srt","Description":["Sauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sru","Description":["Suruí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srv","Description":["Southern Sorsoganon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srw","Description":["Serua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srx","Description":["Sirmauri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sry","Description":["Sera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"srz","Description":["Shahmirzadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssa","Description":["Nilo-Saharan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ssb","Description":["Southern Sama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssc","Description":["Suba-Simbiti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssd","Description":["Siroi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sse","Description":["Balangingi","Bangingih Sama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssf","Description":["Thao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssg","Description":["Seimat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssh","Description":["Shihhi Arabic"],"Added":"2009-07-29","Macrolanguage":"ar"},{"Type":"language","Subtag":"ssi","Description":["Sansi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssj","Description":["Sausi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssk","Description":["Sunam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssl","Description":["Western Sisaala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssm","Description":["Semnam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssn","Description":["Waata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sso","Description":["Sissano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssp","Description":["Spanish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssq","Description":["So\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssr","Description":["Swiss-French Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sss","Description":["Sô"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sst","Description":["Sinasina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssu","Description":["Susuami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssv","Description":["Shark Bay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssx","Description":["Samberigi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssy","Description":["Saho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ssz","Description":["Sengseng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sta","Description":["Settla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stb","Description":["Northern Subanen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"std","Description":["Sentinel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ste","Description":["Liana-Seti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stf","Description":["Seta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stg","Description":["Trieng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sth","Description":["Shelta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sti","Description":["Bulo Stieng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stj","Description":["Matya Samo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stk","Description":["Arammba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stl","Description":["Stellingwerfs"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stm","Description":["Setaman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stn","Description":["Owa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sto","Description":["Stoney"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stp","Description":["Southeastern Tepehuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stq","Description":["Saterfriesisch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"str","Description":["Straits Salish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sts","Description":["Shumashti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stt","Description":["Budeh Stieng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stu","Description":["Samtao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stv","Description":["Silt\'e"],"Added":"2009-07-29"},{"Type":"language","Subtag":"stw","Description":["Satawalese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sty","Description":["Siberian Tatar"],"Added":"2013-09-10"},{"Type":"language","Subtag":"sua","Description":["Sulka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sub","Description":["Suku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"suc","Description":["Western Subanon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sue","Description":["Suena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sug","Description":["Suganga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sui","Description":["Suki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"suj","Description":["Shubi"],"Added":"2009-07-29","Comments":["see also xsj"]},{"Type":"language","Subtag":"suk","Description":["Sukuma"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sul","Description":["Surigaonon"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see sgd, tgn"]},{"Type":"language","Subtag":"sum","Description":["Sumo-Mayangna"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see ulw, yan"]},{"Type":"language","Subtag":"suq","Description":["Suri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sur","Description":["Mwaghavul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sus","Description":["Susu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"sut","Description":["Subtiaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"suv","Description":["Puroik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"suw","Description":["Sumbwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sux","Description":["Sumerian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"suy","Description":["Suyá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"suz","Description":["Sunwar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sva","Description":["Svan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"svb","Description":["Ulau-Suain"],"Added":"2009-07-29"},{"Type":"language","Subtag":"svc","Description":["Vincentian Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sve","Description":["Serili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"svk","Description":["Slovakian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"svm","Description":["Slavomolisano"],"Added":"2013-09-10"},{"Type":"language","Subtag":"svr","Description":["Savara"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"svs","Description":["Savosavo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"svx","Description":["Skalvian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swb","Description":["Maore Comorian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swc","Description":["Congo Swahili"],"Added":"2009-07-29","Macrolanguage":"sw"},{"Type":"language","Subtag":"swf","Description":["Sere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swg","Description":["Swabian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swh","Description":["Swahili (individual language)","Kiswahili"],"Added":"2009-07-29","Macrolanguage":"sw"},{"Type":"language","Subtag":"swi","Description":["Sui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swj","Description":["Sira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swk","Description":["Malawi Sena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swl","Description":["Swedish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swm","Description":["Samosa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swn","Description":["Sawknah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swo","Description":["Shanenawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swp","Description":["Suau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swq","Description":["Sharwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swr","Description":["Saweru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sws","Description":["Seluwasan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swt","Description":["Sawila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swu","Description":["Suwawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swv","Description":["Shekhawati"],"Added":"2009-07-29","Macrolanguage":"mwr"},{"Type":"language","Subtag":"sww","Description":["Sowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swx","Description":["Suruahá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"swy","Description":["Sarua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxb","Description":["Suba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxc","Description":["Sicanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxe","Description":["Sighu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxg","Description":["Shuhi","Shixing"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxk","Description":["Southern Kalapuya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxl","Description":["Selian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxm","Description":["Samre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxn","Description":["Sangir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxo","Description":["Sorothaptic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxr","Description":["Saaroa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxs","Description":["Sasaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxu","Description":["Upper Saxon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sxw","Description":["Saxwe Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sya","Description":["Siang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syb","Description":["Central Subanen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syc","Description":["Classical Syriac"],"Added":"2007-04-03"},{"Type":"language","Subtag":"syd","Description":["Samoyedic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"syi","Description":["Seki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syk","Description":["Sukur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syl","Description":["Sylheti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sym","Description":["Maya Samo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syn","Description":["Senaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syo","Description":["Suoy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syr","Description":["Syriac"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"sys","Description":["Sinyar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syw","Description":["Kagate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"syx","Description":["Samay"],"Added":"2015-02-12"},{"Type":"language","Subtag":"syy","Description":["Al-Sayyid Bedouin Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sza","Description":["Semelai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szb","Description":["Ngalum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szc","Description":["Semaq Beri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szd","Description":["Seru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"sze","Description":["Seze"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szg","Description":["Sengele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szl","Description":["Silesian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szn","Description":["Sula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szp","Description":["Suabo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szs","Description":["Solomon Islands Sign Language"],"Added":"2017-02-23"},{"Type":"language","Subtag":"szv","Description":["Isu (Fako Division)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szw","Description":["Sawai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"szy","Description":["Sakizaya"],"Added":"2019-04-16"},{"Type":"language","Subtag":"taa","Description":["Lower Tanana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tab","Description":["Tabassaran"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tac","Description":["Lowland Tarahumara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tad","Description":["Tause"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tae","Description":["Tariana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"taf","Description":["Tapirapé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tag","Description":["Tagoi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tai","Description":["Tai languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"taj","Description":["Eastern Tamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tak","Description":["Tala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tal","Description":["Tal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tan","Description":["Tangale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tao","Description":["Yami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tap","Description":["Taabwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"taq","Description":["Tamasheq"],"Added":"2009-07-29","Macrolanguage":"tmh"},{"Type":"language","Subtag":"tar","Description":["Central Tarahumara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tas","Description":["Tay Boi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tau","Description":["Upper Tanana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tav","Description":["Tatuyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"taw","Description":["Tai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tax","Description":["Tamki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tay","Description":["Atayal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"taz","Description":["Tocho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tba","Description":["Aikanã"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbb","Description":["Tapeba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbc","Description":["Takia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbd","Description":["Kaki Ae"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbe","Description":["Tanimbili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbf","Description":["Mandara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbg","Description":["North Tairora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbh","Description":["Dharawal","Thurawal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbi","Description":["Gaam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbj","Description":["Tiang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbk","Description":["Calamian Tagbanwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbl","Description":["Tboli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbm","Description":["Tagbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbn","Description":["Barro Negro Tunebo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbo","Description":["Tawala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbp","Description":["Taworta","Diebroud"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbq","Description":["Tibeto-Burman languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"tbr","Description":["Tumtum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbs","Description":["Tanguat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbt","Description":["Tembo (Kitembo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbu","Description":["Tubar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbv","Description":["Tobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbw","Description":["Tagbanwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbx","Description":["Kapin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tby","Description":["Tabaru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tbz","Description":["Ditammari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tca","Description":["Ticuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcb","Description":["Tanacross"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcc","Description":["Datooga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcd","Description":["Tafi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tce","Description":["Southern Tutchone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcf","Description":["Malinaltepec Me\'phaa","Malinaltepec Tlapanec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcg","Description":["Tamagario"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tch","Description":["Turks And Caicos Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tci","Description":["Wára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tck","Description":["Tchitchege"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcl","Description":["Taman (Myanmar)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcm","Description":["Tanahmerah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcn","Description":["Tichurong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tco","Description":["Taungyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcp","Description":["Tawr Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcq","Description":["Kaiy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcs","Description":["Torres Strait Creole","Yumplatok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tct","Description":["T\'en"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcu","Description":["Southeastern Tarahumara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcw","Description":["Tecpatlán Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcx","Description":["Toda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcy","Description":["Tulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tcz","Description":["Thado Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tda","Description":["Tagdal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdb","Description":["Panchpargania"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdc","Description":["Emberá-Tadó"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdd","Description":["Tai Nüa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tde","Description":["Tiranige Diga Dogon"],"Added":"2010-03-11"},{"Type":"language","Subtag":"tdf","Description":["Talieng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdg","Description":["Western Tamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdh","Description":["Thulung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdi","Description":["Tomadino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdj","Description":["Tajio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdk","Description":["Tambas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdl","Description":["Sur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdm","Description":["Taruma"],"Added":"2016-05-30"},{"Type":"language","Subtag":"tdn","Description":["Tondano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdo","Description":["Teme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdq","Description":["Tita"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdr","Description":["Todrah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tds","Description":["Doutai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdt","Description":["Tetun Dili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdu","Description":["Tempasuk Dusun"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"dtp"},{"Type":"language","Subtag":"tdv","Description":["Toro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tdx","Description":["Tandroy-Mahafaly Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"tdy","Description":["Tadyawan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tea","Description":["Temiar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"teb","Description":["Tetete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tec","Description":["Terik"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"ted","Description":["Tepo Krumen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tee","Description":["Huehuetla Tepehua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tef","Description":["Teressa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"teg","Description":["Teke-Tege"],"Added":"2009-07-29"},{"Type":"language","Subtag":"teh","Description":["Tehuelche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tei","Description":["Torricelli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tek","Description":["Ibali Teke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tem","Description":["Timne"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"ten","Description":["Tama (Colombia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"teo","Description":["Teso"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tep","Description":["Tepecano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"teq","Description":["Temein"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ter","Description":["Tereno"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tes","Description":["Tengger"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tet","Description":["Tetum"],"Added":"2005-10-16"},{"Type":"language","Subtag":"teu","Description":["Soo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tev","Description":["Teor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tew","Description":["Tewa (USA)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tex","Description":["Tennet"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tey","Description":["Tulishi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tez","Description":["Tetserret"],"Added":"2018-03-08"},{"Type":"language","Subtag":"tfi","Description":["Tofin Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tfn","Description":["Tanaina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tfo","Description":["Tefaro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tfr","Description":["Teribe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tft","Description":["Ternate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tga","Description":["Sagalla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgb","Description":["Tobilung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgc","Description":["Tigak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgd","Description":["Ciwogai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tge","Description":["Eastern Gorkha Tamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgf","Description":["Chalikha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgg","Description":["Tangga"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see bjp, hrc, hrw"]},{"Type":"language","Subtag":"tgh","Description":["Tobagonian Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgi","Description":["Lawunuia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgj","Description":["Tagin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"tgn","Description":["Tandaganon"],"Added":"2010-03-11"},{"Type":"language","Subtag":"tgo","Description":["Sudest"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgp","Description":["Tangoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgq","Description":["Tring"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgr","Description":["Tareng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgs","Description":["Nume"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgt","Description":["Central Tagbanwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgu","Description":["Tanggu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgv","Description":["Tingui-Boto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgw","Description":["Tagwana Senoufo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgx","Description":["Tagish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgy","Description":["Togoyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tgz","Description":["Tagalaka"],"Added":"2012-08-12"},{"Type":"language","Subtag":"thc","Description":["Tai Hang Tong"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"tpo"},{"Type":"language","Subtag":"thd","Description":["Kuuk Thaayorre","Thayore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"the","Description":["Chitwania Tharu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thf","Description":["Thangmi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thh","Description":["Northern Tarahumara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thi","Description":["Tai Long"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thk","Description":["Tharaka","Kitharaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thl","Description":["Dangaura Tharu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thm","Description":["Aheu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thn","Description":["Thachanadan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thp","Description":["Thompson"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thq","Description":["Kochila Tharu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thr","Description":["Rana Tharu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ths","Description":["Thakali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tht","Description":["Tahltan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thu","Description":["Thuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thv","Description":["Tahaggart Tamahaq"],"Added":"2009-07-29","Macrolanguage":"tmh"},{"Type":"language","Subtag":"thw","Description":["Thudam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thx","Description":["The"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"oyb"},{"Type":"language","Subtag":"thy","Description":["Tha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"thz","Description":["Tayart Tamajeq"],"Added":"2009-07-29","Macrolanguage":"tmh"},{"Type":"language","Subtag":"tia","Description":["Tidikelt Tamazight"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tic","Description":["Tira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tid","Description":["Tidong"],"Added":"2009-07-29","Deprecated":"2016-05-30","Comments":["see itd, ntd"]},{"Type":"language","Subtag":"tie","Description":["Tingal"],"Added":"2009-07-29","Deprecated":"2011-08-16","Preferred-Value":"ras"},{"Type":"language","Subtag":"tif","Description":["Tifal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tig","Description":["Tigre"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tih","Description":["Timugon Murut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tii","Description":["Tiene"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tij","Description":["Tilung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tik","Description":["Tikar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"til","Description":["Tillamook"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tim","Description":["Timbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tin","Description":["Tindi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tio","Description":["Teop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tip","Description":["Trimuris"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tiq","Description":["Tiéfo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tis","Description":["Masadiit Itneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tit","Description":["Tinigua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tiu","Description":["Adasen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tiv","Description":["Tiv"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tiw","Description":["Tiwi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tix","Description":["Southern Tiwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tiy","Description":["Tiruray"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tiz","Description":["Tai Hongjin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tja","Description":["Tajuasohn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tjg","Description":["Tunjung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tji","Description":["Northern Tujia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tjj","Description":["Tjungundji"],"Added":"2019-04-16"},{"Type":"language","Subtag":"tjl","Description":["Tai Laing"],"Added":"2012-08-12"},{"Type":"language","Subtag":"tjm","Description":["Timucua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tjn","Description":["Tonjon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tjo","Description":["Temacine Tamazight"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tjp","Description":["Tjupany"],"Added":"2019-04-16"},{"Type":"language","Subtag":"tjs","Description":["Southern Tujia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tju","Description":["Tjurruru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tjw","Description":["Djabwurrung"],"Added":"2013-09-10"},{"Type":"language","Subtag":"tka","Description":["Truká"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkb","Description":["Buksa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkd","Description":["Tukudede"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tke","Description":["Takwane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkf","Description":["Tukumanféd"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkg","Description":["Tesaka Malagasy"],"Added":"2011-08-16","Macrolanguage":"mg"},{"Type":"language","Subtag":"tkk","Description":["Takpa"],"Added":"2009-07-29","Deprecated":"2011-08-16","Preferred-Value":"twm"},{"Type":"language","Subtag":"tkl","Description":["Tokelau"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"tkm","Description":["Takelma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkn","Description":["Toku-No-Shima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkp","Description":["Tikopia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkq","Description":["Tee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkr","Description":["Tsakhur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tks","Description":["Takestani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkt","Description":["Kathoriya Tharu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tku","Description":["Upper Necaxa Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkv","Description":["Mur Pano"],"Added":"2014-02-28"},{"Type":"language","Subtag":"tkw","Description":["Teanu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkx","Description":["Tangko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tkz","Description":["Takua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tla","Description":["Southwestern Tepehuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlb","Description":["Tobelo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlc","Description":["Yecuatla Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tld","Description":["Talaud"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlf","Description":["Telefol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlg","Description":["Tofanma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlh","Description":["Klingon","tlhIngan Hol"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tli","Description":["Tlingit"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tlj","Description":["Talinga-Bwisi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlk","Description":["Taloki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tll","Description":["Tetela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlm","Description":["Tolomako"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tln","Description":["Talondo\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlo","Description":["Talodi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlp","Description":["Filomena Mata-Coahuitlán Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlq","Description":["Tai Loi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlr","Description":["Talise"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tls","Description":["Tambotalo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlt","Description":["Sou Nama","Teluti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlu","Description":["Tulehu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlv","Description":["Taliabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tlw","Description":["South Wemale"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"weo"},{"Type":"language","Subtag":"tlx","Description":["Khehek"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tly","Description":["Talysh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tma","Description":["Tama (Chad)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmb","Description":["Katbol","Avava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmc","Description":["Tumak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmd","Description":["Haruai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tme","Description":["Tremembé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmf","Description":["Toba-Maskoy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmg","Description":["Ternateño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmh","Description":["Tamashek"],"Added":"2005-10-16","Suppress-Script":"Latn","Scope":"macrolanguage"},{"Type":"language","Subtag":"tmi","Description":["Tutuba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmj","Description":["Samarokena"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmk","Description":["Northwestern Tamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tml","Description":["Tamnim Citak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmm","Description":["Tai Thanh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmn","Description":["Taman (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmo","Description":["Temoq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmp","Description":["Tai Mène"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"tyj"},{"Type":"language","Subtag":"tmq","Description":["Tumleo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmr","Description":["Jewish Babylonian Aramaic (ca. 200-1200 CE)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tms","Description":["Tima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmt","Description":["Tasmate"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmu","Description":["Iau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmv","Description":["Tembo (Motembo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmw","Description":["Temuan"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"tmy","Description":["Tami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tmz","Description":["Tamanaku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tna","Description":["Tacana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnb","Description":["Western Tunebo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnc","Description":["Tanimuca-Retuarã"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnd","Description":["Angosturas Tunebo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tne","Description":["Tinoc Kallahan"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"kak"},{"Type":"language","Subtag":"tnf","Description":["Tangshewi"],"Added":"2009-07-29","Deprecated":"2010-03-11","Preferred-Value":"prs"},{"Type":"language","Subtag":"tng","Description":["Tobanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnh","Description":["Maiani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tni","Description":["Tandia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnk","Description":["Kwamera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnl","Description":["Lenakel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnm","Description":["Tabla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnn","Description":["North Tanna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tno","Description":["Toromono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnp","Description":["Whitesands"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnq","Description":["Taino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnr","Description":["Ménik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tns","Description":["Tenis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnt","Description":["Tontemboan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnu","Description":["Tay Khang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnv","Description":["Tangchangya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnw","Description":["Tonsawang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnx","Description":["Tanema"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tny","Description":["Tongwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tnz","Description":["Ten\'edn"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tob","Description":["Toba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toc","Description":["Coyutla Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tod","Description":["Toma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toe","Description":["Tomedes"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"tof","Description":["Gizrra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tog","Description":["Tonga (Nyasa)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"toh","Description":["Gitonga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toi","Description":["Tonga (Zambia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toj","Description":["Tojolabal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tol","Description":["Tolowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tom","Description":["Tombulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"too","Description":["Xicotepec De Juárez Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"top","Description":["Papantla Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toq","Description":["Toposa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tor","Description":["Togbo-Vara Banda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tos","Description":["Highland Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tou","Description":["Tho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tov","Description":["Upper Taromi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tow","Description":["Jemez"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tox","Description":["Tobian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toy","Description":["Topoiyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"toz","Description":["To"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpa","Description":["Taupota"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpc","Description":["Azoyú Me\'phaa","Azoyú Tlapanec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpe","Description":["Tippera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpf","Description":["Tarpia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpg","Description":["Kula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpi","Description":["Tok Pisin"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"tpj","Description":["Tapieté"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpk","Description":["Tupinikin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpl","Description":["Tlacoapa Me\'phaa","Tlacoapa Tlapanec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpm","Description":["Tampulma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpn","Description":["Tupinambá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpo","Description":["Tai Pao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpp","Description":["Pisaflores Tepehua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpq","Description":["Tukpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpr","Description":["Tuparí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpt","Description":["Tlachichilco Tepehua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpu","Description":["Tampuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpv","Description":["Tanapag"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpw","Description":["Tupí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpx","Description":["Acatepec Me\'phaa","Acatepec Tlapanec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpy","Description":["Trumai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tpz","Description":["Tinputz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqb","Description":["Tembé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tql","Description":["Lehali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqm","Description":["Turumsa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqn","Description":["Tenino"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqo","Description":["Toaripi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqp","Description":["Tomoip"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqq","Description":["Tunni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqr","Description":["Torona"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqt","Description":["Western Totonac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqu","Description":["Touo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tqw","Description":["Tonkawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tra","Description":["Tirahi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trb","Description":["Terebu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trc","Description":["Copala Triqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trd","Description":["Turi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tre","Description":["East Tarangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trf","Description":["Trinidadian Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trg","Description":["Lishán Didán"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trh","Description":["Turaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tri","Description":["Trió"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trj","Description":["Toram"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trk","Description":["Turkic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"trl","Description":["Traveller Scottish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trm","Description":["Tregami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trn","Description":["Trinitario"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tro","Description":["Tarao Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trp","Description":["Kok Borok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trq","Description":["San Martín Itunyoso Triqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trr","Description":["Taushiro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trs","Description":["Chicahuaxtla Triqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trt","Description":["Tunggare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tru","Description":["Turoyo","Surayt"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trv","Description":["Taroko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trw","Description":["Torwali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trx","Description":["Tringgus-Sembaan Bidayuh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"try","Description":["Turung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"trz","Description":["Torá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsa","Description":["Tsaangi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsb","Description":["Tsamai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsc","Description":["Tswa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsd","Description":["Tsakonian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tse","Description":["Tunisian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsf","Description":["Southwestern Tamang"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"taj"},{"Type":"language","Subtag":"tsg","Description":["Tausug"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsh","Description":["Tsuvan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsi","Description":["Tsimshian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tsj","Description":["Tshangla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsk","Description":["Tseku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsl","Description":["Ts\'ün-Lao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsm","Description":["Turkish Sign Language","Türk İşaret Dili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsp","Description":["Northern Toussian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsq","Description":["Thai Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsr","Description":["Akei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tss","Description":["Taiwan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tst","Description":["Tondi Songway Kiini"],"Added":"2011-08-16"},{"Type":"language","Subtag":"tsu","Description":["Tsou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsv","Description":["Tsogo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsw","Description":["Tsishingini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsx","Description":["Mubami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsy","Description":["Tebul Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tsz","Description":["Purepecha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tta","Description":["Tutelo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttb","Description":["Gaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttc","Description":["Tektiteko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttd","Description":["Tauade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tte","Description":["Bwanabwana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttf","Description":["Tuotomb"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttg","Description":["Tutong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tth","Description":["Upper Ta\'oih"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tti","Description":["Tobati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttj","Description":["Tooro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttk","Description":["Totoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttl","Description":["Totela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttm","Description":["Northern Tutchone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttn","Description":["Towei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tto","Description":["Lower Ta\'oih"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttp","Description":["Tombelala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttq","Description":["Tawallammat Tamajaq"],"Added":"2009-07-29","Macrolanguage":"tmh"},{"Type":"language","Subtag":"ttr","Description":["Tera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tts","Description":["Northeastern Thai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttt","Description":["Muslim Tat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttu","Description":["Torau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttv","Description":["Titan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttw","Description":["Long Wat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tty","Description":["Sikaritai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ttz","Description":["Tsum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tua","Description":["Wiarumus"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tub","Description":["Tübatulabal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuc","Description":["Mutu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tud","Description":["Tuxá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tue","Description":["Tuyuca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuf","Description":["Central Tunebo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tug","Description":["Tunia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuh","Description":["Taulil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tui","Description":["Tupuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuj","Description":["Tugutil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tul","Description":["Tula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tum","Description":["Tumbuka"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tun","Description":["Tunica"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuo","Description":["Tucano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tup","Description":["Tupi languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"tuq","Description":["Tedaga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tus","Description":["Tuscarora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tut","Description":["Altaic languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"tuu","Description":["Tututni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuv","Description":["Turkana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuw","Description":["Tungus languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"tux","Description":["Tuxináwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tuy","Description":["Tugen"],"Added":"2009-07-29","Macrolanguage":"kln"},{"Type":"language","Subtag":"tuz","Description":["Turka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tva","Description":["Vaghua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvd","Description":["Tsuvadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tve","Description":["Te\'un"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvk","Description":["Southeast Ambrym"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvl","Description":["Tuvalu"],"Added":"2005-10-16","Suppress-Script":"Latn"},{"Type":"language","Subtag":"tvm","Description":["Tela-Masbuar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvn","Description":["Tavoyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvo","Description":["Tidore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvs","Description":["Taveta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvt","Description":["Tutsa Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvu","Description":["Tunen"],"Added":"2012-08-12"},{"Type":"language","Subtag":"tvw","Description":["Sedoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tvx","Description":["Taivoan"],"Added":"2019-04-16"},{"Type":"language","Subtag":"tvy","Description":["Timor Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twa","Description":["Twana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twb","Description":["Western Tawbuid"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twc","Description":["Teshenawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twd","Description":["Twents"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twe","Description":["Tewa (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twf","Description":["Northern Tiwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twg","Description":["Tereweng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twh","Description":["Tai Dón"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twl","Description":["Tawara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twm","Description":["Tawang Monpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twn","Description":["Twendi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"two","Description":["Tswapong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twp","Description":["Ere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twq","Description":["Tasawaq"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twr","Description":["Southwestern Tarahumara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twt","Description":["Turiwára"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twu","Description":["Termanu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tww","Description":["Tuwari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twx","Description":["Tewe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"twy","Description":["Tawoyan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txa","Description":["Tombonuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txb","Description":["Tokharian B"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txc","Description":["Tsetsaut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txe","Description":["Totoli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txg","Description":["Tangut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txh","Description":["Thracian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txi","Description":["Ikpeng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txj","Description":["Tarjumo"],"Added":"2015-02-12"},{"Type":"language","Subtag":"txm","Description":["Tomini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txn","Description":["West Tarangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txo","Description":["Toto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txq","Description":["Tii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txr","Description":["Tartessian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txs","Description":["Tonsea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txt","Description":["Citak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txu","Description":["Kayapó"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txx","Description":["Tatana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"txy","Description":["Tanosy Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"tya","Description":["Tauya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tye","Description":["Kyanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyh","Description":["O\'du"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyi","Description":["Teke-Tsaayi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyj","Description":["Tai Do","Tai Yo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyl","Description":["Thu Lao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyn","Description":["Kombai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"typ","Description":["Thaypan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyr","Description":["Tai Daeng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tys","Description":["Tày Sa Pa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyt","Description":["Tày Tac"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyu","Description":["Kua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyv","Description":["Tuvinian"],"Added":"2005-10-16"},{"Type":"language","Subtag":"tyx","Description":["Teke-Tyee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tyz","Description":["Tày"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tza","Description":["Tanzanian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tzh","Description":["Tzeltal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tzj","Description":["Tz\'utujil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tzl","Description":["Talossan"],"Added":"2013-09-10"},{"Type":"language","Subtag":"tzm","Description":["Central Atlas Tamazight"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tzn","Description":["Tugun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tzo","Description":["Tzotzil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"tzx","Description":["Tabriak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uam","Description":["Uamué"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uan","Description":["Kuan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uar","Description":["Tairuma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uba","Description":["Ubang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ubi","Description":["Ubi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ubl","Description":["Buhi\'non Bikol"],"Added":"2010-03-11","Macrolanguage":"bik"},{"Type":"language","Subtag":"ubr","Description":["Ubir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ubu","Description":["Umbu-Ungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uby","Description":["Ubykh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uda","Description":["Uda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ude","Description":["Udihe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"udg","Description":["Muduga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"udi","Description":["Udi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"udj","Description":["Ujir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"udl","Description":["Wuzlam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"udm","Description":["Udmurt"],"Added":"2005-10-16"},{"Type":"language","Subtag":"udu","Description":["Uduk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ues","Description":["Kioko"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ufi","Description":["Ufim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uga","Description":["Ugaritic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"ugb","Description":["Kuku-Ugbanh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uge","Description":["Ughele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ugn","Description":["Ugandan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ugo","Description":["Ugong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ugy","Description":["Uruguayan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uha","Description":["Uhami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uhn","Description":["Damal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uis","Description":["Uisai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uiv","Description":["Iyive"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uji","Description":["Tanjijili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uka","Description":["Kaburi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ukg","Description":["Ukuriguma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ukh","Description":["Ukhwejo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ukk","Description":["Muak Sa-aak"],"Added":"2017-02-23"},{"Type":"language","Subtag":"ukl","Description":["Ukrainian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ukp","Description":["Ukpe-Bayobiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ukq","Description":["Ukwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uks","Description":["Urubú-Kaapor Sign Language","Kaapor Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uku","Description":["Ukue"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ukw","Description":["Ukwuani-Aboh-Ndoni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uky","Description":["Kuuk-Yak"],"Added":"2012-08-12"},{"Type":"language","Subtag":"ula","Description":["Fungwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ulb","Description":["Ulukwumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ulc","Description":["Ulch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ule","Description":["Lule"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ulf","Description":["Usku","Afra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uli","Description":["Ulithian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ulk","Description":["Meriam Mir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ull","Description":["Ullatan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ulm","Description":["Ulumanda\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uln","Description":["Unserdeutsch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ulu","Description":["Uma\' Lung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ulw","Description":["Ulwa"],"Added":"2010-03-11"},{"Type":"language","Subtag":"uma","Description":["Umatilla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umb","Description":["Umbundu"],"Added":"2005-10-16"},{"Type":"language","Subtag":"umc","Description":["Marrucinian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umd","Description":["Umbindhamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umg","Description":["Morrobalama","Umbuygamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umi","Description":["Ukit"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umm","Description":["Umon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umn","Description":["Makyan Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umo","Description":["Umotína"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ump","Description":["Umpila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umr","Description":["Umbugarla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ums","Description":["Pendau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"umu","Description":["Munsee"],"Added":"2009-07-29","Macrolanguage":"del"},{"Type":"language","Subtag":"una","Description":["North Watut"],"Added":"2009-07-29"},{"Type":"language","Subtag":"und","Description":["Undetermined"],"Added":"2005-10-16","Scope":"special"},{"Type":"language","Subtag":"une","Description":["Uneme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ung","Description":["Ngarinyin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"unk","Description":["Enawené-Nawé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"unm","Description":["Unami"],"Added":"2009-07-29","Macrolanguage":"del"},{"Type":"language","Subtag":"unn","Description":["Kurnai"],"Added":"2013-09-10"},{"Type":"language","Subtag":"unp","Description":["Worora"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see wro, xgu"]},{"Type":"language","Subtag":"unr","Description":["Mundari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"unu","Description":["Unubahe"],"Added":"2013-09-10"},{"Type":"language","Subtag":"unx","Description":["Munda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"unz","Description":["Unde Kaili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uok","Description":["Uokha"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"ema"},{"Type":"language","Subtag":"upi","Description":["Umeda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"upv","Description":["Uripiv-Wala-Rano-Atchin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ura","Description":["Urarina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urb","Description":["Urubú-Kaapor","Kaapor"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urc","Description":["Urningangg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ure","Description":["Uru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urf","Description":["Uradhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urg","Description":["Urigina"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urh","Description":["Urhobo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uri","Description":["Urim"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urj","Description":["Uralic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"urk","Description":["Urak Lawoi\'"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"url","Description":["Urali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urm","Description":["Urapmin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urn","Description":["Uruangnirin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uro","Description":["Ura (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urp","Description":["Uru-Pa-In"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urr","Description":["Lehalurup","Löyöp"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urt","Description":["Urat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uru","Description":["Urumi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urv","Description":["Uruava"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urw","Description":["Sop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urx","Description":["Urimo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ury","Description":["Orya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"urz","Description":["Uru-Eu-Wau-Wau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"usa","Description":["Usarufa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ush","Description":["Ushojo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"usi","Description":["Usui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"usk","Description":["Usaghade"],"Added":"2009-07-29"},{"Type":"language","Subtag":"usp","Description":["Uspanteco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uss","Description":["us-Saare"],"Added":"2019-04-16"},{"Type":"language","Subtag":"usu","Description":["Uya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uta","Description":["Otank"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ute","Description":["Ute-Southern Paiute"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uth","Description":["ut-Hun"],"Added":"2019-04-16"},{"Type":"language","Subtag":"utp","Description":["Amba (Solomon Islands)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"utr","Description":["Etulo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"utu","Description":["Utu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uum","Description":["Urum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uun","Description":["Kulon-Pazeh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uur","Description":["Ura (Vanuatu)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uuu","Description":["U"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uve","Description":["West Uvean","Fagauvea"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uvh","Description":["Uri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uvl","Description":["Lote"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uwa","Description":["Kuku-Uwanh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uya","Description":["Doko-Uyanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"uzn","Description":["Northern Uzbek"],"Added":"2009-07-29","Macrolanguage":"uz"},{"Type":"language","Subtag":"uzs","Description":["Southern Uzbek"],"Added":"2009-07-29","Macrolanguage":"uz"},{"Type":"language","Subtag":"vaa","Description":["Vaagri Booli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vae","Description":["Vale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vaf","Description":["Vafsi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vag","Description":["Vagla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vah","Description":["Varhadi-Nagpuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vai","Description":["Vai"],"Added":"2005-10-16"},{"Type":"language","Subtag":"vaj","Description":["Sekele","Northwestern ǃKung","Vasekele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"val","Description":["Vehes"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vam","Description":["Vanimo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"van","Description":["Valman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vao","Description":["Vao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vap","Description":["Vaiphei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"var","Description":["Huarijio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vas","Description":["Vasavi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vau","Description":["Vanuma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vav","Description":["Varli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vay","Description":["Wayu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vbb","Description":["Southeast Babar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vbk","Description":["Southwestern Bontok"],"Added":"2010-03-11","Macrolanguage":"bnc"},{"Type":"language","Subtag":"vec","Description":["Venetian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ved","Description":["Veddah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vel","Description":["Veluws"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vem","Description":["Vemgo-Mabas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"veo","Description":["Ventureño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vep","Description":["Veps"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ver","Description":["Mom Jango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vgr","Description":["Vaghri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vgt","Description":["Vlaamse Gebarentaal","Flemish Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vic","Description":["Virgin Islands Creole English"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vid","Description":["Vidunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vif","Description":["Vili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vig","Description":["Viemo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vil","Description":["Vilela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vin","Description":["Vinza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vis","Description":["Vishavan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vit","Description":["Viti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"viv","Description":["Iduna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vka","Description":["Kariyarra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vki","Description":["Ija-Zuba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vkj","Description":["Kujarge"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vkk","Description":["Kaur"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"vkl","Description":["Kulisusu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vkm","Description":["Kamakan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vko","Description":["Kodeoha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vkp","Description":["Korlai Creole Portuguese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vkt","Description":["Tenggarong Kutai Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"vku","Description":["Kurrama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vlp","Description":["Valpei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vls","Description":["Vlaams"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vma","Description":["Martuyhunira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmb","Description":["Barbaram"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmc","Description":["Juxtlahuaca Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmd","Description":["Mudu Koraga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vme","Description":["East Masela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmf","Description":["Mainfränkisch"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmg","Description":["Lungalunga"],"Added":"2009-07-29","Comments":["see also bxf"]},{"Type":"language","Subtag":"vmh","Description":["Maraghei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmi","Description":["Miwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmj","Description":["Ixtayutla Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmk","Description":["Makhuwa-Shirima"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vml","Description":["Malgana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmm","Description":["Mitlatongo Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmp","Description":["Soyaltepec Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmq","Description":["Soyaltepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmr","Description":["Marenje"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vms","Description":["Moksela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmu","Description":["Muluridyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmv","Description":["Valley Maidu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmw","Description":["Makhuwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmx","Description":["Tamazola Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmy","Description":["Ayautla Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vmz","Description":["Mazatlán Mazatec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vnk","Description":["Vano","Lovono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vnm","Description":["Vinmavis","Neve\'ei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vnp","Description":["Vunapu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vor","Description":["Voro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vot","Description":["Votic"],"Added":"2005-10-16"},{"Type":"language","Subtag":"vra","Description":["Vera\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vro","Description":["Võro"],"Added":"2009-07-29","Macrolanguage":"et"},{"Type":"language","Subtag":"vrs","Description":["Varisi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vrt","Description":["Burmbar","Banam Bay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vsi","Description":["Moldova Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vsl","Description":["Venezuelan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vsv","Description":["Valencian Sign Language","Llengua de signes valenciana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vto","Description":["Vitou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vum","Description":["Vumbu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vun","Description":["Vunjo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vut","Description":["Vute"],"Added":"2009-07-29"},{"Type":"language","Subtag":"vwa","Description":["Awa (China)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"waa","Description":["Walla Walla"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wab","Description":["Wab"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wac","Description":["Wasco-Wishram"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wad","Description":["Wandamen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wae","Description":["Walser"],"Added":"2009-07-29"},{"Type":"language","Subtag":"waf","Description":["Wakoná"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wag","Description":["Wa\'ema"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wah","Description":["Watubela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wai","Description":["Wares"],"Added":"2009-07-29"},{"Type":"language","Subtag":"waj","Description":["Waffa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wak","Description":["Wakashan languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"wal","Description":["Wolaytta","Wolaitta"],"Added":"2005-10-16"},{"Type":"language","Subtag":"wam","Description":["Wampanoag"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wan","Description":["Wan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wao","Description":["Wappo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wap","Description":["Wapishana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"waq","Description":["Wagiman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"war","Description":["Waray (Philippines)"],"Added":"2005-10-16"},{"Type":"language","Subtag":"was","Description":["Washo"],"Added":"2005-10-16"},{"Type":"language","Subtag":"wat","Description":["Kaninuwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wau","Description":["Waurá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wav","Description":["Waka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"waw","Description":["Waiwai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wax","Description":["Watam","Marangis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"way","Description":["Wayana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"waz","Description":["Wampur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wba","Description":["Warao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbb","Description":["Wabo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbe","Description":["Waritai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbf","Description":["Wara"],"Added":"2009-07-29","Comments":["see also pnl"]},{"Type":"language","Subtag":"wbh","Description":["Wanda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbi","Description":["Vwanji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbj","Description":["Alagwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbk","Description":["Waigali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbl","Description":["Wakhi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbm","Description":["Wa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbp","Description":["Warlpiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbq","Description":["Waddar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbr","Description":["Wagdi"],"Added":"2009-07-29","Macrolanguage":"raj"},{"Type":"language","Subtag":"wbs","Description":["West Bengal Sign Language"],"Added":"2017-02-23"},{"Type":"language","Subtag":"wbt","Description":["Warnman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbv","Description":["Wajarri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wbw","Description":["Woi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wca","Description":["Yanomámi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wci","Description":["Waci Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wdd","Description":["Wandji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wdg","Description":["Wadaginam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wdj","Description":["Wadjiginy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wdk","Description":["Wadikali"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wdu","Description":["Wadjigu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wdy","Description":["Wadjabangayi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wea","Description":["Wewaw"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wec","Description":["Wè Western"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wed","Description":["Wedau"],"Added":"2009-07-29"},{"Type":"language","Subtag":"weg","Description":["Wergaia"],"Added":"2013-09-10"},{"Type":"language","Subtag":"weh","Description":["Weh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wei","Description":["Kiunum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wem","Description":["Weme Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wen","Description":["Sorbian languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"weo","Description":["Wemale"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wep","Description":["Westphalien"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wer","Description":["Weri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wes","Description":["Cameroon Pidgin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wet","Description":["Perai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"weu","Description":["Rawngtu Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wew","Description":["Wejewa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wfg","Description":["Yafi","Zorop"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wga","Description":["Wagaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wgb","Description":["Wagawaga"],"Added":"2010-03-11"},{"Type":"language","Subtag":"wgg","Description":["Wangkangurru","Wangganguru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wgi","Description":["Wahgi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wgo","Description":["Waigeo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wgu","Description":["Wirangu"],"Added":"2012-08-12"},{"Type":"language","Subtag":"wgw","Description":["Wagawaga"],"Added":"2009-07-29","Deprecated":"2010-03-11","Comments":["see wgb, ylb"]},{"Type":"language","Subtag":"wgy","Description":["Warrgamay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wha","Description":["Sou Upaa","Manusela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"whg","Description":["North Wahgi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"whk","Description":["Wahau Kenyah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"whu","Description":["Wahau Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wib","Description":["Southern Toussian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wic","Description":["Wichita"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wie","Description":["Wik-Epa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wif","Description":["Wik-Keyangan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wig","Description":["Wik Ngathan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wih","Description":["Wik-Me\'anha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wii","Description":["Minidien"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wij","Description":["Wik-Iiyanh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wik","Description":["Wikalkan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wil","Description":["Wilawila"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wim","Description":["Wik-Mungkan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"win","Description":["Ho-Chunk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wir","Description":["Wiraféd"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wit","Description":["Wintu"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see nol, pwi, wnw"]},{"Type":"language","Subtag":"wiu","Description":["Wiru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wiv","Description":["Vitu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wiw","Description":["Wirangu"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see nwo, wgu"]},{"Type":"language","Subtag":"wiy","Description":["Wiyot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wja","Description":["Waja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wji","Description":["Warji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wka","Description":["Kw\'adza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wkb","Description":["Kumbaran"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wkd","Description":["Wakde","Mo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wkl","Description":["Kalanadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wkr","Description":["Keerray-Woorroong"],"Added":"2019-04-16"},{"Type":"language","Subtag":"wku","Description":["Kunduvadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wkw","Description":["Wakawaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wky","Description":["Wangkayutyuru"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wla","Description":["Walio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlc","Description":["Mwali Comorian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wle","Description":["Wolane"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlg","Description":["Kunbarlang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wli","Description":["Waioli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlk","Description":["Wailaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wll","Description":["Wali (Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlm","Description":["Middle Welsh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlo","Description":["Wolio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlr","Description":["Wailapa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wls","Description":["Wallisian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlu","Description":["Wuliwuli"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlv","Description":["Wichí Lhamtés Vejoz"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlw","Description":["Walak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wlx","Description":["Wali (Ghana)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wly","Description":["Waling"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wma","Description":["Mawa (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmb","Description":["Wambaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmc","Description":["Wamas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmd","Description":["Mamaindé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wme","Description":["Wambule"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmh","Description":["Waima\'a"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmi","Description":["Wamin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmm","Description":["Maiwa (Indonesia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmn","Description":["Waamwang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmo","Description":["Wom (Papua New Guinea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wms","Description":["Wambon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmt","Description":["Walmajarri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmw","Description":["Mwani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wmx","Description":["Womo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnb","Description":["Wanambre"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnc","Description":["Wantoat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnd","Description":["Wandarang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wne","Description":["Waneci"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wng","Description":["Wanggom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wni","Description":["Ndzwani Comorian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnk","Description":["Wanukaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnm","Description":["Wanggamala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnn","Description":["Wunumara"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wno","Description":["Wano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnp","Description":["Wanap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnu","Description":["Usan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wnw","Description":["Wintu"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wny","Description":["Wanyi","Waanyi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"woa","Description":["Kuwema","Tyaraity"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wob","Description":["Wè Northern"],"Added":"2009-07-29"},{"Type":"language","Subtag":"woc","Description":["Wogeo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wod","Description":["Wolani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"woe","Description":["Woleaian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wof","Description":["Gambian Wolof"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wog","Description":["Wogamusin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"woi","Description":["Kamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wok","Description":["Longto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wom","Description":["Wom (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"won","Description":["Wongo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"woo","Description":["Manombai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wor","Description":["Woria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wos","Description":["Hanga Hundi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wow","Description":["Wawonii"],"Added":"2009-07-29"},{"Type":"language","Subtag":"woy","Description":["Weyto"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wpc","Description":["Maco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wra","Description":["Warapu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrb","Description":["Waluwarra","Warluwara"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrd","Description":["Warduji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrg","Description":["Warungu","Gudjal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrh","Description":["Wiradjuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wri","Description":["Wariyangga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrk","Description":["Garrwa"],"Added":"2012-08-12"},{"Type":"language","Subtag":"wrl","Description":["Warlmanpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrm","Description":["Warumungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrn","Description":["Warnang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wro","Description":["Worrorra"],"Added":"2012-08-12"},{"Type":"language","Subtag":"wrp","Description":["Waropen"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrr","Description":["Wardaman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrs","Description":["Waris"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wru","Description":["Waru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrv","Description":["Waruna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrw","Description":["Gugu Warra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wrx","Description":["Wae Rana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wry","Description":["Merwari"],"Added":"2009-07-29","Macrolanguage":"mwr"},{"Type":"language","Subtag":"wrz","Description":["Waray (Australia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wsa","Description":["Warembori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wsg","Description":["Adilabad Gondi"],"Added":"2016-05-30","Macrolanguage":"gon"},{"Type":"language","Subtag":"wsi","Description":["Wusi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wsk","Description":["Waskia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wsr","Description":["Owenia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wss","Description":["Wasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wsu","Description":["Wasu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wsv","Description":["Wotapuri-Katarqalai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wtf","Description":["Watiwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wth","Description":["Wathawurrung"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wti","Description":["Berta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wtk","Description":["Watakataui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wtm","Description":["Mewati"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wtw","Description":["Wotu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wua","Description":["Wikngenchera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wub","Description":["Wunambal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wud","Description":["Wudu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wuh","Description":["Wutunhua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wul","Description":["Silimo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wum","Description":["Wumbvu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wun","Description":["Bungu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wur","Description":["Wurrugu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wut","Description":["Wutung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wuu","Description":["Wu Chinese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"wuv","Description":["Wuvulu-Aua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wux","Description":["Wulna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wuy","Description":["Wauyai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wwa","Description":["Waama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wwb","Description":["Wakabunga"],"Added":"2012-08-12"},{"Type":"language","Subtag":"wwo","Description":["Wetamut","Dorig"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wwr","Description":["Warrwa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"www","Description":["Wawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wxa","Description":["Waxianghua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wxw","Description":["Wardandi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wya","Description":["Wyandot"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wyb","Description":["Wangaaybuwan-Ngiyambaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wyi","Description":["Woiwurrung"],"Added":"2013-09-10"},{"Type":"language","Subtag":"wym","Description":["Wymysorys"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wyr","Description":["Wayoró"],"Added":"2009-07-29"},{"Type":"language","Subtag":"wyy","Description":["Western Fijian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xaa","Description":["Andalusian Arabic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xab","Description":["Sambe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xac","Description":["Kachari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xad","Description":["Adai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xae","Description":["Aequian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xag","Description":["Aghwan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xai","Description":["Kaimbé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xaj","Description":["Ararandewára"],"Added":"2014-02-28"},{"Type":"language","Subtag":"xak","Description":["Máku"],"Added":"2016-05-30"},{"Type":"language","Subtag":"xal","Description":["Kalmyk","Oirat"],"Added":"2005-10-16"},{"Type":"language","Subtag":"xam","Description":["ǀXam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xan","Description":["Xamtanga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xao","Description":["Khao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xap","Description":["Apalachee"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xaq","Description":["Aquitanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xar","Description":["Karami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xas","Description":["Kamas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xat","Description":["Katawixi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xau","Description":["Kauwera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xav","Description":["Xavánte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xaw","Description":["Kawaiisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xay","Description":["Kayan Mahakam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xba","Description":["Kamba (Brazil)"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"cax"},{"Type":"language","Subtag":"xbb","Description":["Lower Burdekin"],"Added":"2010-03-11"},{"Type":"language","Subtag":"xbc","Description":["Bactrian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xbd","Description":["Bindal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xbe","Description":["Bigambal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xbg","Description":["Bunganditj"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xbi","Description":["Kombio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xbj","Description":["Birrpayi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xbm","Description":["Middle Breton"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xbn","Description":["Kenaboi"],"Added":"2010-03-11"},{"Type":"language","Subtag":"xbo","Description":["Bolgarian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xbp","Description":["Bibbulman"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xbr","Description":["Kambera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xbw","Description":["Kambiwá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xbx","Description":["Kabixí"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"xby","Description":["Batjala","Batyala"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xcb","Description":["Cumbric"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcc","Description":["Camunic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xce","Description":["Celtiberian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcg","Description":["Cisalpine Gaulish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xch","Description":["Chemakum","Chimakum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcl","Description":["Classical Armenian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcm","Description":["Comecrudo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcn","Description":["Cotoname"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xco","Description":["Chorasmian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcr","Description":["Carian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xct","Description":["Classical Tibetan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcu","Description":["Curonian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcv","Description":["Chuvantsy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcw","Description":["Coahuilteco"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xcy","Description":["Cayuse"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xda","Description":["Darkinyung"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xdc","Description":["Dacian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xdk","Description":["Dharuk"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xdm","Description":["Edomite"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xdo","Description":["Kwandu"],"Added":"2017-02-23"},{"Type":"language","Subtag":"xdy","Description":["Malayic Dayak"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xeb","Description":["Eblan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xed","Description":["Hdi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xeg","Description":["ǁXegwi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xel","Description":["Kelo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xem","Description":["Kembayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xep","Description":["Epi-Olmec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xer","Description":["Xerénte"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xes","Description":["Kesawai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xet","Description":["Xetá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xeu","Description":["Keoru-Ahia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xfa","Description":["Faliscan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xga","Description":["Galatian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xgb","Description":["Gbin"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xgd","Description":["Gudang"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xgf","Description":["Gabrielino-Fernandeño"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xgg","Description":["Goreng"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xgi","Description":["Garingbal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xgl","Description":["Galindan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xgm","Description":["Dharumbal","Guwinmal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xgn","Description":["Mongolian languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"xgr","Description":["Garza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xgu","Description":["Unggumi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xgw","Description":["Guwa"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xha","Description":["Harami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xhc","Description":["Hunnic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xhd","Description":["Hadrami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xhe","Description":["Khetrani"],"Added":"2009-07-29","Macrolanguage":"lah"},{"Type":"language","Subtag":"xhr","Description":["Hernican"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xht","Description":["Hattic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xhu","Description":["Hurrian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xhv","Description":["Khua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xia","Description":["Xiandao"],"Added":"2009-07-29","Deprecated":"2013-09-10","Preferred-Value":"acn"},{"Type":"language","Subtag":"xib","Description":["Iberian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xii","Description":["Xiri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xil","Description":["Illyrian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xin","Description":["Xinca"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xip","Description":["Xipináwa"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"xir","Description":["Xiriâna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xis","Description":["Kisan"],"Added":"2014-02-28"},{"Type":"language","Subtag":"xiv","Description":["Indus Valley Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xiy","Description":["Xipaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xjb","Description":["Minjungbal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xjt","Description":["Jaitmatang"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xka","Description":["Kalkoti"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkb","Description":["Northern Nago"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkc","Description":["Kho\'ini"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkd","Description":["Mendalam Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xke","Description":["Kereho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkf","Description":["Khengkha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkg","Description":["Kagoro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkh","Description":["Karahawyana"],"Added":"2009-07-29","Deprecated":"2016-05-30","Preferred-Value":"waw"},{"Type":"language","Subtag":"xki","Description":["Kenyan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkj","Description":["Kajali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkk","Description":["Kaco\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkl","Description":["Mainstream Kenyah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkn","Description":["Kayan River Kayan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xko","Description":["Kiorr"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkp","Description":["Kabatei"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkq","Description":["Koroni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkr","Description":["Xakriabá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xks","Description":["Kumbewaha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkt","Description":["Kantosi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xku","Description":["Kaamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkv","Description":["Kgalagadi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkw","Description":["Kembra"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkx","Description":["Karore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xky","Description":["Uma\' Lasan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xkz","Description":["Kurtokha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xla","Description":["Kamula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xlb","Description":["Loup B"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xlc","Description":["Lycian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xld","Description":["Lydian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xle","Description":["Lemnian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xlg","Description":["Ligurian (Ancient)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xli","Description":["Liburnian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xln","Description":["Alanic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xlo","Description":["Loup A"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xlp","Description":["Lepontic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xls","Description":["Lusitanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xlu","Description":["Cuneiform Luwian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xly","Description":["Elymian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xma","Description":["Mushungulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmb","Description":["Mbonga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmc","Description":["Makhuwa-Marrevone"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmd","Description":["Mbudum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xme","Description":["Median"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmf","Description":["Mingrelian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmg","Description":["Mengaka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmh","Description":["Kugu-Muminh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmj","Description":["Majera"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmk","Description":["Ancient Macedonian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xml","Description":["Malaysian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmm","Description":["Manado Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"xmn","Description":["Manichaean Middle Persian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmo","Description":["Morerebi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmp","Description":["Kuku-Mu\'inh"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmq","Description":["Kuku-Mangk"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmr","Description":["Meroitic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xms","Description":["Moroccan Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmt","Description":["Matbat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmu","Description":["Kamu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmv","Description":["Antankarana Malagasy","Tankarana Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"xmw","Description":["Tsimihety Malagasy"],"Added":"2009-07-29","Macrolanguage":"mg"},{"Type":"language","Subtag":"xmx","Description":["Maden"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmy","Description":["Mayaguduna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xmz","Description":["Mori Bawah"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xna","Description":["Ancient North Arabian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xnb","Description":["Kanakanabu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xnd","Description":["Na-Dene languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"xng","Description":["Middle Mongolian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xnh","Description":["Kuanhua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xni","Description":["Ngarigu"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xnk","Description":["Nganakarti"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xnn","Description":["Northern Kankanay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xno","Description":["Anglo-Norman"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xnr","Description":["Kangri"],"Added":"2009-07-29","Macrolanguage":"doi"},{"Type":"language","Subtag":"xns","Description":["Kanashi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xnt","Description":["Narragansett"],"Added":"2010-03-11"},{"Type":"language","Subtag":"xnu","Description":["Nukunul"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xny","Description":["Nyiyaparli"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xnz","Description":["Kenzi","Mattoki"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xoc","Description":["O\'chi\'chi\'"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xod","Description":["Kokoda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xog","Description":["Soga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xoi","Description":["Kominimung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xok","Description":["Xokleng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xom","Description":["Komo (Sudan)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xon","Description":["Konkomba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xoo","Description":["Xukurú"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xop","Description":["Kopar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xor","Description":["Korubo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xow","Description":["Kowaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpa","Description":["Pirriya"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xpc","Description":["Pecheneg"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpe","Description":["Liberia Kpelle"],"Added":"2009-07-29","Macrolanguage":"kpe"},{"Type":"language","Subtag":"xpg","Description":["Phrygian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpi","Description":["Pictish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpj","Description":["Mpalitjanh"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xpk","Description":["Kulina Pano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpm","Description":["Pumpokol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpn","Description":["Kapinawá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpo","Description":["Pochutec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpp","Description":["Puyo-Paekche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpq","Description":["Mohegan-Pequot"],"Added":"2010-03-11"},{"Type":"language","Subtag":"xpr","Description":["Parthian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xps","Description":["Pisidian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpt","Description":["Punthamara"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xpu","Description":["Punic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xpy","Description":["Puyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xqa","Description":["Karakhanid"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xqt","Description":["Qatabanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xra","Description":["Krahô"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrb","Description":["Eastern Karaboro"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrd","Description":["Gundungurra"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xre","Description":["Kreye"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrg","Description":["Minang"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xri","Description":["Krikati-Timbira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrm","Description":["Armazic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrn","Description":["Arin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrq","Description":["Karranga"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xrr","Description":["Raetic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrt","Description":["Aranama-Tamique"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xru","Description":["Marriammu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xrw","Description":["Karawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsa","Description":["Sabaean"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsb","Description":["Sambal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsc","Description":["Scythian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsd","Description":["Sidetic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xse","Description":["Sempan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsh","Description":["Shamang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsi","Description":["Sio"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsj","Description":["Subi"],"Added":"2009-07-29","Comments":["see also suj"]},{"Type":"language","Subtag":"xsl","Description":["South Slavey"],"Added":"2009-07-29","Macrolanguage":"den"},{"Type":"language","Subtag":"xsm","Description":["Kasem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsn","Description":["Sanga (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xso","Description":["Solano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsp","Description":["Silopi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsq","Description":["Makhuwa-Saka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsr","Description":["Sherpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xss","Description":["Assan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsu","Description":["Sanumá"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsv","Description":["Sudovian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xsy","Description":["Saisiyat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xta","Description":["Alcozauca Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtb","Description":["Chazumba Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtc","Description":["Katcha-Kadugli-Miri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtd","Description":["Diuxi-Tilantongo Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xte","Description":["Ketengban"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtg","Description":["Transalpine Gaulish"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xth","Description":["Yitha Yitha"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xti","Description":["Sinicahua Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtj","Description":["San Juan Teita Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtl","Description":["Tijaltepec Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtm","Description":["Magdalena Peñasco Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtn","Description":["Northern Tlaxiaco Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xto","Description":["Tokharian A"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtp","Description":["San Miguel Piedras Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtq","Description":["Tumshuqese"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtr","Description":["Early Tripuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xts","Description":["Sindihui Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtt","Description":["Tacahua Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtu","Description":["Cuyamecalco Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtv","Description":["Thawa"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xtw","Description":["Tawandê"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xty","Description":["Yoloxochitl Mixtec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xtz","Description":["Tasmanian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xua","Description":["Alu Kurumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xub","Description":["Betta Kurumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xud","Description":["Umiida"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xug","Description":["Kunigami"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xuj","Description":["Jennu Kurumba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xul","Description":["Ngunawal"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xum","Description":["Umbrian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xun","Description":["Unggaranggu"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xuo","Description":["Kuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xup","Description":["Upper Umpqua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xur","Description":["Urartian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xut","Description":["Kuthant"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xuu","Description":["Kxoe","Khwedam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xve","Description":["Venetic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xvi","Description":["Kamviri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xvn","Description":["Vandalic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xvo","Description":["Volscian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xvs","Description":["Vestinian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwa","Description":["Kwaza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwc","Description":["Woccon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwd","Description":["Wadi Wadi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xwe","Description":["Xwela Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwg","Description":["Kwegu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwj","Description":["Wajuk"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xwk","Description":["Wangkumara"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xwl","Description":["Western Xwla Gbe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwo","Description":["Written Oirat"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwr","Description":["Kwerba Mamberamo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xwt","Description":["Wotjobaluk"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xww","Description":["Wemba Wemba"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xxb","Description":["Boro (Ghana)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xxk","Description":["Ke\'o"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xxm","Description":["Minkin"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xxr","Description":["Koropó"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xxt","Description":["Tambora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xya","Description":["Yaygir"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xyb","Description":["Yandjibara"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xyj","Description":["Mayi-Yapi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xyk","Description":["Mayi-Kulan"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xyl","Description":["Yalakalore"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xyt","Description":["Mayi-Thakurti"],"Added":"2013-09-10"},{"Type":"language","Subtag":"xyy","Description":["Yorta Yorta"],"Added":"2012-08-12"},{"Type":"language","Subtag":"xzh","Description":["Zhang-Zhung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xzm","Description":["Zemgalian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"xzp","Description":["Ancient Zapotec"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yaa","Description":["Yaminahua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yab","Description":["Yuhup"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yac","Description":["Pass Valley Yali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yad","Description":["Yagua"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yae","Description":["Pumé"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yaf","Description":["Yaka (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yag","Description":["Yámana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yah","Description":["Yazgulyam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yai","Description":["Yagnobi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yaj","Description":["Banda-Yangere"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yak","Description":["Yakama"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yal","Description":["Yalunka"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yam","Description":["Yamba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yan","Description":["Mayangna"],"Added":"2010-03-11"},{"Type":"language","Subtag":"yao","Description":["Yao"],"Added":"2005-10-16"},{"Type":"language","Subtag":"yap","Description":["Yapese"],"Added":"2005-10-16"},{"Type":"language","Subtag":"yaq","Description":["Yaqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yar","Description":["Yabarana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yas","Description":["Nugunu (Cameroon)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yat","Description":["Yambeta"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yau","Description":["Yuwana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yav","Description":["Yangben"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yaw","Description":["Yawalapití"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yax","Description":["Yauma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yay","Description":["Agwagwune"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yaz","Description":["Lokaa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yba","Description":["Yala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybb","Description":["Yemba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybd","Description":["Yangbye"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"rki"},{"Type":"language","Subtag":"ybe","Description":["West Yugur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybh","Description":["Yakha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybi","Description":["Yamphu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybj","Description":["Hasha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybk","Description":["Bokha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybl","Description":["Yukuben"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybm","Description":["Yaben"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybn","Description":["Yabaâna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybo","Description":["Yabong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ybx","Description":["Yawiyo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yby","Description":["Yaweyuha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ych","Description":["Chesu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ycl","Description":["Lolopo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ycn","Description":["Yucuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ycp","Description":["Chepya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yda","Description":["Yanda"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ydd","Description":["Eastern Yiddish"],"Added":"2009-07-29","Macrolanguage":"yi"},{"Type":"language","Subtag":"yde","Description":["Yangum Dey"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ydg","Description":["Yidgha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ydk","Description":["Yoidik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yds","Description":["Yiddish Sign Language"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"yea","Description":["Ravula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yec","Description":["Yeniche"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yee","Description":["Yimas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yei","Description":["Yeni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yej","Description":["Yevanic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yel","Description":["Yela"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yen","Description":["Yendang"],"Added":"2009-07-29","Deprecated":"2012-08-12","Comments":["see ynq, yot"]},{"Type":"language","Subtag":"yer","Description":["Tarok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yes","Description":["Nyankpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yet","Description":["Yetfa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yeu","Description":["Yerukula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yev","Description":["Yapunda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yey","Description":["Yeyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yga","Description":["Malyangapa"],"Added":"2012-08-12"},{"Type":"language","Subtag":"ygi","Description":["Yiningayi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ygl","Description":["Yangum Gel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ygm","Description":["Yagomi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ygp","Description":["Gepo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ygr","Description":["Yagaria"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ygs","Description":["Yolŋu Sign Language"],"Added":"2014-02-28"},{"Type":"language","Subtag":"ygu","Description":["Yugul"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ygw","Description":["Yagwoia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yha","Description":["Baha Buyang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yhd","Description":["Judeo-Iraqi Arabic"],"Added":"2009-07-29","Macrolanguage":"jrb"},{"Type":"language","Subtag":"yhl","Description":["Hlepho Phowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yhs","Description":["Yan-nhaŋu Sign Language"],"Added":"2015-04-17"},{"Type":"language","Subtag":"yia","Description":["Yinggarda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yif","Description":["Ache"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yig","Description":["Wusa Nasu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yih","Description":["Western Yiddish"],"Added":"2009-07-29","Macrolanguage":"yi"},{"Type":"language","Subtag":"yii","Description":["Yidiny"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yij","Description":["Yindjibarndi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yik","Description":["Dongshanba Lalo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yil","Description":["Yindjilandji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yim","Description":["Yimchungru Naga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yin","Description":["Riang Lai","Yinchia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yip","Description":["Pholo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yiq","Description":["Miqie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yir","Description":["North Awyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yis","Description":["Yis"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yit","Description":["Eastern Lalu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yiu","Description":["Awu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yiv","Description":["Northern Nisu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yix","Description":["Axi Yi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yiy","Description":["Yir Yoront"],"Added":"2009-07-29","Deprecated":"2013-09-10","Comments":["see yrm, yyr"]},{"Type":"language","Subtag":"yiz","Description":["Azhe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yka","Description":["Yakan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykg","Description":["Northern Yukaghir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yki","Description":["Yoke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykk","Description":["Yakaikeke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykl","Description":["Khlula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykm","Description":["Kap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykn","Description":["Kua-nsi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"yko","Description":["Yasa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykr","Description":["Yekora"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ykt","Description":["Kathu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yku","Description":["Kuamasi"],"Added":"2012-08-12"},{"Type":"language","Subtag":"yky","Description":["Yakoma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yla","Description":["Yaul"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ylb","Description":["Yaleba"],"Added":"2010-03-11"},{"Type":"language","Subtag":"yle","Description":["Yele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ylg","Description":["Yelogu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yli","Description":["Angguruk Yali"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yll","Description":["Yil"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ylm","Description":["Limi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yln","Description":["Langnian Buyang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ylo","Description":["Naluo Yi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ylr","Description":["Yalarnnga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ylu","Description":["Aribwaung"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yly","Description":["Nyâlayu","Nyelâyu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yma","Description":["Yamphe"],"Added":"2009-07-29","Deprecated":"2012-08-12","Preferred-Value":"lrr"},{"Type":"language","Subtag":"ymb","Description":["Yambes"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymc","Description":["Southern Muji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymd","Description":["Muda"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yme","Description":["Yameo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymg","Description":["Yamongeri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymh","Description":["Mili"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymi","Description":["Moji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymk","Description":["Makwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yml","Description":["Iamalele"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymm","Description":["Maay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymn","Description":["Yamna","Sunum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymo","Description":["Yangum Mon"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymp","Description":["Yamap"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymq","Description":["Qila Muji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymr","Description":["Malasar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yms","Description":["Mysian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymt","Description":["Mator-Taygi-Karagas"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"mtm"},{"Type":"language","Subtag":"ymx","Description":["Northern Muji"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ymz","Description":["Muzi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yna","Description":["Aluo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ynd","Description":["Yandruwandha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yne","Description":["Lang\'e"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yng","Description":["Yango"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ynh","Description":["Yangho"],"Added":"2009-07-29","Deprecated":"2015-02-12"},{"Type":"language","Subtag":"ynk","Description":["Naukan Yupik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ynl","Description":["Yangulam"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ynn","Description":["Yana"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yno","Description":["Yong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ynq","Description":["Yendang"],"Added":"2012-08-12"},{"Type":"language","Subtag":"yns","Description":["Yansi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ynu","Description":["Yahuna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yob","Description":["Yoba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yog","Description":["Yogad"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yoi","Description":["Yonaguni"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yok","Description":["Yokuts"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yol","Description":["Yola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yom","Description":["Yombe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yon","Description":["Yongkom"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yos","Description":["Yos"],"Added":"2009-07-29","Deprecated":"2013-09-10","Preferred-Value":"zom"},{"Type":"language","Subtag":"yot","Description":["Yotti"],"Added":"2012-08-12"},{"Type":"language","Subtag":"yox","Description":["Yoron"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yoy","Description":["Yoy"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypa","Description":["Phala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypb","Description":["Labo Phowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypg","Description":["Phola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yph","Description":["Phupha"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypk","Description":["Yupik languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"ypm","Description":["Phuma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypn","Description":["Ani Phowa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypo","Description":["Alo Phola"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypp","Description":["Phupa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ypz","Description":["Phuza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yra","Description":["Yerakai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yrb","Description":["Yareba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yre","Description":["Yaouré"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yri","Description":["Yarí"],"Added":"2009-07-29","Deprecated":"2016-05-30"},{"Type":"language","Subtag":"yrk","Description":["Nenets"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yrl","Description":["Nhengatu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yrm","Description":["Yirrk-Mel"],"Added":"2013-09-10"},{"Type":"language","Subtag":"yrn","Description":["Yerong"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yro","Description":["Yaroamë"],"Added":"2016-05-30"},{"Type":"language","Subtag":"yrs","Description":["Yarsun"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yrw","Description":["Yarawata"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yry","Description":["Yarluyandi"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ysc","Description":["Yassic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ysd","Description":["Samatao"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ysg","Description":["Sonaga"],"Added":"2012-08-12"},{"Type":"language","Subtag":"ysl","Description":["Yugoslavian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ysn","Description":["Sani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yso","Description":["Nisi (China)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ysp","Description":["Southern Lolopo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ysr","Description":["Sirenik Yupik"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yss","Description":["Yessan-Mayo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ysy","Description":["Sanie"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yta","Description":["Talu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ytl","Description":["Tanglang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ytp","Description":["Thopho"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ytw","Description":["Yout Wam"],"Added":"2010-03-11"},{"Type":"language","Subtag":"yty","Description":["Yatay"],"Added":"2013-09-10"},{"Type":"language","Subtag":"yua","Description":["Yucateco","Yucatec Maya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yub","Description":["Yugambal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuc","Description":["Yuchi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yud","Description":["Judeo-Tripolitanian Arabic"],"Added":"2009-07-29","Macrolanguage":"jrb"},{"Type":"language","Subtag":"yue","Description":["Yue Chinese","Cantonese"],"Added":"2009-07-29","Macrolanguage":"zh"},{"Type":"language","Subtag":"yuf","Description":["Havasupai-Walapai-Yavapai"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yug","Description":["Yug"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yui","Description":["Yurutí"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuj","Description":["Karkar-Yuri"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuk","Description":["Yuki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yul","Description":["Yulu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yum","Description":["Quechan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yun","Description":["Bena (Nigeria)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yup","Description":["Yukpa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuq","Description":["Yuqui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yur","Description":["Yurok"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yut","Description":["Yopno"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuu","Description":["Yugh"],"Added":"2009-07-29","Deprecated":"2014-02-28","Preferred-Value":"yug"},{"Type":"language","Subtag":"yuw","Description":["Yau (Morobe Province)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yux","Description":["Southern Yukaghir"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuy","Description":["East Yugur"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yuz","Description":["Yuracare"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yva","Description":["Yawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yvt","Description":["Yavitero"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywa","Description":["Kalou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywg","Description":["Yinhawangka"],"Added":"2013-09-10"},{"Type":"language","Subtag":"ywl","Description":["Western Lalu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywn","Description":["Yawanawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywq","Description":["Wuding-Luquan Yi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywr","Description":["Yawuru"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywt","Description":["Xishanba Lalo","Central Lalo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ywu","Description":["Wumeng Nasu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yww","Description":["Yawarawarga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yxa","Description":["Mayawali"],"Added":"2013-09-10"},{"Type":"language","Subtag":"yxg","Description":["Yagara"],"Added":"2012-08-12"},{"Type":"language","Subtag":"yxl","Description":["Yardliyawarra"],"Added":"2013-09-10"},{"Type":"language","Subtag":"yxm","Description":["Yinwum"],"Added":"2013-09-10"},{"Type":"language","Subtag":"yxu","Description":["Yuyu"],"Added":"2013-09-10"},{"Type":"language","Subtag":"yxy","Description":["Yabula Yabula"],"Added":"2012-08-12"},{"Type":"language","Subtag":"yyr","Description":["Yir Yoront"],"Added":"2013-09-03"},{"Type":"language","Subtag":"yyu","Description":["Yau (Sandaun Province)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yyz","Description":["Ayizi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yzg","Description":["E\'ma Buyang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"yzk","Description":["Zokhuo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zaa","Description":["Sierra de Juárez Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zab","Description":["Western Tlacolula Valley Zapotec","San Juan Guelavía Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zac","Description":["Ocotlán Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zad","Description":["Cajonos Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zae","Description":["Yareni Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zaf","Description":["Ayoquesco Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zag","Description":["Zaghawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zah","Description":["Zangwal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zai","Description":["Isthmus Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zaj","Description":["Zaramo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zak","Description":["Zanaki"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zal","Description":["Zauzou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zam","Description":["Miahuatlán Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zao","Description":["Ozolotepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zap","Description":["Zapotec"],"Added":"2005-10-16","Scope":"macrolanguage"},{"Type":"language","Subtag":"zaq","Description":["Aloápam Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zar","Description":["Rincón Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zas","Description":["Santo Domingo Albarradas Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zat","Description":["Tabaa Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zau","Description":["Zangskari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zav","Description":["Yatzachi Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zaw","Description":["Mitla Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zax","Description":["Xadani Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zay","Description":["Zayse-Zergulla","Zaysete"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zaz","Description":["Zari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zbc","Description":["Central Berawan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zbe","Description":["East Berawan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zbl","Description":["Blissymbols","Bliss","Blissymbolics"],"Added":"2007-08-21","Suppress-Script":"Blis"},{"Type":"language","Subtag":"zbt","Description":["Batui"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zbw","Description":["West Berawan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zca","Description":["Coatecas Altas Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zch","Description":["Central Hongshuihe Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zdj","Description":["Ngazidja Comorian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zea","Description":["Zeeuws"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zeg","Description":["Zenag"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zeh","Description":["Eastern Hongshuihe Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zen","Description":["Zenaga"],"Added":"2005-10-16"},{"Type":"language","Subtag":"zga","Description":["Kinga"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zgb","Description":["Guibei Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zgh","Description":["Standard Moroccan Tamazight"],"Added":"2013-01-25"},{"Type":"language","Subtag":"zgm","Description":["Minz Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zgn","Description":["Guibian Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zgr","Description":["Magori"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zhb","Description":["Zhaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zhd","Description":["Dai Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zhi","Description":["Zhire"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zhn","Description":["Nong Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zhw","Description":["Zhoa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zhx","Description":["Chinese (family)"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"zia","Description":["Zia"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zib","Description":["Zimbabwe Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zik","Description":["Zimakani"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zil","Description":["Zialo"],"Added":"2011-08-16"},{"Type":"language","Subtag":"zim","Description":["Mesme"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zin","Description":["Zinza"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zir","Description":["Ziriya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ziw","Description":["Zigula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"ziz","Description":["Zizilivakan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zka","Description":["Kaimbulawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkb","Description":["Koibal"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkd","Description":["Kadu"],"Added":"2012-08-12"},{"Type":"language","Subtag":"zkg","Description":["Koguryo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkh","Description":["Khorezmian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkk","Description":["Karankawa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkn","Description":["Kanan"],"Added":"2012-08-12"},{"Type":"language","Subtag":"zko","Description":["Kott"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkp","Description":["São Paulo Kaingáng"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkr","Description":["Zakhring"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkt","Description":["Kitan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zku","Description":["Kaurna"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkv","Description":["Krevinian"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zkz","Description":["Khazar"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zle","Description":["East Slavic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"zlj","Description":["Liujiang Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zlm","Description":["Malay (individual language)"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"zln","Description":["Lianshan Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zlq","Description":["Liuqian Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zls","Description":["South Slavic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"zlw","Description":["West Slavic languages"],"Added":"2009-07-29","Scope":"collection"},{"Type":"language","Subtag":"zma","Description":["Manda (Australia)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmb","Description":["Zimba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmc","Description":["Margany"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmd","Description":["Maridan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zme","Description":["Mangerr"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmf","Description":["Mfinu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmg","Description":["Marti Ke"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmh","Description":["Makolkol"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmi","Description":["Negeri Sembilan Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"zmj","Description":["Maridjabin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmk","Description":["Mandandanyi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zml","Description":["Matngala"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmm","Description":["Marimanindji","Marramaninyshi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmn","Description":["Mbangwe"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmo","Description":["Molo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmp","Description":["Mpuono"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmq","Description":["Mituku"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmr","Description":["Maranunggu"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zms","Description":["Mbesa"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmt","Description":["Maringarr"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmu","Description":["Muruwari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmv","Description":["Mbariman-Gudhinma"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmw","Description":["Mbo (Democratic Republic of Congo)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmx","Description":["Bomitaba"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmy","Description":["Mariyedi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zmz","Description":["Mbandja"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zna","Description":["Zan Gula"],"Added":"2009-07-29"},{"Type":"language","Subtag":"znd","Description":["Zande languages"],"Added":"2005-10-16","Scope":"collection"},{"Type":"language","Subtag":"zne","Description":["Zande (individual language)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zng","Description":["Mang"],"Added":"2009-07-29"},{"Type":"language","Subtag":"znk","Description":["Manangkari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zns","Description":["Mangas"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zoc","Description":["Copainalá Zoque"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zoh","Description":["Chimalapa Zoque"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zom","Description":["Zou"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zoo","Description":["Asunción Mixtepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zoq","Description":["Tabasco Zoque"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zor","Description":["Rayón Zoque"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zos","Description":["Francisco León Zoque"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zpa","Description":["Lachiguiri Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpb","Description":["Yautepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpc","Description":["Choapan Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpd","Description":["Southeastern Ixtlán Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpe","Description":["Petapa Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpf","Description":["San Pedro Quiatoni Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpg","Description":["Guevea De Humboldt Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zph","Description":["Totomachapan Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpi","Description":["Santa María Quiegolani Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpj","Description":["Quiavicuzas Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpk","Description":["Tlacolulita Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpl","Description":["Lachixío Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpm","Description":["Mixtepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpn","Description":["Santa Inés Yatzechi Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpo","Description":["Amatlán Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpp","Description":["El Alto Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpq","Description":["Zoogocho Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpr","Description":["Santiago Xanica Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zps","Description":["Coatlán Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpt","Description":["San Vicente Coatlán Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpu","Description":["Yalálag Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpv","Description":["Chichicapan Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpw","Description":["Zaniza Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpx","Description":["San Baltazar Loxicha Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpy","Description":["Mazaltepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zpz","Description":["Texmelucan Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zqe","Description":["Qiubei Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zra","Description":["Kara (Korea)"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zrg","Description":["Mirgan"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zrn","Description":["Zerenkel"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zro","Description":["Záparo"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zrp","Description":["Zarphatic"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zrs","Description":["Mairasi"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zsa","Description":["Sarasira"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zsk","Description":["Kaskean"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zsl","Description":["Zambian Sign Language"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zsm","Description":["Standard Malay"],"Added":"2009-07-29","Macrolanguage":"ms"},{"Type":"language","Subtag":"zsr","Description":["Southern Rincon Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zsu","Description":["Sukurum"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zte","Description":["Elotepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztg","Description":["Xanaguía Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztl","Description":["Lapaguía-Guivini Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztm","Description":["San Agustín Mixtepec Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztn","Description":["Santa Catarina Albarradas Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztp","Description":["Loxicha Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztq","Description":["Quioquitani-Quierí Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zts","Description":["Tilquiapan Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztt","Description":["Tejalapan Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztu","Description":["Güilá Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"ztx","Description":["Zaachila Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zty","Description":["Yatee Zapotec"],"Added":"2009-07-29","Macrolanguage":"zap"},{"Type":"language","Subtag":"zua","Description":["Zeem"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zuh","Description":["Tokano"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zum","Description":["Kumzari"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zun","Description":["Zuni"],"Added":"2005-10-16"},{"Type":"language","Subtag":"zuy","Description":["Zumaya"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zwa","Description":["Zay"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zxx","Description":["No linguistic content","Not applicable"],"Added":"2006-03-08","Scope":"special"},{"Type":"language","Subtag":"zyb","Description":["Yongbei Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zyg","Description":["Yang Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zyj","Description":["Youjiang Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zyn","Description":["Yongnan Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"language","Subtag":"zyp","Description":["Zyphe Chin"],"Added":"2009-07-29"},{"Type":"language","Subtag":"zza","Description":["Zaza","Dimili","Dimli (macrolanguage)","Kirdki","Kirmanjki (macrolanguage)","Zazaki"],"Added":"2006-08-24","Scope":"macrolanguage"},{"Type":"language","Subtag":"zzj","Description":["Zuojiang Zhuang"],"Added":"2009-07-29","Macrolanguage":"za"},{"Type":"extlang","Subtag":"aao","Description":["Algerian Saharan Arabic"],"Added":"2009-07-29","Preferred-Value":"aao","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"abh","Description":["Tajiki Arabic"],"Added":"2009-07-29","Preferred-Value":"abh","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"abv","Description":["Baharna Arabic"],"Added":"2009-07-29","Preferred-Value":"abv","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"acm","Description":["Mesopotamian Arabic"],"Added":"2009-07-29","Preferred-Value":"acm","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"acq","Description":["Ta\'izzi-Adeni Arabic"],"Added":"2009-07-29","Preferred-Value":"acq","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"acw","Description":["Hijazi Arabic"],"Added":"2009-07-29","Preferred-Value":"acw","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"acx","Description":["Omani Arabic"],"Added":"2009-07-29","Preferred-Value":"acx","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"acy","Description":["Cypriot Arabic"],"Added":"2009-07-29","Preferred-Value":"acy","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"adf","Description":["Dhofari Arabic"],"Added":"2009-07-29","Preferred-Value":"adf","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ads","Description":["Adamorobe Sign Language"],"Added":"2009-07-29","Preferred-Value":"ads","Prefix":["sgn"]},{"Type":"extlang","Subtag":"aeb","Description":["Tunisian Arabic"],"Added":"2009-07-29","Preferred-Value":"aeb","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"aec","Description":["Saidi Arabic"],"Added":"2009-07-29","Preferred-Value":"aec","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"aed","Description":["Argentine Sign Language"],"Added":"2009-07-29","Preferred-Value":"aed","Prefix":["sgn"]},{"Type":"extlang","Subtag":"aen","Description":["Armenian Sign Language"],"Added":"2009-07-29","Preferred-Value":"aen","Prefix":["sgn"]},{"Type":"extlang","Subtag":"afb","Description":["Gulf Arabic"],"Added":"2009-07-29","Preferred-Value":"afb","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"afg","Description":["Afghan Sign Language"],"Added":"2009-07-29","Preferred-Value":"afg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ajp","Description":["South Levantine Arabic"],"Added":"2009-07-29","Preferred-Value":"ajp","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"apc","Description":["North Levantine Arabic"],"Added":"2009-07-29","Preferred-Value":"apc","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"apd","Description":["Sudanese Arabic"],"Added":"2009-07-29","Preferred-Value":"apd","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"arb","Description":["Standard Arabic"],"Added":"2009-07-29","Preferred-Value":"arb","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"arq","Description":["Algerian Arabic"],"Added":"2009-07-29","Preferred-Value":"arq","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ars","Description":["Najdi Arabic"],"Added":"2009-07-29","Preferred-Value":"ars","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ary","Description":["Moroccan Arabic"],"Added":"2009-07-29","Preferred-Value":"ary","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"arz","Description":["Egyptian Arabic"],"Added":"2009-07-29","Preferred-Value":"arz","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ase","Description":["American Sign Language"],"Added":"2009-07-29","Preferred-Value":"ase","Prefix":["sgn"]},{"Type":"extlang","Subtag":"asf","Description":["Auslan","Australian Sign Language"],"Added":"2009-07-29","Preferred-Value":"asf","Prefix":["sgn"]},{"Type":"extlang","Subtag":"asp","Description":["Algerian Sign Language"],"Added":"2009-07-29","Preferred-Value":"asp","Prefix":["sgn"]},{"Type":"extlang","Subtag":"asq","Description":["Austrian Sign Language"],"Added":"2009-07-29","Preferred-Value":"asq","Prefix":["sgn"]},{"Type":"extlang","Subtag":"asw","Description":["Australian Aborigines Sign Language"],"Added":"2009-07-29","Preferred-Value":"asw","Prefix":["sgn"]},{"Type":"extlang","Subtag":"auz","Description":["Uzbeki Arabic"],"Added":"2009-07-29","Preferred-Value":"auz","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"avl","Description":["Eastern Egyptian Bedawi Arabic"],"Added":"2009-07-29","Preferred-Value":"avl","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ayh","Description":["Hadrami Arabic"],"Added":"2009-07-29","Preferred-Value":"ayh","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ayl","Description":["Libyan Arabic"],"Added":"2009-07-29","Preferred-Value":"ayl","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ayn","Description":["Sanaani Arabic"],"Added":"2009-07-29","Preferred-Value":"ayn","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ayp","Description":["North Mesopotamian Arabic"],"Added":"2009-07-29","Preferred-Value":"ayp","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"bbz","Description":["Babalia Creole Arabic"],"Added":"2009-07-29","Preferred-Value":"bbz","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"bfi","Description":["British Sign Language"],"Added":"2009-07-29","Preferred-Value":"bfi","Prefix":["sgn"]},{"Type":"extlang","Subtag":"bfk","Description":["Ban Khor Sign Language"],"Added":"2009-07-29","Preferred-Value":"bfk","Prefix":["sgn"]},{"Type":"extlang","Subtag":"bjn","Description":["Banjar"],"Added":"2009-07-29","Preferred-Value":"bjn","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"bog","Description":["Bamako Sign Language"],"Added":"2009-07-29","Preferred-Value":"bog","Prefix":["sgn"]},{"Type":"extlang","Subtag":"bqn","Description":["Bulgarian Sign Language"],"Added":"2009-07-29","Preferred-Value":"bqn","Prefix":["sgn"]},{"Type":"extlang","Subtag":"bqy","Description":["Bengkala Sign Language"],"Added":"2009-07-29","Preferred-Value":"bqy","Prefix":["sgn"]},{"Type":"extlang","Subtag":"btj","Description":["Bacanese Malay"],"Added":"2009-07-29","Preferred-Value":"btj","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"bve","Description":["Berau Malay"],"Added":"2009-07-29","Preferred-Value":"bve","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"bvl","Description":["Bolivian Sign Language"],"Added":"2009-07-29","Preferred-Value":"bvl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"bvu","Description":["Bukit Malay"],"Added":"2009-07-29","Preferred-Value":"bvu","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"bzs","Description":["Brazilian Sign Language"],"Added":"2009-07-29","Preferred-Value":"bzs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"cdo","Description":["Min Dong Chinese"],"Added":"2009-07-29","Preferred-Value":"cdo","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"cds","Description":["Chadian Sign Language"],"Added":"2009-07-29","Preferred-Value":"cds","Prefix":["sgn"]},{"Type":"extlang","Subtag":"cjy","Description":["Jinyu Chinese"],"Added":"2009-07-29","Preferred-Value":"cjy","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"cmn","Description":["Mandarin Chinese"],"Added":"2009-07-29","Preferred-Value":"cmn","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"coa","Description":["Cocos Islands Malay"],"Added":"2009-07-29","Preferred-Value":"coa","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"cpx","Description":["Pu-Xian Chinese"],"Added":"2009-07-29","Preferred-Value":"cpx","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"csc","Description":["Catalan Sign Language","Lengua de señas catalana","Llengua de Signes Catalana"],"Added":"2009-07-29","Preferred-Value":"csc","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csd","Description":["Chiangmai Sign Language"],"Added":"2009-07-29","Preferred-Value":"csd","Prefix":["sgn"]},{"Type":"extlang","Subtag":"cse","Description":["Czech Sign Language"],"Added":"2009-07-29","Preferred-Value":"cse","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csf","Description":["Cuba Sign Language"],"Added":"2009-07-29","Preferred-Value":"csf","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csg","Description":["Chilean Sign Language"],"Added":"2009-07-29","Preferred-Value":"csg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csl","Description":["Chinese Sign Language"],"Added":"2009-07-29","Preferred-Value":"csl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csn","Description":["Colombian Sign Language"],"Added":"2009-07-29","Preferred-Value":"csn","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csq","Description":["Croatia Sign Language"],"Added":"2009-07-29","Preferred-Value":"csq","Prefix":["sgn"]},{"Type":"extlang","Subtag":"csr","Description":["Costa Rican Sign Language"],"Added":"2009-07-29","Preferred-Value":"csr","Prefix":["sgn"]},{"Type":"extlang","Subtag":"czh","Description":["Huizhou Chinese"],"Added":"2009-07-29","Preferred-Value":"czh","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"czo","Description":["Min Zhong Chinese"],"Added":"2009-07-29","Preferred-Value":"czo","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"doq","Description":["Dominican Sign Language"],"Added":"2009-07-29","Preferred-Value":"doq","Prefix":["sgn"]},{"Type":"extlang","Subtag":"dse","Description":["Dutch Sign Language"],"Added":"2009-07-29","Preferred-Value":"dse","Prefix":["sgn"]},{"Type":"extlang","Subtag":"dsl","Description":["Danish Sign Language"],"Added":"2009-07-29","Preferred-Value":"dsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"dup","Description":["Duano"],"Added":"2009-07-29","Preferred-Value":"dup","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"ecs","Description":["Ecuadorian Sign Language"],"Added":"2009-07-29","Preferred-Value":"ecs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"esl","Description":["Egypt Sign Language"],"Added":"2009-07-29","Preferred-Value":"esl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"esn","Description":["Salvadoran Sign Language"],"Added":"2009-07-29","Preferred-Value":"esn","Prefix":["sgn"]},{"Type":"extlang","Subtag":"eso","Description":["Estonian Sign Language"],"Added":"2009-07-29","Preferred-Value":"eso","Prefix":["sgn"]},{"Type":"extlang","Subtag":"eth","Description":["Ethiopian Sign Language"],"Added":"2009-07-29","Preferred-Value":"eth","Prefix":["sgn"]},{"Type":"extlang","Subtag":"fcs","Description":["Quebec Sign Language"],"Added":"2009-07-29","Preferred-Value":"fcs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"fse","Description":["Finnish Sign Language"],"Added":"2009-07-29","Preferred-Value":"fse","Prefix":["sgn"]},{"Type":"extlang","Subtag":"fsl","Description":["French Sign Language"],"Added":"2009-07-29","Preferred-Value":"fsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"fss","Description":["Finland-Swedish Sign Language","finlandssvenskt teckenspråk","suomenruotsalainen viittomakieli"],"Added":"2009-07-29","Preferred-Value":"fss","Prefix":["sgn"]},{"Type":"extlang","Subtag":"gan","Description":["Gan Chinese"],"Added":"2009-07-29","Preferred-Value":"gan","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"gds","Description":["Ghandruk Sign Language"],"Added":"2012-08-12","Preferred-Value":"gds","Prefix":["sgn"]},{"Type":"extlang","Subtag":"gom","Description":["Goan Konkani"],"Added":"2009-07-29","Preferred-Value":"gom","Prefix":["kok"],"Macrolanguage":"kok"},{"Type":"extlang","Subtag":"gse","Description":["Ghanaian Sign Language"],"Added":"2009-07-29","Preferred-Value":"gse","Prefix":["sgn"]},{"Type":"extlang","Subtag":"gsg","Description":["German Sign Language"],"Added":"2009-07-29","Preferred-Value":"gsg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"gsm","Description":["Guatemalan Sign Language"],"Added":"2009-07-29","Preferred-Value":"gsm","Prefix":["sgn"]},{"Type":"extlang","Subtag":"gss","Description":["Greek Sign Language"],"Added":"2009-07-29","Preferred-Value":"gss","Prefix":["sgn"]},{"Type":"extlang","Subtag":"gus","Description":["Guinean Sign Language"],"Added":"2009-07-29","Preferred-Value":"gus","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hab","Description":["Hanoi Sign Language"],"Added":"2009-07-29","Preferred-Value":"hab","Prefix":["sgn"]},{"Type":"extlang","Subtag":"haf","Description":["Haiphong Sign Language"],"Added":"2009-07-29","Preferred-Value":"haf","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hak","Description":["Hakka Chinese"],"Added":"2009-07-29","Preferred-Value":"hak","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"hds","Description":["Honduras Sign Language"],"Added":"2009-07-29","Preferred-Value":"hds","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hji","Description":["Haji"],"Added":"2009-07-29","Preferred-Value":"hji","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"hks","Description":["Hong Kong Sign Language","Heung Kong Sau Yue"],"Added":"2009-07-29","Preferred-Value":"hks","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hos","Description":["Ho Chi Minh City Sign Language"],"Added":"2009-07-29","Preferred-Value":"hos","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hps","Description":["Hawai\'i Sign Language (HSL)","Hawai\'i Pidgin Sign Language"],"Added":"2009-07-29","Preferred-Value":"hps","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hsh","Description":["Hungarian Sign Language"],"Added":"2009-07-29","Preferred-Value":"hsh","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hsl","Description":["Hausa Sign Language"],"Added":"2009-07-29","Preferred-Value":"hsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"hsn","Description":["Xiang Chinese"],"Added":"2009-07-29","Preferred-Value":"hsn","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"icl","Description":["Icelandic Sign Language"],"Added":"2009-07-29","Preferred-Value":"icl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"iks","Description":["Inuit Sign Language"],"Added":"2015-02-12","Preferred-Value":"iks","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ils","Description":["International Sign"],"Added":"2009-07-29","Preferred-Value":"ils","Prefix":["sgn"]},{"Type":"extlang","Subtag":"inl","Description":["Indonesian Sign Language"],"Added":"2009-07-29","Preferred-Value":"inl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ins","Description":["Indian Sign Language"],"Added":"2009-07-29","Preferred-Value":"ins","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ise","Description":["Italian Sign Language"],"Added":"2009-07-29","Preferred-Value":"ise","Prefix":["sgn"]},{"Type":"extlang","Subtag":"isg","Description":["Irish Sign Language"],"Added":"2009-07-29","Preferred-Value":"isg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"isr","Description":["Israeli Sign Language"],"Added":"2009-07-29","Preferred-Value":"isr","Prefix":["sgn"]},{"Type":"extlang","Subtag":"jak","Description":["Jakun"],"Added":"2009-07-29","Preferred-Value":"jak","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"jax","Description":["Jambi Malay"],"Added":"2009-07-29","Preferred-Value":"jax","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"jcs","Description":["Jamaican Country Sign Language"],"Added":"2009-07-29","Preferred-Value":"jcs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"jhs","Description":["Jhankot Sign Language"],"Added":"2009-07-29","Preferred-Value":"jhs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"jls","Description":["Jamaican Sign Language"],"Added":"2010-03-11","Preferred-Value":"jls","Prefix":["sgn"]},{"Type":"extlang","Subtag":"jos","Description":["Jordanian Sign Language"],"Added":"2009-07-29","Preferred-Value":"jos","Prefix":["sgn"]},{"Type":"extlang","Subtag":"jsl","Description":["Japanese Sign Language"],"Added":"2009-07-29","Preferred-Value":"jsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"jus","Description":["Jumla Sign Language"],"Added":"2009-07-29","Preferred-Value":"jus","Prefix":["sgn"]},{"Type":"extlang","Subtag":"kgi","Description":["Selangor Sign Language"],"Added":"2009-07-29","Preferred-Value":"kgi","Prefix":["sgn"]},{"Type":"extlang","Subtag":"knn","Description":["Konkani (individual language)"],"Added":"2009-07-29","Preferred-Value":"knn","Prefix":["kok"],"Macrolanguage":"kok"},{"Type":"extlang","Subtag":"kvb","Description":["Kubu"],"Added":"2009-07-29","Preferred-Value":"kvb","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"kvk","Description":["Korean Sign Language"],"Added":"2009-07-29","Preferred-Value":"kvk","Prefix":["sgn"]},{"Type":"extlang","Subtag":"kvr","Description":["Kerinci"],"Added":"2009-07-29","Preferred-Value":"kvr","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"kxd","Description":["Brunei"],"Added":"2009-07-29","Preferred-Value":"kxd","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"lbs","Description":["Libyan Sign Language"],"Added":"2009-07-29","Preferred-Value":"lbs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lce","Description":["Loncong","Sekak"],"Added":"2009-07-29","Preferred-Value":"lce","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"lcf","Description":["Lubu"],"Added":"2009-07-29","Preferred-Value":"lcf","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"liw","Description":["Col"],"Added":"2009-07-29","Preferred-Value":"liw","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"lls","Description":["Lithuanian Sign Language"],"Added":"2009-07-29","Preferred-Value":"lls","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lsg","Description":["Lyons Sign Language"],"Added":"2009-07-29","Deprecated":"2018-03-08","Preferred-Value":"lsg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lsl","Description":["Latvian Sign Language"],"Added":"2009-07-29","Preferred-Value":"lsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lsn","Description":["Tibetan Sign Language"],"Added":"2019-04-16","Preferred-Value":"lsn","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lso","Description":["Laos Sign Language"],"Added":"2009-07-29","Preferred-Value":"lso","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lsp","Description":["Panamanian Sign Language","Lengua de Señas Panameñas"],"Added":"2009-07-29","Preferred-Value":"lsp","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lst","Description":["Trinidad and Tobago Sign Language"],"Added":"2009-07-29","Preferred-Value":"lst","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lsv","Description":["Sivia Sign Language"],"Added":"2019-04-16","Preferred-Value":"lsv","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lsy","Description":["Mauritian Sign Language"],"Added":"2010-03-11","Preferred-Value":"lsy","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ltg","Description":["Latgalian"],"Added":"2010-03-11","Preferred-Value":"ltg","Prefix":["lv"],"Macrolanguage":"lv"},{"Type":"extlang","Subtag":"lvs","Description":["Standard Latvian"],"Added":"2010-03-11","Preferred-Value":"lvs","Prefix":["lv"],"Macrolanguage":"lv"},{"Type":"extlang","Subtag":"lws","Description":["Malawian Sign Language"],"Added":"2018-03-08","Preferred-Value":"lws","Prefix":["sgn"]},{"Type":"extlang","Subtag":"lzh","Description":["Literary Chinese"],"Added":"2009-07-29","Preferred-Value":"lzh","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"max","Description":["North Moluccan Malay"],"Added":"2009-07-29","Preferred-Value":"max","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mdl","Description":["Maltese Sign Language"],"Added":"2009-07-29","Preferred-Value":"mdl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"meo","Description":["Kedah Malay"],"Added":"2009-07-29","Preferred-Value":"meo","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mfa","Description":["Pattani Malay"],"Added":"2009-07-29","Preferred-Value":"mfa","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mfb","Description":["Bangka"],"Added":"2009-07-29","Preferred-Value":"mfb","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mfs","Description":["Mexican Sign Language"],"Added":"2009-07-29","Preferred-Value":"mfs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"min","Description":["Minangkabau"],"Added":"2009-07-29","Preferred-Value":"min","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mnp","Description":["Min Bei Chinese"],"Added":"2009-07-29","Preferred-Value":"mnp","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"mqg","Description":["Kota Bangun Kutai Malay"],"Added":"2009-07-29","Preferred-Value":"mqg","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mre","Description":["Martha\'s Vineyard Sign Language"],"Added":"2009-07-29","Preferred-Value":"mre","Prefix":["sgn"]},{"Type":"extlang","Subtag":"msd","Description":["Yucatec Maya Sign Language"],"Added":"2009-07-29","Preferred-Value":"msd","Prefix":["sgn"]},{"Type":"extlang","Subtag":"msi","Description":["Sabah Malay"],"Added":"2009-07-29","Preferred-Value":"msi","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"msr","Description":["Mongolian Sign Language"],"Added":"2009-07-29","Preferred-Value":"msr","Prefix":["sgn"]},{"Type":"extlang","Subtag":"mui","Description":["Musi"],"Added":"2009-07-29","Preferred-Value":"mui","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"mzc","Description":["Madagascar Sign Language"],"Added":"2009-07-29","Preferred-Value":"mzc","Prefix":["sgn"]},{"Type":"extlang","Subtag":"mzg","Description":["Monastic Sign Language"],"Added":"2009-07-29","Preferred-Value":"mzg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"mzy","Description":["Mozambican Sign Language"],"Added":"2009-07-29","Preferred-Value":"mzy","Prefix":["sgn"]},{"Type":"extlang","Subtag":"nan","Description":["Min Nan Chinese"],"Added":"2009-07-29","Preferred-Value":"nan","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"nbs","Description":["Namibian Sign Language"],"Added":"2009-07-29","Preferred-Value":"nbs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ncs","Description":["Nicaraguan Sign Language"],"Added":"2009-07-29","Preferred-Value":"ncs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"nsi","Description":["Nigerian Sign Language"],"Added":"2009-07-29","Preferred-Value":"nsi","Prefix":["sgn"]},{"Type":"extlang","Subtag":"nsl","Description":["Norwegian Sign Language"],"Added":"2009-07-29","Preferred-Value":"nsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"nsp","Description":["Nepalese Sign Language"],"Added":"2009-07-29","Preferred-Value":"nsp","Prefix":["sgn"]},{"Type":"extlang","Subtag":"nsr","Description":["Maritime Sign Language"],"Added":"2009-07-29","Preferred-Value":"nsr","Prefix":["sgn"]},{"Type":"extlang","Subtag":"nzs","Description":["New Zealand Sign Language"],"Added":"2009-07-29","Preferred-Value":"nzs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"okl","Description":["Old Kentish Sign Language"],"Added":"2009-07-29","Preferred-Value":"okl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"orn","Description":["Orang Kanaq"],"Added":"2009-07-29","Preferred-Value":"orn","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"ors","Description":["Orang Seletar"],"Added":"2009-07-29","Preferred-Value":"ors","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"pel","Description":["Pekal"],"Added":"2009-07-29","Preferred-Value":"pel","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"pga","Description":["Sudanese Creole Arabic"],"Added":"2009-07-29","Preferred-Value":"pga","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"pgz","Description":["Papua New Guinean Sign Language"],"Added":"2016-05-30","Preferred-Value":"pgz","Prefix":["sgn"]},{"Type":"extlang","Subtag":"pks","Description":["Pakistan Sign Language"],"Added":"2009-07-29","Preferred-Value":"pks","Prefix":["sgn"]},{"Type":"extlang","Subtag":"prl","Description":["Peruvian Sign Language"],"Added":"2009-07-29","Preferred-Value":"prl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"prz","Description":["Providencia Sign Language"],"Added":"2009-07-29","Preferred-Value":"prz","Prefix":["sgn"]},{"Type":"extlang","Subtag":"psc","Description":["Persian Sign Language"],"Added":"2009-07-29","Preferred-Value":"psc","Prefix":["sgn"]},{"Type":"extlang","Subtag":"psd","Description":["Plains Indian Sign Language"],"Added":"2009-07-29","Preferred-Value":"psd","Prefix":["sgn"]},{"Type":"extlang","Subtag":"pse","Description":["Central Malay"],"Added":"2009-07-29","Preferred-Value":"pse","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"psg","Description":["Penang Sign Language"],"Added":"2009-07-29","Preferred-Value":"psg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"psl","Description":["Puerto Rican Sign Language"],"Added":"2009-07-29","Preferred-Value":"psl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"pso","Description":["Polish Sign Language"],"Added":"2009-07-29","Preferred-Value":"pso","Prefix":["sgn"]},{"Type":"extlang","Subtag":"psp","Description":["Philippine Sign Language"],"Added":"2009-07-29","Preferred-Value":"psp","Prefix":["sgn"]},{"Type":"extlang","Subtag":"psr","Description":["Portuguese Sign Language"],"Added":"2009-07-29","Preferred-Value":"psr","Prefix":["sgn"]},{"Type":"extlang","Subtag":"pys","Description":["Paraguayan Sign Language","Lengua de Señas del Paraguay"],"Added":"2010-03-11","Preferred-Value":"pys","Prefix":["sgn"]},{"Type":"extlang","Subtag":"rms","Description":["Romanian Sign Language"],"Added":"2009-07-29","Preferred-Value":"rms","Prefix":["sgn"]},{"Type":"extlang","Subtag":"rsi","Description":["Rennellese Sign Language"],"Added":"2009-07-29","Deprecated":"2017-02-23","Preferred-Value":"rsi","Prefix":["sgn"]},{"Type":"extlang","Subtag":"rsl","Description":["Russian Sign Language"],"Added":"2009-07-29","Preferred-Value":"rsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"rsm","Description":["Miriwoong Sign Language"],"Added":"2016-05-30","Preferred-Value":"rsm","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sdl","Description":["Saudi Arabian Sign Language"],"Added":"2009-07-29","Preferred-Value":"sdl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sfb","Description":["Langue des signes de Belgique Francophone","French Belgian Sign Language"],"Added":"2009-07-29","Preferred-Value":"sfb","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sfs","Description":["South African Sign Language"],"Added":"2009-07-29","Preferred-Value":"sfs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sgg","Description":["Swiss-German Sign Language"],"Added":"2009-07-29","Preferred-Value":"sgg","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sgx","Description":["Sierra Leone Sign Language"],"Added":"2009-07-29","Preferred-Value":"sgx","Prefix":["sgn"]},{"Type":"extlang","Subtag":"shu","Description":["Chadian Arabic"],"Added":"2009-07-29","Preferred-Value":"shu","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"slf","Description":["Swiss-Italian Sign Language"],"Added":"2009-07-29","Preferred-Value":"slf","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sls","Description":["Singapore Sign Language"],"Added":"2009-07-29","Preferred-Value":"sls","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sqk","Description":["Albanian Sign Language"],"Added":"2012-08-12","Preferred-Value":"sqk","Prefix":["sgn"]},{"Type":"extlang","Subtag":"sqs","Description":["Sri Lankan Sign Language"],"Added":"2009-07-29","Preferred-Value":"sqs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ssh","Description":["Shihhi Arabic"],"Added":"2009-07-29","Preferred-Value":"ssh","Prefix":["ar"],"Macrolanguage":"ar"},{"Type":"extlang","Subtag":"ssp","Description":["Spanish Sign Language"],"Added":"2009-07-29","Preferred-Value":"ssp","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ssr","Description":["Swiss-French Sign Language"],"Added":"2009-07-29","Preferred-Value":"ssr","Prefix":["sgn"]},{"Type":"extlang","Subtag":"svk","Description":["Slovakian Sign Language"],"Added":"2009-07-29","Preferred-Value":"svk","Prefix":["sgn"]},{"Type":"extlang","Subtag":"swc","Description":["Congo Swahili"],"Added":"2009-07-29","Preferred-Value":"swc","Prefix":["sw"],"Macrolanguage":"sw"},{"Type":"extlang","Subtag":"swh","Description":["Swahili (individual language)","Kiswahili"],"Added":"2009-07-29","Preferred-Value":"swh","Prefix":["sw"],"Macrolanguage":"sw"},{"Type":"extlang","Subtag":"swl","Description":["Swedish Sign Language"],"Added":"2009-07-29","Preferred-Value":"swl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"syy","Description":["Al-Sayyid Bedouin Sign Language"],"Added":"2009-07-29","Preferred-Value":"syy","Prefix":["sgn"]},{"Type":"extlang","Subtag":"szs","Description":["Solomon Islands Sign Language"],"Added":"2017-02-23","Preferred-Value":"szs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"tmw","Description":["Temuan"],"Added":"2009-07-29","Preferred-Value":"tmw","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"tse","Description":["Tunisian Sign Language"],"Added":"2009-07-29","Preferred-Value":"tse","Prefix":["sgn"]},{"Type":"extlang","Subtag":"tsm","Description":["Turkish Sign Language","Türk İşaret Dili"],"Added":"2009-07-29","Preferred-Value":"tsm","Prefix":["sgn"]},{"Type":"extlang","Subtag":"tsq","Description":["Thai Sign Language"],"Added":"2009-07-29","Preferred-Value":"tsq","Prefix":["sgn"]},{"Type":"extlang","Subtag":"tss","Description":["Taiwan Sign Language"],"Added":"2009-07-29","Preferred-Value":"tss","Prefix":["sgn"]},{"Type":"extlang","Subtag":"tsy","Description":["Tebul Sign Language"],"Added":"2009-07-29","Preferred-Value":"tsy","Prefix":["sgn"]},{"Type":"extlang","Subtag":"tza","Description":["Tanzanian Sign Language"],"Added":"2009-07-29","Preferred-Value":"tza","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ugn","Description":["Ugandan Sign Language"],"Added":"2009-07-29","Preferred-Value":"ugn","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ugy","Description":["Uruguayan Sign Language"],"Added":"2009-07-29","Preferred-Value":"ugy","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ukl","Description":["Ukrainian Sign Language"],"Added":"2009-07-29","Preferred-Value":"ukl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"uks","Description":["Urubú-Kaapor Sign Language","Kaapor Sign Language"],"Added":"2009-07-29","Preferred-Value":"uks","Prefix":["sgn"]},{"Type":"extlang","Subtag":"urk","Description":["Urak Lawoi\'"],"Added":"2009-07-29","Preferred-Value":"urk","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"uzn","Description":["Northern Uzbek"],"Added":"2009-07-29","Preferred-Value":"uzn","Prefix":["uz"],"Macrolanguage":"uz"},{"Type":"extlang","Subtag":"uzs","Description":["Southern Uzbek"],"Added":"2009-07-29","Preferred-Value":"uzs","Prefix":["uz"],"Macrolanguage":"uz"},{"Type":"extlang","Subtag":"vgt","Description":["Vlaamse Gebarentaal","Flemish Sign Language"],"Added":"2009-07-29","Preferred-Value":"vgt","Prefix":["sgn"]},{"Type":"extlang","Subtag":"vkk","Description":["Kaur"],"Added":"2009-07-29","Preferred-Value":"vkk","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"vkt","Description":["Tenggarong Kutai Malay"],"Added":"2009-07-29","Preferred-Value":"vkt","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"vsi","Description":["Moldova Sign Language"],"Added":"2009-07-29","Preferred-Value":"vsi","Prefix":["sgn"]},{"Type":"extlang","Subtag":"vsl","Description":["Venezuelan Sign Language"],"Added":"2009-07-29","Preferred-Value":"vsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"vsv","Description":["Valencian Sign Language","Llengua de signes valenciana"],"Added":"2009-07-29","Preferred-Value":"vsv","Prefix":["sgn"]},{"Type":"extlang","Subtag":"wbs","Description":["West Bengal Sign Language"],"Added":"2017-02-23","Preferred-Value":"wbs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"wuu","Description":["Wu Chinese"],"Added":"2009-07-29","Preferred-Value":"wuu","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"xki","Description":["Kenyan Sign Language"],"Added":"2009-07-29","Preferred-Value":"xki","Prefix":["sgn"]},{"Type":"extlang","Subtag":"xml","Description":["Malaysian Sign Language"],"Added":"2009-07-29","Preferred-Value":"xml","Prefix":["sgn"]},{"Type":"extlang","Subtag":"xmm","Description":["Manado Malay"],"Added":"2009-07-29","Preferred-Value":"xmm","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"xms","Description":["Moroccan Sign Language"],"Added":"2009-07-29","Preferred-Value":"xms","Prefix":["sgn"]},{"Type":"extlang","Subtag":"yds","Description":["Yiddish Sign Language"],"Added":"2009-07-29","Deprecated":"2015-02-12","Preferred-Value":"yds","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ygs","Description":["Yolŋu Sign Language"],"Added":"2014-02-28","Preferred-Value":"ygs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"yhs","Description":["Yan-nhaŋu Sign Language"],"Added":"2015-04-17","Preferred-Value":"yhs","Prefix":["sgn"]},{"Type":"extlang","Subtag":"ysl","Description":["Yugoslavian Sign Language"],"Added":"2009-07-29","Preferred-Value":"ysl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"yue","Description":["Yue Chinese","Cantonese"],"Added":"2009-07-29","Preferred-Value":"yue","Prefix":["zh"],"Macrolanguage":"zh"},{"Type":"extlang","Subtag":"zib","Description":["Zimbabwe Sign Language"],"Added":"2009-07-29","Preferred-Value":"zib","Prefix":["sgn"]},{"Type":"extlang","Subtag":"zlm","Description":["Malay (individual language)"],"Added":"2009-07-29","Preferred-Value":"zlm","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"zmi","Description":["Negeri Sembilan Malay"],"Added":"2009-07-29","Preferred-Value":"zmi","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"extlang","Subtag":"zsl","Description":["Zambian Sign Language"],"Added":"2009-07-29","Preferred-Value":"zsl","Prefix":["sgn"]},{"Type":"extlang","Subtag":"zsm","Description":["Standard Malay"],"Added":"2009-07-29","Preferred-Value":"zsm","Prefix":["ms"],"Macrolanguage":"ms"},{"Type":"script","Subtag":"Adlm","Description":["Adlam"],"Added":"2014-12-11"},{"Type":"script","Subtag":"Afak","Description":["Afaka"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Aghb","Description":["Caucasian Albanian"],"Added":"2012-11-01"},{"Type":"script","Subtag":"Ahom","Description":["Ahom","Tai Ahom"],"Added":"2013-12-02"},{"Type":"script","Subtag":"Arab","Description":["Arabic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Aran","Description":["Arabic (Nastaliq variant)"],"Added":"2014-12-11"},{"Type":"script","Subtag":"Armi","Description":["Imperial Aramaic"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Armn","Description":["Armenian"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Avst","Description":["Avestan"],"Added":"2007-07-28"},{"Type":"script","Subtag":"Bali","Description":["Balinese"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Bamu","Description":["Bamum"],"Added":"2009-07-30"},{"Type":"script","Subtag":"Bass","Description":["Bassa Vah"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Batk","Description":["Batak"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Beng","Description":["Bengali","Bangla"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Bhks","Description":["Bhaiksuki"],"Added":"2015-07-24"},{"Type":"script","Subtag":"Blis","Description":["Blissymbols"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Bopo","Description":["Bopomofo"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Brah","Description":["Brahmi"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Brai","Description":["Braille"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Bugi","Description":["Buginese"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Buhd","Description":["Buhid"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cakm","Description":["Chakma"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Cans","Description":["Unified Canadian Aboriginal Syllabics"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cari","Description":["Carian"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Cham","Description":["Cham"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cher","Description":["Cherokee"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cirt","Description":["Cirth"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Copt","Description":["Coptic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cpmn","Description":["Cypro-Minoan"],"Added":"2017-08-13"},{"Type":"script","Subtag":"Cprt","Description":["Cypriot syllabary"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cyrl","Description":["Cyrillic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Cyrs","Description":["Cyrillic (Old Church Slavonic variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Deva","Description":["Devanagari","Nagari"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Dogr","Description":["Dogra"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Dsrt","Description":["Deseret","Mormon"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Dupl","Description":["Duployan shorthand","Duployan stenography"],"Added":"2010-08-16"},{"Type":"script","Subtag":"Egyd","Description":["Egyptian demotic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Egyh","Description":["Egyptian hieratic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Egyp","Description":["Egyptian hieroglyphs"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Elba","Description":["Elbasan"],"Added":"2010-08-16"},{"Type":"script","Subtag":"Elym","Description":["Elymaic"],"Added":"2018-10-28"},{"Type":"script","Subtag":"Ethi","Description":["Ethiopic","Geʻez","Ge\'ez"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Geok","Description":["Khutsuri (Asomtavruli and Nuskhuri)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Geor","Description":["Georgian (Mkhedruli and Mtavruli)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Glag","Description":["Glagolitic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Gong","Description":["Gunjala Gondi"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Gonm","Description":["Masaram Gondi"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Goth","Description":["Gothic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Gran","Description":["Grantha"],"Added":"2009-12-09"},{"Type":"script","Subtag":"Grek","Description":["Greek"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Gujr","Description":["Gujarati"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Guru","Description":["Gurmukhi"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hanb","Description":["Han with Bopomofo (alias for Han + Bopomofo)"],"Added":"2016-02-08"},{"Type":"script","Subtag":"Hang","Description":["Hangul","Hangŭl","Hangeul"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hani","Description":["Han","Hanzi","Kanji","Hanja"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hano","Description":["Hanunoo","Hanunóo"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hans","Description":["Han (Simplified variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hant","Description":["Han (Traditional variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hatr","Description":["Hatran"],"Added":"2013-12-02"},{"Type":"script","Subtag":"Hebr","Description":["Hebrew"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hira","Description":["Hiragana"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hluw","Description":["Anatolian Hieroglyphs","Luwian Hieroglyphs","Hittite Hieroglyphs"],"Added":"2011-12-28"},{"Type":"script","Subtag":"Hmng","Description":["Pahawh Hmong"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hmnp","Description":["Nyiakeng Puachue Hmong"],"Added":"2017-08-13"},{"Type":"script","Subtag":"Hrkt","Description":["Japanese syllabaries (alias for Hiragana + Katakana)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Hung","Description":["Old Hungarian","Hungarian Runic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Inds","Description":["Indus","Harappan"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Ital","Description":["Old Italic (Etruscan, Oscan, etc.)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Jamo","Description":["Jamo (alias for Jamo subset of Hangul)"],"Added":"2016-02-08"},{"Type":"script","Subtag":"Java","Description":["Javanese"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Jpan","Description":["Japanese (alias for Han + Hiragana + Katakana)"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Jurc","Description":["Jurchen"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Kali","Description":["Kayah Li"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Kana","Description":["Katakana"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Khar","Description":["Kharoshthi"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Khmr","Description":["Khmer"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Khoj","Description":["Khojki"],"Added":"2011-08-16"},{"Type":"script","Subtag":"Kitl","Description":["Khitan large script"],"Added":"2014-12-11"},{"Type":"script","Subtag":"Kits","Description":["Khitan small script"],"Added":"2014-12-11"},{"Type":"script","Subtag":"Knda","Description":["Kannada"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Kore","Description":["Korean (alias for Hangul + Han)"],"Added":"2007-07-05"},{"Type":"script","Subtag":"Kpel","Description":["Kpelle"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Kthi","Description":["Kaithi"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Lana","Description":["Tai Tham","Lanna"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Laoo","Description":["Lao"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Latf","Description":["Latin (Fraktur variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Latg","Description":["Latin (Gaelic variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Latn","Description":["Latin"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Leke","Description":["Leke"],"Added":"2015-07-24"},{"Type":"script","Subtag":"Lepc","Description":["Lepcha","Róng"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Limb","Description":["Limbu"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Lina","Description":["Linear A"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Linb","Description":["Linear B"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Lisu","Description":["Lisu","Fraser"],"Added":"2009-03-13"},{"Type":"script","Subtag":"Loma","Description":["Loma"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Lyci","Description":["Lycian"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Lydi","Description":["Lydian"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Mahj","Description":["Mahajani"],"Added":"2012-11-01"},{"Type":"script","Subtag":"Maka","Description":["Makasar"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Mand","Description":["Mandaic","Mandaean"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Mani","Description":["Manichaean"],"Added":"2007-07-28"},{"Type":"script","Subtag":"Marc","Description":["Marchen"],"Added":"2014-12-11"},{"Type":"script","Subtag":"Maya","Description":["Mayan hieroglyphs"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Medf","Description":["Medefaidrin","Oberi Okaime","Oberi Ɔkaimɛ"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Mend","Description":["Mende Kikakui"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Merc","Description":["Meroitic Cursive"],"Added":"2009-12-09"},{"Type":"script","Subtag":"Mero","Description":["Meroitic Hieroglyphs"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Mlym","Description":["Malayalam"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Modi","Description":["Modi","Moḍī"],"Added":"2013-12-02"},{"Type":"script","Subtag":"Mong","Description":["Mongolian"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Moon","Description":["Moon","Moon code","Moon script","Moon type"],"Added":"2007-01-26"},{"Type":"script","Subtag":"Mroo","Description":["Mro","Mru"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Mtei","Description":["Meitei Mayek","Meithei","Meetei"],"Added":"2007-01-26"},{"Type":"script","Subtag":"Mult","Description":["Multani"],"Added":"2013-12-02"},{"Type":"script","Subtag":"Mymr","Description":["Myanmar","Burmese"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Nand","Description":["Nandinagari"],"Added":"2018-10-28"},{"Type":"script","Subtag":"Narb","Description":["Old North Arabian","Ancient North Arabian"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Nbat","Description":["Nabataean"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Newa","Description":["Newa","Newar","Newari","Nepāla lipi"],"Added":"2016-01-04"},{"Type":"script","Subtag":"Nkdb","Description":["Naxi Dongba","na²¹ɕi³³ to³³ba²¹","Nakhi Tomba"],"Added":"2017-08-13"},{"Type":"script","Subtag":"Nkgb","Description":["Naxi Geba","na²¹ɕi³³ gʌ²¹ba²¹","\'Na-\'Khi ²Ggŏ-¹baw","Nakhi Geba"],"Added":"2009-03-13"},{"Type":"script","Subtag":"Nkoo","Description":["N’Ko","N\'Ko"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Nshu","Description":["Nüshu"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Ogam","Description":["Ogham"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Olck","Description":["Ol Chiki","Ol Cemet\'","Ol","Santali"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Orkh","Description":["Old Turkic","Orkhon Runic"],"Added":"2009-07-30"},{"Type":"script","Subtag":"Orya","Description":["Oriya","Odia"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Osge","Description":["Osage"],"Added":"2014-12-11"},{"Type":"script","Subtag":"Osma","Description":["Osmanya"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Palm","Description":["Palmyrene"],"Added":"2010-04-10"},{"Type":"script","Subtag":"Pauc","Description":["Pau Cin Hau"],"Added":"2013-12-02"},{"Type":"script","Subtag":"Perm","Description":["Old Permic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Phag","Description":["Phags-pa"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Phli","Description":["Inscriptional Pahlavi"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Phlp","Description":["Psalter Pahlavi"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Phlv","Description":["Book Pahlavi"],"Added":"2007-07-28"},{"Type":"script","Subtag":"Phnx","Description":["Phoenician"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Piqd","Description":["Klingon (KLI pIqaD)"],"Added":"2016-01-04"},{"Type":"script","Subtag":"Plrd","Description":["Miao","Pollard"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Prti","Description":["Inscriptional Parthian"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Qaaa..Qabx","Description":["Private use"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Rjng","Description":["Rejang","Redjang","Kaganga"],"Added":"2006-10-17"},{"Type":"script","Subtag":"Rohg","Description":["Hanifi Rohingya"],"Added":"2017-12-13"},{"Type":"script","Subtag":"Roro","Description":["Rongorongo"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Runr","Description":["Runic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Samr","Description":["Samaritan"],"Added":"2007-07-28"},{"Type":"script","Subtag":"Sara","Description":["Sarati"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Sarb","Description":["Old South Arabian"],"Added":"2009-07-30"},{"Type":"script","Subtag":"Saur","Description":["Saurashtra"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Sgnw","Description":["SignWriting"],"Added":"2006-10-17"},{"Type":"script","Subtag":"Shaw","Description":["Shavian","Shaw"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Shrd","Description":["Sharada","Śāradā"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Shui","Description":["Shuishu"],"Added":"2017-08-13"},{"Type":"script","Subtag":"Sidd","Description":["Siddham","Siddhaṃ","Siddhamātṛkā"],"Added":"2013-12-02"},{"Type":"script","Subtag":"Sind","Description":["Khudawadi","Sindhi"],"Added":"2010-08-16"},{"Type":"script","Subtag":"Sinh","Description":["Sinhala"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Sogd","Description":["Sogdian"],"Added":"2017-12-13"},{"Type":"script","Subtag":"Sogo","Description":["Old Sogdian"],"Added":"2017-12-13"},{"Type":"script","Subtag":"Sora","Description":["Sora Sompeng"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Soyo","Description":["Soyombo"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Sund","Description":["Sundanese"],"Added":"2006-07-21"},{"Type":"script","Subtag":"Sylo","Description":["Syloti Nagri"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Syrc","Description":["Syriac"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Syre","Description":["Syriac (Estrangelo variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Syrj","Description":["Syriac (Western variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Syrn","Description":["Syriac (Eastern variant)"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Tagb","Description":["Tagbanwa"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Takr","Description":["Takri","Ṭākrī","Ṭāṅkrī"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Tale","Description":["Tai Le"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Talu","Description":["New Tai Lue"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Taml","Description":["Tamil"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Tang","Description":["Tangut"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Tavt","Description":["Tai Viet"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Telu","Description":["Telugu"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Teng","Description":["Tengwar"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Tfng","Description":["Tifinagh","Berber"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Tglg","Description":["Tagalog","Baybayin","Alibata"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Thaa","Description":["Thaana"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Thai","Description":["Thai"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Tibt","Description":["Tibetan"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Tirh","Description":["Tirhuta"],"Added":"2011-08-16"},{"Type":"script","Subtag":"Ugar","Description":["Ugaritic"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Vaii","Description":["Vai"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Visp","Description":["Visible Speech"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Wara","Description":["Warang Citi","Varang Kshiti"],"Added":"2009-12-09"},{"Type":"script","Subtag":"Wcho","Description":["Wancho"],"Added":"2017-08-13"},{"Type":"script","Subtag":"Wole","Description":["Woleai"],"Added":"2011-01-07"},{"Type":"script","Subtag":"Xpeo","Description":["Old Persian"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Xsux","Description":["Sumero-Akkadian cuneiform"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Yiii","Description":["Yi"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Zanb","Description":["Zanabazar Square","Zanabazarin Dörböljin Useg","Xewtee Dörböljin Bicig","Horizontal Square Script"],"Added":"2017-01-13"},{"Type":"script","Subtag":"Zinh","Description":["Code for inherited script"],"Added":"2009-04-03","Comments":["Not intended for use as a language subtag"]},{"Type":"script","Subtag":"Zmth","Description":["Mathematical notation"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Zsye","Description":["Symbols (Emoji variant)"],"Added":"2016-01-04"},{"Type":"script","Subtag":"Zsym","Description":["Symbols"],"Added":"2007-12-05"},{"Type":"script","Subtag":"Zxxx","Description":["Code for unwritten documents"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Zyyy","Description":["Code for undetermined script"],"Added":"2005-10-16"},{"Type":"script","Subtag":"Zzzz","Description":["Code for uncoded script"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AA","Description":["Private use"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AC","Description":["Ascension Island"],"Added":"2009-07-29"},{"Type":"region","Subtag":"AD","Description":["Andorra"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AE","Description":["United Arab Emirates"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AF","Description":["Afghanistan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AG","Description":["Antigua and Barbuda"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AI","Description":["Anguilla"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AL","Description":["Albania"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AM","Description":["Armenia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AN","Description":["Netherlands Antilles"],"Added":"2005-10-16","Deprecated":"2011-01-07","Comments":["see BQ, CW, and SX"]},{"Type":"region","Subtag":"AO","Description":["Angola"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AQ","Description":["Antarctica"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AR","Description":["Argentina"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AS","Description":["American Samoa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AT","Description":["Austria"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AU","Description":["Australia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AW","Description":["Aruba"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AX","Description":["Åland Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"AZ","Description":["Azerbaijan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BA","Description":["Bosnia and Herzegovina"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BB","Description":["Barbados"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BD","Description":["Bangladesh"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BE","Description":["Belgium"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BF","Description":["Burkina Faso"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BG","Description":["Bulgaria"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BH","Description":["Bahrain"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BI","Description":["Burundi"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BJ","Description":["Benin"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BL","Description":["Saint Barthélemy"],"Added":"2007-11-02"},{"Type":"region","Subtag":"BM","Description":["Bermuda"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BN","Description":["Brunei Darussalam"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BO","Description":["Bolivia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BQ","Description":["Bonaire, Sint Eustatius and Saba"],"Added":"2011-01-07"},{"Type":"region","Subtag":"BR","Description":["Brazil"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BS","Description":["Bahamas"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BT","Description":["Bhutan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BU","Description":["Burma"],"Added":"2005-10-16","Deprecated":"1989-12-05","Preferred-Value":"MM"},{"Type":"region","Subtag":"BV","Description":["Bouvet Island"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BW","Description":["Botswana"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BY","Description":["Belarus"],"Added":"2005-10-16"},{"Type":"region","Subtag":"BZ","Description":["Belize"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CA","Description":["Canada"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CC","Description":["Cocos (Keeling) Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CD","Description":["The Democratic Republic of the Congo"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CF","Description":["Central African Republic"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CG","Description":["Congo"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CH","Description":["Switzerland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CI","Description":["Côte d\'Ivoire"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CK","Description":["Cook Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CL","Description":["Chile"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CM","Description":["Cameroon"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CN","Description":["China"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CO","Description":["Colombia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CP","Description":["Clipperton Island"],"Added":"2009-07-29"},{"Type":"region","Subtag":"CR","Description":["Costa Rica"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CS","Description":["Serbia and Montenegro"],"Added":"2005-10-16","Deprecated":"2006-10-05","Comments":["see RS for Serbia or ME for Montenegro"]},{"Type":"region","Subtag":"CU","Description":["Cuba"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CV","Description":["Cabo Verde","Cape Verde"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CW","Description":["Curaçao"],"Added":"2011-01-07"},{"Type":"region","Subtag":"CX","Description":["Christmas Island"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CY","Description":["Cyprus"],"Added":"2005-10-16"},{"Type":"region","Subtag":"CZ","Description":["Czechia","Czech Republic"],"Added":"2005-10-16"},{"Type":"region","Subtag":"DD","Description":["German Democratic Republic"],"Added":"2005-10-16","Deprecated":"1990-10-30","Preferred-Value":"DE"},{"Type":"region","Subtag":"DE","Description":["Germany"],"Added":"2005-10-16"},{"Type":"region","Subtag":"DG","Description":["Diego Garcia"],"Added":"2009-07-29"},{"Type":"region","Subtag":"DJ","Description":["Djibouti"],"Added":"2005-10-16"},{"Type":"region","Subtag":"DK","Description":["Denmark"],"Added":"2005-10-16"},{"Type":"region","Subtag":"DM","Description":["Dominica"],"Added":"2005-10-16"},{"Type":"region","Subtag":"DO","Description":["Dominican Republic"],"Added":"2005-10-16"},{"Type":"region","Subtag":"DZ","Description":["Algeria"],"Added":"2005-10-16"},{"Type":"region","Subtag":"EA","Description":["Ceuta, Melilla"],"Added":"2009-07-29"},{"Type":"region","Subtag":"EC","Description":["Ecuador"],"Added":"2005-10-16"},{"Type":"region","Subtag":"EE","Description":["Estonia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"EG","Description":["Egypt"],"Added":"2005-10-16"},{"Type":"region","Subtag":"EH","Description":["Western Sahara"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ER","Description":["Eritrea"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ES","Description":["Spain"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ET","Description":["Ethiopia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"EU","Description":["European Union"],"Added":"2009-07-29"},{"Type":"region","Subtag":"EZ","Description":["Eurozone"],"Added":"2016-07-14"},{"Type":"region","Subtag":"FI","Description":["Finland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"FJ","Description":["Fiji"],"Added":"2005-10-16"},{"Type":"region","Subtag":"FK","Description":["Falkland Islands (Malvinas)"],"Added":"2005-10-16"},{"Type":"region","Subtag":"FM","Description":["Federated States of Micronesia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"FO","Description":["Faroe Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"FR","Description":["France"],"Added":"2005-10-16"},{"Type":"region","Subtag":"FX","Description":["Metropolitan France"],"Added":"2005-10-16","Deprecated":"1997-07-14","Preferred-Value":"FR"},{"Type":"region","Subtag":"GA","Description":["Gabon"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GB","Description":["United Kingdom"],"Added":"2005-10-16","Comments":["as of 2006-03-29 GB no longer includes the Channel Islands and","Isle of Man; see GG, JE, IM"]},{"Type":"region","Subtag":"GD","Description":["Grenada"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GE","Description":["Georgia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GF","Description":["French Guiana"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GG","Description":["Guernsey"],"Added":"2006-03-29"},{"Type":"region","Subtag":"GH","Description":["Ghana"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GI","Description":["Gibraltar"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GL","Description":["Greenland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GM","Description":["Gambia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GN","Description":["Guinea"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GP","Description":["Guadeloupe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GQ","Description":["Equatorial Guinea"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GR","Description":["Greece"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GS","Description":["South Georgia and the South Sandwich Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GT","Description":["Guatemala"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GU","Description":["Guam"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GW","Description":["Guinea-Bissau"],"Added":"2005-10-16"},{"Type":"region","Subtag":"GY","Description":["Guyana"],"Added":"2005-10-16"},{"Type":"region","Subtag":"HK","Description":["Hong Kong"],"Added":"2005-10-16"},{"Type":"region","Subtag":"HM","Description":["Heard Island and McDonald Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"HN","Description":["Honduras"],"Added":"2005-10-16"},{"Type":"region","Subtag":"HR","Description":["Croatia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"HT","Description":["Haiti"],"Added":"2005-10-16"},{"Type":"region","Subtag":"HU","Description":["Hungary"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IC","Description":["Canary Islands"],"Added":"2009-07-29"},{"Type":"region","Subtag":"ID","Description":["Indonesia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IE","Description":["Ireland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IL","Description":["Israel"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IM","Description":["Isle of Man"],"Added":"2006-03-29"},{"Type":"region","Subtag":"IN","Description":["India"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IO","Description":["British Indian Ocean Territory"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IQ","Description":["Iraq"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IR","Description":["Islamic Republic of Iran"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IS","Description":["Iceland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"IT","Description":["Italy"],"Added":"2005-10-16"},{"Type":"region","Subtag":"JE","Description":["Jersey"],"Added":"2006-03-29"},{"Type":"region","Subtag":"JM","Description":["Jamaica"],"Added":"2005-10-16"},{"Type":"region","Subtag":"JO","Description":["Jordan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"JP","Description":["Japan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KE","Description":["Kenya"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KG","Description":["Kyrgyzstan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KH","Description":["Cambodia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KI","Description":["Kiribati"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KM","Description":["Comoros"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KN","Description":["Saint Kitts and Nevis"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KP","Description":["Democratic People\'s Republic of Korea"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KR","Description":["Republic of Korea"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KW","Description":["Kuwait"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KY","Description":["Cayman Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"KZ","Description":["Kazakhstan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LA","Description":["Lao People\'s Democratic Republic"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LB","Description":["Lebanon"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LC","Description":["Saint Lucia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LI","Description":["Liechtenstein"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LK","Description":["Sri Lanka"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LR","Description":["Liberia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LS","Description":["Lesotho"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LT","Description":["Lithuania"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LU","Description":["Luxembourg"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LV","Description":["Latvia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"LY","Description":["Libya"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MA","Description":["Morocco"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MC","Description":["Monaco"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MD","Description":["Moldova"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ME","Description":["Montenegro"],"Added":"2006-10-05"},{"Type":"region","Subtag":"MF","Description":["Saint Martin (French part)"],"Added":"2007-11-02"},{"Type":"region","Subtag":"MG","Description":["Madagascar"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MH","Description":["Marshall Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MK","Description":["North Macedonia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ML","Description":["Mali"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MM","Description":["Myanmar"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MN","Description":["Mongolia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MO","Description":["Macao"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MP","Description":["Northern Mariana Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MQ","Description":["Martinique"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MR","Description":["Mauritania"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MS","Description":["Montserrat"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MT","Description":["Malta"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MU","Description":["Mauritius"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MV","Description":["Maldives"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MW","Description":["Malawi"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MX","Description":["Mexico"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MY","Description":["Malaysia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"MZ","Description":["Mozambique"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NA","Description":["Namibia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NC","Description":["New Caledonia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NE","Description":["Niger"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NF","Description":["Norfolk Island"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NG","Description":["Nigeria"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NI","Description":["Nicaragua"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NL","Description":["Netherlands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NO","Description":["Norway"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NP","Description":["Nepal"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NR","Description":["Nauru"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NT","Description":["Neutral Zone"],"Added":"2005-10-16","Deprecated":"1993-07-12"},{"Type":"region","Subtag":"NU","Description":["Niue"],"Added":"2005-10-16"},{"Type":"region","Subtag":"NZ","Description":["New Zealand"],"Added":"2005-10-16"},{"Type":"region","Subtag":"OM","Description":["Oman"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PA","Description":["Panama"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PE","Description":["Peru"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PF","Description":["French Polynesia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PG","Description":["Papua New Guinea"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PH","Description":["Philippines"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PK","Description":["Pakistan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PL","Description":["Poland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PM","Description":["Saint Pierre and Miquelon"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PN","Description":["Pitcairn"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PR","Description":["Puerto Rico"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PS","Description":["State of Palestine"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PT","Description":["Portugal"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PW","Description":["Palau"],"Added":"2005-10-16"},{"Type":"region","Subtag":"PY","Description":["Paraguay"],"Added":"2005-10-16"},{"Type":"region","Subtag":"QA","Description":["Qatar"],"Added":"2005-10-16"},{"Type":"region","Subtag":"QM..QZ","Description":["Private use"],"Added":"2005-10-16"},{"Type":"region","Subtag":"RE","Description":["Réunion"],"Added":"2005-10-16"},{"Type":"region","Subtag":"RO","Description":["Romania"],"Added":"2005-10-16"},{"Type":"region","Subtag":"RS","Description":["Serbia"],"Added":"2006-10-05"},{"Type":"region","Subtag":"RU","Description":["Russian Federation"],"Added":"2005-10-16"},{"Type":"region","Subtag":"RW","Description":["Rwanda"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SA","Description":["Saudi Arabia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SB","Description":["Solomon Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SC","Description":["Seychelles"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SD","Description":["Sudan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SE","Description":["Sweden"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SG","Description":["Singapore"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SH","Description":["Saint Helena, Ascension and Tristan da Cunha"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SI","Description":["Slovenia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SJ","Description":["Svalbard and Jan Mayen"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SK","Description":["Slovakia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SL","Description":["Sierra Leone"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SM","Description":["San Marino"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SN","Description":["Senegal"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SO","Description":["Somalia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SR","Description":["Suriname"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SS","Description":["South Sudan"],"Added":"2011-08-25"},{"Type":"region","Subtag":"ST","Description":["Sao Tome and Principe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SU","Description":["Union of Soviet Socialist Republics"],"Added":"2005-10-16","Deprecated":"1992-08-30"},{"Type":"region","Subtag":"SV","Description":["El Salvador"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SX","Description":["Sint Maarten (Dutch part)"],"Added":"2011-01-07"},{"Type":"region","Subtag":"SY","Description":["Syrian Arab Republic"],"Added":"2005-10-16"},{"Type":"region","Subtag":"SZ","Description":["Eswatini","eSwatini","Swaziland"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TA","Description":["Tristan da Cunha"],"Added":"2009-07-29"},{"Type":"region","Subtag":"TC","Description":["Turks and Caicos Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TD","Description":["Chad"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TF","Description":["French Southern Territories"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TG","Description":["Togo"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TH","Description":["Thailand"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TJ","Description":["Tajikistan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TK","Description":["Tokelau"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TL","Description":["Timor-Leste"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TM","Description":["Turkmenistan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TN","Description":["Tunisia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TO","Description":["Tonga"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TP","Description":["East Timor"],"Added":"2005-10-16","Deprecated":"2002-05-20","Preferred-Value":"TL"},{"Type":"region","Subtag":"TR","Description":["Turkey"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TT","Description":["Trinidad and Tobago"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TV","Description":["Tuvalu"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TW","Description":["Taiwan, Province of China"],"Added":"2005-10-16"},{"Type":"region","Subtag":"TZ","Description":["United Republic of Tanzania"],"Added":"2005-10-16"},{"Type":"region","Subtag":"UA","Description":["Ukraine"],"Added":"2005-10-16"},{"Type":"region","Subtag":"UG","Description":["Uganda"],"Added":"2005-10-16"},{"Type":"region","Subtag":"UM","Description":["United States Minor Outlying Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"UN","Description":["United Nations"],"Added":"2016-07-14"},{"Type":"region","Subtag":"US","Description":["United States"],"Added":"2005-10-16"},{"Type":"region","Subtag":"UY","Description":["Uruguay"],"Added":"2005-10-16"},{"Type":"region","Subtag":"UZ","Description":["Uzbekistan"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VA","Description":["Holy See (Vatican City State)"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VC","Description":["Saint Vincent and the Grenadines"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VE","Description":["Venezuela"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VG","Description":["British Virgin Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VI","Description":["U.S. Virgin Islands"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VN","Description":["Viet Nam"],"Added":"2005-10-16"},{"Type":"region","Subtag":"VU","Description":["Vanuatu"],"Added":"2005-10-16"},{"Type":"region","Subtag":"WF","Description":["Wallis and Futuna"],"Added":"2005-10-16"},{"Type":"region","Subtag":"WS","Description":["Samoa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"XA..XZ","Description":["Private use"],"Added":"2005-10-16"},{"Type":"region","Subtag":"YD","Description":["Democratic Yemen"],"Added":"2005-10-16","Deprecated":"1990-08-14","Preferred-Value":"YE"},{"Type":"region","Subtag":"YE","Description":["Yemen"],"Added":"2005-10-16"},{"Type":"region","Subtag":"YT","Description":["Mayotte"],"Added":"2005-10-16"},{"Type":"region","Subtag":"YU","Description":["Yugoslavia"],"Added":"2005-10-16","Deprecated":"2003-07-23","Comments":["see BA, HR, ME, MK, RS, or SI"]},{"Type":"region","Subtag":"ZA","Description":["South Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ZM","Description":["Zambia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ZR","Description":["Zaire"],"Added":"2005-10-16","Deprecated":"1997-07-14","Preferred-Value":"CD"},{"Type":"region","Subtag":"ZW","Description":["Zimbabwe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"ZZ","Description":["Private use"],"Added":"2005-10-16"},{"Type":"region","Subtag":"001","Description":["World"],"Added":"2005-10-16"},{"Type":"region","Subtag":"002","Description":["Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"003","Description":["North America"],"Added":"2010-08-16","Comments":["Includes Northern America (021), Caribbean (029), and Central","America (013); see also 021"]},{"Type":"region","Subtag":"005","Description":["South America"],"Added":"2005-10-16"},{"Type":"region","Subtag":"009","Description":["Oceania"],"Added":"2005-10-16"},{"Type":"region","Subtag":"011","Description":["Western Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"013","Description":["Central America"],"Added":"2005-10-16"},{"Type":"region","Subtag":"014","Description":["Eastern Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"015","Description":["Northern Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"017","Description":["Middle Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"018","Description":["Southern Africa"],"Added":"2005-10-16"},{"Type":"region","Subtag":"019","Description":["Americas"],"Added":"2005-10-16"},{"Type":"region","Subtag":"021","Description":["Northern America"],"Added":"2005-10-16","Comments":["Does not include Caribbean (029) or Central America (013); see","also 003"]},{"Type":"region","Subtag":"029","Description":["Caribbean"],"Added":"2005-10-16"},{"Type":"region","Subtag":"030","Description":["Eastern Asia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"034","Description":["Southern Asia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"035","Description":["South-Eastern Asia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"039","Description":["Southern Europe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"053","Description":["Australia and New Zealand"],"Added":"2005-10-16"},{"Type":"region","Subtag":"054","Description":["Melanesia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"057","Description":["Micronesia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"061","Description":["Polynesia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"142","Description":["Asia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"143","Description":["Central Asia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"145","Description":["Western Asia"],"Added":"2005-10-16"},{"Type":"region","Subtag":"150","Description":["Europe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"151","Description":["Eastern Europe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"154","Description":["Northern Europe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"155","Description":["Western Europe"],"Added":"2005-10-16"},{"Type":"region","Subtag":"202","Description":["Sub-Saharan Africa"],"Added":"2017-04-18"},{"Type":"region","Subtag":"419","Description":["Latin America and the Caribbean"],"Added":"2005-10-16"},{"Type":"variant","Subtag":"1606nict","Description":["Late Middle French (to 1606)"],"Added":"2007-03-20","Prefix":["frm"],"Comments":["16th century French as in Jean Nicot, \\"Thresor de la langue","francoyse\\", 1606, but also including some French similar to that of","Rabelais"]},{"Type":"variant","Subtag":"1694acad","Description":["Early Modern French"],"Added":"2007-03-20","Prefix":["fr"],"Comments":["17th century French, as catalogued in the \\"Dictionnaire de","l\'académie françoise\\", 4eme ed. 1694; frequently includes","elements of Middle French, as this is a transitional period"]},{"Type":"variant","Subtag":"1901","Description":["Traditional German orthography"],"Added":"2005-10-16","Prefix":["de"]},{"Type":"variant","Subtag":"1959acad","Description":["\\"Academic\\" (\\"governmental\\") variant of Belarusian as","codified in 1959"],"Added":"2008-09-30","Prefix":["be"]},{"Type":"variant","Subtag":"1994","Description":["Standardized Resian orthography"],"Added":"2007-07-28","Prefix":["sl-rozaj","sl-rozaj-biske","sl-rozaj-njiva","sl-rozaj-osojs","sl-rozaj-solba"],"Comments":["For standardized Resian an orthography was published in 1994."]},{"Type":"variant","Subtag":"1996","Description":["German orthography of 1996"],"Added":"2005-10-16","Prefix":["de"]},{"Type":"variant","Subtag":"abl1943","Description":["Orthographic formulation of 1943 - Official in Brazil","(Formulário Ortográfico de 1943 - Oficial no Brasil)"],"Added":"2015-05-06","Prefix":["pt-BR"],"Comments":["Denotes conventions established by the Academia Brasileira de","Letras in 1943 and generally used in Brazil until 2009"]},{"Type":"variant","Subtag":"alalc97","Description":["ALA-LC Romanization, 1997 edition"],"Added":"2009-12-09","Comments":["Romanizations recommended by the American Library Association","and the Library of Congress, in \\"ALA-LC Romanization Tables:","Transliteration Schemes for Non-Roman Scripts\\" (1997), ISBN","978-0-8444-0940-5."]},{"Type":"variant","Subtag":"aluku","Description":["Aluku dialect","Boni dialect"],"Added":"2009-09-05","Prefix":["djk"],"Comments":["Aluku dialect of the \\"Busi Nenge Tongo\\" English-based Creole","continuum in Eastern Suriname and Western French Guiana"]},{"Type":"variant","Subtag":"akuapem","Description":["Akuapem Twi"],"Added":"2017-06-05","Prefix":["tw"]},{"Type":"variant","Subtag":"ao1990","Description":["Portuguese Language Orthographic Agreement of 1990 (Acordo","Ortográfico da Língua Portuguesa de 1990)"],"Added":"2015-05-06","Prefix":["pt","gl"],"Comments":["Portuguese orthography conventions established in 1990 but","not brought into effect until 2009"]},{"Type":"variant","Subtag":"aranes","Description":["Aranese"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in the Val d\'Aran"]},{"Type":"variant","Subtag":"arevela","Description":["Eastern Armenian"],"Added":"2006-09-18","Deprecated":"2018-03-24","Prefix":["hy"],"Comments":["Preferred tag is hy"]},{"Type":"variant","Subtag":"arevmda","Description":["Western Armenian"],"Added":"2006-09-18","Deprecated":"2018-03-24","Prefix":["hy"],"Comments":["Preferred tag is hyw"]},{"Type":"variant","Subtag":"asante","Description":["Asante Twi","Ashanti Twi"],"Added":"2017-06-05","Prefix":["tw"]},{"Type":"variant","Subtag":"auvern","Description":["Auvergnat"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in Auvergne"]},{"Type":"variant","Subtag":"baku1926","Description":["Unified Turkic Latin Alphabet (Historical)"],"Added":"2007-04-18","Prefix":["az","ba","crh","kk","krc","ky","sah","tk","tt","uz"],"Comments":["Denotes alphabet used in Turkic republics/regions of the","former USSR in late 1920s, and throughout 1930s, which aspired to","represent equivalent phonemes in a unified fashion. Also known as: New","Turkic Alphabet; Birlәşdirilmiş Jeni Tyrk","Әlifbasь (Birlesdirilmis Jeni Tyrk Elifbasi);","Jaŋalif (Janalif)."]},{"Type":"variant","Subtag":"balanka","Description":["The Balanka dialect of Anii"],"Added":"2014-02-15","Prefix":["blo"],"Comments":["Balanka is one of 19 Anii dialects."]},{"Type":"variant","Subtag":"barla","Description":["The Barlavento dialect group of Kabuverdianu"],"Prefix":["kea"],"Comments":["Barlavento is one of the two main dialect groups of","Kabuverdianu."],"Added":"2013-12-10"},{"Type":"variant","Subtag":"basiceng","Description":["Basic English"],"Added":"2015-12-29","Prefix":["en"]},{"Type":"variant","Subtag":"bauddha","Description":["Buddhist Hybrid Sanskrit"],"Added":"2010-07-28","Prefix":["sa"]},{"Type":"variant","Subtag":"biscayan","Description":["Biscayan dialect of Basque"],"Added":"2010-04-13","Prefix":["eu"]},{"Type":"variant","Subtag":"biske","Description":["The San Giorgio dialect of Resian","The Bila dialect of Resian"],"Added":"2007-07-05","Prefix":["sl-rozaj"],"Comments":["The dialect of San Giorgio/Bila is one of the four major local","dialects of Resian"]},{"Type":"variant","Subtag":"bohoric","Description":["Slovene in Bohorič alphabet"],"Added":"2012-06-27","Prefix":["sl"],"Comments":["The subtag represents the alphabet codified by Adam Bohorič","in 1584 and used from the first printed Slovene book and up to the","mid-19th century."]},{"Type":"variant","Subtag":"boont","Description":["Boontling"],"Added":"2006-09-18","Prefix":["en"],"Comments":["Jargon embedded in American English"]},{"Type":"variant","Subtag":"bornholm","Description":["Bornholmsk"],"Added":"2019-03-27","Prefix":["da"]},{"Type":"variant","Subtag":"cisaup","Description":["Cisalpine"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in northwestern Italy"]},{"Type":"variant","Subtag":"colb1945","Description":["Portuguese-Brazilian Orthographic Convention of 1945","(Convenção Ortográfica Luso-Brasileira de 1945)"],"Added":"2015-05-06","Prefix":["pt"],"Comments":["Portuguese orthography conventions established in 1945,","generally in effect until 2009. This reform was not ratified in","Brazil."]},{"Type":"variant","Subtag":"cornu","Description":["Cornu-English","Cornish English","Anglo-Cornish"],"Added":"2015-12-07","Prefix":["en"]},{"Type":"variant","Subtag":"creiss","Description":["Occitan variants of the Croissant area"],"Added":"2018-04-22","Prefix":["oc"]},{"Type":"variant","Subtag":"dajnko","Description":["Slovene in Dajnko alphabet"],"Added":"2012-06-27","Prefix":["sl"],"Comments":["The subtag represents the alphabet codified by Peter Dajnko","and used from 1824 to 1839 mostly in Styria (in what is now Eastern","Slovenia)."]},{"Type":"variant","Subtag":"ekavsk","Description":["Serbian with Ekavian pronunciation"],"Prefix":["sr","sr-Latn","sr-Cyrl"],"Added":"2013-12-02"},{"Type":"variant","Subtag":"emodeng","Description":["Early Modern English (1500-1700)"],"Added":"2012-02-05","Prefix":["en"]},{"Type":"variant","Subtag":"fonipa","Description":["International Phonetic Alphabet"],"Added":"2006-12-11"},{"Type":"variant","Subtag":"fonkirsh","Description":["Kirshenbaum Phonetic Alphabet"],"Added":"2018-04-22"},{"Type":"variant","Subtag":"fonnapa","Description":["North American Phonetic Alphabet","Americanist Phonetic Notation"],"Added":"2016-06-24"},{"Type":"variant","Subtag":"fonupa","Description":["Uralic Phonetic Alphabet"],"Added":"2006-12-11"},{"Type":"variant","Subtag":"fonxsamp","Description":["X-SAMPA transcription"],"Added":"2010-10-23","Comments":["Indicates that the content is transcribed according to X-SAMPA"]},{"Type":"variant","Subtag":"gascon","Description":["Gascon"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in Gascony"]},{"Type":"variant","Subtag":"grclass","Description":["Classical Occitan orthography"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Classical written standard for Occitan developed in 1935 by","Alibèrt"]},{"Type":"variant","Subtag":"grital","Description":["Italian-inspired Occitan orthography"],"Added":"2018-04-22","Prefix":["oc"]},{"Type":"variant","Subtag":"grmistr","Description":["Mistralian or Mistralian-inspired Occitan orthography"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Written standard developed by Romanilha in 1853 and used by","Mistral and the Félibres, including derived standards such as Escolo","dóu Po, Escolo Gaston Febus, and others"]},{"Type":"variant","Subtag":"hepburn","Description":["Hepburn romanization"],"Added":"2009-10-01","Prefix":["ja-Latn"]},{"Type":"variant","Subtag":"heploc","Description":["Hepburn romanization, Library of Congress method"],"Added":"2009-10-01","Deprecated":"2010-02-07","Preferred-Value":"alalc97","Prefix":["ja-Latn-hepburn"],"Comments":["Preferred tag is ja-Latn-alalc97"]},{"Type":"variant","Subtag":"hognorsk","Description":["Norwegian in Høgnorsk (High Norwegian) orthography"],"Added":"2010-01-02","Prefix":["nn"],"Comments":["Norwegian following Ivar Aasen\'s orthographical principles,","including modern usage."]},{"Type":"variant","Subtag":"hsistemo","Description":["Standard H-system orthographic fallback for spelling","Esperanto"],"Added":"2017-03-14","Prefix":["eo"]},{"Type":"variant","Subtag":"ijekavsk","Description":["Serbian with Ijekavian pronunciation"],"Prefix":["sr","sr-Latn","sr-Cyrl"],"Added":"2013-12-02"},{"Type":"variant","Subtag":"itihasa","Description":["Epic Sanskrit"],"Added":"2010-07-28","Prefix":["sa"]},{"Type":"variant","Subtag":"ivanchov","Description":["Bulgarian in 1899 orthography"],"Added":"2017-12-13","Prefix":["bg"],"Comments":["Bulgarian orthography introduced by Todor Ivanchov in 1899"]},{"Type":"variant","Subtag":"jauer","Description":["Jauer dialect of Romansh"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["The spoken dialect of the Val Müstair, which has no written","standard."]},{"Type":"variant","Subtag":"jyutping","Description":["Jyutping Cantonese Romanization"],"Added":"2010-10-23","Prefix":["yue"],"Comments":["Jyutping romanization of Cantonese"]},{"Type":"variant","Subtag":"kkcor","Description":["Common Cornish orthography of Revived Cornish"],"Added":"2008-10-14","Prefix":["kw"]},{"Type":"variant","Subtag":"kociewie","Description":["The Kociewie dialect of Polish"],"Added":"2014-11-27","Prefix":["pl"],"Comments":["The dialect of Kociewie is spoken in the region around","Starogard Gdański, Tczew and Świecie in northern Poland."]},{"Type":"variant","Subtag":"kscor","Description":["Standard Cornish orthography of Revived Cornish","Kernowek Standard"],"Added":"2012-06-27","Prefix":["kw"]},{"Type":"variant","Subtag":"laukika","Description":["Classical Sanskrit"],"Added":"2010-07-28","Prefix":["sa"]},{"Type":"variant","Subtag":"lemosin","Description":["Limousin"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in Limousin"]},{"Type":"variant","Subtag":"lengadoc","Description":["Languedocien"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in Languedoc"]},{"Type":"variant","Subtag":"lipaw","Description":["The Lipovaz dialect of Resian","The Lipovec dialect of Resian"],"Added":"2007-08-11","Prefix":["sl-rozaj"],"Comments":["The dialect of Lipovaz/Lipovec is one of the minor local","dialects of Resian"]},{"Type":"variant","Subtag":"luna1918","Description":["Post-1917 Russian orthography"],"Added":"2010-10-10","Prefix":["ru"],"Comments":["Russian orthography as established by the 1917/1918","orthographic reforms"]},{"Type":"variant","Subtag":"metelko","Description":["Slovene in Metelko alphabet"],"Added":"2012-06-27","Prefix":["sl"],"Comments":["The subtag represents the alphabet codified by Franc Serafin","Metelko and used from 1825 to 1833."]},{"Type":"variant","Subtag":"monoton","Description":["Monotonic Greek"],"Added":"2006-12-11","Prefix":["el"]},{"Type":"variant","Subtag":"ndyuka","Description":["Ndyuka dialect","Aukan dialect"],"Added":"2009-09-05","Prefix":["djk"],"Comments":["Ndyuka dialect of the \\"Busi Nenge Tongo\\" English-based","Creole continuum in Eastern Suriname and Western French Guiana"]},{"Type":"variant","Subtag":"nedis","Description":["Natisone dialect","Nadiza dialect"],"Added":"2005-10-16","Prefix":["sl"]},{"Type":"variant","Subtag":"newfound","Description":["Newfoundland English"],"Added":"2015-11-25","Prefix":["en-CA"]},{"Type":"variant","Subtag":"nicard","Description":["Niçard"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in Nice"]},{"Type":"variant","Subtag":"njiva","Description":["The Gniva dialect of Resian","The Njiva dialect of Resian"],"Added":"2007-07-05","Prefix":["sl-rozaj"],"Comments":["The dialect of Gniva/Njiva is one of the four major local","dialects of Resian"]},{"Type":"variant","Subtag":"nulik","Description":["Volapük nulik","Volapük perevidöl","Volapük nulädik","de Jong\'s Volapük","New Volapük","Revised Volapük","Modern Volapük"],"Added":"2012-01-28","Prefix":["vo"]},{"Type":"variant","Subtag":"osojs","Description":["The Oseacco dialect of Resian","The Osojane dialect of Resian"],"Added":"2007-07-05","Prefix":["sl-rozaj"],"Comments":["The dialect of Oseacco/Osojane is one of the four major local","dialects of Resian"]},{"Type":"variant","Subtag":"oxendict","Description":["Oxford English Dictionary spelling"],"Added":"2015-04-17","Prefix":["en"]},{"Type":"variant","Subtag":"pahawh2","Description":["Pahawh Hmong Second Stage Reduced orthography"],"Added":"2017-01-13","Prefix":["mww","hnj"]},{"Type":"variant","Subtag":"pahawh3","Description":["Pahawh Hmong Third Stage Reduced orthography"],"Added":"2017-01-13","Prefix":["mww","hnj"]},{"Type":"variant","Subtag":"pahawh4","Description":["Pahawh Hmong Final Version orthography"],"Added":"2017-01-13","Prefix":["mww","hnj"]},{"Type":"variant","Subtag":"pamaka","Description":["Pamaka dialect"],"Added":"2009-09-05","Prefix":["djk"],"Comments":["Pamaka dialect of the \\"Busi Nenge Tongo\\" English-based","Creole continuum in Eastern Suriname and Western French Guiana"]},{"Type":"variant","Subtag":"petr1708","Description":["Petrine orthography"],"Added":"2010-10-10","Prefix":["ru"],"Comments":["Russian orthography from the Petrine orthographic reforms of","1708 to the 1917 orthographic reform"]},{"Type":"variant","Subtag":"pinyin","Description":["Pinyin romanization"],"Added":"2008-10-14","Prefix":["zh-Latn","bo-Latn"]},{"Type":"variant","Subtag":"polyton","Description":["Polytonic Greek"],"Added":"2006-12-11","Prefix":["el"]},{"Type":"variant","Subtag":"provenc","Description":["Provençal"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in Provence"]},{"Type":"variant","Subtag":"puter","Description":["Puter idiom of Romansh"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["Puter is one of the five traditional written standards or","\\"idioms\\" of the Romansh language."]},{"Type":"variant","Subtag":"rigik","Description":["Volapük rigik","Schleyer\'s Volapük","Original Volapük","Classic Volapük"],"Added":"2012-01-28","Prefix":["vo"]},{"Type":"variant","Subtag":"rozaj","Description":["Resian","Resianic","Rezijan"],"Added":"2005-10-16","Prefix":["sl"]},{"Type":"variant","Subtag":"rumgr","Description":["Rumantsch Grischun"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["Supraregional Romansh written standard"]},{"Type":"variant","Subtag":"scotland","Description":["Scottish Standard English"],"Added":"2007-08-31","Prefix":["en"]},{"Type":"variant","Subtag":"scouse","Description":["Scouse"],"Added":"2006-09-18","Prefix":["en"],"Comments":["English Liverpudlian dialect known as \'Scouse\'"]},{"Type":"variant","Subtag":"simple","Description":["Simplified form"],"Added":"2015-12-29"},{"Type":"variant","Subtag":"solba","Description":["The Stolvizza dialect of Resian","The Solbica dialect of Resian"],"Added":"2007-07-05","Prefix":["sl-rozaj"],"Comments":["The dialect of Stolvizza/Solbica is one of the four major","local dialects of Resian"]},{"Type":"variant","Subtag":"sotav","Description":["The Sotavento dialect group of Kabuverdianu"],"Prefix":["kea"],"Comments":["Sotavento is one of the two main dialect groups of","Kabuverdianu."],"Added":"2013-12-10"},{"Type":"variant","Subtag":"spanglis","Description":["Spanglish"],"Added":"2017-02-23","Prefix":["en","es"],"Comments":["A variety of contact dialects of English and Spanish"]},{"Type":"variant","Subtag":"surmiran","Description":["Surmiran idiom of Romansh"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["Surmiran is one of the five traditional written standards or","\\"idioms\\" of the Romansh language."]},{"Type":"variant","Subtag":"sursilv","Description":["Sursilvan idiom of Romansh"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["Sursilvan is one of the five traditional written standards or","\\"idioms\\" of the Romansh language."]},{"Type":"variant","Subtag":"sutsilv","Description":["Sutsilvan idiom of Romansh"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["Sutsilvan is one of the five traditional written standards or","\\"idioms\\" of the Romansh language."]},{"Type":"variant","Subtag":"tarask","Description":["Belarusian in Taraskievica orthography"],"Added":"2007-04-27","Prefix":["be"],"Comments":["The subtag represents Branislau Taraskievic\'s Belarusian","orthography as published in \\"Bielaruski klasycny pravapis\\" by Juras","Buslakou, Vincuk Viacorka, Zmicier Sanko, and Zmicier Sauka (Vilnia-","Miensk 2005)."]},{"Type":"variant","Subtag":"uccor","Description":["Unified Cornish orthography of Revived Cornish"],"Added":"2008-10-14","Prefix":["kw"]},{"Type":"variant","Subtag":"ucrcor","Description":["Unified Cornish Revised orthography of Revived Cornish"],"Added":"2008-10-14","Prefix":["kw"]},{"Type":"variant","Subtag":"ulster","Description":["Ulster dialect of Scots"],"Added":"2010-04-10","Prefix":["sco"]},{"Type":"variant","Subtag":"unifon","Description":["Unifon phonetic alphabet"],"Added":"2013-10-02","Prefix":["en","hup","kyh","tol","yur"]},{"Type":"variant","Subtag":"vaidika","Description":["Vedic Sanskrit"],"Added":"2010-07-28","Prefix":["sa"],"Comments":["The most ancient dialect of Sanskrit used in verse and prose","composed until about the 4th century B.C.E."]},{"Type":"variant","Subtag":"valencia","Description":["Valencian"],"Added":"2007-03-06","Prefix":["ca"],"Comments":["Variety spoken in the \\"Comunidad Valenciana\\" region of Spain,","where it is co-official with Spanish."]},{"Type":"variant","Subtag":"vallader","Description":["Vallader idiom of Romansh"],"Added":"2010-06-29","Prefix":["rm"],"Comments":["Vallader is one of the five traditional written standards or","\\"idioms\\" of the Romansh language."]},{"Type":"variant","Subtag":"vivaraup","Description":["Vivaro-Alpine"],"Added":"2018-04-22","Prefix":["oc"],"Comments":["Occitan variant spoken in northeastern Occitania"]},{"Type":"variant","Subtag":"wadegile","Description":["Wade-Giles romanization"],"Added":"2008-10-03","Prefix":["zh-Latn"]},{"Type":"variant","Subtag":"xsistemo","Description":["Standard X-system orthographic fallback for spelling","Esperanto"],"Added":"2017-03-14","Prefix":["eo"]},{"Type":"grandfathered","Tag":"art-lojban","Description":["Lojban"],"Added":"2001-11-11","Deprecated":"2003-09-02","Preferred-Value":"jbo"},{"Type":"grandfathered","Tag":"cel-gaulish","Description":["Gaulish"],"Added":"2001-05-25","Deprecated":"2015-03-29","Comments":["see xcg, xga, xtg"]},{"Type":"grandfathered","Tag":"en-GB-oed","Description":["English, Oxford English Dictionary spelling"],"Added":"2003-07-09","Deprecated":"2015-04-17","Preferred-Value":"en-GB-oxendict"},{"Type":"grandfathered","Tag":"i-ami","Description":["Amis"],"Added":"1999-05-25","Deprecated":"2009-07-29","Preferred-Value":"ami"},{"Type":"grandfathered","Tag":"i-bnn","Description":["Bunun"],"Added":"1999-05-25","Deprecated":"2009-07-29","Preferred-Value":"bnn"},{"Type":"grandfathered","Tag":"i-default","Description":["Default Language"],"Added":"1998-03-10"},{"Type":"grandfathered","Tag":"i-enochian","Description":["Enochian"],"Added":"2002-07-03","Deprecated":"2015-03-29"},{"Type":"grandfathered","Tag":"i-hak","Description":["Hakka"],"Added":"1999-01-31","Deprecated":"2000-01-10","Preferred-Value":"hak"},{"Type":"grandfathered","Tag":"i-klingon","Description":["Klingon"],"Added":"1999-05-26","Deprecated":"2004-02-24","Preferred-Value":"tlh"},{"Type":"grandfathered","Tag":"i-lux","Description":["Luxembourgish"],"Added":"1997-09-19","Deprecated":"1998-09-09","Preferred-Value":"lb"},{"Type":"grandfathered","Tag":"i-mingo","Description":["Mingo"],"Added":"1997-09-19"},{"Type":"grandfathered","Tag":"i-navajo","Description":["Navajo"],"Added":"1997-09-19","Deprecated":"2000-02-18","Preferred-Value":"nv"},{"Type":"grandfathered","Tag":"i-pwn","Description":["Paiwan"],"Added":"1999-05-25","Deprecated":"2009-07-29","Preferred-Value":"pwn"},{"Type":"grandfathered","Tag":"i-tao","Description":["Tao"],"Added":"1999-05-25","Deprecated":"2009-07-29","Preferred-Value":"tao"},{"Type":"grandfathered","Tag":"i-tay","Description":["Tayal"],"Added":"1999-05-25","Deprecated":"2009-07-29","Preferred-Value":"tay"},{"Type":"grandfathered","Tag":"i-tsu","Description":["Tsou"],"Added":"1999-05-25","Deprecated":"2009-07-29","Preferred-Value":"tsu"},{"Type":"grandfathered","Tag":"no-bok","Description":["Norwegian Bokmal"],"Added":"1995-08-23","Deprecated":"2000-02-18","Preferred-Value":"nb"},{"Type":"grandfathered","Tag":"no-nyn","Description":["Norwegian Nynorsk"],"Added":"1995-08-23","Deprecated":"2000-02-18","Preferred-Value":"nn"},{"Type":"grandfathered","Tag":"sgn-BE-FR","Description":["Belgian-French Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"sfb"},{"Type":"grandfathered","Tag":"sgn-BE-NL","Description":["Belgian-Flemish Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"vgt"},{"Type":"grandfathered","Tag":"sgn-CH-DE","Description":["Swiss German Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"sgg"},{"Type":"grandfathered","Tag":"zh-guoyu","Description":["Mandarin or Standard Chinese"],"Added":"1999-12-18","Deprecated":"2005-07-15","Preferred-Value":"cmn"},{"Type":"grandfathered","Tag":"zh-hakka","Description":["Hakka"],"Added":"1999-12-18","Deprecated":"2009-07-29","Preferred-Value":"hak"},{"Type":"grandfathered","Tag":"zh-min","Description":["Min, Fuzhou, Hokkien, Amoy, or Taiwanese"],"Added":"1999-12-18","Deprecated":"2009-07-29","Comments":["see cdo, cpx, czo, mnp, nan"]},{"Type":"grandfathered","Tag":"zh-min-nan","Description":["Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern","Fujian, Hoklo, Southern Fukien, Ho-lo"],"Added":"2001-03-26","Deprecated":"2009-07-29","Preferred-Value":"nan"},{"Type":"grandfathered","Tag":"zh-xiang","Description":["Xiang or Hunanese"],"Added":"1999-12-18","Deprecated":"2009-07-29","Preferred-Value":"hsn"},{"Type":"redundant","Tag":"az-Arab","Description":["Azerbaijani in Arabic script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"az-Cyrl","Description":["Azerbaijani in Cyrillic script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"az-Latn","Description":["Azerbaijani in Latin script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"be-Latn","Description":["Belarusian in Latin script"],"Added":"2005-01-06"},{"Type":"redundant","Tag":"bs-Cyrl","Description":["Bosnian in Cyrillic script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"bs-Latn","Description":["Bosnian in Latin script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"de-1901","Description":["German, traditional orthography"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-1996","Description":["German, orthography of 1996"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-AT-1901","Description":["German, Austrian variant, traditional orthography"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-AT-1996","Description":["German, Austrian variant, orthography of 1996"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-CH-1901","Description":["German, Swiss variant, traditional orthography"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-CH-1996","Description":["German, Swiss variant, orthography of 1996"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-DE-1901","Description":["German, German variant, traditional orthography"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"de-DE-1996","Description":["German, German variant, orthography of 1996"],"Added":"2001-07-17"},{"Type":"redundant","Tag":"en-boont","Description":["Boontling"],"Added":"2003-02-14"},{"Type":"redundant","Tag":"en-scouse","Description":["Scouse"],"Added":"2000-05-25"},{"Type":"redundant","Tag":"es-419","Description":["Latin American Spanish"],"Added":"2005-07-15"},{"Type":"redundant","Tag":"iu-Cans","Description":["Inuktitut in Canadian Aboriginal Syllabic script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"iu-Latn","Description":["Inuktitut in Latin script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"mn-Cyrl","Description":["Mongolian in Cyrillic script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"mn-Mong","Description":["Mongolian in Mongolian script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"sgn-BR","Description":["Brazilian Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"bzs"},{"Type":"redundant","Tag":"sgn-CO","Description":["Colombian Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"csn"},{"Type":"redundant","Tag":"sgn-DE","Description":["German Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"gsg"},{"Type":"redundant","Tag":"sgn-DK","Description":["Danish Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"dsl"},{"Type":"redundant","Tag":"sgn-ES","Description":["Spanish Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"ssp"},{"Type":"redundant","Tag":"sgn-FR","Description":["French Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"fsl"},{"Type":"redundant","Tag":"sgn-GB","Description":["British Sign Language"],"Added":"2001-03-02","Deprecated":"2009-07-29","Preferred-Value":"bfi"},{"Type":"redundant","Tag":"sgn-GR","Description":["Greek Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"gss"},{"Type":"redundant","Tag":"sgn-IE","Description":["Irish Sign Language"],"Added":"2001-03-02","Deprecated":"2009-07-29","Preferred-Value":"isg"},{"Type":"redundant","Tag":"sgn-IT","Description":["Italian Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"ise"},{"Type":"redundant","Tag":"sgn-JP","Description":["Japanese Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"jsl"},{"Type":"redundant","Tag":"sgn-MX","Description":["Mexican Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"mfs"},{"Type":"redundant","Tag":"sgn-NI","Description":["Nicaraguan Sign Language"],"Added":"2001-03-02","Deprecated":"2009-07-29","Preferred-Value":"ncs"},{"Type":"redundant","Tag":"sgn-NL","Description":["Dutch Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"dse"},{"Type":"redundant","Tag":"sgn-NO","Description":["Norwegian Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"nsl"},{"Type":"redundant","Tag":"sgn-PT","Description":["Portuguese Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"psr"},{"Type":"redundant","Tag":"sgn-SE","Description":["Swedish Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"swl"},{"Type":"redundant","Tag":"sgn-US","Description":["American Sign Language"],"Added":"2001-03-02","Deprecated":"2009-07-29","Preferred-Value":"ase"},{"Type":"redundant","Tag":"sgn-ZA","Description":["South African Sign Language"],"Added":"2001-11-11","Deprecated":"2009-07-29","Preferred-Value":"sfs"},{"Type":"redundant","Tag":"sl-nedis","Description":["Natisone dialect, Nadiza dialect"],"Added":"2004-06-01"},{"Type":"redundant","Tag":"sl-rozaj","Description":["Resian, Resianic, Rezijan"],"Added":"2003-10-09"},{"Type":"redundant","Tag":"sr-Cyrl","Description":["Serbian in Cyrillic script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"sr-Latn","Description":["Serbian in Latin script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"tg-Arab","Description":["Tajik in Arabic script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"tg-Cyrl","Description":["Tajik in Cyrillic script"],"Added":"2005-02-17"},{"Type":"redundant","Tag":"uz-Cyrl","Description":["Uzbek in Cyrillic script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"uz-Latn","Description":["Uzbek in Latin script"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"yi-Latn","Description":["Yiddish, in Latin script"],"Added":"2003-01-07"},{"Type":"redundant","Tag":"zh-cmn","Description":["Mandarin Chinese"],"Added":"2005-07-15","Deprecated":"2009-07-29","Preferred-Value":"cmn"},{"Type":"redundant","Tag":"zh-cmn-Hans","Description":["Mandarin Chinese (Simplified)"],"Added":"2005-07-15","Deprecated":"2009-07-29","Preferred-Value":"cmn-Hans"},{"Type":"redundant","Tag":"zh-cmn-Hant","Description":["Mandarin Chinese (Traditional)"],"Added":"2005-07-15","Deprecated":"2009-07-29","Preferred-Value":"cmn-Hant"},{"Type":"redundant","Tag":"zh-gan","Description":["Kan or Gan"],"Added":"1999-12-18","Deprecated":"2009-07-29","Preferred-Value":"gan"},{"Type":"redundant","Tag":"zh-Hans","Description":["simplified Chinese"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"zh-Hans-CN","Description":["PRC Mainland Chinese in simplified script"],"Added":"2005-04-13"},{"Type":"redundant","Tag":"zh-Hans-HK","Description":["Hong Kong Chinese in simplified script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hans-MO","Description":["Macao Chinese in simplified script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hans-SG","Description":["Singapore Chinese in simplified script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hans-TW","Description":["Taiwan Chinese in simplified script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hant","Description":["traditional Chinese"],"Added":"2003-05-30"},{"Type":"redundant","Tag":"zh-Hant-CN","Description":["PRC Mainland Chinese in traditional script"],"Added":"2005-04-13"},{"Type":"redundant","Tag":"zh-Hant-HK","Description":["Hong Kong Chinese in traditional script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hant-MO","Description":["Macao Chinese in traditional script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hant-SG","Description":["Singapore Chinese in traditional script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-Hant-TW","Description":["Taiwan Chinese in traditional script"],"Added":"2005-04-11"},{"Type":"redundant","Tag":"zh-wuu","Description":["Shanghaiese or Wu"],"Added":"1999-12-18","Deprecated":"2009-07-29","Preferred-Value":"wuu"},{"Type":"redundant","Tag":"zh-yue","Description":["Cantonese"],"Added":"1999-12-18","Deprecated":"2009-07-29","Preferred-Value":"yue"}]')},"931c":function(e,a,n){"use strict";var g=n("baa8"),t=n.n(g);t.a},9357:function(e){e.exports=JSON.parse('{"abq":"ABA","ab":"ABK","ady":"ADY","af":"AFK","aa":"AFR","ahg":"AGW","awn":"AGW","gsw":"ALS","atv":"ALT","alt":"ALT","am":"AMH","ar":["ARA","ary","MOR","syrc","GAR"],"arb":["ARA","syrc","GAR"],"aiw":"ARI","rmz":"ARK","rki":"ARK","as":"ASM","ath":"ATH","av":"AVR","awa":"AWA","ay":"AYM","az":"AZE","bfq":"BAD","bfy":"BAG","bci":"BAU","ber":"BBR","bcq":"BCH","be":"BEL","bem":"BEM","bn":"BEN","bg":"BGR","bhb":"BHI","bho":"BHO","bik":"BIK","byn":"BIL","bla":"BKF","bal":"BLI","bjt":"BLN","ble":"BLN","bft":"BLT","bm":"BMB","bai":"BML","bs":"BOS","br":"BRE","brh":"BRH","bra":"BRI","my":"BRM","ba":"BSH","btb":"BTI","beb":"BTI","bum":"BTI","bxp":"BTI","eto":"BTI","ewo":"BTI","fan":"BTI","mct":"BTI","ca":"CAT","ceb":"CEB","ce":"CHE","sgw":"CHG","hne":"CHH","ny":"CHI","ckt":"CHK","chp":"CHP","chr":"CHR","cv":"CHU","swb":"CMR","wlc":"CMR","wni":"CMR","zdj":"CMR","cop":"COP","co":"COS","cr":"CRE","crx":"CRR","caf":"CRR","crh":"CRT","cu":"CSL","cs":"CSY","da":"DAN","dar":"DAR","cwd":"DCR","de":"DEU","doi":"DGR","dv":"DIV","dje":"DJR","ada":"DNG","din":"DNK","prs":"DRI","dng":"DUN","dz":"DZN","igb":"EBI","crj":"ECR","crl":"ECR","bin":"EDO","efi":"EFI","el":["ELL","polyton","PGR"],"en":"ENG","myv":"ERZ","es":"ESP","et":"ETI","ekk":"ETI","eu":"EUQ","evn":"EVK","eve":"EVN","ee":"EWE","acf":"FAN","gcf":"FAN","fa":"FAR","fi":"FIN","fj":"FJI","vls":"FLE","fon":"FON","fo":"FOS","fr":"FRA","fy":"FRI","fur":"FRL","fuf":"FTA","ff":"FUL","gaa":"GAD","gd":"GAE","gag":"GAG","gl":"GAL","gbm":"GAW","gez":"GEZ","niv":"GIL","guk":"GMZ","gon":"GON","kl":"GRN","grt":"GRO","gn":"GUA","gu":"GUJ","ht":"HAI","cfm":"HAL","hoj":"HAR","ha":"HAU","haw":"HAW","amf":"HBN","hil":"HIL","hi":"HIN","mrj":"HMA","hno":"HND","hnd":"HND","hoc":"HO","har":"HRI","hr":"HRV","hu":"HUN","hy":"HYE","ig":"IBO","ijc":"IJO","ijo":"IJO","ilo":"ILO","id":"IND","inh":"ING","iu":"INU","ga":["IRI","latg","IRT"],"is":"ISL","smn":"ISM","it":"ITA","he":"IWR","jv":"JAV","yi":"JII","ja":"JAN","lad":"JUD","dyu":"JUL","kbd":"KAB","kfr":"KAC","kln":"KAL","kn":"KAN","krc":"KAR","ka":["KAT","geok","KGE"],"kk":"KAZ","alw":"KEB","kjh":"KHA","kca":"KHK","km":"KHM","khw":"KHW","ki":"KIK","ky":"KIR","guz":"KIS","kex":"KKN","xal":["KLM","mong","TODO"],"kam":"KMB","kfy":"KMN","kmw":"KMO","kxc":"KMS","kr":"KNR","kfa":"KOD","okm":"KOH","kok":"KOK","ktu":"KON","koi":"KOP","ko":"KOR","kpv":"KOZ","kpe":"KPL","kri":"KRI","kaa":"KRK","krl":"KRL","kdr":"KRM","kar":"KRN","kqy":"KRT","ks":"KSH","kha":"KSI","sjd":"KSM","kxu":"KUI","kfx":"KUL","kum":"KUM","ku":"KUR","kru":"KUU","kdt":"KUY","kpy":"KYK","lld":"LAD","bfu":"LAH","lbf":"LAH","lae":"LAH","lbe":"LAK","lmn":"LAM","lo":"LAO","la":"LAT","lzz":"LAZ","lbj":"LDK","lez":"LEZ","ln":"LIN","mhr":"LMA","lif":"LMB","ngl":"LMW","dsb":"LSB","smj":"LSM","lt":"LTH","lb":"LTZ","lua":"LUB","lu":"LUB","lg":"LUG","luy":"LUH","luo":"LUO","lv":"LVI","mpe":"MAJ","vmw":"MAK","mns":"MAN","arn":"MAP","mr":"MAR","mwr":"MAW","kmb":"MBN","mnc":"MCH","crm":"MCR","men":"MDE","mym":"MEN","lus":"MIZ","mk":"MKD","mdy":"MLE","mg":"MLG","mlq":"MLN","ml":"MLR","ms":"MLY","mnk":"MND","mn":"MNG","mni":"MNI","man":"MNK","gv":"MNX","moh":"MOH","mdf":"MOK","mo":"MOL","mnw":"MON","ary":"MOR","mi":"MRI","mai":"MTH","mt":"MTS","unr":"MUN","nag":"NAG","gld":"NAN","nsk":"NAS","csw":"NCR","nr":"NDB","nd":"NDB","ng":"NDG","ne":"NEP","new":"NEW","dap":"NIS","njz":"NIS","tgj":"NIS","niu":"NIU","nyn":"NKL","nqo":"NKO","nl":"NLD","nog":"NOG","nb":"NOR","no":"NOR","se":"NSM","nod":"NTA","eo":"NTO","nn":"NYN","oc":"OCI","ojs":"OCR","oj":"OJB","or":"ORI","om":"ORO","os":"OSS","sam":"PAA","jpa":"PAA","pi":"PAL","pa":"PAN","plp":"PAP","ps":"PAS","fil":"PIL","pce":"PLG","rbb":"PLG","pll":"PLG","pl":"PLK","pro":"PRO","pt":"PTG","tbq":"QIN","raj":"RAJ","atj":"RCR","bxr":"RBU","ria":"RIA","rm":"RMS","ro":"ROM","rom":"ROY","rue":"RSY","rw":"RUA","ru":"RUS","sck":"SAD","sa":"SAN","sat":"SAT","xan":"SEK","sel":"SEL","sg":"SGO","shn":"SHN","sjo":"SIB","sid":"SID","stv":"SIG","wle":"SIG","sms":"SKS","sk":"SKY","scs":"SLA","sl":"SLV","so":"SML","sm":"SMO","seh":"SNA","sd":"SND","si":"SNH","snk":"SNK","gru":"SOG","nso":"SOT","st":"SOT","sq":"SQI","sr":"SRB","skr":"SRK","srr":"SRR","xsl":"SSL","sma":"SSM","suq":"SUR","sva":"SVA","sv":"SVE","aii":"SWA","sw":"SWK","swh":"SWK","swc":"SWK","ss":"SWZ","syr":"SYR","tab":"TAB","tg":"TAJ","ta":"TAM","tt":"TAT","te":"TEL","to":"TGN","tig":"TGR","ti":"TGY","th":"THA","ty":"THT","bo":"TIB","tk":"TKM","tem":"TMN","tn":"TNA","yrk":"TNE","toi":"TNG","xwo":"TOD","tr":"TRK","ts":"TSG","tru":"TUA","tcy":"TUL","tyv":"TUV","ak":"TWI","udm":"UDM","uk":"UKR","ur":"URD","hsb":"USB","ug":"UYG","uz":"UZB","ve":"VEN","vi":"VIT","wbm":"WA","wbr":"WAG","cy":"WEL","wo":"WLF","khb":"XBD","xh":"XHS","sah":"YAK","yo":"YBA","crk":"YCR","ii":"YIM","zh":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"zne":"ZND","zu":"ZUL","aao":"ARA","abh":"ARA","abv":"ARA","acm":"ARA","acq":"ARA","acw":"ARA","acx":"ARA","acy":"ARA","adf":"ARA","aeb":"ARA","aec":"ARA","afb":"ARA","ajp":"ARA","apc":"ARA","apd":"ARA","arq":"ARA","ars":"ARA","arz":"ARA","auz":"ARA","avl":"ARA","ayh":"ARA","ayl":"ARA","ayn":"ARA","ayp":"ARA","bbz":"ARA","pga":"ARA","shu":"ARA","ssh":"ARA","ayc":"AYM","ayr":"AYM","azb":"AZE","azj":"AZE","bcl":"BIK","bhk":"BIK","bln":"BIK","bto":"BIK","cts":"BIK","fbl":"BIK","lbl":"BIK","rbl":"BIK","ubl":"BIK","bcc":"BLI","bgn":"BLI","bgp":"BLI","dgo":"DGR","xnr":"DGR","dib":"DNK","dik":"DNK","dip":"DNK","diw":"DNK","dks":"DNK","vro":"ETI","pes":"FAR","ffm":"FUL","fub":"FUL","fuc":"FUL","fue":"FUL","fuh":"FUL","fui":"FUL","fuq":"FUL","fuv":"FUL","ggo":"GON","gno":"GON","gnw":"GUA","gug":"GUA","gui":"GUA","gun":"GUA","nhd":"GUA","ike":"INU","ikt":"INU","ydd":"JII","yih":"JII","enb":"KAL","eyo":"KAL","niq":"KAL","oki":"KAL","pko":"KAL","sgc":"KAL","spy":"KAL","tec":"KAL","tuy":"KAL","kby":"KNR","knc":"KNR","krt":"KNR","gom":"KOK","knn":"KOK","gkp":"KPL","xpe":"KPL","ckb":"KUR","kmr":"KUR","sdh":"KUR","bxk":"LUH","ida":"LUH","lkb":"LUH","lko":"LUH","lks":"LUH","lri":"LUH","lrm":"LUH","lsm":"LUH","lto":"LUH","lts":"LUH","lwg":"LUH","nle":"LUH","nyd":"LUH","rag":"LUH","ltg":"LVI","lvs":"LVI","dhd":"MAW","mtr":"MAW","mve":"MAW","rwr":"MAW","swv":"MAW","wry":"MAW","bhr":"MLG","bjq":"MLG","bmm":"MLG","bzc":"MLG","msh":"MLG","plt":"MLG","skg":"MLG","tdx":"MLG","tkg":"MLG","txy":"MLG","xmv":"MLG","xmw":"MLG","bjn":"MLY","btj":"MLY","bve":"MLY","bvu":"MLY","coa":"MLY","dup":"MLY","hji":"MLY","jak":"MLY","jax":"MLY","kvb":"MLY","kvr":"MLY","kxd":"MLY","lce":"MLY","lcf":"MLY","liw":"MLY","max":"MLY","meo":"MLY","mfa":"MLY","mfb":"MLY","min":"MLY","mqg":"MLY","msi":"MLY","mui":"MLY","orn":"MLY","ors":"MLY","pel":"MLY","pse":"MLY","tmw":"MLY","urk":"MLY","vkk":"MLY","vkt":"MLY","xmm":"MLY","zlm":"MLY","zmi":"MLY","zsm":"MLY","khk":"MNG","mvf":"MNG","emk":"MNK","mku":"MNK","msc":"MNK","mwk":"MNK","myq":"MNK","dty":"NEP","npi":"NEP","ciw":"OJB","ojb":"OJB","ojc":"OJB","ojg":"OJB","ojw":"OJB","otw":"OJB","ory":"ORI","spv":"ORI","gax":"ORO","gaz":"ORO","hae":"ORO","orc":"ORO","pbt":"PAS","pbu":"PAS","pst":"PAS","bgq":"RAJ","gda":"RAJ","gju":"RAJ","mup":"RAJ","rmc":"ROY","rmf":"ROY","rml":"ROY","rmn":"ROY","rmo":"ROY","rmw":"ROY","rmy":"ROY","aae":"SQI","aat":"SQI","aln":"SQI","als":"SQI","cld":"SYR","tw":"TWI","fat":"TWI","uzn":"UZB","uzs":"UZB","cdo":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"cjy":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"cmn":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"cpx":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"czh":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"czo":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"gan":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"hak":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"hsn":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"lzh":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"mnp":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"nan":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"wuu":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"],"yue":["ZHS","hans","ZHS","latn","ZHP","hk","ZHH","hant","ZHT","mo","ZHT","tw","ZHT"]}')},"95d5":function(e,a,n){var g=n("40c3"),t=n("5168")("iterator"),i=n("481b");e.exports=n("584a").isIterable=function(e){var a=Object(e);return void 0!==a[t]||"@@iterator"in a||i.hasOwnProperty(g(a))}},"969d":function(e,a,n){},"96cf":function(e,a,n){var g=function(e){"use strict";var a,n=Object.prototype,g=n.hasOwnProperty,t="function"===typeof Symbol?Symbol:{},i=t.iterator||"@@iterator",u=t.asyncIterator||"@@asyncIterator",r=t.toStringTag||"@@toStringTag";function d(e,a,n,g){var t=a&&a.prototype instanceof y?a:y,i=Object.create(t.prototype),u=new j(g||[]);return i._invoke=k(e,n,u),i}function o(e,a,n){try{return{type:"normal",arg:e.call(a,n)}}catch(g){return{type:"throw",arg:g}}}e.wrap=d;var l="suspendedStart",p="suspendedYield",s="executing",c="completed",b={};function y(){}function S(){}function h(){}var A={};A[i]=function(){return this};var T=Object.getPrototypeOf,m=T&&T(T(z([])));m&&m!==n&&g.call(m,i)&&(A=m);var f=h.prototype=y.prototype=Object.create(A);function D(e){["next","throw","return"].forEach((function(a){e[a]=function(e){return this._invoke(a,e)}}))}function v(e){function a(n,t,i,u){var r=o(e[n],e,t);if("throw"!==r.type){var d=r.arg,l=d.value;return l&&"object"===typeof l&&g.call(l,"__await")?Promise.resolve(l.__await).then((function(e){a("next",e,i,u)}),(function(e){a("throw",e,i,u)})):Promise.resolve(l).then((function(e){d.value=e,i(d)}),(function(e){return a("throw",e,i,u)}))}u(r.arg)}var n;function t(e,g){function t(){return new Promise((function(n,t){a(e,g,n,t)}))}return n=n?n.then(t,t):t()}this._invoke=t}function k(e,a,n){var g=l;return function(t,i){if(g===s)throw new Error("Generator is already running");if(g===c){if("throw"===t)throw i;return C()}n.method=t,n.arg=i;while(1){var u=n.delegate;if(u){var r=w(u,n);if(r){if(r===b)continue;return r}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(g===l)throw g=c,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);g=s;var d=o(e,a,n);if("normal"===d.type){if(g=n.done?c:p,d.arg===b)continue;return{value:d.arg,done:n.done}}"throw"===d.type&&(g=c,n.method="throw",n.arg=d.arg)}}}function w(e,n){var g=e.iterator[n.method];if(g===a){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=a,w(e,n),"throw"===n.method))return b;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return b}var t=o(g,e.iterator,n.arg);if("throw"===t.type)return n.method="throw",n.arg=t.arg,n.delegate=null,b;var i=t.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=a),n.delegate=null,b):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,b)}function x(e){var a={tryLoc:e[0]};1 in e&&(a.catchLoc=e[1]),2 in e&&(a.finallyLoc=e[2],a.afterLoc=e[3]),this.tryEntries.push(a)}function M(e){var a=e.completion||{};a.type="normal",delete a.arg,e.completion=a}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function z(e){if(e){var n=e[i];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var t=-1,u=function n(){while(++t=0;--i){var u=this.tryEntries[i],r=u.completion;if("root"===u.tryLoc)return t("end");if(u.tryLoc<=this.prev){var d=g.call(u,"catchLoc"),o=g.call(u,"finallyLoc");if(d&&o){if(this.prev=0;--n){var t=this.tryEntries[n];if(t.tryLoc<=this.prev&&g.call(t,"finallyLoc")&&this.prev=0;--a){var n=this.tryEntries[a];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),b}},catch:function(e){for(var a=this.tryEntries.length-1;a>=0;--a){var n=this.tryEntries[a];if(n.tryLoc===e){var g=n.completion;if("throw"===g.type){var t=g.arg;M(n)}return t}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,g){return this.delegate={iterator:z(e),resultName:n,nextLoc:g},"next"===this.method&&(this.arg=a),b}},e}(e.exports);try{regeneratorRuntime=g}catch(t){Function("r","regeneratorRuntime = r")(g)}},9744:function(e,a,n){"use strict";var g=n("4588"),t=n("be13");e.exports=function(e){var a=String(t(this)),n="",i=g(e);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(a+=a))1&i&&(n+=a);return n}},"990b":function(e,a,n){var g=n("9093"),t=n("2621"),i=n("cb7c"),u=n("7726").Reflect;e.exports=u&&u.ownKeys||function(e){var a=g.f(i(e)),n=t.f;return n?a.concat(n(e)):a}},"9aa9":function(e,a){a.f=Object.getOwnPropertySymbols},"9b43":function(e,a,n){var g=n("d8e8");e.exports=function(e,a,n){if(g(e),void 0===a)return e;switch(n){case 1:return function(n){return e.call(a,n)};case 2:return function(n,g){return e.call(a,n,g)};case 3:return function(n,g,t){return e.call(a,n,g,t)}}return function(){return e.apply(a,arguments)}}},"9c6c":function(e,a,n){var g=n("2b4c")("unscopables"),t=Array.prototype;void 0==t[g]&&n("32e9")(t,g,{}),e.exports=function(e){t[g][e]=!0}},"9c80":function(e,a){e.exports=function(e){try{return{e:!1,v:e()}}catch(a){return{e:!0,v:a}}}},"9def":function(e,a,n){var g=n("4588"),t=Math.min;e.exports=function(e){return e>0?t(g(e),9007199254740991):0}},"9e1e":function(e,a,n){e.exports=!n("79e5")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},a020:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"ui-textbox",class:e.classes},[e.icon||e.$slots.icon?n("div",{staticClass:"ui-textbox__icon-wrapper"},[e._t("icon",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),n("div",{staticClass:"ui-textbox__content"},[n("label",{staticClass:"ui-textbox__label"},[e.multiLine?n("textarea",{directives:[{name:"autofocus",rawName:"v-autofocus",value:e.autofocus,expression:"autofocus"}],ref:"textarea",staticClass:"ui-textbox__textarea",attrs:{autocomplete:e.autocomplete?e.autocomplete:null,disabled:e.disabled,maxlength:e.enforceMaxlength?e.maxlength:null,minlength:e.minlength,name:e.name,placeholder:e.hasFloatingLabel?null:e.placeholder,readonly:e.readonly,required:e.required,rows:e.rows,tabindex:e.tabindex},domProps:{value:e.value},on:{blur:e.onBlur,change:e.onChange,focus:e.onFocus,input:function(a){return e.updateValue(a.target.value)},keydown:[function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"enter",13,a.key,"Enter")?null:e.onKeydownEnter(a)},e.onKeydown]}}):n("input",{directives:[{name:"autofocus",rawName:"v-autofocus",value:e.autofocus,expression:"autofocus"}],ref:"input",staticClass:"ui-textbox__input",attrs:{autocomplete:e.autocomplete?e.autocomplete:null,disabled:e.disabled,max:e.maxValue,maxlength:e.enforceMaxlength?e.maxlength:null,minlength:e.minlength,min:e.minValue,name:e.name,number:"number"===e.type||null,placeholder:e.hasFloatingLabel?null:e.placeholder,readonly:e.readonly,required:e.required,step:e.stepValue,tabindex:e.tabindex,type:e.type},domProps:{value:e.value},on:{blur:e.onBlur,change:e.onChange,focus:e.onFocus,input:function(a){return e.updateValue(a.target.value)},keydown:[function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"enter",13,a.key,"Enter")?null:e.onKeydownEnter(a)},e.onKeydown]}}),e.label||e.$slots.default?n("div",{staticClass:"ui-textbox__label-text",class:e.labelClasses},[e._t("default",[e._v(e._s(e.label))])],2):e._e()]),e.hasFeedback||e.maxlength?n("div",{staticClass:"ui-textbox__feedback"},[e.showError?n("div",{staticClass:"ui-textbox__feedback-text"},[e._t("error",[e._v(e._s(e.error))])],2):e.showHelp?n("div",{staticClass:"ui-textbox__feedback-text"},[e._t("help",[e._v(e._s(e.help))])],2):e._e(),e.maxlength?n("div",{staticClass:"ui-textbox__counter"},[e._v("\n "+e._s(e.valueLength+"/"+e.maxlength)+"\n ")]):e._e()]):e._e()])])},t=[],i=(n("c5f6"),{inserted(e,{value:a}){a&&e.focus()}}),u=n("d235"),r=n("19e9"),d=n.n(r),o={name:"ui-textbox",props:{name:String,placeholder:String,tabindex:[String,Number],value:{type:[String,Number],default:""},icon:String,iconPosition:{type:String,default:"left"},label:String,floatingLabel:{type:Boolean,default:!1},type:{type:String,default:"text"},multiLine:{type:Boolean,default:!1},rows:{type:Number,default:2},autocomplete:String,autofocus:{type:Boolean,default:!1},autosize:{type:Boolean,default:!0},min:Number,max:Number,step:{type:[String,Number],default:"any"},maxlength:Number,minlength:Number,enforceMaxlength:{type:Boolean,default:!1},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},help:String,error:String,invalid:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},data:function(){return{isActive:!1,isTouched:!1,initialValue:this.value,autosizeInitialized:!1}},computed:{classes:function(){return["ui-textbox--icon-position-".concat(this.iconPosition),{"is-active":this.isActive},{"is-invalid":this.invalid},{"is-touched":this.isTouched},{"is-multi-line":this.multiLine},{"has-counter":this.maxlength},{"is-disabled":this.disabled},{"has-label":this.hasLabel},{"has-floating-label":this.hasFloatingLabel}]},labelClasses:function(){return{"is-inline":this.hasFloatingLabel&&this.isLabelInline,"is-floating":this.hasFloatingLabel&&!this.isLabelInline}},hasLabel:function(){return Boolean(this.label)||Boolean(this.$slots.default)},hasFloatingLabel:function(){return this.hasLabel&&this.floatingLabel},isLabelInline:function(){return 0===this.valueLength&&!this.isActive},minValue:function(){return"number"===this.type&&void 0!==this.min?this.min:null},maxValue:function(){return"number"===this.type&&void 0!==this.max?this.max:null},stepValue:function(){return"number"===this.type?this.step:null},valueLength:function(){return this.value?this.value.length:0},hasFeedback:function(){return this.showError||this.showHelp},showError:function(){return this.invalid&&(Boolean(this.error)||Boolean(this.$slots.error))},showHelp:function(){return Boolean(this.help)||Boolean(this.$slots.help)}},created:function(){null===this.value&&(this.initialValue="",this.updateValue(""))},mounted:function(){this.multiLine&&this.autosize&&(d()(this.$refs.textarea),this.autosizeInitialized=!0)},beforeDestroy:function(){this.autosizeInitialized&&d.a.destroy(this.$refs.textarea)},methods:{updateValue:function(e){this.$emit("input",e)},onChange:function(e){this.$emit("change",this.value,e)},onFocus:function(e){this.isActive=!0,this.$emit("focus",e)},onBlur:function(e){this.isActive=!1,this.$emit("blur",e),this.isTouched||(this.isTouched=!0,this.$emit("touch"))},onKeydown:function(e){this.$emit("keydown",e)},onKeydownEnter:function(e){this.$emit("keydown-enter",e)},reset:function(){document.activeElement!==this.$refs.input&&document.activeElement!==this.$refs.textarea||document.activeElement.blur(),this.updateValue(this.initialValue),this.resetTouched()},resetTouched:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{touched:!1};this.isTouched=e.touched},refreshSize:function(){this.autosizeInitialized&&d.a.update(this.$refs.textarea)},focus:function(){(this.$refs.input||this.$refs.textarea).focus()}},components:{UiIcon:u["a"]},directives:{autofocus:i}},l=o,p=(n("2d82"),n("2877")),s=Object(p["a"])(l,g,t,!1,null,null,null);a["a"]=s.exports},a0fd:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("ui-focus-container",{ref:"focusContainer",staticClass:"ui-popover",class:{"is-raised":e.raised},attrs:{role:"dialog","contain-focus":e.containFocus,"focus-redirector":e.focusRedirector},on:{"focus-overflow":function(a){return e.close()}}},[e._t("default")],2)},t=[],i=(n("a481"),n("c5f6"),n("a5c9")),u=n("3c7e"),r=n("1513"),d=n("cbde"),o=n("3024"),l={name:"ui-popover",props:{animation:{type:String,default:"fade"},appendToBody:{type:Boolean,default:!0},closeOnScroll:{type:Boolean,default:!0},constrainToScrollParent:{type:Boolean,default:!0},containFocus:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},focusRedirector:Function,openOn:{type:String,default:"click"},position:{type:String,default:"bottom-start"},raised:{type:Boolean,default:!0},trigger:{validator:function(e){return r["a"].validate(e,'[UiPopover]: Invalid prop: "trigger". Expected Element, VueComponent or CSS selector string which matches an existing element.')}},zIndex:Number},data:function(){return{returnFocus:!0}},watch:{disabled:function(e){this.tip&&(!0===e?this.tip.disable():this.tip.enable())}},created:function(){this.tip=null},mounted:function(){this.setupPopover()},beforeDestroy:function(){this.destroyPopover()},methods:{setupPopover:function(){if(this.triggerEl=r["a"].resolve(this.trigger,this.$el.parentElement),this.triggerEl){var e={animateFill:!1,animation:"none"===this.animation?"fade":this.animation,appendTo:this.appendToBody?document.body:this.triggerEl.parentElement,arrow:!1,content:this.$el,delay:[0,0],distance:0,duration:"none"===this.animation?0:[250,200],hideOnClick:!0,ignoreAttributes:!0,interactive:!0,lazy:!0,maxWidth:"100%",multiple:!0,onHidden:this.onHidden,onHide:this.onClose,onShow:this.onOpen,onShown:this.onShown,placement:this.position,role:"dialog",theme:"ui-popover",trigger:this.openOn.replace("hover","mouseenter"),zIndex:this.zIndex,popperOptions:{modifiers:{computeStyle:{gpuAcceleration:!(window.devicePixelRatio<1.5&&/Win/.test(navigator.platform))}}}};this.constrainToScrollParent||(e.popperOptions.modifiers.preventOverflow={enabled:!1},e.popperOptions.modifiers.hide={enabled:!1}),this.tip=Object(i["a"])(this.triggerEl,e),this.disabled&&this.tip.disable()}else console.error("[UiPopover]: Trigger element not found.")},destroyPopover:function(){this.tip&&(this.removeCloseEventListeners(),this.tip.destroy(),this.tip=null)},isOpen:function(){return this.tip&&this.tip.state.isVisible},open:function(){this.tip&&this.tip.show()},close:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{returnFocus:!0};this.tip&&(this.returnFocus=e.returnFocus,this.tip.hide())},toggle:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{returnFocus:!0};this.tip&&(this.returnFocus=e.returnFocus,this.tip[this.isOpen()?"hide":"show"]())},scheduleUpdate:function(){this.tip&&this.tip.popperInstance.scheduleUpdate()},onOpen:function(){this.addCloseEventListeners(),u["a"].add(this.triggerEl,"has-dropdown-open"),this.$emit("open")},onClose:function(){this.returnFocus&&this.lastFocusedElement&&this.lastFocusedElement.focus(),this.removeCloseEventListeners(),u["a"].remove(this.triggerEl,"has-dropdown-open"),this.$emit("close"),this.returnFocus=!0},onShown:function(){this.lastFocusedElement=document.activeElement,this.$refs.focusContainer.focus(),this.$emit("reveal")},onHidden:function(){this.$emit("hide")},closeOnExternal:function(e,a){this.$el.contains(e.target)||this.close(a)},addCloseEventListeners:function(){var e=this;this.removeCloseEventListeners(),setTimeout((function(){e.removeExternalClickListener=d["a"].on("click",document,(function(a){e.closeOnExternal(a,{returnFocus:!1})})),e.removeEscListener=d["a"].onKeydown(27,document,(function(){e.close({returnFocus:!0})})),e.closeOnScroll&&(e.removeScrollListener=d["a"].on("scroll",document,(function(a){e.closeOnExternal(a,{returnFocus:!0})})))}),0)},removeCloseEventListeners:function(){this.removeExternalClickListener&&(this.removeExternalClickListener(),this.removeExternalClickListener=null),this.removeEscListener&&(this.removeEscListener(),this.removeEscListener=null),this.removeScrollListener&&(this.removeScrollListener(),this.removeScrollListener=null)}},components:{UiFocusContainer:o["a"]}},p=l,s=(n("1e13"),n("2877")),c=Object(s["a"])(p,g,t,!1,null,null,null);a["a"]=c.exports},a159:function(e,a,n){var g=n("e4ae"),t=n("7e90"),i=n("1691"),u=n("5559")("IE_PROTO"),r=function(){},d="prototype",o=function(){var e,a=n("1ec9")("iframe"),g=i.length,t="<",u=">";a.style.display="none",n("32fc").appendChild(a),a.src="javascript:",e=a.contentWindow.document,e.open(),e.write(t+"script"+u+"document.F=Object"+t+"/script"+u),e.close(),o=e.F;while(g--)delete o[d][i[g]];return o()};e.exports=Object.create||function(e,a){var n;return null!==e?(r[d]=g(e),n=new r,r[d]=null,n[u]=e):n=o(),void 0===a?n:t(n,a)}},a22a:function(e,a,n){var g=n("d864"),t=n("b0dc"),i=n("3702"),u=n("e4ae"),r=n("b447"),d=n("7cd6"),o={},l={};a=e.exports=function(e,a,n,p,s){var c,b,y,S,h=s?function(){return e}:d(e),A=g(n,p,a?2:1),T=0;if("function"!=typeof h)throw TypeError(e+" is not iterable!");if(i(h)){for(c=r(e.length);c>T;T++)if(S=a?A(u(b=e[T])[0],b[1]):A(e[T]),S===o||S===l)return S}else for(y=h.call(e);!(b=y.next()).done;)if(S=t(y,A,b.value,a),S===o||S===l)return S};a.BREAK=o,a.RETURN=l},a25f:function(e,a,n){var g=n("7726"),t=g.navigator;e.exports=t&&t.userAgent||""},a481:function(e,a,n){"use strict";var g=n("cb7c"),t=n("4bf8"),i=n("9def"),u=n("4588"),r=n("0390"),d=n("5f1b"),o=Math.max,l=Math.min,p=Math.floor,s=/\$([$&`']|\d\d?|<[^>]*>)/g,c=/\$([$&`']|\d\d?)/g,b=function(e){return void 0===e?e:String(e)};n("214f")("replace",2,(function(e,a,n,y){return[function(g,t){var i=e(this),u=void 0==g?void 0:g[a];return void 0!==u?u.call(g,i,t):n.call(String(i),g,t)},function(e,a){var t=y(n,e,this,a);if(t.done)return t.value;var p=g(e),s=String(this),c="function"===typeof a;c||(a=String(a));var h=p.global;if(h){var A=p.unicode;p.lastIndex=0}var T=[];while(1){var m=d(p,s);if(null===m)break;if(T.push(m),!h)break;var f=String(m[0]);""===f&&(p.lastIndex=r(s,i(p.lastIndex),A))}for(var D="",v=0,k=0;k=v&&(D+=s.slice(v,x)+P,v=x+w.length)}return D+s.slice(v)}];function S(e,a,g,i,u,r){var d=g+e.length,o=i.length,l=c;return void 0!==u&&(u=t(u),l=s),n.call(r,l,(function(n,t){var r;switch(t.charAt(0)){case"$":return"$";case"&":return e;case"`":return a.slice(0,g);case"'":return a.slice(d);case"<":r=u[t.slice(1,-1)];break;default:var l=+t;if(0===l)return n;if(l>o){var s=p(l/10);return 0===s?n:s<=o?void 0===i[s-1]?t.charAt(1):i[s-1]+t.charAt(1):n}r=i[l-1]}return void 0===r?"":r}))}}))},a4bb:function(e,a,n){e.exports=n("8aae")},a58e:function(e,a,n){"use strict"; -/** - * @author Matthew Caruana Galizia - * @license MIT: http://mattcg.mit-license.org/ - * @copyright Copyright (c) 2013, Matthew Caruana Galizia - */var g=n("7c53"),t=n("8044"),i=n("36fe"),u=n("9200"),r=function(e){return new g(e)};e.exports=r,r.check=function(e){return new g(e).valid()},r.types=function(e){var a=i[e];return a?Object.keys(a).filter((function(e){return"grandfathered"!==e&&"redundant"!==e})):[]},r.subtags=function(e){var a=[];return Array.isArray(e)||(e=[e]),e.forEach((function(e){r.types(e).forEach((function(n){a.push(new t(e,n))}))})),a},r.filter=function(e){return e.filter((function(e){return!r.types(e).length}))},r.search=function(e,a){var n;return n="function"===typeof e.test?function(a){return e.test(a)}:e.toLowerCase()===e?function(a){return-1!==a.toLowerCase().indexOf(e)}:function(a){return-1!==a.indexOf(e)},u.filter((function(e){return!(!e.Subtag&&!a)&&e.Description.some(n)})).sort((function(e,a){return Math.min.apply(Math,e.Description.filter(n).map((function(e){return e.length})))-Math.min.apply(Math,a.Description.filter(n).map((function(e){return e.length})))})).map((function(e){return e.Subtag?new t(e.Subtag,e.Type):new g(e.Tag)}))},r.languages=function(e){var a,g,i,r=[];if(e=e.toLowerCase(),!n("0ddf")[e])throw new Error("'"+e+"' is not a macrolanguage.");for(a=0,g=u.length;a-1}function Q(e){return e instanceof Element}function ee(e){return!(!e||!U(e,"isVirtual"))||Q(e)}function ae(){return"innerHTML"}function ne(e,a){return"function"===typeof e?e.apply(null,a):e}function ge(e,a){e.filter((function(e){return"flip"===e.name}))[0].enabled=a}function te(e){return!Q(e)||b.call(e,"a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]")&&!e.hasAttribute("disabled")}function ie(){return document.createElement("div")}function ue(e,a){e.forEach((function(e){e&&(e.style.transitionDuration="".concat(a,"ms"))}))}function re(e,a){e.forEach((function(e){e&&e.setAttribute("data-state",a)}))}function de(e,a){var n=t({},a,{content:ne(a.content,[e])},a.ignoreAttributes?{}:G(e));return(n.arrow||o)&&(n.animateFill=!1),n}function oe(e,a){Object.keys(e).forEach((function(e){if(!U(a,e))throw new Error("[tippy]: `".concat(e,"` is not a valid option"))}))}function le(e,a){e[ae()]=Q(a)?a[ae()]:a}function pe(e,a){if(Q(a.content))le(e,""),e.appendChild(a.content);else if("function"!==typeof a.content){var n=a.allowHTML?"innerHTML":"textContent";e[n]=a.content}}function se(e){return{tooltip:e.querySelector(P),backdrop:e.querySelector(N),content:e.querySelector(L),arrow:e.querySelector(_)||e.querySelector(E)}}function ce(e){e.setAttribute("data-inertia","")}function be(e){e.removeAttribute("data-inertia")}function ye(e){var a=ie();return"round"===e?(a.className=z,le(a,'')):a.className=j,a}function Se(){var e=ie();return e.className=M,e.setAttribute("data-state","hidden"),e}function he(e,a){e.setAttribute("tabindex","-1"),a.setAttribute("data-interactive","")}function Ae(e,a){e.removeAttribute("tabindex"),a.removeAttribute("data-interactive")}function Te(e,a,n){var g=o&&void 0!==document.body.style.webkitTransition?"webkitTransitionEnd":"transitionend";e[a+"EventListener"](g,n)}function me(e){var a=e.getAttribute(m);return a?a.split("-")[0]:""}function fe(e){e.offsetHeight}function De(e,a,n){n.split(" ").forEach((function(n){e.classList[a](n+"-theme")}))}function ve(e,a){var n=ie();n.className=k,n.id="tippy-".concat(e),n.style.zIndex=""+a.zIndex,n.style.position="absolute",n.style.top="0",n.style.left="0",a.role&&n.setAttribute("role",a.role);var g=ie();g.className=w,g.style.maxWidth=a.maxWidth+("number"===typeof a.maxWidth?"px":""),g.setAttribute("data-size",a.size),g.setAttribute("data-animation",a.animation),g.setAttribute("data-state","hidden"),De(g,"add",a.theme);var t=ie();return t.className=x,t.setAttribute("data-state","hidden"),a.interactive&&he(n,g),a.arrow&&g.appendChild(ye(a.arrowType)),a.animateFill&&(g.appendChild(Se()),g.setAttribute("data-animatefill","")),a.inertia&&ce(g),pe(t,a),g.appendChild(t),n.appendChild(g),n}function ke(e,a,n){var g=se(e),t=g.tooltip,i=g.content,u=g.backdrop,r=g.arrow;e.style.zIndex=""+n.zIndex,t.setAttribute("data-size",n.size),t.setAttribute("data-animation",n.animation),t.style.maxWidth=n.maxWidth+("number"===typeof n.maxWidth?"px":""),n.role?e.setAttribute("role",n.role):e.removeAttribute("role"),a.content!==n.content&&pe(i,n),!a.animateFill&&n.animateFill?(t.appendChild(Se()),t.setAttribute("data-animatefill","")):a.animateFill&&!n.animateFill&&(t.removeChild(u),t.removeAttribute("data-animatefill")),!a.arrow&&n.arrow?t.appendChild(ye(n.arrowType)):a.arrow&&!n.arrow&&t.removeChild(r),a.arrow&&n.arrow&&a.arrowType!==n.arrowType&&t.replaceChild(ye(n.arrowType),r),!a.interactive&&n.interactive?he(e,t):a.interactive&&!n.interactive&&Ae(e,t),!a.inertia&&n.inertia?ce(t):a.inertia&&!n.inertia&&be(t),a.theme!==n.theme&&(De(t,"remove",a.theme),De(t,"add",n.theme))}function we(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=e.exclude,n=e.duration;y(document.querySelectorAll(C)).forEach((function(e){var g=e._tippy;if(g){var t=!1;a&&(t=W(a)?g.reference===a:e===a.popper),t||g.hide(n)}}))}function xe(e,a,n,g){if(!e)return!0;var t=n.clientX,i=n.clientY,u=g.interactiveBorder,r=g.distance,d=a.top-i>("top"===e?u+r:u),o=i-a.bottom>("bottom"===e?u+r:u),l=a.left-t>("left"===e?u+r:u),p=t-a.right>("right"===e?u+r:u);return d||o||l||p}function Me(e){return-(e-10)+"px"}var je=1,ze=[];function Ce(e,a){var n,i,u,r,o,l=de(e,a);if(!l.multiple&&e._tippy)return null;var c,b,D,k,w=!1,x=!1,M=!1,j=!1,z=[],P=Z(Se,l.interactiveDebounce),L=je++,N=ve(L,l),_=se(N),E=null,O={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},K={id:L,reference:e,popper:N,popperChildren:_,popperInstance:E,props:l,state:O,clearDelayTimeouts:Ie,set:Re,setContent:He,show:Ge,hide:Ve,enable:Ke,disable:qe,destroy:Fe};return e._tippy=K,N._tippy=K,le(),l.lazy||Ne(),l.showOnInit&&Ee(),!l.a11y||l.target||te(R())||R().setAttribute("tabindex","0"),N.addEventListener("mouseenter",(function(e){K.props.interactive&&K.state.isVisible&&"mouseenter"===n&&Ee(e,!0)})),N.addEventListener("mouseleave",(function(){K.props.interactive&&"mouseenter"===n&&document.addEventListener("mousemove",P)})),K;function q(){document.removeEventListener("mousemove",ce)}function I(){document.body.removeEventListener("mouseleave",Be),document.removeEventListener("mousemove",P),ze=ze.filter((function(e){return e!==P}))}function R(){return K.props.triggerTarget||e}function H(){document.addEventListener("click",Oe,!0)}function G(){document.removeEventListener("click",Oe,!0)}function V(){return[K.popperChildren.tooltip,K.popperChildren.backdrop,K.popperChildren.content]}function F(){var e=K.props.followCursor;return e&&"focus"!==n||B&&"initial"===e}function W(){ue([N],d?0:K.props.updateDuration);var a=e.getBoundingClientRect();function n(){var g=e.getBoundingClientRect();a.top===g.top&&a.right===g.right&&a.bottom===g.bottom&&a.left===g.left||K.popperInstance.scheduleUpdate(),a=g,K.state.isMounted&&requestAnimationFrame(n)}n()}function $(e,a){ae(e,(function(){!K.state.isVisible&&N.parentNode&&N.parentNode.contains(N)&&a()}))}function ee(e,a){ae(e,a)}function ae(e,a){var n=K.popperChildren.tooltip;function g(e){e.target===n&&(Te(n,"remove",g),a())}if(0===e)return a();Te(n,"remove",D),Te(n,"add",g),D=g}function ie(e,a){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];R().addEventListener(e,a,n),z.push({eventType:e,handler:a,options:n})}function le(){K.props.touchHold&&!K.props.target&&(ie("touchstart",ye,A),ie("touchend",he,A)),K.props.trigger.trim().split(" ").forEach((function(e){if("manual"!==e)if(K.props.target)switch(e){case"mouseenter":ie("mouseover",De),ie("mouseout",we);break;case"focus":ie("focusin",De),ie("focusout",we);break;case"click":ie(e,De);break}else switch(ie(e,ye),e){case"mouseenter":ie("mouseleave",he);break;case"focus":ie(d?"focusout":"blur",Ae);break}}))}function pe(){z.forEach((function(e){var a=e.eventType,n=e.handler,g=e.options;R().removeEventListener(a,n,g)})),z=[]}function ce(a){var n=i=a,g=n.clientX,u=n.clientY;if(k){var r=h(a.target,(function(a){return a===e})),d=e.getBoundingClientRect(),o=K.props.followCursor,l="horizontal"===o,p="vertical"===o,s=X(["top","bottom"],me(N)),c=N.getAttribute(m),b=!!c&&!!c.split("-")[1],y=s?N.offsetWidth:N.offsetHeight,S=y/2,A=s?0:b?y:S,T=s?b?y:S:0;!r&&K.props.interactive||(K.popperInstance.reference=t({},K.popperInstance.reference,{referenceNode:e,clientWidth:0,clientHeight:0,getBoundingClientRect:function(){return{width:s?y:0,height:s?0:y,top:(l?d.top:u)-A,bottom:(l?d.bottom:u)+A,left:(p?d.left:g)-T,right:(p?d.right:g)+T}}}),K.popperInstance.update()),"initial"===o&&K.state.isVisible&&q()}}function be(e){if(e){var n=S(e.target,K.props.target);n&&!n._tippy&&Ce(n,t({},K.props,{content:ne(a.content,[n]),appendTo:a.appendTo,target:"",showOnInit:!0}))}}function ye(e){K.state.isEnabled&&!Pe(e)&&(K.state.isVisible||(n=e.type,e instanceof MouseEvent&&(i=e,ze.forEach((function(a){return a(e)})))),"click"===e.type&&!1!==K.props.hideOnClick&&K.state.isVisible?Be():Ee(e))}function Se(a){var n=S(a.target,C)===N,g=h(a.target,(function(a){return a===e}));n||g||xe(me(N),N.getBoundingClientRect(),a,K.props)&&(I(),Be())}function he(e){if(!Pe(e))return K.props.interactive?(document.body.addEventListener("mouseleave",Be),document.addEventListener("mousemove",P),void ze.push(P)):void Be()}function Ae(e){e.target===R()&&(K.props.interactive&&e.relatedTarget&&N.contains(e.relatedTarget)||Be())}function De(e){S(e.target,K.props.target)&&Ee(e)}function we(e){S(e.target,K.props.target)&&Be()}function Pe(e){var a="ontouchstart"in window,n=X(e.type,"touch"),g=K.props.touchHold;return a&&B&&g&&!n||B&&!g&&n}function Le(){!j&&b&&(j=!0,fe(N),b())}function Ne(){var a=K.props.popperOptions,n=K.popperChildren,i=n.tooltip,u=n.arrow,r=J(a,"preventOverflow");function d(e){K.props.flip&&!K.props.flipOnUpdate&&(e.flipped&&(K.popperInstance.options.placement=e.placement),ge(K.popperInstance.modifiers,!1)),i.setAttribute(m,e.placement),!1!==e.attributes[f]?i.setAttribute(f,""):i.removeAttribute(f),c&&c!==e.placement&&M&&(i.style.transition="none",requestAnimationFrame((function(){i.style.transition=""}))),c=e.placement,M=K.state.isVisible;var a=me(N),n=i.style;n.top=n.bottom=n.left=n.right="",n[a]=Me(K.props.distance);var g=r&&void 0!==r.padding?r.padding:T,u="number"===typeof g,d=t({top:u?g:g.top,bottom:u?g:g.bottom,left:u?g:g.left,right:u?g:g.right},!u&&g);d[a]=u?g+K.props.distance:(g[a]||0)+K.props.distance,K.popperInstance.modifiers.filter((function(e){return"preventOverflow"===e.name}))[0].padding=d,k=d}var o=t({eventsEnabled:!1,placement:K.props.placement},a,{modifiers:t({},a?a.modifiers:{},{preventOverflow:t({boundariesElement:K.props.boundary,padding:T},r),arrow:t({element:u,enabled:!!u},J(a,"arrow")),flip:t({enabled:K.props.flip,padding:K.props.distance+T,behavior:K.props.flipBehavior},J(a,"flip")),offset:t({offset:K.props.offset},J(a,"offset"))}),onCreate:function(e){d(e),Le(),a&&a.onCreate&&a.onCreate(e)},onUpdate:function(e){d(e),Le(),a&&a.onUpdate&&a.onUpdate(e)}});K.popperInstance=new g["a"](e,N,o)}function _e(){j=!1;var a=F();K.popperInstance?(ge(K.popperInstance.modifiers,K.props.flip),a||(K.popperInstance.reference=e,K.popperInstance.enableEventListeners()),K.popperInstance.scheduleUpdate()):(Ne(),a||K.popperInstance.enableEventListeners());var n=K.props.appendTo,g="parent"===n?e.parentNode:ne(n,[e]);g.contains(N)||(g.appendChild(N),K.props.onMount(K),K.state.isMounted=!0)}function Ee(e,a){if(Ie(),!K.state.isVisible){if(K.props.target)return be(e);if(w=!0,e&&!a&&K.props.onTrigger(K,e),K.props.wait)return K.props.wait(K,e);F()&&!K.state.isMounted&&(K.popperInstance||Ne(),document.addEventListener("mousemove",ce)),H();var n=Y(K.props.delay,0,p.delay);n?u=setTimeout((function(){Ge()}),n):Ge()}}function Be(){if(Ie(),!K.state.isVisible)return q(),void G();w=!1;var e=Y(K.props.delay,1,p.delay);e?r=setTimeout((function(){K.state.isVisible&&Ve()}),e):o=requestAnimationFrame((function(){Ve()}))}function Oe(e){if(!K.props.interactive||!N.contains(e.target)){if(R().contains(e.target)){if(B)return;if(K.state.isVisible&&X(K.props.trigger,"click"))return}!0===K.props.hideOnClick&&(Ie(),Ve())}}function Ke(){K.state.isEnabled=!0}function qe(){K.state.isEnabled=!1}function Ie(){clearTimeout(u),clearTimeout(r),cancelAnimationFrame(o)}function Re(a){a=a||{},oe(a,p),pe();var n=K.props,g=de(e,t({},K.props,{},a,{ignoreAttributes:!0}));g.ignoreAttributes=U(a,"ignoreAttributes")?a.ignoreAttributes||!1:n.ignoreAttributes,K.props=g,le(),I(),P=Z(Se,g.interactiveDebounce),ke(N,n,g),K.popperChildren=se(N),K.popperInstance&&(s.some((function(e){return U(a,e)&&a[e]!==n[e]}))?(K.popperInstance.destroy(),Ne(),K.state.isVisible&&K.popperInstance.enableEventListeners(),K.props.followCursor&&i&&ce(i)):K.popperInstance.update())}function He(e){Re({content:e})}function Ge(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y(K.props.duration,0,p.duration[1]);if(!K.state.isDestroyed&&K.state.isEnabled&&(!B||K.props.touch)&&!R().hasAttribute("disabled")&&!1!==K.props.onShow(K)){H(),N.style.visibility="visible",K.state.isVisible=!0,K.props.interactive&&R().classList.add(v);var a=V();ue(a.concat(N),0),b=function(){if(K.state.isVisible){var n=F();n&&i?ce(i):n||K.popperInstance.update(),K.popperChildren.backdrop&&(K.popperChildren.content.style.transitionDelay=Math.round(e/12)+"ms"),K.props.sticky&&W(),ue([N],K.props.updateDuration),ue(a,e),re(a,"visible"),ee(e,(function(){K.props.aria&&R().setAttribute("aria-".concat(K.props.aria),N.id),K.props.onShown(K),K.state.isShown=!0}))}},_e()}}function Ve(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Y(K.props.duration,1,p.duration[1]);if(!K.state.isDestroyed&&(K.state.isEnabled||x)&&(!1!==K.props.onHide(K)||x)){G(),N.style.visibility="hidden",K.state.isVisible=!1,K.state.isShown=!1,M=!1,K.props.interactive&&R().classList.remove(v);var a=V();ue(a,e),re(a,"hidden"),$(e,(function(){w||q(),K.props.aria&&R().removeAttribute("aria-".concat(K.props.aria)),K.popperInstance.disableEventListeners(),K.popperInstance.options.placement=K.props.placement,N.parentNode.removeChild(N),K.props.onHidden(K),K.state.isMounted=!1}))}}function Fe(a){if(!K.state.isDestroyed){x=!0,K.state.isMounted&&Ve(0),pe(),delete e._tippy;var n=K.props.target;n&&a&&Q(e)&&y(e.querySelectorAll(n)).forEach((function(e){e._tippy&&e._tippy.destroy()})),K.popperInstance&&K.popperInstance.destroy(),x=!1,K.state.isDestroyed=!0}}}function Pe(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=a.delay,g=void 0===n?e[0].props.delay:n,i=a.duration,u=void 0===i?0:i,r=!1;function d(e){r=e,s()}function o(a){a._originalProps.onShow(a),e.forEach((function(e){e.set({duration:u}),e.state.isVisible&&e.hide()})),d(!0)}function l(e){e._originalProps.onHide(e),d(!1)}function p(e){e._originalProps.onShown(e),e.set({duration:e._originalProps.duration})}function s(){e.forEach((function(e){e.set({onShow:o,onShown:p,onHide:l,delay:r?[0,Array.isArray(g)?g[1]:g]:g,duration:r?u:e._originalProps.duration})}))}e.forEach((function(e){e._originalProps?e.set(e._originalProps):e._originalProps=t({},e.props)})),s()}var Le=!1;function Ne(e,a){oe(a||{},p),Le||(R(),Le=!0);var n=t({},p,{},a);F(e)&&V(e);var g=$(e).reduce((function(e,a){var g=a&&Ce(a,n);return g&&e.push(g),e}),[]);return ee(e)?g[0]:g}function _e(){y(document.querySelectorAll("[data-tippy]")).forEach((function(e){var a=e.getAttribute("data-tippy");a&&Ne(e,{content:a})}))}Ne.version=i,Ne.defaults=p,Ne.setDefaults=function(e){Object.keys(e).forEach((function(a){p[a]=e[a]}))},Ne.hideAll=we,Ne.group=Pe,u&&setTimeout(_e),a["a"]=Ne},a745:function(e,a,n){e.exports=n("f410")},a7ee:function(e,a,n){"use strict";var g=n("3899"),t=n.n(g);t.a},a8d0:function(e,a,n){},a8db:function(e,a,n){"use strict";n.d(a,"a",(function(){return d}));var g=n("e265"),t=n.n(g),i=n("a4bb"),u=n.n(i);function r(e,a){if(null==e)return{};var n,g,t={},i=u()(e);for(g=0;g=0||(t[n]=e[n]);return t}function d(e,a){if(null==e)return{};var n,g,i=r(e,a);if(t.a){var u=t()(e);for(g=0;g=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},aa77:function(e,a,n){var g=n("5ca1"),t=n("be13"),i=n("79e5"),u=n("fdef"),r="["+u+"]",d="​…",o=RegExp("^"+r+r+"*"),l=RegExp(r+r+"*$"),p=function(e,a,n){var t={},r=i((function(){return!!u[e]()||d[e]()!=d})),o=t[e]=r?a(s):u[e];n&&(t[n]=o),g(g.P+g.F*r,"String",t)},s=p.trim=function(e,a){return e=String(t(e)),1&a&&(e=e.replace(o,"")),2&a&&(e=e.replace(l,"")),e};e.exports=p},aae3:function(e,a,n){var g=n("d3f4"),t=n("2d95"),i=n("2b4c")("match");e.exports=function(e){var a;return g(e)&&(void 0!==(a=e[i])?!!a:"RegExp"==t(e))}},aba2:function(e,a,n){var g=n("e53d"),t=n("4178").set,i=g.MutationObserver||g.WebKitMutationObserver,u=g.process,r=g.Promise,d="process"==n("6b4c")(u);e.exports=function(){var e,a,n,o=function(){var g,t;d&&(g=u.domain)&&g.exit();while(e){t=e.fn,e=e.next;try{t()}catch(i){throw e?n():a=void 0,i}}a=void 0,g&&g.enter()};if(d)n=function(){u.nextTick(o)};else if(!i||g.navigator&&g.navigator.standalone)if(r&&r.resolve){var l=r.resolve(void 0);n=function(){l.then(o)}}else n=function(){t.call(g,o)};else{var p=!0,s=document.createTextNode("");new i(o).observe(s,{characterData:!0}),n=function(){s.data=p=!p}}return function(g){var t={fn:g,next:void 0};a&&(a.next=t),e||(e=t,n()),a=t}}},ac6a:function(e,a,n){for(var g=n("cadf"),t=n("0d58"),i=n("2aba"),u=n("7726"),r=n("32e9"),d=n("84f2"),o=n("2b4c"),l=o("iterator"),p=o("toStringTag"),s=d.Array,c={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},b=t(c),y=0;y=1)a.barHeight=0;else{let e=a.el2.clientHeight*a.visibleArea;a.barHeight=Math.max(e,a.config.minDraggerHeight)}}function o(e){var a=g(e),n=document.createElement("div"),t=document.createElement("div");return n.className=a.config.draggerClass,n.style.position="absolute",a.draggerEnabled||(n.style.display="none"),t.className=a.config.draggerStylerClass,n.appendChild(t),a.el1.appendChild(n),n}function l(e,a){a=a||{};var n=g(e);n.dragger.style.height=parseInt(Math.round(n.barHeight))+"px",n.dragger.style.top=parseInt(Math.round(n.barTop))+"px",n.draggerEnabled&&n.visibleArea<1?(N(n.el1,n.config.el1ScrollInvisibleClass),L(n.el1,n.config.el1ScrollVisibleClass)):(N(n.el1,n.config.el1ScrollVisibleClass),L(n.el1,n.config.el1ScrollInvisibleClass)),a.withScrollingClasses&&(L(n.el1,n.config.el1ScrollingClass),n.scrollingClassTimeout&&clearTimeout(n.scrollingClassTimeout),n.scrollingClassTimeout=setTimeout((function(){N(n.el1,n.config.el1ScrollingClass)}),n.config.scrollThrottle+5),L(n.el1,n.config.el1ScrollingPhantomClass),n.scrollingPhantomClassTimeout&&clearTimeout(n.scrollingPhantomClassTimeout),n.scrollingPhantomClassTimeout=setTimeout((function(){N(n.el1,n.config.el1ScrollingPhantomClass)}),n.config.scrollThrottle+n.config.scrollingPhantomDelay))}function p(e){var a=g(e),n="vuebar-pseudo-element-styles",t="."+a.config.el2Class+"::-webkit-scrollbar",i=document.getElementById(n),u=null;i?u=i.sheet:(i=document.createElement("style"),i.id=n,document.head.appendChild(i),u=i.sheet);for(var r=!1,d=0,o=u.rules.length;d=1)return!1;var t=n.el2.scrollHeight-n.el2.clientHeight,i=n.el2.scrollTop,u=a.deltaY<0,r=a.deltaY>0;return i<=0&&u?(a.preventDefault(),!1):i>=t&&r?(a.preventDefault(),!1):void 0}function c(e){var a=g(e);a.el2.scrollTop=a.scrollTop}function b(a,n){var t=g(a);if(!t.freeze){n=n||{};n.immediate&&(h(a),i(a),d(a),r(a),l(a)),e.nextTick(function(){if(!g(a))return!1;h(a),i(a),d(a),r(a),l(a)}.bind(this))}}function y(e){var a=g(e);a.freeze=!0}function S(e){var a=g(e);a.freeze=!1}function h(e){var a=g(e),n=a.browser;a.config.useScrollbarPseudo&&(n.chrome||n.safari)?(a.el2.style.width="100%",p(e)):a.overlayScrollbar?(a.el2.style.width="100%",C(a.el2,"BoxSizing","content-box"),a.el2.style.paddingRight="20px",a.el2.style.width="calc(100% + "+a.nativeScrollbarWidth+"px)"):a.el2.style.width="calc(100% + "+a.nativeScrollbarWidth+"px)"}function A(e){var a=g(e);return z(function(n){i(e),d(e),a.barDragging||(r(e),l(e,{withScrollingClasses:!0}))}.bind(this),a.config.scrollThrottle)}function T(e){return function(a){s(e,a)}.bind(this)}function m(e){var a=g(e);return z(function(a){r(e,a),l(e),u(e),c(e)}.bind(this),a.config.draggerThrottle)}function f(e){var a=g(e);return function(e){a.barDragging=!1,a.el1.style.userSelect="",a.config.unselectableBody&&C(document.body,"UserSelect",""),N(a.el1,a.config.el1DraggingClass),a.draggingPhantomClassTimeout=setTimeout((function(){N(a.el1,a.config.el1DraggingPhantomClass)}),a.config.draggingPhantomDelay),document.removeEventListener("mousemove",a.documentMousemove,0),document.removeEventListener("mouseup",a.documentMouseup,0)}.bind(this)}function D(e){var a=g(e);return function(e){if(1!==e.which)return!1;a.barDragging=!0;const n=a.el1.getBoundingClientRect().top;a.mouseDownY=e.clientY-n,a.mouseDownBarTop=a.barTop,a.el1.style.userSelect="none",a.config.unselectableBody&&C(document.body,"UserSelect","none"),L(a.el1,a.config.el1DraggingClass),a.draggingPhantomClassTimeout&&clearTimeout(a.draggingPhantomClassTimeout),L(a.el1,a.config.el1DraggingPhantomClass),document.addEventListener("mousemove",a.documentMousemove,0),document.addEventListener("mouseup",a.documentMouseup,0)}.bind(this)}function v(e){var a=g(e);return j(function(a){b(e)}.bind(this),a.config.resizeDebounce)}function k(e){if("undefined"===typeof MutationObserver)return null;var a=g(e),n=new MutationObserver(z((function(a){b(e)}),a.config.observerThrottle));return n.observe(a.el2,{childList:!0,characterData:!0,subtree:!0}),n}function w(a,g){if(!t.call(this,a))return!1;if(a._vuebarState)return e.util.warn("(Vuebar) Tried to initialize second time. If you see this please create an issue on https://github.com/DominikSerafin/vuebar with all relevent debug information. Thank you!"),!1;var i=n(a),u=g.value?g.value:g||{};for(var r in u)i.config[r]=u[r];i.browser=_(),i.nativeScrollbarWidth=E(a.firstElementChild),i.overlayScrollbar=0==i.nativeScrollbarWidth,i.draggerEnabled=!i.overlayScrollbar||i.config.overrideFloatingScrollbar?1:0,i.binding=g.value?g:null,i.el1=a,i.el2=a.firstElementChild,i.dragger=o(a),i.barMousedown=D(a),i.documentMousemove=m(a),i.documentMouseup=f(a),i.windowResize=v(a),i.scrollHandler=A(a),i.wheelHandler=T(a),i.mutationObserver=k(a),L(i.el1,i.config.el1Class),i.el1.style.position="relative",i.el1.style.overflow="hidden",L(i.el2,i.config.el2Class),i.el2.style.display="block",i.el2.style.overflowX="hidden",i.el2.style.overflowY="scroll",i.el2.style.height="100%",i.draggerEnabled&&h(a),i.el2.addEventListener("scroll",i.scrollHandler,0),i.dragger.addEventListener("mousedown",i.barMousedown,0),i.config.preventParentScroll&&i.el2.addEventListener("wheel",i.wheelHandler,0),i.config.resizeRefresh&&window.addEventListener("resize",i.windowResize,0),b(a,{immediate:!0})}function x(e,a){a=a||{};var n=g(e);n&&(n.dragger.removeEventListener("mousedown",n.barMousedown,0),n.el2.removeEventListener("scroll",n.scrollHandler,0),n.el2.removeEventListener("wheel",n.wheelHandler,0),window.removeEventListener("resize",n.windowResize,0),n.mutationObserver&&n.mutationObserver.disconnect(),N(n.el1,n.config.el1Class),N(n.el1,n.config.el1ScrollVisibleClass),N(n.el1,n.config.el1ScrollInvisibleClass),N(n.el1,n.config.el1ScrollingClass),N(n.el1,n.config.el1ScrollingPhantomClass),N(n.el1,n.config.el1DraggingClass),a.clearStyles&&(n.el1.style.position="",n.el1.style.overflow=""),N(n.el2,n.config.el2Class),a.clearStyles&&(n.el2.style.display="",n.el2.style.overflowX="",n.el2.style.overflowY="",n.el2.style.msOverflowStyle="",n.el2.style.height="",n.el2.style.width=""),n.dragger.removeChild(n.dragger.firstChild),n.el1.removeChild(n.dragger),n.scrollingPhantomClassTimeout&&clearTimeout(n.scrollingPhantomClassTimeout),n.draggingPhantomClassTimeout&&clearTimeout(n.draggingPhantomClassTimeout),delete e._vuebarState)}function M(){return{getState:g,initScrollbar:w,destroyScrollbar:x,refreshScrollbar:b,freezeScrollbar:y,unfreezeScrollbar:S}}function j(e,a){var n=null;return function(){var g=this,t=arguments;clearTimeout(n),n=setTimeout((function(){e.apply(g,t)}),a)}}function z(e,a,n){var g,t;return a||(a=250),function(){var i=n||this,u=+new Date,r=arguments;g&&u-1&&n.toLowerCase().indexOf("google")>-1,t=a.indexOf("Edge")>-1,i=!!window.safari||a.toLowerCase().indexOf("safari")>-1&&n.toLowerCase().indexOf("apple")>-1,u=8==e(),r=9==e(),d=10==e(),o=11==e(),l=u||r||d||o,p=a||n||window.opera,s=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(p)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(p.substr(0,4));return{edge:t,chrome:g,safari:i,mobile:s,ie:l,ie8:u,ie9:r,ie10:d,ie11:o}}function E(e){e=e||document.body;var a=0,n=0,g=document.createElement("div"),t=document.createElement("div");return g.style.position="absolute",g.style.pointerEvents="none",g.style.bottom="0",g.style.right="0",g.style.width="100px",g.style.overflow="hidden",g.appendChild(t),e.appendChild(g),a=t.offsetWidth,t.style.width="100%",g.style.overflowY="scroll",n=a-t.offsetWidth,e.removeChild(g),n}a=a||{},a.directive=a.directive||"bar",e.vuebar=M(),e.prototype.$vuebar=M(),e.directive(a.directive,{inserted:function(e,a,n){w.call(this,e,a)},componentUpdated:function(e,a,n,g){b.call(this,e)},unbind:function(e,a,n,g){x.call(this,e,{clearStyles:!1})}})}};e.exports=a,"undefined"!==typeof Vue&&Vue.use(a)})()},aebd:function(e,a){e.exports=function(e,a){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:a}}},af34:function(e,a,n){"use strict";var g=n("daea"),t=n.n(g);t.a},b0b4:function(e,a,n){"use strict";n.d(a,"a",(function(){return u}));var g=n("85f2"),t=n.n(g);function i(e,a){for(var n=0;n0?t(g(e),9007199254740991):0}},b474:function(e,a,n){"use strict";function g(e){return Math.round(1e3*e)}function t(e){return Math.round(1e6*e)}var i=function(){return[{language:"Aja",region:"African",speakers:g(550),pangrams:["Agbetɔwo pleŋu vanɔ gbɛmɛ ko vovoɖeka gbeswɛgbeswɛ, sɔto amɛnyinyi ko acɛwo gomɛ; wo xɔnɔ susunywin ko jimɛnywi so esexwe. Wo ɖo a wa nɔvi ɖaɖa wowo nɔnɔwo gbɔ. "]},{language:"Aghem",region:"African",speakers:g(27),specialCharacters:"À à  â Ǎ ǎ Ā ā È è Ê ê Ě ě Ē ē Ɛ ɛ Ì ì Î î Ǐ ǐ Ī ī Ɨ ɨ Ŋ ŋ Ò ò Ô ô Ǒ ǒ Ō ō Ɔ ɔ Ù ù Û û Ǔ ǔ Ū ū Ʉ ʉ ʔ"},{language:"Akan",region:"African",speakers:t(32),specialCharacters:"Á á À à É é È è Ɛ ɛ Ɛ́ ɛ́ Ɛ̀ ɛ̀ Í í Ì ì Ḿ ḿ M̀ m̀ Ń ń Ǹ ǹ Ó ó Ò ò Ɔ ɔ Ɔ́ ɔ́ Ɔ̀ ɔ̀ Ú ú Ù ù",paragraphs:["Dèdé: Èhé nà Kégyétíá wó? Méfá kwáń béǹ só ákó hó? Kyèí: Kò w’àníḿ tèè kòsí sè wóbéhúnú sòtóò bí áà yéátwéré àníḿ sé ‘Ònyàmé túmí’."],gotchas:[{topic:"open E open O grave acute",tags:["mark"],description:"Acute and grave must be positioned properly (centered) over letters open E and open O (Ɛ́ ɛ́ Ɛ̀ ɛ̀ Ɔ́ ɔ́ Ɔ̀ ɔ̀), as these combinations do not have precomposed diacritics.",tests:["Ɛ́ ɛ́ Ɛ̀ ɛ̀ Ɔ́ ɔ́ Ɔ̀ ɔ̀"]}]},{language:"Albanian",region:"European",speakers:t(7.6),specialCharacters:"Ç ç Ë ë",sentences:["Rrugë të mbarë, paç fat!","Ç’kemi, gëzohem që të takova."],paragraphs:["Të gjithë njerëzit lindin të lirë dhe të barabartë në dinjitet dhe në të drejta. Ata kanë arsye dhe ndërgjegje dhe duhet të sillen ndaj njëri tjetrit me frymë vëllazërimi."]},{language:"Asturian",region:"European",speakers:g(351),opentypeTag:"AST ",specialCharacters:"Ḥ ḥ Ḷ ḷ",paragraphs:["Tolos seres humanos nacen llibres y iguales en dignidá y drechos y, pola mor de la razón y la conciencia de so, han comportase hermaniblemente los unos colos otros."]},{language:"Armenian",region:"Caucasian",speakers:t(6.7),opentypeTag:"HYE ",script:"Armn",pangrams:["Բել դղյակի ձախ ժամն օֆ ազգությանը ցպահանջ չճշտած վնաս էր եւ փառք։","Չին ֆիզիկոսը օճառաջուր ցողելով բժշկում է հայ գնդապետի փքված ձախ թևը:"],paragraphs:["Ամբողջագրերի ակնհայտ կիրառություններից զատ՝ տառատեսակների ներկայացում, հաղորդալարերի միջոցով գրվածքի փոխանցման ստուգում, տպիչ մեքենաների փորձարկում և այլն, առաջարկվում էր այն օգտագործեկ ծածկագրության մեջ:","Ճապոներենում «Իրոխա» ամբողջագիրը կիրառվում է որպես այբբենական շարվածքի համարժեքներից մեկը XI դարից սկսած:"],alphabet:"Ա ա Բ բ Գ գ Դ դ Ե ե Զ զ Է է Ը ը Թ թ Ժ ժ Ի ի Լ լ Խ խ Ծ ծ Կ կ Հ հ Ձ ձ Ղ ղ Ճ ճ Մ մ Յ յ Ն ն Շ շ Ո ո Չ չ Պ պ Ջ ջ Ռ ռ Ս ս Վ վ Տ տ Ր ր Ց ց Ւ ւ Փ փ Ք ք Օ օ Ֆ ֆ ՈՒ ու ԵՒ և",punctuation:"֊ ՝ ։ ՜ ՞ ․ ՚ ՛ ՟"},{language:"Azeri",altNames:["Azerbaijani"],region:"European",speakers:t(23),pangrams:["Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq."],alphabet:"A a B b C c Ç ç D d E e Ə ə F f G g Ğ ğ H h X x I ı İ i J j K k Q q L l M m N n O o Ö ö P p R r S s Ş ş T t U u Ü ü V v Y y Z z",alphabetIsSorted:!0},{language:"Basaa",altNames:["Basa"],region:"African",speakers:g(300),specialCharacters:"Á á À à  â Ǎ ǎ Ā ā Ɓ ɓ É é È è Ê ê Ě ě Ē ē Ɛ ɛ Í í Ì ì Î î Ǐ ǐ Ī ī Ń ń Ǹ ǹ Ŋ ŋ Ó ó Ò ò Ô ô Ǒ ǒ Ō ō Ɔ ɔ Ú ú Ù ù Û û Ǔ ǔ Ū ū"},{language:"Bashkir",speakers:t(1.2),script:"Cyrl",region:"Asian",alphabet:"А а Б б В в Г г Ғ ғ Д д Ҙ ҙ Е е Ё ё Ж ж З з И и Й й К к Ҡ ҡ Л л М м Н н Ң ң О о Ө ө П п Р р С с Ҫ ҫ Т т У у Ү ү Ф ф Х х Һ һ Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ә ә Ю ю Я я"},{language:"Belarusian",region:"European",speakers:t(7.6),script:"Cyrl",pangrams:["Літаратурная мова абслугоўвае (паралельна з рускай) розныя сферы дзейнасці беларускага народа, з'яўляецца поліфункцыянальнай."],alphabet:"А а Б б В в Г г Д д Е е Ё ё Ж ж З з І і Й й К к Л л М м Н н О о П п Р р С с Т т У у Ў ў Ф ф Х х Ц ц Ч ч Ш ш Ы ы Ь ь Э э Ю ю Я я ʼ"},{language:"Breton",region:"European",speakers:g(210),pangrams:["Yec’hed mat Jakez ! Skarzhit ar gwerennoù-mañ, kavet e vo gwin betek fin ho puhez."],specialCharacters:" â Ê ê Î î Ñ ñ Ô ô Ù ù Û û Ü ü"},{language:"Bulgarian",region:"European",speakers:t(9),script:"Cyrl",pangrams:["Фучейки и хълцайки, кьоравият грухтящ шопар жадно стъпка зюмбюлите.","Ах чудна българска земьо, полюшвай цъфтящи жита.","Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон.","Под южно дърво, цъфтящо в синьо, бягаше малко пухкаво зайче. "],alphabet:"А а Б б В в Г г Д д Е е Ж ж З з И и Й й К к Л л М м Н н О о П п Р р С с Т т У у Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ъ ъ Ь ь Ю ю Я я"},{language:"Catalan",region:"European",speakers:t(4.1),pangrams:["«Dóna amor que seràs feliç!». Això, il·lús company geniüt, ja és un lluït rètol blavís d’onze kWh. aïllament"],gotchas:[{topic:"punt volat",tags:["metrics","contextual","localization"],description:"Localized variants of periodcentered, visually centered between two letters L and l, respectively.",tests:["il·lús cal·lígraf sibil·la ombrel·la novel·la metàl·lic","IL·LÚS CAL·LÍGRAF SIBIL·LA OMBREL·LA NOVEL·LA METÀL·LIC"]}],optionalCharacters:"Ŀ ŀ",optionalCharactersNote:"legacy"},{language:"Chinese (Pinyin)",htmlTag:"",speakers:0,region:"Asian",specialCharacters:"Ü ü Ā Ē Ī Ō Ū Ǖ ā ē ī ō ū ǖ Á É Í Ó Ú Ǘ á é í ó ú ǘ Ǎ Ě Ǐ Ǒ Ǔ Ǚ ǎ ě ǐ ǒ ǔ ǚ À È Ì Ò Ù Ǜ à è ì ò ù ǜ",alphabetIsSorted:!0,pseudo:!0},{language:"Chuvash",speakers:t(1.043),script:"Cyrl",region:"Asian",alphabet:"А а Ӑ ӑ Б б В в Г г Д д Е е Ё ё Ӗ ӗ Ж ж З з И и Й й К к Л л М м Н н О о П п Р р С с Ҫ ҫ Т т У у Ӳ ӳ Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я"},{language:"Croatian",region:"European",speakers:t(5.6),pangrams:["Gojazni đačić s biciklom drži hmelj i finu vatu u džepu nošnje."]},{language:"Czech",speakers:t(10),region:"European",pangrams:["Loď čeří kýlem tůň obzvlášť v Grónské úžině."],gotchas:[{topic:"vertical caron",tags:["metrics"],description:"The vertical form of the caron diacritic found with d and t should be kerned against lowercase letters and punctuation.",tests:["loďka ďábelska ďatlov ďábel objížďka buďto","břeťa cenťák žesťový řiťka opúšťať hradišťský tchaj-ťi šťuka dvanásťročný","loď. loď, loď: loď; loď- loď? loď!","dešť. dešť, dešť; dešť: dešť- dešť? dešť!","ď” ľ” ť” ď“ ľ“ ť“"]},{topic:"ring above",tags:["congruency"],description:"It might be preferred that the ring above u (the Czech kroužek diacritic) be congruent with the Scandinavian ring above a, for the rare occasions where Scandinavian proper names are inflected in Czech or Slovak.",tests:["Håkanův?"]}]},{language:"Dagbani",region:"African",speakers:t(1.16),alphabet:"’ A a B b CH ch D d E e Ɛ ɛ F f G g GB gb Ɣ ɣ H h I i J j K k KP kp L l M m N n NY ny Ŋ ŋ O o Ɔ ɔ P p R r S s SH sh T t U u W w Y y Z z Ʒ ʒ"},{language:"Danish",speakers:t(5.5),region:"European",pangrams:["Quizdeltagerne spiste jordbær med fløde, mens cirkusklovnen Walther spillede på xylofon."],optionalCharacters:"Ǽ ǽ Ǻ ǻ Ǿ ǿ",optionalCharactersNote:"Dictionary use."},{language:"Dinka",region:"African",speakers:t(1.3),alphabet:"A a Ä ä B b C c D d DH dh E e Ë ë Ɛ ɛ Ɛ̈ ɛ̈ G g Ɣ ɣ I i Ï ï J j K k L l M m N n NH nh NY ny Ŋ ŋ T t TH th U u W w O o Ö ö Ɔ ɔ Ɔ̈ ɔ̈ P p R r Y y",alphabetIsSorted:!0},{language:"Duala",region:"African",speakers:g(87),specialCharacters:"Á á Ɓ ɓ Ɗ ɗ É é Ɛ ɛ Í í Ŋ ŋ Ó ó Ɔ ɔ Ú ú Ū ū"},{language:"Dutch",region:"European",speakers:t(21),pangrams:["Pa’s wijze lynx bezag vroom het fikse aquaduct."],gotchas:[{topic:"IJ",tags:["ligature","optional"],tests:["IJburg Rijksmuseum"]},{topic:"ij-acute",tags:["ligature","localization","contextual"],tests:["Wíjze"]}],specialCharacters:"Á á É é Í í IJ ij ÍJ íj Ó ó Ú ú",specialCharacters:"Á á É é Í í IJ ij ÍJ íj Ó ó Ú ú"},{language:"English",region:"European",speakers:t(360),pangrams:["Amazingly few discotheques provide jukeboxes.","Why shouldn’t a quixotic Kazakh vampire jog barefoot?","Battle of Thermopylae: Quick javelin grazed wry Xerxes.","Quick zephyrs blow, vexing daft Jim.","Two driven jocks help fax my big quiz.","Show mangled quartz flip vibe exactly.","Public junk dwarves hug my quartz fox.","Jumbling vext frowzy hacks PDQ.","Nymphs blitz quick vex dwarf jog.","Schwarzkopf vexed Iraq big-time in July.","Boxers had zap of gay jock love, quit women.","Fix problem quickly with galvanized jets.","Watch “Jeopardy!”, Alex Trebek’s fun TV quiz game."],letterings:["Attaboy Bubble Cache Dwindle Essence Flyleaf Grunge Headache Infinite Jinjer Kinky Lonely Murmur Norwegian Officious Purpose Qashqai Rarity Sognefjord’s Testy Usual Vivian Woodwind Xerxes Yuppy Zanzibar","Autoinstall Beetlebrain Cyberschool Disposedly Empowered Forefix Graylag Highline Ineffective Jujuman Kangaroolike Ludophilia Minimalize Nondesired Overzealous Propellered Quisqualate Rejoinder Soundclash Throstle Ultracasual Valuative Westward Xenotoxic Youngerly Zigzagger","Airway Bebeast Chickdom Deadringer Endeavor Foxfish Gigatonne Hipsterish Invariable Jujitsu Kickboxing Lithophile Mommykins Nonfragrant Otoacoustic Prospect Quasiquote Refactoring Spokesbird Thattaboy Unsubmitted Velvetfish Wristwork Xeroxable Youngberry Zettahertz"],paragraphs:["Unicode just made its new emoji list for 2019 official, and the update adds 230 new symbols, including a yawning face, white heart, and pinching hand symbol.","This nomination will be examined in 2009 by the responsible UNESCO Committee.","Reinstate the 17 trainees to flight status. — I will...but I just want you to understand...that I-","Had to be me. Someone else might have gotten it wrong.","Galactica, the Cylon is now flying formation with me! Right above my head. This thing is acting weird..."],numerals:["Unicode just made its new emoji list for 2019 official, and the update adds 230 new symbols, including a yawning face, white heart, and pinching hand symbol.","Though the list of new emoji has now been finalized, it will still be several months before the update hits your phone. Unicode will release the update in March, but it will take some time after that for apps and operating systems to roll out support for the new characters. Updates will start hitting in April and continue through the end of the year, according to Emojipedia."],smallcaps:['Private Johnson went AWOL after he received an order to join major combat forces in Iraq.','Developing apps requires a knowledge of html and JavaScript, and that\'s it.','This nomination will be examined in 2009 by the responsible UNESCO Committee.'],specialCharacters:"",optionalCharacters:""},{language:"Esperanto",speakers:1e3,pangrams:["Eble ĉiu kvazaŭ-deca fuŝĥoraĵo ĝojigos homtipon."]},{language:"Estonian",region:"European",speakers:t(1.1),pangrams:["Põdur Zagrebi tšellomängija-följetonist Ciqo külmetas kehvas garaažis"]},{language:"Ewe",region:"African",speakers:t(6.5),pangrams:["Ʋu axaléɖiƒe. Wo dona Eʋegbe le Ghana kple Togo kpakple Benin Dahumey dukɔ siwo le Afrika ƒe ɣetoɖoƒe lɔƒo la me. Gbe gbɔgblɔ siwo teɖe Eʋegbe ŋu wonye Fɔŋgbe kpakple Adzágbe. Esiawo katã wonye Gbe siwo doƒome kple Ʋegbe. Ŋɔŋlɔdzesi blaetɔ̃ ye le Eʋegbe me."],alphabet:"A a Á á À à à ã B b D d Ɖ ɖ E e É é È è Ẽ ẽ Ɛ ɛ F f Ƒ ƒ G g Ɣ ɣ H h X x I i Í í Ì ì Ĩ ĩ K k L l M m N n Ŋ ŋ O o Ó ó Ò ò Õ õ Ɔ ɔ P p R r S s T t U u Ú ú Ù ù Ũ ũ V v Ʋ ʋ W w Y y Z z",alphabetIsSorted:!0},{language:"Ewondo",region:"African",speakers:g(580),pangram:"",specialCharacters:"Á á À à  â Ǎ ǎ É é È è Ê ê Ě ě Ə ə Ɛ ɛ Í í Ì ì Î î Ǐ ǐ Ń ń Ǹ ǹ Ŋ ŋ Ó ó Ò ò Ô ô Ǒ ǒ Ɔ ɔ Ú ú Ù ù Û û Ǔ ǔ"},{language:"Finnish",region:"European",speakers:t(5),pangrams:["Fahrenheit ja Celsius yrjösivät Åsan backgammon-peliin, Volkswagenissa, daiquirin ja ZX81:n yhteisvaikutuksesta."]},{language:"Fon",region:"African",speakers:t(2.2),pangrams:["Ee nyi ɖɔ hɛnnu ɖokpo mɛ ɔ, mɛ ɖokpoɖokpo ka do susu tɔn, bɔ acɛ ɖokpo ɔ wɛ mɛbi ɖo bo e ma sixu kan fɛn kpon é ɖi mɛɖesusi jijɛ, hwɛjijɔzinzan, kpodo fifa ni tiin nu wɛkɛ ɔ bi e ɔ."],todo:"todo",_letterings:["Gbeta Gbɛ Ɔ Bi Tɔn Ee Ɖɔ Xó Dó Acɛ E Gbɛtɔ Ɖó Kpodo Sisi E Ɖo Na Ɖó N'I Lɛ Kpo Wu E Wexwle"]},{language:"French",speakers:t(75),region:"European",pangrams:["Voix ambiguë d’un cœur qui au zéphyr préfère les jattes de kiwi."],html:["Mlle Orane"],gotchas:[{topic:"iï ïl",tags:["metrics"],tests:["thaïlandais aïllament acneïforme sjiïete thaïlandais aïllament increïblement caraïbes caraïbische privilegiïn geïdentifiseer haïfa geïllustreerd tchaïkovski"]},{topic:"d'A L'A l'A",tags:["metrics"],tests:["curly quotes: d’A L’A l’A, straight quotes: d'A L'A l'A"]}],specialCharacters:"À à  â Æ æ Ç ç É é È è Ê ê Ë ë Î î Ï ï Ô ô Œ œ Ù ù Û û Ü ü Ÿ ÿ"},{language:"West Frisian",altNames:["Western Frisian"],region:"European",speakers:g(470),pangrams:["Alve bazige froulju wachtsje op dyn komst"],specialCharacters:"Á á Ä ä É é Ë ë Ì ì Ï ï Ò ò Ö ö Ú ú Ü ü Ỳ ỳ"},{language:"Fula",altNames:["Fulah"],region:"African",speakers:t(24),alphabet:"",alphabet:"A a B b Ɓ ɓ C c D d Ɗ ɗ E e F f G g Ɠ ɠ H h I i J j K k L l M m N n Ñ ñ Ɲ ɲ Ŋ ŋ O o P p R r S s T t U u W w Y y Ƴ ƴ '",alphabetIsSorted:!0,optionalCharacters:"Ñ ñ",pangrams:["Musidɓe tedduɓe, Fulɓe e leƴƴi kala gonɗi e Fuuta, haa Dakaar, e gure Senegaal kala, mi salminii on calminaali tedduɗi."]},{language:"Gagauz",htmlCode:"gag",speakers:g(140),region:"European",alphabet:"A a Ä ä B b C c Ç ç D d E e Ê ê F f G g H h I ı İ i J j K k L l M m N n O o Ö ö P p R r S s Ş ş T t Ţ ţ U u Ü ü V v Y y Z z",alphabetIsSorted:!0},{language:"German",speakers:t(95),region:"European",pangrams:["Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich."],alphabet:"A a Ä ä B b C c D d E e F f G g H h I i J j K k L l M m N n O o Ö ö P p Q q R r S s ẞ ß T t U u Ü ü V v W w X x Y y Z z",specialCharacters:"Ä Ö Ü ä ö ü ß ẞ"},{language:"Greek",altNames:["Modern Greek"],script:"Grek",region:"European",speakers:t(12),pangrams:["Ξεσκεπάζω τὴν ψυχοφθόρα βδελυγμία.","Ζαφείρι δέξου πάγκαλο, βαθῶν ψυχῆς τὸ σῆμα.","Ταχίστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός.","Διαφυλάξτε γενικά τη ζωή σας από βαθειά ψυχικά τραύματα."],paragraphs:[],letterings:["Αμαζόνιος Βραβεία Γουάνγκ Διόδωρος Εργαλεία Ζεμτσούζινα Ηγησιππος Θεοξενιος Ιστορία Καζακστάν Λαμπροκλης Μάρμαρο Νίζνι Ξέρξης Οινομαχος Περσέπολη Ροτόρ Σθενελαος Ταυτιστεί Υπάρχουν Φρολόφ Χοχλόφ Ψαρρής Ωφελιων","Αιγιαλός Βενετσιάνος Γραμματοκιβώτιο Διάγνωση Ενστερνίζομαι Ζωγραφίζω Ηλεκτροχημικός Θυμωμένος Ικανοποιημένος Κατάληψη Λογχίζομαι Ματοκυλιέμαι Ντούμπνιο Ξυπόλητος Οξύτονος Προλεταριάτο Ρουαντέζος Σταυρόλεξο Τρινιδάδ Υποχρεωτικός Φιλανδικά Χιονάνθρωπος Ψυχίατρος Ωφελούμαι","Αετιδέας Βαμβάκι Γραίγος Δαμαλίδα Ευσεβής Ζεματίζω Ηγέτης Ιδιώτης Καθέλκω Λουλακής Μάθημα Νάνος Ομορφιά Παπάρα Ρεκόρ Σύγκλιση Τσιτσί Υπάκουος Φουφού Χάχανο Ψιψίνα Ωρίμως","Αγκίδα Βέλγα Γύπας Δημιούργημα Εξηγούμαι Ζεσταμένος Ηλιοθεραπεία Θεσμός Ιστιοδρομία Κρασί Λογχίζομαι Μισώ Νωρίς Ξαίνω Οπλίζομαι Παπαρδέλα Ρύζι Συμφωνία Τσέλιγκας Υποχρέωση Φύομαι Χριστόψωμο Ψυχίατρος Ωταλγία"],numbers:["Έχει θερμοκρασία τήξης 304°C και θερμοκρασία βρασμού 1473°C.","Το φυσικό οξυγόνο αποτελείται από τρία (3) σταθερά ισότοπα: το 16O (σε ποσοστό 99,762 %), το 17O και το 18O."],alphabet:"; · Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω Ά Έ Ή Ί Ϊ Ό Ύ Ϋ Ώ ά έ ή ί ϊ ΐ ό ύ ϋ ΰ ώ",specialCharacters:"Ά Έ Ή Ί Ϊ Ό Ύ Ϋ Ώ ά έ ή ί ϊ ΐ ό ύ ϋ ΰ ώ ; ·",punctuation:";·"},{language:"Guarani",script:"Latn",speakers:t(4.6),region:"American",paragraphs:["Mayma yvypóra ou ko yvy ári iñapyty'yre ha eteĩcha tecoruvicharendá ha acatúape jeguerekópe; ha ikatu rupi oikuaa ñetéva ha añete'yva, iporãva ha ivaíva, tekotevẽ pehenguéicha oiko oñondivekuéra."],alphabet:"A a à ã Ch ch E e Ẽ ẽ G g G̃ g̃ H h I i Ĩ ĩ J j K k L l M m Mb mb N n Nd nd Ng ng Nt nt Ñ ñ O o Õ õ P p R r Rr rr S s T t U u Ũ ũ V v Y y Ỹ ỹ '",alphabetIsSorted:!0,gotchas:[{topic:"G tilde",tags:["mark"],description:"Combining mark positioning must be implemented as there is no corresponding codepoint for this letter.",tests:["G̃ g̃"]}]},{language:"Hausa",region:"African",speakers:t(34),paragraphs:["Nonuwana sun cika sun yi nauyi Suna begen hannayenka Kai kadai ka iya rikesu Tamkar kana rike da kwai Kai ka iya murza su kamar amaro Ka iya shan su kamar lemu Yaya zanyi da raina?","Ai ba sauran budurci a tare da nonuwa na Tun ranar da ka ba su ʼyanci Basu san kowa ba sai kai."],alphabet:"A a B b Ɓ ɓ C c D d Ɗ ɗ E e F f G g H h I i J j K k Ƙ ƙ L l M m N n O o R r R̃ r̃ S s SH sh T t TS ts U u W w Y y Ƴ ƴ Z z ʼ"},{language:"Hungarian",speakers:t(13),region:"European",pangrams:["Jó foxim és don Quijote húszwattos lámpánál ülve egy pár bűvös cipőt készít."]},{language:"Icelandic",region:"European",speakers:g(300),pangrams:["Sævör grét áðan því úlpan var ónýt.","Svo hölt, yxna kýr þegði jú um dóp í fé á bæ."],gotchas:[{topic:"fþ",tags:["metrics","ligature"],tests:["hafþór"]}]},{language:"Igbo",region:"African",speakers:t(25),pangrams:["Nne, nna, wepụ he’l’ụjọ dum n’ime ọzụzụ ụmụ, vufesi obi nye Chukwu, ṅụrịanụ, gbakọọnụ kpaa, kwee ya ka o guzoshie ike; ọ ghaghị ito, nwapụta ezi agwa."]},{language:"Indonesian",speakers:t(43),region:"Asian",pangrams:["Muharjo seorang xenofobia universal yang takut pada warga jazirah, contohnya Qatar."],specialCharacters:""},{language:"Irish",speakers:g(150),region:"European",pangrams:["Ċuaiġ bé ṁórṡáċ le dlúṫspád fíorḟinn trí hata mo ḋea-ṗorcáin ḃig"]},{language:"Italian",region:"European",speakers:t(59),pangrams:["Pranzo d’acqua fa volti sghembi."],gotchas:[{topic:"d'A L'A l'A",tags:["metrics"],tests:["curly quotes: d’A L’A l’A, straight quotes: d'A L'A l'A"]}],specialCharacters:"À à É é È è Ì ì Ó ó Ò ò Ù ù"},{language:"Jula",altNames:["Dyula","Dioula"],region:"African",speakers:t(2.2),alphabet:"A a B b C c D d E e Ɛ ɛ F f G g H h I i J j K k L l M m N n Ɲ ɲ Ŋ ŋ O o Ɔ ɔ P p R r S s T t U u V v W w Y y Z z"},{language:"Kabyle",region:"African",speakers:t(5.5),opentypeTag:"KAB0",pangrams:['Yiwen wass, Ğeḥḥa yefka-yas baba-s frank, akken ad d-yaɣ aqerruy n tixsi. Yuɣ-it-id, yečča akk aksum-is. Yeqqim-d uceqlal d ilem, yewwi-yas-t-id i baba-s. Ihi, mi t-iwala yenna-yas: "acu-t wa?" yenna-yas: "d aqerruy n tixsi". – A ccmata, anida llan imeẓẓuɣen-is?']},{language:"Kako",region:"African",speakers:g(120),specialCharacters:"Á á À à  â Ɓ ɓ Ɗ ɗ É é È è Ê ê Ɛ ɛ Í í Ì ì Î î NJ Nj nj Ŋ ŋ Ó ó Ò ò Ô ô Ɔ ɔ Ú ú Ù ù Û û"},{language:"Kazakh",speakers:t(11.7),script:"Cyrl",region:"Asian",alphabet:"А а Ә ә Б б В в Г г Ғ ғ Д д Е е Ё ё Ж ж З з И и Й й К к Қ қ Л л М м Н н Ң ң О о Ө ө П п Р р С с Т т У у Ұ ұ Ү ү Ф ф Х х Һ һ Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы І і Ь ь Э э Ю ю Я я"},{language:"Khoekhoe",region:"African",speakers:g(200),script:"Latn",paragraphs:["ǃGâi tsēs. ǃGâi ǁgoas. Nē ǀkharib ǃnâ da ge ǁgûn tsî ǀgaen tsî doan tsîn; tsî ǀnopodi tsî ǀkhenadi tsî ǀhuigu tsî ǀamin tsîn; tsî ǀkharagagu ǀaon tsîna ra hō."],alphabet:"A a à ã AA aa Ãà ãã AE ae AI ai ÃĨ ãĩ AO ao AU au ÃŨ ãũ B b D d E e Ẽ ẽ EE ee F f G g GY gy H h I i Ĩ ĩ II ii ĨĨ ĩĩ J j K k KH kh L l M m N n O o Õ õ OA oa Õà õã OE oe OO oo P p R r S s T t TS ts U u Ũ ũ UI ui ŨĨ ũĩ UU uu ŨŨ ũũ V v W w X x ǀ ǀG ǀg ǀH ǀh ǀKH ǀkh ǀN ǀn ǁ ǁG ǁg ǁH ǁh ǁKH ǁkh ǁN ǁn ǂ ǂG ǂg ǂH ǂh ǂKH ǂkh ǂN ǂn ǃ ǃG ǃg ǃH ǃh ǃKH ǃkh ǃN ǃn"},{language:"Koyraboro Senni",altNames:["Koyraboro Senni Songhai"],region:"African",speakers:g(430),specialCharacters:"à ã Ẽ ẽ Ɲ ɲ Ŋ ŋ Õ õ Š š Ž ž"},{language:"Koyra Chiini",altNames:["Koyra Chiini Songhay"],region:"African",speakers:g(240),specialCharacters:"à ã Ẽ ẽ Ɲ ɲ Ŋ ŋ Õ õ Š š Ž ž"},{language:"Kyrgyz",speakers:t(4.3),script:"Cyrl",region:"Asian",alphabet:"А а Б б Г г Д д Е е Ё ё Ж ж З з И и Й й К к Л л М м Н н Ң ң О о Ө ө П п Р р С с Т т У у Ү ү Х х Ч ч Ш ш Ы ы Э э Ю ю Я я"},{language:"Lakota",speakers:2100,region:"American",alphabet:"A a Aŋ aŋ B b Č č Čh čh Č’ č’ E e G g Ǧ ǧ H h Ȟ ȟ I i Iŋ iŋ K k Kh kh Kȟ kȟ K’ k’ L l M m N n O o P p Ph ph Pȟ pȟ P’ p’ S s Š š T t Th th Tȟ tȟ T’ t’ U u Uŋ uŋ W w Y y Z z Ž ž ’",alphabetIsSorted:!0},{language:"Latin",speakers:0,region:"European",pangrams:["Sic fugiens, dux, zelotypos, quam Karus haberis."],specialCharacters:""},{language:"Latvian",region:"European",speakers:t(1.5),pangrams:["Muļķa hipiji mēģina brīvi nogaršot celofāna žņaudzējčūsku.","Glāžšķūņa rūķīši dzērumā čiepj Baha koncertflīģeļu vākus."],gotchas:[{topic:"ī",tags:["metrics"],tests:["spēcīgi līdz Cīrulis peisaistīja Irbītis Skatīt vadība ierādīta piedalījās dīšas čīča",'\n"ī" /ī/ \\ī\\ (ī) [ī] {ī}']}]},{language:"Lingala",region:"African",speakers:t(15),paragraphs:["Tatá wa bísó, ozala o likoló, bato bakúmisa Nkómbó ya Yɔ́, bandima bokonzi bwa Yɔ́, mpo elingo Yɔ́, basálá yangó o nsé, lokóla bakosalaka o likoló Pésa bísó lɛlɔ́ biléi bya mokɔlɔ na mokɔlɔ, límbisa mabé ma bísó, lokóla bísó tokolimbisaka baníngá. Sálisa bísó tondima masɛ́nginyá tê, mpe bíkisa bísó o mabé. Na yɔ́ bokonzi, nguyá na nkembo, o bileko o binso sékô. Amen."],gotchas:[{topic:"open E open O acute",tags:["mark"],description:"Acute must be positioned properly (centered) over letters open E and open O (Ɛ́ ɛ́ Ɔ́ ɔ́), as these combinations do not have precomposed diacritics.",tests:["Ɛ́ ɛ́ Ɔ́ ɔ́"]}]},{language:"Lithuanian",speakers:t(3.1),region:"European",pangrams:["Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą"]},{language:"Livonian",htmlTag:"liv",speakers:0,region:"European",sentences:["Jõvā ūomõg! Vȯndzist Ūdāigastõ!"],alphabet:"A a Ā ā Ä ä Ǟ ǟ B b D d Ḑ ḑ E e Ē ē F f G g H h I i Ī ī J j K k L l Ļ ļ M m N n Ņ ņ O o Ō ō Ȯ ȯ Ȱ ȱ Õ õ Ȭ ȭ P p R r Ŗ ŗ S s Š š T t Ț ț U u Ū ū V v Z z Ž ž",alphabetIsSorted:!0,optionalCharacters:"Ö ö Ȫ ȫ Y y Ȳ ȳ",optionalCharactersNote:"Used for phonemes that were unrounded in later generations; these were used as late as 1997."},{language:"Maasai",altNames:["Masai"],region:"African",speakers:t(1.3),alphabet:"A a B b CH ch D d E e Ɛ ɛ G g H h I i Ɨ ɨ J j K k L l M m N n NY ny Ŋ ŋ O o Ɔ ɔ P p R r RR rr S s SH sh T t U u Ʉ ʉ W w WU wu Y y YI yi ' ʔ",alphabetIsSorted:!0},{language:"Macedonian",region:"European",speakers:t(2),script:"Cyrl",pangrams:["Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех."],alphabet:"А а Б б В в Г г Д д Ѓ ѓ Е е Ж ж З з Ѕ ѕ И и Ј ј К к Л л Љ љ М м Н н Њ њ О о П п Р р С с Т т Ќ ќ У у Ф ф Х х Ц ц Ч ч Џ џ Ш ш",specialCharacters:"Ѓ ѓ Ѕ ѕ Ј ј Ќ ќ Љ љ Њ њ"},{language:"Maltese",region:"European",speakers:g(520),script:"Latn",pangrams:["L-Unjoni hija mibnija fuq il-valuri ta' rispett għad-dinjità tal-bniedem, ta' libertà, ta' demokrazija, ta' ugwaljanza, ta' l-istat tad-dritt u tar-rispett għad-drittijiet tal-bniedem, inklużi d-drittijiet ta' persuni li jagħmlu parti minn minoranzi. Dawn il-valuri huma komuni għall-Istati Membri f'soċjetà karatterizzata mill-pluraliżmu, in-non-diskriminazzjoni, it-tolleranza, il-ġustizzja, is-solidarjetà u l-ugwaljanza bejn in-nisa u l-irġiel."]},{language:"Mapudungun",region:"American",speakers:g(300),pangrams:["Gvxam mincetu apocikvyeh: ñizol ce mamvj ka raq kuse bafkeh mew","Ngütram minchetu apochiküyeṉ: ñidol che mamüll ka rag kushe ḻafkeṉ mew.","Gütxam minchetu apochiküyenh: ñizol che mamüll ka raq kushe lhafkenh mew."]},{language:"Marshallese",region:"Austronesian",speakers:55e3,script:"Latn",opentypeTag:"MAH ",htmlTag:"mh",pangrams:["E-ar den̄ōt er. N̄a i-j yokwe ajiri ro nej-ū. em̧m̧an io̧kwe ļalem M̧aaj M̧aļo-eļap "],alphabet:"A a Ā ā B b D d E e I i J j K k L l Ļ ļ M m M̧ m̧ N n Ņ ņ N̄ n̄ O o O̧ o̧ Ō ō P p R r T t U u Ū ū W w",gotchas:[{topic:"cedilla",tags:["localization"],description:"Marshallese support requires combining cedilla with letters M and O, as no precomposed codepoints exist for these letters. Furthermore, L and N cedilla accents are preferred to be rendered with actual cedillas, and not comma accents as required for Latvian usage. The cedilla should be centered below all letters, including M and N",tests:["katļo̧k Ļaņtōn M̧ajeļ"]}]},{language:"Mongolian",speakers:t(5.2),region:"Asian",script:"Cyrl",pangrams:["Щётканы фермд пийшин цувъя. Бөгж зогсч хэльюү."],specialCharacters:"Ө ө Ү ү",alphabet:"А а Б б В в Г г Д д Е е Ё ё Ж ж З з И и Й й К к Л л М м Н н О о Ө ө П п Р р С с Т т У у Ү ү Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я"},{language:"Mundang",region:"African",speakers:g(240),script:"Latn",alphabet:"A a à ã B b Ɓ ɓ C c D d Ɗ ɗ E e Ẽ ẽ Ə ə Ə̃ ə̃ F f G g H h I i Ĩ ĩ J j K k L l M m N n Ŋ ŋ O o Õ õ P p R r S s T t U u V v Ṽ ṽ W w Y y Z z"},{language:"Navajo",htmlTag:"nv",opentypeTag:"NAV",region:"American",speakers:g(169),script:"Latn",alphabet:"’ A a Á á Ą ą Ą́ ą́ AA aa ÁÁ áá ĄĄ ąą Ą́Ą́ ą́ą́ B b CH ch CH’ ch’ D d DL dl DZ dz E e É é Ę ę Ę́ ę́ EE ee ÉÉ éé ĘĘ ęę Ę́Ę́ ę́ę́ G g GH gh H h HW hw I i Í í Į į Į́ į́ II ii ÍÍ íí ĮĮ įį Į́Į́ į́į́ J j K k K’ k’ KW kw L l Ł ł M m N n O o Ó ó Ǫ ǫ Ǫ́ ǫ́ OO oo ÓÓ óó ǪǪ ǫǫ Ǫ́Ǫ́ ǫ́ǫ́ S s SH sh T t T’ t’ TŁ tł TŁ’ tł’ TS ts TS’ ts’ W w X x Y y Z z ZH zh",paragraphs:['Ashiiké tʼóó diigis léiʼ tółikaní łaʼ ádiilnííł dóó nihaa nahidoonih níigo yee hodeezʼą́ jiní. Áko tʼáá ałʼąą chʼil naʼatłʼoʼii kʼiidiilá dóó hááhgóóshį́į́ yinaalnishgo tʼáá áłah chʼil naʼatłʼoʼii néineestʼą́ jiní. Áádóó tółikaní áyiilaago tʼáá bíhígíí tʼáá ałʼąą tłʼízíkágí yiiʼ haidééłbįįd jiní. "Háadida díí tółikaní yígíí doo łaʼ ahaʼdiidził da," níigo ahaʼdeetʼą́ jiníʼ. Áádóó baa nahidoonih biniiyé kintahgóó dah yidiiłjid jiníʼ...'],sentences:["Áádóó tółikaní áyiilaago tʼáá bíhígíí tʼáá ałʼąą tłʼízíkágí yiiʼ haidééłbįįd jiní."],gotchas:[{topic:"centered ogonek",tags:["localization","mark"],description:"The letters A E I O can take an acute, an ogonek, or both. This requires proper combining mark positioning feature or corresponding precomposed glyphs substituted by OpenType, or both. The ogonek, unlike for Polish and Lithuanian usage, must be centered below the base letters, including A and a.",tests:["Ą ą Ą́ ą́ Ę ę Ę́ ę́ Į į Į́ į́ Ǫ ǫ Ǫ́ ǫ́"]}]},{language:"Ngiemboon",region:"African",speakers:g(250),script:"Latn",specialCharacters:"Á á À à  â Ǎ ǎ É é È è Ê ê Ě ě Ɛ ɛ Í í Ì ì Ḿ ḿ Ń ń Ŋ ŋ Ó ó Ò ò Ô ô Ǒ ǒ Ɔ ɔ Ú ú Ù ù Û û Ǔ ǔ Ʉ ʉ Ẅ ẅ Ÿ ÿ ʼ"},{language:"Ngomba",region:"African",speakers:63e3,script:"Latn",specialCharacters:"Á á  â Ǎ ǎ Ɛ ɛ Í í Î î Ǐ ǐ Ḿ ḿ Ń ń Ǹ ǹ Ŋ ŋ Ɔ ɔ Ú ú Û û Ǔ ǔ Ʉ ʉ Ẅ ẅ Ꞌ ꞌ"},{language:"Norwegian",speakers:t(4.5),region:"European",pangrams:["Jeg begynte å fortære en sandwich mens jeg kjørte taxi på vei til quiz"],optionalCharacters:"Ǽ ǽ Ǻ ǻ Ǿ ǿ",optionalCharactersNote:"Dictionary use."},{language:"Polish",region:"European",speakers:t(40),pangrams:["Koń i żółw grali w kości z piękną ćmą u źródła."],letterings:["Aerofłot Bóbr Część Ćmić Dyndasz Ernest Farfocel Gringo Hochsztapler Irbis Jajko Krokus Lalka Łękotka Mąkami Nanizać Obrok Ósemka Poprzestań Quiz Rzeżączka Schniesz Świąt Tarty Uzurpator Victoria Warszawa Xero Yeti Złorzeczyć Źrebak Żółtko","Aniołek Ą-ę Błękit Często Ćwikiel Dożywocie Estończyk Écru Ę-ą Frunięcie Gąszcz Huśtawka Imię Jeż Kryształ Liść Łeb Męstwo Nieporządek Obłędny Ósmy Ponawiać Różnobarwny Spieprzać Światło Trójskok Ustępstwo Vanuatu Wielkość Xbox Yeti Zauważalnie Źródło Żywioł"],gotchas:[{topic:"łł",tags:["metrics"],description:"The łł combination an sometimes produces a busy area. A spacing, kerning or ligature solution is possible should the problem arise.",tests:["Kołłątaj Piłka Ełk Półkole Półton PÓŁTON Radziwiłłów"]}],specialCharacters:"Ą ą Ć ć Ę ę Ł ł Ń ń Ó ó Ś ś Ź ź Ż ż"},{language:"Portuguese",region:"European",speakers:t(215),pangrams:["Luís argüia à Júlia que «brações, fé, chá, óxido, pôr, zângão» eram palavras do português."]},{language:"Riffian",htmlTag:"rif",region:"African",speakers:t(6),specialCharacters:"Č č Ḍ ḍ Ɛ ɛ Ǧ ǧ Ɣ ɣ Ḥ ḥ Ř ř Ṛ ṛ Ṣ ṣ Ṭ ṭ Ẓ ẓ"},{language:"Romanian",region:"European",speakers:t(24),pangrams:["Bând whisky, jazologul șprițuit vomă fix în tequila."],gotchas:[{topic:"șț",tags:["localization","optional"],description:"Consider substituting s-cedilla and t-cedilla with s-comma-below and t-comma-below for Romanian.",tests:["șprițuit (comma) = şpriţuit (cedilla)?"]}]},{language:"Russian",region:"European",speakers:t(155),script:"Cyrl",pangrams:["— Любя, съешь щипцы, — вздохнёт мэр, — Кайф жгуч!"],paragraphs:["Я только в главную мысль мою верю. Она именно состоит в том, что люди, по закону природы, разделяются вообще на два разряда: на низший (обыкновенных), то есть, так сказать, на материал, служащий единственно для зарождения себе подобных, и собственно на людей, то есть имеющих дар или талант сказать в среде своей новое слово... Первый разряд всегда — господин настоящего, второй разряд — господин будущего. Первые сохраняют мир и приумножают его численно; вторые двигают мир и ведут его к цели. И те, и другие имеют совершенно одинаковое право существовать. Одним словом, у меня все равносильное право имеют, и — vive la guerre eternelle, — до Нового Иерусалима, разумеется!"],letterings:["Аудиограф Бомбист Втузовец Гуглить Драгдилер Евгения Ё-моё Жоржет Звёздно Иберийский Йельский Классика Льяло Мнемоник Нутационный Ожогин Пилоправ Рэппер Сфинкс Тлить Узуфрукт Фуфачёв Холедох Цугцванг Чёлочка Шропшир Щадящий Ынахсыт Эмвэдэшник Ююба Ягьяев"],alphabet:"А а Б б В в Г г Д д Е е Ё ё Ж ж З з И и Й й К к Л л М м Н н О о П п Р р С с Т т У у Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я"},{language:"Northern Sami",altNames:["North Sami","Sami"],speakers:g(25),region:"European",sentences:["Buot olbmot leat riegádan friddjan ja olmmošárvvu ja olmmošvuoigatvuođaid dáfus.","Sii leat jierbmalaš olbmot geain lea oamedovdu ja sii gálggaše leat dego vieljačagat.","Ruoŧa sámiid riikkasearvi, RSR, hilgu ráđđehusa evttohusa ođđa ráđđádallanortnegii sámiiguin.","John Ness almmustahttá farga romána mas lea sáhka sápmelaččain, dážain, ruoŧŧilaččain ja skealmmain."],alphabet:"A a Á á B b C c Č č D d Đ đ E e F f G g H h I i J j K k L l M m N n Ŋ ŋ O o P p R r S s Š š T t Ŧ ŧ U u V v Z z Ž ž"},{language:"Scottish Gaelic",speakers:g(57),region:"European",pangrams:["Mus d’fhàg Cèit-Ùna ròp Ì le ob."]},{language:"Serbian",script:"Cyrl",region:"European",speakers:t(19),region:"European",letterings:["Акцептор Брецати Вео Граничан Дунст Ђилкош Ејакулација Жаба Захвала Измјенично Јединица Карати Лихвар Љуљачка Мјесечина Небулозан Њујорк Опходити Притварати Ружан Стењ Тврд Ћилимарство Успављивати Финџан Хипероним Цертифициран Човечанство Џудо Шраф"],pangrams:["Љубазни фењерџија чађавог лица хоће да ми покаже штос.","Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу."],alphabet:"А а Б б В в Г г Д д Ђ ђ Е е Ж ж З з И и Ј ј К к Л л Љ љ М м Н н Њ њ О о П п Р р С с Т т Ћ ћ У у Ф ф Х х Ц ц Ч ч Џ џ Ш ш",specialCharacters:"Ђ ђ Ј ј Љ љ Њ њ Ћ ћ Џ џ"},{language:"Serbian",script:"Latn",region:"European",speakers:t(19),pangrams:["Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos."],alphabet:"A a B b C c Ć ć Č č D d Đ đ DŽ dž E e F f G g H h I i J j K k L l LJ lj M m N n NJ nj O o P p R r S s Š š T t U u V v Z z Ž ž"},{language:"Shawiya",htmlTag:"shy",region:"African",speakers:t(2.13),specialCharacters:"Č č Ḍ ḍ Ɛ ɛ Ǧ ǧ Ɣ ɣ Ḥ ḥ Ř ř Ṛ ṛ Ṣ ṣ Ṭ ṭ Ẓ ẓ"},{language:"Shilha",altNames:["Tachelhit"],region:"African",speakers:t(7),script:"Latn",pangrams:['Lqqiṣt n yan urgaz lli yzznzan tammnt ɣ ssuqq. Yan urgaz iɛmmr mnnaw yilmawn n tammnt ɣ ssuqq. Yašk nn dars yan urgaz, ira ad dars isɣ tammnt. Inna y as: "Mnšk at tzznzt tammnt ann?" Inna y as: "Mḍi tt, iɣ ak tɛžb ar gis tsawalt." Yasy urgaz ann yan yilm, ifsi t, imḍi tammnt, ifk t i bab nns, inna as: "Amẓ, ar kiɣ gussɣ wayyaḍ." Yamẓ t s ufus nns, yasi daɣ umsaɣ lli wayyaḍ, ifsi t, imḍi tammnt, ifk t daɣ i bab nns. Yamẓ t s ufus nns yaḍnin, yasy umsaɣ yan yilm n tammnt, irur. Iggammi bu tammnt mad a yskar i yilmawn lli yumẓ.']},{language:"Skolt Sami",altNames:["Eastern Sami"],speakers:320,region:"European",alphabet:"A a  â Å å Ä ä B b C c Č č D d Đ đ E e F f G g Ǧ ǧ Ǥ ǥ H h I i J j K k Ǩ ǩ L l M m N n Ŋ ŋ O o Õ õ P p R r S s Š š T t U u V v Z z Ž ž Ʒ ʒ Ǯ ǯ"},{language:"Slovak",region:"European",speakers:t(5.5),pangrams:["Kŕdeľ šťastných ďatľov učí pri ústí Váhu mĺkveho koňa obhrýzať kôru a žrať čerstvé mäso."],gotchas:[{topic:"vertical caron",tags:["metrics"],description:"The vertical form of the caron diacritic found with d, L, l and t should be kerned against lowercase letters and punctuation.",tests:["loďka ďábelska ďatlov ďábel objížďka buďto","Ľadovec Ľudovít ĽM ","veľký ľuľkovité Iľja Akýkoľvek Teľa Diaľnica","břeťa cenťák žesťový řiťka opúšťať hradišťský tchaj-ťi šťuka dvanásťročný","loď. loď, loď: loď; loď- loď? loď!","čmeľ. čmeľ, čmeľ; čmeľ: čmeľ- čmeľ? čmeľ!","dešť. dešť, dešť; dešť: dešť- dešť? dešť!","ď” ľ” ť” ď“ ľ“ ť“"]},{topic:"caron and inverted caron",tags:["congruency"],tests:["môže?"]}]},{language:"Slovenian",speakers:t(2.5),region:"European",pangrams:["Hišničin bratec vzgaja polže pod fikusom."]},{language:"Spanish",region:"European",speakers:t(405),letterings:["Alacrán Babélico Calcaño Dónde Erección Érebo Fitófago Galápago Hechicería Ilegítimo Índice Jujeño Kafkiano Lilongüe Máximo Neptuno Ñisñil Octógono Óxido Púrpura Recurrir Senescalía Taoísta Urubú Último Vivencia Wawarón Xeneixe Yinyang Zaquizamí"],pangrams:["Whisky bueno: ¡excitad mi frágil pequeña vejez!","El pingüino Wenceslao hizo kilómetros bajo exhaustiva lluvia y frío; añoraba a su querido cachorro.","La niña, viéndose atrapada en el áspero baúl índigo y sintiendo asfixia, lloró de vergüenza; mientras que la frustrada madre llamaba a su hija diciendo: “¿Dónde estás Waleska?”.","El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja."],gotchas:[{topic:"question inverted",tags:["metrics"],tests:["“¿Vale?” «¿Vale?»"]}]},{language:"Swedish",region:"European",speakers:t(8.7),pangrams:["Byxfjärmat föl gick på duvshowen."]},{language:"Tagalog",region:"Austronesian",speakers:t(28),opentypeTag:"TGL ",pangrams:["Ang bawat rehistradong kalahok sa patimpalak ay umaasang magantimpalaan ng ñino."]},{language:"Tatar",speakers:t(5.2),script:"Cyrl",region:"Asian",alphabet:"А а Ә ә Б б В в Г г Д д Е е Ё ё Ж ж Җ җ З з И и Й й К к Л л М м Н н Ң ң О о Ө ө П п Р р С с Т т У у Ү ү Ф ф Х х Һ һ Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ю ю Я я"},{language:"Tlapanec",altNames:["Meꞌphaa"],speakers:g(127),region:"American",specialCharacters:"Ñ ñ Ꞌ ꞌ",alphabet:"A a B b C c CH ch D d DX dx E e F f G g H h I i J j K k KH kh L l M m N n Ñ ñ O o P p PH ph Q q R r S s T t TH th U u V v W w X x Y y Z z Ꞌ ꞌ"},{language:"Turkish",region:"European",speakers:t(63),pangrams:["Pijamalı hasta yağız şoföre çabucak güvendi. Öküz ajan hapse düştü yavrum, ocağı felç gibi."],gotchas:[{topic:"Dotted/dotless i",tags:["localization"],description:"Small caps and all-caps fonts need special consideration for Turkic languages, which map lowercase i to uppercase Idotaccent, and uppercase I to lowercase dotlessi. OpenType codes: assign this feature to languages TRK, AZE, CRT, TAT, KAZ of script latn.",tests:["“kevgir” & “direk” always have dots","“Işım” has no dots","“haritacı” & “siyahımsı” have dots over the first i only"]}],alphabet:"A a B b C c Ç ç D d E e F f G g Ğ ğ H h I ı İ i J j K k L l M m N n O o Ö ö P p R r S s Ş ş T t U u Ü ü V v Y y Z z",alphabetIsSorted:!0},{language:"Turkmen",speakers:t(6.7),script:"Cyrl",region:"Asian",alphabet:"А а Б б В в Г г Д д Е е Ё ё Ж ж Җ җ З з И и Й й К к Л л М м Н н Ң ң О о Ө ө П п Р р С с Т т У у Ү ү Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ъ ъ Ы ы Ь ь Э э Ә ә Ю ю Я я"},{language:"Ukrainian",region:"European",script:"Cyrl",speakers:t(30),pangrams:["Чуєш їх, доцю, га? Кумедна ж ти, прощайся без ґольфів! Жебракують філософи при ґанку церкви в Гадячі, ще й шатро їхнє п’яне знаємо."],gotchas:[{topic:"її",tags:["metrics","ligature","optional"],description:"The possible collision of dieresis in Ukrainian word її (‘her’) can be avoided by providing a ligature with three dots instead of four.",tests:["ЗГОДОМ ЇЇ ВЖИВ без імени її творця. Ви вже бачили її нового друга? Обидві її дитини були шоковані від її нового друга, але змирилися з ситуацією, бо хотіли, щоб їх мама була щаслива."]}],specialCharacters:"Ґ ґ Є є І і Ї ї",alphabet:"А а Б б В в Г г Ґ ґ Д д Е е Є є Ж ж З з И и І і Ї ї Й й К к Л л М м Н н О о П п Р р С с Т т У у Ф ф Х х Ц ц Ч ч Ш ш Щ щ Ь ь Ю ю Я я"},{language:"Uzbek",script:"Cyrl",htmlTag:"uz",region:"Asian",speakers:t(27),specialCharacters:"Ғ ғ Қ қ Ў ў Ҳ ҳ",alphabet:" А а Б б Д д Э э Е е Ф ф Г г Ҳ ҳ И и Ж ж К к Л л М м Н н О о П п Қ қ Р р С с Т т У у В в Х х Й й З з Ў ў Ғ ғ Ш ш Ч ч нг ъ"},{language:"Uzbek",script:"Latn",htmlTag:"uz",region:"Asian",speakers:t(27),specialCharacters:"Gʻ gʻ Oʻ oʻ ʼ",alphabet:"A a B b CH ch D d E e F f G g Gʻ gʻ H h I i J j K k L l M m N n NG ng O o Oʻ oʻ P p Q q R r S s SH sh T t U u V v X x Y y Z z ʼ"},{language:"Uzbek (planned reform)",script:"Latn",htmlTag:"uz",region:"Asian",speakers:t(27),specialCharacters:"Ç ç Ǵ ǵ Ó ó Ş ş ʼ",alphabet:"A a B b C c Ç ç D d E e F f G g Ǵ ǵ H h I i J j K k L l M m N n O o Ó ó P p Q q R r S s Ş ş T t U u V v X x Y y Z z ʼ"},{language:"Vai",region:"African",script:"Latn",speakers:g(120),specialCharacters:"Á á à ã Ɓ ɓ Ɗ ɗ É é Ẽ ẽ Ɛ ɛ Í í Ĩ ĩ Ŋ ŋ Ó ó Õ õ Ɔ ɔ Ú ú Ũ ũ"},{language:"Vietnamese",region:"Asian",script:"Latn",speakers:t(76),pangrams:["Do bạch kim rất quý nên sẽ dùng để lắp vô xương."],gotchas:[{topic:"horn diacritic",tags:["metrics"],tests:["lựt mưng nữi nựi nưm lưu"]}],specialCharacters:"Á á À à Ă ă Ắ ắ Ằ ằ Ẵ ẵ Ẳ ẳ  â Ấ ấ Ầ ầ Ẫ ẫ Ẩ ẩ à ã Ả ả Ạ ạ Ặ ặ Ậ ậ Đ đ É é È è Ê ê Ế ế Ề ề Ễ ễ Ể ể Ẽ ẽ Ẻ ẻ Ẹ ẹ Ệ ệ Í í Ì ì Ĩ ĩ Ỉ ỉ Ị ị Ó ó Ò ò Ô ô Ố ố Ồ ồ Ỗ ỗ Ổ ổ Õ õ Ỏ ỏ Ơ ơ Ớ ớ Ờ ờ Ỡ ỡ Ở ở Ợ ợ Ọ ọ Ộ ộ Ú ú Ù ù Ũ ũ Ủ ủ Ư ư Ứ ứ Ừ ừ Ữ ữ Ử ử Ự ự Ụ ụ Ý ý Ỳ ỳ Ỹ ỹ Ỷ ỷ Ỵ ỵ",paragraphs:["Ảnh hưởng này kéo theo sự xuất hiện của nhiều từ gốc Pháp trong nhiều lĩnh vực khác nhau, đặc biệt là trong khoa học – kỹ thuật. Ễnh ương đốm.","Tiếng Việt, còn gọi tiếng Việt Nam[5] hay Việt ngữ, là ngôn ngữ của người Việt (người Kinh) và là ngôn ngữ chính thức tại Việt Nam. Đây là tiếng mẹ đẻ của khoảng 85% dân cư Việt Nam, cùng với hơn bốn triệu người Việt hải ngoại. Tiếng Việt còn là ngôn ngữ thứ hai của các dân tộc thiểu số tại Việt Nam. Mặc dù tiếng Việt có một số từ vựng vay mượn từ tiếng Hán và trước đây dùng chữ Nôm — một hệ chữ dựa trên chữ Hán — để viết nhưng tiếng Việt được coi là một trong số các ngôn ngữ thuộc ngữ hệ Nam Á có số người nói nhiều nhất (nhiều hơn một số lần so với các ngôn ngữ khác cùng hệ cộng lại). Ngày nay, tiếng Việt dùng bảng chữ cái Latinh, gọi là chữ Quốc ngữ, cùng các dấu thanh để viết.",'Tiếng Việt được chính thức ghi nhận trong Hiến pháp nước Cộng hòa Xã hội chủ nghĩa Việt Nam 2013, tại chương I điều 5 mục 3, là ngôn ngữ quốc gia của Việt Nam [6]. Tiếng Việt bao gồm cách phát âm tiếng Việt và chữ Quốc ngữ để viết. Tuy nhiên hiện chưa có bất kỳ văn bản nào ở cấp nhà nước quy định giọng chuẩn và quốc tự của tiếng Việt [7]. Hiện nay phần lớn các văn bản trong nước được viết theo những "Quy định về chính tả tiếng Việt và về thuật ngữ tiếng Việt" áp dụng cho các sách giáo khoa, báo và văn bản của ngành giáo dục nêu tại Quyết định của Bộ Giáo dục số 240/QĐ ngày 5 tháng 3 năm 1984 [8] do những người thụ hưởng giáo dục đó sau này ra làm việc trong mọi lĩnh vực xã hội.',"Cũng cần lưu ý tránh nhầm lẫn với Việt ngữ (粵語) hay tiếng Quảng Đông, một ngôn ngữ được sử dụng ở miền nam Trung Quốc (Quảng Đông, Quảng Tây) cũng như ở Hồng Kông và Ma Cao.",'Tổ chức tiêu chuẩn hóa quốc tế đặt mã ngôn ngữ hai chữ cái cho tiếng Việt là "vi" (tiêu chuẩn ISO 639-1) và đặt mã ngôn ngữ ba chữ cái cho tiếng Việt là "vie" (tiêu chuẩn ISO 639-2) [9][10][11].']},{language:"Walser German",altNames:["Walser","Walliser German","Walliser","Walserdeutsch","Walliserdeutsch"],region:"European",speakers:g(22),pangrams:["«Méin oalten atte ischt gsinh van in z’Überlann, un d’oaltun mamma ischt van Éischeme, ischt gsing héi van im Proa. Stévenin ischt gsinh dar pappa, la nonna ischt gsinh des Chamonal. [...] D’alpu ischt gsinh aschua van méin oalten pappa. Ich wiss nöit ol z’is heji... Ischt gsinh aschuan d’oaltu, un d’ketschu, gmachut a schian ketschu in z’Überlann.»"]},{language:"Welsh",region:"European",speakers:g(700),pangrams:["Parciais fy jac codi baw hud llawn dŵr ger tŷ Mabon. John Rhŷs."],specialCharacters:"Á á À à  â Ä ä É é È è Ê ê Ë ë Í í Ì ì Î î Ï ï Ó ó Ò ò Ô ô Ö ö Ú ú Ù ù Û û Ü ü Ẃ ẃ Ẁ ẁ Ŵ ŵ Ẅ ẅ Ý ý Ỳ ỳ Ŷ ŷ Ÿ ÿ"},{language:"Central Yambasa",altNames:["Yangben"],region:"African",speakers:g(17),specialCharacters:"Á á À à  â Ǎ ǎ Ā ā É é È è Ɛ ɛ Í í Ì ì Î î Ī ī Ŋ ŋ Ó ó Ò ò Ô ô Ǒ ǒ Ō ō Ɔ ɔ Ú ú Ù ù Û û Ǔ ǔ Ū ū"},{language:"Yoruba",region:"African",speakers:t(28),pangrams:["Ìwò̩fà ń yò̩ séji tó gbojúmó̩, ó hàn pákànpò̩ gan-an nis̩é̩ rè̩ bó dò̩la."],gotchas:[{topic:"vertical line/dot below",tags:["mark"],description:"Some combinations do not have precomposed diacritics: letters E, O, S can take vertical line below, E and O also in combination with acute, grave, and macron. In some publications, dot below is used instead of the vertical line.",tests:["E̩ É̩ È̩ Ē̩ O̩ Ó̩ Ò̩ Ō̩ S̩ e̩ é̩ è̩ ē̩ o̩ ó̩ ò̩ ō̩ s̩","Ẹ Ẹ́ Ẹ̀ Ẹ̄ Ọ Ọ́ Ọ̀ Ọ̄ Ṣ ẹ ẹ́ ẹ̀ ẹ̄ ọ ọ́ ọ̀ ọ̄ ṣ"]}],specialCharacters:"Á á À à Ā ā É é È è Ē ē E̩ e̩ É̩ é̩ È̩ è̩ Ē̩ ē̩ Ẹ ẹ Ẹ́ ẹ́ Ẹ̀ ẹ̀ Ẹ̄ ẹ̄ Í í Ì ì Ī ī Ó ó Ò ò Ō ō O̩ o̩ Ó̩ ó̩ Ò̩ ò̩ Ō̩ ō̩ Ọ ọ Ọ́ ọ́ Ọ̀ ọ̀ Ọ̄ ọ̄ S̩ s̩ Ṣ ṣ Ú ú Ù ù Ū ū"},{language:"Zarma",region:"African",speakers:t(3.5),pangrams:["Da curo fo hẽ, afo mana hẽ, i si jinde kaana bay. Ay no leemuyaŋ. "],specialCharacters:"à ã Ẽ ẽ Ɲ ɲ Ŋ ŋ Õ õ Š š Ž ž"},{language:"Zazaki",region:"Asian",speakers:t(1.6),alphabet:"A a B b C c Ç ç D d E e Ê ê F f G g Ğ ğ H h I i Î î J j K k L l M m N n O o P p Q q R r S s Ş ş T t U u Û û V v W w X x Y y Z z"},{language:"Zulu",region:"African",speakers:t(12),pangrams:["Thina, bantu baseNingizimu Afrika, Siyakukhumbula ukucekelwa phansi kwamalungelo okwenzeka eminyakeni eyadlula; Sibungaza labo abahluphekela ubulungiswa nenkululeko kulo mhlaba wethu; Sihlonipha labo abasebenzela ukwakha nokuthuthukisa izwe lethu; futhi Sikholelwa ekutheni iNingizimu Afrika ingeyabo bonke abahlala kuyo, sibumbene nakuba singafani."],specialCharacters:""},{language:"IPA",pseudo:!0,htmlTag:"",opentypeTag:"",script:"IPA",speakers:0,_specialCharacters:"ʃ θ ʊ ʊ ʌ ʒ ʔ æ ɑ ð ə ɚ ɛ ɜ ɝ ɪ ɫ ŋ ɔ ɒ ɹ ɾ ˈ ˌ ː ᵊ ʳ õ r̩",paragraphs:["/sɯ̥ʃi/ /a̠ˈmiɣo̟/ [ˈɲeɣʐɛ] [ðə bɛɪʒ çjuː ˈɒn ðə wɔːtəz əv ðə lɔx ɪmˈprɛst ɔːl ɪnˈkluːdɪŋ ðə frɛntʃ kwiːn bɪˈfɔː ˈʃiː hɜːd ðæt ˈsɪɱfəni əˈɡɛn dʒəst əz jʌŋ ˈɑːθə ˈwɒntɪd]","/à ˈnojtɨ, vuˈvo kuuaɫʃˈki ˈve u ˈimɐ̃ kɐˈiɾ nu ˈpɛ du ˈpĩgüˈĩ kɐjˈʃozu i vuˈvɔ ˈpõj ɐˈsukaɾ nu ˈʃa dɨ ˈtɐmɐɾɐʒ du ʒɐbuˈti fɨˈɫiʃ/","[ˈxoˈse kõmˈpɾo ˈuna ˈβjexa sãmˈpoɲa ɛ̃m pɛˈɾu ɛksuˈsãn̪dose, soˈfia tiˈɾo su ˈwiskj al̪ deˈsaɣwe ðe la βãŋˈkɛta]",' maj ˌɹɛvəˈleʃənz æz ə spaj ˈstivən ˈliˌkɑk ( fɹəm ˈfɹɛnzid ˈfɪkʃən ) ɪn ˈmɛni ˈpipəl ðə ˈvɛɹi nem "spaj " əkˈsajts ə ˈʃʌdəɹ əv ˌæpɹəˈhɛnʃən ; wi spajz , ɪn fækt , ɡɛt kwajt just tə ˈbiɪŋ ˈʃʌdəɹd æt . nʌn əv ʌs spajz majnd ət æt ɑl . ˌwɛnˈɛvəɹ aj ˈɛntəɹ ə ˌhoˈtɛl ənd ˈɹɛdʒəstəɹ ˌmajˈsɛlf æz ə spaj aj əm kwajt əˈkʌstəmd tə si ə θɹɪl əv fɪɹ ɹʌn ɹawnd ðə kləɹks , ɔɹ kləɹk , bəˈhajnd ðə dɛsk . ʌs spajz , ɔɹ wi spajz --fɔɹ wi kɑl ɑɹˈsɛlvz boθ --ɑɹ ðʌs ə ɹes əˈpɑɹt . nʌn no ʌs . ɑl fɪɹ ʌs . wɛɹ du wi lɪv ? ˈnoˌwɛɹ . wɛɹ ɑɹ wi ? ˈɛvɹiˌwɛɹ .',"ˈfɹikwəntli wi dont no ɑɹˈsɛlvz wɛɹ wi ɑɹ . ðə ˈsikɹət ˈɔɹdəɹz ðət wi ɹəˈsiv kʌm fɹəm so haj ʌp ðæt ɪt ɪz ˈɑfən fʌɹˈbɪdən tu ʌs ˈivən tə æsk wɛɹ wi ɑɹ . ə fɹɛnd əv majn , ɔɹ æt list ə ˈfɛlo spaj --ʌs spajz hæv no fɹɛndz --wʌn əv ðə most ˈbɹɪljənt mɛn ɪn ðə hʌŋˈɡɛɹiən ˈsikɹət ˈsəɹvəs , wʌns spɛnt ə mʌnθ ɪn ˌnju ˈjɔɹk ˈʌndəɹ ðə əmˈpɹɛʃən ðət hi wəz ən ˈwɪnəˌpɛɡ . ɪf ðɪs ˈhæpənd tə ðə most ˈbɹɪljənt , θɪŋk əv ðə ˈʌðəɹz . ðə ˈsɔɹoz əv ə ˈsʌməɹ ɡɛst lɛt mi ədˈmɪt , æz aj stɑɹt tə ɹajt , ðət ðə hol θɪŋ ɪz maj fɑlt . aj ʃʊd ˈnɛvəɹ həv kʌm , aj nju ˈbɛtəɹ . aj həv non ˈbɛtəɹ fɔɹ jɪɹz . aj hæv non ðət ɪt əz ʃɪɹ ˈmædnəs tə ɡo ənd pe ˈvɪzəts ɪn ˈʌðəɹ ˈpipəlz ˈhawzəz . jɛt ɪn ə ˈmomənt əv ɪnˈsænəti aj həv lɛt ˌmajˈsɛlf ˈɪn fəɹ ɪt ənd hɪɹ aj æm . ðɛɹ ɪz no hop , no ˈawtlət naw tɪl ðə fəɹst əv ˌsɛpˈtɛmbəɹ wɛn maj ˈvɪzət ɪz tə ˈtəɹməˌnet . ˈajðəɹ ˈðæt ɔɹ ˈdɛθ . aj du nɑt ˈɡɹetli kɛɹ wɪtʃ ."]}]},u=n("a58e"),r=n.n(u);n("8ff0");function d(e){const a=[e.language,...e.altNames||[]];let n;const g=a.flatMap(e=>r.a.search(e).filter(e=>"language"==e.type()));if(g.length){for(let e of g){const g=e=>e.split("(")[0].trim();if(e.descriptions().some(e=>a.some(a=>a==g(e)))){n=e.data.subtag;break}}if(!n){const a=g[0];n=a.data.subtag;const t=a.descriptions();this&&this.DEBUG&&this.warn(`Exported language '${e.language}' with \`htmlTag\`: '${n}'.\n`+`Is that correct? If so, consider adding ${t.map(e=>`'${e}'`).join(", ")} to \`altNames\`.\n`+"If this is incorrect, manually set `htmlTag` (can be empty).\n")}}return n}var o=n("e313");function l(e){const a=e.htmlTag;if(!a)return void this.warn(`No HTML tag for language ${e.language}. Cannot look up OpenType tag.`);let n=Object(o["ietfToOpenType"])(a);if(n)return n;this.warn(`No OpenType tag for language ${e.language}, HTML tag ${a}.`)}var p=n("e7ab");function s(e){let a=p.find(a=>a.code==e.script);return a&&a.name||e.script}function c(e,a){for(var n=[],g=e.charCodeAt(0),t=a.charCodeAt(0);g<=t;++g)n.push(String.fromCharCode(g));return n}function b(e,a){e=e.toLowerCase()+" "+e.toUpperCase(),e=e.replace(/i̇/g,"i");let n=e.split(" ").filter(e=>e);n=Array.from(new Set(n));try{n.sort((e,n)=>e.localeCompare(n,a,{caseFirst:"upper"}))}catch(g){console.log(g)}finally{n.sort((e,a)=>e.localeCompare(a,"en",{caseFirst:"upper"}))}return n.join(" ")}function y(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}c("a","z");var S=function(e,a){let n=e.alphabet||"",g=e.specialCharacters||"";if("Latn"===e.script){let a=n||c("a","z").join(" "),t=[...a.split(/\s+/g),...g.split(" ")];const i="0-9",u=y(',.;:!?"„“”()[]{}–—')+"\\-\\s",r=new RegExp(`[ ${i+u}]`,"i");t=t.filter(e=>!r.test(e));let d=b(t.join(" "),(e.htmlTag||"en")+"-Latn");if(!e.alphabet)return d;if(e.alphabet!==d){e.alphabetIsSorted||this.info(`[!] Consider changing alphabet for language ${e.language}\nfrom "${e.alphabet}"\n to "${d}"`)}}return n},h=n("8038"),A=n.n(h),T=function(e,a){let n=(e.specialCharacters||e.alphabet||"").split(/\s+/g).filter(e=>e);if("Latn"===e.script||"Cyrl"===e.script){if(0===n.length){let a=[...e.pangrams,...e.letterings,...e.paragraphs,...e.sentences].join(""),g=a.toLowerCase()+a.toUpperCase();g.indexOf("ı")>-1&&(g+="İ"),g=g.replace(/i̇/g,"i");const t=new A.a,i=t.splitGraphemes(g),u=new Set(i);n=Array.from(u)}const a=[...c("a","z"),...c("а","я")].join(""),g="0-9",t=y(',.;:!?"„“”()[]{}–—')+"\\-\\s",i=new RegExp(`^[ ${a+g+t}]*$`,"i");n=n.filter(e=>!i.test(e))}let g=e.htmlTag?e.htmlTag+"-"+e.script:"en",t=b(n.join(" "),g);return e.specialCharacters?(e.specialCharacters!==t&&(e.alphabetIsSorted||(this.info(`[!] Consider changing specialCharacters for language ${e.language}\nfrom "${e.specialCharacters}"\n to "${t}"`),e.specialCharacters.split(" ").length>t.split(" ").length&&this.info(" (preserve digraphs in the alphabet field, though)"))),e.specialCharacters):t};var m={language:{type:String,required:!0,description:"Language name in English. "},altNames:{type:Array,of:String,description:"Alternative language names, also used for looking up HTML tags if default fails. "},htmlTag:{type:String,required:!0,regex:/[a-z]{2,3}/,default:d,description:"A minimal [BCP-47 language tag](https://www.ietf.org/rfc/bcp/bcp47.txt) used for HTML lang attribute. Typically equivalent to the 2-letter ISO-639-1 code or the 3-letter ISO-639-3 code when the former isn't defined. "},opentypeTag:{type:String,regex:/[A-Z0-9 ]{4}/,default:l,description:"[Four-character language code](https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags) used by OpenType features. For unsupported languages, some engines (notably Harfbuzz) use ISO-639-3 codes as fallback, so it might be useful to implement them in fonts. "},script:{type:String,required:!0,regex:/[A-Z][a-z]{3}/,default:"Latn",description:"Four letter ISO-15924 script code, e.g. `Latn` or `Cyrl`. Or the arbitrary value `IPA`, used for the IPA entry. "},scriptName:{type:String,required:!0,regex:/[A-Za-z ]*/,default:s,description:"ISO-15924 script name, e.g. `Latin` or `Cyrillic`. `IPA` for the (pseudo-)language IPA. "},region:{type:String,description:"Arbitrary geographical region that the language belongs in. "},speakers:{type:Number,default:0,description:"Number of L1 (native) speakers. Can be set to 0 for artificial languages or typographical conventions that don't correspond to an actual language, e.g. phonetic transcription. "},pangrams:{type:Array,of:String,default:[],description:"Pangrams, i.e. sentences that contain all letters of the language's alphabet. "},letterings:{type:Array,of:String,default:[],description:"Letterings, i.e. strings of words starting with each letter of the language's alphabet, preferably also repeating the initial letter within. This way a single word can be used to show off both uppercase and lowercase in a natural setting. "},sentences:{type:Array,of:String,default:[],description:"Single sentences in the given language, approx. 100-200 characters. "},paragraphs:{type:Array,of:String,default:[],description:"Paragraphs, i.e. longer passages in the given language, approx. 250-750 characters. "},smallcaps:{type:Array,of:String,default:[],description:"Paragraphs or sentences in HTML, sprinkled with small caps words formatted like this: `AWOL` "},gotchas:{type:Array,of:Object,default:[],description:"Typographic challenges specific to given language, e.g. required ligatures, kerning/spacing pairs (also for punctuation), things to look out for when adding language support to a font. ",elementFields:{topic:{type:String,description:"Concerned letters or their names (applies to diacritics), or other concise description of the issue."},tags:{type:Array,of:String,description:"One or more of:\n* `metrics` — for issues related to spacing or kerning,\n* `ligature` — concerning a possibly needed ligature,\n* `contextual` — concerning a possibly needed contextual alternate,\n* `localization` — related to alternate localized glyphs, (gotchas without this tag are just pointers to making a better font in general)\n* `congruency` — regarding interplay between design of particular glyphs\n* `optional` — for issues that might be considered irrelevant (the described feature is more `nice-to-have` than `must-have`).",regex:/(metrics|ligature|contextual|localization|congruency|optional)/},description:{type:String,description:"Description of the issue and/or design recommendations."},tests:{type:Array,of:String,description:"Strings that can be used to test a font against the issue."}}},specialCharacters:{type:String,description:"Special characters (mainly accented letters — diacritics) used by the language.",sanitize:T},alphabet:{type:String,description:"The letters of the language's alphabet in order, separated by spaces. Typically A-Z with `specialCharacters` intertwined or appended, depending on the language's convention. ",sanitize:S},alphabetIsSorted:{type:Boolean,description:"If true, ignore sorting suggested by JavaScript."},optionalCharacters:{type:String,description:"Optional characters used by the language on rare occasions.",default:""},optionalCharactersNote:{type:String,description:"Details regarding the usage of optional characters.",default:""},pseudo:{type:Boolean,description:"Set to `true` for writing systems that are not everyday orthographies of spoken languages (e.g. linguistics)."}};function f(e){const a=JSON.parse(JSON.stringify(e));for(let n in m){let g=m[n];if(g.sanitize&&(e[n]=g.sanitize.call(this,e,a)),"undefined"===typeof e[n]&&"undefined"!==typeof g.default)if("function"===typeof g.default){const t=g.default.call(this,e,a);"undefined"!==typeof t?e[n]=t:g.required&&console.error(e.language,n,"is",e[n])}else e[n]=g.default;g.required&&"undefined"===typeof e[n]&&config.DEBUG&&console.error(`\`${n}\` is undefined for language '${e.language}'.\n`)}return e}var D=function(){if("undefined"===typeof window){n("115b");this.error=e=>console.log(e.red),this.warn=e=>{this.DEBUG&&console.log(e.yellow)},this.info=e=>{this.DEBUG&&console.log(e.white.bgBlue)}}else{const e="[language-data] ";this.delayedWarnings=[],this.error=a=>{this.DEBUG&&console.error(e+a)},this.warn=a=>{this.DEBUG&&console.warn(e+a)},this.info=a=>{this.DEBUG&&console.info(e+a)}}};class v{constructor({debug:e=!1}={}){this.sanitizeEntry=f.bind(this),this.configureDebug=D.bind(this),this.configureDebug(),this.DEBUG=e}getData(){const e=i(),a=e.map(e=>this.sanitizeEntry(e));return a}}const k=new v,w=k.getData();a["a"]=w},b8e3:function(e,a){e.exports=!0},b9ab:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("label",{staticClass:"ui-fileupload",class:e.classes},[e.renderInput?n("input",{ref:"input",staticClass:"ui-fileupload__input",attrs:{type:"file",accept:e.accept,disabled:e.disabled,multiple:e.multiple,name:e.name,required:e.required,tabindex:e.tabindex},on:{blur:e.onBlur,input:e.onInput,change:e.onChange,focus:e.onFocus}}):e._e(),n("div",{staticClass:"ui-fileupload__content"},[n("div",{staticClass:"ui-fileupload__icon"},[e._t("icon",[n("ui-icon",[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M5.016 18h13.969v2.016H5.016V18zM9 15.984v-6H5.016L12 3l6.984 6.984H15v6H9z"}})])])])],2),e.hasSelection?n("span",{staticClass:"ui-fileupload__display-text"},[e._v(e._s(e.displayText))]):e._t("default",[e._v(e._s(e.placeholder))])],2),n("div",{staticClass:"ui-fileupload__focus-ring"}),e.disableRipple||e.disabled?e._e():n("ui-ripple-ink")],1)},t=[],i=(n("28a5"),n("c5f6"),n("d235")),u=n("e5ce"),r={name:"ui-fileupload",props:{name:{type:String,required:!0},label:String,tabindex:[String,Number],accept:String,multiple:{type:Boolean,default:!1},required:{type:Boolean,default:!1},type:{type:String,default:"primary"},color:{type:String,default:"default"},size:{type:String,default:"normal"},raised:{type:Boolean,default:!1},iconPosition:{type:String,default:"left"},disableRipple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},data:function(){return{isActive:!1,renderInput:!0,hasSelection:!1,hasMultiple:!1,displayText:""}},computed:{classes:function(){return["ui-fileupload--type-".concat(this.type),"ui-fileupload--color-".concat(this.color),"ui-fileupload--icon-position-".concat(this.iconPosition),"ui-fileupload--size-".concat(this.size),{"is-active":this.isActive},{"is-multiple":this.hasMultiple},{"is-raised":this.raised},{"is-disabled":this.disabled}]},placeholder:function(){return this.label?this.label:this.multiple?"Choose files":"Choose a file"}},methods:{onFocus:function(e){this.isActive=!0,this.$emit("focus",e)},onBlur:function(e){this.isActive=!1,this.$emit("blur",e)},onInput:function(e){this.$emit("input",this.$refs.input.files,e)},onChange:function(e){this.updateDisplayText(e),this.$emit("change",this.$refs.input.files,e)},updateDisplayText:function(e){var a,n=this.$refs.input;a=n.files&&n.files.length>1?"".concat(n.files.length," files selected"):e.target.value.split("\\").pop(),a&&(this.hasSelection=!0,this.displayText=a,this.hasMultiple=n.files.length>1)},focus:function(){this.$refs.input.focus()},openPicker:function(){this.$refs.input.click()},clear:function(){var e=this;this.hasSelection=!1,this.renderInput=!1,this.$nextTick((function(){e.renderInput=!0}))}},components:{UiIcon:i["a"],UiRippleInk:u["a"]}},d=r,o=(n("4217"),n("2877")),l=Object(o["a"])(d,g,t,!1,null,null,null);a["a"]=l.exports},baa8:function(e,a,n){},bb03:function(e,a,n){"use strict";var g=n("cbde");a["a"]={beforeDestroy(){"function"===typeof this.destroyExternalClickListener&&this.removeExternalClickListener()},methods:{addExternalClickListener(e=[this.$el],a=null,n={passive:!0}){e=Array.isArray(e)?e:[e],this.destroyExternalClickListener=g["a"].on("click",document,n=>{for(let a=0;a1?arguments[1]:void 0,3);while(n=n?n.n:this._f){g(n.v,n.k,this);while(n&&n.r)n=n.p}},has:function(e){return!!S(b(this,a),e)}}),s&&g(l.prototype,"size",{get:function(){return b(this,a)[y]}}),l},def:function(e,a,n){var g,t,i=S(e,a);return i?i.v=n:(e._l=i={i:t=c(a,!0),k:a,v:n,p:g=e._l,n:void 0,r:!1},e._f||(e._f=i),g&&(g.n=i),e[y]++,"F"!==t&&(e._i[t]=i)),e},getEntry:S,setStrong:function(e,a,n){o(e,a,(function(e,n){this._t=b(e,a),this._k=n,this._l=void 0}),(function(){var e=this,a=e._k,n=e._l;while(n&&n.r)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?l(0,"keys"==a?n.k:"values"==a?n.v:[n.k,n.v]):(e._t=void 0,l(1))}),n?"entries":"values",!n,!0),p(a)}}},c366:function(e,a,n){var g=n("6821"),t=n("9def"),i=n("77f1");e.exports=function(e){return function(a,n,u){var r,d=g(a),o=t(d.length),l=i(u,o);if(e&&n!=n){while(o>l)if(r=d[l++],r!=r)return!0}else for(;o>l;l++)if((e||l in d)&&d[l]===n)return e||l||0;return!e&&-1}}},c367:function(e,a,n){"use strict";var g=n("8436"),t=n("50ed"),i=n("481b"),u=n("36c3");e.exports=n("30f1")(Array,"Array",(function(e,a){this._t=u(e),this._i=0,this._k=a}),(function(){var e=this._t,a=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,t(1)):t(0,"keys"==a?n:"values"==a?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,g("keys"),g("values"),g("entries")},c3a1:function(e,a,n){var g=n("e6f3"),t=n("1691");e.exports=Object.keys||function(e){return g(e,t)}},c4ff:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n(e.isAnchor?"a":"button",{tag:"component",staticClass:"ui-button",class:e.classes,attrs:{disabled:e.disabled||e.loading,href:e.isAnchor?e.disabled?null:e.href:null,type:e.isAnchor?null:e.buttonType},on:{click:e.onClick}},[n("div",{staticClass:"ui-button__content"},[e.icon||e.$slots.icon?n("div",{staticClass:"ui-button__icon"},[e._t("icon",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),e._t("default"),e.hasDropdown&&"right"!==e.iconPosition?n("ui-icon",{staticClass:"ui-button__dropdown-icon"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M6.984 9.984h10.03L12 15z"}})])]):e._e()],2),n("div",{staticClass:"ui-button__focus-ring"}),e.loading?n("ui-progress-circular",{staticClass:"ui-button__progress",attrs:{"disable-transition":"",color:e.progressColor,size:18,stroke:4.5}}):e._e(),e.disableRipple||e.disabled?e._e():n("ui-ripple-ink"),e.hasDropdown?n("ui-popover",{ref:"dropdown",attrs:{"contain-focus":"","append-to-body":e.appendDropdownToBody,"constrain-to-scroll-parent":e.constrainDropdownToScrollParent,position:e.dropdownPosition,"open-on":e.openDropdownOn},on:{close:e.onDropdownClose,open:e.onDropdownOpen}},[e._t("dropdown")],2):e._e(),e.tooltip?n("ui-tooltip",{attrs:{"open-on":e.openTooltipOn,position:e.tooltipPosition}},[e._v(e._s(e.tooltip))]):e._e()],1)},t=[],i=n("d235"),u=n("a0fd"),r=n("1580"),d=n("e5ce"),o=n("e291"),l={name:"ui-button",props:{type:{type:String,default:"primary"},buttonType:String,href:String,color:{type:String,default:"default"},size:{type:String,default:"normal"},raised:{type:Boolean,default:!1},icon:String,iconPosition:{type:String,default:"left"},loading:{type:Boolean,default:!1},hasDropdown:{type:Boolean,default:!1},dropdownPosition:{type:String,default:"bottom-start"},appendDropdownToBody:{type:Boolean,default:!0},constrainDropdownToScrollParent:{type:Boolean,default:!0},openDropdownOn:{type:String,default:"click"},tooltip:String,openTooltipOn:String,tooltipPosition:String,disableRipple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},computed:{classes:function(){return["ui-button--type-".concat(this.type),"ui-button--color-".concat(this.color),"ui-button--icon-position-".concat(this.iconPosition),"ui-button--size-".concat(this.size),{"is-anchor":this.isAnchor},{"is-raised":this.raised},{"is-loading":this.loading},{"is-disabled":this.disabled||this.loading},{"has-dropdown":this.hasDropdown}]},isAnchor:function(){return void 0!==this.href},progressColor:function(){return"default"===this.color||"secondary"===this.type?"black":"white"}},methods:{onClick:function(e){this.$emit("click",e)},onDropdownOpen:function(){this.$emit("dropdown-open")},onDropdownClose:function(){this.$emit("dropdown-close")},openDropdown:function(){this.$refs.dropdown&&this.$refs.dropdown.open()},closeDropdown:function(){this.$refs.dropdown&&this.$refs.dropdown.close()},toggleDropdown:function(){this.$refs.dropdown&&this.$refs.dropdown.toggle()}},components:{UiIcon:i["a"],UiPopover:u["a"],UiProgressCircular:r["a"],UiRippleInk:d["a"],UiTooltip:o["a"]}},p=l,s=(n("36a2"),n("2877")),c=Object(s["a"])(p,g,t,!1,null,null,null);a["a"]=c.exports},c538:function(e,a,n){"use strict";var g=n("fd32"),t=n.n(g);t.a},c5f6:function(e,a,n){"use strict";var g=n("7726"),t=n("69a8"),i=n("2d95"),u=n("5dbc"),r=n("6a99"),d=n("79e5"),o=n("9093").f,l=n("11e9").f,p=n("86cc").f,s=n("aa77").trim,c="Number",b=g[c],y=b,S=b.prototype,h=i(n("2aeb")(S))==c,A="trim"in String.prototype,T=function(e){var a=r(e,!1);if("string"==typeof a&&a.length>2){a=A?a.trim():s(a,3);var n,g,t,i=a.charCodeAt(0);if(43===i||45===i){if(n=a.charCodeAt(2),88===n||120===n)return NaN}else if(48===i){switch(a.charCodeAt(1)){case 66:case 98:g=2,t=49;break;case 79:case 111:g=8,t=55;break;default:return+a}for(var u,d=a.slice(2),o=0,l=d.length;ot)return NaN;return parseInt(d,g)}}return+a};if(!b(" 0o1")||!b("0b1")||b("+0x1")){b=function(e){var a=arguments.length<1?0:e,n=this;return n instanceof b&&(h?d((function(){S.valueOf.call(n)})):i(n)!=c)?u(new y(T(a)),n,b):T(a)};for(var m,f=n("9e1e")?o(y):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),D=0;f.length>D;D++)t(y,m=f[D])&&!t(b,m)&&p(b,m,l(y,m));b.prototype=S,S.constructor=b,n("2aba")(g,c,b)}},c69a:function(e,a,n){e.exports=!n("9e1e")&&!n("79e5")((function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a}))},c8ba:function(e,a){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(g){"object"===typeof window&&(n=window)}e.exports=n},c8bb:function(e,a,n){e.exports=n("54a1")},ca5a:function(e,a){var n=0,g=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+g).toString(36))}},cadf:function(e,a,n){"use strict";var g=n("9c6c"),t=n("d53b"),i=n("84f2"),u=n("6821");e.exports=n("01f9")(Array,"Array",(function(e,a){this._t=u(e),this._i=0,this._k=a}),(function(){var e=this._t,a=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,t(1)):t(0,"keys"==a?n:"values"==a?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,g("keys"),g("values"),g("entries")},cb42:function(e,a,n){"use strict";function g(e,a){if(!e)return;a=a||e.parentElement;const n=e.offsetTop,g=a.scrollTop,t=n+e.offsetHeight,i=a.offsetHeight;return n>=g&&t<=i}function t(e,a={container:null,marginTop:0}){e&&(a.container=a.container||e.parentElement,g(e,a.container)||(a.container.scrollTop=e.offsetTop-a.marginTop))}function i(e){e&&(e.scrollTop=0)}n.d(a,"b",(function(){return t})),n.d(a,"a",(function(){return i}))},cb7c:function(e,a,n){var g=n("d3f4");e.exports=function(e){if(!g(e))throw TypeError(e+" is not an object!");return e}},cbde:function(e,a,n){"use strict";function g(e,a,n,g={passive:!0}){return a.addEventListener(e,n,g),()=>{a.removeEventListener(e,n,g)}}function t(e,a,n,t,i){return g(a,n,a=>{e&&e!==a.key&&e!==a.keyCode||t(a)},i)}function i(e,a,n,g){return t(e,"keydown",a,n,g)}function u(e,a,n,g){return t(e,"keyup",a,n,g)}function r(e,a,n,g){return t(e,"keypress",a,n,g)}a["a"]={on:g,onKeydown:i,onKeyup:u,onKeypress:r}},cc32:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"ui-slider",class:e.classes,attrs:{role:"slider","aria-valuemax":e.moderatedMax,"aria-valuemin":e.moderatedMin,"aria-valuenow":e.localValue,tabindex:e.disabled?null:e.tabindex||"0"},on:{blur:e.onBlur,focus:e.onFocus,keydown:[function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"down",40,a.key,["Down","ArrowDown"])?null:(a.preventDefault(),e.decrementValue(a))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"left",37,a.key,["Left","ArrowLeft"])?null:"button"in a&&0!==a.button?null:(a.preventDefault(),e.decrementValue(a))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"right",39,a.key,["Right","ArrowRight"])?null:"button"in a&&2!==a.button?null:(a.preventDefault(),e.incrementValue(a))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"up",38,a.key,["Up","ArrowUp"])?null:(a.preventDefault(),e.incrementValue(a))}]}},[e.name?n("input",{staticClass:"ui-slider__hidden-input",attrs:{type:"hidden",name:e.name},domProps:{value:e.value}}):e._e(),e.hasIcon?n("div",{staticClass:"ui-slider__icon"},[e._t("icon",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),n("div",{ref:"track",staticClass:"ui-slider__track",on:{mousedown:e.onDragStart,touchstart:e.onDragStart}},[n("div",{staticClass:"ui-slider__track-background"},e._l(e.snapPoints,(function(a){return e.snapToSteps?n("span",{staticClass:"ui-slider__snap-point",style:{left:100*e.relativeValue(a)+"%"}}):e._e()})),0),n("div",{staticClass:"ui-slider__track-fill",style:e.fillStyle}),n("div",{ref:"thumb",staticClass:"ui-slider__thumb",style:e.thumbStyle},[e.showMarker?n("div",{staticClass:"ui-slider__marker"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"36",height:"36"}},[n("path",{attrs:{d:"M11 .5c-1.7.2-3.4.9-4.7 2-1.1.9-2 2-2.5 3.2-1.2 2.4-1.2 5.1-.1 7.7 1.1 2.6 2.8 5 5.3 7.5 1.2 1.2 2.8 2.7 3 2.7 0 0 .3-.2.6-.5 3.2-2.7 5.6-5.6 7.1-8.5.8-1.5 1.1-2.6 1.3-3.8.2-1.4 0-2.9-.5-4.3-1.2-3.2-4.1-5.4-7.5-5.8-.5-.2-1.5-.2-2-.2z"}})]),n("span",{staticClass:"ui-slider__marker-text"},[e._v(e._s(e.markerText))])]):e._e()])])])},t=[],i=(n("c5f6"),n("d235")),u=n("3c7e"),r={name:"ui-slider",props:{name:String,tabindex:[String,Number],icon:String,value:{type:Number,required:!0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:10},snapToSteps:{type:Boolean,default:!1},showMarker:{type:Boolean,default:!1},markerValue:[String,Number],disabled:{type:Boolean,default:!1}},data:function(){return{initialValue:this.value,isActive:!1,isDragging:!1,localValue:this.value}},computed:{classes:function(){return[{"is-dragging":this.isDragging},{"is-disabled":this.disabled},{"is-active":this.isActive},{"has-icon":this.hasIcon},{"has-marker":this.showMarker}]},hasIcon:function(){return Boolean(this.$slots.icon)||Boolean(this.icon)},fillStyle:function(){return{transform:"scaleX("+this.relativeValue(this.localValue)+")"}},thumbStyle:function(){return{left:100*this.relativeValue(this.localValue)+"%"}},markerText:function(){return void 0===this.markerValue?this.value:this.markerValue},snapPoints:function(){var e=[],a=this.step*Math.ceil(this.moderatedMin/this.step);while(a<=this.moderatedMax)e.push(a),a+=this.step;return e},moderatedMin:function(){return this.max>this.min?this.min:0},moderatedMax:function(){return this.max>this.min?this.max:100}},watch:{value:function(){this.setValue(this.value)},isDragging:function(){var e=this.isDragging?"add":"remove";u["a"][e](document.body,"ui-slider--is-dragging")}},mounted:function(){this.initializeSlider()},beforeDestroy:function(){this.teardownSlider()},methods:{focus:function(){this.$el.focus()},reset:function(){this.setValue(this.initialValue)},onFocus:function(){this.isActive=!0,this.$emit("focus")},onBlur:function(){this.isActive=!1,this.$emit("blur")},onExternalClick:function(e){this.$el.contains(e.target)||this.onBlur()},setValueWithSnap:function(e){e=this.moderateValue(e),this.snapToSteps&&(e=this.getNearestSnapPoint(e)),this.setValue(e)},setValue:function(e){e=this.moderateValue(e),e!==this.localValue&&(this.localValue=e,this.$emit("input",e),this.$emit("change",e))},incrementValue:function(){this.setValueWithSnap(this.localValue+this.step)},decrementValue:function(){this.setValueWithSnap(this.localValue-this.step)},getTrackOffset:function(){var e=this.$refs.track,a=e.offsetLeft;while(e.offsetParent)e=e.offsetParent,a+=e.offsetLeft;return a},getPointStyle:function(e){return{left:e+"%"}},initializeSlider:function(){document.addEventListener("touchend",this.onDragStop),document.addEventListener("mouseup",this.onDragStop),document.addEventListener("click",this.onExternalClick),this.initializeDrag()},teardownSlider:function(){document.removeEventListener("touchend",this.onDragStop),document.removeEventListener("mouseup",this.onDragStop),document.removeEventListener("click",this.onExternalClick)},initializeDrag:function(){var e=this.moderateValue(this.localValue?this.localValue:0);this.setValue(e)},onDragStart:function(e){this.disabled||(this.isActive||this.onFocus(),this.isDragging=!0,this.dragUpdate(e),document.addEventListener("touchmove",this.onDragMove),document.addEventListener("mousemove",this.onDragMove),this.$emit("dragstart",this.localValue,e))},onDragMove:function(e){this.dragUpdate(e)},dragUpdate:function(e){var a=e.touches?e.touches[0].pageX:e.pageX,n=this.$refs.track.offsetWidth,g=(a-this.getTrackOffset())/n,t=this.moderateValue(this.moderatedMin+g*(this.moderatedMax-this.moderatedMin));this.isDragging&&this.setValue(Math.round(t))},onDragStop:function(e){this.isDragging&&(this.isDragging=!1,this.snapToSteps&&this.value%this.step!==0&&this.setValueWithSnap(this.value),document.removeEventListener("touchmove",this.onDragMove),document.removeEventListener("mousemove",this.onDragMove),this.$emit("dragend",this.localValue,e))},getNearestSnapPoint:function(e){var a=Math.floor(e/this.step)*this.step,n=a+this.step,g=(a+n)/2;return athis.moderatedMax?e:n:e>=g&&n<=this.moderatedMax?n:a},relativeValue:function(e){return(e-this.moderatedMin)/(this.moderatedMax-this.moderatedMin)},moderateValue:function(e){return ethis.moderatedMax?this.moderatedMax:e}},components:{UiIcon:i["a"]}},d=r,o=(n("931c"),n("2877")),l=Object(o["a"])(d,g,t,!1,null,null,null);a["a"]=l.exports},ccb9:function(e,a,n){a.f=n("5168")},cd1c:function(e,a,n){var g=n("e853");e.exports=function(e,a){return new(g(e))(a)}},cd78:function(e,a,n){var g=n("e4ae"),t=n("f772"),i=n("656e");e.exports=function(e,a){if(g(e),t(a)&&a.constructor===e)return a;var n=i.f(e),u=n.resolve;return u(a),n.promise}},ce10:function(e,a,n){var g=n("69a8"),t=n("6821"),i=n("c366")(!1),u=n("613b")("IE_PROTO");e.exports=function(e,a){var n,r=t(e),d=0,o=[];for(n in r)n!=u&&g(r,n)&&o.push(n);while(a.length>d)g(r,n=a[d++])&&(~i(o,n)||o.push(n));return o}},ce7e:function(e,a,n){var g=n("63b6"),t=n("584a"),i=n("294c");e.exports=function(e,a){var n=(t.Object||{})[e]||Object[e],u={};u[e]=a(n),g(g.S+g.F*i((function(){n(1)})),"Object",u)}},cf74:function(e,a,n){"use strict";var g=n("be5e"),t=n.n(g);t.a},cfca:function(e,a,n){"use strict";function g(){var e=this,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(c(a)(["arraysArray","postParamsArray","stringsArray"])){if(0===a.length)return Promise.all(this.actions.map((function(a){var n=a.message;return e.postMessage(n)})));if(a.every((function(e){return"string"==typeof e})))return Promise.all(a.map((function(a){return e.postMessage(a)})));if(a.every((function(e){return"object"===(void 0===e?"undefined":t(e))&&!Array.isArray(e)})))return Promise.all(a.map((function(a){var n=a.message,g=a.args;return e.postMessage(n,g)})));if(a.every((function(e){return Array.isArray(e)}))&&a.length===this.actions.length)return Promise.all(a.map((function(a,n){return e.postMessage(e.actions[n].message,a)})))}return console.error(b(m(a))),null}var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e){return function(a){return!!a&&!Array.isArray(a)&&e.every((function(e){return a.hasOwnProperty(e)}))}},u=function(e){return i(["message","func"])(e)&&"function"==typeof e.func&&"string"==typeof e.message},r=function(e){return e.every(u)},d=function(e){return i(["message","args"])(e)&&Array.isArray(e.args)&&"string"==typeof e.message},o=function(e){return e.every(d)},l=function(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.every(i(a))}},p={actionsArray:function(e){return r(e)},arraysArray:function(e){return e.every((function(e){return Array.isArray(e)}))},objectsArray:function(e){return l(e)()},postParamsArray:function(e){return o(e)},stringsArray:function(e){return e.every((function(e){return"string"==typeof e}))}},s=function(e){return function(a){return"null"===a?null===e:"undefined"===a?void 0===e:"action"===a?u(e):Array.isArray(e)?!("array"!==a&&!p[a])&&("array"===a||p[a](e)):!!e&&(void 0===e?"undefined":t(e))===a.toString()}},c=function(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return Array.isArray(a)?a.some((function(a){return s(e)(a)})):!!s(e)(a)}},b=function(e){var a=e.expected,n=void 0===a?"":a,g=e.received,t=e.extraInfo,i=void 0===t?"":t;try{return new TypeError("You should provide "+n+"\n"+i+"\nReceived: "+JSON.stringify(g))}catch(e){if("Converting circular structure to JSON"===e.message)return new TypeError("You should provide "+n+"\n"+i+"\nReceived a circular structure: "+g);throw e}},y=function(e){return"\n self.onmessage = event => {\n const args = event.data.message.args\n if (args) {\n self.postMessage(("+e+").apply(null, args))\n return close()\n }\n self.postMessage(("+e+")())\n return close()\n }\n"},S=function(e){var a=window.URL||window.webkitURL,n=new Blob([e],{type:"application/javascript"}),g=a.createObjectURL(n),t=new Worker(g);return t.post=function(e){return new Promise((function(n,i){t.onmessage=function(e){a.revokeObjectURL(g),n(e.data)},t.onerror=function(e){console.error("Error: Line "+e.lineno+" in "+e.filename+": "+e.message),i(e)},t.postMessage({message:e})}))},t},h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,a=arguments[1],n=c(e)("function"),g=c(a)(["array","undefined"]);return n&&g?S(y(e)).post({args:a}):(n||console.error(b({expected:"a function",received:e})),g||console.error(b({expected:"an array",received:a})),null)},A=function(e){return console.warn("WARN! "+e+" is not a registered action for this worker"),e+" is not a registered action for this worker"},T=function(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments[1],g=c(a)("string"),t=c(n)(["array","undefined"]);if(g&&t){var i=e.filter((function(e){var n=e.message;return JSON.stringify(n)===JSON.stringify(a)})).map((function(e){return e.func})).pop();return i?n?h(i,n):h(i):h(A,[JSON.stringify(a)])}return g||console.error(b({expected:"a string",received:a})),t||console.error(b({expected:"an array",received:n})),null}},m=function(e){return{expected:"an array of arrays, an array of objects, or an array of strings",received:e,extraInfo:"If an array of arrays, it must have the same length as the actions registered for this worker.\nIf an array of objects, every object must containing two fields:\n* message\n* args"}},f=function(e){return function(a){return e.some((function(e){return e.message===a.message}))}},D=function(e){return'WARN! An action with message "'+e.message+'" is already registered for this worker'},v=function(e){return function(a){return f(e)(a)?(console.warn(D(a)),e.length):e.push(a)}},k=function(e){return{expected:"an array of actions or an action",received:e,extraInfo:"Every action should be an object containing two fields:\n* message\n* func"}},w=function(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return c(a)(["action","actionsArray"])?Array.isArray(a)?a.reduce((function(e,a){return v(e)(a),e}),e).length:v(e)(a):(console.error(b(k(a))),null)}},x=function(e){return function(a){var n=e.findIndex((function(e){return e.message===a}));return-1===n?console.warn('WARN! Impossible to unregister action with message "'+a+'".\nIt is not a registered action for this worker.'):e.splice(n,1),e}},M=function(e){return{expected:"an array of strings or a string",received:e}},j=function(e){return function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return c(a)(["string","stringsArray"])?Array.isArray(a)?a.reduce((function(e,a){return x(e)(a),e}),e).length:x(e)(a).length:(console.error(b(M(a))),null)}},z=function(e){return{expected:"an array of objects",received:e,extraInfo:"Every action should be an object containing two fields:\n* message\n* func"}},C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return c(e)("actionsArray")?{actions:e,postMessage:T(e),postAll:g,register:w(e),unregister:j(e)}:(console.error(b(z(e))),null)},P=function(){return window.Worker?window.URL.createObjectURL||window.webkitURL.createObjectURL?{create:C,run:h}:(console.error("This browser does not have URL.createObjectURL method."),null):(console.error("This browser does not support Workers."),null)},L=P();e.exports=L},d225:function(e,a,n){"use strict";function g(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}n.d(a,"a",(function(){return g}))},d235:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("span",{staticClass:"ui-icon",class:[e.iconSet,e.icon],attrs:{"aria-label":e.ariaLabel}},[e.useSvg?n("svg",{staticClass:"ui-icon__svg"},[n("use",{attrs:{"xmlns:xlink":"http://www.w3.org/1999/xlink","xlink:href":"#"+e.icon}})]):e._t("default",[e._v(e._s(e.removeText?null:e.icon))])],2)},t=[],i={name:"ui-icon",props:{icon:String,iconSet:{type:String,default:"material-icons"},ariaLabel:String,removeText:{type:Boolean,default:!1},useSvg:{type:Boolean,default:!1}}},u=i,r=(n("af34"),n("2877")),d=Object(r["a"])(u,g,t,!1,null,null,null);a["a"]=d.exports},d2c8:function(e,a,n){var g=n("aae3"),t=n("be13");e.exports=function(e,a,n){if(g(a))throw TypeError("String#"+n+" doesn't accept regex!");return String(t(e))}},d2d5:function(e,a,n){n("1654"),n("549b"),e.exports=n("584a").Array.from},d3f4:function(e,a){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},d53b:function(e,a){e.exports=function(e,a){return{value:a,done:!!e}}},d60a:function(e,a){e.exports=function(e){return e&&"object"===typeof e&&"function"===typeof e.copy&&"function"===typeof e.fill&&"function"===typeof e.readUInt8}},d864:function(e,a,n){var g=n("79aa");e.exports=function(e,a,n){if(g(e),void 0===a)return e;switch(n){case 1:return function(n){return e.call(a,n)};case 2:return function(n,g){return e.call(a,n,g)};case 3:return function(n,g,t){return e.call(a,n,g,t)}}return function(){return e.apply(a,arguments)}}},d8e8:function(e,a){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},d9f6:function(e,a,n){var g=n("e4ae"),t=n("794b"),i=n("1bc3"),u=Object.defineProperty;a.f=n("8e60")?Object.defineProperty:function(e,a,n){if(g(e),a=i(a,!0),g(n),t)try{return u(e,a,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[a]=n.value),e}},daea:function(e,a,n){},db4d:function(e,a){e["exports"]=function(e){return function(a,n,g){return n%2===0?a:e.inverse(a)}}},dbdb:function(e,a,n){var g=n("584a"),t=n("e53d"),i="__core-js_shared__",u=t[i]||(t[i]={});(e.exports=function(e,a){return u[e]||(u[e]=void 0!==a?a:{})})("versions",[]).push({version:g.version,mode:n("b8e3")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},dcbc:function(e,a,n){var g=n("2aba");e.exports=function(e,a,n){for(var t in a)g(e,t,a[t],n);return e}},dd4b:function(e,a,n){var g=n("708a");e["exports"]=function(){var e=function(e,a){String.prototype.__defineGetter__(e,a)};e("strip",(function(){return g.strip(this)})),e("stripColors",(function(){return g.strip(this)})),e("trap",(function(){return g.trap(this)})),e("zalgo",(function(){return g.zalgo(this)})),e("zebra",(function(){return g.zebra(this)})),e("rainbow",(function(){return g.rainbow(this)})),e("random",(function(){return g.random(this)})),e("america",(function(){return g.america(this)}));var a=Object.keys(g.styles);function n(a){var n=["__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","charAt","constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf","charCodeAt","indexOf","lastIndexOf","length","localeCompare","match","repeat","replace","search","slice","split","substring","toLocaleLowerCase","toLocaleUpperCase","toLowerCase","toUpperCase","trim","trimLeft","trimRight"];Object.keys(a).forEach((function(t){if(-1!==n.indexOf(t))console.log("warn: ".red+("String.prototype"+t).magenta+" is probably something you don't want to override. Ignoring style name");else if("string"===typeof a[t])g[t]=g[a[t]],e(t,(function(){return g[t](this)}));else{var i=function(e){for(var n=e||this,i=0;i=0)return a[r+1];return a[0]}a.ietfToOpenType=i,function(){if(n.c[n.s]===e){var a=i(g.argv[2]);void 0===a&&(console.error("Unable to find OpenType language system tag"),g.exit(1)),console.log("%s",a)}}()}).call(this,n("62e4")(e),n("f28c"))},e4ae:function(e,a,n){var g=n("f772");e.exports=function(e){if(!g(e))throw TypeError(e+" is not an object!");return e}},e53d:function(e,a){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},e55e:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("li",{staticClass:"ui-select-option",class:e.classes},[e._t("default",["basic"===e.type?n("div",{staticClass:"ui-select-option__basic"},[e._v("\n "+e._s(e.option[e.keys.label]||e.option)+"\n ")]):e._e(),"image"===e.type?n("div",{staticClass:"ui-select-option__image"},[n("div",{staticClass:"ui-select-option__image-object",style:e.imageStyle}),n("div",{staticClass:"ui-select-option__image-text"},[e._v(e._s(e.option[e.keys.label]))])]):e._e(),e.multiple?n("div",{staticClass:"ui-select-option__checkbox"},[e.selected?n("ui-icon",[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M9.984 17.016l9-9-1.406-1.453-7.594 7.594-3.563-3.563L5.016 12zm9-14.016C20.11 3 21 3.938 21 5.016v13.97C21 20.062 20.11 21 18.984 21H5.014C3.89 21 3 20.064 3 18.986V5.015C3 3.94 3.89 3 5.014 3h13.97z"}})])]):n("ui-icon",[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M18.984 3C20.062 3 21 3.938 21 5.016v13.97C21 20.062 20.062 21 18.984 21H5.014C3.938 21 3 20.064 3 18.986V5.015C3 3.94 3.936 3 5.014 3h13.97zm0 2.016H5.014v13.97h13.97V5.015z"}})])])],1):e._e()])],2)},t=[],i=(n("ac6a"),n("c5f6"),n("d235")),u={name:"ui-select-option",props:{option:{type:[String,Number,Object],required:!0},type:{type:String,default:"basic"},multiple:{type:Boolean,default:!1},highlighted:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},keys:{type:Object,default:function(){return{class:"class",label:"label",image:"image"}}}},computed:{classes:function(){return["ui-select-option--type-".concat(this.type),this.option[this.keys.class],{"is-highlighted":this.highlighted},{"is-selected":this.selected}]},imageStyle:function(){return{"background-image":"url("+this.option[this.keys.image]+")"}}},components:{UiIcon:i["a"]}},r=u,d=(n("a7ee"),n("2877")),o=Object(d["a"])(r,g,t,!1,null,null,null);a["a"]=o.exports},e5bb:function(e,a,n){"use strict";var g=n("015d"),t=n.n(g);t.a},e5ce:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"ui-ripple-ink"})},t=[],i=n("3c7e"),u=n("1513"),r=function(e,a){var n=a.currentTarget||a.target;if(n&&!i["a"].has(n,"ui-ripple-ink")&&(n=n.querySelector(".ui-ripple-ink")),n){var g=n.getAttribute("data-ui-event");if(!g||g===e){n.setAttribute("data-ui-event",e);var t,u=n.getBoundingClientRect(),r=a.clientX-u.left,d=a.clientY-u.top,o=document.createElement("div");t=u.width===u.height?1.412*u.width:Math.sqrt(u.width*u.width+u.height*u.height);var l=2*t+"px";o.style.width=l,o.style.height=l,o.style.marginLeft=-t+r+"px",o.style.marginTop=-t+d+"px",o.className="ui-ripple-ink__ink",n.appendChild(o),setTimeout((function(){i["a"].add(o,"is-held")}),0);var p="mousedown"===e?"mouseup":"touchend",s=function e(){document.removeEventListener(p,e),i["a"].add(o,"is-done");var a=650;setTimeout((function(){n.removeChild(o),0===n.children.length&&n.removeAttribute("data-ui-event")}),a)};document.addEventListener(p,s)}}},d=function(e){0===e.button&&r(e.type,e)},o=function(e){if(e.changedTouches)for(var a=0;ad)g(r,n=a[d++])&&(~i(o,n)||o.push(n));return o}},e7ab:function(e){e.exports=JSON.parse('[{"code":"Adlm","name":"Adlam","numeric":"166","pva":"Adlam","date":"2016-12-05"},{"code":"Afak","name":"Afaka","numeric":"439","pva":null,"date":"2010-12-21"},{"code":"Aghb","name":"Caucasian Albanian","numeric":"239","pva":"Caucasian_Albanian","date":"2014-11-15"},{"code":"Ahom","name":"Ahom, Tai Ahom","numeric":"338","pva":"Ahom","date":"2015-07-07"},{"code":"Arab","name":"Arabic","numeric":"160","pva":"Arabic","date":"2004-05-01"},{"code":"Aran","name":"Arabic (Nastaliq variant)","numeric":"161","pva":null,"date":"2014-11-15"},{"code":"Armi","name":"Imperial Aramaic","numeric":"124","pva":"Imperial_Aramaic","date":"2009-06-01"},{"code":"Armn","name":"Armenian","numeric":"230","pva":"Armenian","date":"2004-05-01"},{"code":"Avst","name":"Avestan","numeric":"134","pva":"Avestan","date":"2009-06-01"},{"code":"Bali","name":"Balinese","numeric":"360","pva":"Balinese","date":"2006-10-10"},{"code":"Bamu","name":"Bamum","numeric":"435","pva":"Bamum","date":"2009-06-01"},{"code":"Bass","name":"Bassa Vah","numeric":"259","pva":"Bassa_Vah","date":"2014-11-15"},{"code":"Batk","name":"Batak","numeric":"365","pva":"Batak","date":"2010-07-23"},{"code":"Beng","name":"Bengali (Bangla)","numeric":"325","pva":"Bengali","date":"2016-12-05"},{"code":"Bhks","name":"Bhaiksuki","numeric":"334","pva":"Bhaiksuki","date":"2016-12-05"},{"code":"Blis","name":"Blissymbols","numeric":"550","pva":null,"date":"2004-05-01"},{"code":"Bopo","name":"Bopomofo","numeric":"285","pva":"Bopomofo","date":"2004-05-01"},{"code":"Brah","name":"Brahmi","numeric":"300","pva":"Brahmi","date":"2010-07-23"},{"code":"Brai","name":"Braille","numeric":"570","pva":"Braille","date":"2004-05-01"},{"code":"Bugi","name":"Buginese","numeric":"367","pva":"Buginese","date":"2006-06-21"},{"code":"Buhd","name":"Buhid","numeric":"372","pva":"Buhid","date":"2004-05-01"},{"code":"Cakm","name":"Chakma","numeric":"349","pva":"Chakma","date":"2012-02-06"},{"code":"Cans","name":"Unified Canadian Aboriginal Syllabics","numeric":"440","pva":"Canadian_Aboriginal","date":"2004-05-29"},{"code":"Cari","name":"Carian","numeric":"201","pva":"Carian","date":"2007-07-02"},{"code":"Cham","name":"Cham","numeric":"358","pva":"Cham","date":"2009-11-11"},{"code":"Cher","name":"Cherokee","numeric":"445","pva":"Cherokee","date":"2004-05-01"},{"code":"Cirt","name":"Cirth","numeric":"291","pva":null,"date":"2004-05-01"},{"code":"Copt","name":"Coptic","numeric":"204","pva":"Coptic","date":"2006-06-21"},{"code":"Cpmn","name":"Cypro-Minoan","numeric":"402","pva":null,"date":"2017-07-26"},{"code":"Cprt","name":"Cypriot syllabary","numeric":"403","pva":"Cypriot","date":"2017-07-26"},{"code":"Cyrl","name":"Cyrillic","numeric":"220","pva":"Cyrillic","date":"2004-05-01"},{"code":"Cyrs","name":"Cyrillic (Old Church Slavonic variant)","numeric":"221","pva":null,"date":"2004-05-01"},{"code":"Deva","name":"Devanagari (Nagari)","numeric":"315","pva":"Devanagari","date":"2004-05-01"},{"code":"Dogr","name":"Dogra","numeric":"328","pva":"Dogra","date":"2016-12-05"},{"code":"Dsrt","name":"Deseret (Mormon)","numeric":"250","pva":"Deseret","date":"2004-05-01"},{"code":"Dupl","name":"Duployan shorthand, Duployan stenography","numeric":"755","pva":"Duployan","date":"2014-11-15"},{"code":"Egyd","name":"Egyptian demotic","numeric":"070","pva":null,"date":"2004-05-01"},{"code":"Egyh","name":"Egyptian hieratic","numeric":"060","pva":null,"date":"2004-05-01"},{"code":"Egyp","name":"Egyptian hieroglyphs","numeric":"050","pva":"Egyptian_Hieroglyphs","date":"2009-06-01"},{"code":"Elba","name":"Elbasan","numeric":"226","pva":"Elbasan","date":"2014-11-15"},{"code":"Elym","name":"Elymaic","numeric":"128","pva":"Elymaic","date":"2018-08-26"},{"code":"Ethi","name":"Ethiopic (Geʻez)","numeric":"430","pva":"Ethiopic","date":"2004-10-25"},{"code":"Geok","name":"Khutsuri (Asomtavruli and Nuskhuri)","numeric":"241","pva":"Georgian","date":"2012-10-16"},{"code":"Geor","name":"Georgian (Mkhedruli and Mtavruli)","numeric":"240","pva":"Georgian","date":"2016-12-05"},{"code":"Glag","name":"Glagolitic","numeric":"225","pva":"Glagolitic","date":"2006-06-21"},{"code":"Gong","name":"Gunjala Gondi","numeric":"312","pva":"Gunjala_Gondi","date":"2016-12-05"},{"code":"Gonm","name":"Masaram Gondi","numeric":"313","pva":"Masaram_Gondi","date":"2017-07-26"},{"code":"Goth","name":"Gothic","numeric":"206","pva":"Gothic","date":"2004-05-01"},{"code":"Gran","name":"Grantha","numeric":"343","pva":"Grantha","date":"2014-11-15"},{"code":"Grek","name":"Greek","numeric":"200","pva":"Greek","date":"2004-05-01"},{"code":"Gujr","name":"Gujarati","numeric":"320","pva":"Gujarati","date":"2004-05-01"},{"code":"Guru","name":"Gurmukhi","numeric":"310","pva":"Gurmukhi","date":"2004-05-01"},{"code":"Hanb","name":"Han with Bopomofo (alias for Han + Bopomofo)","numeric":"503","pva":null,"date":"2016-01-19"},{"code":"Hang","name":"Hangul (Hangŭl, Hangeul)","numeric":"286","pva":"Hangul","date":"2004-05-29"},{"code":"Hani","name":"Han (Hanzi, Kanji, Hanja)","numeric":"500","pva":"Han","date":"2009-02-23"},{"code":"Hano","name":"Hanunoo (Hanunóo)","numeric":"371","pva":"Hanunoo","date":"2004-05-29"},{"code":"Hans","name":"Han (Simplified variant)","numeric":"501","pva":null,"date":"2004-05-29"},{"code":"Hant","name":"Han (Traditional variant)","numeric":"502","pva":null,"date":"2004-05-29"},{"code":"Hatr","name":"Hatran","numeric":"127","pva":"Hatran","date":"2015-07-07"},{"code":"Hebr","name":"Hebrew","numeric":"125","pva":"Hebrew","date":"2004-05-01"},{"code":"Hira","name":"Hiragana","numeric":"410","pva":"Hiragana","date":"2004-05-01"},{"code":"Hluw","name":"Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)","numeric":"080","pva":"Anatolian_Hieroglyphs","date":"2015-07-07"},{"code":"Hmng","name":"Pahawh Hmong","numeric":"450","pva":"Pahawh_Hmong","date":"2014-11-15"},{"code":"Hmnp","name":"Nyiakeng Puachue Hmong","numeric":"451","pva":"Nyiakeng_Puachue_Hmong","date":"2017-07-26"},{"code":"Hrkt","name":"Japanese syllabaries (alias for Hiragana + Katakana)","numeric":"412","pva":"Katakana_Or_Hiragana","date":"2011-06-21"},{"code":"Hung","name":"Old Hungarian (Hungarian Runic)","numeric":"176","pva":"Old_Hungarian","date":"2015-07-07"},{"code":"Inds","name":"Indus (Harappan)","numeric":"610","pva":null,"date":"2004-05-01"},{"code":"Ital","name":"Old Italic (Etruscan, Oscan, etc.)","numeric":"210","pva":"Old_Italic","date":"2004-05-29"},{"code":"Jamo","name":"Jamo (alias for Jamo subset of Hangul)","numeric":"284","pva":null,"date":"2016-01-19"},{"code":"Java","name":"Javanese","numeric":"361","pva":"Javanese","date":"2009-06-01"},{"code":"Jpan","name":"Japanese (alias for Han + Hiragana + Katakana)","numeric":"413","pva":null,"date":"2006-06-21"},{"code":"Jurc","name":"Jurchen","numeric":"510","pva":null,"date":"2010-12-21"},{"code":"Kali","name":"Kayah Li","numeric":"357","pva":"Kayah_Li","date":"2007-07-02"},{"code":"Kana","name":"Katakana","numeric":"411","pva":"Katakana","date":"2004-05-01"},{"code":"Khar","name":"Kharoshthi","numeric":"305","pva":"Kharoshthi","date":"2006-06-21"},{"code":"Khmr","name":"Khmer","numeric":"355","pva":"Khmer","date":"2004-05-29"},{"code":"Khoj","name":"Khojki","numeric":"322","pva":"Khojki","date":"2014-11-15"},{"code":"Kitl","name":"Khitan large script","numeric":"505","pva":null,"date":"2015-07-15"},{"code":"Kits","name":"Khitan small script","numeric":"288","pva":null,"date":"2015-07-15"},{"code":"Knda","name":"Kannada","numeric":"345","pva":"Kannada","date":"2004-05-29"},{"code":"Kore","name":"Korean (alias for Hangul + Han)","numeric":"287","pva":null,"date":"2007-06-13"},{"code":"Kpel","name":"Kpelle","numeric":"436","pva":null,"date":"2010-03-26"},{"code":"Kthi","name":"Kaithi","numeric":"317","pva":"Kaithi","date":"2009-06-01"},{"code":"Lana","name":"Tai Tham (Lanna)","numeric":"351","pva":"Tai_Tham","date":"2009-06-01"},{"code":"Laoo","name":"Lao","numeric":"356","pva":"Lao","date":"2004-05-01"},{"code":"Latf","name":"Latin (Fraktur variant)","numeric":"217","pva":null,"date":"2004-05-01"},{"code":"Latg","name":"Latin (Gaelic variant)","numeric":"216","pva":null,"date":"2004-05-01"},{"code":"Latn","name":"Latin","numeric":"215","pva":"Latin","date":"2004-05-01"},{"code":"Leke","name":"Leke","numeric":"364","pva":null,"date":"2015-07-07"},{"code":"Lepc","name":"Lepcha (Róng)","numeric":"335","pva":"Lepcha","date":"2007-07-02"},{"code":"Limb","name":"Limbu","numeric":"336","pva":"Limbu","date":"2004-05-29"},{"code":"Lina","name":"Linear A","numeric":"400","pva":"Linear_A","date":"2014-11-15"},{"code":"Linb","name":"Linear B","numeric":"401","pva":"Linear_B","date":"2004-05-29"},{"code":"Lisu","name":"Lisu (Fraser)","numeric":"399","pva":"Lisu","date":"2009-06-01"},{"code":"Loma","name":"Loma","numeric":"437","pva":null,"date":"2010-03-26"},{"code":"Lyci","name":"Lycian","numeric":"202","pva":"Lycian","date":"2007-07-02"},{"code":"Lydi","name":"Lydian","numeric":"116","pva":"Lydian","date":"2007-07-02"},{"code":"Mahj","name":"Mahajani","numeric":"314","pva":"Mahajani","date":"2014-11-15"},{"code":"Maka","name":"Makasar","numeric":"366","pva":"Makasar","date":"2016-12-05"},{"code":"Mand","name":"Mandaic, Mandaean","numeric":"140","pva":"Mandaic","date":"2010-07-23"},{"code":"Mani","name":"Manichaean","numeric":"139","pva":"Manichaean","date":"2014-11-15"},{"code":"Marc","name":"Marchen","numeric":"332","pva":"Marchen","date":"2016-12-05"},{"code":"Maya","name":"Mayan hieroglyphs","numeric":"090","pva":null,"date":"2004-05-01"},{"code":"Medf","name":"Medefaidrin (Oberi Okaime, Oberi Ɔkaimɛ)","numeric":"265","pva":"Medefaidrin","date":"2016-12-05"},{"code":"Mend","name":"Mende Kikakui","numeric":"438","pva":"Mende_Kikakui","date":"2014-11-15"},{"code":"Merc","name":"Meroitic Cursive","numeric":"101","pva":"Meroitic_Cursive","date":"2012-02-06"},{"code":"Mero","name":"Meroitic Hieroglyphs","numeric":"100","pva":"Meroitic_Hieroglyphs","date":"2012-02-06"},{"code":"Mlym","name":"Malayalam","numeric":"347","pva":"Malayalam","date":"2004-05-01"},{"code":"Modi","name":"Modi, Moḍī","numeric":"324","pva":"Modi","date":"2014-11-15"},{"code":"Mong","name":"Mongolian","numeric":"145","pva":"Mongolian","date":"2004-05-01"},{"code":"Moon","name":"Moon (Moon code, Moon script, Moon type)","numeric":"218","pva":null,"date":"2006-12-11"},{"code":"Mroo","name":"Mro, Mru","numeric":"264","pva":"Mro","date":"2016-12-05"},{"code":"Mtei","name":"Meitei Mayek (Meithei, Meetei)","numeric":"337","pva":"Meetei_Mayek","date":"2009-06-01"},{"code":"Mult","name":"Multani","numeric":"323","pva":"Multani","date":"2015-07-07"},{"code":"Mymr","name":"Myanmar (Burmese)","numeric":"350","pva":"Myanmar","date":"2004-05-01"},{"code":"Nand","name":"Nandinagari","numeric":"311","pva":"Nandinagari","date":"2018-08-26"},{"code":"Narb","name":"Old North Arabian (Ancient North Arabian)","numeric":"106","pva":"Old_North_Arabian","date":"2014-11-15"},{"code":"Nbat","name":"Nabataean","numeric":"159","pva":"Nabataean","date":"2014-11-15"},{"code":"Newa","name":"Newa, Newar, Newari, Nepāla lipi","numeric":"333","pva":"Newa","date":"2016-12-05"},{"code":"Nkdb","name":"Naxi Dongba (na²¹ɕi³³ to³³ba²¹, Nakhi Tomba)","numeric":"085","pva":null,"date":"2017-07-26"},{"code":"Nkgb","name":"Naxi Geba (na²¹ɕi³³ gʌ²¹ba²¹, \'Na-\'Khi ²Ggŏ-¹baw, Nakhi Geba)","numeric":"420","pva":null,"date":"2017-07-26"},{"code":"Nkoo","name":"N’Ko","numeric":"165","pva":"Nko","date":"2006-10-10"},{"code":"Nshu","name":"Nüshu","numeric":"499","pva":"Nushu","date":"2017-07-26"},{"code":"Ogam","name":"Ogham","numeric":"212","pva":"Ogham","date":"2004-05-01"},{"code":"Olck","name":"Ol Chiki (Ol Cemet’, Ol, Santali)","numeric":"261","pva":"Ol_Chiki","date":"2007-07-02"},{"code":"Orkh","name":"Old Turkic, Orkhon Runic","numeric":"175","pva":"Old_Turkic","date":"2009-06-01"},{"code":"Orya","name":"Oriya (Odia)","numeric":"327","pva":"Oriya","date":"2016-12-05"},{"code":"Osge","name":"Osage","numeric":"219","pva":"Osage","date":"2016-12-05"},{"code":"Osma","name":"Osmanya","numeric":"260","pva":"Osmanya","date":"2004-05-01"},{"code":"Palm","name":"Palmyrene","numeric":"126","pva":"Palmyrene","date":"2014-11-15"},{"code":"Pauc","name":"Pau Cin Hau","numeric":"263","pva":"Pau_Cin_Hau","date":"2014-11-15"},{"code":"Perm","name":"Old Permic","numeric":"227","pva":"Old_Permic","date":"2014-11-15"},{"code":"Phag","name":"Phags-pa","numeric":"331","pva":"Phags_Pa","date":"2006-10-10"},{"code":"Phli","name":"Inscriptional Pahlavi","numeric":"131","pva":"Inscriptional_Pahlavi","date":"2009-06-01"},{"code":"Phlp","name":"Psalter Pahlavi","numeric":"132","pva":"Psalter_Pahlavi","date":"2014-11-15"},{"code":"Phlv","name":"Book Pahlavi","numeric":"133","pva":null,"date":"2007-07-15"},{"code":"Phnx","name":"Phoenician","numeric":"115","pva":"Phoenician","date":"2006-10-10"},{"code":"Plrd","name":"Miao (Pollard)","numeric":"282","pva":"Miao","date":"2012-02-06"},{"code":"Piqd","name":"Klingon (KLI pIqaD)","numeric":"293","pva":null,"date":"2015-12-16"},{"code":"Prti","name":"Inscriptional Parthian","numeric":"130","pva":"Inscriptional_Parthian","date":"2009-06-01"},{"code":"Qaaa","name":"Reserved for private use (start)","numeric":"900","pva":null,"date":"2004-05-29"},{"code":"Qabx","name":"Reserved for private use (end)","numeric":"949","pva":null,"date":"2004-05-29"},{"code":"Rjng","name":"Rejang (Redjang, Kaganga)","numeric":"363","pva":"Rejang","date":"2009-02-23"},{"code":"Rohg","name":"Hanifi Rohingya","numeric":"167","pva":"Hanifi_Rohingya","date":"2017-11-21"},{"code":"Roro","name":"Rongorongo","numeric":"620","pva":null,"date":"2004-05-01"},{"code":"Runr","name":"Runic","numeric":"211","pva":"Runic","date":"2004-05-01"},{"code":"Samr","name":"Samaritan","numeric":"123","pva":"Samaritan","date":"2009-06-01"},{"code":"Sara","name":"Sarati","numeric":"292","pva":null,"date":"2004-05-29"},{"code":"Sarb","name":"Old South Arabian","numeric":"105","pva":"Old_South_Arabian","date":"2009-06-01"},{"code":"Saur","name":"Saurashtra","numeric":"344","pva":"Saurashtra","date":"2007-07-02"},{"code":"Sgnw","name":"SignWriting","numeric":"095","pva":"SignWriting","date":"2015-07-07"},{"code":"Shaw","name":"Shavian (Shaw)","numeric":"281","pva":"Shavian","date":"2004-05-01"},{"code":"Shrd","name":"Sharada, Śāradā","numeric":"319","pva":"Sharada","date":"2012-02-06"},{"code":"Shui","name":"Shuishu","numeric":"530","pva":null,"date":"2017-07-26"},{"code":"Sidd","name":"Siddham, Siddhaṃ, Siddhamātṛkā","numeric":"302","pva":"Siddham","date":"2014-11-15"},{"code":"Sind","name":"Khudawadi, Sindhi","numeric":"318","pva":"Khudawadi","date":"2014-11-15"},{"code":"Sinh","name":"Sinhala","numeric":"348","pva":"Sinhala","date":"2004-05-01"},{"code":"Sogd","name":"Sogdian","numeric":"141","pva":"Sogdian","date":"2017-11-21"},{"code":"Sogo","name":"Old Sogdian","numeric":"142","pva":"Old_Sogdian","date":"2017-11-21"},{"code":"Sora","name":"Sora Sompeng","numeric":"398","pva":"Sora_Sompeng","date":"2012-02-06"},{"code":"Soyo","name":"Soyombo","numeric":"329","pva":"Soyombo","date":"2017-07-26"},{"code":"Sund","name":"Sundanese","numeric":"362","pva":"Sundanese","date":"2007-07-02"},{"code":"Sylo","name":"Syloti Nagri","numeric":"316","pva":"Syloti_Nagri","date":"2006-06-21"},{"code":"Syrc","name":"Syriac","numeric":"135","pva":"Syriac","date":"2004-05-01"},{"code":"Syre","name":"Syriac (Estrangelo variant)","numeric":"138","pva":null,"date":"2004-05-01"},{"code":"Syrj","name":"Syriac (Western variant)","numeric":"137","pva":null,"date":"2004-05-01"},{"code":"Syrn","name":"Syriac (Eastern variant)","numeric":"136","pva":null,"date":"2004-05-01"},{"code":"Tagb","name":"Tagbanwa","numeric":"373","pva":"Tagbanwa","date":"2004-05-01"},{"code":"Takr","name":"Takri, Ṭākrī, Ṭāṅkrī","numeric":"321","pva":"Takri","date":"2012-02-06"},{"code":"Tale","name":"Tai Le","numeric":"353","pva":"Tai_Le","date":"2004-10-25"},{"code":"Talu","name":"New Tai Lue","numeric":"354","pva":"New_Tai_Lue","date":"2006-06-21"},{"code":"Taml","name":"Tamil","numeric":"346","pva":"Tamil","date":"2004-05-01"},{"code":"Tang","name":"Tangut","numeric":"520","pva":"Tangut","date":"2016-12-05"},{"code":"Tavt","name":"Tai Viet","numeric":"359","pva":"Tai_Viet","date":"2009-06-01"},{"code":"Telu","name":"Telugu","numeric":"340","pva":"Telugu","date":"2004-05-01"},{"code":"Teng","name":"Tengwar","numeric":"290","pva":null,"date":"2004-05-01"},{"code":"Tfng","name":"Tifinagh (Berber)","numeric":"120","pva":"Tifinagh","date":"2006-06-21"},{"code":"Tglg","name":"Tagalog (Baybayin, Alibata)","numeric":"370","pva":"Tagalog","date":"2009-02-23"},{"code":"Thaa","name":"Thaana","numeric":"170","pva":"Thaana","date":"2004-05-01"},{"code":"Thai","name":"Thai","numeric":"352","pva":"Thai","date":"2004-05-01"},{"code":"Tibt","name":"Tibetan","numeric":"330","pva":"Tibetan","date":"2004-05-01"},{"code":"Tirh","name":"Tirhuta","numeric":"326","pva":"Tirhuta","date":"2014-11-15"},{"code":"Ugar","name":"Ugaritic","numeric":"040","pva":"Ugaritic","date":"2004-05-01"},{"code":"Vaii","name":"Vai","numeric":"470","pva":"Vai","date":"2007-07-02"},{"code":"Visp","name":"Visible Speech","numeric":"280","pva":null,"date":"2004-05-01"},{"code":"Wara","name":"Warang Citi (Varang Kshiti)","numeric":"262","pva":"Warang_Citi","date":"2014-11-15"},{"code":"Wcho","name":"Wancho","numeric":"283","pva":"Wancho","date":"2017-07-26"},{"code":"Wole","name":"Woleai","numeric":"480","pva":null,"date":"2010-12-21"},{"code":"Xpeo","name":"Old Persian","numeric":"030","pva":"Old_Persian","date":"2006-06-21"},{"code":"Xsux","name":"Cuneiform, Sumero-Akkadian","numeric":"020","pva":"Cuneiform","date":"2006-10-10"},{"code":"Yiii","name":"Yi","numeric":"460","pva":"Yi","date":"2004-05-01"},{"code":"Zanb","name":"Zanabazar Square (Zanabazarin Dörböljin Useg, Xewtee Dörböljin Bicig, Horizontal Square Script)","numeric":"339","pva":"Zanabazar_Square","date":"2017-07-26"},{"code":"Zinh","name":"Code for inherited script","numeric":"994","pva":"Inherited","date":"2009-02-23"},{"code":"Zmth","name":"Mathematical notation","numeric":"995","pva":null,"date":"2007-11-26"},{"code":"Zsye","name":"Symbols (Emoji variant)","numeric":"993","pva":null,"date":"2015-12-16"},{"code":"Zsym","name":"Symbols","numeric":"996","pva":null,"date":"2007-11-26"},{"code":"Zxxx","name":"Code for unwritten documents","numeric":"997","pva":null,"date":"2011-06-21"},{"code":"Zyyy","name":"Code for undetermined script","numeric":"998","pva":"Common","date":"2004-05-29"},{"code":"Zzzz","name":"Code for uncoded script","numeric":"999","pva":"Unknown","date":"2006-10-10"}]')},e83a:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"ui-select",class:e.classes},[e.name?n("input",{staticClass:"ui-select__hidden-input",attrs:{type:"hidden",name:e.name},domProps:{value:e.submittedValue}}):e._e(),e.icon||e.$slots.icon?n("div",{staticClass:"ui-select__icon-wrapper"},[e._t("icon",[n("ui-icon",{attrs:{icon:e.icon}})])],2):e._e(),n("div",{staticClass:"ui-select__content"},[n("div",{ref:"label",staticClass:"ui-select__label",attrs:{tabindex:e.disabled?null:e.tabindex||"0"},on:{focus:e.onFocus,keydown:[function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"enter",13,a.key,"Enter")?null:(a.preventDefault(),e.openDropdown(a))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"space",32,a.key,[" ","Spacebar"])?null:(a.preventDefault(),e.openDropdown(a))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"tab",9,a.key,"Tab")?null:e.onBlur(a)}]}},[e.label||e.$slots.default?n("div",{staticClass:"ui-select__label-text",class:e.labelClasses},[e._t("default",[e._v(e._s(e.label))])],2):e._e(),n("div",{staticClass:"ui-select__display"},[n("div",{staticClass:"ui-select__display-value",class:{"is-placeholder":!e.hasDisplayText}},[e._v("\n "+e._s(e.hasDisplayText?e.displayText:e.hasFloatingLabel&&e.isLabelInline?null:e.placeholder)+"\n ")]),n("ui-icon",{staticClass:"ui-select__dropdown-button"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M6.984 9.984h10.03L12 15z"}})])])],1),n("ui-popover",{ref:"dropdown",staticClass:"ui-select__dropdown",attrs:{"close-on-scroll":!1,"constrain-to-scroll-parent":!1,disabled:e.disabled},on:{close:e.onClose,open:e.onOpen,reveal:e.onReveal}},[n("div",{ref:"dropdownContent",staticClass:"ui-select__dropdown-content",attrs:{tabindex:"-1"},on:{keydown:[function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"down",40,a.key,["Down","ArrowDown"])?null:(a.preventDefault(),e.highlightOption(e.highlightedIndex+1))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"enter",13,a.key,"Enter")?null:(a.preventDefault(),a.stopPropagation(),e.selectHighlighted(e.highlightedIndex,a))},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"esc",27,a.key,["Esc","Escape"])?null:(a.preventDefault(),e.closeDropdown())},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"tab",9,a.key,"Tab")?null:e.onBlur(a)},function(a){return!a.type.indexOf("key")&&e._k(a.keyCode,"up",38,a.key,["Up","ArrowUp"])?null:(a.preventDefault(),e.highlightOption(e.highlightedIndex-1))}]}},[e.hasSearch?n("div",{staticClass:"ui-select__search",on:{click:function(e){e.stopPropagation()},keydown:function(a){if(!a.type.indexOf("key")&&e._k(a.keyCode,"space",32,a.key,[" ","Spacebar"]))return null;a.stopPropagation()}}},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"searchInput",staticClass:"ui-select__search-input",attrs:{autocomplete:"off",type:"text",placeholder:e.searchPlaceholder},domProps:{value:e.query},on:{input:function(a){a.target.composing||(e.query=a.target.value)}}}),n("ui-icon",{staticClass:"ui-select__search-icon"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M9.516 14.016c2.484 0 4.5-2.016 4.5-4.5s-2.016-4.5-4.5-4.5-4.5 2.016-4.5 4.5 2.016 4.5 4.5 4.5zm6 0l4.97 4.97-1.5 1.5-4.97-4.97v-.797l-.28-.282c-1.126.984-2.626 1.547-4.22 1.547-3.61 0-6.516-2.86-6.516-6.47S5.906 3 9.516 3s6.47 2.906 6.47 6.516c0 1.594-.564 3.094-1.548 4.22l.28.28h.798z"}})])]),e.loading?n("ui-progress-circular",{staticClass:"ui-select__search-progress",attrs:{size:20,stroke:4}}):e._e()],1):e._e(),n("ul",{ref:"optionsList",staticClass:"ui-select__options"},[e._l(e.filteredOptions,(function(a,g){return n("ui-select-option",{key:g,ref:"options",refInFor:!0,attrs:{highlighted:e.highlightedIndex===g,keys:e.keys,multiple:e.multiple,option:a,selected:e.isOptionSelected(a),type:e.type},nativeOn:{click:function(n){return n.stopPropagation(),e.selectOption(a,g)},mouseover:function(a){return a.stopPropagation(),e.highlightOption(g,{autoScroll:!1})}}},[e._t("option",null,{highlighted:e.highlightedIndex===g,index:g,option:a,selected:e.isOptionSelected(a)})],2)})),n("div",{directives:[{name:"show",rawName:"v-show",value:e.hasNoResults,expression:"hasNoResults"}],staticClass:"ui-select__no-results"},[e._t("no-results",[e._v("No results found")])],2)],2)])])],1),e.hasFeedback?n("div",{staticClass:"ui-select__feedback"},[e.showError?n("div",{staticClass:"ui-select__feedback-text"},[e._t("error",[e._v(e._s(e.error))])],2):e.showHelp?n("div",{staticClass:"ui-select__feedback-text"},[e._t("help",[e._v(e._s(e.help))])],2):e._e()]):e._e()])])},t=[],i=(n("7f7f"),n("ac6a"),n("55dd"),n("c5f6"),n("d235")),u=n("a0fd"),r=n("1580"),d=n("e55e"),o=n("bb03"),l=n("3f33"),p=n("cb42"),s=n("2e39"),c=n.n(s),b={name:"ui-select",props:{name:String,tabindex:[String,Number],value:{type:[String,Number,Object,Array],required:!0},options:{type:Array,default:function(){return[]}},placeholder:String,icon:String,iconPosition:{type:String,default:"left"},label:String,floatingLabel:{type:Boolean,default:!1},type:{type:String,default:"basic"},multiple:{type:Boolean,default:!1},multipleDelimiter:{type:String,default:", "},hasSearch:{type:Boolean,default:!1},searchPlaceholder:{type:String,default:"Search"},filter:Function,disableFilter:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},noResults:{type:Boolean,default:!1},keys:{type:Object,default:function(){return{class:"class",label:"label",value:"value",image:"image"}}},invalid:{type:Boolean,default:!1},help:String,error:String,disabled:{type:Boolean,default:!1}},data:function(){return{query:"",isActive:!1,isTouched:!1,selectedIndex:-1,highlightedIndex:-1,initialValue:JSON.stringify(this.value)}},computed:{classes:function(){return["ui-select--type-".concat(this.type),"ui-select--icon-position-".concat(this.iconPosition),{"is-active":this.isActive},{"is-invalid":this.invalid},{"is-touched":this.isTouched},{"is-disabled":this.disabled},{"is-multiple":this.multiple},{"has-label":this.hasLabel},{"has-floating-label":this.hasFloatingLabel}]},labelClasses:function(){return{"is-inline":this.hasFloatingLabel&&this.isLabelInline,"is-floating":this.hasFloatingLabel&&!this.isLabelInline}},hasLabel:function(){return Boolean(this.label)||Boolean(this.$slots.default)},hasFloatingLabel:function(){return this.hasLabel&&this.floatingLabel},isLabelInline:function(){return 0===this.value.length&&!this.isActive},hasFeedback:function(){return this.showError||this.showHelp},showError:function(){return this.invalid&&(Boolean(this.error)||Boolean(this.$slots.error))},showHelp:function(){return Boolean(this.help)||Boolean(this.$slots.help)},filteredOptions:function(){var e=this;if(this.disableFilter)return this.options;var a=this.options.filter((function(a){return e.filter?e.filter(a,e.query,e.defaultFilter):e.defaultFilter(a,e.query)}));return this.sort&&a.sort(this.sort.bind(this)),a},displayText:function(){var e=this;return this.multiple?this.value.length>0?this.value.map((function(a){return a[e.keys.label]||a})).join(this.multipleDelimiter):"":this.value?this.value[this.keys.label]||this.value:""},hasDisplayText:function(){return Boolean(this.displayText.length)},hasNoResults:function(){return!this.loading&&0!==this.query.length&&(this.disableFilter?this.noResults:0===this.filteredOptions.length)},submittedValue:function(){var e=this;if(this.name&&this.value)return Array.isArray(this.value)?this.value.map((function(a){return a[e.keys.value]||a})).join(","):this.value[this.keys.value]||this.value}},watch:{filteredOptions:function(){this.highlightedIndex=0,Object(p["a"])(this.$refs.optionsList)},query:function(){this.$emit("query-change",this.query)},isActive:function(e){e?this.addExternalClickListener(this.$el,this.onExternalClick):this.removeExternalClickListener()}},created:function(){this.value&&""!==this.value||this.setValue(null)},methods:{setValue:function(e){e=e||(this.multiple?[]:""),this.$emit("input",e),this.$emit("change",e)},highlightOption:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{autoScroll:!0};if(this.highlightedIndex!==e&&0!==this.$refs.options.length){var n=0,g=this.$refs.options.length-1;eg&&(e=n),this.highlightedIndex=e,a.autoScroll&&this.scrollOptionIntoView(this.$refs.options[e].$el)}},selectHighlighted:function(e,a){this.$refs.options.length>0&&(a.preventDefault(),this.selectOption(this.$refs.options[e].option,e))},selectOption:function(e,a){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{autoClose:!0},g=this.multiple&&!this.isOptionSelected(e);this.multiple?this.updateOption(e,{select:g}):(this.setValue(e),this.selectedIndex=a),this.$emit("select",e,{selected:!this.multiple||g}),this.highlightedIndex=a,this.multiple||this.clearQuery(),!this.multiple&&n.autoClose&&this.closeDropdown()},isOptionSelected:function(e){return this.multiple?Object(l["b"])(this.value,e)>-1:Object(l["a"])(this.value,e)},updateOption:function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{select:!0},n=[],g=!1,t=Object(l["b"])(this.value,e);a.select&&t<0&&(n=this.value.concat(e),g=!0),!a.select&&t>-1&&(n=this.value.slice(0,t).concat(this.value.slice(t+1)),g=!0),g&&this.setValue(n)},defaultFilter:function(e,a){var n=e[this.keys.label]||e;return"string"===typeof n&&(n=n.toLowerCase()),c()(a.toLowerCase(),n)},clearSelection:function(){this.setValue(null)},clearQuery:function(){this.query=""},focus:function(){this.$refs.label.focus()},toggleDropdown:function(){this.$refs.dropdown.toggle()},openDropdown:function(){this.disabled||this.$refs.dropdown.open()},closeDropdown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{blurAfterClose:!1};this.$refs.dropdown.close(),this.isTouched||(this.isTouched=!0,this.$emit("touch")),e.blurAfterClose?this.isActive=!1:this.$refs.label.focus()},onFocus:function(e){this.isActive||(this.isActive=!0,this.$emit("focus",e))},onBlur:function(e){this.isActive=!1,this.$emit("blur",e),this.$refs.dropdown.isOpen()&&this.closeDropdown({blurAfterClose:!0})},onOpen:function(){var e=this;this.isActive=!0,this.$refs.dropdown.$el.style.width=this.$refs.label.getBoundingClientRect().width+"px",this.$nextTick((function(){e.scrollOptionIntoView(e.$refs.optionsList.querySelector(".is-selected"))})),this.$emit("dropdown-open")},onReveal:function(){this.$refs[this.hasSearch?"searchInput":"dropdownContent"].focus()},onClose:function(){this.highlightedIndex=this.multiple?-1:this.selectedIndex,this.$emit("dropdown-close")},onExternalClick:function(){this.$refs.dropdown.isOpen()?this.closeDropdown({blurAfterClose:!0}):this.isActive&&(this.isActive=!1)},scrollOptionIntoView:function(e){Object(p["b"])(e,{container:this.$refs.optionsList,marginTop:180})},reset:function(){this.setValue(JSON.parse(this.initialValue)),this.clearQuery(),this.resetTouched(),this.selectedIndex=-1,this.highlightedIndex=-1},resetTouched:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{touched:!1};this.isTouched=e.touched}},components:{UiIcon:i["a"],UiPopover:u["a"],UiProgressCircular:r["a"],UiSelectOption:d["a"]},mixins:[o["a"]]},y=b,S=(n("3126"),n("2877")),h=Object(S["a"])(y,g,t,!1,null,null,null);a["a"]=h.exports},e853:function(e,a,n){var g=n("d3f4"),t=n("1169"),i=n("2b4c")("species");e.exports=function(e){var a;return t(e)&&(a=e.constructor,"function"!=typeof a||a!==Array&&!t(a.prototype)||(a=void 0),g(a)&&(a=a[i],null===a&&(a=void 0))),void 0===a?Array:a}},ea0a:function(e,a,n){"use strict";var g=n("969d"),t=n.n(g);t.a},ebd6:function(e,a,n){var g=n("cb7c"),t=n("d8e8"),i=n("2b4c")("species");e.exports=function(e,a){var n,u=g(e).constructor;return void 0===u||void 0==(n=g(u)[i])?a:t(n)}},ebfd:function(e,a,n){var g=n("62a0")("meta"),t=n("f772"),i=n("07e3"),u=n("d9f6").f,r=0,d=Object.isExtensible||function(){return!0},o=!n("294c")((function(){return d(Object.preventExtensions({}))})),l=function(e){u(e,g,{value:{i:"O"+ ++r,w:{}}})},p=function(e,a){if(!t(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,g)){if(!d(e))return"F";if(!a)return"E";l(e)}return e[g].i},s=function(e,a){if(!i(e,g)){if(!d(e))return!0;if(!a)return!1;l(e)}return e[g].w},c=function(e){return o&&b.NEED&&d(e)&&!i(e,g)&&l(e),e},b=e.exports={KEY:g,NEED:!1,fastKey:p,getWeak:s,onFreeze:c}},ecb1:function(e,a,n){"use strict";var g=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{class:["vc-sketch",e.disableAlpha?"vc-sketch__disable-alpha":""],attrs:{role:"application","aria-label":"Sketch color picker"}},[n("div",{staticClass:"vc-sketch-saturation-wrap"},[n("saturation",{on:{change:e.childChange},model:{value:e.colors,callback:function(a){e.colors=a},expression:"colors"}})],1),n("div",{staticClass:"vc-sketch-controls"},[n("div",{staticClass:"vc-sketch-sliders"},[n("div",{staticClass:"vc-sketch-hue-wrap"},[n("hue",{on:{change:e.childChange},model:{value:e.colors,callback:function(a){e.colors=a},expression:"colors"}})],1),e.disableAlpha?e._e():n("div",{staticClass:"vc-sketch-alpha-wrap"},[n("alpha",{on:{change:e.childChange},model:{value:e.colors,callback:function(a){e.colors=a},expression:"colors"}})],1)]),n("div",{staticClass:"vc-sketch-color-wrap"},[n("div",{staticClass:"vc-sketch-active-color",style:{background:e.activeColor},attrs:{"aria-label":"Current color is "+e.activeColor}}),n("checkboard")],1)]),e.disableFields?e._e():n("div",{staticClass:"vc-sketch-field"},[n("div",{staticClass:"vc-sketch-field--double"},[n("ed-in",{attrs:{label:"hex",value:e.hex},on:{change:e.inputChange}})],1),n("div",{staticClass:"vc-sketch-field--single"},[n("ed-in",{attrs:{label:"r",value:e.colors.rgba.r},on:{change:e.inputChange}})],1),n("div",{staticClass:"vc-sketch-field--single"},[n("ed-in",{attrs:{label:"g",value:e.colors.rgba.g},on:{change:e.inputChange}})],1),n("div",{staticClass:"vc-sketch-field--single"},[n("ed-in",{attrs:{label:"b",value:e.colors.rgba.b},on:{change:e.inputChange}})],1),e.disableAlpha?e._e():n("div",{staticClass:"vc-sketch-field--single"},[n("ed-in",{attrs:{label:"a",value:e.colors.a,"arrow-offset":.01,max:1},on:{change:e.inputChange}})],1)]),n("div",{staticClass:"vc-sketch-presets",attrs:{role:"group","aria-label":"A color preset, pick one to set as current color"}},[e._l(e.presetColors,(function(a){return[e.isTransparent(a)?n("div",{key:a,staticClass:"vc-sketch-presets-color",attrs:{"aria-label":"Color:"+a},on:{click:function(n){return e.handlePreset(a)}}},[n("checkboard")],1):n("div",{key:a,staticClass:"vc-sketch-presets-color",style:{background:a},attrs:{"aria-label":"Color:"+a},on:{click:function(n){return e.handlePreset(a)}}})]}))],2)])},t=[],i=(n("a481"),n("66cb")),u=n.n(i);function r(e,a){var n,g=e&&e.a;n=e&&e.hsl?u()(e.hsl):e&&e.hex&&e.hex.length>0?u()(e.hex):e&&e.hsv?u()(e.hsv):e&&e.rgba?u()(e.rgba):e&&e.rgb?u()(e.rgb):u()(e),!n||void 0!==n._a&&null!==n._a||n.setAlpha(g||1);var t=n.toHsl(),i=n.toHsv();return 0===t.s&&(i.h=t.h=e.h||e.hsl&&e.hsl.h||a||0),{hsl:t,hex:n.toHexString().toUpperCase(),hex8:n.toHex8String().toUpperCase(),rgba:n.toRgb(),hsv:i,oldHue:e.h||a||t.h,source:e.source,a:e.a||n.getAlpha()}}var d={props:["value"],data(){return{val:r(this.value)}},computed:{colors:{get(){return this.val},set(e){this.val=e,this.$emit("input",e)}}},watch:{value(e){this.val=r(e)}},methods:{colorChange(e,a){this.oldHue=this.colors.hsl.h,this.colors=r(e,a||this.oldHue)},isValidHex(e){return u()(e).isValid()},simpleCheckForValidColor(e){for(var a=["r","g","b","a","h","s","l","v"],n=0,g=0,t=0;te.toUpperCase())},isTransparent(e){return 0===u()(e).getAlpha()}}},o=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"vc-editable-input"},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.val,expression:"val"}],ref:"input",staticClass:"vc-input__input",attrs:{"aria-labelledby":e.labelId},domProps:{value:e.val},on:{keydown:e.handleKeyDown,input:[function(a){a.target.composing||(e.val=a.target.value)},e.update]}}),n("span",{staticClass:"vc-input__label",attrs:{for:e.label,id:e.labelId}},[e._v(e._s(e.labelSpanText))]),n("span",{staticClass:"vc-input__desc"},[e._v(e._s(e.desc))])])},l=[],p=(n("6b54"),n("c5f6"),{name:"editableInput",props:{label:String,labelText:String,desc:String,value:[String,Number],max:Number,min:Number,arrowOffset:{type:Number,default:1}},computed:{val:{get:function(){return this.value},set:function(e){if(!(void 0!==this.max&&+e>this.max))return e;this.$refs.input.value=this.max}},labelId:function(){return"input__label__".concat(this.label,"__").concat(Math.random().toString().slice(2,5))},labelSpanText:function(){return this.labelText||this.label}},methods:{update:function(e){this.handleChange(e.target.value)},handleChange:function(e){var a={};a[this.label]=e,void 0===a.hex&&void 0===a["#"]?this.$emit("change",a):e.length>5&&this.$emit("change",a)},handleKeyDown:function(e){var a=this.val,n=Number(a);if(n){var g=this.arrowOffset||1;38===e.keyCode&&(a=n+g,this.handleChange(a),e.preventDefault()),40===e.keyCode&&(a=n-g,this.handleChange(a),e.preventDefault())}}}}),s=p,c=(n("3b62"),n("2877")),b=Object(c["a"])(s,o,l,!1,null,null,null),y=b.exports,S=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{ref:"container",staticClass:"vc-saturation",style:{background:e.bgColor},on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[n("div",{staticClass:"vc-saturation--white"}),n("div",{staticClass:"vc-saturation--black"}),n("div",{staticClass:"vc-saturation-pointer",style:{top:e.pointerTop,left:e.pointerLeft}},[n("div",{staticClass:"vc-saturation-circle"})])])},h=[],A=n("53a5"),T=n.n(A),m=n("84a2"),f=n.n(m),D={name:"Saturation",props:{value:Object},computed:{colors:function(){return this.value},bgColor:function(){return"hsl(".concat(this.colors.hsv.h,", 100%, 50%)")},pointerTop:function(){return-100*this.colors.hsv.v+1+100+"%"},pointerLeft:function(){return 100*this.colors.hsv.s+"%"}},methods:{throttle:f()((function(e,a){e(a)}),20,{leading:!0,trailing:!1}),handleChange:function(e,a){!a&&e.preventDefault();var n=this.$refs.container,g=n.clientWidth,t=n.clientHeight,i=n.getBoundingClientRect().left+window.pageXOffset,u=n.getBoundingClientRect().top+window.pageYOffset,r=e.pageX||(e.touches?e.touches[0].pageX:0),d=e.pageY||(e.touches?e.touches[0].pageY:0),o=T()(r-i,0,g),l=T()(d-u,0,t),p=o/g,s=T()(-l/t+1,0,1);this.throttle(this.onChange,{h:this.colors.hsv.h,s:p,v:s,a:this.colors.hsv.a,source:"hsva"})},onChange:function(e){this.$emit("change",e)},handleMouseDown:function(e){window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp:function(e){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}},v=D,k=(n("35dd"),Object(c["a"])(v,S,h,!1,null,null,null)),w=k.exports,x=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{class:["vc-hue",e.directionClass]},[n("div",{ref:"container",staticClass:"vc-hue-container",attrs:{role:"slider","aria-valuenow":e.colors.hsl.h,"aria-valuemin":"0","aria-valuemax":"360"},on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[n("div",{staticClass:"vc-hue-pointer",style:{top:e.pointerTop,left:e.pointerLeft},attrs:{role:"presentation"}},[n("div",{staticClass:"vc-hue-picker"})])])])},M=[],j={name:"Hue",props:{value:Object,direction:{type:String,default:"horizontal"}},data:function(){return{oldHue:0,pullDirection:""}},computed:{colors:function(){var e=this.value.hsl.h;return 0!==e&&e-this.oldHue>0&&(this.pullDirection="right"),0!==e&&e-this.oldHue<0&&(this.pullDirection="left"),this.oldHue=e,this.value},directionClass:function(){return{"vc-hue--horizontal":"horizontal"===this.direction,"vc-hue--vertical":"vertical"===this.direction}},pointerTop:function(){return"vertical"===this.direction?0===this.colors.hsl.h&&"right"===this.pullDirection?0:-100*this.colors.hsl.h/360+100+"%":0},pointerLeft:function(){return"vertical"===this.direction?0:0===this.colors.hsl.h&&"right"===this.pullDirection?"100%":100*this.colors.hsl.h/360+"%"}},methods:{handleChange:function(e,a){!a&&e.preventDefault();var n,g,t=this.$refs.container,i=t.clientWidth,u=t.clientHeight,r=t.getBoundingClientRect().left+window.pageXOffset,d=t.getBoundingClientRect().top+window.pageYOffset,o=e.pageX||(e.touches?e.touches[0].pageX:0),l=e.pageY||(e.touches?e.touches[0].pageY:0),p=o-r,s=l-d;"vertical"===this.direction?(s<0?n=360:s>u?n=0:(g=-100*s/u+100,n=360*g/100),this.colors.hsl.h!==n&&this.$emit("change",{h:n,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:"hsl"})):(p<0?n=0:p>i?n=360:(g=100*p/i,n=360*g/100),this.colors.hsl.h!==n&&this.$emit("change",{h:n,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:"hsl"}))},handleMouseDown:function(e){this.handleChange(e,!0),window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp:function(e){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}},z=j,C=(n("ea0a"),Object(c["a"])(z,x,M,!1,null,null,null)),P=C.exports,L=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"vc-alpha"},[n("div",{staticClass:"vc-alpha-checkboard-wrap"},[n("checkboard")],1),n("div",{staticClass:"vc-alpha-gradient",style:{background:e.gradientColor}}),n("div",{ref:"container",staticClass:"vc-alpha-container",on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[n("div",{staticClass:"vc-alpha-pointer",style:{left:100*e.colors.a+"%"}},[n("div",{staticClass:"vc-alpha-picker"})])])])},N=[],_=function(){var e=this,a=e.$createElement,n=e._self._c||a;return n("div",{staticClass:"vc-checkerboard",style:e.bgStyle})},E=[],B={},O={name:"Checkboard",props:{size:{type:[Number,String],default:8},white:{type:String,default:"#fff"},grey:{type:String,default:"#e6e6e6"}},computed:{bgStyle:function(){return{"background-image":"url("+q(this.white,this.grey,this.size)+")"}}}};function K(e,a,n){if("undefined"===typeof document)return null;var g=document.createElement("canvas");g.width=g.height=2*n;var t=g.getContext("2d");return t?(t.fillStyle=e,t.fillRect(0,0,g.width,g.height),t.fillStyle=a,t.fillRect(0,0,n,n),t.translate(n,n),t.fillRect(0,0,n,n),g.toDataURL()):null}function q(e,a,n){var g=e+","+a+","+n;if(B[g])return B[g];var t=K(e,a,n);return B[g]=t,t}var I=O,R=(n("cf74"),Object(c["a"])(I,_,E,!1,null,null,null)),H=R.exports,G={name:"Alpha",props:{value:Object,onChange:Function},components:{checkboard:H},computed:{colors:function(){return this.value},gradientColor:function(){var e=this.colors.rgba,a=[e.r,e.g,e.b].join(",");return"linear-gradient(to right, rgba("+a+", 0) 0%, rgba("+a+", 1) 100%)"}},methods:{handleChange:function(e,a){!a&&e.preventDefault();var n,g=this.$refs.container,t=g.clientWidth,i=g.getBoundingClientRect().left+window.pageXOffset,u=e.pageX||(e.touches?e.touches[0].pageX:0),r=u-i;n=r<0?0:r>t?1:Math.round(100*r/t)/100,this.colors.a!==n&&this.$emit("change",{h:this.colors.hsl.h,s:this.colors.hsl.s,l:this.colors.hsl.l,a:n,source:"rgba"})},handleMouseDown:function(e){this.handleChange(e,!0),window.addEventListener("mousemove",this.handleChange),window.addEventListener("mouseup",this.handleMouseUp)},handleMouseUp:function(){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener("mousemove",this.handleChange),window.removeEventListener("mouseup",this.handleMouseUp)}}},V=G,F=(n("3d34"),Object(c["a"])(V,L,N,!1,null,null,null)),W=F.exports,U=["#D0021B","#F5A623","#F8E71C","#8B572A","#7ED321","#417505","#BD10E0","#9013FE","#4A90E2","#50E3C2","#B8E986","#000000","#4A4A4A","#9B9B9B","#FFFFFF","rgba(0,0,0,0)"],$={name:"Sketch",mixins:[d],components:{saturation:w,hue:P,alpha:W,"ed-in":y,checkboard:H},props:{presetColors:{type:Array,default:function(){return U}},disableAlpha:{type:Boolean,default:!1},disableFields:{type:Boolean,default:!1}},computed:{hex:function(){var e;return e=this.colors.a<1?this.colors.hex8:this.colors.hex,e.replace("#","")},activeColor:function(){var e=this.colors.rgba;return"rgba("+[e.r,e.g,e.b,e.a].join(",")+")"}},methods:{handlePreset:function(e){this.colorChange({hex:e,source:"hex"})},childChange:function(e){this.colorChange(e)},inputChange:function(e){e&&(e.hex?this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:"hex"}):(e.r||e.g||e.b||e.a)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:"rgba"}))}}},Y=$,Z=(n("fa8c"),Object(c["a"])(Y,g,t,!1,null,null,null));a["a"]=Z.exports},eceb:function(e,a,n){},ed33:function(e,a,n){n("014b"),e.exports=n("584a").Object.getOwnPropertySymbols},f0bd:function(e,a,n){"use strict";(function(e){ -/**! - * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.16.1 - * @license - * Copyright (c) 2016 Federico Zivolo and contributors - * - * 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. - */ -var n="undefined"!==typeof window&&"undefined"!==typeof document&&"undefined"!==typeof navigator,g=function(){for(var e=["Edge","Trident","Firefox"],a=0;a=0)return 1;return 0}();function t(e){var a=!1;return function(){a||(a=!0,window.Promise.resolve().then((function(){a=!1,e()})))}}function i(e){var a=!1;return function(){a||(a=!0,setTimeout((function(){a=!1,e()}),g))}}var u=n&&window.Promise,r=u?t:i;function d(e){var a={};return e&&"[object Function]"===a.toString.call(e)}function o(e,a){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView,g=n.getComputedStyle(e,null);return a?g[a]:g}function l(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function p(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var a=o(e),n=a.overflow,g=a.overflowX,t=a.overflowY;return/(auto|scroll|overlay)/.test(n+t+g)?e:p(l(e))}function s(e){return e&&e.referenceNode?e.referenceNode:e}var c=n&&!(!window.MSInputMethodContext||!document.documentMode),b=n&&/MSIE 10/.test(navigator.userAgent);function y(e){return 11===e?c:10===e?b:c||b}function S(e){if(!e)return document.documentElement;var a=y(10)?document.body:null,n=e.offsetParent||null;while(n===a&&e.nextElementSibling)n=(e=e.nextElementSibling).offsetParent;var g=n&&n.nodeName;return g&&"BODY"!==g&&"HTML"!==g?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===o(n,"position")?S(n):n:e?e.ownerDocument.documentElement:document.documentElement}function h(e){var a=e.nodeName;return"BODY"!==a&&("HTML"===a||S(e.firstElementChild)===e)}function A(e){return null!==e.parentNode?A(e.parentNode):e}function T(e,a){if(!e||!e.nodeType||!a||!a.nodeType)return document.documentElement;var n=e.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_FOLLOWING,g=n?e:a,t=n?a:e,i=document.createRange();i.setStart(g,0),i.setEnd(t,0);var u=i.commonAncestorContainer;if(e!==u&&a!==u||g.contains(t))return h(u)?u:S(u);var r=A(e);return r.host?T(r.host,a):T(e,A(a).host)}function m(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===a?"scrollTop":"scrollLeft",g=e.nodeName;if("BODY"===g||"HTML"===g){var t=e.ownerDocument.documentElement,i=e.ownerDocument.scrollingElement||t;return i[n]}return e[n]}function f(e,a){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],g=m(a,"top"),t=m(a,"left"),i=n?-1:1;return e.top+=g*i,e.bottom+=g*i,e.left+=t*i,e.right+=t*i,e}function D(e,a){var n="x"===a?"Left":"Top",g="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+g+"Width"])}function v(e,a,n,g){return Math.max(a["offset"+e],a["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],y(10)?parseInt(n["offset"+e])+parseInt(g["margin"+("Height"===e?"Top":"Left")])+parseInt(g["margin"+("Height"===e?"Bottom":"Right")]):0)}function k(e){var a=e.body,n=e.documentElement,g=y(10)&&getComputedStyle(n);return{height:v("Height",a,n,g),width:v("Width",a,n,g)}}var w=function(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")},x=function(){function e(e,a){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],g=y(10),t="HTML"===a.nodeName,i=C(e),u=C(a),r=p(e),d=o(a),l=parseFloat(d.borderTopWidth),s=parseFloat(d.borderLeftWidth);n&&t&&(u.top=Math.max(u.top,0),u.left=Math.max(u.left,0));var c=z({top:i.top-u.top-l,left:i.left-u.left-s,width:i.width,height:i.height});if(c.marginTop=0,c.marginLeft=0,!g&&t){var b=parseFloat(d.marginTop),S=parseFloat(d.marginLeft);c.top-=l-b,c.bottom-=l-b,c.left-=s-S,c.right-=s-S,c.marginTop=b,c.marginLeft=S}return(g&&!n?a.contains(r):a===r&&"BODY"!==r.nodeName)&&(c=f(c,a)),c}function L(e){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,g=P(e,n),t=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),u=a?0:m(n),r=a?0:m(n,"left"),d={top:u-g.top+g.marginTop,left:r-g.left+g.marginLeft,width:t,height:i};return z(d)}function N(e){var a=e.nodeName;if("BODY"===a||"HTML"===a)return!1;if("fixed"===o(e,"position"))return!0;var n=l(e);return!!n&&N(n)}function _(e){if(!e||!e.parentElement||y())return document.documentElement;var a=e.parentElement;while(a&&"none"===o(a,"transform"))a=a.parentElement;return a||document.documentElement}function E(e,a,n,g){var t=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},u=t?_(e):T(e,s(a));if("viewport"===g)i=L(u,t);else{var r=void 0;"scrollParent"===g?(r=p(l(a)),"BODY"===r.nodeName&&(r=e.ownerDocument.documentElement)):r="window"===g?e.ownerDocument.documentElement:g;var d=P(r,u,t);if("HTML"!==r.nodeName||N(u))i=d;else{var o=k(e.ownerDocument),c=o.height,b=o.width;i.top+=d.top-d.marginTop,i.bottom=c+d.top,i.left+=d.left-d.marginLeft,i.right=b+d.left}}n=n||0;var y="number"===typeof n;return i.left+=y?n:n.left||0,i.top+=y?n:n.top||0,i.right-=y?n:n.right||0,i.bottom-=y?n:n.bottom||0,i}function B(e){var a=e.width,n=e.height;return a*n}function O(e,a,n,g,t){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var u=E(n,g,i,t),r={top:{width:u.width,height:a.top-u.top},right:{width:u.right-a.right,height:u.height},bottom:{width:u.width,height:u.bottom-a.bottom},left:{width:a.left-u.left,height:u.height}},d=Object.keys(r).map((function(e){return j({key:e},r[e],{area:B(r[e])})})).sort((function(e,a){return a.area-e.area})),o=d.filter((function(e){var a=e.width,g=e.height;return a>=n.clientWidth&&g>=n.clientHeight})),l=o.length>0?o[0].key:d[0].key,p=e.split("-")[1];return l+(p?"-"+p:"")}function K(e,a,n){var g=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,t=g?_(a):T(a,s(n));return P(n,t,g)}function q(e){var a=e.ownerDocument.defaultView,n=a.getComputedStyle(e),g=parseFloat(n.marginTop||0)+parseFloat(n.marginBottom||0),t=parseFloat(n.marginLeft||0)+parseFloat(n.marginRight||0),i={width:e.offsetWidth+t,height:e.offsetHeight+g};return i}function I(e){var a={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return a[e]}))}function R(e,a,n){n=n.split("-")[0];var g=q(e),t={width:g.width,height:g.height},i=-1!==["right","left"].indexOf(n),u=i?"top":"left",r=i?"left":"top",d=i?"height":"width",o=i?"width":"height";return t[u]=a[u]+a[d]/2-g[d]/2,t[r]=n===r?a[r]-g[o]:a[I(r)],t}function H(e,a){return Array.prototype.find?e.find(a):e.filter(a)[0]}function G(e,a,n){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[a]===n}));var g=H(e,(function(e){return e[a]===n}));return e.indexOf(g)}function V(e,a,n){var g=void 0===n?e:e.slice(0,G(e,"name",n));return g.forEach((function(e){e["function"]&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e["function"]||e.fn;e.enabled&&d(n)&&(a.offsets.popper=z(a.offsets.popper),a.offsets.reference=z(a.offsets.reference),a=n(a,e))})),a}function F(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=K(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=R(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=V(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,a){return e.some((function(e){var n=e.name,g=e.enabled;return g&&n===a}))}function U(e){for(var a=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),g=0;gu[b]&&(e.offsets.popper[s]+=r[s]+y-u[b]),e.offsets.popper=z(e.offsets.popper);var S=r[s]+r[l]/2-y/2,h=o(e.instance.popper),A=parseFloat(h["margin"+p]),T=parseFloat(h["border"+p+"Width"]),m=S-e.offsets.popper[s]-A-T;return m=Math.max(Math.min(u[l]-y,m),0),e.arrowElement=g,e.offsets.arrow=(n={},M(n,s,Math.round(m)),M(n,c,""),n),e}function pe(e){return"end"===e?"start":"start"===e?"end":e}var se=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],ce=se.slice(3);function be(e){var a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ce.indexOf(e),g=ce.slice(n+1).concat(ce.slice(0,n));return a?g.reverse():g}var ye={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Se(e,a){if(W(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=E(e.instance.popper,e.instance.reference,a.padding,a.boundariesElement,e.positionFixed),g=e.placement.split("-")[0],t=I(g),i=e.placement.split("-")[1]||"",u=[];switch(a.behavior){case ye.FLIP:u=[g,t];break;case ye.CLOCKWISE:u=be(g);break;case ye.COUNTERCLOCKWISE:u=be(g,!0);break;default:u=a.behavior}return u.forEach((function(r,d){if(g!==r||u.length===d+1)return e;g=e.placement.split("-")[0],t=I(g);var o=e.offsets.popper,l=e.offsets.reference,p=Math.floor,s="left"===g&&p(o.right)>p(l.left)||"right"===g&&p(o.left)p(l.top)||"bottom"===g&&p(o.top)p(n.right),y=p(o.top)p(n.bottom),h="left"===g&&c||"right"===g&&b||"top"===g&&y||"bottom"===g&&S,A=-1!==["top","bottom"].indexOf(g),T=!!a.flipVariations&&(A&&"start"===i&&c||A&&"end"===i&&b||!A&&"start"===i&&y||!A&&"end"===i&&S),m=!!a.flipVariationsByContent&&(A&&"start"===i&&b||A&&"end"===i&&c||!A&&"start"===i&&S||!A&&"end"===i&&y),f=T||m;(s||h||f)&&(e.flipped=!0,(s||h)&&(g=u[d+1]),f&&(i=pe(i)),e.placement=g+(i?"-"+i:""),e.offsets.popper=j({},e.offsets.popper,R(e.instance.popper,e.offsets.reference,e.placement)),e=V(e.instance.modifiers,e,"flip"))})),e}function he(e){var a=e.offsets,n=a.popper,g=a.reference,t=e.placement.split("-")[0],i=Math.floor,u=-1!==["top","bottom"].indexOf(t),r=u?"right":"bottom",d=u?"left":"top",o=u?"width":"height";return n[r]i(g[r])&&(e.offsets.popper[d]=i(g[r])),e}function Ae(e,a,n,g){var t=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+t[1],u=t[2];if(!i)return e;if(0===u.indexOf("%")){var r=void 0;switch(u){case"%p":r=n;break;case"%":case"%r":default:r=g}var d=z(r);return d[a]/100*i}if("vh"===u||"vw"===u){var o=void 0;return o="vh"===u?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0),o/100*i}return i}function Te(e,a,n,g){var t=[0,0],i=-1!==["right","left"].indexOf(g),u=e.split(/(\+|\-)/).map((function(e){return e.trim()})),r=u.indexOf(H(u,(function(e){return-1!==e.search(/,|\s/)})));u[r]&&-1===u[r].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var d=/\s*,\s*|\s+/,o=-1!==r?[u.slice(0,r).concat([u[r].split(d)[0]]),[u[r].split(d)[1]].concat(u.slice(r+1))]:[u];return o=o.map((function(e,g){var t=(1===g?!i:i)?"height":"width",u=!1;return e.reduce((function(e,a){return""===e[e.length-1]&&-1!==["+","-"].indexOf(a)?(e[e.length-1]=a,u=!0,e):u?(e[e.length-1]+=a,u=!1,e):e.concat(a)}),[]).map((function(e){return Ae(e,t,a,n)}))})),o.forEach((function(e,a){e.forEach((function(n,g){ae(n)&&(t[a]+=n*("-"===e[g-1]?-1:1))}))})),t}function me(e,a){var n=a.offset,g=e.placement,t=e.offsets,i=t.popper,u=t.reference,r=g.split("-")[0],d=void 0;return d=ae(+n)?[+n,0]:Te(n,i,u,r),"left"===r?(i.top+=d[0],i.left-=d[1]):"right"===r?(i.top+=d[0],i.left+=d[1]):"top"===r?(i.left+=d[0],i.top-=d[1]):"bottom"===r&&(i.left+=d[0],i.top+=d[1]),e.popper=i,e}function fe(e,a){var n=a.boundariesElement||S(e.instance.popper);e.instance.reference===n&&(n=S(n));var g=U("transform"),t=e.instance.popper.style,i=t.top,u=t.left,r=t[g];t.top="",t.left="",t[g]="";var d=E(e.instance.popper,e.instance.reference,a.padding,n,e.positionFixed);t.top=i,t.left=u,t[g]=r,a.boundaries=d;var o=a.priority,l=e.offsets.popper,p={primary:function(e){var n=l[e];return l[e]d[e]&&!a.escapeWithReference&&(g=Math.min(l[n],d[e]-("right"===e?l.width:l.height))),M({},n,g)}};return o.forEach((function(e){var a=-1!==["left","top"].indexOf(e)?"primary":"secondary";l=j({},l,p[a](e))})),e.offsets.popper=l,e}function De(e){var a=e.placement,n=a.split("-")[0],g=a.split("-")[1];if(g){var t=e.offsets,i=t.reference,u=t.popper,r=-1!==["bottom","top"].indexOf(n),d=r?"left":"top",o=r?"width":"height",l={start:M({},d,i[d]),end:M({},d,i[d]+i[o]-u[o])};e.offsets.popper=j({},u,l[g])}return e}function ve(e){if(!oe(e.instance.modifiers,"hide","preventOverflow"))return e;var a=e.offsets.reference,n=H(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(a.bottomn.right||a.top>n.bottom||a.right2&&void 0!==arguments[2]?arguments[2]:{};w(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(g.update)},this.update=r(this.update.bind(this)),this.options=j({},e.Defaults,t),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=a&&a.jquery?a[0]:a,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(j({},e.Defaults.modifiers,t.modifiers)).forEach((function(a){g.options.modifiers[a]=j({},e.Defaults.modifiers[a]||{},t.modifiers?t.modifiers[a]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return j({name:e},g.options.modifiers[e])})).sort((function(e,a){return e.order-a.order})),this.modifiers.forEach((function(e){e.enabled&&d(e.onLoad)&&e.onLoad(g.reference,g.popper,g.options,e,g.state)})),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return x(e,[{key:"update",value:function(){return F.call(this)}},{key:"destroy",value:function(){return $.call(this)}},{key:"enableEventListeners",value:function(){return X.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();Me.Utils=("undefined"!==typeof window?window:e).PopperUtils,Me.placements=se,Me.Defaults=xe,a["a"]=Me}).call(this,n("c8ba"))},f1ae:function(e,a,n){"use strict";var g=n("86cc"),t=n("4630");e.exports=function(e,a,n){a in e?g.f(e,a,t(0,n)):e[a]=n}},f1ba:function(e,a,n){"use strict";var g=n("7863"),t=n.n(g);t.a},f201:function(e,a,n){var g=n("e4ae"),t=n("79aa"),i=n("5168")("species");e.exports=function(e,a){var n,u=g(e).constructor;return void 0===u||void 0==(n=g(u)[i])?a:t(n)}},f28c:function(e,a){var n,g,t=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function r(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(a){try{return n.call(null,e,0)}catch(a){return n.call(this,e,0)}}}function d(e){if(g===clearTimeout)return clearTimeout(e);if((g===u||!g)&&clearTimeout)return g=clearTimeout,clearTimeout(e);try{return g(e)}catch(a){try{return g.call(null,e)}catch(a){return g.call(this,e)}}}(function(){try{n="function"===typeof setTimeout?setTimeout:i}catch(e){n=i}try{g="function"===typeof clearTimeout?clearTimeout:u}catch(e){g=u}})();var o,l=[],p=!1,s=-1;function c(){p&&o&&(p=!1,o.length?l=o.concat(l):s=-1,l.length&&b())}function b(){if(!p){var e=r(c);p=!0;var a=l.length;while(a){o=l,l=[];while(++s1)for(var n=1;n1?arguments[1]:void 0,a.length)),g=String(e);return r?r.call(a,g,n):a.slice(n,n+g.length)===g}})},f576:function(e,a,n){"use strict";var g=n("5ca1"),t=n("2e08"),i=n("a25f"),u=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(i);g(g.P+g.F*u,"String",{padStart:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0,!0)}})},f605:function(e,a){e.exports=function(e,a,n,g){if(!(e instanceof a)||void 0!==g&&g in e)throw TypeError(n+": incorrect invocation!");return e}},f751:function(e,a,n){var g=n("5ca1");g(g.S+g.F,"Object",{assign:n("7333")})},f772:function(e,a){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},fa5b:function(e,a,n){e.exports=n("5537")("native-function-to-string",Function.toString)},fa8c:function(e,a,n){"use strict";var g=n("eceb"),t=n.n(g);t.a},fab2:function(e,a,n){var g=n("7726").document;e.exports=g&&g.documentElement},fd32:function(e,a,n){},fdef:function(e,a){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},ffcc:function(e,a,n){"use strict";var g=n("8758"),t=n.n(g);t.a}}]); -//# sourceMappingURL=chunk-vendors.118367b6.js.map \ No newline at end of file diff --git a/js/chunk-vendors.118367b6.js.map b/js/chunk-vendors.118367b6.js.map deleted file mode 100644 index f1fb7ae..0000000 --- a/js/chunk-vendors.118367b6.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/keen-ui/src/UiProgressLinear.vue?ebe6","webpack:///./node_modules/language-data/node_modules/colors/lib/maps/random.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/es6.object.freeze.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/language-data/node_modules/colors/lib/index.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/animejs/lib/anime.es.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/es6.string.repeat.js","webpack:///./node_modules/keen-ui/src/helpers/element-ref.js","webpack:///./node_modules/keen-ui/src/UiProgressCircular.vue?844b","webpack:///node_modules/keen-ui/src/UiProgressCircular.vue","webpack:///./node_modules/keen-ui/src/UiProgressCircular.vue?618e","webpack:///./node_modules/keen-ui/src/UiProgressCircular.vue","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/keen-ui/src/UiTooltip.vue?2567","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/autosize/dist/autosize.js","webpack:///./node_modules/core-js/library/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/keen-ui/src/UiPopover.vue?501b","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/es6.promise.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/vue-worker/index.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/keen-ui/src/UiTextbox.vue?a1f2","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/core-js/modules/es6.number.epsilon.js","webpack:///./node_modules/fuzzysearch/index.js","webpack:///./node_modules/keen-ui/src/UiCheckbox.vue?088a","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/keen-ui/src/UiFocusContainer.vue?9237","webpack:///node_modules/keen-ui/src/UiFocusContainer.vue","webpack:///./node_modules/keen-ui/src/UiFocusContainer.vue?834c","webpack:///./node_modules/keen-ui/src/UiFocusContainer.vue","webpack:///./node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/language-data/node_modules/colors/lib/custom/zalgo.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/keen-ui/src/UiSelect.vue?629d","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/vue-color/src/components/common/Saturation.vue?60a0","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/keen-ui/src/UiButton.vue?1b4b","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/vue-color/src/components/common/EditableInput.vue?450b","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/library/modules/es7.promise.finally.js","webpack:///./node_modules/os-browserify/browser.js","webpack:///./node_modules/keen-ui/src/helpers/classlist.js","webpack:///./node_modules/vue-color/src/components/common/Alpha.vue?8d49","webpack:///./node_modules/keen-ui/src/UiCheckbox.vue?777c","webpack:///node_modules/keen-ui/src/UiCheckbox.vue","webpack:///./node_modules/keen-ui/src/UiCheckbox.vue?50ab","webpack:///./node_modules/keen-ui/src/UiCheckbox.vue","webpack:///./node_modules/keen-ui/src/helpers/util.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/keen-ui/src/UiRadioGroup.vue?9998","webpack:///./node_modules/keen-ui/src/UiRadio.vue?754f","webpack:///node_modules/keen-ui/src/UiRadio.vue","webpack:///./node_modules/keen-ui/src/UiRadio.vue?5247","webpack:///./node_modules/keen-ui/src/UiRadio.vue","webpack:///node_modules/keen-ui/src/UiRadioGroup.vue","webpack:///./node_modules/keen-ui/src/UiRadioGroup.vue?febc","webpack:///./node_modules/keen-ui/src/UiRadioGroup.vue","webpack:///./node_modules/decimal.js/decimal.js","webpack:///./node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/language-data/node_modules/colors/lib/system/has-flag.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/keen-ui/src/UiFileupload.vue?7db8","webpack:///./node_modules/core-js/library/modules/es7.promise.try.js","webpack:///./node_modules/core-js/library/modules/_perform.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/library/fn/get-iterator.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/detect-browser/index.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/_set-species.js","webpack:///./node_modules/keen-ui/src/bootstrap.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/language-data/node_modules/colors/lib/system/supports-colors.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/clamp/index.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/fn/is-iterable.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_new-promise-capability.js","webpack:///./node_modules/keen-ui/src/UiRippleInk.vue?a712","webpack:///./node_modules/tinycolor2/tinycolor.js","webpack:///./node_modules/language-data/node_modules/colors/lib/maps/rainbow.js","webpack:///./node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/keen-ui/src/UiProgressLinear.vue?e918","webpack:///node_modules/keen-ui/src/UiProgressLinear.vue","webpack:///./node_modules/keen-ui/src/UiProgressLinear.vue?77b6","webpack:///./node_modules/keen-ui/src/UiProgressLinear.vue","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/keen-ui/src/UiIconButton.vue?87ce","webpack:///node_modules/keen-ui/src/UiIconButton.vue","webpack:///./node_modules/keen-ui/src/UiIconButton.vue?140b","webpack:///./node_modules/keen-ui/src/UiIconButton.vue","webpack:///./node_modules/core-js/library/fn/promise.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/keen-ui/src/UiModal.vue?cabd","webpack:///./node_modules/keen-ui/src/UiCloseButton.vue?6ec4","webpack:///node_modules/keen-ui/src/UiCloseButton.vue","webpack:///./node_modules/keen-ui/src/UiCloseButton.vue?9214","webpack:///./node_modules/keen-ui/src/UiCloseButton.vue","webpack:///node_modules/keen-ui/src/UiModal.vue","webpack:///./node_modules/keen-ui/src/UiModal.vue?f101","webpack:///./node_modules/keen-ui/src/UiModal.vue","webpack:///./node_modules/language-data/node_modules/colors/lib/colors.js","webpack:///./node_modules/keen-ui/src/UiIconButton.vue?c8b8","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/array/from.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/keen-ui/src/helpers/modality.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/promise.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/language-data/node_modules/language-tags/lib/Tag.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/keen-ui/src/UiRadioGroup.vue?3a9f","webpack:///./node_modules/core-js/library/modules/core.get-iterator.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/language-data/node_modules/grapheme-splitter/index.js","webpack:///./node_modules/language-data/node_modules/language-tags/lib/Subtag.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/language-data/node_modules/colors/lib/maps/america.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/lodash.throttle/index.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","webpack:///./node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/language-data/node_modules/colors/lib/styles.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/keen-ui/src/UiFocusContainer.vue?5537","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/language-data/src/utils/flatMap.polyfill.js","webpack:///./node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/language-data/node_modules/colors/lib/custom/trap.js","webpack:///./node_modules/keen-ui/src/UiSlider.vue?0b6c","webpack:///./node_modules/core-js/library/modules/core.is-iterable.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/keen-ui/src/UiTextbox.vue?94df","webpack:///./node_modules/keen-ui/src/directives/autofocus.js","webpack:///node_modules/keen-ui/src/UiTextbox.vue","webpack:///./node_modules/keen-ui/src/UiTextbox.vue?6c74","webpack:///./node_modules/keen-ui/src/UiTextbox.vue","webpack:///./node_modules/keen-ui/src/UiPopover.vue?b403","webpack:///node_modules/keen-ui/src/UiPopover.vue","webpack:///./node_modules/keen-ui/src/UiPopover.vue?0e6d","webpack:///./node_modules/keen-ui/src/UiPopover.vue","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/keys.js","webpack:///./node_modules/language-data/node_modules/language-tags/lib/index.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/tippy.js/esm/index.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack:///./node_modules/keen-ui/src/UiSelectOption.vue?8406","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/library/modules/_microtask.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/vuebar/vuebar.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/keen-ui/src/UiIcon.vue?31cc","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/createClass.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/language-data/src/languageData.js","webpack:///./node_modules/language-data/src/LanguageDataParser/findHtmlTag.js","webpack:///./node_modules/language-data/src/LanguageDataParser/findOpentypeTag.js","webpack:///./node_modules/language-data/src/LanguageDataParser/findScriptName.js","webpack:///./node_modules/language-data/src/LanguageDataParser/generateCharArray.js","webpack:///./node_modules/language-data/src/LanguageDataParser/extendCharSet.js","webpack:///./node_modules/language-data/src/LanguageDataParser/escapeRegExp.js","webpack:///./node_modules/language-data/src/LanguageDataParser/charsetChangeReason.js","webpack:///./node_modules/language-data/src/LanguageDataParser/generateAlphabet.js","webpack:///./node_modules/language-data/src/LanguageDataParser/generateSpecialCharacters.js","webpack:///./node_modules/language-data/src/LanguageDataParser/entryFormat.js","webpack:///./node_modules/language-data/src/LanguageDataParser/sanitizeEntry.js","webpack:///./node_modules/language-data/src/LanguageDataParser/configureDebug.js","webpack:///./node_modules/language-data/src/LanguageDataParser/LanguageDataParser.js","webpack:///./node_modules/language-data/index.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/keen-ui/src/UiFileupload.vue?90c7","webpack:///node_modules/keen-ui/src/UiFileupload.vue","webpack:///./node_modules/keen-ui/src/UiFileupload.vue?722c","webpack:///./node_modules/keen-ui/src/UiFileupload.vue","webpack:///./node_modules/keen-ui/src/mixins/RespondsToExternalClick.js","webpack:///./node_modules/core-js/library/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/keen-ui/src/UiButton.vue?369b","webpack:///node_modules/keen-ui/src/UiButton.vue","webpack:///./node_modules/keen-ui/src/UiButton.vue?1e8e","webpack:///./node_modules/keen-ui/src/UiButton.vue","webpack:///./node_modules/keen-ui/src/UiRadio.vue?1bdc","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/keen-ui/src/helpers/element-scroll.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/keen-ui/src/helpers/events.js","webpack:///./node_modules/keen-ui/src/UiSlider.vue?a8ea","webpack:///node_modules/keen-ui/src/UiSlider.vue","webpack:///./node_modules/keen-ui/src/UiSlider.vue?792a","webpack:///./node_modules/keen-ui/src/UiSlider.vue","webpack:///./node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/library/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/vue-color/src/components/common/Checkboard.vue?3792","webpack:///./node_modules/simple-web-worker/dist/sww.min.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck.js","webpack:///./node_modules/keen-ui/src/UiIcon.vue?4ed8","webpack:///node_modules/keen-ui/src/UiIcon.vue","webpack:///./node_modules/keen-ui/src/UiIcon.vue?e1e6","webpack:///./node_modules/keen-ui/src/UiIcon.vue","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/language-data/node_modules/colors/lib/maps/zebra.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/language-data/node_modules/colors/lib/extendStringPrototype.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js","webpack:///./node_modules/keen-ui/src/UiTooltip.vue?d517","webpack:///node_modules/keen-ui/src/UiTooltip.vue","webpack:///./node_modules/keen-ui/src/UiTooltip.vue?27f3","webpack:///./node_modules/keen-ui/src/UiTooltip.vue","webpack:///./node_modules/language-data/node_modules/lang-ietf-opentype/lib/lang.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/keen-ui/src/UiSelectOption.vue?ec68","webpack:///node_modules/keen-ui/src/UiSelectOption.vue","webpack:///./node_modules/keen-ui/src/UiSelectOption.vue?1508","webpack:///./node_modules/keen-ui/src/UiSelectOption.vue","webpack:///./node_modules/keen-ui/src/UiCloseButton.vue?b108","webpack:///./node_modules/keen-ui/src/UiRippleInk.vue?7c39","webpack:///node_modules/keen-ui/src/UiRippleInk.vue","webpack:///./node_modules/keen-ui/src/UiRippleInk.vue?e702","webpack:///./node_modules/keen-ui/src/UiRippleInk.vue","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/keen-ui/src/UiSelect.vue?5bd3","webpack:///node_modules/keen-ui/src/UiSelect.vue","webpack:///./node_modules/keen-ui/src/UiSelect.vue?6e07","webpack:///./node_modules/keen-ui/src/UiSelect.vue","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/vue-color/src/components/common/Hue.vue?bb6d","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/vue-color/src/components/Sketch.vue?4a08","webpack:///./node_modules/vue-color/src/mixin/color.js","webpack:///./node_modules/vue-color/src/components/common/EditableInput.vue?065c","webpack:///node_modules/vue-color/src/components/common/EditableInput.vue","webpack:///./node_modules/vue-color/src/components/common/EditableInput.vue?ac39","webpack:///./node_modules/vue-color/src/components/common/EditableInput.vue","webpack:///./node_modules/vue-color/src/components/common/Saturation.vue?baab","webpack:///node_modules/vue-color/src/components/common/Saturation.vue","webpack:///./node_modules/vue-color/src/components/common/Saturation.vue?4221","webpack:///./node_modules/vue-color/src/components/common/Saturation.vue","webpack:///./node_modules/vue-color/src/components/common/Hue.vue?62ff","webpack:///node_modules/vue-color/src/components/common/Hue.vue","webpack:///./node_modules/vue-color/src/components/common/Hue.vue?1635","webpack:///./node_modules/vue-color/src/components/common/Hue.vue","webpack:///./node_modules/vue-color/src/components/common/Alpha.vue?60b8","webpack:///./node_modules/vue-color/src/components/common/Checkboard.vue?5830","webpack:///node_modules/vue-color/src/components/common/Checkboard.vue","webpack:///./node_modules/vue-color/src/components/common/Checkboard.vue?16a4","webpack:///./node_modules/vue-color/src/components/common/Checkboard.vue","webpack:///node_modules/vue-color/src/components/common/Alpha.vue","webpack:///./node_modules/vue-color/src/components/common/Alpha.vue?922a","webpack:///./node_modules/vue-color/src/components/common/Alpha.vue","webpack:///node_modules/vue-color/src/components/Sketch.vue","webpack:///./node_modules/vue-color/src/components/Sketch.vue?4010","webpack:///./node_modules/vue-color/src/components/Sketch.vue","webpack:///./node_modules/core-js/library/fn/object/get-own-property-symbols.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/keen-ui/src/UiModal.vue?115e","webpack:///./node_modules/core-js/library/modules/_species-constructor.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/library/fn/array/is-array.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/vue-color/src/components/Sketch.vue?7198","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/keen-ui/src/UiProgressCircular.vue?33c9"],"names":["global","has","DESCRIPTORS","$export","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","enumKeys","isArray","anObject","isObject","toObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$GOPS","$DP","$keys","gOPD","f","dP","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","get","this","value","a","it","key","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","enumerable","$defineProperties","P","keys","i","l","length","$create","undefined","$propertyIsEnumerable","E","call","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","push","$getOwnPropertySymbols","IS_OP","TypeError","arguments","$set","configurable","set","name","G","W","F","es6Symbols","split","j","wellKnownSymbols","store","k","S","keyFor","useSetter","useSimple","create","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","args","apply","valueOf","Math","LIBRARY","hide","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","module","exports","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","prototype","$native","$default","$entries","$anyNative","entries","values","toInteger","defined","TO_STRING","that","pos","b","s","String","charCodeAt","charAt","slice","at","index","unicode","toString","windowNames","window","getWindowNames","e","hasOwnProperty","core","speciesConstructor","promiseResolve","R","onFinally","C","Promise","isFunction","then","x","ctx","IObject","toLength","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","val","res","O","self","colors","available","letter","exploded","round","random","ignoreCase","multiline","sticky","enumBugKeys","meta","onFreeze","$freeze","max","min","cof","Array","arg","forbiddenField","pIE","IE8_DOM_DEFINE","defaultInstanceSettings","update","begin","loopBegin","changeBegin","change","changeComplete","loopComplete","complete","loop","direction","autoplay","timelineOffset","defaultTweenSettings","duration","delay","endDelay","easing","validTransforms","cache","CSS","springs","minMax","stringContains","str","text","indexOf","applyArguments","func","is","arr","obj","pth","svg","SVGElement","inp","HTMLInputElement","dom","nodeType","fnc","und","nil","hex","test","rgb","hsl","col","parseEasingParameters","string","match","exec","map","p","parseFloat","spring","params","mass","stiffness","damping","velocity","w0","sqrt","zeta","wd","solver","t","progress","exp","cos","sin","getDuration","cached","frame","elapsed","rest","steps","ceil","bezier","kSplineTableSize","kSampleStepSize","A","aA1","aA2","B","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","abs","newtonRaphsonIterate","aGuessT","currentSlope","mY1","mY2","sampleValues","Float32Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","penner","eases","linear","functionEasings","Sine","PI","Circ","Back","Bounce","pow2","pow","Elastic","amplitude","period","asin","baseEasings","forEach","easeIn","parseEasings","ease","selectString","nodes","document","querySelectorAll","filterArray","callback","len","thisArg","flattenArray","reduce","concat","toArray","o","NodeList","HTMLCollection","arrayContains","some","cloneObject","clone","replaceObjectProps","o1","o2","mergeObjects","rgbToRgba","rgbValue","hexToRgba","hexValue","rgx","replace","m","r","g","parseInt","hslToRgba","hslValue","h","hue2rgb","q","colorToRgb","getUnit","getTransformUnit","propName","getFunctionValue","animatable","target","id","total","getAttribute","el","prop","convertPxToUnit","unit","valueUnit","baseline","tempEl","createElement","tagName","parentEl","parentNode","body","appendChild","style","position","width","factor","offsetWidth","removeChild","convertedUnit","getCSSValue","uppercasePropName","toLowerCase","getComputedStyle","getPropertyValue","getAnimationType","getElementTransforms","transform","reg","transforms","Map","getTransformValue","defaultVal","list","getOriginalTargetValue","getRelativeValue","to","from","operator","u","y","validateValue","originalUnit","unitLess","substr","getDistance","p1","p2","getCircleLength","getRectLength","getLineLength","getPolylineLength","previousPos","points","totalLength","numberOfItems","currentPos","getItem","getPolygonLength","getTotalLength","setDashoffset","pathLength","setAttribute","getParentSvgEl","getParentSvg","pathEl","svgData","parentSvgEl","rect","getBoundingClientRect","viewBoxAttr","height","viewBox","w","vW","vH","getPath","path","percent","property","getPathProgress","isPathTargetInsideSVG","point","offset","getPointAtLength","p0","scaleX","scaleY","atan2","decomposeValue","original","numbers","Number","strings","parseTargets","targets","targetsArray","item","getAnimatables","parsed","normalizePropertyTweens","tweenSettings","settings","isFromTo","propArray","v","flattenKeyframes","keyframes","propertyNames","properties","newKey","getProperties","tweens","normalizeTweenValues","tween","normalizeTweens","previousTween","tweenValue","toUnit","originalValue","previousValue","fromUnit","start","end","isPath","isColor","setProgressValue","css","attribute","object","manual","last","setTargetsValue","animatables","animType","createAnimation","lastTween","type","getAnimations","getInstanceTimings","animations","animLength","getTlOffset","anim","timings","instanceID","createNewInstance","instanceSettings","children","activeInstances","engine","raf","play","isDocumentHidden","anime","suspendWhenDocumentHidden","requestAnimationFrame","step","activeInstancesLength","activeInstance","paused","splice","tick","handleVisibilityChange","cancelAnimationFrame","instance","_onDocumentVisibility","addEventListener","hidden","startTime","lastTime","now","childrenLength","resolve","makePromise","promise","_resolve","finished","toggleInstanceDirection","reversed","child","adjustTime","time","resetTime","currentTime","speed","seekChild","seek","syncInstanceChildren","reversePlayback","i$1","setAnimationsProgress","insTime","animationsLength","tweenLength","eased","isNaN","toNumbersLength","n","toNumber","fromNumber","stringsLength","n$1","currentValue","setCallback","cb","passThrough","countIteration","remaining","setInstanceProgress","engineTime","insDuration","insDelay","insEndDelay","began","loopBegan","changeBegan","changeCompleted","completed","reset","pause","reverse","restart","remove","removeTargetsFromInstance","removeTargetsFromAnimations","c","childAnimations","removeTargetsFromActiveInstances","stagger","grid","axis","fromIndex","fromFirst","fromCenter","fromLast","isRange","val1","val2","maxValue","fromX","fromY","floor","toX","toY","distanceX","distanceY","spacing","timeline","tl","add","instanceParams","tlIndex","ins","insParams","tlDuration","version","running","convertPx","getKeys","Properties","repeat","validate","ref","warning","isValid","Element","_isVue","console","warn","fallback","$el","querySelector","render","_vm","_h","$createElement","_c","_self","attrs","disableTransition","staticClass","class","classes","size","strokeDashOffset","calculatedStroke","radius","strokeDashArray","staticRenderFns","component","$at","iterated","_t","_i","done","defer","channel","port","invoke","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","fn","listener","event","data","Function","nextTick","port2","port1","onmessage","postMessage","importScripts","setTimeout","clear","factory","createEvent","Event","bubbles","evt","initEvent","assign","ta","nodeName","heightOffset","clientWidth","cachedHeight","pageResize","destroy","removeEventListener","bind","resize","overflowY","overflowX","wordWrap","init","boxSizing","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","changeOverflow","getParentOverflows","scrollTop","node","originalHeight","overflows","docTop","documentElement","endHeight","scrollHeight","styleHeight","computed","actualHeight","offsetHeight","dispatchEvent","err","autosize","options","isArrayIter","createProperty","getIterFn","iter","arrayLike","aLen","mapfn","mapping","iterFn","ret","$find","forced","findIndex","fails","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","constructor","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","RegExp","ARG","tryGet","T","callee","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","classof","aFunction","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","userAgent","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_v","ok","_s","reaction","exited","handler","fail","reject","domain","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","error","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","executor","onFulfilled","onRejected","capability","$$reject","all","iterable","$index","alreadyCalled","race","getIteratorMethod","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","ctor","superCtor","super_","writable","TempCtor","isRegExp","advanceStringIndex","callRegExpExec","$min","$push","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","limit","lastIndex","lastLength","output","flags","lastLastIndex","splitLimit","separatorCopy","source","splitter","rx","unicodeMatching","lim","z","install","Vue","SRC","$toString","TPL","inspectSource","safe","join","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","lt","gt","display","src","contentWindow","open","write","close","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isPlainObject","isValidArrayIndex","isFinite","isPromise","catch","makeMap","expectsLowerCase","isReservedAttribute","hasOwn","hit","camelizeRE","camelize","_","toUpperCase","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","extend","_from","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","Date","getTime","keysA","keysB","looseIndexOf","once","called","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","opts","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","Dep","subs","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","pop","VNode","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","method","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","__proto__","observe","asRootData","isExtensible","defineReactive$$1","customSetter","shallow","getter","childOb","dependArray","newVal","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","props","inject","provide","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","Boolean","stringIndex","getPropDefaultValue","prevShouldObserve","default","_props","getType","isSameType","expectedTypes","handleError","info","cur","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","MutationObserver","observer","textNode","createTextNode","characterData","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","shift","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","bindObject","scopedSlotFn","$scopedSlots","$slots","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_l","_q","_m","_f","_b","_e","_u","_g","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","listeners","injections","scopedSlots","d","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","$mount","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","$nextTick","_render","ensureCtor","comp","base","__esModule","toStringTag","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","clearTimeout","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","$refs","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","mountComponent","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","isInInactiveTree","direct","handlers","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","timeStamp","flushSchedulerQueue","watcher","sort","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","uid$2","expOrFn","isRenderWatcher","deep","user","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","unshift","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","filter","cachedNode","pruneCacheEntry","current","cached$$1","patternTypes","KeepAlive","include","exclude","created","destroyed","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","acceptValue","attr","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","selected","createElement$1","multiple","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","nextSibling","setTextContent","textContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","transition","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","innerHTML","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","number","trim","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","normalize","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","classList","removeClass","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","styles","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","mode","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","left","dy","top","platformComponents","USE_SYMBOL","$exports","maxLength","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","EPSILON","fuzzysearch","needle","haystack","tlen","qlen","outer","nch","applyMixin","vuexInit","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","replaceState","subscribe","mutation","state","prepend","subscribeAction","action","find","deepCopy","copy","forEachValue","partial","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","getChild","hasChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","root","getNamespace","rawChildModule","unregister","isRegistered","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","commit","payload","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_type","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","rawGetter","_Vue","after","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","message","startMessage","log","endMessage","formattedAction","groupCollapsed","group","groupEnd","pad","getHours","getMinutes","getSeconds","getMilliseconds","times","num","INCLUDES","includes","searchString","getOwnPropertyDescriptors","descriptors","formatRegExp","format","isString","objects","inspect","isNull","deprecate","msg","noDeprecation","warned","deprecated","throwDeprecation","Error","traceDeprecation","trace","debugEnviron","debugs","stylize","stylizeNoColor","depth","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","arrayToHash","array","idx","recurseTimes","primitive","formatPrimitive","visibleKeys","isError","formatError","isDate","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","line","prev","numLinesEst","ar","isNullOrUndefined","objectToString","debuglog","NODE_DEBUG","pid","isBuffer","months","timestamp","getDate","getMonth","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","callbackify","callbackified","maybeCb","rej","setPrototypeOf","promisify","promiseReject","custom","redirectFocus","isTabbingForward","disabled","containFocus","un","soul","up","down","mid","randomNumber","range","isChar","character","bool","heComes","counts","ArrayProto","toAbsoluteIndex","endPos","inheritIfRequired","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","endianness","hostname","location","loadavg","uptime","freemem","MAX_VALUE","totalmem","cpus","release","appVersion","networkInterfaces","getNetworkInterfaces","arch","tmpdir","tmpDir","EOL","homedir","whitespace","interpret","input","isElement","contains","elementObjects","isElementObject","tabindex","isChecked","submittedValue","onBlur","onClick","onFocus","label","buttonPosition","isOptionCheckedByDefault","color","getTrueValue","$$v","selectedOptionValue","help","toggleCheck","checked","trueValue","onChange","globalScope","Decimal","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","DEFAULTS","precision","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","mathfloor","mathpow","isBinary","isHex","isOctal","isDecimal","BASE","LOG_BASE","MAX_SAFE_INTEGER","LN10_PRECISION","PI_PRECISION","digitsToString","ws","indexOfLastWord","getZeroString","checkInt32","checkRoundingDigits","repeating","di","rd","convertBase","baseIn","baseOut","arrL","strL","cosine","tinyPow","taylorSeries","cos2x","minus","plus","absoluteValue","finalise","comparedTo","cmp","xdL","ydL","xd","yd","xs","ys","NaN","pr","sd","toLessThanHalfPi","neg","cubeRoot","cbrt","rep","t3","t3plusx","isZero","toExponential","divide","eq","decimalPlaces","dp","dividedBy","div","dividedToIntegerBy","divToInt","equals","greaterThan","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh","one","cosh2_x","d8","hyperbolicSine","sinh","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","halfPi","isNeg","getPi","inverseHyperbolicCosine","acosh","lte","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","atan","inverseTangent","px","x2","isInteger","isInt","isNegative","isPositive","isPos","lessThan","lessThanOrEqualTo","logarithm","isBase10","denominator","inf","guard","naturalLogarithm","getLn10","xe","xLTy","getBase10Exponent","mod","naturalExponential","negated","carry","getPrecision","sine","squareRoot","tangent","tan","mul","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFixed","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toHex","toNearest","toOctal","toPower","yn","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","toJSON","multiplyInteger","temp","compare","aL","bL","subtract","logBase","more","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","sign","isTruncated","digits","roundUp","xdi","out","isExp","nonFiniteToString","zs","truncate","isOdd","maxOrMin","ltgt","sum","c0","numerator","x1","parseDecimal","search","substring","parseOther","divisor","isFloat","sin2_x","isHyperbolic","pi","useDefaults","defaults","ps","getRandomValues","randomBytes","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","isDecimalInstance","hypot","log10","log2","Uint32Array","flag","argv","terminatorPos","prefix","descriptor","promiseCapability","$Object","stat","bitmap","gOPS","getSymbols","symbols","regExpExec","MATCH","$match","fullUnicode","matchStr","__spreadArrays","il","jl","BrowserInfo","os","NodeInfo","BotInfo","bot","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","parseUserAgent","getNodeVersion","ua","matchedRule","matched","browser","regex","uaMatch","versionParts","createVersionParts","detectOS","ii","count","BREAK","RETURN","SAFE_CLOSING","riter","skipClosing","hasFlag","forceColor","translateLevel","level","hasBasic","has256","has16m","supportsColor","stream","isTTY","osRelease","CI_NAME","TEAMCITY_VERSION","TERM_PROGRAM_VERSION","TERM_PROGRAM","TERM","getSupportLevel","FORCE_COLOR","stdout","stderr","strong","SET","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","PATCH","reCopy","clamp","SHARED","copyright","$sort","comparefn","__e","IS_INCLUDES","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","builtinExec","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","installNextTickImplementation","canUsePostMessage","installPostMessageImplementation","installMessageChannelImplementation","installReadyStateChangeImplementation","installSetTimeoutImplementation","handle","runIfPresent","postMessageIsAsynchronous","oldOnMessage","messagePrefix","onGlobalMessage","attachEvent","script","onreadystatechange","webpackPolyfill","paths","IS_WRAP","virtual","PromiseCapability","$$resolve","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","inputToRGB","_originalInput","_r","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","stringInputToObject","isValidCSSUnit","rgbToRgb","convertToPercentage","hsvToRgb","hslToRgb","boundAlpha","bound01","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","results","slices","part","monochromatic","hsv","toHsv","modification","isDark","getBrightness","isLight","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","needsAlphaFormat","_applyModification","_applyCombination","fromRatio","newColor","color1","color2","mix","rgb1","rgb2","rgba","readability","c1","c2","isReadable","wcag2","wcag2Parms","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flip","flipped","isOnePointZero","processPercent","isPercentage","parseIntFromHex","convertHexToDecimal","matchers","CSS_INTEGER","CSS_NUMBER","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","hsla","hsva","hex3","hex6","hex4","hex8","named","parms","rainbowColors","$includes","setDesc","FREEZE","preventExtensions","setMeta","fastKey","getWeak","NEED","moderatedProgress","isAnchor","ariaLabel","tooltip","href","buttonType","icon","progressColor","disableRipple","appendDropdownToBody","constrainDropdownToScrollParent","dropdownPosition","openDropdownOn","onDropdownClose","onDropdownOpen","openTooltipOn","tooltipPosition","hiddenKeys","define","TO_STRING_TAG","DOMIterables","Collection","fill","toggleTransition","onEnter","onLeave","role","onBackdropClick","preventShift","keyCode","stopPropagation","onEsc","removeHeader","title","dismissOnCloseButton","removeCloseButton","dismissible","themes","ansiStyles","defineProps","newLineRegex","enabled","enable","disable","stripColors","strip","styleMap","matchOperatorsRe","escapeStringRegexp","build","_styles","builder","applyStyle","closeRe","newLinesPresent","nestedStyles","code","setTheme","theme","sequencer","trap","zalgo","maps","america","zebra","rainbow","$assign","K","_arrayWithoutHoles","arr2","_iterableToArray","_nonIterableSpread","_toConsumableArray","_arrayWithHoles","_iterableToArrayLimit","_arr","_nonIterableRest","_slicedToArray","__g","hadKeyboardEvent","keyboardModalityWhitelist","isHandlingKeyboardThrottle","matcher","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","disableFocusRingByDefault","head","getElementsByTagName","styleSheet","focusTriggersKeyboardModality","triggers","registry","Subtag","Tag","types","grandfathered","redundant","record","ERR_DEPRECATED","ERR_NO_LANGUAGE","ERR_UNKNOWN","ERR_TOO_LONG","ERR_EXTRA_REGION","ERR_EXTRA_EXTLANG","ERR_EXTRA_SCRIPT","ERR_DUPLICATE_VARIANT","ERR_WRONG_ORDER","ERR_SUPPRESS_SCRIPT","ERR_SUBTAG_DEPRECATED","ERR_EXTRA_LANGUAGE","preferred","subtags","codes","language","region","extlang","variant","subtag","valid","errors","Deprecated","found","priority","Type","added","Added","descriptions","Description","getIterator","FProto","nameRE","GraphemeSplitter","CR","LF","Control","Extend","Regional_Indicator","SpacingMark","L","V","LV","LVT","Other","Prepend","E_Base","E_Modifier","ZWJ","Glue_After_Zwj","E_Base_GAZ","NotBreak","BreakStart","Break","BreakLastRegional","BreakPenultimateRegional","isSurrogate","codePointAt","hi","low","shouldBreak","previous","eModifierIndex","lastIndexOf","rIIndex","previousNonExtendIndex","getGraphemeBreakProperty","nextBreak","splitGraphemes","brk","iterateGraphemes","countGraphemes","ERR_NONEXISTENT","ERR_TAG","Scope","comments","Comments","macrotask","WebKitMutationObserver","flush","standalone","toggle","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectProto","nativeMax","nativeMin","debounce","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","debounced","isInvoking","throttle","isObjectLike","other","_typeof","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","processOptions","lastState","currentArgs","throttled","_len","_key","_clear","deepEqual","VisibilityState","frozen","createObserver","_this","destroyObserver","_ref","throttleOptions","_leading","oldResult","IntersectionObserver","intersectingEntry","isIntersecting","intersectionRatio","threshold","intersection","disconnect","_ref2","_vue_visibilityState","_ref3","ObserveVisibility","GlobalVue","Attributes","bold","dim","italic","underline","inverse","strikethrough","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","bgGray","bgGrey","bgBrightRed","bgBrightGreen","bgBrightYellow","bgBrightBlue","bgBrightMagenta","bgBrightCyan","bgBrightWhite","blackBG","redBG","greenBG","yellowBG","blueBG","magentaBG","cyanBG","whiteBG","check","buggy","condition","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","decode","decodeURIComponent","resolveQuery","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","castQueryParamValue","param","parts","stringifyQuery","trailingSlashRE","createRoute","redirectedFrom","router","route","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","enteredCbs","View","routerView","$route","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","relative","append","firstChar","stack","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","modifier","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","pretty","token","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","required","exact","exactActiveClass","ariaCurrentValue","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","click","scopedSlot","navigate","isActive","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","metaKey","ctrlKey","shiftKey","defaultPrevented","button","preventDefault","installed","registerInstance","callVal","_router","history","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","compileRouteRegex","redirect","childMatchAs","alias","aliases","aliasRoute","createMatcher","addRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","decodeURI","Time","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","handlePopState","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","pageXOffset","pageYOffset","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","getElementById","scrollTo","supportsPushState","pushState","url","runQueue","NavigationFailureType","redirected","aborted","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","activated","deactivated","extractGuards","records","guards","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathname","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","registerHook","createHref","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","back","forward","getMatchedComponents","normalizedTo","getDesc","flatMap","chars","rand","isIterable","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","awrap","skipTempReset","stop","rootEntry","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Infinity","RangeError","UNSCOPABLES","multiLine","autocomplete","enforceMaxlength","maxlength","minlength","hasFloatingLabel","readonly","rows","updateValue","onKeydownEnter","onKeydown","minValue","stepValue","labelClasses","hasFeedback","valueLength","focus","raised","focusRedirector","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","tags","description","languages","macrolanguage","Macrolanguage","date","_extends","isBrowser","isUCBrowser","MSStream","defaultProps","a11y","allowHTML","animateFill","animation","appendTo","aria","arrow","arrowType","boundary","content","distance","flipBehavior","flipOnUpdate","followCursor","hideOnClick","ignoreAttributes","inertia","interactive","interactiveBorder","interactiveDebounce","maxWidth","onHidden","onHide","onMount","onShow","onShown","onTrigger","placement","popperOptions","showOnInit","touch","touchHold","triggerTarget","updateDuration","zIndex","POPPER_INSTANCE_DEPENDENCIES","elementProto","arrayFrom","closest","element","closestCallback","parentElement","PASSIVE","PADDING","PLACEMENT_ATTRIBUTE","OUT_OF_BOUNDARIES_ATTRIBUTE","IOS_CLASS","ACTIVE_CLASS","POPPER_CLASS","TOOLTIP_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","ROUND_ARROW_CLASS","POPPER_SELECTOR","TOOLTIP_SELECTOR","CONTENT_SELECTOR","BACKDROP_SELECTOR","ARROW_SELECTOR","ROUND_ARROW_SELECTOR","isUsingTouch","onDocumentTouch","onDocumentMouseMove","lastMouseMoveTime","onWindowBlur","_document","blur","_tippy","bindGlobalEventListeners","getDataAttributeOptions","reference","acc","valueAsString","polyfillElementPrototypeProperties","virtualReference","polyfills","isVirtual","attributes","classNames","isBareVirtualElement","isReferenceElement","getArrayOfElements","isSingular","defaultValue","ms","getModifier","invokeWithArgsOrReturn","setFlipModifierEnabled","canReceiveFocus","setTransitionDuration","els","setVisibilityState","evaluateProps","validateOptions","setInnerHTML","setContent","contentEl","getChildren","popper","backdrop","addInertia","removeInertia","createArrowElement","className","createBackdropElement","addInteractive","removeInteractive","updateTransitionEndListener","eventName","webkitTransition","getBasicPlacement","fullPlacement","reflow","updateTheme","themeName","createPopperElement","updatePopperElement","prevProps","nextProps","_getChildren","replaceChild","hideAll","excludedReferenceOrInstance","isExcluded","isCursorOutsideInteractiveBorder","popperPlacement","popperRect","clientX","clientY","exceedsTop","exceedsBottom","bottom","exceedsLeft","exceedsRight","right","getOffsetDistanceInPx","idCounter","mouseMoveListeners","createTippy","collectionProps","lastTriggerEventType","lastMouseMoveEvent","showTimeoutId","hideTimeoutId","scheduleHideAnimationFrameId","previousPlacement","currentMountCallback","currentTransitionEndListener","currentComputedPadding","isScheduledToShow","isBeingDestroyed","wasVisibleDuringPreviousUpdate","hasMountCallbackRun","debouncedOnMouseMove","onMouseMove","popperChildren","popperInstance","isEnabled","isVisible","isDestroyed","isMounted","isShown","clearDelayTimeouts","addTriggersToReference","createPopperInstance","scheduleShow","getEventListenersTarget","removeFollowCursorListener","positionVirtualReferenceNearCursor","cleanupInteractiveMouseListeners","scheduleHide","addDocumentClickListener","onDocumentClick","removeDocumentClickListener","getTransitionableElements","getIsInLooseFollowCursorMode","makeSticky","prevRefRect","updatePosition","currentRefRect","scheduleUpdate","onTransitionedOut","onTransitionEnd","onTransitionedIn","onMouseLeave","onDelegateShow","onDelegateHide","removeTriggersFromReference","_lastMouseMoveEvent","isCursorOverReference","isHorizontal","isVertical","isVerticalPlacement","isVariation","halfSize","verticalIncrease","horizontalIncrease","clientHeight","createDelegateChildTippy","targetEl","isEventListenerStopped","MouseEvent","isCursorOverPopper","relatedTarget","supportsTouch","isTouchEvent","runMountCallback","_instance$popperChild","preventOverflowModifier","applyMutations","basicPlacement","padding","isPaddingNumber","computedPadding","eventsEnabled","preventOverflow","boundariesElement","onCreate","onUpdate","mount","isInLooseFollowCursorMode","enableEventListeners","shouldAvoidCallingOnTrigger","visibility","transitionableElements","transitionDelay","disableEventListeners","destroyTargetInstances","_ref$delay","_ref$duration","isAnyTippyOpen","setIsAnyTippyOpen","updateInstances","_originalProps","globalEventListenersBound","tippy","autoInit","setDefaults","partialDefaults","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","spaces","space","non","ltrim","rtrim","exporter","ALIAS","FORCE","$iterators","ArrayValues","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Vuebar","installOptions","createState","_vuebarState","minDraggerHeight","scrollThrottle","draggerThrottle","resizeRefresh","observerThrottle","resizeDebounce","unselectableBody","overrideFloatingScrollbar","scrollingPhantomDelay","draggingPhantomDelay","preventParentScroll","useScrollbarPseudo","el1Class","el1ScrollVisibleClass","el1ScrollInvisibleClass","el1ScrollingClass","el1ScrollingPhantomClass","el1DraggingClass","el1DraggingPhantomClass","el2Class","draggerClass","draggerStylerClass","el1","el2","dragger","draggerEnabled","visibleArea","barTop","barHeight","mouseDownY","barDragging","mutationObserver","scrollingClassTimeout","draggingClassTimeout","scrollingPhantomClassTimeout","draggingPhantomClassTimeout","barMousedown","documentMousemove","documentMouseup","windowResize","scrollHandler","wheelHandler","getState","markupValidation","computeVisibleArea","computeScrollTop","ratio","computeBarTop","vbTop","mouseY","diff","mouseDownBarTop","computeBarHeight","createDragger","draggerStyler","updateDragger","withScrollingClasses","hideScrollbarUsingPseudoElement","idName","styleElm","sheet","ruleExists","rules","rule","selectorText","insertRule","scrollDist","wheelingUp","deltaY","wheelingDown","updateScroll","refreshScrollbar","computeContentWidth","freezeScrollbar","unfreezeScrollbar","chrome","safari","overlayScrollbar","compatStyle","paddingRight","nativeScrollbarWidth","userSelect","which","initMutationObserver","childList","subtree","initScrollbar","kwargs","detectBrowser","getNativeScrollbarWidth","firstElementChild","overflow","destroyScrollbar","clearStyles","msOverflowStyle","publicMethods","timer","threshhold","deferTimer","hasClass","getIEVersion","vendor","edge","ie8","ie9","ie10","ie11","ie","uaOrVendor","opera","mobile","container","fullWidth","barWidth","pointerEvents","vuebar","$vuebar","thousand","million","speakers","pangrams","specialCharacters","paragraphs","gotchas","topic","tests","sentences","opentypeTag","alphabet","punctuation","altNames","alphabetIsSorted","optionalCharacters","optionalCharactersNote","htmlTag","pseudo","letterings","numerals","smallcaps","pangram","todo","_letterings","htmlCode","_specialCharacters","findHtmlTag","searches","nameFromDescription","matchedNames","DEBUG","findOpentypeTag","findScriptName","genCharArray","charA","charZ","fromCharCode","extendCharSet","locale","localeCompare","caseFirst","escapeRegExp","az","letters","punct","newAlphabet","graphemes","abc","locl","of","scriptName","elementFields","sanitize","generateSpecialCharacters","generateAlphabet","sanitizeEntry","originalEntry","entryFormat","field","delayedWarnings","debug","configureDebug","rawData","parser","accept","onInput","displayText","destroyExternalClickListener","removeExternalClickListener","elements","_defineProperty","redefineAll","$iterDefine","setSpecies","SIZE","getEntry","getConstructor","ADDER","setStrong","addToUnscopables","Arguments","hasDropdown","iconPosition","$trim","NUMBER","$Number","BROKEN_COF","TRIM","argument","third","radix","maxCode","first","inView","offsetTop","parentTop","parentBottom","scrollIntoView","marginTop","resetScroll","onKey","onKeyup","onKeypress","moderatedMax","moderatedMin","localValue","decrementValue","incrementValue","onDragStart","relativeValue","markerText","arrayIndexOf","postAll","argumentError","makeOptionsFor","isValidObjectWith","isValidAction","isValidActionsArray","isValidPostParams","isValidPostParamsArray","isValidObjectsArray","testArray","actionsArray","arraysArray","objectsArray","postParamsArray","stringsArray","isValidArg","expected","received","extraInfo","makeResponse","createDisposableWorker","URL","webkitURL","Blob","createObjectURL","Worker","post","revokeObjectURL","onerror","lineno","filename","warnWork","isActionOf","warnMsg","pushInto","makeOptionsFor$1","removeFrom","makeOptions","createWrapper","WorkerWrapper","iconSet","removeText","readUInt8","addProperty","__defineGetter__","applyTheme","stringPrototypeBlacklist","themePropApplicator","$iterDetect","common","IS_WEAK","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","ietfToOpenType","hyphenPos","initialSubtag","openDropdown","hasDisplayText","isLabelInline","onClose","onOpen","onReveal","highlightOption","highlightedIndex","selectHighlighted","closeDropdown","searchPlaceholder","isOptionSelected","selectOption","autoScroll","disableAlpha","childChange","background","activeColor","disableFields","inputChange","isTransparent","handlePreset","_colorChange","oldHue","alpha","keysToCheck","passed","palette","labelId","handleKeyDown","labelSpanText","labelText","arrowOffset","handleChange","bgColor","handleMouseDown","pointerTop","pointerLeft","skip","containerWidth","containerHeight","xOffset","yOffset","pageX","touches","pageY","saturation","bright","handleMouseUp","unbindEventListeners","directionClass","pullDirection","gradientColor","bgStyle","getCheckboard","renderCheckboard","canvas","getContext","fillStyle","fillRect","translate","toDataURL","_checkboardCache","checkboard","rgbStr","presetColors","colorChange","isValidHex","timeoutDuration","longerTimeoutBrowsers","microtaskDebounce","taskDebounce","scheduled","supportsMicroTasks","functionToCheck","getStyleComputedProperty","defaultView","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","scrollLeft","getBordersSize","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","getBoundaries","boundaries","boundariesNode","_getWindowSizes","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","modifiersToRun","arrowStyles","positionFixed","originalPlacement","isCreated","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","removeEventListeners","isNumeric","setStyles","setAttributes","arrowElement","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","_data$offsets","noRound","referenceWidth","popperWidth","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","placements","validPlacements","clockwise","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","transformProp","popperStyles","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","bound","inner","subtractLength","onLoad","Defaults","Popper","jquery","Utils","PopperUtils","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","STARTS_WITH","$startsWith","startsWith","$pad","WEBKIT_BUG","padStart"],"mappings":"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GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACV,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACV,MAAUA,GACV,MAAUA,GACV,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACV,MAAUA,GACV,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACV,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC3B,MAAUA,GACT,MAAUA,GAAQA,GAAQ,MAC1B,MAAUA,GAAQA,GAAQ,MAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACV,OAAUA,GACV,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACV,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC3B,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACT,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC3B,OAAWA,GACX,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACX,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACX,OAAWA,GACX,OAAWA,GACX,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACX,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACX,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACX,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC5B,OAAWA,GACV,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAAWA,GAAQA,GAAQ,OAC3B,OAA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OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,MAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,MAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,GACV,OAAUA,EAEFsF,EAIP,OAAUtF,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,GAAQ,OAC1B,OAAUA,GAAQA,G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","file":"js/chunk-vendors.118367b6.js","sourcesContent":["'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../css-loader/index.js??ref--8-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--8-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiProgressLinear.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../css-loader/index.js??ref--8-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--8-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiProgressLinear.vue?vue&type=style&index=0&lang=scss&\"","module['exports'] = function(colors) {\n var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',\n 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed',\n 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta'];\n return function(letter, i, exploded) {\n return letter === ' ' ? letter :\n colors[\n available[Math.round(Math.random() * (available.length - 2))]\n ](letter);\n };\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var colors = require('./colors');\nmodule['exports'] = colors;\n\n// Remark: By default, colors will add style properties to String.prototype.\n//\n// If you don't wish to extend String.prototype, you can do this instead and\n// native String will not be touched:\n//\n// var colors = require('colors/safe);\n// colors.red(\"foo\")\n//\n//\nrequire('./extendStringPrototype')();\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","/*\n * anime.js v3.2.1\n * (c) 2020 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n nil: function (a) { return is.und(a) || a === null; },\n hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },\n rgb: function (a) { return /^rgb/.test(a); },\n hsl: function (a) { return /^hsl/.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; },\n};\n\n// Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.ceil((minMax(t, 0.000001, 1)) * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n var eases = { linear: function () { return function (t) { return t; }; } };\n\n var functionEasings = {\n Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },\n Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },\n Back: function () { return function (t) { return t * t * (3 * t - 2); }; },\n Bounce: function () { return function (t) {\n var pow2, b = 4;\n while (t < (( pow2 = Math.pow(2, --b)) - 1) / 11) {}\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow(( pow2 * 3 - 2 ) / 22 - t, 2)\n }; },\n Elastic: function (amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t : \n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n }\n };\n\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];\n\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };\n });\n\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };\n eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : \n 1 - easeIn(a, b)(t * -2 + 2) / 2; }; };\n eases['easeOutIn' + name] = function (a, b) { return function (t) { return t < 0.5 ? (1 - easeIn(a, b)(1 - t * 2)) / 2 : \n (easeIn(a, b)(t * 2 - 1) + 1) / 2; }; };\n });\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return applyArguments(ease, args);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) { return a.concat(is.arr(b) ? flattenArray(b) : b); }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n if (split) { return split[1]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (!is.nil(getAttribute(el, prop)) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m; while (m = reg.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n if (/\\s/g.test(val)) { return val; }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n if (unit) { return unitLess + unit; }\n return unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')}, \n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) { break; }\n parentEl = parentEl.parentNode;\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width,\n h: height,\n vW: viewBox[2],\n vH: viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress, isPathTargetInsideSVG) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n var scaleX = isPathTargetInsideSVG ? 1 : svg.w / svg.vW;\n var scaleY = isPathTargetInsideSVG ? 1 : svg.h / svg.vH;\n switch (path.property) {\n case 'x': return (p.x - svg.x) * scaleX;\n case 'y': return (p.y - svg.y) * scaleY;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(rgx) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (/^spring/.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isPathTargetInsideSVG = tween.isPath && is.svg(animatable.target);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\n\nvar engine = (function () {\n var raf;\n\n function play() {\n if (!raf && (!isDocumentHidden() || !anime.suspendWhenDocumentHidden) && activeInstances.length > 0) {\n raf = requestAnimationFrame(step);\n }\n }\n function step(t) {\n // memo on algorithm issue:\n // dangerous iteration over mutable `activeInstances`\n // (that collection may be updated from within callbacks of `tick`-ed animation instances)\n var activeInstancesLength = activeInstances.length;\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n i++;\n } else {\n activeInstances.splice(i, 1);\n activeInstancesLength--;\n }\n }\n raf = i > 0 ? requestAnimationFrame(step) : undefined;\n }\n\n function handleVisibilityChange() {\n if (!anime.suspendWhenDocumentHidden) { return; }\n\n if (isDocumentHidden()) {\n // suspend ticks\n raf = cancelAnimationFrame(raf);\n } else { // is back to active tab\n // first adjust animations to consider the time that ticks were suspended\n activeInstances.forEach(\n function (instance) { return instance ._onDocumentVisibility(); }\n );\n engine();\n }\n }\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n }\n\n return play;\n})();\n\nfunction isDocumentHidden() {\n return !!document && document.hidden;\n}\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n instance.reversed = !instance.reversed;\n children.forEach(function (child) { return child.reversed = instance.reversed; });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekChild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekChild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber, tween.isPathTargetInsideSVG);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (!instance.remaining) {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n };\n\n // internal method (for engine) to adjust animation timings before restoring engine ticks (rAF)\n instance._onDocumentVisibility = resetTime;\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n if (instance.completed) { instance.reset(); }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n engine();\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n instance.completed = instance.reversed ? false : true;\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.remove = function(targets) {\n var targetsArray = parseTargets(targets);\n removeTargetsFromInstance(targetsArray, instance);\n };\n\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargetsFromInstance(targetsArray, instance) {\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n}\n\nfunction removeTargetsFromActiveInstances(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n removeTargetsFromInstance(targetsArray, instance);\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.2.1';\nanime.speed = 1;\n// TODO:#review: naming, documentation\nanime.suspendWhenDocumentHidden = true;\nanime.running = activeInstances;\nanime.remove = removeTargetsFromActiveInstances;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nexport default anime;\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","export function validate(ref, warning) {\n const isValid = (ref instanceof Element) || (ref && ref._isVue) || (typeof ref === 'string');\n\n if (!isValid && warning) {\n console.warn(warning);\n }\n\n return isValid;\n}\n\nexport function resolve(ref, fallback) {\n if (ref instanceof Element) {\n return ref;\n } else if (ref && ref._isVue) {\n return ref.$el;\n } else if (typeof ref === 'string') {\n return document.querySelector(ref);\n }\n\n return fallback;\n}\n\nexport default {\n validate,\n resolve\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":_vm.disableTransition ? null : 'ui-progress-circular--transition-fade'}},[_c('div',{staticClass:\"ui-progress-circular\",class:_vm.classes,style:({ 'width': _vm.size + 'px', 'height': _vm.size + 'px' })},[(_vm.type === 'determinate')?_c('svg',{staticClass:\"ui-progress-circular__determinate\",attrs:{\"role\":\"progressbar\",\"aria-valuemax\":100,\"aria-valuemin\":0,\"aria-valuenow\":_vm.progress,\"height\":_vm.size,\"width\":_vm.size}},[_c('circle',{staticClass:\"ui-progress-circular__determinate-path\",style:({ 'stroke-dashoffset': _vm.strokeDashOffset, 'stroke-width': _vm.calculatedStroke }),attrs:{\"fill\":\"transparent\",\"stroke-dashoffset\":\"0\",\"cx\":_vm.size / 2,\"cy\":_vm.size / 2,\"r\":_vm.radius,\"stroke-dasharray\":_vm.strokeDashArray}})]):_c('svg',{staticClass:\"ui-progress-circular__indeterminate\",attrs:{\"role\":\"progressbar\",\"viewBox\":\"25 25 50 50\",\"aria-valuemax\":100,\"aria-valuemin\":0}},[_c('circle',{staticClass:\"ui-progress-circular__indeterminate-path\",attrs:{\"cx\":\"50\",\"cy\":\"50\",\"fill\":\"none\",\"r\":\"20\",\"stroke-miterlimit\":\"10\",\"stroke-width\":_vm.calculatedStroke}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiProgressCircular.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiProgressCircular.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UiProgressCircular.vue?vue&type=template&id=3f180b72&\"\nimport script from \"./UiProgressCircular.vue?vue&type=script&lang=js&\"\nexport * from \"./UiProgressCircular.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UiProgressCircular.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../css-loader/index.js??ref--8-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--8-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../css-loader/index.js??ref--8-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--8-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiTooltip.vue?vue&type=style&index=0&lang=scss&\"","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","/*!\n\tAutosize 3.0.21\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(['exports', 'module'], factory);\n\t} else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n\t\tfactory(exports, module);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod.exports, mod);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (exports, module) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : (function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t})();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function (name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = ta.clientWidth;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tvar originalHeight = ta.style.height;\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = 'auto';\n\n\t\t\tvar endHeight = ta.scrollHeight + heightOffset;\n\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\tta.style.height = originalHeight;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tta.style.height = endHeight + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that\n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight !== styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = (function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap['delete'](ta);\n\t\t}).bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function (el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\tmodule.exports = autosize;\n});","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","import mod from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../css-loader/index.js??ref--8-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--8-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiPopover.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../css-loader/index.js??ref--8-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--8-oneOf-1-2!../../sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!../../vue-svg-inline-loader/dist/index.min.js!./UiPopover.vue?vue&type=style&index=0&lang=scss&\"","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","import SimpleWebWorker from 'simple-web-worker'\n\nexport default {\n install: function(Vue, name) {\n name = name || '$worker'\n Object.defineProperty(Vue.prototype, name, { value: SimpleWebWorker })\n }\n}\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.