/* Sutton SignWriting Core Module v1.2.0 (https://github.com/sutton-signwriting/core), author: Steve Slevinski (https://SteveSlevinski.me), license: MIT */ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});let re={symbol:"S[123][0-9a-f]{2}[0-5][0-9a-f]",coord:"[0-9]{3}x[0-9]{3}",sort:"A",box:"[BLMR]"};re.prefix=`(?:${re.sort}(?:${re.symbol})+)`,re.spatial=`${re.symbol}${re.coord}`,re.signbox=`${re.box}${re.coord}(?:${re.spatial})*`,re.sign=`${re.prefix}?${re.signbox}`,re.sortable=`${re.prefix}${re.signbox}`;let re$1={colorize:"C",colorhex:"(?:[0-9a-fA-F]{3}){1,2}",colorname:"[a-zA-Z]+",padding:"P[0-9]{2}",zoom:"Z(?:[0-9]+(?:\\.[0-9]+)?|x)",zoomsym:"Z[0-9]{2},[0-9]+(?:\\.[0-9]+)?(?:,[0-9]{3}x[0-9]{3})?",classbase:"-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}",id:"[a-zA-Z][_a-zA-Z0-9-]{0,100}"};re$1.colorbase=`(?:${re$1.colorhex}|${re$1.colorname})`,re$1.color=`_${re$1.colorbase}_`,re$1.colors=`_${re$1.colorbase}(?:,${re$1.colorbase})?_`,re$1.background=`G${re$1.color}`,re$1.detail=`D${re$1.colors}`,re$1.detailsym=`D[0-9]{2}${re$1.colors}`,re$1.classes=`${re$1.classbase}(?: ${re$1.classbase})*`,re$1.full=`-(${re$1.colorize})?(${re$1.padding})?(${re$1.background})?(${re$1.detail})?(${re$1.zoom})?(?:-((?:${re$1.detailsym})*)((?:${re$1.zoomsym})*))?(?:-(${re$1.classes})?!(?:(${re$1.id})!)?)?`;const prefixColor=e=>{return(new RegExp(`^${re$1.colorhex}$`).test(e)?"#":"")+e},parse=e=>{const r=`^${re$1.full}`,s=("string"==typeof e?e.match(new RegExp(r)):[])||[];return{colorize:s[1]?!!s[1]:void 0,padding:s[2]?parseInt(s[2].slice(1)):void 0,background:s[3]?prefixColor(s[3].slice(2,-1)):void 0,detail:s[4]?s[4].slice(2,-1).split(",").map(prefixColor):void 0,zoom:s[5]?"Zx"===s[5]?"x":parseFloat(s[5].slice(1)):void 0,detailsym:s[6]?s[6].match(new RegExp(re$1.detailsym,"g")).map(e=>{const r=e.split("_"),s=r[1].split(",").map(prefixColor);return{index:parseInt(r[0].slice(1)),detail:s}}):void 0,zoomsym:s[7]?s[7].match(new RegExp(re$1.zoomsym,"g")).map(e=>{const r=e.split(",");return{index:parseInt(r[0].slice(1)),zoom:parseFloat(r[1]),offset:r[2]?r[2].split("x").map(e=>parseInt(e)-500):void 0}}):void 0,classes:s[8]?s[8]:void 0,id:s[9]?s[9]:void 0}},compose=e=>{if("object"!=typeof e||null===e)return;let r="-";r+=e.colorize?"C":"";const s=parseInt(e.padding);r+=!s||s<=0||s>99?"":"P"+(s>9?s:"0"+s);const o=e.background&&"string"==typeof e.background?e.background.match(re$1.colorbase)[0]:void 0;r+=o?"G_"+o+"_":"";const t=e.detail&&e.detail[0]&&"string"==typeof e.detail[0]?e.detail[0].match(re$1.colorbase)[0]:void 0,a=e.detail&&e.detail[1]&&"string"==typeof e.detail[1]?e.detail[1].match(re$1.colorbase)[0]:void 0;t&&(r+="D_"+t,a&&(r+=","+a),r+="_");const n="x"===e.zoom?"x":parseFloat(e.zoom);r+=!n||n<=0?"":"Z"+n;let i="";i+=(e.detailsym&&Array.isArray(e.detailsym)?e.detailsym.map(e=>{const r=parseInt(e.index);if(!r||r<=0||r>99)return"";let s="D"+(r>9?r:"0"+r);const o=e.detail&&e.detail[0]?e.detail[0].match(re$1.colorbase)[0]:void 0,t=e.detail&&e.detail[1]?e.detail[1].match(re$1.colorbase)[0]:void 0;return o&&(s+="_"+o,t&&(s+=","+t),s+="_"),s}):[]).join(""),i+=(e.zoomsym&&Array.isArray(e.zoomsym)?e.zoomsym.map(e=>{const r=parseInt(e.index);if(!r||r<=0||r>99)return"";let s="Z"+(r>9?r:"0"+r);const o=parseFloat(e.zoom);if(s+=!o||o<=0?"":","+o,e.offset&&0 in e.offset&&1 in e.offset){const r=parseInt(e.offset[0])+500,o=parseInt(e.offset[1])+500;r>=250&&r<750&&o>=250&&o<750&&(s+=","+r+"x"+o)}return s}):[]).join("");let c="";const l=e.classes&&"string"==typeof e.classes?e.classes.match(re$1.classes)[0]:void 0;c+=l||"";const u=e.id&&"string"==typeof e.id?e.id.match(re$1.id)[0]:void 0;return c+=l||u?"!":"",c+=u?u+"!":"",r+(i||c?"-"+i:"")+(c?"-"+c:"")};var index=Object.freeze({__proto__:null,re:re$1,parse:parse,compose:compose});let re$2={symbol:"(?:(?:\ud8c0[\udc01-\udfff])|(?:[\ud8c1-\ud8fc][\udc00-\udfff])|(?:\ud8fd[\udc00-\udc80]))",coord:"(?:\ud836[\udc0c-\uddff]){2}",sort:"𝠀",box:"\ud836[\udc01-\udc04]"};re$2.prefix=`(?:${re$2.sort}(?:${re$2.symbol})+)`,re$2.spatial=`${re$2.symbol}${re$2.coord}`,re$2.signbox=`${re$2.box}${re$2.coord}(?:${re$2.spatial})*`,re$2.sign=`${re$2.prefix}?${re$2.signbox}`,re$2.sortable=`${re$2.prefix}${re$2.signbox}`;const swu2mark=e=>({"𝠀":"A","𝠁":"B","𝠂":"L","𝠃":"M","𝠄":"R"})[e],mark2swu=e=>({A:"𝠀",B:"𝠁",L:"𝠂",M:"𝠃",R:"𝠄"})[e],swu2num=e=>parseInt(e.codePointAt(0))-120844+250,num2swu=e=>String.fromCodePoint(120844+parseInt(e)-250),swu2coord=e=>[swu2num(e.slice(0,2)),swu2num(e.slice(2,4))],coord2swu=e=>e.map(e=>num2swu(e)).join(""),fsw2coord=e=>e.split("x").map(e=>parseInt(e)),coord2fsw=e=>e.join("x"),swu2code=e=>parseInt(e.codePointAt(0)),code2swu=e=>String.fromCodePoint(e),swu2id=e=>swu2code(e)-262144,id2swu=e=>code2swu(e+262144),key2id=e=>1+96*(parseInt(e.slice(1,4),16)-256)+16*parseInt(e.slice(4,5),16)+parseInt(e.slice(5,6),16),id2key=e=>{const r=e-1,s=parseInt(r/96),o=parseInt((r-96*s)/16),t=parseInt(r-96*s-16*o);return"S"+(s+256).toString(16)+o.toString(16)+t.toString(16)},swu2key=e=>{const r=swu2code(e)-262145,s=parseInt(r/96),o=parseInt((r-96*s)/16),t=parseInt(r-96*s-16*o);return"S"+(s+256).toString(16)+o.toString(16)+t.toString(16)},key2swu=e=>code2swu(262145+96*(parseInt(e.slice(1,4),16)-256)+16*parseInt(e.slice(4,5),16)+parseInt(e.slice(5,6),16)),swu2fsw=e=>{if(!e)return"";let r=e.replace(/𝠀/g,"A").replace(/𝠁/g,"B").replace(/𝠂/g,"L").replace(/𝠃/g,"M").replace(/𝠄/g,"R");const s=r.match(new RegExp(re$2.symbol,"g"));s&&s.forEach((function(e){r=r.replace(e,swu2key(e))}));const o=r.match(new RegExp(re$2.coord,"g"));return o&&o.forEach((function(e){r=r.replace(e,swu2coord(e).join("x"))})),r},fsw2swu=e=>{if(!e)return"";const r=e.match(new RegExp(re.prefix,"g"));r&&r.forEach((function(r){e=e.replace(r,"𝠀"+r.slice(1).match(/.{6}/g).map(e=>key2swu(e)).join(""))}));const s=e.match(new RegExp(re.box+re.coord,"g"));s&&s.forEach((function(r){e=e.replace(r,mark2swu(r.slice(0,1))+coord2swu(fsw2coord(r.slice(1,8))))}));const o=e.match(new RegExp(re.spatial,"g"));return o&&o.forEach((function(r){e=e.replace(r,key2swu(r.slice(0,6))+coord2swu(fsw2coord(r.slice(6,13))))})),e};var index$1=Object.freeze({__proto__:null,swu2mark:swu2mark,mark2swu:mark2swu,swu2num:swu2num,num2swu:num2swu,swu2coord:swu2coord,coord2swu:coord2swu,fsw2coord:fsw2coord,coord2fsw:coord2fsw,swu2code:swu2code,code2swu:code2swu,swu2id:swu2id,id2swu:id2swu,key2id:key2id,id2key:id2key,swu2key:swu2key,key2swu:key2swu,swu2fsw:swu2fsw,fsw2swu:fsw2swu});const parse$1={symbol:e=>{const r=`^(${re.symbol})(${re.coord})?(${re$1.full})?`,s="string"==typeof e?e.match(new RegExp(r)):void 0;return{symbol:s?s[1]:void 0,coord:s&&s[2]?fsw2coord(s[2]):void 0,style:s?s[3]:void 0}},sign:e=>{const r=`^(${re.prefix})?(${re.signbox})(${re$1.full})?`,s="string"==typeof e?e.match(new RegExp(r)):void 0;return s?{sequence:s[1]?s[1].slice(1).match(/.{6}/g):void 0,box:s[2][0],max:fsw2coord(s[2].slice(1,8)),spatials:s[2].length<9?void 0:s[2].slice(8).match(/(.{13})/g).map(e=>({symbol:e.slice(0,6),coord:[parseInt(e.slice(6,9)),parseInt(e.slice(10,13))]})),style:s[3]}:{}}},compose$1={symbol:e=>{if("string"==typeof e.symbol){const r=(e.symbol.match(re.symbol)||[""])[0];if(r){return r+((((e.coord&&e.coord[0]||"").toString()+"x"+(e.coord&&e.coord[1]||"").toString()).match(re.coord)||[""])[0]||"")+("string"==typeof e.style&&(e.style.match(re$1.full)||[""])[0]||"")}}},sign:e=>{let r="string"!=typeof e.box?"M":(e.box+"M").match(re.box);const s=(((e.max&&e.max[0]||"").toString()+"x"+(e.max&&e.max[1]||"").toString()).match(re.coord)||[""])[0]||"";if(!s)return;let o="";e.sequence&&Array.isArray(e.sequence)&&(o=(o=e.sequence.map(e=>(e.match(re.symbol)||[""])[0]).join(""))?"A"+o:"");let t="";return e.spatials&&Array.isArray(e.spatials)&&(t=e.spatials.map(e=>{if("string"==typeof e.symbol){const r=(e.symbol.match(re.symbol)||[""])[0];if(r){const s=(((e.coord&&e.coord[0]||"").toString()+"x"+(e.coord&&e.coord[1]||"").toString()).match(re.coord)||[""])[0]||"";if(s)return r+s}}return""}).join("")),o+r+s+t+("string"==typeof e.style&&(e.style.match(re$1.full)||[""])[0]||"")}},kind=[256,895,903],category=[256,517,759,767,877,895,903],group=[256,270,286,324,332,390,420,442,461,501,517,534,554,597,613,648,678,695,725,739,759,767,778,810,827,857,877,886,895,903],ranges={all:[256,907],writing:[256,894],hand:[256,516],movement:[517,758],dynamic:[759,766],head:[767,876],hcenter:[767,876],vcenter:[767,885],trunk:[877,885],limb:[886,894],location:[895,902],punctuation:[903,907]},isType=(e,r)=>{const s=parse$1.symbol(e);if(s.symbol){const e=parseInt(s.symbol.slice(1,4),16),o=ranges[r];if(o)return o[0]<=e&&o[1]>=e}return!1},colors=["#0000CC","#CC0000","#FF0099","#006600","#000000","#884411","#FF9900"],colorize=e=>{const r=parse$1.symbol(e);let s="#000000";if(r.symbol){const e=parseInt(r.symbol.slice(1,4),16),o=category.findIndex(r=>r>e);s=colors[o<0?6:o-1]}return s};var index$2=Object.freeze({__proto__:null,re:re,parse:parse$1,compose:compose$1,kind:kind,category:category,group:group,ranges:ranges,isType:isType,colors:colors,colorize:colorize});let re$3={base:"[123][0-9a-f]{2}",coord:"(?:[0-9]{3}x[0-9]{3})?",var:"V[0-9]+"};re$3.symbol=`S${re$3.base}[0-5u][0-9a-fu]`,re$3.range=`R${re$3.base}t${re$3.base}`,re$3.prefix=`(?:A(?:${re$3.symbol}|${re$3.range})+)?T`,re$3.signbox=`(?:${re$3.symbol}${re$3.coord}|${re$3.range}${re$3.coord})*`,re$3.full=`Q(${re$3.prefix})?(${re$3.signbox})?(${re$3.var})?(-?)`;const parsePrefix=e=>({required:!0,parts:"T"==e?void 0:e.match(new RegExp(`(${re$3.symbol}|${re$3.range})`,"g")).map(e=>"S"==e[0]?e:e.slice(1).split("t"))}),parseSignbox=e=>e.match(new RegExp(`(${re$3.symbol}${re$3.coord}|${re$3.range}${re$3.coord})`,"g")).map(e=>{let r,s;return e.includes("x")?(r=fsw2coord(e.slice(-7)),s=e.slice(0,-7)):s=e,s.includes("S")?{symbol:s,coord:r}:{range:s.slice(1).split("t"),coord:r}}),parse$2=e=>{const r="string"==typeof e?e.match(new RegExp(`^${re$3.full}`)):void 0;return{query:!!r||void 0,prefix:r&&r[1]?parsePrefix(r[1]):void 0,signbox:r&&r[2]?parseSignbox(r[2]):void 0,variance:r&&r[3]?parseInt(r[3].slice(1)):void 0,style:!(!r||!r[4])||void 0}},compose$2=e=>{if(!e||!e.query)return;let r="Q";return e.prefix&&e.prefix.required&&(Array.isArray(e.prefix.parts)&&(r+="A",r+=e.prefix.parts.map(e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}t${e[1]}`:void 0).join("")),r+="T"),Array.isArray(e.signbox)&&(r+=e.signbox.map(e=>{let r;return e.symbol?r=e.symbol:e.range&&Array.isArray(e.range)&&2==e.range.length&&(r=`R${e.range[0]}t${e.range[1]}`),r+(Array.isArray(e.coord)&&2==e.coord.length?e.coord.join("x"):"")}).join("")),r=(r+=e.style?"-":"").match(new RegExp(`^${re$3.full}`))[0]},fsw2query=(e,r)=>{let s="";const o=parse$1.sign(e);if(o.box){const e=r.indexOf("A")>-1,t=r.indexOf("a")>-1,a=r.indexOf("S")>-1,n=r.indexOf("s")>-1,i=r.indexOf("L")>-1;return(e||t||a||n)&&((e||t)&&o.sequence&&(s+="A",s+=o.sequence.map(e=>e.slice(0,4)+(t?"uu":e.slice(4,6))).join(""),s+="T"),(a||n)&&o.spatials&&(s+=o.spatials.map(e=>e.symbol.slice(0,4)+(n?"uu":e.symbol.slice(4,6))+(i?e.coord.join("x"):"")).join(""))),s?"Q"+s:void 0}},range=(e,r,s)=>{let o,t,a,n,i,c,l;if(s||(s=""),o="",(e=("000"+e).slice(-3))===(r=""+r))return e;if(t=[],(e[0]!=r[0]||e[1]!=r[1])&&"0"!=e[2])if(o=e[0]+e[1],s){switch(e[2]){case"f":o+="f";break;case"e":o+="[ef]";break;case"d":case"c":case"b":case"a":o+="["+e[2]+"-f]";break;default:switch(e[2]){case"9":o+="[9a-f]";break;case"8":o+="[89a-f]";break;default:o+="["+e[2]+"-9a-f]"}}a=15-parseInt(e[2],16)+1,e=""+(parseInt(e,16)+a).toString(16),t.push(o)}else{switch(e[2]){case"9":o+="9";break;case"8":o+="[89]";break;default:o+="["+e[2]+"-9]"}e=""+(1*e+(a=9-e[2]+1)),t.push(o)}if(o="",e[0]!=r[0]&&"0"!=e[1])if(s){switch(o=e[0],e[1]){case"f":o+="f";break;case"e":o+="[ef]";break;case"d":case"c":case"b":case"a":o+="["+e[1]+"-f]";break;case"9":o+="[9a-f]";break;case"8":o+="[89a-f]";break;default:o+="["+e[1]+"-9a-f]"}o+="[0-9a-f]",a=15-parseInt(e[1],16)+1,e=""+(parseInt(e,16)+16*a).toString(16),t.push(o)}else{switch(o=e[0],a=9-e[1]+1,e[1]){case"9":o+="9";break;case"8":o+="[89]";break;default:o+="["+e[1]+"-9]"}o+="[0-9]",e=""+(1*e+10*(a=9-e[1]+1)),t.push(o)}if(o="",e[0]!=r[0])if(s){switch(a=parseInt(r[0],16)-parseInt(e[0],16),n=(parseInt(e[0],16)+a-1).toString(16),a){case 1:o=e[0];break;case 2:o="["+e[0]+n+"]";break;default:switch((c=parseInt(e[0],16)>9?"h":"d")+(l=parseInt(n,16)>9?"h":"d")){case"dd":o+="["+e[0]+"-"+n+"]";break;case"dh":switch(a=9-e[0]){case 0:o+="[9";break;case 1:o+="[89";break;default:o+="["+e[0]+"-9"}switch(n[0]){case"a":o+="a]";break;case"b":o+="ab]";break;default:o+="a-"+n+"]"}break;case"hh":o+="["+e[0]+"-"+n+"]"}}o+="[0-9a-f][0-9a-f]",a=parseInt(r[0],16)-parseInt(e[0],16),e=""+(parseInt(e,16)+256*a).toString(16),t.push(o)}else{switch(a=r[0]-e[0],n=1*e[0]+a-1,a){case 1:o=e[0];break;case 2:o="["+e[0]+n+"]";break;default:o="["+e[0]+"-"+n+"]"}o+="[0-9][0-9]",e=""+(1*e+100*a),t.push(o)}if(o="",e[1]!=r[1])if(s){switch(a=parseInt(r[1],16)-parseInt(e[1],16),n=(parseInt(e[1],16)+a-1).toString(16),o=e[0],a){case 1:o+=e[1];break;case 2:o+="["+e[1]+n+"]";break;default:switch((c=parseInt(e[1],16)>9?"h":"d")+(l=parseInt(n,16)>9?"h":"d")){case"dd":o+="["+e[1],a>1&&(o+="-"),o+=n+"]";break;case"dh":switch(a=9-e[1]){case 0:o+="[9";break;case 1:o+="[89";break;default:o+="["+e[1]+"-9"}switch(r[1]){case"a":o+="]";break;case"b":o+="a]";break;default:o+="a-"+(parseInt(r[1],16)-1).toString(16)+"]"}break;case"hh":o+="["+e[1],a>1&&(o+="-"),o+=(parseInt(r[1],16)-1).toString(16)+"]"}}o+="[0-9a-f]",a=parseInt(r[1],16)-parseInt(e[1],16),e=""+(parseInt(e,16)+16*a).toString(16),t.push(o)}else{switch(a=r[1]-e[1],n=1*e[1]+a-1,o=e[0],a){case 1:o+=e[1];break;case 2:o+="["+e[1]+n+"]";break;default:o+="["+e[1]+"-"+n+"]"}o+="[0-9]",e=""+(1*e+10*a),t.push(o)}if(o="",e[2]!=r[2])if(s){switch(o=e[0]+e[1],a=parseInt(r[2],16)-parseInt(e[2],16),(c=parseInt(e[2],16)>9?"h":"d")+(l=parseInt(r[2],16)>9?"h":"d")){case"dd":o+="["+e[2],a>1&&(o+="-"),o+=r[2]+"]";break;case"dh":switch(a=9-e[2]){case 0:o+="[9";break;case 1:o+="[89";break;default:o+="["+e[2]+"-9"}switch(r[2]){case"a":o+="a]";break;case"b":o+="ab]";break;default:o+="a-"+r[2]+"]"}break;case"hh":o+="["+e[2],a>1&&(o+="-"),o+=r[2]+"]"}a=parseInt(r[2],16)-parseInt(e[2],16),e=""+(parseInt(e,16)+a).toString(16),t.push(o)}else{switch(a=r[2]-e[2],o=e[0]+e[1],a){case 0:o+=e[2];break;case 1:o+="["+e[2]+r[2]+"]";break;default:o+="["+e[2]+"-"+r[2]+"]"}e=""+(1*e+a),t.push(o)}return o="","0"==e[2]&&"0"==r[2]&&(o=r,t.push(o)),o="",o=1==(i=t.length)?t[0]:"(("+(o=t.join(")|("))+"))"},regex=e=>{if(!(e=e.match(new RegExp(`^${re$3.full}`))[0]))return"";var r,s,o,t,a,n,i,c,l,u,p,d,f=20,$="S[123][0-9a-f]{2}[0-5][0-9a-f]",g="[0-9]{3}x[0-9]{3}",m="[BLMR]("+g+")("+$+g+")*",y="(A("+$+")+)",b="R[123][0-9a-f]{2}t[123][0-9a-f]{2}",x="S[123][0-9a-f]{2}[0-5u][0-9a-fu]",w="("+re$1.full+")?";if("Q"==e)return[y+"?"+m];if("Q-"==e)return[y+"?"+m+w];if("QT"==e)return[y+m];if("QT-"==e)return[y+m+w];var h=[],k=e.indexOf("T")+1;if(k){d="(A";var v=e.slice(0,k);if(e=e.replace(v,""),"QT"==v)d+="("+$+")+)";else if(r=v.match(new RegExp("("+x+"|"+b+")","g"))){var I;for(s=0;s6?(c=1*t.slice(6,9),l=1*t.slice(10,13),i+=range(c-f,c+f),i+="x",i+=range(l-f,l+f)):i+=g,i=m+i+"("+$+g+")*",i=k?d+i:y+"?"+i,e.indexOf("-")>0&&(i+=w),h.push(i);if(o=b+"([0-9]{3}x[0-9]{3})?",r=e.match(new RegExp(o,"g")))for(s=0;s8?(c=1*t.slice(8,11),l=1*t.slice(12,15),i+=range(c-f,c+f),i+="x",i+=range(l-f,l+f)):i+=g,i=m+i+"("+$+g+")*",i=k?d+i:y+"?"+i,e.indexOf("-")>0&&(i+=w),h.push(i);return h.length||(e.indexOf("-")>0&&(i+=w),h.push(d+m)),h},results=(e,r)=>{if(!r)return[];let s,o,t,a,n,i=regex(e);if(!i)return[];for(n=0;n{if(!r)return[];let s,o,t,a,n,i=regex(e);if(!i)return[];for(n=0;n{const r=`^(${re$2.symbol})(${re$2.coord})?(${re$1.full})?`,s="string"==typeof e?e.match(new RegExp(r)):void 0;return{symbol:s?s[1]:void 0,coord:s&&s[2]?swu2coord(s[2]):void 0,style:s?s[3]:void 0}},sign:e=>{const r=`^(${re$2.prefix})?(${re$2.signbox})(${re$1.full})?`,s="string"==typeof e?e.match(new RegExp(r)):void 0;return s?{sequence:s[1]?s[1].slice(2).match(/.{2}/g):void 0,box:s[2].slice(0,2),max:swu2coord(s[2].slice(2,6)),spatials:s[2].length<7?void 0:s[2].slice(6).match(/(.{6})/g).map(e=>({symbol:e.slice(0,2),coord:swu2coord(e.slice(2))})),style:s[3]}:{}}},encode=e=>e.replace(/[\u007F-\uFFFF]/g,(function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).substr(-4).toUpperCase()})),decode=e=>e.replace(/\\u([0-9A-F]{4})/g,(function(e,r){return String.fromCharCode(parseInt(r,16))})),pair=e=>[e.charCodeAt(0).toString(16).toUpperCase(),e.charCodeAt(1).toString(16).toUpperCase()],compose$3={symbol:e=>{if("object"==typeof e&&null!==e&&"string"==typeof e.symbol){const r=(e.symbol.match(re$2.symbol)||[""])[0];if(r){const s=e.coord&&e.coord[0]||"",o=e.coord&&e.coord[1]||"";return r+(s&&o?coord2swu([s,o]):"")+("string"==typeof e.style&&(e.style.match(re$1.full)||[""])[0]||"")}}},sign:e=>{if("object"!=typeof e||null===e)return;let r="string"!=typeof e.box?"𝠃":(e.box+"𝠃").match(re$2.box);const s=e.max&&e.max[0]||"",o=e.max&&e.max[1]||"",t=s&&o?coord2swu([s,o]):void 0;if(!t)return;let a="";e.sequence&&Array.isArray(e.sequence)&&(a=(a=e.sequence.map(e=>(e.match(re$2.symbol)||[""])[0]).join(""))?"𝠀"+a:"");let n="";return e.spatials&&Array.isArray(e.spatials)&&(n=e.spatials.map(e=>{if("string"==typeof e.symbol){const r=(e.symbol.match(re$2.symbol)||[""])[0];if(r){const s=e.coord&&e.coord[0]||"",o=e.coord&&e.coord[1]||"",t=s&&o?coord2swu([s,o]):"";if(t)return r+t}}return""}).join("")),a+r+t+n+("string"==typeof e.style&&(e.style.match(re$1.full)||[""])[0]||"")}},kind$1=[262145,323489,324257],category$1=[262145,287201,310433,311201,321761,323489,324257],group$1=[262145,263489,265025,268673,269441,275009,277889,280001,281825,285665,287201,288833,290753,294881,296417,299777,302657,304289,307169,308513,310433,311201,312257,315329,316961,319841,321761,322625,323489,324257],ranges$1={all:[262145,324736],writing:[262145,323488],hand:[262145,287200],movement:[287201,310432],dynamic:[310433,311200],head:[311201,321760],hcenter:[311201,321760],vcenter:[311201,322624],trunk:[321761,322624],limb:[322625,323488],location:[323489,324256],punctuation:[324257,324736]},isType$1=(e,r)=>{const s=parse$3.symbol(e);if(s.symbol){const e=swu2code(s.symbol),o=ranges$1[r];if(o)return o[0]<=e&&o[1]>=e}return!1},colors$1=["#0000CC","#CC0000","#FF0099","#006600","#000000","#884411","#FF9900"],colorize$1=e=>{const r=parse$3.symbol(e);let s="#000000";if(r.symbol){const e=swu2code(r.symbol),o=category$1.findIndex(r=>r>e);s=colors$1[o<0?6:o-1]}return s};var index$4=Object.freeze({__proto__:null,re:re$2,parse:parse$3,encode:encode,decode:decode,pair:pair,compose:compose$3,kind:kind$1,category:category$1,group:group$1,ranges:ranges$1,isType:isType$1,colors:colors$1,colorize:colorize$1});let re$4={base:"(?:(?:\ud8c0[\udc01-\udfff])|(?:[\ud8c1-\ud8fc][\udc00-\udfff])|(?:\ud8fd[\udc00-\udc80]))",coord:"(?:(?:\ud836[\udc0c-\uddff]){2})?",var:"V[0-9]+"};re$4.symbol=`${re$4.base}f?r?`,re$4.range=`R${re$4.base}${re$4.base}`,re$4.prefix=`(?:A(?:${re$4.symbol}|${re$4.range})+)?T`,re$4.signbox=`(?:${re$4.symbol}${re$4.coord}|${re$4.range}${re$4.coord})*`,re$4.full=`Q(${re$4.prefix})?(${re$4.signbox})?(${re$4.var})?(-?)`;const parsePrefix$1=e=>({required:!0,parts:"T"==e?void 0:e.match(new RegExp(`(${re$4.symbol}|${re$4.range})`,"g")).map(e=>"R"!=e[0]?e:[e.slice(1,3),e.slice(3,5)])}),parseSignbox$1=e=>e.match(new RegExp(`(${re$4.symbol}${re$4.coord}|${re$4.range}${re$4.coord})`,"g")).map(e=>{let r,s;return e.length>5?(r=swu2coord(e.slice(-4)),s=e.slice(0,-4)):s=e,s.includes("R")?{range:[s.slice(1,3),s.slice(3,5)],coord:r}:{symbol:s,coord:r}}),parse$4=e=>{const r="string"==typeof e?e.match(new RegExp(`^${re$4.full}`)):void 0;return{query:!!r||void 0,prefix:r&&r[1]?parsePrefix$1(r[1]):void 0,signbox:r&&r[2]?parseSignbox$1(r[2]):void 0,variance:r&&r[3]?parseInt(r[3].slice(1)):void 0,style:!(!r||!r[4])||void 0}},compose$4=e=>{if(!e||!e.query)return;let r="Q";return e.prefix&&e.prefix.required&&(Array.isArray(e.prefix.parts)&&(r+="A",r+=e.prefix.parts.map(e=>"string"==typeof e?e:Array.isArray(e)&&2==e.length?`R${e[0]}${e[1]}`:void 0).join("")),r+="T"),Array.isArray(e.signbox)&&(r+=e.signbox.map(e=>{let r;return e.symbol?r=e.symbol:e.range&&Array.isArray(e.range)&&2==e.range.length&&(r=`R${e.range[0]}${e.range[1]}`),r+(Array.isArray(e.coord)&&2==e.coord.length?coord2swu(e.coord):"")}).join("")),r=(r+=e.style?"-":"").match(new RegExp(`^${re$4.full}`))[0]},swu2query=(e,r)=>{let s="";const o=parse$3.sign(e);if(o.box){const e=r.indexOf("A")>-1,t=r.indexOf("a")>-1,a=r.indexOf("S")>-1,n=r.indexOf("s")>-1,i=r.indexOf("L")>-1;return(e||t||a||n)&&((e||t)&&o.sequence&&(s+="A",s+=o.sequence.map(e=>e+(t?"fr":"")).join(""),s+="T"),(a||n)&&o.spatials&&(s+=o.spatials.map(e=>e.symbol+(n?"fr":"")+(i?coord2swu(e.coord):"")).join(""))),s?"Q"+s:void 0}},range$1=(e,r)=>{if(e>r)return"";let s,o="",t=[];if(e=pair(e),r=pair(r),2!=e.length&&2!=r.length)return"";if(e[0]==r[0])e[1]==r[1]?(o="\\u"+e[0]+"\\u"+e[1],t.push(o)):(o="\\u"+e[0]+"[\\u"+e[1]+"-\\u"+r[1]+"]",t.push(o));else{o="DFFF"==e[1]?"\\u"+e[0]+"\\uDFFF":"\\u"+e[0]+"[\\u"+e[1]+"-\\uDFFF]",t.push(o);let s=parseInt(r[0],16)-parseInt(e[0],16);2==s&&(o="\\u"+(parseInt(e[0],16)+1).toString(16).toUpperCase(),o+="[\\uDC00-\\uDFFF]",t.push(o)),s>2&&(o="[",o+="\\u"+(parseInt(e[0],16)+1).toString(16).toUpperCase(),o+="-\\u"+(parseInt(r[0],16)-1).toString(16).toUpperCase(),o+="][\\uDC00-\\uDFFF]",t.push(o)),o="DC00"==r[1]?"\\u"+r[0]+"\\uDC00":"\\u"+r[0]+"[\\uDC00-\\u"+r[1]+"]",t.push(o)}return o=1==(s=t.length)?t[0]:"(("+(o=t.join(")|("))+"))",decode(o)},symbolRanges=e=>{let r=e.match(new RegExp(re$4.symbol));if(r){let e,s,o=r[0].slice(0,2),t=swu2key(o),a=t.slice(0,4);if("fr"==r[0].slice(-2))return e=key2swu(a+"00"),s=key2swu(a+"5f"),range$1(e,s);if("r"==r[0].slice(-1))return e=key2swu(t.slice(0,5)+"0"),s=key2swu(t.slice(0,5)+"f"),range$1(e,s);if("f"==r[0].slice(-1)){return"("+[0,1,2,3,4,5].map((function(e){return key2swu(a+e+t.slice(-1))})).join("|")+")"}return o}return""},regex$1=e=>{if(!(e=e.match(new RegExp(`^${re$4.full}`))[0]))return"";let r,s,o,t,a,n,i,c,l,u,p=20,d=re$2.symbol,f=re$2.coord,$=re$2.box+f+"("+d+f+")*",g="("+re$2.sort+"("+d+")+)",m="R"+d+d,y=d+"f?r?",b="("+f+")?",x="("+re$1.full+")?";if("Q"==e)return[re$2.sign];if("Q-"==e)return[re$2.sign+"("+re$1.full+")?"];if("QT"==e)return[re$2.sortable];if("QT-"==e)return[re$2.sortable+"("+re$1.full+")?"];let w,h=[],k=e.indexOf("T")+1;if(k){u="("+re$2.sort;let o=e.slice(0,k);if(e=e.replace(o,""),"QT"==o)u+="("+d+")+)";else if(r=o.match(new RegExp("("+y+"|"+m+")","g"))){let e;for(s=0;so.length?(c=(n=swu2coord(o.slice(-4)))[0],l=n[1],i+=range$1(coord2swu([c-p,c+p])),i+=range$1(coord2swu([l-p,l+p]))):i+=f,i=$+i+"("+d+f+")*",i=k?u+i:g+"?"+i,e.indexOf("-")>0&&(i+=x),h.push(i)):(o=r[s].toString(),t=swu2key(o.slice(1,3)),a=swu2key(o.slice(3,5)),t=key2swu(t.slice(0,4)+"00"),a=key2swu(a.slice(0,4)+"5f"),i=range$1(t,a),o.length>5?(c=(n=swu2coord(o.slice(5,9)))[0],l=n[1],i+=range$1(coord2swu([c-p,c+p])),i+=range$1(coord2swu([l-p,l+p]))):i+=f,i=$+i+"("+d+f+")*",i=k?u+i:g+"?"+i,e.indexOf("-")>0&&(i+=x),h.push(i));return h.length||(e.indexOf("-")>0&&(i+=x),h.push(u+$)),h},results$1=(e,r)=>{if(!r)return[];let s,o,t,a,n,i=regex$1(e);if(!i)return[];for(n=0;n{if(!r)return[];let s,o,t,a,n,i=regex$1(e);if(!i)return[];for(n=0;n